我正在尝试制作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
前的选项。此选项可以应用于参数,也可以不应用于参数。tikzpicture
execute at end picture
tikzpicture
以下示例将 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}