我需要制作具有 /textwidth 宽度且其列的尺寸恰好以厘米为单位的表格。
具体来说 - 桌子宽度:24 厘米,列数(厘米):4.2;7.6;6.4;3.5;2.3
我的文档开始于:
\documentclass{article}
\usepackage{geometry}
\geometry{paper=a4paper, landscape, hmargin=28.5mm, vmargin=20mm}
这意味着 297mm x 210mm。(但打印长度是 23.99658cm x 16.99757cm wt*?)
这可能吗?我尝试创建基本表格(8x3=24):
\begin{tabular}{ @{} | p{3cm} | p{3cm} | p{3cm} | p{3cm} | p{3cm} | p{3cm} | p{3cm} | p{3cm} | @{}}
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \hline
\end{tabular}
但是表格水平溢出到文档的右端......
我也尝试过(8x3=24):
\newcolumntype{L}{>{\hsize=3cm}X}
\begin{tabularx}{\textwidth}{ |L|L|L|L|L|L|L|L| }
...
并且溢出超出了文档范围......
请问有人可以帮忙吗?
答案1
您必须考虑列分隔和规则的宽度。
使用以下代码,如果从规则的中间测量,宽度将如指定的那样。
\documentclass{article}
\usepackage{geometry}
\geometry{paper=a4paper, landscape, textwidth=24cm, vmargin=20mm}
\begin{document}
\noindent
\begin{tabular}{
@{\kern-.5\arrayrulewidth}
|p{\dimexpr4.2cm-2\tabcolsep-.5\arrayrulewidth}
|p{\dimexpr7.6cm-2\tabcolsep-.5\arrayrulewidth}
|p{\dimexpr6.4cm-2\tabcolsep-.5\arrayrulewidth}
|p{\dimexpr3.5cm-2\tabcolsep-.5\arrayrulewidth}
|p{\dimexpr2.3cm-2\tabcolsep-.5\arrayrulewidth}
|@{\kern-.5\arrayrulewidth}
}
\hline
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee \\
\hline
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee &
aaa bbb ccc ddd eee \\
\hline
\end{tabular}
\end{document}
如果想要24cm的文本宽度,最好直接指定。