caption
我目前正在編寫自己的文件類(這很受書籍類的啟發),並且在使用和套件時遇到問題subcaption
。
這是我的課程的一部分強調文字:
\RequirePackage{caption}
\RequirePackage{subcaption}
\newcounter{figure}
\newenvironment{figure}{%
\@float{figure}%
}
{\end@float}
\renewcommand\thefigure{%
\@arabic\c@figure%
}
\renewcommand\thesubfigure{%
\arabic{subfigure}%
}
\newcommand\figurename{Fig}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename\nobreakspace\thefigure}
\DeclareCaptionLabelFormat{format}{\textbf{\textsc{#1.~#2. -- }}}
\captionsetup[figure]{
name={Fig},
labelsep=none,
labelformat=format,
textformat=simple,
justification=justified,
singlelinecheck=true,
font=footnotesize,
textfont=it,
position=bottom,
}
\captionsetup[subfigure]{
name={Fig},
labelsep=none,
labelformat=format,
textformat=simple,
justification=justified,
singlelinecheck=true,
font=footnotesize,
textfont=it,
position=bottom,
}
對於簡單的數字來說,沒問題,一切都很順利。但是當我嘗試插入子圖時,我收到有關文檔類別的以下錯誤:
Command \thesubfigure undefined
你知道這個錯誤是從哪裡來的嗎?我已經閱讀了這兩個包的文檔,但我不是很先進。 。 。
這是我第一次編寫自己的文檔類,它與 LaTeX 的“經典”使用有很大不同,所以如果我的類是臨時工作,請原諒。謝謝
PS:這是文檔類別的連結:我的類別.cls
圖形環境定義在第 382 到 410 行,標題定義在第 452 到 510 行。
這是 .tex 檔的連結:測試文件
答案1
- 載入時,如果定義了計數器,
subcaption
它會自動呼叫。\DeclareCaptionSubType{figure}
figure
- 裡面
\DeclareCaptionSubType{figure}
,- 命令
\ext@figure
被擴充。 (實際上這發生在 的擴展內部\caption@@@@declaresublistentry
,在 中定義caption3.sty
) - 定義了新的計數器,因此定義了
subfigure
相應的命令。\thesubfigure
- 命令
對於 counter table
,類似的事情也會發生。
所以關鍵是在呼叫之前提供計數器<float type>
和命令。\ext@<float type>
\DeclareCaptionSubType[*]{<float type>}
一個完整的例子
\documentclass{minimal}
\newcounter{figure}
\newcounter{table}
\makeatletter
\def\ext@figure{lof}
\def\ext@table {lot}
\makeatother
\RequirePackage{subcaption}
\renewcommand{\thesubfigure}{...}
\renewcommand{\thesubtable} {...}
\begin{document}
abc
\end{document}