\usepackage{amsmath}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usepackage{pxpgfmark} % remember picture を可能にする
\usepackage{bm}
\usetikzlibrary{calc,decorations.pathmorphing,backgrounds,intersections}
%ノード名を付与(ウッキー作。もっとよい方法があれば教えてください)
\newcommand{\●}[2] {</p> <p style="margin:0px;text-indent:0px;"> \settowidth{\dimen0}{#2}
\settoheight{\dimen1}{#2}
\begin{tikzpicture}[remember picture,inner sep=0]
\useasboundingbox (0,0) rectangle (\the\dimen0, \the\dimen1);
\node[xshift=\the\dimen0 /2,yshift=\the\dimen1 /2] (#1) {#2};
\end{tikzpicture}
}
%上に0mmずらす。これしないと何故か「ずれる」←理由を教えてください
\newcommand{\raisezero}[1]{\raisebox{0mm}[0pt][0pt]{#1}}
\begin{document}
\begin{align*}
\bm{H}(\bm{r})
&=
\dfrac{1}{4\pi}
\iiint_{V'}
\bm{i}(\bm{r}')
\times
\dfrac
{\●{第1行左上}{$\bm{r}$}
-
\●{第1行右上}{$\bm{r}'$}}
{\●{第1行左下}{\raisezero{$\|$}}
\bm{r}-\bm{r}'
\●{第1行右下}{\raisezero{$\|$}}
^3}
\,\textrm{d}V'
\\[2ex]
&=
-\dfrac{1}{4\pi}
\iiint_{V'}
\●{第2行左}{$\bm{i}$}
(\bm{r}')
\times\nabla
\dfrac
{\●{第2行上}{$\!\!1$}}
{\|</p> <p style="margin:0px;text-indent:0px;"> \bm{r}-\bm{r}'
\●{第2行右下}{\raisezero{$\|$}}
}
\,\textrm{d}V' \\[5ex]
&=\dfrac{1}{4\pi}\iiint_{V'}\nabla\times\dfrac{\bm{i}(\bm{r}')}{\|\bm{r}-\bm{r}'\|}\textrm{d}V' \\
&=\nabla\times\dfrac{1}{4\pi}\iiint_{V'}\dfrac{\bm{i}(\bm{r}')}{\|\bm{r}-\bm{r}'\|}\textrm{d}V'
\end{align*}
\begin{tikzpicture}[remember picture,overlay]
%第1行被注釈
\path [name path=被注釈, red,draw,rounded corners=1ex]
let \p1=(第1行左下.south west), \p2=(第1行左上.north), \p3=(第1行右下.east) in
(\x1-0.4ex, \y1-0.7ex) rectangle (\x3+1.4ex, \y2+0.9ex) node (被注釈) {};
%第1行注釈
\path
let \p1=(第1行右上.north east) in
(\x1+3.5ex, \y1+0ex) node [anchor=south west] (temp)
{$-\nabla\dfrac{1}{\|\bm{r}-\bm{r}'\|}$(公式(a)より)};
\begin{scope}[on background layer]
\path [name path=注釈, rounded corners=1ex, draw, fill=red!20]
(temp.north east) rectangle (temp.south west) node (注釈) {} ;
\end{scope}
%第1行被注釈=第1行注釈の上側
\path [name path=イコール]
let \p1=(被注釈.center), \p2=(注釈.center) in
(\x1-1ex, \y1-0.8ex) -- (\x2+1ex, \y2+0.5ex);
\path [name intersections={of=イコール and 被注釈}];
\coordinate (Y) at (intersection-1);
\path [name intersections={of=イコール and 注釈}];
\coordinate (Z) at (intersection-1);
\begin{scope}[on background layer]
\draw (Y)--(Z);
\end{scope}
%第1行被注釈=第1行注釈の下側
\path [name path=イコール]
let \p1=(被注釈.center), \p2=(注釈.center) in
(\x1-1ex, \y1-0.5ex) -- (\x2+1ex, \y2+0.8ex);
\path [name intersections={of=イコール and 被注釈}];
\coordinate (Y) at (intersection-1);
\path [name intersections={of=イコール and 注釈}];
\coordinate (Z) at (intersection-1);
\begin{scope}[on background layer]
\draw (Y)--(Z);
\end{scope}
%第2行被注釈
\path [name path=被注釈, red,draw,rounded corners=1ex]
let \p1=(第2行左.west), \p2=(第2行上.north), \p3=(第2行右下.south east) in
(\x1-0.4ex, \y3-0.7ex) rectangle (\x3+0.4ex, \y2+0.4ex) node (被注釈) {};
%第2行注釈
\path
let \p1=(第2行上.north), \p2=(第2行右下.east) in
(\x2+2ex, \y1+0ex) node [anchor=south west] (temp)
{$-\nabla\times\dfrac{\bm{i}(\bm{r}')}{\|\bm{r}-\bm{r}'\|}$(公式(b)より)};
\begin{scope}[on background layer]
\path [name path=注釈, rounded corners=1ex, draw, fill=red!20]
(temp.north east) rectangle (temp.south west) node (注釈) {} ;
\end{scope}
%第2行被注釈=第2行注釈の上側
\path [name path=イコール]
let \p1=(被注釈.center), \p2=(注釈.center) in
(\x1-1ex, \y1-0.8ex) -- (\x2+1ex, \y2+0.5ex);
\path [name intersections={of=イコール and 被注釈}];
\coordinate (Y) at (intersection-1);
\path [name intersections={of=イコール and 注釈}];
\coordinate (Z) at (intersection-1);
\begin{scope}[on background layer]
\draw (Y)--(Z);
\end{scope}
%第2行被注釈=第2行注釈の下側
\path [name path=イコール]
let \p1=(被注釈.center), \p2=(注釈.center) in
(\x1-1ex, \y1-0.5ex) -- (\x2+1ex, \y2+0.8ex);
\path [name intersections={of=イコール and 被注釈}];
\coordinate (Y) at (intersection-1);
\path [name intersections={of=イコール and 注釈}];
\coordinate (Z) at (intersection-1);
\begin{scope}[on background layer]
\draw (Y)--(Z);
\end{scope}
%第2行アンダーライン
\path [name path=アンダーライン, red,draw]
let \p1=(第2行左.south west) in
(\x1-0.2ex, \y1-0.7ex) -- (\x1+4.8ex, \y1-0.7ex) node {};
%第2行アンダーラインの注釈
\path
let \p1=(第2行左.south west) in
(\x1-6ex, \y1-3.2ex) node [anchor=north] (temp)
{定ベクトル$\bm{a}$に相当};
\begin{scope}[on background layer]
\path [name path=注釈, rounded corners=1ex, draw, fill=red!20]
(temp.south west) rectangle (temp.north east) node (注釈) {} ;
\end{scope}
%第2行被注釈=第1行注釈の左側
\path[fill=white]
let \p1=(注釈.center) in
(\x1-3.5ex, \y1+0.5ex) rectangle +(1ex, 1ex);
\path [name path=イコール]
let \p1=(注釈.center) in
(\x1-3.5ex, \y1-1ex) -- +(1ex, 5ex);
\path [name intersections={of=イコール and アンダーライン}];
\coordinate (Y) at (intersection-1);
\path [name intersections={of=イコール and 注釈}];
\coordinate (Z) at (intersection-1);
\draw (Y)--(Z);
%第2行被注釈=第1行注釈の右側
\path [name path=イコール]
let \p1=(注釈.center) in
(\x1-3.2ex, \y1-1ex) -- +(1ex, 5ex);
\path [name intersections={of=イコール and アンダーライン}];
\coordinate (Y) at (intersection-1);
\path [name intersections={of=イコール and 注釈}];
\coordinate (Z) at (intersection-1);
\draw (Y)--(Z);
%第2行アンダーライン(上書き)
\path [name path=アンダーライン, red,draw]
let \p1=(第2行左.south west) in
(\x1-0.2ex, \y1-0.7ex) -- (\x1+4.8ex, \y1-0.7ex) node {};
\end{tikzpicture}
\end{document}