长表和表格的左边距不同

长表和表格的左边距不同

我想在我的文档中使用 atabular和 a longtable,但左边距没有对齐。

\documentclass[letterpaper,11pt]{article}

\usepackage{longtable}

\begin{document}

\begin{tabular}{p{2cm} p{15cm}}
entry 1 & bla bla bla bla bla \\
entry 2 & this is a tabular
\end{tabular}

\begin{longtable}{p{2cm} p{15cm}}
entry 3 & This is a longtable \\
entry 4 & with many more lines \\
entry 5 & but it isn't aligned 
\end{longtable}

\end{document}

这个问题是相关的,也是这个

\begin{longtable}{...}在上面的代码中替换\begin{longtable}[l]{...}似乎没有任何作用。

通过摸索,我发现使用\setlength{\LTleft}{18pt}边距看起来相当相等。有没有更优雅的方式使用longtables左对齐tabulars?我可以不指定数字来对齐表格吗?

答案1

在此处输入图片描述

正如评论中其他成员指出的那样,您设置的宽度大于\textwidth,在这种情况下,tabularx可以通过将第一列设置为来利用总可用宽度,p{2cm}而将其余宽度分配给第二列。\noindent对于来说也是必要的tabularx

对于 ,longtable您可以设置相同的值,但是,对于第二列,我们必须计算剩余的宽度。这是通过 完成的\dimexpr\linewidth-4\tabcolsep-2cm\relax。为了理解这一点,想象一下行是|tabcolsep||p{2cm}||tabcolsep||tabcolsep||p{length}||tabcolsep|,那么length应该等于\linewidth-2cm-4\tabcolsep

最后,我使用了包中的\toprule函数来让表格呈现出专业的外观。\bottomrulebooktabs

\documentclass[letterpaper,11pt]{article}
\usepackage{tabularx,booktabs}
\usepackage{longtable}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{p{2cm} X}\toprule
entry 1 & bla bla bla bla bla \\
entry 2 & this is a tabular \\ \bottomrule
\end{tabularx}

\begin{longtable}{p{2cm} p{\dimexpr\linewidth-4\tabcolsep-2cm\relax}}\toprule
entry 3 & This is a longtable \\
entry 4 & with many more lines \\
entry 5 & but it isn't aligned  \\ \bottomrule
\end{longtable}

\end{document}

答案2

正如评论中提到的那样,longtable居中缩进tabular。第 5 节软件包文档表示解决方案。通过添加\setlength\LTleft\parindent到序言中,longtable 将被设置为左对齐,但按通常的段落缩进缩进。

\documentclass[letterpaper,11pt]{article}

\usepackage{longtable}
\setlength\LTleft\parindent

\begin{document}

\begin{tabular}{p{2cm} p{15cm}}
entry 1 & bla bla bla bla bla \\
entry 2 & this is a tabular
\end{tabular}

\begin{longtable}{p{2cm} p{15cm}}
entry 3 & This is a longtable \\
entry 4 & with many more lines \\
entry 5 & but it isn't aligned 
\end{longtable}

\end{document}

相关内容