Im Manual zu `chemnum` fehlt die vollständige Beschreibung von `\replacecmpd`. Sie lautet:
- `\replacecmpd+[<Optionen>]{<Label-Angaben>}`
Das optionale `+` sollte hier die gleiche Funktion haben, wie bei `\cmpd`: *[it] only refers to an already defined label but does not define a label itself*. Das heißt, der Befehl *sollte* die analoge Option haben. Tatsächlich stimmt das bis Version 1.1 aber leider nicht:
Der Befehl ruft intern `\labelcmpd` auf, das heißt *[it] [...] defines a new label*, und zwar unabhängig von gesetztem `+`, was eindeutig ein Fehler in der Definition ist. Es sollte natürlich geprüft werden, ob das `+` gesetzt wurde oder nicht. Ich werde [In Version v1.1a ist das beheben und ein Update (v1.1a) an CTAN schicken. Solange behoben][1]. Mit älteren Versionen (ab v1.0) bleibt Dir nur, folgendes in die Präambel zu kopieren, damit die `+`-Option auch funktioniert:
\ExplSyntaxOn
\cs_set_protected:Npn \chemnum_cmpd_replace:nnn #1#2#3
{
\bool_if:nF {#1} { \labelcmpd[{#2}]{#3} }% <<<< geänderte Zeile
% set specific replacement options
\keys_set_groups:nnn {chemnum} {replace} { replace=false, #2 }
\bool_if:nTF
{
\l__chemnum_compound_replace_auto_bool &&
\l__chemnum_compound_replace_auto_this_bool
}
{
\int_incr:N \l__chemnum_compound_replace_int
\tl_set:Nx \l__chemnum_compound_replace_tl
{
\exp_not:V \l__chemnum_compound_replace_tag_tl
\exp_not:V \l__chemnum_compound_replace_int
}
}
{
\tl_set_eq:NN
\l__chemnum_compound_replace_tl
\l__chemnum_compound_replace_tag_tl
\bool_set_true:N \l__chemnum_compound_replace_auto_this_bool
}
% replace in EPS, this must not be in a group:
\bool_if:NTF \l__chemnum_replace_local_bool
{
\__chemnum_psfrag:VVVx
\l__chemnum_compound_replace_tl
\l__chemnum_psfrag_local_texpos_tl
\l__chemnum_psfrag_local_pspos_tl
{
\group_begin:
\exp_not:V \l__chemnum_compound_replace_local_format_tl
\exp_not:n
{ \chemnum_cmpd:nnnn { \c_false_bool } { #1 } { #2 } { #3 } }
\group_end:
}
}
{
\__chemnum_psfrag:VVVx
\l__chemnum_compound_replace_tl
\l__chemnum_psfrag_texpos_tl
\l__chemnum_psfrag_pspos_tl
{
\group_begin:
\exp_not:V \l__chemnum_compound_replace_format_tl
\exp_not:n
{ \chemnum_cmpd:nnnn { \c_false_bool } { #1 } { #2 } { #3 } }
\group_end:
}
}
% clean up local options:
\keys_set_groups:nnn {chemnum} {replace} { replace=false }
\__chemnum_set_psfrag_local_pos:VV
\l__chemnum_psfrag_texpos_tl
\l__chemnum_psfrag_pspos_tl
\tl_set_eq:NN
\l__chemnum_compound_replace_local_format_tl
\l__chemnum_compound_replace_format_tl
}
\ExplSyntaxOff
[1]: http://permalink.gmane.org/gmane.comp.tex.ctan.announce/11727