在环境\#{}
中使用时,它会给出数字后跟核心,但它们由常规空格分隔,而不是由不间断空格分隔。experimental
chemmacros
我不知道这是否是故意的,但它会导致原子核被打印在下一行,而它应该被视为一个单位,因此坚持数字。
2~H
有没有办法自己重新定义这个宏,还是我现在必须手动输入?
我的 MWE:
\documentclass{scrbook}
\usepackage{chemmacros}
\chemsetup{modules={spectroscopy}}
\begin{document}
\begin{experimental}
\NMR(300)[CD3COOD]
\val{9.87} (d, \J{1.2}, \#{1}),
\val{6.54} (d, \J{3.4}, \#{2}).
\end{experimental}
\end{document}
给我(注意第二行中的 H)。
答案1
\#
spectroscopy
在模块(文件)中定义chemmacros.module.spectroscopy.code.tex
为等于环境\chemmacros_nmr_number:n
内部experimental
。此函数定义为
\cs_new_protected:Npn \chemmacros_nmr_number:n #1
{
\__chemmacros_nmr_number:n {#1}
\skip_horizontal:N \l__chemmacros_nmr_space_skip
\chemmacros_chemformula:V \g__chemmacros_nmr_element_tl
}
但可能应该这样定义:
\cs_new_protected:Npn \chemmacros_nmr_number:n #1
{
\__chemmacros_nmr_number:n {#1}
\chemmacros_skip_nobreak:N \l__chemmacros_nmr_space_skip
\chemmacros_chemformula:V \g__chemmacros_nmr_element_tl
}
因此,你可以将其添加到你的序言中:
\ExplSyntaxOn
\cs_set_protected:Npn \chemmacros_nmr_number:n #1
{
\__chemmacros_nmr_number:n {#1}
\chemmacros_skip_nobreak:N \l__chemmacros_nmr_space_skip
\chemmacros_chemformula:V \g__chemmacros_nmr_element_tl
}
\ExplSyntaxOff
后正在加载spectroscopy
模块。
我将在软件包中对此进行更改。从 v5.8c 开始将包含此修复。