在这个 MWE 中,您可以看到/探索(希望如此,因为它对我来说不起作用)它\ref{tab:2}
会产生正确的标签,但如果您单击它,它会引导您到\label{tab:1}
。
\usepackage{appendix}
并且\begin{appendix} ... \end{appendix}
没有帮助,因为我认为我\label
在正确的位置使用了。
编辑:将 \numbering 放在 hyperref 后面的解决方案效果很好 (!),但与 subfigures 结合时出现了另一个错误。如果将 \numbering 放在 subfigure 包的包含之前,标签将不再合适。我听说 hyperref 出于某些原因应该是最后包含的包,但作为此错误的解决方案:我可以将 \usepackage{subfigure} 放在 hyperref 和 \numbering 之后吗?
\documentclass[12pt,a4paper]{scrartcl}
\KOMAoptions{captions=tableheading}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{thumbpdf}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{color}
\usepackage[
colorlinks,
allcolors = blue,
]{hyperref}
\numberwithin{equation}{section}
\numberwithin{figure}{section}
\numberwithin{table}{section}
\begin{document}
\section{sec one}
\begin{table}[!h]
\caption{Tab one}
\label{tab:1}
\centering
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{l|c|c}
1 & 2 & 3\\
\end{tabular}
\end{table}
MWE, more in the appendix, tab \ref{tab:2}
\section{sec two}
\begin{figure}[!h]
\centering
\subfigure[left fig \label{fig:left}]{\includegraphics[width=0.49\linewidth]{default.png}}
\subfigure[right fig \label{fig:right}]{\includegraphics[width=0.49\linewidth]{default.png}}
\caption{left and right fig}
\end{figure}
Next Problem: subfigures \ref{fig:left}
\appendix
\clearpage
\section{appendix}
\subsection{to sec one}
\begin{table}[!h]
\caption{Tab two}
\label{tab:2}
\centering
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{l|c|c}
1 & 2 & 3\\
\end{tabular}
\end{table}
\end{document}
答案1
hyperref
支持\numberwithin
,但前提是它知道这一点。因此,\numberwithin
应该使用后包裹hyperref
。
进一步说明:
选项
allcolors
通过选项 简化了将颜色设置成一种颜色的操作colorlinks
。包自动
hyperref
检测驱动程序pdftex
,不需要明确设置。KOMAScript 选项
captions=tableheading
修复了表格上方使用的表格标题周围的跳过设置。因此,可以删除空行 hack。
完整示例:
\documentclass[12pt,a4paper]{scrartcl}
\KOMAoptions{captions=tableheading}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{thumbpdf}
\usepackage{color}
\usepackage[
colorlinks,
allcolors = blue,
]{hyperref}
\numberwithin{equation}{section}
\numberwithin{figure}{section}
\numberwithin{table}{section}
\begin{document}
\section{sec one}
\begin{table}[!h]
\caption{Tab one}
\label{tab:1}
\centering
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{l|c|c}
1 & 2 & 3\\
\end{tabular}
\end{table}
MWE, more in the appendix, tab \ref{tab:2}
\appendix
\clearpage
\section{appendix}
\subsection{to sec one}
\begin{table}[!h]
\caption{Tab two}
\label{tab:2}
\centering
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{l|c|c}
1 & 2 & 3\\
\end{tabular}
\end{table}
\end{document}
答案2
pdftex 在日志中警告你目标锚点不是唯一的
l.43 \caption{Tab two}
pdfTeX warning (ext4): destination with the same
identifier (name{table.1}) has been already used, duplicate ignored
<to be read again>
正如 Heiko 所写,在这种情况下,最简单的方法是移动\numberwithin
命令并让 hyperref 处理它。手动解决方案是重新定义,\theHtable
以便提供唯一的表示。
\ \\
还应避免在标题后 插入空格。此类空格可以通过选项和设置长度来更改。
\documentclass[12pt,a4paper,
captions=tableabove, %better spacing after table captions
]{scrartcl}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\numberwithin{equation}{section}
\numberwithin{figure}{section}
\numberwithin{table}{section}
\usepackage{thumbpdf}
\usepackage{color}
\usepackage[
colorlinks,
citecolor = {blue},
linkcolor = {blue},
urlcolor = {blue}]{hyperref}
\renewcommand\theHtable{\thesection.\thetable}
\begin{document}
\section{sec one}
\begin{table}[!h]
\caption{Tab one}
\label{tab:1}
\centering
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{l|c|c}
1 & 2 & 3\\
\end{tabular}
\end{table}
MWE, more in the appendix, tab \ref{tab:2}
\appendix
\clearpage
\section{appendix}
\subsection{to sec one}
\begin{table}[!h]
\caption{Tab two}
\label{tab:2}
\centering
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{l|c|c}
1 & 2 & 3\\
\end{tabular}
\end{table}
\end{document}