我希望能够控制 tikzpictures 在图形中的分组方式。我tikzpicture
在一个figure
集合中有几个\centering
。有没有办法控制 tikzpictures 彼此之间的距离?
为了更清楚起见,请看下面的例子。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(A\)};
\end{tikzpicture}
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(B\)};
\end{tikzpicture}
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(C\)};
\end{tikzpicture}
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(D\)};
\end{tikzpicture}
\caption{Caption}
\end{figure}
\end{document}
产生这个:
我发现圆圈分组很好,但我希望它们彼此之间的距离稍微远一些。我该如何控制它?解决这个问题的最佳方法是什么?
答案1
你可以使用该backgrounds
库来影响 s 的边界框tikzpicture
。通过设置
\tikzset{
every picture/.style={
show background rectangle,
inner frame sep=4pt,
background rectangle/.style={
draw=none
}
}
}
在 s之前的某个地方,您告诉 TikZ 为每个具有内填充的 stikzpicture
添加一个不可见的框架。tikzpicture
4pt
如果你想避免将其应用于每一个tikzpicture
,你可以使用定义一个新样式
\tikzset{
extra padding/.style={
show background rectangle,
inner frame sep=#1,
background rectangle/.style={
draw=none
}
},
extra padding/.default=4pt
}
并将其仅应用于tikzpicture
需要额外填充的 s。\begin{tikzpicture}[extra padding]
将使用默认值4pt
,白色...[extra padding=<value>
会在本地调整此值。
但是,这意味着您还将在图形的顶部和底部引入额外的空白。如果您想避免这种情况,最简单的方法可能是\hspace{4pt}
在第一个和第二个之间添加,在第三个和第四个之间添加,并在第二个和第三个之间tikzpicture
添加。\vspace{4pt}
tikzpicture
答案2
每个 tikzpicture 就像 LaTeX 中的一个字符,因此如果它们之间没有空格,LaTeX 会将它们一个挨着一个地放置。如果在它们之间留出一个空行,则会创建一个新段落。您可以使用 来\hspace{0.5cm}
固定它们之间的一定距离,也\\[0.5cm]
可以使用 来固定段落之间的距离。虽然我更喜欢使用类似 tabular 的东西来排列独立的 tikzpicture。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(A\)};
\end{tikzpicture}\hspace{.5cm}
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(B\)};
\end{tikzpicture}\\[3cm]
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(C\)};
\end{tikzpicture}\hspace{-.5cm}
\begin{tikzpicture}
\draw circle (2.4cm) node (w) {\(D\)};
\end{tikzpicture}
\caption{Caption}
\end{figure}
\end{document}
答案3
scope
我做同样的事情,但在一个环境中使用一系列环境tikzpicture
通常可以让我更好地控制定位。我实际上是从这个小例子来自他本人:p。简单的想法是创建范围环境,每个范围环境都是你的一个人物,然后使用shift
类似
\begin{figure}
\begin{tikzpicture}
\draw circle (2.4cm) node (w1) {\(A\)};
\begin{scope}[shift={(5cm,-5cm)}]
\draw circle (2.4cm) node (w4) {\(D\)};
\end{scope}
\begin{scope}[shift={(5cm,0cm)}]
\draw circle (2.4cm) node (w2) {\(B\)};
\end{scope}
\begin{scope}[shift={(0cm,-5cm)}]
\draw circle (2.4cm) node (w3) {\(C\)};
\end{scope}
\end{tikzpicture}
\caption{Caption}
\end{figure}
如果我需要独立的字幕,那么我就会求助于subfig
包裹。