extdash 包和无效的 hyperref PDF 令牌

extdash 包和无效的 hyperref PDF 令牌

我怎样才能消除这些hyperref警告:

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\<let>-command' on input line 7.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\EXD@break' on input line 7.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\@ifnextchar' on input line 7.

使用该extdash包时?我尝试过使用,pdfstringdefDisableCommands但不知道要放什么进去。我想避免的是\texorpdfstring每次使用extdash部分命令时都要记住使用。

平均能量损失

\documentclass{article}

\usepackage[shortcuts]{extdash}
\usepackage{hyperref}

\begin{document}
    \section{This is a test\-/Thing}
\end{document}

答案1

该宏\-由包重新定义,以便进行前瞻。

与排版文本时一样,无法实现对书签的这种预视。

一个简单的解决方法是添加

\pdfstringdefDisableCommands{\def\-{-}}

但这会在书签中留下斜线。

\-/如果你只打算在章节标题中使用,你可以使用

\pdfstringdefDisableCommands{\def\-/{-}}

可以通过以下方式获得更复杂的前瞻expl3

\documentclass{article}

\usepackage{expl3}
\usepackage[shortcuts]{extdash}
\usepackage{hyperref}

\ExplSyntaxOn
\cs_new:Nn \languitar_bm_extdash:n
 {
  \str_case:nnF { #1 }
   {
    {/}{-}
    {-}{\__languitar_bm_extdash_aux_i:n}
   }
   {#1}
 }
\cs_new:Nn \__languitar_bm_extdash_aux_i:n
 {
  \str_case:nnF { #1 }
   {
    {-}{\__languitar_bm_extdash_aux_ii:n}
   }
   {\textendash#1}
 }
\cs_new:Nn \__languitar_bm_extdash_aux_ii:n
 {
  \str_case:nnF { #1 }
   {
    {-}{\textemdash}
   }
   {\textemdash#1}
 }
\pdfstringdefDisableCommands
 {
  \cs_set_eq:NN \- \languitar_bm_extdash:n
 }
\ExplSyntaxOff


\begin{document}

\section{This is a test\-/Thing}

\section{This is a test\--Thing}

\section{This is a test\textendash Thing}

\section{This is a test\---Thing}

\section{This is a test\textemdash Thing}

\section{This is a test\-Thing}

\end{document}

在此处输入图片描述

相关内容