格式化表格

格式化表格

我有一个用以下代码创建的表:

\begin{table}[htdp]
\caption{Comparison of Elements in Air on the Space Station and sea level on Earth}    
\centering
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Chemical Component & Percentage in Earth's Atomsphere & Ideal Values for the Space Station &         Astronaut Exhalation\\ \hline
Nitrogen      & 78.084\% & 78.000\% & 74.200\% \\ \hline
Oxygen        & 20.946\% & 21.000\% & 15.300\% \\ \hline
Argon         & 0.934\%  &  0.000\% & 0.000\% \\ \hline
Carbon Dioxide& 0.033\%  &  0.000\% & 3.600\% \\ \hline
Water Vapour  & 0.030\%  &  1.000\% & 0.800\% \\ \hline
Trace Elements& 0.003\%  &  0.000\% & 0.800\% \\ \hline
\end{tabular}
\end{center}
\label{default}
\end{table}

但是它会粘在页面上,所以我该如何格式化它才能让它适合纵向模式而不是横向模式的页面。

答案1

\documentclass{article}
\usepackage{tabularx,ragged2e}
\newcolumntype{x}{>{\Centering}X}

\begin{document}
\begin{table}[htdp]
\caption{Comparison of Elements in Air on the Space Station and sea level on Earth}\label{default}
\begin{tabularx}{\linewidth}{|>{\RaggedRight}p{2.5cm}|x|x|x|}\hline
Chemical Component & Percentage in Earth's Atomsphere & Ideal Values for the Space Station & Astronaut Exhalation\\ \hline
Nitrogen      & 78.084\% & 78.000\% & 74.200\% \\ \hline
Oxygen        & 20.946\% & 21.000\% & 15.300\% \\ \hline
Argon         & 0.934\%  &  0.000\% &  0.000\% \\ \hline
Carbon Dioxide& 0.033\%  &  0.000\% &  3.600\% \\ \hline
Water Vapour  & 0.030\%  &  1.000\% &  0.800\% \\ \hline
Trace Elements& 0.003\%  &  0.000\% &  0.800\% \\ \hline
\end{tabularx}
\end{table}

\end{document}

顺便说一句:垂直线不会使表格更易读......

答案2

要了解表格设计,我不能赞扬booktabs打包足够多(请参阅下面文档中的前后示例)。对于您手头的问题,我建议要么想出更短的列标题,要么将它们分成几行。这个问题已被讨论为如何在表格中换行

来自 booktas 包的关于表格设计的示例

另一个答案 艾伦·芒恩使用该包格式化了问题中的表格booktabs,并解决了如何将列标题分成两行的问题。我发现它接近完美。

答案3

使用array包可以更好地控制表格列的规格。您的问题是由列标题的长度引起的;您需要指定宽度,但标题仍需居中。通常不建议在表格中使用垂直线,也不建议在每个单元格中放置单位(此处为“%”)(它们应该放在列标题中)。鉴于所有数值都是小数,您还需要对齐小数点。右对齐的列可以做到这一点,但包dcolumn提供了更大的灵活性。正如 Christian 提到的那样,`booktabs 包是这里的黄金标准。

这是使用这些原则的表格的版本。

\documentclass{article}
\usepackage{booktabs,array,dcolumn}

\newcolumntype{d}{D{.}{.}{2.3}}
\newcolumntype{C}{>{\centering}p}
\begin{document}
\begin{table}[htdp]
\caption{Comparison of Elements in Air on the Space Station and sea level on Earth}    
\centering
\begin{center}
\begin{tabular}{p{1.25in}ddd}
\toprule
\multicolumn{1}{C{1.25in}}{Chemical Component} & \multicolumn{1}{C{1in}}{Earth's Atmosphere (\%)} & \multicolumn{1}{C{1.25in}}{Ideal Values for the Space Station (\%)} &         \multicolumn{1}{C{1in}}{Astronaut Exhalation (\%)}\\
\midrule
Nitrogen & 78.084 & 78.000 & 74.200 \\
Oxygen & 20.946 & 21.000 & 15.300 \\
Argon & 0.934 & 0.000 & 0.000 \\
Carbon Dioxide & 0.033 & 0.000 & 3.600 \\
Water Vapour & 0.030 & 1.000 & 0.800 \\
Trace Elements & 0.003 & 0.000 & 0.800 \\ 
\bottomrule
\end{tabular}
\end{center}
\label{default}
\end{table}
\end{document}

代码输出

答案4

您应该堆叠长单元格标题,例如通过手动将它们放置在几行上或使用\shortstack

\shortstack{Ideal Values\\for the\\Space Station}

\strut您可能需要在中添加\\以使线条之间保持恒定的距离。

相关内容