我正在使用一个不是我的模板编写文档,其中,在等式之后,使用添加了一些箭头TikZ
,通过定义tikzmark
s 并使用overlay, remember picture
环境选项tikzpicture
。
我注意到,如果在后面立即添加文本,\end{tikzpicture}
那么行首会添加一些空白。您可以在这里看到 MWE:
\documentclass[letterpaper,11pt,oneside]{article}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage[showframe]{geometry}
\usepackage{tikz}
\usetikzlibrary{tikzmark, arrows}
\renewcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\begin{document}
\noindent\lipsum[1][1-3]
\begin{equation*}
\tikzmark{a} A = \tikzmark{b} B + C \tikzmark{c}.
\end{equation*}
\begin{tikzpicture}[overlay,remember picture]
\node (A1) [left of = a, node distance = 4.5em, yshift=0.8em]{\footnotesize lorem};
\node (A2) [left of = a, node distance = 0em, yshift=0.25em]{};
\draw[->, in=180, out=350] (A1.east) to (A2.west);
\node (B1) [left of = b, node distance = 4.5em, yshift=1.9em]{\footnotesize ipsum};
\node (B2) [left of = b, node distance = 0em, yshift=0.8em]{};
\draw[->, in=150, out=350] (B1.east) to (B2.west);
\node (C1) [right of = c, node distance = 4.5em, yshift=1.9em]{\footnotesize dolor};
\node (C2) [right of = c, node distance = -0.5em, yshift=0.8em]{};
\draw[->, in=45, out=210] (C1.west) to (C2.east);
\end{tikzpicture}
\lipsum[1][1-3]
\noindent \lipsum[1][1-3]
\end{document}
这将产生以下输出(我添加了geometry
带有showframe
显示边距选项的包)。请注意等式后面的句子:
我尝试应用给出的解决方案这里和这里(以及那里引用的后续链接),但无济于事。
任何帮助都将不胜感激。提前谢谢您!
答案1
环境tikzpicture
会创建一个零尺寸框,从而开始一个新段落。\end{tikzpicture}
文本和之间的行结尾将显示在段落开头,紧跟在零尺寸框后面。
%
您可以通过在 后立即放置 来摆脱它\end{tikzpicture}
。
另一个解决方案是移动tikzpicture
里面方程,即\end{equation*}
向下移动后 \end{tikzpicture}
。然后空间处于数学模式,不会造成任何伤害。可以说,无论如何,这都是更合乎逻辑的位置,因为箭头属于方程式,而不是下面的文本。