包含来自 chemnum 和 chemmacros 的未处理命令的书签

包含来自 chemnum 和 chemmacros 的未处理命令的书签

在我的文档中,我有一些部分包含 chemmacros\iupac{}命令,其中包含由 chemmacros 提供的简写|以及我自己的简写=。出于某种原因,这些简写会打印在书签中。
我也使用 chemnums\cmpd{}命令,但书签中打印的是化合物标签,而不是数字。

Foxit Reader 中的输出

梅威瑟:

\documentclass{scrbook}
\usepackage{chemmacros,chemnum}
\newcommand{\nbh}{\mbox{-}\nobreak\hspace{0pt}} % new command for non-breaking hyphens since \mbox is problematic in \iupac
\NewChemIUPACShorthand{=}{\nbh}
\usepackage[hidelinks,unicode,bookmarksopen]{hyperref}
\begin{document}
    \tableofcontents
    \section{\iupac{2=(Phenyl|thio)oxazole}~(\cmpd{Ox-SPh})}
\end{document}

如您所见,内容已正确打印在目录中。不过,我希望我的书签也能有相同的处理输出。我该如何实现呢?

答案1

我认为您需要使用\texorpdfstring{❬TEXstring❭}{❬PDFstring❭}中的宏hyperrefPDFstring您需要做两件事:

  • \cmpd{...}用。。。来代替\cmpdplain{...};
  • 不要使用\iupac{...},仅限纯文本(无论如何,PDF 书签中谁需要连字符:))。

chemnum手册

\cmpdplain{❬id❭}

读取标签并可扩展地写入而无需格式化。它无法解析列表。其唯一目的是在 pdf 字符串中使用(参见 \texorpdfstring{❬TEX❭}{❬pdf string❭}

\documentclass{scrbook}
\usepackage{chemmacros,chemnum}
\newcommand{\nbh}{\mbox{-}\nobreak\hspace{0pt}} % da \mbox in \iupac problematisch ist, neuer Befehl für non-breaking hyphens
\NewChemIUPACShorthand{=}{\nbh}
\usepackage[hidelinks,unicode,bookmarksopen]{hyperref}
\begin{document}
    \tableofcontents
    \section{
        \texorpdfstring{
            \iupac{2=(Phenyl|thio)oxazole}~(\cmpd{Ox-SPh})
        }{
            2-(Phenylthio)oxazole~(\cmpdplain{Ox-SPh})
        }
    }
\end{document}

在此处输入图片描述

相关内容