为什么 \vspace{-\lineskip} 会删除 tikz 图片后面的空格,尽管它位于图片之前?

为什么 \vspace{-\lineskip} 会删除 tikz 图片后面的空格,尽管它位于图片之前?
\documentclass[tikz]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
  \begin{tikzpicture}
    \path node[inner sep=0,draw,text width=40mm]
      { \parbox{\hsize}
          { \parshape 4 0mm 40mm 5mm 35mm 10mm 30mm 15mm 25mm
            \fboxrule0.1pt
            \fboxsep0pt
            \fbox{hello world}\newline
            \fbox{hello world}\newline
            \fbox{hello world}
            \vspace{-\lineskip} % WHY AFTER THE PICTURE THAT FOLLOWS, NOT BEFORE?
            \begin{tikzpicture}
              \path node[draw,text width=24mm]
                { \parbox{\hsize}
                    { \begin{gather*}
                        2+2=4
                      \end{gather*}
                    }
                };
            \end{tikzpicture}
          }
      };
  \end{tikzpicture}
\end{document}

答案1

第三行被拆分,因为它不适合。但\vspace段落中的每个材料都会被插入命令所在的行(它使用\vadjust)。

只需添加\newline。不要让事情变得过于复杂。

\documentclass[border=2]{standalone}
\usepackage{amsmath}

\setlength{\fboxrule}{0.1pt}
\setlength{\fboxsep}{0pt}

\begin{document}

\fbox{%
  \parbox{40mm}{
    \parshape 4 0mm 40mm 5mm 35mm 10mm 30mm 15mm 25mm
      \fbox{hello world}\newline
      \fbox{hello world}\newline
      \fbox{hello world}
      \vspace{-\lineskip}\newline
      \fbox{%
        \parbox{24mm}{
          \begin{gather*}
            2+2=4
          \end{gather*}
        }%
      }
   }
}

\end{document}

在此处输入图片描述

答案2

它与 tikz 无关,如果您\vspace在水平模式下使用,它会在换行后插入。

aaa\vspace{1cm}bbb

在 bbb 后添加空格

您可能希望在前面有一个空白行,\vspace以便在源中出现空格时以垂直模式添加空格。

相关内容