表格自动p宽度和右对齐

表格自动p宽度和右对齐

我正在定制一封信件,我想在右侧放置一个带有多行的表格,这里是一个 MWE:

\documentclass{article}
\begin{document}
\noindent
Text \\
\hrule
\hfill \begin{tabular}{r p{2cm}}
    A & first line \newline second line \\
    B & text
\end{tabular}
\end{document}

如何将 p 列的列宽设置为尽可能小的值?我尝试了 \width,但它弄乱了表格。

我看到有人建议使用 tabularx,但这样我就必须指定表格本身的宽度,而且 hfill 不再正确地将其右对齐。但我希望表格和 p 列的宽度尽可能小,并且表格右对齐!

编辑:此外,A 应该与多行的第一行对齐。

答案1

我个人建议按照如下方法制作表格。

\documentclass{article}
\usepackage{makecell}
\begin{document}
\hfill \begin{tabular}{r l}
    A & \makecell[l]{first line\\ second line} \\
    B & text
\end{tabular}
\end{document}

通过使用l列,宽度最小(适合最长条目的长度),并且您makecell可以确定换行的位置。

正如 Schweinebacke 在评论中指出的那样,可以用 来替换\makecell[l]\makecell[tl]垂直对齐“A”和“第一行”。

答案2

如果你不想使用makecell,您可以使用两个表格行:

\documentclass{article}
\begin{document}
\noindent
Text \\
\hrule
\hfill \begin{tabular}{rl}
    A & first line \\
      & second line \\
    B & text
\end{tabular}
\end{document}

或者在 atabular内部使用 a tabular

\documentclass{article}
\begin{document}
\noindent
Text \\
\hrule
\hfill \begin{tabular}{rl}
    A & {\begin{tabular}[t]{@{}l@{}}first line \\
           second line
         \end{tabular}}\\
    B & text
\end{tabular}
\end{document}

两者结果相同

相关内容