防止 siunitx 的数字范围出现换行

防止 siunitx 的数字范围出现换行

我怎样才能禁止\numrange{}{}命令中的换行siunitx

下面的例子是用 chemmacros 的光谱模块完成的,但这并不重要,因为命令\val{}使用了命令\numrange{}{}。输入

\sisetup{range-phrase = \nolinebreak--\nolinebreak}

不起作用

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[left=1.5cm,right=1.5cm,top=2cm,bottom=2cm,includeheadfoot]{geometry}
\usepackage{lmodern}
\usepackage{siunitx}
\sisetup{range-phrase = --}
\usepackage{chemmacros}
\chemsetup{
    modules={spectroscopy},
    greek=chemgreek,
    spectroscopy/format = \bfseries,
    spectroscopy/list = true,
    spectroscopy/coupling-pos = sub,
    }
\begin{document}
\begin{experimental}
\vspace{-\baselineskip}\data{\NMR*{1,H} (ac\_prakt.794.1)} (\SI{400}{\mega\hertz}, \SI{298}{K}, \ch{CDCl3}, $\delta$/ppm):
    \val{7.74--7.83}~(m,~\#{12},~\pos{4}),
    \val{7.36--7.50}~(m,~\#{24},~\pos{2,3}),
    \val{7.14--7.32}~(m,~\#{24},~\pos{2,3}).
\end{experimental}
\end{document}

在此处输入图片描述

答案1

使用

\sisetup{range-phrase = \mbox{--}}

因此破折号不会被考虑为换行符。A\nolinebreak是无效的,因为已经-是一个可行的断点。

相关内容