有没有办法在LaTeX中对齐表格?
我在同一页面上写了一个包含多个表格的文档,通常边缘不匹配。
我希望左右两边都有对齐的表格。
\paragraph{Articoli}
\begin{large}
\begin{tabular}{ | l | l | l | p{3cm} |}
\hline
\textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo}
\\ \hline
& & & 1500 occorrenze \\ \hline
Codice & Char(7) & 7 & 10,7 kB \\ \hline
Nome & Varchar (100) & 100 & 150 kB \\ \hline
Marca & Varchar (100) & 100 & 150 kB \\ \hline
Prezzo & Money & 8 & 12,2 kB \\ \hline
Disponibile & Integer & 4 & 6.2 kB \\ \hline
Soglia & Integer & 4 & 6.2 kB \\ \hline
Reparto & Char (4) & 4 & 6.2 kB \\ \hline
Totale & & & 321 kB \\ \hline
Dati + Block Header & & & 322 kB \\ \hline
\end{tabular}
\paragraph{Reparti}
\begin{tabular}{ | l | l | l | p{3cm} |}
\hline
\textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo}
\\ \hline
& & & 120 occorrenze \\ \hline
Codice & Char(4) & 4 & 0,5 kB \\ \hline
Nome & Varchar (100) & 100 & 12.1 kB \\ \hline
Sezione & Char(4) & 4 & 0.5 kB \\ \hline
Totale & & & 12.2 kB \\ \hline
Dati + Block Header & & & 12.3 kB \\ \hline
\end{tabular}
\paragraph{Pagamenti}
\begin{tabular}{ | l | l | l | p{3cm} |}
\hline
\textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\ \hline
& & & 10 occorrenze \\ \hline
Codice & Char(4) & 4 & 0,1 kB \\ \hline
Nome & Varchar (100) & 100 & 1 kB \\ \hline
Totale & & & 1.1 kB \\ \hline
Dati + Block Header & & & 1.2 kB \\ \hline
\end{tabular}
答案 0 :(得分:0)
有很多方法可以实现这种对齐:
使用包含所有内容的单个tabular
。这可确保列全部使用相同的宽度:
\documentclass{article}
\begin{document}
\begin{tabular}{ l | l | l | l | p{3cm} |}
\cline{2-5}
& \textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\
\cline{2-5}
& & & & 1500 occorrenze \\ \cline{2-5}
& Codice & Char(7) & 7 & 10,7 kB \\ \cline{2-5}
& Nome & Varchar (100) & 100 & 150 kB \\ \cline{2-5}
& Marca & Varchar (100) & 100 & 150 kB \\ \cline{2-5}
\textbf{Articoli} & Prezzo & Money & 8 & 12,2 kB \\ \cline{2-5}
& Disponibile & Integer & 4 & 6.2 kB \\ \cline{2-5}
& Soglia & Integer & 4 & 6.2 kB \\ \cline{2-5}
& Reparto & Char (4) & 4 & 6.2 kB \\ \cline{2-5}
& Totale & & & 321 kB \\ \cline{2-5}
& Dati + Block Header & & & 322 kB \\ \cline{2-5}
\multicolumn{1}{l}{}\\[\bigskipamount]
\cline{2-5}
& \textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\
\cline{2-5}
& & & & 120 occorrenze \\ \cline{2-5}
& Codice & Char(4) & 4 & 0,5 kB \\ \cline{2-5}
\textbf{Reparti} & Nome & Varchar (100) & 100 & 12.1 kB \\ \cline{2-5}
& Sezione & Char(4) & 4 & 0.5 kB \\ \cline{2-5}
& Totale & & & 12.2 kB \\ \cline{2-5}
& Dati + Block Header & & & 12.3 kB \\ \cline{2-5}
\multicolumn{1}{l}{}\\[\bigskipamount]
\cline{2-5}
& \textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\
\cline{2-5}
& & & & 10 occorrenze \\ \cline{2-5}
& Codice & Char(4) & 4 & 0,1 kB \\ \cline{2-5}
\raisebox{.5\normalbaselineskip}[0pt][0pt]{\textbf{Pagamenti}} &
Nome & Varchar (100) & 100 & 1 kB \\ \cline{2-5}
& Totale & & & 1.1 kB \\ \cline{2-5}
& Dati + Block Header & & & 1.2 kB \\ \cline{2-5}
\end{tabular}
\end{document}
使用框/重叠/幻像调整相应的条目,使它们对齐:
\documentclass{article}
\begin{document}
\leavevmode\rlap{\textbf{Articoli}}%
\phantom{\textbf{Pagamenti}}
\begin{tabular}{ | l | l | l | p{3cm} |}
\hline
\textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\
\hline
& & & 1500 occorrenze \\ \hline
Codice & Char(7) & 7 & 10,7 kB \\ \hline
Nome & Varchar (100) & 100 & 150 kB \\ \hline
Marca & Varchar (100) & 100 & 150 kB \\ \hline
Prezzo & Money & 8 & 12,2 kB \\ \hline
Disponibile & Integer & 4 & 6.2 kB \\ \hline
Soglia & Integer & 4 & 6.2 kB \\ \hline
Reparto & Char (4) & 4 & 6.2 kB \\ \hline
Totale & & & 321 kB \\ \hline
Dati + Block Header & & & 322 kB \\ \hline
\end{tabular}
\bigskip
\leavevmode\rlap{\textbf{Reparti}}%
\phantom{\textbf{Pagamenti}}
\begin{tabular}{ | l | l | l | p{3cm} |}
\hline
\textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\
\hline
& & & 120 occorrenze \\ \hline
Codice & Char(4) & 4 & 0,5 kB \\ \hline
Nome & Varchar (100) & 100 & 12.1 kB \\ \hline
Sezione & Char(4) & 4 & 0.5 kB \\ \hline
Totale & & & 12.2 kB \\ \hline
Dati + Block Header & & & 12.3 kB \\ \hline
\end{tabular}
\bigskip
\textbf{Pagamenti}
\begin{tabular}{ | l | l | l | p{3cm} |}
\hline
\textbf{Attributo} & \textbf{Tipo} & \textbf{Byte} & \textbf{Complessivo} \\
\hline
& & & 10 occorrenze \\ \hline
Codice & Char(4) & 4 & 0,1 kB \\ \hline
Nome & Varchar (100) & 100 & 1 kB \\ \hline
Totale & & & 1.1 kB \\ \hline
Dati + Block Header & & & 1.2 kB \\ \hline
\end{tabular}
\end{document}
请注意在重叠行末尾使用%
;这是为了避免虚假的空间。请参阅What is the use of percent signs (%
) at the end of lines?
以下是使用booktabs
和siunitx
的另一个演示文稿,其中包括过度使用水平规则而根本没有垂直规则:
\documentclass{article}
\usepackage{booktabs,siunitx,etoolbox}
\newcommand{\tipochar}[1]{Char~(#1)}
\newcommand{\tipovarchar}[1]{Varchar~(#1)}
\newcommand{\tipomoney}{Money}
\newcommand{\tipointeger}{Integer}
\sisetup{%
round-integer-to-decimal,
round-precision = 1,
round-mode = places
}%
\robustify\bfseries
\begin{document}
\begin{tabular}{
>{\hspace*{1em}\itshape}l
l
S[table-format = 3.1]
S[table-format = 3.2]}
\toprule
\multicolumn{1}{l}{\bfseries Attributo} &
\bfseries Tipo &
\multicolumn{1}{l}{\bfseries Byte} &
\multicolumn{1}{l}{\bfseries Complessivo [kB]} \\
\midrule
\multicolumn{1}{l}{Articoli} & & & \multicolumn{1}{c}{\num{1500} occorrenze} \\
Codice & \tipochar{7} & 7 & 10.7 \\
Nome & \tipovarchar{100} & 100 & 150 \\
Marca & \tipovarchar{100} & 100 & 150 \\
Prezzo & \tipomoney & 8 & 12.2 \\
Disponibile & \tipointeger & 4 & 6.2 \\
Soglia & \tipointeger & 4 & 6.2 \\
Reparto & \tipochar{4} & 4 & 6.2 \\
Totale & & & 321 \\
Dati + Block Header & & & 322 \\[.5\normalbaselineskip]
\multicolumn{1}{l}{Reparti} & & & \multicolumn{1}{c}{\num{120} occorrenze} \\
Codice & \tipochar{4} & 4 & 0.5 \\
Nome & \tipovarchar{100} & 100 & 12.1 \\
Sezione & \tipochar{4} & 4 & 0.5 \\
Totale & & & 12.2 \\
Dati + Block Header & & & 12.3 \\[.5\normalbaselineskip]
\multicolumn{1}{l}{Pagamenti} & & & \multicolumn{1}{c}{\num{10} occorrenze} \\
Codice & \tipochar{4} & 4 & 0.1 \\
Nome & \tipovarchar{100} & 100 & 1 \\
Totale & & & 1.1 \\
Dati + Block Header & & & 1.2 \\
\bottomrule
\end{tabular}
\end{document}