如何使用 \texordpdfstring 来执行 \NewDocumentCommand/RenewDocumentCommand?

如何使用 \texordpdfstring 来执行 \NewDocumentCommand/RenewDocumentCommand?

我一直使用\,\thinspace我自己的 hairspace 命令\hrsp,但我不想关心它是否在 pdf 字符串中使用(通常在 sectioning 和 cite 命令中),这是为了摆脱Package hyperref Warning: Token not allowed in a PDF string (Unicode): (hyperref) removing \hrsp on input line 334.

我想(重新)定义命令,以便它们无论是在TeX还是中使用,都可以执行不同的事情PDF string,也许通过\texorpdfstring{}{}

我们不需要 MWE,我们需要的是:

% -*- mode: latex; TeX-engine: luatex; coding: utf-8; -*-
\usepackage[twothirds]{thinsp}
\NewDocumentCommand{\hrsp}{}{\ifmmode\mskip1mu\else\kern.08333em\fi}

因为 PDF 字符串\hrsp不应该执行任何操作,即根本不插入空格,而当无法使用\,时应该插入普通的单词间空格。\thinspace


好的,我补充了我的序言

\pdfstringdefDisableCommands{%
  \def\,{ }%
  \def\hrsp{}%
}

效果很好。

相关内容