我正在使用 makecell 包将垂直文本写入表格单元格。它工作正常,但我无法将其居中。普通垂直文本(在 {tabular} 内)显示为:
\rothead{Some lenghthy\\ sentence}
使用
\rothead[c]{Some lenghthy\\ sentence}
确实使其居中,但在末尾添加了 @ ??
我不擅长 tex 宏,这是定义:
% \begin{macro}{\rothead}
% The macro for rotated tabular column heads. If no \package{rotating} package
% loaded this macro works like |\thead|.
% \begin{macrocode}
\newcommand\rothead{\@ifundefined{turn}%
{\PackageWarning{makecell}{\string\rothead\space
needs rotating package}%
\let\tabg@pe\theadgape
\def\t@bset{\cellset\theadfont\theadset}\thead@}%
{\let\theadgape\rotheadgape
\@ifnextchar[{\@rothead}{\@@rothead}}}
% \end{macrocode}
% For rotated column head default column setting is similar to
% |p{\rotheadsize}| (plus some additional justification settings)
% \begin{macrocode}
\@ifdefinable\@rothead{}
\def\@rothead[#1]#2{\thead{\\[-.65\normalbaselineskip]
\turn{\cellrotangle}\thead[#1]{#2@{}}\endturn}}
\newcommand\@@rothead[1]{\thead{\\[-.65\normalbaselineskip]
\turn{\cellrotangle}\thead[c{>{\rightskip0explus
\rotheadsize\hyphenpenalty0\pretolerance-1%
\noindent\hskip\z@}p{\rotheadsize}
@{}}]{#1}\endturn}}
% \end{macrocode}
% \end{macro}
有人能解释一下吗?我真的很想将垂直列标题居中 :(
答案1
这看起来像是软件包中的一个错误,因此您应该就此问题联系作者。但作为临时修复,您似乎只需将以下内容添加到您的序言中即可。(经过简单测试。)
\makeatletter
\def\@rothead[#1]#2{\thead{\\[-.65\normalbaselineskip]
\turn{\cellrotangle}\thead[#1]{#2}\endturn}}
\makeatother
这会删除有问题的“@”,并且似乎没有任何其他不良影响。