创建具有行距和列对齐的三列表格

创建具有行距和列对齐的三列表格

我正在写一篇双栏文章:

\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}

相关内容