scrbook
当将文档类与包结合使用时subcaption
,子图的编号似乎被破坏。考虑:
\documentclass{scrbook}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{subcaption}
\captionsetup{%
format=hang,%
font=small,%
labelfont={sf,bf},%
aboveskip=0.2\normalbaselineskip,%
position=top
}
\pagestyle{empty}
\begin{document}
\begin{figure}
\caption{Black}
\label{fig1}
\centering
\rule{2cm}{2cm}
\end{figure}
\begin{figure}
\caption{More figures}
\label{fig2}
\centering
\begin{subfigure}{.3\textwidth}
\centering
\caption{Blue}
\label{fig2a}
\color{red}\rule{2cm}{2cm}
\end{subfigure}
\begin{subfigure}{.3\textwidth}
\centering
\caption{Green}
\label{fig2b}
\color{green}\rule{2cm}{2cm}
\end{subfigure}
\begin{subfigure}{.3\textwidth}
\centering
\caption{Blue}
\label{fig2c}
\color{blue}\rule{2cm}{2cm}
\end{subfigure}
\end{figure}
Figure \ref{fig1} shows a black box. Figure \ref{fig2} shows colored
boxes, where Figure \ref{fig2a} shows a red box, Figure \ref{fig2b}
shows a green box, and Figure \ref{fig2c} shows a blue box.
\end{document}
显然,文本引用中的图号对于子图来说少了一个。相反,如果我将文档类更改为article
,它看起来就没问题了:
为什么会发生这种情况?我该如何预防?
答案1
使用 KOMA-Script 时,默认设置是“标题位于图片下方”。要更改此设置,请指定captions=figureheading
,例如:
\documentclass[captions=figureheading]{scrbook}
此选项对 KOMA-Script 有什么影响?
KOMA-Script 需要此选项来为您提供标题和图形之间的正确垂直间距。
该选项对于 subcaption 包有什么影响?
包subcaption
需要知道图形何时开始以及何时结束。由于可以在一个图形环境中放置多个标题,因此“图形+标题何时开始”并不相等\begin{figure}
,“图形+标题何时结束”也不相等\end{figure}
。
也可以看看:
https://tex.stackexchange.com/a/115632/2574(同样的问题,但有表格)
https://tex.stackexchange.com/a/98331/2574(同样的问题,但使用subfig
包)