tikzpicture[覆盖,记住图片]后的水平空间

tikzpicture[覆盖,记住图片]后的水平空间

我正在使用一个不是我的模板编写文档,其中,在等式之后,使用添加了一些箭头TikZ,通过定义tikzmarks 并使用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}。然后空间处于数学模式,不会造成任何伤害。可以说,无论如何,这都是更合乎逻辑的位置,因为箭头属于方程式,而不是下面的文本。

相关内容