![子图引用,顺序错误](https://linux22.com/image/295482/%E5%AD%90%E5%9B%BE%E5%BC%95%E7%94%A8%EF%BC%8C%E9%A1%BA%E5%BA%8F%E9%94%99%E8%AF%AF.png)
我在引用子图时遇到了问题。当我引用主图时,引用中的标签是正确的,但当我尝试引用子图时,我得到的是图 X+1,这有点奇怪:
\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[english]{babel}
\usepackage{graphicx, hyperref, caption, float}
\usepackage{afterpage}
\usepackage{subfigure}
\usepackage{array}
\begin{document}
\begin{figure}[!htp]
\centering
\caption{Impulse responses to policy shocks}\label{fig:impulses to policy shocks}
\vspace{.05in}
\parbox{\linewidth}{\footnotesize%
This figure displays.....}
\subfigure[Something $\rightarrow$ Something.]{\label{fig:some_output}
\includegraphics[width=.45\textwidth]{slope_output.eps}}
\subfigure[Something else $\rightarrow$ something.]{\label{fig:something_output}
\includegraphics[width=.45\textwidth]{lvl_output.eps}}\\
\end{figure}
\end{document}
然后,当我引用时\hyperref[]{Figure \ref{fig:some_output}}
,与简单引用 \hyperref[]{Figure\ref{fig:impulses to policy shocks}} 相比,我得到了错误的图形编号。
我尝试了这里给出的先前的解决方案,但是这确实使情况变得更加混乱:
\makeatletter
\let\X@old@caption\caption
\def\X@caption@minusone{\expandafter\advance\csname c@\@captype\endcsname-1 }
\def\X@caption@br[#1]#2{\X@old@caption[#1]{#2}\X@caption@minusone}
\def\X@caption@nobr#1{\X@old@caption{#1}\X@caption@minusone}
\def\caption{\@ifnextchar[\X@caption@br\X@caption@nobr}
\makeatother
非常感谢您的帮助。
答案1
由于一些混乱的内容(如您所见),包很久以前就subfigure
被包 a 取代了。 的替代方法是作者的包。 这意味着最大程度的兼容性。subfig
subfig
subcaption
caption
这是您更改为使用subfigure
环境的示例,它基本上是一个小页面。
您可以使用autoref
提供的命令来节省一些时间。请记住,在几乎所有情况下,最后hyperref
加载包。hyperref
\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[english]{babel}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{hyperref}
\begin{document}
\begin{figure}[!htp]
\centering
\caption{Impulse responses to policy shocks}\label{fig:impulsesToPolicyShocks}
\begin{subfigure}{0.49\textwidth}
\centering
\includegraphics[width=.45\textwidth]{slope_output.eps}
\caption{Something $\rightarrow$ Something.}
\label{fig:someOutput}
\end{subfigure}\hfill
\begin{subfigure}{0.49\textwidth}
\centering
\includegraphics[width=.45\textwidth]{lvl_output.eps}
\caption{Something else $\rightarrow$ something.}
\label{fig:somethingOutput}
\end{subfigure}
\end{figure}
\autoref{fig:impulsesToPolicyShocks} contains
\autoref{fig:someOutput} and \autoref{fig:somethingOutput}
\end{document}