在 \cdots 上方书写文本

在 \cdots 上方书写文本

我的问题是:如何在一组点上方写索引?我的意思是

\mathbb{R} \cdots^{HERE} \mathbb{R}

只是说我有“n”次 R 的笛卡尔积。

答案1

让我们举一个更现实的例子:你想把n点上方,表示省略了术语。以下是可能的代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[ X_{1}\times \stackrel{n}{\cdots} \times X_{n} \]

\[ X_{1}\times \overset{n}{\cdots} \times X_{n} \]

\[ X_{1}\times \cdots \times X_{n} \]
\end{document}

最后一项只是为了比较。结果如下:

在此处输入图片描述

一眼就能看出,第一行的所有间距都是错误的,因为按照规则,TeX 会将二进制操作符号转换\times为普通符号,因为它们不在“合法”操作数之间。\overset但这种情况不会发生,事实上,如果我们比较第二行和第三行,间距是正确的。

如果二元运算符之间没有出现“上标” \cdots,则可能需要帮助 TeX 添加正确的间距和

\mathinner{\overset{n}{\cdots}}

是正确的咒语。

最终版本

考虑到以上所有因素,我认为最好的办法是定义一个新命令:

\newcommand{\scdots}[2][]{\mathinner{#1\overset{#2}{\cdots}#1}}

其中,可选参数是为了在需要时提供额外的间距而保留的(我认为上标太长了);所以

\scdots{n}

\scdots{\textup{HERE}}

或者可能,

\scdots[\,]{\textup{HERE}}

如果上标确实与相邻术语冲突。

答案2

\[ a \stackrel{\scriptstyle\mathrm{HERE}}{\cdots}  b\]

在此处输入图片描述

如果你使用amsmath并且想让 egreg 高兴,那么另一种选择是\overset

\[ a \overset{\mathrm{HERE}}{\cdots}  b\]

在此处输入图片描述

答案3

如果将n索引放在点上方,那么笛卡尔积是否包含nn+2元素实际上可能会产生一些歧义(因为限定符可能被认为不包含第一个和最后一个元素)。为了避免任何此类歧义,您可以使用命令\overbrace生成以下表达式:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,amsfonts}
\newcommand{\R}{\mathbb{R}}
\begin{document}
\[ \overbrace{\R\times\cdots\times\R}^{\text{$n$ times}} \]
\end{document}

相关内容