在进行大型计算时,对读者来说,对所进行的操作做出很好的注释通常非常有帮助。此外,方程式中的其他注释也会有很大帮助,例如这个
我更喜欢这个,而不是 ^ 约定。我使用以下代码生成上述内容
\vertarrowbox{e_j}{$i$\textsuperscript{th} spot}
在哪里
\newcommand\vertarrowbox[3][2ex]{%
\begin{array}[t]{@{}c@{}} #2 \\[-0.7ex]
\left\uparrow\vcenter{\hrule height #1}\right.\kern-\nulldelimiterspace\\[-1.2ex]
\makebox[0pt]{\scriptsize#3}
\end{array}%
}
我现在的目标是实现类似的目标。我正在寻找类似的东西
表示两个变量交换后得到一个减号。
我不知道如何实现这一点。我不确定 tikz-cd 是否可行(我没有在类似这样的方程中使用 tikz-cd 的经验,也不知道是否可以这样使用它)。
感谢您的想法!
答案1
在@daleif给我提供使用 tikz 和 tikzmark 的提示后,我通过反复试验找到了如何做到这一点的方法(tikz 看起来非常复杂和强大)。请纠正或改进这个解决方案(我不完全了解每一条评论,以及是否可以做得更好或者我在这里做了一些非常愚蠢的事情)。
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{equation*}
f(\tikzmarknode{a}a,b,c,d,\tikzmarknode{e}e) = -f(e,b,c,d,a)
\end{equation*}
\begin{tikzpicture}[overlay,remember picture]
\draw [>=latex,<->]
(a.south) to[out=-90,in=-90,looseness=1] node [below,sloped] (TextNode1)
{\scriptsize$\cdot (-1)$} (e.south);
\end{tikzpicture}
产量
然而仍存在两个问题:
我想在对齐环境中应用它。但间距却乱了:
\begin{align*} f(a,b,c,d,e) &= f(\tikzmarknode{a}a,b,c,d,\tikzmarknode{e}e) \\ &= -f(e,b,c,d,a) \end{align*}
- 由于我将在文档中经常使用它,因此我想为其编写一个命令。但我该如何实现呢?显而易见的问题是 \begin{tikzpicture}[overlay,remember picture] 必须后整个对齐环境,我只使用过“就地替换”的命令。
很感谢任何形式的帮助!