我希望这两个节点的大小相同——即较小节点的大小。本质上,我希望能够设置,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 毫米以内并不严格(取决于人们如何看待它)。