由于外部软件生成的图形没有标签,类似于示例中的图形,因此我无法引用它们。但是,我需要在我的文本中使用例如来引用它们\ref{fig:1}
。ChatGPT 为我提出了一个如下所示的解决方案,它将自动从标签中的单独计数器中添加一个带有递增数字的标签,并跨我的图形编号所在的部分进行计数。因此,链接可以正常工作并显示正确的图号,但是单击它们时,您将始终在第一部分中找到具有正确编号的图(例如,单击图 2.2 将转到 1.2,单击 2.1 将转到 1.1)。
我认为我的计数器出了问题。非常乐意提供任何建议。MWE 如下:
\documentclass{article}
\usepackage[english]{babel}
\usepackage[letterpaper,
top=2cm,
bottom=2cm,
left=3cm,
right=3cm,
marginparwidth=1.75cm
]{geometry}
\usepackage{amsmath}
\numberwithin{figure}{section}
\newcounter{figcounter}
\let\oldfigure\figure
\let\oldendfigure\endfigure
\renewenvironment{figure}{
\oldfigure
\stepcounter{figcounter}
}{
\label{fig:\thefigcounter}
\oldendfigure
}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
\title{Your Paper}
\author{You}
\begin{document}
\maketitle
\section{Introduction}
Link to Figure \ref{fig:1}\\
Link to Figure \ref{fig:2}\\
Link to Figure \ref{fig:3}\\
Link to Figure \ref{fig:4}
\begin{figure}
\centering
first figure in section 1
\caption{Caption}
\end{figure}
\begin{figure}
\centering
second figure but still section 1
\caption{Caption}
\end{figure}
\clearpage
\section{Another Section}
\begin{figure}
\centering
second section's first figure
\caption{Caption}
\end{figure}
\begin{figure}
\centering
second section's second figure
\caption{Caption}
\end{figure}
\clearpage
\listoffigures
\end{document}
答案1
您需要重新定义 \theHfigure 以使链接目标唯一。我还会按部分对标签进行编号,这样可以更轻松地跟踪正确的数字:
\documentclass{article}
\usepackage[english]{babel}
\usepackage[letterpaper,
top=2cm,
bottom=2cm,
left=3cm,
right=3cm,
marginparwidth=1.75cm
]{geometry}
\usepackage{amsmath}
\numberwithin{figure}{section}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
\renewcommand\theHfigure{\arabic{section}.\arabic{figure}}
\AddToHook{env/figure/end}{\label{fig:\theHfigure}}
\title{Your Paper}
\author{You}
\begin{document}
\maketitle
\section{Introduction}
Link to Figure \ref{fig:1.1}\\
Link to Figure \ref{fig:1.2}\\
Link to Figure \ref{fig:2.1}\\
Link to Figure \ref{fig:2.2}
\begin{figure}
\centering
first figure in section 1
\caption{Caption}
\end{figure}
\begin{figure}
\centering
second figure but still section 1
\caption{Caption}
\end{figure}
\clearpage
\section{Another Section}
\begin{figure}
\centering
second section's first figure
\caption{Caption}
\end{figure}
\begin{figure}
\centering
second section's second figure
\caption{Caption}
\end{figure}
\clearpage
\listoffigures
\end{document}