将 threeparttable 与 mn2e 类结合使用

将 threeparttable 与 mn2e 类结合使用

我想使用该threeparttable包在使用锰氧化物类。我使用了threeparttable文档中的这段代码:

\documentclass{mn2e}

\usepackage{threeparttable}

\begin{document}

\begin{table}
    \begin{threeparttable}[b]
    \caption{...}
    \begin{tabular}{cc}
    42\tnote{1}& \\
    \end{tabular}
    \begin{tablenotes}
    \item [1] the first note
    \end{tablenotes}
    \end{threeparttable}
\end{table}

\end{document}

我收到以下错误消息,因为未定义 abovecaptionskip

! Undefined control sequence.
\Hy@tempa ...l \TPT@gatherlabel \abovecaptionskip 
                                                  \z@skip \else \TPT@docapt ...

是否可以threeparttable与 mn2e 类一起使用该包?

答案1

添加缺失的长度会有所帮助。我使用了类中的标准值scrbook。(它使用值10\p@,因此\makeatletter...\makeatother需要对)。当然,它可以更改为任何其他长度。

显然该课程mn2e不提供这个长度。

\documentclass{mn2e}

\makeatletter
\newlength{\abovecaptionskip}%
\setlength{\abovecaptionskip}{10\p@}
\makeatother
\usepackage{threeparttable}%

%\usepackage{caption}

\begin{document}

\begin{table}
\begin{threeparttable}[b]
\caption{...}
\begin{tabular}{cc}%
42\tnote{1}& \\
\end{tabular}
\begin{tablenotes}
\item [1] the first note
\end{tablenotes}
\end{threeparttable}
\end{table}

\end{document}%

一些解释

threeparttable.sty

% 注意 \caption 格式是不是由 threeparttable 调整。% 您应该使用其中一个 caption-control 包来获取适合用作表格标题的标题。事实上,threeparttable 将表格上方的标题的 % \abovecaptionskip 设置为零,但需要进行更多完整的更改。

该包确实设置\abovecaptionskip为零,但显然没有测试这个长度是否已定义。因此,这是一个双重失败……mn2e没有定义长度,却threeparttable粗暴地假设它是可用的。

相关内容