是否可以在 chemnum 包中明确声明复合标签?

是否可以在 chemnum 包中明确声明复合标签?

包中是否有命令chemnum允许明确定义化合物的标签(例如,如果我明确想要调用化合物或另一个字符串),类似于包中的A3命令?在另一个问题中,包作者说这是可能的,但我在最新的文档中找不到它。\declarecompoundchemcompounds

答案1

只需稍加努力,就可以实现:

\documentclass{article}
\usepackage{chemnum}

\makeatletter
\newcmpdcounterformat{gobble}{\@gobble}
\makeatother

\begin{document}

\cmpd{foo1},
\cmpd{foo1}

\cmpd[pre-label-code=xx,post-label-code=yy]{foo2},
\cmpd{foo2}

\cmpd[pre-label-code=aa,post-label-code=bb,counter-format=gobble]{foo3},
\cmpd{foo3}

\cmpd{foo4},
\cmpd{foo4}

\cmpd{foo1,foo2,foo3,foo4}

\end{document}

在此处输入图片描述

在这个解决方法中,实际标签为空,并使用前后代码作为标签。


使用最新版本chemnum(v1.2 2016/04/14 – 应该已经在 CTAN 上可用),可以实现更直接的方式:

\documentclass{article}
\usepackage{chemnum}[2016/04/14]

\ExplSyntaxOn
% this only works for main labels!
\NewDocumentCommand \declarecmpd {O{}mm}
  {
    \chemnum_compound_if_defined:nF {#2}
      { \chemnum_define_compound:n {#2} }
    \chemnum_compound_set_property:nnn {#2} {counter-representation} {#3}
    \chemnum_declare_compound:nn {#1} {#2}
    \chemnum_finalize_compound:n {#2}
  }
\ExplSyntaxOff

\begin{document}

\cmpd{foo1}

\cmpd+{foo2}

\declarecmpd{foo2}{AA}

\cmpd{foo1,foo2}

\end{document}

在此处输入图片描述

相关内容