在许多期刊中,通常使用一位数字的图号,并将图中的各个部分表示为 (a)、(b) 等。我想使用类似的样式。在阅读了软件包的文档caption
和cleveref
软件包后,我没有发现任何类似的东西。我不想将图片分成两部分并使用subfigure
两个标题,而是将它们全部放在一个中。
有没有简单的方法可以实现这一点?我的示例如下所示,但没有正确的引用:
\documentclass{scrbook}
\usepackage{caption}
\usepackage{cleveref}
\begin{document}
\begin{figure}
\centering
a \rule{10pt}{10pt} \hspace{1cm} b \rule{15pt}{15pt}
\caption{Common text here. \label{part_a}\textbf{(a)} Description of a. \label{part_b}\textbf{(b)} Description of b. }
\end{figure}
This should read fig. 0.1a and fig. 0.1b but it is only \cref{part_a} and \cref{part_b}.
\end{document}
输出结果如下:
答案1
对 Mico 的答案进行一个小的补充,并\phantomcaption
提供选项:
\documentclass{article}
\usepackage{mwe} %For dummy images
\usepackage{subcaption}
\usepackage{cleveref}
\crefdefaultlabelformat{\thesection.#2#1#3}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.4\textwidth}
\centering
\includegraphics[width=0.3\textwidth]{example-image-a}
\phantomcaption
\label{part_a}
\end{subfigure}
\hspace{1cm}
\begin{subfigure}{0.4\textwidth}
\centering
\includegraphics[width=0.3\textwidth]{example-image-b}
\phantomcaption
\label{part_b}
\end{subfigure}
\caption{Common caption here \textbf{(a)} On left \textbf{(b)} On right} \label{fig-overall}
\end{figure}
This should read fig.\ 0.1a and fig.\ 0.1b, and indeed it now reads \cref{part_a} and \cref{part_b}.
\end{document}
答案2
我认为,一个好办法是使用subcaption
包及其subfigure
环境。这样,您可以为每个子图(当然还有整个图)分配标签。
请注意,您需要为每个子图环境分配一个宽度。这可以是绝对长度,例如3cm
,也可以是文档变量的分数,例如\textwidth
,正如我在下面的 MWE 中选择的那样。如果您有两个子图并且想要最大化它们的可能大小,您可以给它们两个一个大约的宽度0.48\textwidth
,然后使用命令\hspace{\fill}
将它们分开。(您不应该使用,0.5\textwidth
因为有一些“开销”空白。)
\documentclass{scrbook}
\usepackage{caption,subcaption}
\usepackage{cleveref}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}{0.3\textwidth}
\centering
a \rule{10pt}{10pt}
\caption{Description of a.} \label{part_a}
\end{subfigure}
\hspace{1cm}
\begin{subfigure}{0.4\textwidth}
\centering
b \rule{15pt}{15pt}
\caption{Description of b. } \label{part_b}
\end{subfigure}
\caption{Common caption here} \label{fig-overall}
\end{figure}
This should read fig.\ 0.1a and fig.\ 0.1b, and indeed it now reads
\cref{part_a} and \cref{part_b}.
\end{document}