我正在定制一封信件,我想在右侧放置一个带有多行的表格,这里是一个 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}