我制作了两个新命令来完成第一个命令(\mathnote)的功能,但做了一些更改。
新的命令 (\mathnotee) 正是我想要的,但它不起作用,我不知道为什么,我希望我的命令 (\mathnotee) 可以在数学模式下工作,您可以选择箭头指向的位置以及出现的注释,而无需定义之前的内容和之后的内容(就像 \mathnote 那样),因为如果我想在一个方程式中多次执行此操作,那就非常困难了。感谢您的帮助。
\documentclass{book}
\usepackage{amsmath,amssymb}
\usepackage{nccmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{tcolorbox}
\tcbuselibrary{most}
\newtcolorbox[auto counter,
number within=chapter,
list inside=myexercise
]{myexercise}[1][]{%
enhanced,
title={{\begin{minipage}{\linewidth}\textbf{Ejercicio}~\thetcbcounter.~\textit{#1}\end{minipage}}},
halign title=left,
sharp corners,
colback=white,
coltitle=black,
colbacktitle=white,
boxrule=0pt,frame hidden,
overlay unbroken={\draw[black,double] (interior.north west)--(segmentation.west);},
boxed title style={%
colframe=white,
boxrule=0pt,
colback=white,
left=0pt,
right=0pt},
attach boxed title to top left={xshift={-5pt}},
underlay unbroken={\draw[help lines,step=3.8mm,black!20!white](interior.south west) grid (segmentation.east);},
lower separated=false,
before lower = {\tcbsubtitle[colback=white, opacityback=0, colframe=black, opacityframe=0, boxrule=1pt, height=1cm, width=2.55cm, valign=center]{\textbf{Solution:}}}
}
\newcommand{\mathnotee}[2]{
\;
\tikzmarknode{e1}{#1}
\;
\begin{tikzpicture}[overlay,remember picture]
\draw[stealth-,black,thick] (e1)+(90:.2)--+(90:.7) node[above=-2mm]{#2};
\end{tikzpicture}
}
\newcommand\mathnote[4]{
\[#1\;
\tikzmarknode{e1}{#2}
\;#3
\]
\begin{tikzpicture}[overlay,remember picture]
\draw[stealth-,black,thick] (e1)+(90:.2)--+(90:.7) node[above=-2mm]{#4};
\end{tikzpicture}
}
\usepackage{witharrows}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\mathnote{A(r)=\displaystyle\int_{V'}\dfrac{\mu_0}{4\pi}\dfrac{M(r')\times \hat{R} d\tau'}{R^2}}{=}{\dfrac{\mu_0}{4\pi}\int_{V'}M(r')\times\nabla'\left(\dfrac{1}{R}\right)d\tau'}{$\dfrac{\hat R}{R^2}=\nabla'\left(\dfrac{1}{R}\right)$}
$A(r)=\displaystyle\int_{V'}\dfrac{\mu_0}{4\pi}\dfrac{M(r')\times \hat{R} d\tau'}{R^2}\mathnotee{=}{\dfrac{\hat R}{R^2}=\nabla'\left(\dfrac{1}{R}\right)}\dfrac{\mu_0}{4\pi}\int_{V'}M(r')\times\nabla'\left(\dfrac{1}{R}\right)d\tau'$
\end{document}
第一个方程是 \mathnote 所做的(但您需要在数学模式之外,并定义箭头前后的内容),第二个方程是 \mathnotee 所做的(它不起作用)。
另外,当我在一个等式中多次使用它时,我的意思如下:
这个问题基于我之前提出的问题:方程式之间的数学注释
答案1
我认为实现此目的的方法是根本不使用 TikZ 的东西,而是定义一个\mathnote
带有两个参数的命令:第一个参数是要注释的关系,第二个参数是注释。对于注释,我们可以将向下箭头和注释堆叠在关系上方。
\NewDocumentCommand{\mathnote}{ mm }
{
\overset % ❶
{% The annotation goes above
\hbox to 0pt{\hss % ❷
$ % return to math mode
\begin{array}{c} % ❸
\displaystyle #2\\ % ❹
\downarrow % ❺
\end{array}
$
\hss}
}
{#1} %
}
❶的使用\overset
假定我们已经加载了amsmath
或mathtools
。
我们将注释放在一个宽度为 0pt 的框中,\hss
并在其前后添加 ❷,这样我们就可以居中注释,并且注释不占宽度,因此不会影响下面的间距。这意味着如果两个注释可能重叠,您就得自己处理了。
注释本身将设置为单列array
❸,以便我们可以轻松地将其与箭头堆叠。其他方法也是可行的,但由于我是盲目地这样做并且没有测试它,所以我选择了最简单的路线。
注意\displaystyle
❹确实不是采取一种论点,并将对整个细胞产生影响。
我放入的箭头 ❺ 会比您指定的要细一点。如果您愿意,放入 TikZ 箭头并不难。同样,如果您想要颜色,应用\textcolor
到里面的整个数学\hbox
就可以实现。