光谱:\#{} 无不间断空格

光谱:\#{} 无不间断空格

在环境\#{}中使用时,它会给出数字后跟核心,但它们由常规空格分隔,而不是由不间断空格分隔。experimentalchemmacros

我不知道这是否是故意的,但它会导致原子核被打印在下一行,而它应该被视为一个单位,因此坚持数字。

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 开始将包含此修复。

相关内容