使用子标题包时表格出现全局标题问题

使用子标题包时表格出现全局标题问题

首先,如果这个问题之前已经得到解答,我深表歉意。我尝试在任何地方寻找它,但找不到任何解决方案。

无论如何,当我包含子标题包时,我的表格的标题出现了问题。

这是代码的摘录:

    \documentclass{ifacconf}
    \usepackage{natbib}
    \usepackage{graphicx}
    \usepackage{subcaption}

    \begin{document}

    \begin{table}[hb]
        \centering
        \caption{Test eheh blah}
        \begin{tabular}{|c|c|c|c|} \hline
            \multicolumn{4}{|c|}{Margin settings} \\
            \hline
            Page & Top & Bottom & Left/Right \\ \hline
            First & 3.5 & 2.5 & 1.5 \\ \hline
            Rest & 2.5 & 2.5 & 1.5 \\ \hline
         \end{tabular}
    \end{table}

    \end{document}

输出是

带字幕 http://imageshack.com/scaled/800x600/513/0o0l.jpg

但是,如果我删除了 subcaption 包,输出将符合预期

无字幕 http://imageshack.com/scaled/800x600/513/75c3.jpg

因此,我非常感激任何帮助。谢谢。

干杯。

編輯:

按照 Harish Kumar 的回答,虽然它确实解决了我表格中的标题问题,但它导致了我其他子图的标题出现问题。这是子图的代码。

    \usepackage{epstopdf}
    \begin{figure}[htb!]
        \centering
        \begin{subfigure}{0.38\textwidth}
            \centering
            \includegraphics[width=\textwidth]{pic1.eps}
            \caption{test caption}
            \label{fig:pic1}
        \end{subfigure}
        \\
        \begin{subfigure}{0.38\textwidth}
            \centering
            \includegraphics[width=\textwidth]{pic2.eps}
            \caption{test caption}
            \label{fig:pic2}
        \end{subfigure}
        \caption{Long caption Long caption.}
        \label{fig:pictures}
    \end{figure}

输出

子图 http://imageshack.com/scaled/800x600/534/7ufa.jpg

答案1

该类ifacconf与不兼容caption,如警告

Package caption Warning: Unsupported document class (or package) detected,
(caption)                usage of the caption package is not recommended.
See the caption package documentation for explanation.

告诉你。这意味着也subcaption不能使用。

在这些情况下,好的旧subfig包通常可以解决问题,但有一个问题:类定义\captionwidth为命令,而将subfig其定义为维度寄存器。此外,类错误地

\let\endfigure\end@float
\let\endtable\end@float

这也导致该类不兼容subfig

解决方法:

\documentclass{ifacconf}
\usepackage{natbib}
\usepackage{graphicx}

\makeatletter
\def\endfigure{\end@float}
\def\endtable{\end@float}
\makeatother

\let\ifacconfcaptionwidth\captionwidth
\usepackage[caption=false]{subfig}
\let\captionwidth\ifacconfcaptionwidth

\begin{document}

\begin{table}[htbp]

\centering
\caption{Test eheh blah}
\begin{tabular}{|c|c|c|c|} \hline
\multicolumn{4}{|c|}{Margin settings} \\
\hline
Page & Top & Bottom & Left/Right \\ \hline
First & 3.5 & 2.5 & 1.5 \\ \hline
Rest & 2.5 & 2.5 & 1.5 \\ \hline
\end{tabular}

\end{table}

\begin{table}[htbp]

\centering
\caption{Test eheh blah}

\subfloat[A subcaption]{%
  \begin{tabular}{|c|c|c|c|} \hline
  \multicolumn{4}{|c|}{Margin settings} \\
  \hline
  Page & Top & Bottom & Left/Right \\ \hline
  First & 3.5 & 2.5 & 1.5 \\ \hline
  Rest & 2.5 & 2.5 & 1.5 \\ \hline
  \end{tabular}%
}

\subfloat[B subcaption]{%
  \begin{tabular}{|c|c|c|c|} \hline
  \multicolumn{4}{|c|}{Margin settings} \\
  \hline
  Page & Top & Bottom & Left/Right \\ \hline
  First & 3.5 & 2.5 & 1.5 \\ \hline
  Rest & 2.5 & 2.5 & 1.5 \\ \hline
  \end{tabular}%
}

\end{table}

\end{document}

只要您不使用subfig选项来更改子标题的外观,这就足够了。

也许更好的解决方法可能是

\documentclass{ifacconf}
\usepackage{natbib}
\usepackage{graphicx}

\makeatletter
\def\endfigure{\end@float}
\def\endtable{\end@float}
\makeatother

\usepackage[caption=false]{subfig}
\usepackage{etoolbox}

\AtBeginEnvironment{figure}{\setlength{\captionwidth}{0.8\linewidth}}
\AtBeginEnvironment{table}{\setlength{\captionwidth}{0.8\linewidth}}
\captionsetup[subfloat]{width=.7\captionwidth}

\begin{document}


\begin{table}[htbp]

\centering
\caption{Test eheh blah}
\begin{tabular}{|c|c|c|c|} \hline
\multicolumn{4}{|c|}{Margin settings} \\
\hline
Page & Top & Bottom & Left/Right \\ \hline
First & 3.5 & 2.5 & 1.5 \\ \hline
Rest & 2.5 & 2.5 & 1.5 \\ \hline
\end{tabular}

\end{table}

\begin{table}[htbp]

\centering
\caption{Test eheh blah}

\subfloat[A subcaption]{%
  \begin{tabular}{|c|c|c|c|} \hline
  \multicolumn{4}{|c|}{Margin settings} \\
  \hline
  Page & Top & Bottom & Left/Right \\ \hline
  First & 3.5 & 2.5 & 1.5 \\ \hline
  Rest & 2.5 & 2.5 & 1.5 \\ \hline
  \end{tabular}%
}

\subfloat[B subcaption]{%
  \begin{tabular}{|c|c|c|c|} \hline
  \multicolumn{4}{|c|}{Margin settings} \\
  \hline
  Page & Top & Bottom & Left/Right \\ \hline
  First & 3.5 & 2.5 & 1.5 \\ \hline
  Rest & 2.5 & 2.5 & 1.5 \\ \hline
  \end{tabular}%
}

\end{table}

\end{document}

但我的建议是“不要在此类中使用子浮点数”。

在此处输入图片描述

相关内容