\stackrel
和之间有什么区别\stackbin
?在什么情况下使用其中一个更好?
答案1
如果没有stackrel
包,\stackrel
则定义在ltxmath.dtx
作为
\def\stackrel#1#2{\mathrel{\mathop{#2}\limits^{#1}}}
它排版了一个具有上限的关系运算符(有效地将其置于顶部)。Heiko Oberdiek 的stackrel
包裹据说提供了一个
增强命令
\stackrel
。
这种“增强”为 提供了一个可选参数,用于\stackrel
将某些内容放置在关系运算符下方(使用与原始 类似的过程\stackrel
)。此外,它还为二元关系提供了一个对应项,称为\stackbin
。两者之间的区别(或何时使用哪一个)包含在帖子中\mathbin
和 有什么区别?\mathrel
?以下是对 的使用类似的看法stackrel
。
\documentclass{article}
\usepackage{stackrel}
\begin{document}
\begin{tabular}{clc}
\multicolumn{3}{c}{Relations} \\[5pt]
\LaTeX & Typeset & width \\
\hline
\verb|$x=x$| & $x=x$ & \setbox0=\hbox{$x=x$} \the\wd0 \\
\verb|$x\stackbin[c]{a}{=}x$| & $x\stackbin[c]{a}{=}x$ &
\setbox0=\hbox{$x\stackbin[c]{a}{=}x$} \the\wd0 \\
\verb|$x\stackrel[c]{a}{=}x$| & $x\stackrel[c]{a}{=}x$ &
\setbox0=\hbox{$x\stackrel[c]{a}{=}x$} \the\wd0 \\[10pt]
\multicolumn{3}{c}{Binary operators} \\[5pt]
\LaTeX & Typeset & width \\
\hline
\verb|$x+x$| & $x+x$ & \setbox0=\hbox{$x+x$} \the\wd0 \\
\verb|$x\stackbin[c]{a}{+}x$| & $x\stackbin[c]{a}{+}x$ &
\setbox0=\hbox{$x\stackbin[c]{a}{+}x$} \the\wd0 \\
\verb|$x\stackrel[c]{a}{+}x$| & $x\stackrel[c]{a}{+}x$ &
\setbox0=\hbox{$x\stackrel[c]{a}{+}x$} \the\wd0
\end{tabular}
\end{document}
\stackrel
注意使用和时间距相等,而使用和=
时间距相近。本质上,对于关系运算符使用 ,对于二元运算符使用 。\stackbin
+
\stackrel
\stackbin
答案2
不要使用\stackrel
or \stackbin
,它们已经过时了。请使用amsmath 中的\underset
and ,\overset
因为它们可以自动正确地分隔事物(无论是二元关系还是二元运算符):
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$f(x) \overset{\text{def}}{=} x \ln(1+x)$
$f(x) \underset{x \to 0}{=} x^2 + o(x^2)$
$A \underset{\text{below}}{\overset{\text{above}}{+}} C$
\end{document}
答案3
我个人更喜欢使用\mathop
,因为它更简单。您可以简单地编写代码,而不是使用嵌套的下限/上限:
$A \mathop{+}_{\text{below}}^{\text{above}} C$