我正在写一篇双栏文章:
\documentclass[10pt, aps, prb, twocolumn]{revtex4-1}
我想包含一个长度为 的表格1.\linewidth
。该表格应包含三列,前两列左对齐,最后一列右对齐。最后一列也应位于 的末尾1.\linewidth
。
我有以下代码,但它非常不令人满意。这是因为我必须手动调整前两列的大小,以便将最后一列与 的末尾对齐1.\linewidth
。
\noindent
\begin{tabularx}{1.\linewidth}{p{.3\linewidth} p{.3\linewidth} r}
\hline
Animal & Description & Price (\$) \\
\hline
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\hline
\end{tabularx}
解决这个问题的正确方法是什么?我的使用方法正确吗?tabularx
或者你会建议用别的方法吗?
答案1
您可以直接使用tabular*
;我提供了两个实现,一个使用\hline
,另一个使用非常有用的包booktabs
及其功能。使用revtex4-1
,这个包需要一些推动力。
\documentclass[10pt, aps, prb, twocolumn]{revtex4-1}
\usepackage{tabularx,array,booktabs}
\usepackage{lipsum} % just for the example
% the following code is for making the booktabs example work
\AtBeginDocument{
\heavyrulewidth=.08em
\lightrulewidth=.05em
\cmidrulewidth=.03em
\belowrulesep=.65ex
\belowbottomsep=0pt
\aboverulesep=.4ex
\abovetopsep=0pt
\cmidrulesep=\doublerulesep
\cmidrulekern=.5em
\defaultaddspace=.5em
}
\begin{document}
\lipsum[1]
\noindent
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llr}
\hline
Animal & Description & Price (\$) \\
\hline
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\hline
\end{tabular*}
\lipsum[2]
\noindent
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llr}
\toprule
Animal & Description & Price (\$) \\
\midrule
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\bottomrule
\end{tabular*}
\lipsum
\end{document}
不过,我只会按照表格的自然宽度进行排版:
\begin{center}
\begin{tabular}{llr}
\toprule
Animal & Description & Price (\$) \\
\midrule
Gnat & per gram & 13.65 \\
& each & 0.01 \\
Gnu & stuffed & 92.50 \\
Emu & stuffed & 33.33 \\
Armadillo & frozen & 8.99 \\
\bottomrule
\end{tabular}
\end{center}