我正在尝试使用“tabu”(具体来说,longtabu)来创建表格。我试图遵循政府印刷局样式手册指南 13.21:“Boxheads [即表格列标题] 水平和垂直居中。”以下是手册本身的一个示例:
这是我正在处理的表格的精简示例。我还没能弄清楚如何将标题垂直或水平居中:
\documentclass{article}
\usepackage{ctable}
\usepackage{longtable}
\usepackage{tabu}
\begin{document}
\begin{longtabu} to \textwidth{ X[24] X[106] X[16] X[46] }
\toprule
\rowfont[c]\normalsize Symbol & Common Name \strut\newline\strut Scientific Name & ODA List/Target & Mapping Protocol \\
\midrule\endhead
\scshape{aecy} & jointed goatgrass \strut\newline\strut\quad \emph{Aegilops cylindrica} & B & Mandatory \\
\scshape{aetr} & barbed goatgrass \strut\newline\strut\quad \emph{Aegilops triuncialis \emph{var.} triuncialis} & A/T & Mandatory \\
\scshape{brte} & cheatgrass \strut\newline\strut\quad \emph{Bromus tectorum} & & Discretionary \\
\bottomrule
\end{longtabu}
\end{document}
我得到如下结果:
标题既不是垂直居中也不是水平居中。我尝试使用 \rowfont[c],但这似乎无效。我不知道如何垂直居中。其他类似的问题我不清楚。有人能帮忙吗?谢谢!
答案1
借助makecell
包,改变列的宽度比例、单元格的大小\tabcolsep
和垂直方向的尺寸:
\documentclass{article}
\usepackage{booktabs, makecell, longtable, tabu}
\begin{document}
{
\tabulinesep=1.5pt
\begin{longtabu} to \textwidth{ X[12,c,m] X[50,c,m] X[15,c,m] X[18,c,m] }
\toprule
%\rowfont[c]\normalsize
Symbol & \makecell{Common Name\\
Scientific Name} & \makecell{ODA\\
List/Target}
& Mapping Protocol \\
\midrule\endhead
\scshape{aecy} & \makecell{jointed goatgrass\\
\emph{Aegilops cylindrica}} & B & Mandatory \\
\scshape{aetr} & \makecell{barbed goatgrass\\
\emph{Aegilops triuncialis
\emph{var.} triuncialis}} & A/T & Mandatory \\
\scshape{brte} & \makecell{cheatgrass\\
\emph{Bromus tectorum}} & & Discretionary \\
\bottomrule
\end{longtabu}
}
\end{document}