使用 chemnum 标记 E 和 Z 立体异构体

使用 chemnum 标记 E 和 Z 立体异构体

我目前正在撰写化学论文,主要研究光异构化。我使用 chemnum 作为化合物编号。例如,这是偶氮苯光异构化:EZ偶氮苯光聚合反应

在我看来,TMP1 是一种单一化合物,应被分配一个单一标签(比如\cmpd{azobenzene}=1)。在文本中,我希望能够将 E 或 Z 光异构体称为-1或者-1\cmpd{azobenzene}。我可以通过定义化合物然后手动调用$E$-\cmpd{azobenzene}或来伪造这一点$Z$-\cmpd{azobenzene},但这在重命名.eps化学结构中的标签时会失效(如上所示):除非有某种方法可以手动指定或修改chemnum用于替换 EPS 文件中临时标签的文本,否则无法在化合物编号前面加上E-或者Z-按要求。

据我所知,我的选择是要么给每个异构体一个不同的数字标签(不可接受),要么将它们标记为子化合物,例如

\replacecmpd[tag=E-TMP1]{azobenzene.E}
\replacecmpd[tag=Z-TMP1]{azobenzene.Z}

这让我可以Compounds \cmpd{azobenzene.E}, \cmpd{azobenzene.Z}调用

化合物1a1b

这仍然是不正确的,除非有办法重新定义chemnum的子复合逻辑,用小写拉丁字母后缀代替/前缀。

有人能提出解决方案吗?

编辑:玩了一下,这似乎是一个好的我的问题的解决方案:

\replacecmpd[tag=ETMP,pre-label-code=\textit{E-}]{Eazobenzene}
\resetcmpd[\cmpdproperty{Eazobenzene}{number}]
\replacecmpd[tag=ZTMP,pre-label-code=\textit{Z-}]{Zazobenzene}
\includegraphics{azobenzenes.eps}

Compounds \cmpd{Eazobenzene} and \cmpd{Zazobenzene}.

化合物-1-1

虽然有点笨重,但这是可以接受的。还有更好的选择吗?

答案1

看起来你已经找到了可行的解决方案。:)

我建议使用另一个命令\setcmpdlabel来解决首次用于另一个答案(并且我应该补充一点,chemnum因为它一次又一次地被证明是有用的……)。

\documentclass{article}
\usepackage{chemnum}

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

\newcommand*\defineEZcmpds[1]{%
  \cmpd*{#1}\cmpd*{E#1}\cmpd*{Z#1}%
  \setcmpdlabel{E#1}{\textit{E}-\cmpd{#1}}%
  \setcmpdlabel{Z#1}{\textit{Z}-\cmpd{#1}}%
}

\begin{document}

% defining
\defineEZcmpds{azobenzene}

% and using
Compounds \cmpd{Eazobenzene} and \cmpd{Zazobenzene} are the two photoisomers 
of \cmpd{azobenzene}.

\end{document}

在此处输入图片描述

相关内容