Cleveref 和 pdf 书签

Cleveref 和 pdf 书签

我正在使用 hyperref 和 cleveref 包制作 pdf 书签。但是,pdf 书签显示我定义的标签,而不是标签引用的定理名称。以下是代码:

\documentclass{article}

\usepackage{hyperref}
\usepackage{cleveref}

\newtheorem{theorem}{Theorem}

\begin{document}

\section{Section 1}
\begin{theorem}\label{some label}
    This is a theorem.
\end{theorem}

\section{Proof to \Cref{some label}}

\end{document}

这是 PDF: 在此处输入图片描述

知道如何将标签从“某些标签的证明”改为“定理 1 的证明”吗?

答案1

恐怕除了使用命令之外没有其他解决方案,\texorpdfstring即您必须指定文本中要包含的内容以及书签中要包含的内容。

因此,替代

\section{Proof to \Cref{some label}}

\section{Proof to \texorpdfstring{\Cref{some_label}}{Theorem \ref{some_label}}}

请注意,标签名称中带有空格不是一个好主意,因此我用 代替some labelsome_label

梅威瑟:

\documentclass{article}

\usepackage{hyperref}
\usepackage{cleveref}

\newtheorem{theorem}{Theorem}

\begin{document}

\section{Section 1}
\begin{theorem}\label{some_label}
    This is a theorem.
\end{theorem}

\section{Proof to \texorpdfstring{\Cref{some_label}}{Theorem \ref{some_label}}}

\end{document} 

输出:

在此处输入图片描述

答案2

在制作书签时\Cref不能使用该命令;但是,它可以工作(尽管功能较弱)。对于像这样的简单应用程序,您可以执行以下操作:\section\autoref

\documentclass{article}

\usepackage{hyperref}
\usepackage{cleveref}

\pdfstringdefDisableCommands{\let\Cref\autoref}

\newtheorem{theorem}{Theorem}

\begin{document}

\section{Section 1}

\begin{theorem}\label{some_label}
This is a theorem.
\end{theorem}

\section{Proof to \Cref{some_label}}

\end{document}

在此处输入图片描述

答案3

基于菲利佩·奥莱尼克的解决方案:https://tex.stackexchange.com/a/485979/128042 可以将该crossreftools包与一些自定义代码一起使用。

\documentclass{article}

\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{crossreftools}

\pdfstringdefDisableCommands{%
    \let\Cref\crtCref
    \let\cref\crtcref
}

\newtheorem{theorem}{Theorem}

\begin{document}

\section{Section 1}

\begin{theorem}\label{some_label}
This is a theorem.
\end{theorem}

\section{Proof to \Cref{some_label}}

\end{document}

这会自动创建正确的 pdf 书签(在 TexXStudio 中必须编译两次)。(如果您还想删除链接的颜色,请参阅 菲利佩·奥莱尼克的解决方案:https://tex.stackexchange.com/a/485979/128042

PS:这个答案也得到了改进乌尔丽克·菲舍尔评论https://tex.stackexchange.com/a/504970/128042(回答等效问题pdf 书签(章节标题)中 \ref 的自动 \texorpdfstring)。

相关内容