我正在尝试使用 LaTeX 中的命令制作跨越正文宽度的简单表格\newcolumntype
。
在左列中,我希望文本右对齐(在列内)。但是,我希望此列的左侧与左边距对齐。
在右栏中,我希望文本左对齐,并继续直到到达右边距。
我希望两列之间有一点填充。
我当前的代码如下:
\newcolumntype{L}{>{\raggedleft}p{0.2\textwidth}}
\newcolumntype{R}{p{0.7\textwidth}}
表格如下:
\begin{tabular}{L!{}R}
...
\end{tabular}
我遇到的问题是,左侧列无法与文档中的左边距对齐。相反,它会严重缩进。我不知道该如何修复它。任何建议都非常感谢!
答案1
我建议您使用tabular*
而不是tabular
环境并将环境的整体宽度设置tabular*
为\textwidth
。
由于您写道:“在右栏中,我希望文本左对齐”,我认为列定义应该是
\newcolumntype{R}{>{\raggedright}p{0.7\textwidth}}
而不仅仅是
\newcolumntype{R}{p{0.7\textwidth}}
\noindent
并在 之前插入指令\begin{tabular*}
。
showframe
由于包已加载到底层简短测试文档中,因此绘制了以下屏幕截图中的框线。
\documentclass{article}
\usepackage{array,showframe,lipsum}
\newcolumntype{L}{>{\raggedleft} p{0.225\textwidth}}
\newcolumntype{R}{>{\raggedright}p{0.725\textwidth}}
\begin{document}
\noindent% <-- very important
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} LR @{}}
\lipsum[1][2-4] & \lipsum[2] \\
\end{tabular*}
\end{document}
附录longtable
:以下是使用环境而不是环境时如何实现相同结果的方法tabular*
。(我不会发布第二张屏幕截图,因为它与上面显示的屏幕截图相同。)
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{@{\extracolsep{\fill}} LR @{}}
\lipsum[1][2-4] & \lipsum[2] \\
\end{longtable}