我在@Zarko 的帮助下创建了下表。现在我对布局有一些疑问。
代码:
\documentclass[11pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{xcolor,colortbl}
\begin{document}
\begin{table}[h]
\begin{tabular}{|p{.1cm}|p{.1cm}|p{.1cm}|p{.1cm}|p{.1cm}|p{3.5cm}|p{2cm}|p{2cm}|}
\hline
\multicolumn{6}{|c|}{ \textbf{ I have to put here very long definitions. QUESTION1}}&
\textbf{I have to put here very long definitions}
&\textbf{I have to put here very long definitions}\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|c|}{\textbf{I have to put here very long definitions}
}&&\\
\hline
1&2&3 QUESTION2&4&5&too many substances QUESTION3&&\\
\hline
1&2&3&4&5&too many substances QUESTION4&&\\
\hline
1&2&3&4&5&too many substances&&\\
\hline
1&2&3&4&5&too many substances&&\\
\hline
1&2&3&4&5&too many substances&&\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|c|}{I have to put here very long definitions
(some subdefinitions)
}&&\\
\hline
\multicolumn{3}{|c|}{12345678}&\multicolumn{3}{|c|}{too many substance}&&\\
\hline
\multicolumn{3}{|c|}{12345678}&\multicolumn{3}{|c|}{too many substance}&&\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|c|}{again long definitions}&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla QUESTION5&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|c|}{again long definitions)
(again long definitions)
}&&\\
\hline
\multicolumn{3}{|c|}{\multirow{4}{*}{12345678} }&
\multicolumn{3}{|c|}{too many substances,bla,bla,bla QUESTION6}&&\\
\cline{4-8}
\multicolumn{3}{|c|}{}&1&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&2&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&3&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\hline
\multicolumn{3}{|c|}{\multirow{4}{*}{12345678} }&
\multicolumn{3}{|c|}{too many substances,bla,bla,bla}&&\\
\cline{4-8}
\multicolumn{3}{|c|}{}&1&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&2&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&3&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\hline
\multicolumn{3}{|c|}{\multirow{4}{*}{12345678} }&
\multicolumn{3}{|c|}{too many substances,bla,bla,bla}&&\\
\cline{4-8}
\multicolumn{3}{|c|}{}&1&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&2&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&3&\multicolumn{2}{|c|}{}&&\\\cline{4-8}
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|c|}{Conclusions}&&\\
\hline
\end{tabular}
\end{table}
\end{document}
布局:
问题 1:为什么我无法将此文本像此行的第 3 列和第 4 列那样居中?(我尝试使用 \centering)
问题2:我安排了表格的单元格宽度,但是为什么数字 3 的单元格比其他数字(1,2,4,5)大?
问题 3:我尝试过在这里减小单元格宽度,但这并没有帮助我避免为少量文本留下太多空间。我该如何处理?例如,为什么我无法在文本后写问题 4,而 .tex 为何将其放在下一行?
问题 5 更好地解释了我上面的问题。为什么 .tex 将每个新单词都放到下一行?
问题 6:我在这里裁剪了表格以适合页面?如果我的表格更大,该怎么办?
我希望这样的问卷适合堆栈格式。
答案1
我希望这样的问卷适合堆栈格式。
不是,最好每发布一个问题就问一个问题,但无论如何。此外,问题标记为 tabularx,但您似乎没有使用它。
问题 1:为什么我无法将此文本像此行的第 3 列和第 4 列那样居中?(我尝试使用 \centering)
不确定你在这里的意思。
问题2:我安排了表格的单元格宽度,但是为什么数字 3 的单元格比其他数字(1,2,4,5)大?
第 3 列被迫变宽,因为你有
\multicolumn{3}{|c|}{12345678}
并且该文本的宽度超过了指定宽度,因此最后一个跨越列(此处为 3)变得更宽,您可以通过查看规则的|
排列方式来看到这一点。
问题 3:我尝试过在这里减小单元格宽度,但这并没有帮助我避免为少量文本留下太多空间。我该如何处理?例如,为什么我无法在文本后写问题 4,而 .tex 为何将其放在下一行?
该文本位于指定宽度为 3.5 厘米的列中并且Question 4
不适合,以下列在所有情况下都是空的(&&
),因此您可能不应该有以下列,然后将该列加宽。
问题 5 更好地解释了我上面的问题。为什么 .tex 将每个新单词都放到下一行?
这与上一个问题相同,您将文本调整到较窄的宽度,而不是在垂直规则标记的区域中。文本设置为您在中指定的宽度,p
但列及其规则被扩展,因为
I have to put here very long definitions
不适合指定的宽度。
问题 6:我在这里裁剪了表格以适合页面?如果我的表格更大,该怎么办?
使用该longtable
包。
像这样,尽管它仍然太宽(因此负左跳过以窃取左边距)可能你应该使用较小的 fone 尺寸,然后\small
再次调整列宽。
\documentclass[11pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{array,multirow,longtable}
\usepackage[table]{xcolor}
\usepackage{calc}
\begin{document}
\setlength{\LTleft}{-40pt}
\setlength{\LTright}{\fill}
\begin{longtable}{|p{.2cm}|p{.2cm}|p{.2cm}|p{.2cm}|p{.2cm}|>{\raggedright}p{6.5cm}|p{2cm}|p{2cm}|}
\hline
\multicolumn{6}{|p{7cm+10\tabcolsep+5\arrayrulewidth}|}{ \textbf{ I have to put here very long definitions. QUESTION1}}&
\textbf{I have to put here very long definitions}
&\textbf{I have to put here very long definitions}\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|p{7cm+10\tabcolsep+5\arrayrulewidth}|}{\textbf{I have to put here very long definitions}
}&&\\
\hline
1&2&3&4&5&too many substances QUESTION3&&\\
\hline
1&2&3&4&5&too many substances QUESTION4&&\\
\hline
1&2&3&4&5&too many substances&&\\
\hline
1&2&3&4&5&too many substances&&\\
\hline
1&2&3&4&5&too many substances&&\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|p{7cm+10\tabcolsep+5\arrayrulewidth}|}{I have to put here very long definitions
(some subdefinitions)
}&&\\
\hline
\multicolumn{3}{|c|}{12345678}&\multicolumn{3}{c|}{too many substance}&&\\
\hline
\multicolumn{3}{|c|}{12345678}&\multicolumn{3}{c|}{too many substance}&&\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|p{7cm+10\tabcolsep+5\arrayrulewidth}|}{again long definitions}&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla QUESTION5&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
1&2&3&4&&too many substances,bla,bla,bla&&\\
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|p{7cm+10\tabcolsep+5\arrayrulewidth}|}{again long definitions)
(again long definitions)
}&&\\
\hline
\multicolumn{3}{c|}{\multirow{4}{*}{12345678} }&
\multicolumn{3}{c|}{too many substances,bla,bla,bla QUESTION6}&&\\
\cline{4-8}
\multicolumn{3}{|c|}{}&1&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&2&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&3&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\hline
\multicolumn{3}{|c|}{\multirow{4}{*}{12345678} }&
\multicolumn{3}{|c|}{too many substances,bla,bla,bla}&&\\
\cline{4-8}
\multicolumn{3}{|c|}{}&1&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&2&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&3&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\hline
\multicolumn{3}{|c|}{\multirow{4}{*}{12345678} }&
\multicolumn{3}{|c|}{too many substances,bla,bla,bla}&&\\
\cline{4-8}
\multicolumn{3}{|c|}{}&1&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&2&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\multicolumn{3}{|c|}{}&3&\multicolumn{2}{c|}{}&&\\\cline{4-8}
\hline
\rowcolor[gray]{.9}[0pt][0pt]
\multicolumn{6}{|c|}{Conclusions}&&\\
\hline
\end{longtable}
\end{document}
答案2
部分回答问题 1 和问题 2。如果您想要多行,则需要使用 a \parbox{...}{\centering ...}
,这意味着您需要指定宽度。需要注意的是,当 a\multicolumn
比列的总宽更宽时,所有超出的部分将进入最后一列,而不是均匀分布。您可以使用\makebox
强制这些列具有相同的宽度,如下所示:
\documentclass[border=.1in]{standalone}
\begin{document}
\begin{tabular}{|c|c|}
\hline
\multicolumn{2}{|p{1in}|}{\centering This is a very long line which will eventually wrap around.}\\
\hline
\makebox[\dimexpr .5in - \tabcolsep]{test} & test\\
\hline
\end{tabular}
\end{document}