我的表格和标题位于同一行,在我对所申请的会议使用不同的类文件后,这种情况就开始发生了。
下面是一张我所指的图片:(通常“表 1”字样位于标题上方,不在同一行)
我想知道这是什么原因造成的?我应该在类文件中查找什么来查看这是故意的还是我的错误?
答案1
这旧文件类不同于新文档类定义方式不同\@makecaption
- 负责设置浮点数标题的宏。区别如下:
旧文档类别:
\long\def\@makecaption#1#2{%
% test if is a for a figure or table
\ifx\@captype\@IEEEtablestring%
% if a table, do table caption
\footnotesize\bgroup\par
\centering\@IEEEtabletopskipstrut{\normalfont\footnotesize #1}\\
{\normalfont\footnotesize\scshape #2}\par\addvspace{0.5\baselineskip}\egroup%
\@IEEEtablecaptionsepspace
% if not a table, format it as a figure
\else
%...
\fi}
新的文档类别:
\long\def\@makecaption#1#2{%
% test if is a for a figure or table
\ifx\@captype\@IEEEtablestring%
% if a table, do table caption
\footnotesize{\centering\normalfont\footnotesize#1.\qquad\scshape #2\par}%
\@IEEEtablecaptionsepspace
% if not a table, format it as a figure
\else
%...
\fi}
很明显,旧版类会插入换行符,\\
而新版类会使用换行符.\qquad
来分隔标题类型和文本。使用etoolbox
修补\@makecaption
以插入\par
(段落分隔符),而不是使用.\qquad
:
\documentclass{IEEEtran}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\@makecaption}% <cmd>
{.\qquad}% <search>
{\par}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\begin{table}
\caption{Filled with some text}
\end{table}
\end{document}
\patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
搜索<search>
in<cmd>
并将其替换为<replace>
。如果此搜索和替换成功,<success>
则执行 ,否则<failure>
执行 。