Hapus garis putih pada tabel multirow yang dicat
Saya memiliki tabel di mana baris pertama berisi sel multirow. Multi-baris harus diwarnai abu-abu.
pertanyaan 1
Sayangnya, garis putih tipis muncul di antara banyak baris (lihat gambar di bagian akhir). Ini kodenya:
\begin{table}[H]
\renewcommand{\arraystretch}{1.5}
\rowcolors{2}{white}{gray!25}
\begin{center}
\begin{tabular}{ | c | c | c | }
\arrayrulecolor{black} %changes color of hline
\hline
\rowcolor{gray!50} & {Max Power} & {Typ. Range}\\
\rowcolor{gray!50}\multirow{-2}{*}{\textbf{Class}} & (mW) & (m) \\
\hline
\textbf{1} & 100 & 100\\
\textbf{2} & 2.5 & 10\\
\textbf{3} & 1 & 1\\
\textbf{4} & 0.5 & 0.5\\
\hline
\end{tabular}
\caption{Σύγκριση μεταξύ 2.4GHz και 5GHz}
\end{center}
\end{table}
Pertanyaan2
Selanjutnya, saya ingin menyesuaikan jarak yang ditunjukkan dengan panah merah. Saya ingin ukurannya lebih kecil, sehingga teksnya lebih dekat ke baris di atas, hanya untuk baris khusus ini.
Jawaban
Dengan header kolom dalam \theadperintah yang ditentukan dalam makecellpaket:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{array, makecell, multirow}
\renewcommand\theadfont{\normalsize\bfseries}
\usepackage{siunitx}
\begin{document}
\begin{table}[ht]
\renewcommand{\arraystretch}{1.5}
%\arrayrulecolor{black} %changes color of hline
\rowcolors{2}{white}{gray!25}
\centering
\begin{tabular}{ | >{\bfseries}c | c | c | }
\hline
\rowcolor{gray!50}
& \thead{Max Power\\ (mW)} & \thead{Typ. Range\\ (m)}\\
\hline
1 & 100 & 100 \\
2 & 2.5 & 10 \\
3 & 1 & 1 \\
4 & 0.5 & 0.5 \\
\hline
\end{tabular}
\caption{Text in Greek language \SI{2.4}{GHz} ... \SI{5}{GHz}.}
\end{table}
\end{document}
Catatan: tolong, selalu berikan MWE, adalah dokumen lengkap terkecil yang mereproduksi masalah. Ini harus berisi semua paket dan definisi yang diperlukan untuk menjalankan contoh, tetapi tidak lebih dari itu.
Paket nicematrixmemiliki alat untuk mengatasi masalah itu. Dengan kode berikut, garis putih tipis tidak akan muncul (mereka muncul di beberapa pemirsa PDF dengan alat-alat colortbl, yang dimuat oleh pilihan tabledari xcolor).
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{table}
\centering
\renewcommand{\arraystretch}{1.5}
\begin{NiceTabular}{|>{\bfseries}c|c|c|}%
[
code-before = \rowcolors{2}{white}{gray!25}
\rowcolor{gray!50}{1,2}
]
\hline
\Block{2-1}{Class} & Max Power & Typ. Range\\[-3mm]
& (mW) & (m) \\
\hline
1 & 100 & 100\\
2 & 2.5 & 10\\
3 & 1 & 1\\
4 & 0.5 & 0.5\\
\hline
\end{NiceTabular}
\end{table}
\end{document}
Namun, Anda memerlukan beberapa kompilasi (karena nicematrixmenggunakan node PGF / Tikz).
Saya sarankan untuk menggunakan makecelldan perintah eponimnya. Dengan cara ini, Anda tidak perlu \multirowdan jarak vertikal di kepala kolom akan lebih pendek. ( Catatan : Saya harus menerjemahkan teks keterangan karena saya memiliki masalah dengan editor saya)
\documentclass{article}
\usepackage{caption, float, makecell}
\usepackage[svgnames, table]{xcolor}
\begin{document}
\begin{table}[H]
\renewcommand{\arraystretch}{1.5}
\rowcolors{2}{white}{gray!25}
\begin{center}
\begin{tabular}{ | c | c | c | }
\arrayrulecolor{black} %changes color of hline
\hline
\rowcolor{gray!50}\textbf{Class} & \makecell{Max Power\\ (mW)} & \makecell{Typ. Range\\(m)}\\
\hline
\textbf{1} & 100 & 100\\
\textbf{2} & 2.5 & 10\\
\textbf{3} & 1 & 1\\
\textbf{4} & 0.5 & 0.5\\
\hline
\end{tabular}
\caption{Comparison between 2.4GHz and 5GHz}
\end{center}
\end{table}
\end{document}
\arraystretch, untuk memuat cellspacepaket dan menambahkan baris ini di awal kode tabel (jika Anda juga memuat, siunitxganti huruf Sdengan huruf C):
\setlength{\cellspacetoplimit}{4pt}
\setlength{\cellspacebottomlimit}{4pt}
\centering
\begin{tabular}{|c|Sc|Sc|}