我有一张有四个子图的图,每个子图对应一个定理中的一个子情况,标记为(A), (b)我, 和 (b)二分别使用enumitem
包(参见下面的 MWE 和插图;注意定理后段落中的参考样式)。
梅威瑟:
\documentclass[a5paper]{scrartcl}
\usepackage{enumitem}
\setlist[enumerate,1]{label=\textnormal{(\emph{\alph*})}}
\setlist[enumerate,2]{labelindent=2\parindent,
label=\textnormal{(\emph{\roman*})},ref=\theenumi\textnormal{\emph{\roman*}}}
\usepackage{subcaption}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}
There are two cases and three subcases in this theorem:
\begin{enumerate}
\item \label{itm.a} About the first figure.
\item About the other figures.
\begin{enumerate}
\item \label{itm.bi} About the second figure.
\item \label{itm.bii} About the third figure.
\end{enumerate}
\end{enumerate}
\end{theorem}
The theorem talks about \ref{itm.a}, \ref{itm.bi}, and \ref{itm.bii}.
See Figures~\ref{fig.a}, \ref{fig.bi}, and \ref{fig.bii}.
\begin{figure}
\begin{center}
\begin{subfigure}[t]{0.3\textwidth}
\centering
A
\caption{The first picture} \label{fig.a}
\end{subfigure}
%
\begin{subfigure}[t]{0.3\textwidth}
\centering
BI
\caption{The second picture} \label{fig.bi}
\end{subfigure}
%
\begin{subfigure}[t]{0.3\textwidth}
\centering
BII
\caption{The third picture} \label{fig.bii}
\end{subfigure}
\caption{Three different pictures.}
\end{center}
\end{figure}
\end{document}
由于每个子图都与定理中的一个子情况完全对应,因此我希望子图的标签与相应的子情况相同,即(A), (b)我, 和 (b)二,并且对这些图的引用也应如此显示。具体来说,我希望子图标签为(A), (b)我, 和 (b)二(而不是(a)、(b)和(c)),因此该文件最后一段带有参考文献的段落应为“参见图 1(A), 1(b)我,以及 1(b)二“”。
我怎样才能做到这一点?我想更大的问题是如何让两个不同的东西有相同的标签。
答案1
放置\renewcommand\thesubfigure{\ref{itm.a}}
在子图内(标题之前)会将其名称替换为\ref{itm.a}
,无论其是什么。这也适用于引用子图。
括号会带来一些麻烦\ref{itm.a}
,当它出现在子图标题中时,默认情况下会被更多括号括起来。下面的示例通过包含\thesubfigure
括号解决了这个问题。
\documentclass[a5paper]{scrartcl}
\usepackage{enumitem}
\setlist[enumerate,1]{label=\textnormal{(\emph{\alph*})}}
\setlist[enumerate,2]{labelindent=2\parindent,
label=\textnormal{(\emph{\roman*})},ref=\theenumi\textnormal{\emph{\roman*}}}
%% Remove the automatic parentheses and make them part of the label
\usepackage[labelformat=simple]{subcaption}
\renewcommand{\thesubfigure}{(\alph{subfigure})}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}
There are two cases and three subcases in this theorem:
\begin{enumerate}
\item \label{itm.a} About the first figure.
\item About the other figures.
\begin{enumerate}
\item \label{itm.bi} About the second figure.
\item \label{itm.bii} About the third figure.
\end{enumerate}
\end{enumerate}
\end{theorem}
The theorem talks about \ref{itm.a}, \ref{itm.bi}, and \ref{itm.bii}.
See Figures~\ref{fig.a}, \ref{fig.bi}, and \ref{fig.bii}.
\begin{figure}
\begin{center}
\begin{subfigure}[t]{0.3\textwidth}\renewcommand{\thesubfigure}{\ref{itm.a}}
\centering
A
\caption{The first picture} \label{fig.a}
\end{subfigure}
\quad
\begin{subfigure}[t]{0.3\textwidth}\renewcommand\thesubfigure{\ref{itm.bi}}
\centering
BI
\caption{The second picture} \label{fig.bi}
\end{subfigure}
\quad
\begin{subfigure}[t]{0.3\textwidth}\renewcommand\thesubfigure{\ref{itm.bii}}
\centering
BII
\caption{The third picture} \label{fig.bii}
\end{subfigure}
\caption{Three different pictures.}
\end{center}
\end{figure}
\begin{figure}
\begin{subfigure}[t]{0.5\textwidth}
\centering
Another subfigure
\caption{Testing to ensure that captions on other subfigures still show with parentheses}
\end{subfigure}
\caption{Testing captions on other figures}
\end{figure}
\end{document}
当然,如果您经常这样做,您可能需要为其定义一个宏。同样的技巧也适用于重命名表格、图形等(分别使用\thetable
、 、 代替)。\thefigure
\thesubfigure