评论

评论

我正在尝试在数学表达式中添加箭头(尤其是在极限内),以指出在求解极限时为某个项分配了一个值。我遇到了取消包及其命令 \cancelto{}{},但我遇到了 2 个问题:1. 它划掉该项,就像在取消它一样(显然)2. 它只向上移动(右向上,但右侧部分不困扰我),而当我显示分数分母的趋势时,我可能需要它向下移动。

在这里搜索后,我找到了一个自定义命令,它可以完成这项工作(我对其进行了一点修改),并开始使用它,但遗憾的是它有一半的时间是有效的。另一半时间它只是扰乱了方程中其他元素的所有基线。我会把命令的代码留给你(再次说明,这不是我的功劳)和我遇到的一个错误,希望有人能帮助我。我还在学习 Tikz,所以我无法自己解决这个问题,尽管我怀疑我的问题的答案就在那里。

我修改后的代码:

\usetikzlibrary{calc}

\newcommand*\canc[1]{%
  \mathchoice
    {\scriptstyle#1}
    {\scriptstyle#1}
    {\scriptscriptstyle#1}
    {\scriptscriptstyle#1}
}

\newcommand*\dtendto[2][0]{%
  \kern9pt%
  \begin{tikzpicture}[baseline=(current bounding box.center).anchor=east]
    \node[anchor=east] (a) {$#2$};
    \draw[->, color = red] ($(a.south)$) -- ($(a.south)-(-4pt,8pt)$) node
    at ($(a.south)-(-8pt,12pt)$) {$\canc{#1}$};
\end{tikzpicture}
}


\newcommand*\utendto[2][0]{%
  \kern9pt%
  \begin{tikzpicture}[baseline=(current bounding box.south).anchor=east]
    \node[anchor=east] (a) {$#2$};
    \draw[->, color = red] ($(a.north)$) -- ($(a.north)+(4pt,8pt)$) node
    at ($(a.north)+(8pt,12pt)$) {$\canc{#1}$};
\end{tikzpicture}
}

我遇到麻烦的部分(我之前的部分已经解决了这个问题,但正确的代码肯定仍然可以在那些部分上运行)。

\lim_{x\to\infty} \frac{\bcancel{x^5}\cdot(\utendto[2]{2}
-\utendto[0]{\frac{3}{x^2}} +
\utendto[0]{\frac{2}{x^4}})}{\bcancel{x^5}\cdot\left(4 + \frac{5}{x}
-\frac{100}{x^5}\right)}

下面是显示效果的快照,请注意,我希望箭头被添加到顶部,就好像等式根本不知道它们在那里一样。现在它似乎对我添加的内容做出了响应,试图将 + 和 - 符号居中(如果我使用 \left( 和 \right) ,则包括括号)扭曲了正常外观。

错误图像

下面是我希望得到的经过 Photoshop 处理的版本: 预期图像

基本上,我想要的是方程式忽略箭头并进行排版,就好像它们不存在一样(当然,垂直间距不会与顶部或底部的其他线或方程式叠加)。

我设法创建了一个名为 \dtendto[]{} 的新命令,它的作用相同,只是箭头指向东南而不是东北,但我认为两者的解决方案是相同的,为了不使帖子变长,我省略了它。

提前致谢,

答案1

评论

我添加了inner xsep=0ptouter sep=0pt,并且还限制了边界框。

在我的编辑中,我删除了calc库,因为它不是真正需要的。此外,我设置了inner sep=0pt节点和shorten <=.3333em箭头,以保留数字和箭头之间的间距,同时取消数字下方的额外空间。

我用可扩展单位(exem)替换了所有值。

此外,您不需要宏,因为它在您的实现中\canc始终是默认的。\scriptstyle

执行

\documentclass{article}
\pagestyle{empty}
\usepackage{tikz,cancel}
\renewcommand{\CancelColor}{\color{red}}

\newcommand*\dtendto[2][0]{%
    \begin{tikzpicture}[baseline=(a.base),every node/.style={inner sep=0pt,outer sep=0pt}]
        \node (a) {$#2$};
        \path[red] (a.south) node (b) at +(0.5em,-3ex) {$\scriptstyle #1$};
        \draw[->,red,shorten <=.3333em,shorten >=.3333em] (a) -- (b);
        \pgfresetboundingbox
        \path[use as bounding box] (a.north west) rectangle (a.south east |- b.south);
    \end{tikzpicture}
}


\newcommand*\utendto[2][0]{%
    \begin{tikzpicture}[baseline=(a.base),every node/.style={inner sep=0pt,outer sep=0pt}]
        \node (a) {$#2$};
        \path[red] (a.north) node (b) at +(0.5em,3ex) {$\scriptstyle #1$};
        \draw[->,red,shorten <=.3333em,shorten >=.3333em] (a) -- (b);
        \pgfresetboundingbox
        \path[use as bounding box] (a.south west) rectangle (a.north east |- b.north);
    \end{tikzpicture}
}
\begin{document}
\fbox{
$\displaystyle
    \lim_{x\to\infty} \frac{\bcancel{x^5}\cdot(\utendto[2]{2}
    -\utendto[0]{\frac{3}{x^2}} +
    \utendto[0]{\frac{2}{x^4}})}{\bcancel{x^5}\cdot\left(\dtendto[4]{4} + \frac{5}{x}
    -\frac{100}{x^5}\right)}
$
}
\end{document}

输出

在实际输出中,边界框不会突出显示。我只是为了说明目的而将它们涂成绿色。

在此处输入图片描述

相关内容