ConTeXt:条形上下积分符号

ConTeXt:条形上下积分符号

我使用 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

这使

在此处输入图片描述

相关内容