Bagaimana cara membuat tabel yang terlihat bagus di Latex?
Saya bisa membuat meja yang terlihat hambar. Saya bertanya-tanya bagaimana cara membuat tabel seperti di bawah ini:

\begin{table}[htbp]
\caption{Variable Descriptions}
\label{tab:2}
\begin{center}
\begin{tabular}{|c|c|}\hline
Variables & Descriptions\\\hline
\textit{ln(wage)} & log of wage\\
\textit{educ} & years of education\\
\textit{black} & 1 if black and 0 if not\\
\textit{hisp} & 1 if hispanic and 0 if not\\
\textit{exper} & years of experience\\
\textit{exper$^{2}$} & years of experience squared\\
\textit{married} & 1 if married and 0 if not\\
\textit{union} & 1 if belongs to a union and 0 if not\\\hline
\end{tabular}
\end{center}
\end{table}
Pertanyaan khususnya adalah:
- Bagaimana cara mengganti warna baris antara abu-abu dan putih? Apakah ada cara untuk membuat perintah daripada mewarnainya secara manual?
Jawaban
Berikut tiga versi tabel Anda:

\documentclass{article}
\usepackage[table,svgnames]{xcolor} % provides the \rowcolors command
\usepackage{caption} % for improved spacing around the caption
\usepackage{array} % enables >{...} in the coumn specifier section, used in table 2 & 3
\usepackage{booktabs} % for improved spacing around horizontal lines, used in example 3, incompatible with vertical lines, be careful if you want to to combine it with color
\usepackage[column=0]{cellspace} % for adding a small amount of space above and below each cell, only used in table 2
\setlength{\cellspacetoplimit}{2pt}
\setlength{\cellspacebottomlimit}{\cellspacetoplimit}
\begin{document}
\begin{table}[htbp]
\caption{Variable Descriptions}
\label{tab:2}
\centering % used \centering instead of the center environment since the latter adds additional white space
\rowcolors{2}{white}{lightgray}
\begin{tabular}{|c|c|}\hline
Variables & Descriptions\\\hline
\textit{ln(wage)} & log of wage\\
\textit{educ} & years of education\\
\textit{black} & 1 if black and 0 if not\\
\textit{hisp} & 1 if hispanic and 0 if not\\
\textit{exper} & years of experience\\
\textit{exper$^{2}$} & years of experience squared\\
\textit{married} & 1 if married and 0 if not\\
\textit{union} & 1 if belongs to a union and 0 if not\\\hline
\end{tabular}
\end{table}
\begin{table}[htbp]
\caption{Variable Descriptions}
\label{tab:2}
\centering
\rowcolors{2}{white}{lightgray}
\begin{tabular}{>{\itshape}0l0l}\hline % used >{\itshape} in order to be able to remove the repeated occurences of \textit in the first column, used l type columns instead of c columns for a cleaner look, added small vertical space above and below the rows with the help of the cellspace package, removed all vertical lines
\textup{Variables} & Descriptions\\\hline
ln(wage) & log of wage\\
educ & years of education\\
black & 1 if black and 0 if not\\
hisp & 1 if hispanic and 0 if not\\
exper & years of experience\\
exper\textsuperscript{2} & years of experience squared\\
married & 1 if married and 0 if not\\
union & 1 if belongs to a union and 0 if not\\\hline
\end{tabular}
\end{table}
\begin{table}[htbp]
\caption{Variable Descriptions}
\label{tab:2}
\centering
\begin{tabular}{>{\itshape}ll}
\toprule % replaced all \hline commands with rules from the booktabs package
\textup{Variables} & Descriptions\\
\midrule
ln(wage) & log of wage\\
educ & years of education\\
black & 1 if black and 0 if not\\
hisp & 1 if hispanic and 0 if not\\
exper & years of experience\\
exper\textsuperscript{2} & years of experience squared\\
married & 1 if married and 0 if not\\
union & 1 if belongs to a union and 0 if not\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Saya akan menjawab inti dari pertanyaan Anda: I am wondering how to create tables like this.
Saya bekerja dengan tabel sepanjang waktu, dari hasil eksperimen hingga anggaran bulanan. Untuk tugas-tugas seperti pengurutan, pemformatan, pengecekan, dan analisis data sederhana, saya melakukannya di Excel (menggunakan 2013). Tabel terakhir pada akhirnya akan keluar setelah banyak pengulangan dan waktu.
Dalam contoh Anda jelas bahwa data keluar dari database, akan ada hasil akumulasi vertikal dari semua tambalan dan semua perbaikan, pemeriksaan silang untuk konsistensi, dll.
LaTeX adalah untuk menerbitkan laporan yang bagus, tetapi ini terjadi beberapa kali dalam setahun. Hanya dalam tabel yang sangat sederhana data dapat ditulis langsung ke LaTeX.
Alur kerja Excel ke LaTeX saya memiliki 3 langkah:
1 Format tabel akhir dengan gaya yang Anda butuhkan, di Excel. Gunakan warna, penggaris, dll., Sesuai kebutuhan.

- Ekspor tabel menggunakan add-in Excel2Latex CTAN. Mudah dipasang dan berfungsi seperti yang diiklankan.
https://ctan.org/tex-archive/support/excel2latex?lang=en
salin ke clipboard dan tempelkan ke dokumen LaTeX dasar.

Anda perlu menambahkan beberapa paket dasar (lihat contoh saya) dan menjalankan kode yang dihasilkan.
Anda akan melihat bahwa sebagian besar fitur seperti multi-baris, warna, dan yang terpenting, konten berhasil diteruskan ke LaTeX. Jika Anda berubah pikiran tentang detail dalam gaya, mudah untuk mengedit lembar Excel dan membuat ulang kode LaTeX.
3 Terapkan sentuhan akhir: font, regangan, tanda hubung, simbol, dll. Menggunakan perintah LaTeX.
Untuk contoh Anda, saya menyertakan caption
paket untuk mencocokkan teks asli, menambahkan superskrip di baris pertama, garis bawah di baris kedua, dan topi kecil sesuai kebutuhan. Saya menggunakan arraystretch
dari 1,3 untuk memperluas sel secara vertikal.
Dalam kasus khusus ini, saya harus menyertakan 7 titik diimbangi dalam baris abu-abu ganda, untuk mencegah latar belakang sel bawah menimpa bagian konten sel. Ini adalah kejadian umum saat bekerja dengan sel berwarna. Beri komentar [7pt]
dan lihat apa yang terjadi.
Tentu saja semuanya akan terlihat bagus jika Anda hanya menggunakan satu warna latar belakang! Tapi saya menemukan gaya warna baris alternatif sangat bagus dan suatu keharusan dengan tabel multi-kolom yang lebar. Presentasi beamer akan gagal jika Anda hanya menggunakan hitam dan putih.
\documentclass[12pt,a4paper]{book}
\RequirePackage[table]{xcolor}
\RequirePackage{booktabs}
\RequirePackage{multirow}
\RequirePackage{caption}% typesetting of captions
\captionsetup{%
labelfont={bf}, %Table 1
textfont={bf} %caption font
}%
\begin{document}
% Table generated by Excel2LaTeX from sheet 'Sheet1'
\begin{table}[htbp]
\renewcommand{\arraystretch}{1.3} % expand the rows vertically
\setlength\belowcaptionskip{8pt}
\centering
\caption{Test--suite based program repair tools for Java.}
\begin{tabular}{llrrr}
\toprule
\multicolumn{1}{c}{\multirow{2}[2]{*}{Repear tool}} & Benchmark used & \multicolumn{1}{r}{\multirow{2}[2]{*}{\# Bugs}} & \multirow{2}[2]{*}{\# Patched\textsuperscript{a}} & \multirow{2}[2]{*}{\# Fixed\textsuperscript{b}} \\
& in evaluation & & & \\
\midrule
\multicolumn{5}{l}{\underline{\emph{Generate--and--validate}}} \\
\rowcolor[rgb]{ .906, .902, .902} ACS [4] & Defects4J & 224 & 23 & 17 \\
\multirow{2}[0]{*}{ARJA [50]} & Defects4J & 224 & 59 & 18 \\
& QuixBugs [48] & 40 & 4 & 2 \\
\rowcolor[rgb]{ .906, .902, .902} \multirow{2}[1]{*}{\textsc{CapGen} [42]} & Defects4J & 224 & 25 & 22 \\[7pt] % shift needed for colored multirows
\rowcolor[rgb]{ .906, .902, .902} & IntroClassJava & 297 & -- & 25 \\
\multirow{2}[0]{*}{Cardumen [28]} & Defects4J & 356 & 77 & -- \\
& QuixBugs [48] & 40 & 5 & 3 \\
\rowcolor[rgb]{ .906, .902, .902} DeepRepair [43] & Defects4J & 374 & 51 & -- \\
\multirow{2}[0]{*}{\textsc{Elixir} [37]} & Defects4J & 82 & 41 & 26 \\
& Bugs.jar & 127 & 39 & 22 \\
\rowcolor[rgb]{ .906, .902, .902} GenProg-A & Defects4J & 224 & 36 & -- \\
HDRepair [18] & Defects4J & 90 & -- & 23 \\
\rowcolor[rgb]{ .906, .902, .902}\textsc{Jaid} [2] & Defects4J & 138 & 31 & 25 \\
\multirow{3}[0]{*}{jGenProg [27]} & Defects4J & 224 & 29 & -- \\
& Defects4J [26] & 224 & 27 & 5 \\
& QuixBugs [48] & 40 & 2 & 0 \\
\ldots & \ldots & \ldots & \ldots & \ldots \\ % more rows follows
\bottomrule
\multicolumn{5}{l}{\footnotesize \textsuperscript{a} As reported last week. \ \textsuperscript{b} Verified by QC. }\\
\end{tabular}%
\label{tab:addlabel}%
\end{table}%
\end{document}
Inilah hasil akhirnya. Total waktu 1-2 jam, sebagian besar dalam pemasukan data dan pemformatan lembar.

Sebagai latihan terakhir, coba tambahkan kolom lain ke tabel yang diminta oleh atasan Anda sebelum tenggat waktu: Still Missing
dengan data (dihitung di lembar excel) yang Bugs
minus Patches
minus Fixed
dan lihat bagaimana semuanya bekerja (dan betapa sedikit waktu yang dibutuhkan!) . Situasi dunia nyata.
Catatan: Jawaban ini membutuhkan versi 5.2 (2020-08-19) nicematrix
.
Gambar yang diberikan oleh OP menunjukkan baris yang diwarnai secara bergantian. Tetapi beberapa baris sebenarnya merupakan penyatuan kembali beberapa baris. Dalam kondisi ini, sulit untuk menggunakan \rowcolors
dari xcolor
. Dalam versi terbaru nicematrix
(v. 5.2 dari 2020-08-19), instruksi bawaan \rowcolors
(untuk digunakan code-before
) memiliki opsi respect-blocks
untuk mengatasi masalah itu. Baris-baris yang mencakup satu blok dianggap hanya satu baris.
\documentclass{article}
\usepackage{nicematrix}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{makecell}
\usepackage{enumitem}
\NiceMatrixOptions{notes = { para , style = \alph{#1} } }
\begin{document}
\begin{NiceTabular}{ll@{\space}lrrr}%
[ code-before = \rowcolors{3}{gray!20}{}[respect-blocks] ]
\toprule
Repair tool &
\multicolumn{2}{l}{\makecell[l]{Benchmark used\\ in evaluation}}
&
\# Bugs &
\# Patched\tabularnote{Note}&
\# Fixed\tabularnote{Note}\\
\midrule
\underline{\emph{Generate-and-validate}} \\
ACS [46] & Defects4J & & 224 & 23 & 17 \\
\Block{2-1}{}\multirow{2}{*}{ARJA [50]} & Defects4J& & 224 & 59 & 18 \\
& QuixBugs& [38] & 40 & 4 & 2 \\
\Block{2-1}{}\multirow{2}{*}{\textsc{CapGen} [42]} & Defects4J& & 224 & 25 & 22 \\
& \rlap{IntroClassJava} & & 297 & -- & 25 \\
\Block{2-1}{}\multirow{2}{*}{Cardumen [28]} & Defects4J& & 356 & 77 & -- \\
& QuixBugs& [48] & 40 & 5 & 3 \\
DeepRepair [43] & Defects4J& & 374 & 51 & - \\
\Block{2-1}{}\multirow{2}{*}{\textsc{Elixir} [37]} & Defects4J& & 82 & 41 & 26 \\
& Bugs.jar & & 127 & 39 & 22 \\
GenProg-1 [50] & Defects4J& & 224 & 36 & -- \\
HDRepair [18] & Defects4J& & 90 & -- & 23 \\
\textsc{Jaid} [2] & Defects4J& & 138 & 31 & 25 \\
\Block{3-1}{}\multirow{3}{*}{jGenProg [27]} & Defects4J & & 224 & 29 & -- \\
& Defects4J & [26] & 224 & 27 & 5 \\
& QuixBugs& [48] & 40 & 2 & 0 \\
\Block{3-1}{}\multirow{3}{*}{jKali [27]} & Defects4J& & 224 & 22 & -- \\
& Defects4J& [26] & 224 & 22 & 1 \\
& QuixBugs& [48] & 40 & 2 & 1 \\
\Block{2-1}{}\multirow{2}{*}{jMutRepair [27]} & Defects4J& & 224 & 17 & -- \\
& QuixBugs& [48] & 40 & 3 & 1 \\
Kali-A [50] & Defects4J& & 224 & 33 & -- \\
LSRepair [23] & Defects4J& & 395 & 38 & 19 \\
PAR [17] & \rlap{PARDataset} & & 119 & 27 & -- \\
\Block{2-1}{}\multirow{2}{*}{PSRepair-A [50]} & Defects4J& & 224 & 44 & -- \\
& QuixBugs& [48] & 40 & 4 & 2 \\
SimFix [14] & Defects4J& & 357 & 56 & 34 \\
\textsc{SketchFix} [13] & Defects4J& & 357 & 26 & 19 \\
SOFix [24] & Defects4J& & 224 & -- & 23 \\
ssFix [45] & Defects4J& & 357 & 60 & 20 \\
xPar [18] & Defects4J& & 90 & -- & 4 \\
\bottomrule
\end{NiceTabular}
\end{document}

Bagaimana dengan yang ini? (menggunakan matrix
TikZ)

\documentclass[tikz,border=5mm]{standalone}
\usepackage{amsmath,amssymb,amsthm}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of nodes,draw=teal,thick,inner sep=.5pt,
nodes in empty cells,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={minimum height=9mm,anchor=center},
row 1/.style={nodes={font=\bfseries}},
column 1/.style={nodes={minimum width=2.5cm,text width=1.5cm,align=left,font=\itshape}},
column 2/.style={nodes={minimum width=7cm,text width=6cm,align=left}},
every even row/.style={nodes={fill=cyan!20}}
]{
Variables & Descriptions\\
ln(wage) & log of wage\\
educ & years of education\\
black & 1 if black and 0 if not\\
hisp & 1 if hispanic and 0 if not\\
exper & years of experience\\
exper\textsuperscript{2} & years of experience squared\\
married & 1 if married and 0 if not\\
union & 1 if belongs to a union and 0 if not\\
};
\end{tikzpicture}
\end{document}