我如何控制 tikzpictures 在图形中的分组方式?

我如何控制 tikzpictures 在图形中的分组方式?

我希望能够控制 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}

产生这个:

四个 tikzpictures 位于一个中心图形中

我发现圆圈分组很好,但我希望它们彼此之间的距离稍微远一些。我该如何控制它?解决这个问题的最佳方法是什么?

答案1

你可以使用该backgrounds库来影响 s 的边界框tikzpicture。通过设置

\tikzset{
    every picture/.style={
        show background rectangle,
        inner frame sep=4pt,
        background rectangle/.style={
            draw=none
        }
    }
}

在 s之前的某个地方,您告诉 TikZ 为每个具有内填充的 stikzpicture添加一个不可见的框架。tikzpicture4pt

如果你想避免将其应用于每一个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包裹。

相关内容