TikZ 图片之前的 vspace

TikZ 图片之前的 vspace

我正在尝试制作TikZ图表,使得绘图前始终有 1cm 的垂直空间。这可能吗?

该代码无法编译。

\documentclass{article}

\usepackage{tikz}

\renewcommand{\begin{tikzpicture}}
{\vspace{1cm} \begin{tikzpicture}}

\begin{document}

text before
\begin{tikzpicture}
\draw(-3,3)--(2,1);
\end{tikzpicture}
text after

\end{document}

答案1

正如@UlrikeFischer 建议的那样,定义你的 tikzpicture 更容易:

\documentclass{article}

\usepackage{tikz}

\newenvironment{mytikzpicture}{\begin{center}\begin{tikzpicture}}
{\
\end{tikzpicture}\end{center}\vspace*{1cm}

}

\begin{document}

text before

\begin{mytikzpicture}
   \draw(-3,3)--(2,1);
\end{mytikzpicture}
text after
\end{document}

输出:

在此处输入图片描述

对于真正想要 tikzpicture 之前(而不是之后)的空间的人来说,代码是:

\documentclass{article}

\usepackage{tikz}

\newenvironment{mytikzpicture}{\vspace*{1cm}

\begin{center}\begin{tikzpicture}}
{\
\end{tikzpicture}\end{center}
}

\begin{document}

text before
\begin{mytikzpicture}
   \draw(-3,3)rectangle(2,1);
\end{mytikzpicture}
text after
\end{document}

答案2

您还可以更改关闭current bounding box前的选项。此选项可以应用于参数,也可以不应用于参数。tikzpictureexecute at end picturetikzpicture

以下示例将 tikzpictures 向北放大 1cm。show background rectangle提供对变化的可见性。

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{backgrounds}

\tikzset{%
    add1cm/.style={%
        execute at end picture={\path (current bounding box.north)--++(0,1cm);
        }
    },
    background rectangle/.style={fill=blue!30}
}

\begin{document}

\begin{tikzpicture}[add1cm, show background rectangle]
  \draw (0,0) rectangle (3,2);
\end{tikzpicture}

\begin{tikzpicture}[show background rectangle]
  \draw (0,0) rectangle (3,2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容