![如何从书签部分删除不必要的前缀?](https://linux22.com/image/311234/%E5%A6%82%E4%BD%95%E4%BB%8E%E4%B9%A6%E7%AD%BE%E9%83%A8%E5%88%86%E5%88%A0%E9%99%A4%E4%B8%8D%E5%BF%85%E8%A6%81%E7%9A%84%E5%89%8D%E7%BC%80%EF%BC%9F.png)
我正在使用我大学的论文类文件撰写论文。我在序言中使用以下命令来获取 PDF 书签。
\usepackage[hidelinks, bookmarks]{hyperref}
书签中的所有章节名称前都出现了不必要的前缀(“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}
更清洁的解决方案是,如果将修复应用于您正在使用的类或包的标记。