对齐表格中的文本

对齐表格中的文本

我在表格中对齐文本时遇到问题。这是我的示例:

\documentclass{article}
\begin{document}
\begin{figure}
  \begin{tabular}{| l | p{1.5cm} | p{1.5cm}| }
      \hline
         & percentage difference &  key size increase \\ \hline
      N = 90 trials &  2.1 \% &  76 \% \\ \hline
      N = 180 trials & 1.3 \% &  40 \% \\ \hline
  \end{tabular}
  \caption{Caption here.}
\end{figure}                     
\end{document}

在此处输入图片描述

问题是一个带有文本“按键尺寸增加”的单元格,单词“按键”和“尺寸”之间有很大空格,我该如何修复它。

答案1

A\parbox使其内容对齐。这就是为什么“key”和“size”之间有这么多空格的原因。

我发现在这种情况下表列说明p{<width>}符非常不令人满意,因为结果列有一个最低限度宽度。

我宁愿使用以下解决方案之一手动插入换行符:

  • \lbCelltabular:仅存在一列的内部(我更喜欢c输入的标题),
  • \pCell: a \pbox[<vertical alignment>]{<maximum width>}{<content>}.
    \pbox宏由pbox包装。生成的盒子会折叠至所需的最小宽度。

两个宏的第一个可选参数表示插入符/\*Cell的垂直对齐方式,默认情况下是op。tabularpboxt

与您的问题无关,我也使用booktabs提供更具吸引力的输出(这么多行!)你的表格。

代码

\documentclass{article}
\usepackage{booktabs}
\newcommand*{\lbCell}[2][t]{%
    \begin{tabular}[#1]{@{}c@{}}%
    #2%
    \end{tabular}%
}
\usepackage{pbox}
\newcommand*{\pCell}[2][t]{% needs manual line-breaks!
    \pbox[#1]{\linewidth}{#2\strut}%
}
\begin{document}
\begin{tabular}{lcc}
    \toprule
                                 & \lbCell{percentage\\difference} & \lbCell{key size\\increase} \\ \midrule
    $N = \hphantom{1}90$ trials  &             2.1 \%              &            76 \%            \\
    $N = 180$ trials             &             1.3 \%              &            40 \%            \\ \bottomrule
\end{tabular}

\begin{tabular}{lcc}
    \toprule
                                 & \pCell{percentage\\difference} & \pCell{key size\\increase} \\ \midrule
    $N = \hphantom{1}90$ trials  &             2.1 \%             &           76 \%            \\
    $N = 180$ trials             &             1.3 \%             &           40 \%            \\ \bottomrule
\end{tabular}
\end{document}

输出

在此处输入图片描述

答案2

array一个解决方法是通过输入\usepackage{array}前言然后将>{\raggedright\arraybackslash}其放在p{1.5cm}最后一列中来加载包。

这是输出。

在此处输入图片描述

另一个选择是定义newcolumntype像我下面所做的那样。

\documentclass{article}
\usepackage{array}
\newcolumntype{L}{>{\raggedright\arraybackslash}p{1.5cm}}
\begin{document}
\begin{figure}
\centering
  \begin{tabular}{| l | p{1.5cm} | L| }
      \hline
         & percentage difference &  key size increase \\ \hline
      N = 90 trials &  2.1 \% &  76 \% \\ \hline
      N = 180 trials & 1.3 \% &  40 \% \\ \hline
  \end{tabular}
  \caption{Caption here.}
\end{figure}                     
\end{document}

答案3

虽然这会导致轻微的对齐问题,但我会将您的文本放在parbox

\parbox{1.5cm}{\raggedright{}key size increase}

在我看来,您使用列样式的唯一原因p{1.5cm}是为列标题创建一个框。我会采用不同的方法,方法是编写

\documentclass{article}
\begin{document}
\begin{figure}
  \begin{tabular}{| l | c | c | }
      \hline
     \rule[-0.5ex]{0pt}{0.5ex}    & \parbox[b]{1.5cm}{\raggedright{}percentage difference} & \parbox[b]{1.5cm}{\raggedright key size increase} \\ \hline
      N = 90 trials &  2.1 \% &  76 \% \\ \hline
      N = 180 trials & 1.3 \% &  40 \% \\ \hline
  \end{tabular}
  \caption{Caption here.}
\end{figure}                     
\end{document}

这样,我就创建了两个parboxes在基线上对齐的框。这样\rule[-0.5ex]{0pt}{0.5ex}就创建了一个垂直支柱,这样框就不会离hline它们下面的框太近了。

相关内容