我无法使表格标题在两栏手稿中居中(它一直停留在左侧)。这是我使用的代码:
\documentclass[twocolumn]{autart}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[justification=centering]{caption}
\begin{document}
\begin{table}
\centering
\caption{Nomenclature used in the model.}
\label{nomenclature}
\vskip\baselineskip % Leave a vertical skip below the figure
\begin{tabular}{|cc|}
\hline
Col 1 & Col 2 \\
\hline
1 & 4 \\
2 & 5 \\
3 & 6 \\
\hline
\end{tabular}
\end{table}
\end{document}
有人能帮我解决这个问题吗?
答案1
以下代码是从autart.cls
文件中复制的。
\long\def\@maketablecaption#1#2{\@tablecaptionsize
\global \@minipagefalse
\hbox to \hsize{\parbox[t]{\hsize}{#1 \\ #2}}}
这会将标题排版到整个水平空间的方框中。因此\centering
对您的标题没有影响。
你可以更改文件的代码autart.cls
,但我会不推荐这样做是因为当前的风格可能是必需的。
如果你坚持这样做,你可以在序言中添加以下内容。
\makeatletter
\long\def\@maketablecaption#1#2{\@tablecaptionsize
\setbox\@tempboxa\hbox{#1. #2}
\ifdim \wd\@tempboxa >\hsize % IF longer than one line THEN
\unhbox\@tempboxa\par % set as justified paragraph
\else % ELSE
\global \@minipagefalse
\hbox to\hsize{\hfil\box\@tempboxa\hfil}% center single line.
\fi}
\makeatother
代码是从 复制而来的@makefigurecaption
。如果标题适合一行,则标题将居中,否则将为两端对齐的段落。请参阅我提供的示例。
答案2
我认为“Automatica”杂志希望表格标题像这样(左对齐而不是居中),当它周围有一些文本时,它对我来说看起来并不难看。举个例子:
但是如果您想将标题居中,您可以\centering
在的第二个强制参数中插入该命令parbox
。
\documentclass[twocolumn]{autart}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[justification=centering]{caption}
%--------------------------added---------------------------
\makeatletter
\long\def\@maketablecaption#1#2{\@tablecaptionsize
\global \@minipagefalse
\hbox to \hsize{\parbox[t]{\hsize}{\centering#1 \\ #2}}}
\makeatother
%-----------------------------------------------------------
\begin{document}
\begin{table}
\centering
\caption{Nomenclature used in the model.}
\label{nomenclature}
\vskip\baselineskip % Leave a vertical skip below the figure
\begin{tabular}{|cc|}
\hline
Col 1 & Col 2 \\
\hline
1 & 4 \\
2 & 5 \\
3 & 6 \\
\hline
\end{tabular}
\end{table}
\end{document}