ConTeXt 中的 cancelto 等价物

ConTeXt 中的 cancelto 等价物

ConTeXt 中是否有等价的\cancelto?我想用箭头取消数学表达式,如“归零”。

答案1

下面给出的代码可能并非在所有情况下都有效,并且可能有更好的方法来实现这一点,但它可以作为您的开始。它使用带有 MetaPost 背景的框架公式(无框架!)。它不如 灵活\cancelto,因为 0 是硬编码的。

% Define the MetaPost background
\startuseMPgraphic{cancel}
drawarrow origin--(OverlayWidth,OverlayHeight);
label.top("$0$",(OverlayWidth,OverlayHeight));
setbounds currentpicture to unitsquare xyscaled(OverlayWidth,OverlayHeight);
\stopuseMPgraphic

% Define the overlay
\defineoverlay[cancel][\useMPgraphic{cancel}]

% Define a new mathframed cancel
\definemathframed[cancel][mframed][
frame=off,
offset=overlay,
background=cancel,
]

% Example
\startTEXpage[width=4in,offset=3bp]
\startformula
\int_0^{+\infty}e^{-x}\cos x\,dx
=
\cancel{\Bigl[e^{-x}\sin x\Bigr]_0^{+\infty}}
+\int_0^{+\infty}e^{-x}\sin x\,dx.
\stopformula
\stopTEXpage

公式中取消部分的图像

附言我建议不要在公式中使用这类箭头来删除术语,而是从文本(和公式)中清楚地表明取消了什么以及为什么取消。

答案2

这只是米凯尔 (Mikael) 回答中的一些花哨玩意儿。

% Define the MetaPost background
\startuseMPgraphic{cancel}
drawarrow origin--(OverlayWidth,OverlayHeight);
label.top(\MPstring{cancelto},(OverlayWidth,OverlayHeight));
setbounds currentpicture to unitsquare xyscaled(OverlayWidth,OverlayHeight);
\stopuseMPgraphic

% Define the overlay
\defineoverlay[cancel][\useMPgraphic{cancel}]

% Define a new mathframed cancel
\definemathframed
    [cancel]
    [mframed]
    [frame=off,
     offset=overlay,
     background=cancel,
     to={},
     extras={\setMPtext{cancelto}{$\framedparameter{to}$}}]

% Example
\startTEXpage[width=4in,offset=3bp]

\startformula
\int_0^{+\infty}e^{-x}\cos x\,dx
=
\cancel[to=0]{\Bigl[e^{-x}\sin x\Bigr]_0^{+\infty}}
+\int_0^{+\infty}e^{-x}\sin x\,dx.
\stopformula
\stopTEXpage

在此处输入图片描述

相关内容