我在下标中逗号后的空格有问题。我创建了一个名为 的命令\segN
,用于整数间隔。我希望\thinspace
在第一个整数和逗号之间有一个,所以我输入了#1\,,#2
我的命令。第二个整数应该用逗号后的常规空格与逗号分开。它工作正常,但不是在下标中。这是一个 MWE:
\documentclass[a4paper,10pt]{article}
\usepackage{mathtools}
\usepackage[frenchmath]{newtxmath}
\makeatletter
\newcommand{\segN}{\@ifstar\segN@star\segN@nostar}
\newcommand*{\segN@star}[2]{\left\dlb#1\,,#2\right\drb}
\newcommand*{\segN@nostar}[3][]{#1\dlb#2\,,#3#1\drb}
\makeatother
\begin{document}
$\segN{1}{2}$,\qquad$\displaystyle\sum_{k\in\segN{1}{2}}x_k$
\end{document}
第一个\segN{1}{2}
是可以的:2 与逗号分开。但是在第二个(带下标)中,2 粘在了逗号上,我不明白为什么。
答案1
标点符号和普通符号之间的空格是“条件”\thinmuskip
:“条件”的意思是它不在脚本样式中使用:这就是为什么你在第一个例子中看到它,但在第二个例子中看不到它。(见这个答案更多细节。)
快速修复:将所有内容设为 a\mathord
并插入两个都手动留出空格。
\documentclass[a4paper,10pt]{article}
\usepackage{mathtools}
\usepackage{newtxtext}
\usepackage[frenchmath]{newtxmath}
\DeclarePairedDelimiterX{\segN}[2]{\dlb}{\drb}{{#1}\,{,}\,{#2}}
% also a possibility but more complicated
%\DeclarePairedDelimiterX{\segN}[2]{\dlb}{\drb}{#1\,,\,\nonscript\!#2}
\begin{document}
$\segN{1}{2}$,\qquad$\displaystyle\sum_{k\in\segN{1}{2}}x_k$
\end{document}
其他评论:
mathtools
已经提供了一种使用星号版本定义配对分隔符的方法。newtxmath
对我来说,没有加载newtxtext
看起来很奇怪。
答案2
\documentclass[a4paper,10pt]{article}
\usepackage{mathtools}
\usepackage[frenchmath]{newtxmath}
\makeatletter
\newcommand{\segN}{\@ifstar\segN@star\segN@nostar}
\newcommand*{\segN@star}[2]{\left\dlb#1\,,#2\right\drb}
\newcommand*{\segN@nostar}[3][]{#1\dlb#2, \,#3#1\drb}
\makeatother
\begin{document}
$\segN{1}{2}$,\qquad$\displaystyle\sum_{k\in\segN{1}{2}}x_k$
\end{document}