使用 AMS 和 hyperref 自定义编号数字 1、2.1、2.2、3、4

使用 AMS 和 hyperref 自定义编号数字 1、2.1、2.2、3、4

通常我使用 amsart 和 hyperref 并将图 1、2、3、4 编号。在某些情况下,我需要将图拆分为多个部分,以便每个部分都能放在一页上,然后我想对这些部分进行子编号,例如 2.1、2.2、2.3。有什么好方法可以做到这一点?我在 Stackexchange 上看到的解决方案对我不起作用;要么是图上的数字不正确,要么是收到消息

pdfTeX 警告(ext4):具有相同标识符(name{figure.1.2})的目标已被使用,重复项被忽略

答案1

您可以使用子图和\ContinuedFloat,但与普通子图来回切换可能会变得混乱。

\documentclass{article}
\usepackage{subcaption}
\DeclareCaptionLabelFormat{subgroup}{Figure~#2}
\captionsetup[subfigure]{labelformat=subgroup,labelsep=colon}
\renewcommand{\thesubfigure}{\thefigure.\arabic{subfigure}}
\makeatletter
\renewcommand\p@subfigure{}
\makeatother
\usepackage{hyperref}

\begin{document}

\begin{figure}[ht]
  \begin{subfigure}{\linewidth}
    \caption{First Part}\label{one}
  \end{subfigure}
\end{figure}
\begin{figure}[ht]
  \ContinuedFloat
  \begin{subfigure}{\linewidth}
    \caption{Second part}\label{two}
  \end{subfigure}
\end{figure}

\begin{figure}[ht]
  \caption{Normal Caption}\label{three}
\end{figure}

Links to \ref{one}. \ref{two} and \ref{three}.
\end{document}

答案2

对我有用的方法是这样的:

将其放在之前\begin{document}

\newcounter{figuregroup}

在“图形组”的开头插入:

\global\let\thefiguresave=\thefigure
\global\let\theHfiguresave=\theHfigure
\numberwithin{figure}{figuregroup}
\addtocounter{figure}{1}
\setcounter{figuregroup}{\value{figure}}
\setcounter{figure}{0} 

然后有一个序列\begin{figure}...\end{figure}

在“图形组”末尾插入:

\global\let\thefigure=\thefiguresave
\global\let\theHfigure=\theHfiguresave
\setcounter{figure}{\value{figuregroup}}

据我所知,我遇到的部分问题来自使用hyperref,这个问题在这里得到了解决。如果您使用的是 AMS 样式之一没有hyperref,您可能必须删除包含的行\theH...

答案3

把这个放在前面可以使它变得更好一些\begin{document}

\newenvironment{figuregroup}{%
  \global\let\thefiguresave=\thefigure
  \global\let\theHfiguresave=\theHfigure
  \numberwithin{figure}{figuregroup}
  \addtocounter{figure}{1}
  \setcounter{figuregroup}{\value{figure}}
  \setcounter{figure}{0}
}{%
  \global\let\thefigure=\thefiguresave
  \global\let\theHfigure=\theHfiguresave
  \setcounter{figure}{\value{figuregroup}}
}

然后按如下方式构建图形组:

\begin{figuregroup}

\begin{figure}
...
\end{figure}

\begin{figure}
...
\end{figure}

...

\end{figuregroup}

相关内容