在尝试使用包注释方程式时,annotate-equations
大多数情况下一切都会正常进行,但偶尔它会不恰当地使方程式的某一部分错位,例如第二个方程式中的等号:
\documentclass{report}
\usepackage{annotate-equations}
\begin{document}
\[
a \tikzmarknode{node1}{=} b
\]
\annotate[yshift=-1em]{below}{node1}{change of variables}
\[
\int_0^{\infty}F_X(x)dx =\int_0^{\infty}F_X(-x)dx \tikzmarknode{node2}{=} \int^0_{-\infty}F_X(x)dx.
\]
\annotate[yshift=-1em]{below}{node2}{change}
\end{document}
有没有什么办法可以控制这种情况?我翻遍了(非常短的)手册,但毫无收获。
答案1
环绕:\mathrel
\tikzmarknode
%! TEX program = lualatex
\documentclass{report}
\usepackage{annotate-equations}
\begin{document}
\[
a \mathrel{\tikzmarknode{node1}{=}} b
\]
\annotate[yshift=-1em]{below}{node1}{change of variables}
\[
\int_0^{\infty}F_X(x)dx =\int_0^{\infty}F_X(-x)dx \mathrel{\tikzmarknode{node2}{=}} \int^0_{-\infty}F_X(x)dx.
\]
\annotate[yshift=-1em]{below}{node2}{change}
\end{document}
TeXbook 中主题 / 第 154 / 170 页中的 TeX 23.3 / 23.6 节解释了数学模式下间距的工作方式,您应该能够理解为什么\mathrel
需要这样做。