makecell 封装垂直文本的垂直居中

makecell 封装垂直文本的垂直居中

我正在使用 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

这会删除有问题的“@”,并且似乎没有任何其他不良影响。

相关内容