コードを以下に示します。最初の行に特別なセル (セルに 2 行あるセル) が含まれていない場合、これは実際には発生しません。ただし、これを修正する方法がよくわかりません。
\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand*{\arraystretch}{1.3}
\usepackage{graphicx}
\usepackage{xspace}
\usepackage{tabu} % tabular
\usepackage{multirow} % tables
\usepackage{setspace}
\onehalfspacing % or \doublespacing
\newcommand{\specialcell}[2][c]{\begin{tabu}[#1]{@{}c@{}}#2\end{tabu}} % two lines in a table cell
\tabulinesep=1.8mm % tabu vertical spacing/need {tabu} package
\begin{document}
\begin{table}[htbp]
\begin{tabu}{cccccc}
\hline
& \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb}\\
\hline
a & a & a & a & a & a\\
\hline
b & b & b & b & b & b\\
\hline
c & c & c & c & c & c\\
\hline
\end{tabu}
\end{table}
\end{document}
答え1
\specialcell
ここでは、 ではなくスタックを使用するように再定義しましたtabu
。
\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand*{\arraystretch}{1.3}
\usepackage{graphicx}
\usepackage{xspace}
\usepackage{tabu} % tabular
\usepackage{multirow} % tables
\usepackage{setspace}
\onehalfspacing % or \doublespacing
%\newcommand{\specialcell}[2][c]{\begin{tabu}[#1]{@{}c@{}}#2\end{tabu}} % two lines in a table cell
\tabulinesep=1.8mm % tabu vertical spacing/need {tabu} package
\usepackage[usestackEOL]{stackengine}
\newcommand\specialcell[2][c]{\Centerstack[#1]{#2}}
\begin{document}
\begin{table}[htbp]
\begin{tabu}{cccccc}
\hline
& \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb} & \specialcell{aaa\\bbb}\\
\hline
a & a & a & a & a & a\\
\hline
b & b & b & b & b & b\\
\hline
c & c & c & c & c & c\\
\hline
\end{tabu}
\end{table}
\end{document}
スタックのベースラインスキップは、例えば次の宣言で変更できます。
\setstackgap{L}{22pt}
その結果