是否可以在 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

另一种解决方案是修复minimum size,但用居中标签写入节点的内容。labels用绘制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
}

结果是可以接受的,尽管在 20 毫米以内并不严格(取决于人们如何看待它)。

相关内容