chemnum:为 PDF 书签添加自定义标签

chemnum:为 PDF 书签添加自定义标签

这个问题已经问过了在 GitHub 上. 伟大的 chemnum 包的作者最初提议可以为化合物定义自定义标签。这是在引用取代基仅略有不同的化合物时非常有用

MWE 如下所示:

% arara: pdflatex

\documentclass{article}
\usepackage{chemnum}
\usepackage{chemformula}
\usepackage{hyperref}

\ExplSyntaxOn
\NewDocumentCommand \setcmpdlabel {mm}
  { \chemnum_compound_set_property:nnn {#1} {counter-representation} {#2} }
\ExplSyntaxOff

\cmpd*{Me2bdc}
\setcmpdlabel{Me2bdc}{\ch{Me2L^1}}
\cmpd*{H2bdc}
\setcmpdlabel{H2bdc}{\ch{H2L^1}}

\begin{document}

\section{About \texorpdfstring{\cmpd{Me2bdc}}{\cmpdplain{Me2bdc}}}
Lorem ipsum.

\section{About \texorpdfstring{\cmpd{H2bdc}}{\cmpdplain{H2bdc}}}
Lorem ipsum.

\end{document}

并将产生以下 PDF 输出:

在此处输入图片描述

在章节标题中,化合物 Me 2 L 1和 H 2 L 1(由 chemnum 内部分别指定为<ID>1 和 2)按预期显示。但是,PDF 书签(左列)显示的是 的值,<ID>而不是 Me 2 L 1 (H 2 L 1 )。如何将用户定义的值添加到 PDF 书签中?\cmpdproperty{H2bdc}{counter-representation}也不会打印 的值counter-representation

我知道在 PDF 书签中添加下标/上标可能需要转换为适当的 Unicode 字符也许有人知道如何实现这一点。我猜为每个用户定义的化合物定义一个 PDF 书签表示可能更好?

感谢您的帮助!

答案1

不太清楚您的问题到底是什么。如果(正如您的示例所暗示的那样)愿意使用 \texorpdfstring,您主要需要为书签设置一些合理的表示:

\documentclass{article}
\usepackage{chemnum}
\usepackage{chemformula}
\usepackage{hyperref}

\ExplSyntaxOn
\NewDocumentCommand \setcmpdlabel {mm}
  { \chemnum_compound_set_property:nnn {#1} {counter-representation} {#2} }
\ExplSyntaxOff

\cmpd*{Me2bdc}
\setcmpdlabel{Me2bdc}{\ch{Me2L^1}}
\cmpd*{H2bdc}
\setcmpdlabel{H2bdc}{\ch{H2L^1}}

\makeatletter
\@namedef{mypdfcmpd-Me2bdc}{Me2bdc whatever}
\@namedef{mypdfcmpd-H2bdc}{H2bdc something else}

\newcommand\cmpdbkm[1]{\csname mypdfcmpd-#1\endcsname}
\makeatother

\begin{document}

\section{About \texorpdfstring{\cmpd{Me2bdc}}{\cmpdbkm{Me2bdc}}}
Lorem ipsum.

\section{About \texorpdfstring{\cmpd{H2bdc}}{\cmpdbkm{H2bdc}}}
Lorem ipsum.

\end{document}

在此处输入图片描述

但是你自然需要做一些实验来确定哪种表示方式看起来合适 - 使用 lualatex 或 xelatex 您可以使用所有 unicode。

相关内容