使用 newcolumntype 将表格左对齐到边距

使用 newcolumntype 将表格左对齐到边距

我正在尝试使用 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}

相关内容