将表格文本的开头与正文对齐

将表格文本的开头与正文对齐

考虑这个例子

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\noindent\lipsum[1][1-2]

\noindent
\begin{tabular}{ll}
  A & B
\end{tabular}

{
\setlength{\tabcolsep}{0pt}
\noindent
\begin{tabular}{ll}
  C & D
\end{tabular}
}

\end{document}

它的输出为:

在此处输入图片描述

我想将表格中文本的开头与正文的开头对齐。

在第二个表格中,我尝试使用\setlength{\tabcolsep}{0pt}它来实现这种效果,但表格列之间的分隔消失了,这是不理想的结果。

有什么更好的解决办法?

答案1

要保持\tabcolsep其他地方不变但删除它,可以使用符号@{...}。从第 2.11.6 节LaTeX2ε 的简短介绍texdoc lshort):

可以使用 <code>@{...} 结构指定列分隔符。此命令会删除列间空格,并将其替换为花括号之间的内容。此命令的一个常见用途将在下文的十进制对齐问题中解释。另一个可能的应用是使用 <code>@{} 抑制表格中的前导空格。

在您的文档中:

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\noindent\lipsum[1][1-2]

\noindent
\begin{tabular}{ll}
  A & B
\end{tabular}

{
\setlength{\tabcolsep}{0pt}
\noindent
\begin{tabular}{ll}
  C & D
\end{tabular}
}

\noindent
\begin{tabular}{@{}ll}
  A & B
\end{tabular}

\end{document}

在此处输入图片描述

答案2

根据 的具体情况tabular,表格堆栈可能是理想的选择。堆栈上永远不会有任何前导或尾随间隙;但是,列间间隙是完全可设置的。

\documentclass{article}
\usepackage{lipsum,tabstackengine}
\strutlongstacks{T}
\begin{document}
\noindent\lipsum[1]

\noindent
\tabularLongunderstack{ll}{ Aa & B\\C & Dd}

\noindent
\setstacktabulargap{2em}%
\tabularLongunderstack{ll}{ Aa & B\\C & Dd}
\end{document}

在此处输入图片描述

相关内容