我想使用该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
粗暴地假设它是可用的。