我想在我的文档中使用 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
函数来让表格呈现出专业的外观。\bottomrule
booktabs
\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}