我已经看到了三个与在方程式之外的文本中的数字/数学数字周围使用 $ 有关的问题:何时使用数学模式?; 数学环境之外的数字; 和数字周围为什么需要 $...$?
我在一个段落中有以下表达式,并且我希望如果我更改字体,可以避免数字出现不同的字形:
contour levels at ($-2$, 2, 4, 8, 16 and~32)~$\times$~0.348$\sigma$
是否建议使用以下任何一种方法来实现这一点(并确保如果跨越两行,则会在之前发生断行and
)?
($-2$, $2$, $4$, $8$, $16$ and~$32$)~$\times$~$0.384\sigma$
($-2$, $2$, $4$, $8$, $16$ and~$32$)~$\times~0.384\sigma$
$(-2, 2, 4, 8, 16$ and~$32) \times 0.384\sigma$
或者可能\text{}
按照 marmot 的建议使用:
$(-2, 2, 4, 8, 16\text{ and }32) \times 0.384$
答案1
使用xparse
和expl3
您可以获得更简单的输入语法。
\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\numlist}{mo}
{
\seq_set_from_clist:Nn \l_jacinta_numlist_in_seq { #1 }
\seq_set_map:NNn \l_jacinta_numlist_out_seq \l_jacinta_numlist_in_seq { $##1$ }
\IfValueT{#2}{ $($ }
\seq_use:Nnnn \l_jacinta_numlist_out_seq
{ ~ and \nobreakspace } % two items
{ ,~ } % between items
{ ~ and \nobreakspace } % last two
\IfValueT{#2}{ $)#2$ }
}
\seq_new:N \l_jacinta_numlist_in_seq
\seq_new:N \l_jacinta_numlist_out_seq
\ExplSyntaxOff
\begin{document}
Contour levels at \numlist{-2, 2, 4, 8, 16, 32}[\times0.348\sigma].
Contour levels at \numlist{-2, 2, 4, 8, 16, 32}.
Contour levels at \numlist{-2, 2}[\times0.348\sigma].
\end{document}