连续文本中带有 autoref 的图表参考列表

连续文本中带有 autoref 的图表参考列表

我如何创建\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 指的linksreference,那么这可能是一个解决方案。

\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

\结束{文档}

相关内容