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