表格中的段落左侧不齐

表格中的段落左侧不齐

我正在尝试排版一个两列的表格,其中每列由段落组成,右侧列中的段落设置为不规则左对齐。以下是我认为可行的代码的最小示例:

\documentclass{article}
\usepackage{array}
\newcommand{\lorem}{Lorem ipsum dolor sit amet, consectetur adipisicing elit.}
\begin{document}
  \begin{tabular}{p{50mm}>{\raggedleft}p{50mm}}
  \lorem&\lorem\\
  \lorem&\lorem
  \end{tabular}
\end{document}

但是,这会产生错误消息

! Extra alignment tab has been changed to \cr.
<recently read> \endtemplate

l.7   \lorem&
     \lorem
? 

而且输出也完全不是我所期望的。

有没有更好的办法?

答案1

您必须在插入开关后恢复\\使用,如上一列所示。请参阅tabular\raggedleft大批手册了解详情。

\documentclass{article}
\usepackage{array}

\newcommand{\lorem}{Lorem ipsum dolor sit amet, consectetur adipisicing elit.}

\begin{document}
  \begin{tabular}{p{5cm}>{\raggedleft\arraybackslash}p{5cm}}
    \lorem&\lorem\\
    \lorem&\lorem
  \end{tabular}
\end{document}

答案2

有没有更好的办法?

我会说是的。我建议改用\RaggedLeft:不需要\arraybackslash修复,并且理由更充分,因为 p 列中有连字符。

解释:

为了更好地说明,让我们减少 p 列的宽度。方法如下\raggedleft

\documentclass{article}
\usepackage{array}
\newcommand{\lorem}{Lorem ipsum dolor sit amet, consectetur adipisicing elit.}
\begin{document}
  \begin{tabular}{p{30mm}>{\raggedleft\arraybackslash}p{30mm}}
  \lorem&\lorem
  \end{tabular}
\end{document}

替代文本

现在我们改变:

\usepackage{ragged2e}
...
  \begin{tabular}{p{30mm}>{\RaggedLeft}p{30mm}}

替代文本

它不再那么参差不齐,因为现在支持连字符,就像左边的 p 单元格一样。

进一步说明:

  • p 单元格的内容完全对齐。这可能会导致单词之间出现不必要的间隙,并且与右侧参差不齐的方式不匹配。\RaggedRight左侧 p 单元格的 A 可能是一个好主意,而且一致。

  • 特别是在窄列中,额外插入\hspace{0pt}可确保正确连字。否则,TeX 不会对框中的第一个单词进行连字。

由于新的列类型使一切变得更容易,我的选择是

\newcolumntype{L}[1]{>{\RaggedRight\hspace{0pt}}p{#1}}
\newcolumntype{R}[1]{>{\RaggedLeft\hspace{0pt}}p{#1}}

在正文中我只需要写

\begin{tabular}{L{30mm}R{30mm}}

答案3

在表格的最后一列使用 \raggedleft\arraybackslash。例如,这是在最后一列创建一个勾选框的函数的一部分(在这种情况下是最右边的空框)

\raggedleft\arraybackslash\ifnum#2[3]=0{\emptyTick}\else{\crossedTick}\fi\\

在此处输入图片描述

以下是完整的代码示例回购

相关内容