在我的 LaTeX 文档中,我有一些图表。例如,它们使用它们所在的章节自动编号。图 1.1、图 2.3 等。我正在使用 mwart 文档类。我的问题是,为某些图表创建的超链接(使用\ref
和\listoffigures
)是错误的。例如,如果我单击应该指向图 2.1 的超链接,它会将我引导到图 1.1。2.2 -> 1.2 等也是一样。这里可能是什么问题?仅出于测试目的,我在第 2 章中创建了一些额外的虚拟图表,因此那里的图表比第 1 章中的多。当我单击图 2.7 时,它会将我带到 2.7,因为第 1 章中数字最高的图表只有 1.6……我真的非常感谢这里的所有帮助。请让我知道解决此问题需要哪些其他信息,我会提供它们。
这是显示该问题的测试文档:
%% Clear sans, courier
% Klasa:
\documentclass[12pt]{mwart}
% Kodowanie:
\usepackage[utf8]{inputenc}
% Czcionki:
\usepackage[sfdefault]{ClearSans} %% option 'sfdefault' activates Clear Sans as the default text font
\usepackage[T1]{fontenc}
\usepackage{courier}
\usepackage[T1]{polski}
% Geometria i style
%\usepackage{showframe} % debug
\usepackage{geometry}
\geometry{a4paper,twoside=true,top=20mm,bottom=30mm,inner=35mm,outer=20mm}
\pagestyle{plain}
\usepackage{float}
\usepackage{afterpage}
% Grafika
\usepackage{graphicx}
% kody
\usepackage{listings}
% matma
\usepackage{amssymb,amsmath}
% theoremy
\usepackage{amsthm}
% Numerowanie obiektow wedlug rozdzialow
\usepackage{chngcntr}
\counterwithin{figure}{section}
\numberwithin{equation}{section}
% Linki
\usepackage{url}
% Listy
\usepackage[ampersand]{easylist}
\ListProperties(Hide=100, Hang=true, Progressive=3ex, Style*=-- ,
Style2*=$\bullet$ ,Style3*=$\circ$ ,Style4*=\tiny$\blacksquare$ )
% Zmienne srodowiskowe:
\newcommand{\insertImg}[3]{
\begin{figure}[h]
\centering
\includegraphics[height=50mm]{#1}
\caption{#2} \flushleft{Źródło: Na podstawie \cite{#3}}
\label{#1}
\end{figure}
}
\newcommand{\insertImgSetSize}[4]{
\begin{figure}[h]
\centering
\includegraphics[height=#2mm]{#1}
\caption{#3} \flushleft{Źródło: Na podstawie \cite{#4}}
\label{#1}
\end{figure}
}
% Indeksowanie w pdfie wyjsciowym
\usepackage{hyperref}
% START:
\begin{document}
\thispagestyle{empty} % usun nr strony ze strony tytulowej
\section{test 1}
\insertImg{cat1.png}
{caption 1}
{nothing}
\section{test 2}
\insertImg{cat2.png}
{caption 2}
{nothing}
link should lead to 2.1 but will lead to 1.1 \ref{cat2.png}.
\afterpage{\null \thispagestyle{empty} \newpage}
\clearpage
\end{document}
链接到输出 pdf 因为我无法在此处添加附件:https://dl.dropboxusercontent.com/u/14154631/test.pdf
答案1
其内部结构\theH<counter>
已由 Christian Hupfer 的回答。答案还显示了如何以一般方式修复它。
在这种情况下,还有另一种方法。
hyperref
refines \@addtoreset
,它由\counterwithin
和\numberwithin
用来支持\theH<counter>
。但是,如果使用这些命令前 hyperref
加载后,支撑来得太晚。因此,一个简单的解决方法是移动\counterwithin
并\numberwithin
之后hyperref
:
\usepackage{hyperref}
\counterwithin{figure}{section}
\numberwithin{equation}{section}
答案2
常见的错误:section
重置图形计数器,在这种情况下figure
宏\theHfigure
会产生错误的锚点。
使用类似
\renewcommand{\theHfigure}{figure.section.\thesection.\thefigure}
为了解决这个问题,即使用section
数字依赖锚点。
此外, .宏%
中还缺少一些内容\InsertImg{...}
。
%% Clear sans, courier
% Klasa:
\documentclass[12pt]{mwart}
% Kodowanie:
\usepackage[utf8]{inputenc}
% Czcionki:
\usepackage[sfdefault]{ClearSans} %% option 'sfdefault' activates Clear Sans as the default text font
\usepackage[T1]{fontenc}
\usepackage{courier}
\usepackage[T1]{polski}
% Geometria i style
%\usepackage{showframe} % debug
\usepackage{geometry}
\geometry{a4paper,twoside=true,top=20mm,bottom=30mm,inner=35mm,outer=20mm}
\pagestyle{plain}
\usepackage{float}
\usepackage{afterpage}
% Grafika
\usepackage{graphicx}
% kody
\usepackage{listings}
% matma
\usepackage{amssymb,amsmath}
% theoremy
\usepackage{amsthm}
% Numerowanie obiektow wedlug rozdzialow
\usepackage{chngcntr}
\counterwithin{figure}{section}
\numberwithin{equation}{section}
% Linki
\usepackage{url}
% Listy
\usepackage[ampersand]{easylist}
\ListProperties(Hide=100, Hang=true, Progressive=3ex, Style*=-- ,
Style2*=$\bullet$ ,Style3*=$\circ$ ,Style4*=\tiny$\blacksquare$ )
% Zmienne srodowiskowe:
\newcommand{\insertImg}[3]{%
\begin{figure}[h]
\centering
\includegraphics[height=50mm]{#1}
\caption{#2} \flushleft{Źródło: Na podstawie \cite{#3}}
\label{#1}
\end{figure}
}
\newcommand{\insertImgSetSize}[4]{%
\begin{figure}[h]
\centering
\includegraphics[height=#2mm]{#1}
\caption{#3} \flushleft{Źródło: Na podstawie \cite{#4}}
\label{#1}
\end{figure}
}
% Indeksowanie w pdfie wyjsciowym
\usepackage{hyperref}
\renewcommand{\theHfigure}{figure.section.\thesection.\thefigure}
% START:
\begin{document}
\thispagestyle{empty} % usun nr strony ze strony tytulowej
\section{test 1}
\insertImg{ente1.jpg}
{caption 1}
{nothing}
\section{test 2}
\clearpage
\insertImg{ente2.jpg}
{caption 2}
{nothing}
link should lead to 2.1 but will lead to 1.1 \ref{ente2.jpg}.
\afterpage{\null \thispagestyle{empty} \newpage}
\clearpage
\end{document}