这很奇怪为什么每列的宽度总和不等于 longtable 的总宽度。我有两张表:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{array}
\usepackage{titletoc}
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{longtable}
\begin{document}
\textwidth 15.95cm
\begin{center}
\begin{longtable}{
|p{0.25cm}
|p{4.6cm}
|p{2 cm}
|p{2.2cm}
|p{0.8cm}
|p{2.1cm}
|p{1.9cm}|
}
\multicolumn{7}{>{\centering}p{\textwidth}}{1
}\tabularnewline\hline
a & a & a & a & a & a & a
\tabularnewline\hline
\end{longtable}
\end{center}
\begin{center}
\begin{longtable}{
| >{\centering}p{13cm}
| >{\raggedright}p{9.cm}
| >{\raggedright}p{2.42cm}
| >{\raggedright}p{2.42cm} |
}
\multicolumn{4}{>{\centering}p{\textwidth}}{
2
}\tabularnewline\hline
a & a & a & a
\tabularnewline\hline
\end{longtable}
\end{center}
\end{docume
PDF 中的两个表格的宽度完全相同。
正如 marmot 所说,桌子的总宽度应该是
sum of columns + (n-1)*\arraycolsep
以及如何知道的价值\arraycolsep
?
\textwidth
更一般地,如何使 PDF 中的所有表格具有相同的宽度?中的width 是什么意思\multicolumn{7}{>{\centering}p{\textwidth}}
。
而且,当我减少某些列的宽度时,表格第一行的宽度会减少,第二行不会改变;当我增加某些列的宽度时,第一行和第二行都会增加?
答案1
您的表格还有更多问题。
- 柱宽总和不等于
\textwidth
(15.95 厘米), - 多列单元格的宽度等于
\textwidth
,因此它延伸整个列,使整个表格的宽度等于\textwidth
下面的例子中,在确定列宽时进行了
\tabcolsep
考虑\arrayrulewidth
。\documentclass{article} \usepackage[hmargin=2.525cm]{geometry}% %\textwidth 15.95cm \usepackage{array, longtable} \newcolumntype{C}[1]{>{\centering\arraybackslash} p{#1}} \newcolumntype{R}[1]{>{\raggedright\arraybackslash}p{#1}} %-------------------------------------- only for show page layout \usepackage{showframe} \renewcommand\ShowFrameLinethickness{0.25pt} \renewcommand*\ShowFrameColor{\color{red}} %---------------------------------------------------------------% \begin{document} %\begin{center} width of table determined by sum of column width \begin{longtable}{ |p{\dimexpr0.25cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr4.6cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2 cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2.2cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr0.8cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2.1cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr1.9cm-2\tabcolsep-1.13\arrayrulewidth}| } %\multicolumn{7}{|C{\dimexpr\linewidth-2\tabcolsep-2\arrayrulewidth}|}{1} \hline a & a & a & a & a & a & a \\ \hline \end{longtable} %\end{center} width of table determined by multi column cell width \begin{longtable}{ |p{\dimexpr0.25cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr4.6cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2 cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2.2cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr0.8cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2.1cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr1.9cm-2\tabcolsep-1.13\arrayrulewidth}| } \multicolumn{7}{|C{\dimexpr\linewidth-2\tabcolsep-2\arrayrulewidth}|}{1} \\ \hline a & a & a & a & a & a & a \\ \hline \end{longtable} width of the multi column cell is adopted to sum of ll columns widths \begin{longtable}{ |p{\dimexpr0.25cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr4.6cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2 cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2.2cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr0.8cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr2.1cm-2\tabcolsep-1.13\arrayrulewidth} |p{\dimexpr1.9cm-2\tabcolsep-1.13\arrayrulewidth}| } \multicolumn{7}{|c|}{1} \\ \hline a & a & a & a & a & a & a \\ \hline \end{longtable} second table: %\begin{center} \begin{longtable}{ | C{\dimexpr1.3cm-2\tabcolsep-1.25\arrayrulewidth}% 13cm | R{\dimexpr9.0cm-2\tabcolsep-1.25\arrayrulewidth} | R{\dimexpr2.42cm-2\tabcolsep-1.25\arrayrulewidth} | R{\dimexpr2.42cm-2\tabcolsep-1.25\arrayrulewidth} | } %\multicolumn{4}{|C{\dimexpr\linewidth-2\tabcolsep-2\arrayrulewidth}|}{2} \hline a & a & a & a \\ \hline \end{longtable} %\end{center} \begin{longtable}{ | C{\dimexpr1.3cm-2\tabcolsep-1.25\arrayrulewidth}% 13cm | R{\dimexpr9.0cm-2\tabcolsep-1.25\arrayrulewidth} | R{\dimexpr2.42cm-2\tabcolsep-1.25\arrayrulewidth} | R{\dimexpr2.42cm-2\tabcolsep-1.25\arrayrulewidth} | } \multicolumn{4}{|C{\dimexpr\linewidth-2\tabcolsep-2\arrayrulewidth}|}{2} \\ \hline a & a & a & a \\ \hline \end{longtable} \end{document}
(红线表示文本区域的边界)。
没有多列单元格的第一个和第二个表格宽度不同。第一个表格行的用途不明确。看看第一个表格的第三个版本是否能达到您想要的效果。