我如何创建\autoref{}
对图片列表(或者词汇表,表格列表等)在连续的文本中?
最小示例
\documentclass{article}
\usepackage{caption}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\begin{figure}[!htbp]
\caption{Hello World}
\end{figure}
… bla bla bla have a look at the \autoref{??} bla bla bla …
\listoffigures
\end{document}
答案1
我认为\autoref
这不是解决这个问题最简单的方法。最简单的方法是\hyperref
结合使用\phantomsection
和\label
:
\documentclass{article}
\usepackage{caption}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\begin{figure}[tbp]
\centering
\vrule height 1cm width 1cm
\caption{Hello World}
\end{figure}
\dots have a look at the
\hyperref[listoffigures]{\listfigurename} for\dots
\phantomsection\label{listoffigures}
\listoffigures
\end{document}
如果您想要 的自动化autoref
,该cleveref
包可能更容易定制。它使用\cref
而不是\autoref
。定义一个新的计数器提供了一种方法来连接到这一点:
\documentclass{article}
\usepackage{caption}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage[capitalize]{cleveref}
\newcounter{lofigs}
\crefformat{lofigs}{#2\listfigurename #3}
\begin{document}
\begin{figure}[tbp]
\centering
\vrule height 1cm width 1cm
\caption{Hello World}
\label{fig:ex}
\end{figure}
\dots have a look at the \cref{listoffigures} for\dots see \cref{fig:ex}.
\refstepcounter{lofigs}\label{listoffigures}
\listoffigures
\end{document}
如果你想让它看起来像是完全自动的,你可以修补\listoffigures
命令:
\documentclass{article}
\usepackage{caption}
\usepackage{etoolbox}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage[capitalize]{cleveref}
\newcounter{lofigs}
\crefformat{lofigs}{#2\listfigurename #3}
\patchcmd{\listoffigures}{\@starttoc}{\refstepcounter{lofigs}\label{listoffigures}\@starttoc}{}{}
\begin{document}
\begin{figure}[tbp]
\centering
\vrule height 1cm width 1cm
\caption{Hello World}
\label{fig:ex}
\end{figure}
\dots have a look at the \cref{listoffigures} for\dots see \cref{fig:ex}.
\listoffigures
\end{document}
在所有情况下,您都必须对文档可能使用的其他列表做出类似的安排。
答案2
如果 OP 指的links
是reference
,那么这可能是一个解决方案。
\documentclass{article}
\usepackage{etoolbox}%
\usepackage{caption}
\usepackage{hyperref}
\usepackage{bookmark}
\patchcmd{\listoffigures}{\listfigurename}{\phantomsection\hypertarget{link::lof}{\listfigurename}}{}{}
\newcommand{\loflink}{\hyperlink{link::lof}{\listfigurename}}
\patchcmd{\listoftables}{\listtablename}{\phantomsection\hypertarget{link::lot}{\listtablename}}{}{}
\newcommand{\lotlink}{\hyperlink{link::lot}{\listtablename}}
\begin{document}
\listoftables
\begin{figure}[!htbp]
\caption{Hello World}
\end{figure}
… bla bla bla have a look at the \loflink~ bla bla bla …whereas in \lotlink it is shown that...
\clearpage
\begin{table}
\caption{Hello World - Table}
\end{table}
\listoffigures
\结束{文档}