居中表格标题不起作用

居中表格标题不起作用

我无法使表格标题在两栏手稿中居中(它一直停留在左侧)。这是我使用的代码:

\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}

在此处输入图片描述

相关内容