我想添加嵌套子图环境的自动编号。我发现以下回答,它显示了如何手动向我的子图添加额外的阿拉伯数字,但我希望在另一个“子图”环境内的每个“子图”上都有这个编号。
有没有办法检查AtBeginEnvironment
它是否是嵌套环境并自动执行此操作?并在外部子图环境之后重置子子图计数器,并在最后一个嵌套子图之后重置子图计数器?
\documentclass{scrbook}
\usepackage[demo]{graphicx}
\usepackage{cleveref}
\usepackage{subcaption}
\newcounter{subsubfigure}
\begin{document}
\chapter{Test}
\section{Test}
\begin{figure}
\begin{subfigure}{0.4\textwidth}
\centering
\includegraphics[width=.95\textwidth]{figa}
\caption{}
\label{fig:a}
\end{subfigure}%
\hfill
\begin{subfigure}{0.6\textwidth}
\begin{subfigure}{0.64\textwidth}
\refstepcounter{subsubfigure} %TODO
\renewcommand\thesubfigure{\alph{subfigure}\arabic{subsubfigure}} %TODO
\centering
\includegraphics{figb1}
\caption{}
\label{fig:b1}
\end{subfigure}
\hfill
\begin{subfigure}{0.32\textwidth}
\addtocounter{subfigure}{-1} %TODO
\refstepcounter{subsubfigure} %TODO
\renewcommand\thesubfigure{\alph{subfigure}\arabic{subsubfigure}} %TODO
\centering
\includegraphics{figb2}
\caption{}
\label{fig:b2}
\end{subfigure}
\addtocounter{subfigure}{-1} %TODO
\caption{Example}
\end{subfigure}
\setcounter{subsubfigure}{0} %TODO
\caption[Examples]{Example \subref{fig:a}, Example \subref{fig:b1} and Example \subref{fig:b2}}
\label{fig:Examples}
\end{figure}
\end{document}
答案1
我不确定如何从 完成AtBeginEnvironment
,但您可以定义环境以自动对计数器进行适当的更改。在此示例中,我采用了您的代码并添加了一个subsubfigure
环境,以及一个subsubfigures
环境,其中应放置单个子图的所有子子图,以便subsubfigure
在子图末尾重置计数器。
它可能不是最好的实现,但它确实正确地更新了计数器。
\documentclass{scrbook}
\usepackage[demo]{graphicx}
\usepackage{cleveref}
\usepackage{subcaption}
\newcounter{subsubfigure}
\newenvironment{subsubfigures}{
\refstepcounter{subfigure}
}{
\addtocounter{subfigure}{-1}
\setcounter{subsubfigure}{0}
}
\newenvironment{subsubfigure}[1]{
\renewcommand{\thesubfigure}{\alph{subfigure}\arabic{subsubfigure}}
\begin{subfigure}{#1}
\refstepcounter{subsubfigure}
\addtocounter{subfigure}{-1}
}{
\end{subfigure}
\renewcommand{\thesubfigure}{\alph{subfigure}}
}
\begin{document}
\chapter{Test}
\section{test}
\begin{figure}[h]
\begin{subfigure}{0.4\textwidth}
\centering
\includegraphics[width=.95\linewidth]{figa}
\caption{}
\label{fig:a}
\end{subfigure}%
\hfill
\begin{subfigure}{0.64\textwidth}
\begin{subsubfigures}
\begin{subsubfigure}{0.32\textwidth}
\centering
\includegraphics[width=\linewidth]{figb1}
\caption{}
\label{fig:b1}
\end{subsubfigure}
\hfill
\begin{subsubfigure}{0.32\textwidth}
\centering
\includegraphics[width=\linewidth]{figb2}
\caption{}
\label{fig:b2}
\end{subsubfigure}
\end{subsubfigures}
\caption{Example}
\end{subfigure}
\caption[Examples]{Example \subref{fig:a}, Example \subref{fig:b1} and Example \subref{fig:b2}}
\label{fig:Examples}
\end{figure}
\begin{figure}[h]
\begin{subfigure}{0.64\textwidth}
\begin{subsubfigures}
\begin{subsubfigure}{0.32\textwidth}
\centering
\includegraphics[width=\linewidth]{figb1}
\caption{}
\label{fig:a1}
\end{subsubfigure}
\hfill
\begin{subsubfigure}{0.32\textwidth}
\centering
\includegraphics[width=\linewidth]{figb2}
\caption{}
\label{fig:a2}
\end{subsubfigure}
\end{subsubfigures}
\caption{Example}
\end{subfigure}%
\hfill
\begin{subfigure}{0.4\textwidth}
\centering
\includegraphics[width=.95\linewidth]{figa}
\caption{}
\label{fig:b}
\end{subfigure}
\caption[Examples]{Example \subref{fig:a1}, Example \subref{fig:a2} and Example \subref{fig:b}}
\label{fig:Examples2}
\end{figure}
\end{document}