如何从书签部分删除不必要的前缀?

如何从书签部分删除不必要的前缀?

我正在使用我大学的论文类文件撰写论文。我在序言中使用以下命令来获取 PDF 书签。

\usepackage[hidelinks, bookmarks]{hyperref}

书签中的所有章节名称前都出现了不必要的前缀(“to”),如下所示。我完全不知道。有人知道吗?谢谢。

请注意不必要的前缀“to”

答案1

软件包hyperref已尝试过滤掉许多在书签中毫无意义的命令。书签是简单的文本字符串,而 PDF 查看器无法理解 TeX 标记。

在这种情况下,我怀疑它to来自 TeX 原语\hbox,它具有to关键字来指定框的宽度。\hbox被过滤掉,如果宽度是一个 dimen 寄存器,那么也是宽度,但关键字to仍然存在。

以下示例使用了一个技巧,删除了\hbox和之后的关键字,这对于示例有效。但这通常不适用,因为它假设\hbox每次都使用花括号调用。否则,当使用\bgroup和时\egroup,代码将彻底失败。

\documentclass{article}
\usepackage{hyperref}
\usepackage{bookmark}

\pdfstringdefDisableCommands{%
  \def\hbox#1#{\@firstofone}% remove \hbox and all up to the next open curly brace
}

\begin{document}
\section{\hbox to \parindent{1\hfill} Funny Section}
\end{document}

更清洁的解决方案是,如果将修复应用于您正在使用的类或包的标记。

相关内容