在我的文档中,我有一些部分包含 chemmacros\iupac{}
命令,其中包含由 chemmacros 提供的简写|
以及我自己的简写=
。出于某种原因,这些简写会打印在书签中。
我也使用 chemnums\cmpd{}
命令,但书签中打印的是化合物标签,而不是数字。
梅威瑟:
\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❭}
中的宏hyperref
。PDFstring
您需要做两件事:
\cmpd{...}
用。。。来代替\cmpdplain{...}
;- 不要使用
\iupac{...}
,仅限纯文本(无论如何,PDF 书签中谁需要连字符:))。
\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}