我使用 ConTeXT,并且想在积分符号的上方和下方放置条形图。
对于 LaTeX,有一个这里有类似的问题,我认为egreg 给出的答案看起来确实非常漂亮(见下图)。
问题:如何在 ConTeXt 中执行此操作?结果应如下所示:
以下是我根据 @Manuel 的评论进行的一次非常幼稚的尝试(它不起作用不是 Manuel 的错,而是我的错!),但无法编译。由于我不理解代码,可能有一些简单的事情我忘记了(我将名称更改\tb@int
为\tbint
,也许这是不行的)。我希望,通过代码,有人可以轻松发现错误并能够纠正。
\def\tint{\mathop{\mathpalette\tbint{t}}\!\int}
\def\bint{\mathop{\mathpalette\tbint{b}}\!\int}
\def\tbint#1#2{%
\sbox\zeropoint{$\mathsurround\zeropoint#1\int$}%
\if#2t%
\rlap{\hbox to\wd\zeropoint{%
\hfil
\vrule width .35em height \dimexpr\ht\zeropoint+1.4pt\relax depth -\dimexpr\ht\zeropoint+1pt\relax
\kern.05em % a small correction on the top
}}
\else
\rlap{\hbox to\wd\zeropoint{%
\vrule width .35em height -\dimexpr\dp\zeropoint+1pt\relax depth \dimexpr\dp\zeropoint+1.4pt\relax
\hfil
}}
\fi
}
\starttext
\startformula
\tint_a^b f(x)\,dx \bint_a^b f(x)\,dx.
\stopformula
\stoptext
最后,避免“显而易见”的答案:使用\overline{\int}
和\underline{\int}
看起来不够好。
答案1
以下是 egreg 回答的近乎逐字翻译。我只是更改了编码风格,以匹配 ConTeXt 中使用的通常编码风格:
\unprotect
\define\tint{\mathop{\mathpalette\tb@int{t}}\!\int}
\define\bint{\mathop{\mathpalette\tb@int{b}}\!\int}
\define[2]\tb@int
{\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1\int$}%
\if#2t%
\rlap{\hbox to \wd\scratchbox
{\hfil
\vrule width .35em height \dimexpr\ht\scratchbox+1.4pt\relax depth -\dimexpr\ht\scratchbox+1pt\relax
\kern.05em % a small correction on the top
}}
\else
\rlap{\hbox to\wd\scratchbox
{\vrule width .35em height -\dimexpr\dp\scratchbox+1pt\relax depth \dimexpr\dp\scratchbox+1.4pt\relax
\hfil
}}
\fi
}
\protect
\starttext
\startformula
\tint_a^b f(t)\,dt=\bint_a^b f(t)\,dt
\textstyle
\tint_a^b f(t)\,dt=\bint_a^b f(t)\,dt
\stopformula
\stoptext
这使