下标中的逗号后有空格吗?

下标中的逗号后有空格吗?

我在下标中逗号后的空格有问题。我创建了一个名为 的命令\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}

相关内容