在章节标题中自动添加 \texorpdfstring 作为数学模式

在章节标题中自动添加 \texorpdfstring 作为数学模式

我收到大量警告,例如“pdf 字符串中不允许使用令牌”,因为我的大多数章节标题都包含数学(请参阅此处的帖子:Hyperref-不允许使用令牌或者这里:Hyperref 警告 - PDF 字符串中不允许使用令牌)。

我想将提供的解决方案应用于前面的问题,即写入 \texorpdfstring{\(math\)}{Lg}。但是,我更希望这能自动完成。是否可以将数学环境(在章节标题内)更改为自动添加\textorpdfstring

梅威瑟:

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\section{\(I\) cast warnings but I wish I wouldnt}
\section{\texorpdfstring{\(I\)}{I} dont}
\section{Of course me neither}
\end{document}

答案1

一个简单的解决方案就是用以下方式吞噬数学\pdfstringdefDisableCommands

\documentclass{article}
\usepackage{hyperref}

\makeatletter
\pdfstringdefDisableCommands{\let\(\fake@math}
\newcommand\fake@math{}% just for safety
\def\fake@math#1\){[math]}
\makeatother

\begin{document}
\section{\(I\) cast warnings but I wish I wouldnt}
\section{\texorpdfstring{\(I\)}{I} dont}
\section{Of course me neither}
\end{document}

\(...\)这将用替换 所有数学公式[math]

在此处输入图片描述

进行选择性替换需要实现一个完整的解析器。

相关内容