TikZ 是否可以設定最大節點寬度

TikZ 是否可以設定最大節點寬度

我希望這兩個節點的大小相同——較小節點的大小。本質上我希望能夠設置,maximum size=6mm但沒有這樣的選項。我怎樣才能做到這一點?

\documentclass[tikz, border=10]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \tikzstyle{mystyle}=[circle,minimum size=6mm,draw=black,fill=white]
    \node (9) at (0,0) [mystyle] {9};
    \node (10) at (1,0) [mystyle] {10};
\end{tikzpicture}
\end{document}  

在此輸入影像描述

答案1

雖然沒有maximum size密鑰,但您可以使用text width(也可能inner sep)來獲得所需的結果:

\documentclass[tikz, border=10]{standalone}
\usepackage{tikz}

\tikzset{
mystyle/.style={
  circle,
  inner sep=0pt,
  text width=6mm,
  align=center,
  draw=black,
  fill=white
  }
}

\begin{document}
\begin{tikzpicture}
    \node (9) at (0,0) [mystyle] {9};
    \node (10) at (1,0) [mystyle] {10};
\end{tikzpicture}
\end{document}

結果:

在此輸入影像描述

另一種選擇是選擇更大的值minimum size,例如minimum size=8mm

我將舊\tikzstyle語法更改為更合適的\tikzset.句法。

答案2

另一個解決方案可能是修復 a minimum size,但使用居中標籤寫入節點的內容。labels用 a 繪製postaction,它們不影響節點的大小:

\documentclass[tikz, border=10]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \tikzstyle{mystyle}=[circle,minimum size=6mm,draw=black,fill=white]
    \node[mystyle] (9) at (0,0) {9};
    \node[mystyle, label=center:10] (10) at (1,0) {};
    \node[mystyle, label=center:100] (100) at (2,0) {};
    \node[mystyle, label=center:1000] (1000) at (3,0) {};
\end{tikzpicture}
\end{document} 

在此輸入影像描述

答案3

在我的框圖中,我為普通短文本節點設定了一種樣式;另一個用於長文本節點。這是因為center問題。

mylong/.style={
  draw,
  rectangle,
  text width=20mm, % text is longer than 20mm.
  thick,
  % align=center,
  font=\itshape
},
myshort/.style={
  draw,
  rectangle,
  minimum size=6mm,
  thick,
  % align=center,
  font=\itshape
}

結果是可以接受的,雖然不嚴格在20mm之內(取決於人們如何看待它)。

相關內容