编辑以提供更清晰的示例
基本上,我想制作一个表格,其中一列包含一系列日期,第二列和第三列包含该日期的一系列目标。但是,第二列和第三列中的元素数量并不相同,并且没有共同的因子,但我希望所有三列在垂直方向上等距分布。换句话说,和之间的垂直距离应该相同,2011-2012
并且它们应该在目标之间。Training 1
Training 2
例如,我想要做的是:
\begin{tabular}{|l c c|}
\hline
Year & Objective & Training \\
\hline
\multirow{5}{*}{2011-2012} & Objective 1 & \multirow{1.5}{*}{Training 1} \\
& Objective 2 & \\
& Objective 3 & \multrow{1.5}{*}{Training 2} \\
\hline
\end{tabular}
看起来像:
Year Objective Training
Objective 1
Training 1
2011-2012 Objective 2
Training 2
Objective 3
但是 s 之间的垂直空间Objective
被压缩了。显然这不起作用,因为多行需要一个整数。是否有另一个命令可以使用非整数,或者是否有解决方法来获得我想要的效果。
做这样的事情的最好方法是什么?
附加編輯
这需要具有可扩展性,以便我可以选取任意三个数字,并能够制作出间距均匀的表格,例如
颜色无需复制,它们只是说明性的(而且通过 colorx 很容易做到)。顶行是标题,多色部分是具有不同元素数量的列(每列中的元素数量在标题中说明)。
答案1
你所做的完全正确,但你使用multirow
包裹并且相关\multirow
命令不正确:
\documentclass{article}
\usepackage{multirow}% http://ctan.org/pkg/multirow
\begin{document}
\begin{tabular}{|l c c|}
\hline
Year & Objective & Training \\
\hline
\multirow{5}*{2011-2012} & Objective 1 & \multirow{2}*{Training 1} \\
& Objective 2 & \\
& Objective 3 & \multirow{3}*{Training 2} \\
& Objective 4 & \\
& Objective 5 & \\
\hline
\end{tabular}
\end{document}
最简单的形式是\multirow{<num rows>}{<width>}{<stuff>}
,<num rows>
使用整数表示要分布的行数<stuff>
。<width>
表示*
的自然宽度<stuff>
。
就演示而言,你也可以使用booktabs
其动机是由于表格固有的结构是列式的,所以不需要垂直线,因此不需要追求使用垂直规则:
\documentclass{article}
\usepackage{multirow}% http://ctan.org/pkg/multirow
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\begin{document}
\begin{tabular}{l c c}
\toprule
Year & Objective & Training \\
\midrule
\multirow{5}*{2011-2012} & Objective 1 & \multirow{2}*{Training 1} \\
& Objective 2 & \\
& Objective 3 & \multirow{3}*{Training 2} \\
& Objective 4 & \\
& Objective 5 & \\
\bottomrule
\end{tabular}
\end{document}
编辑之后,您仍然可以指定整数值以\multirow
按照您呈现的方式输入条目:
\documentclass{article}
\usepackage{multirow}% http://ctan.org/pkg/multirow
\begin{document}
\begin{tabular}{|l c c|}
\hline
Year & Objective & Training \\
\hline
\multirow{3}*{2011-2012} & Objective 1 & \multirow{2}*{Training 1} \\
& Objective 2 & \multirow{2}*{Training 2} \\
& Objective 3 & \\
\hline
\end{tabular}
\end{document}
此外,即使使用负数行数,也会获得与上面相同的输出\multirow
。也就是说,使用以下tabular
设置:
\begin{tabular}{|l c c|}
\hline
Year & Objective & Training \\
\hline
\multirow{3}*{2011-2012} & Objective 1 & \multirow{2}*{Training 1} \\
& Objective 2 & \\
& Objective 3 & \multirow{-2}*{Training 2}\\
\hline
\end{tabular}
最终编辑更新:
m
还可以通过-column 类型将表格内容居中array
包裹。因此,为了复制结果(没有颜色和线条/规则),这里有一种方法可以做到:
\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{array}% http://ctan.org/pkg/array
\newcolumntype{C}{@{}c@{}}
\begin{document}
\begin{tabular}{*{10}{>{\centering\arraybackslash}m{2em}}}
\toprule
A & B & C & D & E & F & G & H & I & J \\
\midrule
\begin{tabular}{C}1\end{tabular} &
\begin{tabular}{C}1\\2\end{tabular} &
\begin{tabular}{C}1\\2\\3\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\\5\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\\5\\6\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\\5\\6\\7\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\\5\\6\\7\\8\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\\5\\6\\7\\8\\9\end{tabular} &
\begin{tabular}{C}1\\2\\3\\4\\5\\6\\7\\8\\9\\10\end{tabular} \\
\bottomrule
\end{tabular}
\end{document}