我正在尝试生成一个需要不同行宽的表格。第一列的宽度应尽可能小(仅用于打印单个数字 1、2、3 到 9),而第 3 列(我放置 * 的位置)的宽度应为 20 毫米。其余列的宽度我希望为 1 厘米。
但是我的以下代码只会生成一个等宽列表。奇怪的是,我可以使用 来增加行高\vspace{15mm}
。
如何控制(指定绝对值,如3mm
, 23mm
)tabu(而不是 tabular)中各行和各列的宽度和高度?能够指定各行和各列的宽度和高度对我来说非常重要。看来 tex 挡住了我的路 :( 我希望使用 tabu,因为我发现它更方便做一些其他事情。
\documentclass{article}
\usepackage{tabu}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabu} spread 0pt {|*{12}{[0.5pt]X[c,m]|}}
\hline
1 \vspace{5mm} & & \hspace{20mm}* & & & & & & & & & \\ \hline
2 \vspace{15mm} & & & & & & & & & & & \\ \hline
\end{tabu}
\end{table}
\end{document}
答案1
我在这里得到了一些信息这里。它是关于表格的,但它也适用于禁忌。
这是工作代码:
\documentclass{article}
\usepackage{tabu}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabu} spread 0pt {|@{}X[c,m]@{}|*{11}{[0.5pt]X[c,m]|}}
\hline
1\vspace{5mm} & & \hspace{20mm}* & & & & & & & & & \\ \hline
2\vspace{15mm} & & & & & & & & & & & \\ \hline
\end{tabu}
\end{table}
\end{document}
答案2
由于 OP 已经回答了他的问题,因此似乎找到了他所寻找的内容。但是,如果我理解正确的话,比较他问题中请求的宽度结果:
- 第一列的宽度尽可能小
- 接下来十列的宽度为 20 毫米
- 最后一列的宽度为 10 毫米
对于最后一个请求,据我所知,没有一个用于设置表格的包不提供显式设置单元格/行高度的宏。它会自动调整为内容最多的单元格的高度。因此,如果有人希望确定单元格的最小高度,他可以按照 OP 在其答案中显示的方式进行操作,或者将\rule[<offset>]{<width>}{<height>}
宽度设置为零。
宽度是单元格宽度,通常tabu
将单元格宽度设置为其内容的宽度。对于明确的确定,它提供了确定宽度与确定表格宽度的参数之间的比率的机制。从以下问题中的数据可以看出,表格的宽度为(如果第一列的最小宽度为 4mm):
1 x 4mm + 10 x 20mm + 1 x 10mm = 214mm
纵向放置无法放入 A4 纸的内容,只能横向放置。
代码:
\documentclass[border=2mm,
preview]{standalone}
\setlength\textwidth{250mm}
\usepackage{array,tabu}
\begin{document}
\begin{table}[htbp]
\centering
\caption{OP answer}
\begin{tabu} spread 0pt {|@{}X[c,m]@{}|*{11}{[0.5pt]X[c,m]|}}
\hline
1 \vspace{5mm} & & \hspace{20mm}* & & & & & & & & & \\ \hline
2 \vspace{15mm} & & & & & & & & & & & \\ \hline
\end{tabu}
\end{table}
\begin{table}
\caption{Proposed solution with different determination of rows heights}
\abovetabulinesep=1mm
\belowtabulinesep=1mm
\begin{tabu}to 214mm{|X[0.4,c,m]|*{10}{X[2,cm]|}X[1,c,m]|}
\hline
1\vspace{5mm} & & * & & & & & & & & & \\ \hline
\vspace{2.5mm}2\vspace{2.5mm} & & * & & & & & & & & & \\ \hline
3\rule{1mm}{5mm} & & * & & & & & & & & & \\ \hline
4 \rule{1mm}{5mm} & & * & & & & & & & & & \\ \hline
5\rule{1mm}{15mm} & & * & & & & & & & & & \\ \hline
6 \rule{1mm}{15mm} & & * & & & & & & & & & \\ \hline
7\rule{1mm}{15mm} & xxx xxx xxx xxx xxx xxx xxx xxx
xxx xxx xxx xxx xxx xxx xxx xxx
& * & & & & & & & & & \\ \hline
\end{tabu}
\end{table}
\end{document}
在代码中,规则的间距被有意设置为 1mm,这样可以看到它们在单元格中的位置。最后一行显示,行高适应单元格中的最高内容。为了看起来更好,我添加了\abovetabulinesep=1mm
和\belowtabulinesep=1mm
。