为什么 tikz 图中松散的边缘会产生空白空间?

为什么 tikz 图中松散的边缘会产生空白空间?

我想在 中创建一个自动机tikz并调整s的looseness和属性。如果我将值设置为高,则会在图形的左侧和下方产生大量空白空间。在我的文档中,这会使它向右移动,部分超出页面。这是一个 mwe。bendedge

\documentclass{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{automata,calc,positioning}
\begin{document}
   \begin{tikzpicture}[
         node distance=3cm,
         clique/.style={fill=SkyBlue},
         font=\sffamily,
         thick,
   ]
      \node[clique,state] (B) {B};
      \node[clique,state,below=of B] (A) {A};
      \node[clique,state] at ($(B) !.5! (A) + (2cm,0)$) (C) {C};
      \node[clique,state,right=of C] (D) {D};
      \node[state,above=of D] (E) {E};
      \node[state,right=of D] (F) {F};
      \node[state,below left=of F] (H) {H};
      \node[state,below=of F] (G) {G};

      \path
      (A) edge[bend left] (E)
      (A) edge[bend right=10] (F)
      (A) edge[bend right] (G)
      (A) edge (D)

      (B) edge[bend right=100,looseness=1.6,out=270] (H)
      (B) edge[bend right=100,looseness=1.6,out=260] (G)
      (B) edge[bend left=100,looseness=1.2] (F)

      (C) edge[bend left=10] (G)
      (C) edge[bend left=20] (F)
      (C) edge[bend right] (H)
      (C) edge (E)

      (D) edge (E)
      (D) edge (F)
      (D) edge (G)


      (E) edge (G)
      (E) edge[bend left=80,looseness=2] (H)
      ;
   \end{tikzpicture}
\end{document}

结果是这样的:

在此处输入图片描述

我会像往常一样将其修剪为实际内容standalone。这是什么原因造成的?我该如何消除它?

答案1

正如你提到的,额外的空间是由于控制点在路径弯曲时会远离路径而产生的。我发现这个答案建议绘制一个网格来识别边界框

\begin{tikzpicture}
\draw[help lines,step=8pt] (-1.2cm,-4cm) grid (12cm,8cm);
\clip (-1.2cm,-4cm) rectangle (12cm,8cm);
...

就我而言,这些价值观是合适的

相关内容