我如何才能按顺序用正整数标记各个图形中的子图形?

我如何才能按顺序用正整数标记各个图形中的子图形?

我想用连续的正整数标记多个图形中的子图形。

例如,第一个图可能有两个子图,分别带有标签标记{fig1:subfig1}和,{fig1:subfig2}而第二个图可能有三个子图,分别带有标签标记{fig2:subfig1}{fig2:subfig2}{fig2:subfig3}

然后,当引用这些标签时,

{fig1:subfig1}
{fig1:subfig2}
{fig2:subfig1}
{fig2:subfig2}
{fig2:subfig3}

将显示为

1
2
3
4
5.

我如何使用该subfigure包来做到这一点?

我还不知道如何使用该subfig软件包。与此同时,有一个 MWE 正在使用该subfigure软件包。

\documentclass[12pt]{article}
\usepackage{subfigure}
\begin{document}
\begin{figure}[ht]
 \subfigure[subfigure A]{This is a figure. \label{label1}}
 \subfigure[subfigure B]{This is a figure. \label{label2}}
\end{figure}
\begin{figure}[ht]
 \subfigure[subfigure A]{This is a figure. \label{label3}}
 \subfigure[subfigure B]{This is a figure. \label{label4}}
 \subfigure[subfigure C]{This is a figure. \label{label5}}
\end{figure}

Tesing referencing labels: \ref{label1} \ref{label2} \ref{label3} \ref{label4}

Desired result: 1 2 3 4 5
\end{document}

答案1

您需要断开子图计数器与图形计数器之间的连接。最好使用chngcntr包来完成此操作。它\counterwithout{<counter>}{<parent counter>}为此提供了宏,并断开了<counter>与原始 之间的连接<parent counter>

对于subfigure您可以使用的包:

\usepackage{subfigure}% Actually replaced by `subfig`!
\usepackage{chngcntr}
\counterwithout{subfigure}{figure}

更新:

上面的方法似乎只适用于子标题编号,而不适用于参考文献。您可以添加自己的计数器,使用 增加计数器,\refstepcounter使其成为以下内容的目标\label

以下代码对我有用。希望这就是你想要的。

\documentclass[12pt]{article}
\usepackage{subfigure}

\newcounter{mysubfig}
\newcommand{\mysubfig}[2][]{%
    \subfigure[#1]{#2}%
    \refstepcounter{mysubfig}%
}

\usepackage{chngcntr}
\counterwithout{subfigure}{figure}
\renewcommand{\thesubfigure}{(\arabic{subfigure})}

\begin{document}
\begin{figure}[ht]
 \mysubfig[mysubfig A]{This is a figure.}\label{label1}
 \mysubfig[mysubfig B]{This is a figure.}\label{label2}
 \caption{Main caption}\label{main1}
\end{figure}
\begin{figure}[ht]
 \mysubfig[mysubfig A]{This is a figure.}\label{label3}
 \mysubfig[mysubfig B]{This is a figure.}\label{label4}
 \mysubfig[mysubfig C]{This is a figure.}\label{label5}
 \caption{Main caption}\label{main2}
\end{figure}

Main figure still work? \ref{main1} \ref{main2}

Tesing referencing labels: \ref{label1} \ref{label2} \ref{label3} \ref{label4} \ref{label5}

Desired result: 1 2 3 4 5
\end{document}

结果:

图像

答案2

标题软件包\ContinuedFloat还为此目的提供了:

\documentclass[a4paper]{book}
\usepackage{subfig}
\usepackage{caption}
\captionsetup[subfloat]{listofformat=subsimple}
\renewcommand{\thesubfigure}{\arabic{subfigure}}
\usepackage[demo]{graphicx}
\begin{document}
text

\begin{figure}[htp]
\centering
\subfloat[first]{\includegraphics[width=3cm]{x}\label{f}}
\qquad
\subfloat[second]{\includegraphics[width=4cm]{x}\label{s}}
\caption{A figure}\label{full}
\end{figure}
\begin{figure}[htp]\ContinuedFloat
\centering
\subfloat[third]{\includegraphics[width=6cm]{x}\label{t}}
\caption{A figure (continued)}
\end{figure}

\subref{f}
\subref{s}
\subref{t}
\end{document}

在此处输入图片描述

答案3

这个答案基于 Martin Scharrer 的答案,但使用了 subfig 包(正如他和其他人推荐的那样)。

我 (最终) 弄清楚了如何使用该subfig包,并且我非常喜欢它为这个问题提供的解决方案。由于myCounter与图形或子图形计数器无关,因此其他一切都正常工作 (因此看起来) “正常”。

\documentclass[12pt]{article}

\usepackage{subfig}
\newcounter{myCounter}
\newcommand{\mySubfloat}[2][]{\subfloat[#1]{#2}\refstepcounter{myCounter}}

\begin{document}
\begin{figure}[ht]
 \mySubfloat[mysubfig A]{This is a figure.}\label{label1}
 \mySubfloat[mysubfig B]{This is a figure.}\label{label2}
 \caption{Main caption}\label{main1}
\end{figure}
\begin{figure}[ht]
 \mySubfloat[mysubfig A]{This is a figure.}\label{label3}
 \mySubfloat[mysubfig B]{This is a figure.}\label{label4}
 \mySubfloat[mysubfig C]{This is a figure.}\label{label5}
 \caption{Main caption}\label{main2}
\end{figure}

Main figure still work? \ref{main1} \ref{main2}

Tesing referencing labels: \ref{label1} \ref{label2} \ref{label3} \ref{label4} \ref{label5}

Desired result: 1 2 3 4 5
\end{document}

在此处输入图片描述

答案4

并不是说指定了回忆录类别,但万一对其他人有用,这里有一个用于回忆录中有子图的多页图的 MWE(我想不出当我们得到一个新图时不重置子图编号的另一个原因):

\documentclass[10pt,oneside]{memoir}

\newsubfloat{figure}

\begin{document}
\chapter{A Chapter}
The following figure (if it had real content) would be large
enough to require multiple pages. It is made of several subfigures,
labeled (a), (b), and (c). Though we have multiple figure environments,
the \verb|contsubbottom| command treats them as part of one logical
figure.
\begin{figure}
    \centering
    \subbottom[First Subfigure Caption]{
        \framebox[0.9\textwidth]{Here's the content of a subfigure.}
        \label{fig:ve_uw}
    }
    \\
    \subbottom[Second Subfigure Caption]{
        \framebox[0.9\textwidth]{Here's the content of a subfigure.}
        \label{fig:ve_iw}
    }
    \caption{First Figure Caption}
\end{figure}
%
\clearpage
%
\begin{figure}
    \centering
    \contsubbottom[Third Subfigure Caption]{
        \framebox[0.9\textwidth]{Here's the content of a subfigure.}
        \label{fig:ve_eiw}
    }
    \contcaption{Continued}
    \label{fig:ve}
\end{figure}
Since the previous figure has a subfigure on the top of this page,
we'll place this second figure anywhere *but* the top of the page.
\begin{figure}[hbp]
\centering
\framebox[0.9\textwidth]{Here's the content of another figure.}
\caption{Second Figure Caption}
\label{fig:second}
\end{figure}

\end{document}

结果:

在此处输入图片描述

相关内容