我想将几个带注释的标签附加到(正方形) 节点(此处节点有文本“32”)。
然而,标签(它们有draw
)应该无缝地放在一起,并且都应该有相同宽度作为节点(32)。
如何获得适合标签的字体大小?(标签文本应具有相同的字体大小。)
或者说做到这一点的最好方法是什么?
\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[font=\footnotesize\sffamily, very thin,
NumStyle/.style={minimum size=4mm, inner sep=0pt, draw},
LabelStyle/.style={minimum width=4mm, draw, font=\sffamily\tiny, inner xsep=0.5pt, inner ysep=1pt},
]
\node[NumStyle, fill=red, text=white,
label={[LabelStyle,
scale=0.7% try ?
]below:{1. Place}},
label={[LabelStyle, fill=yellow, name=P]above:{even (1/9)}},
label={[LabelStyle, fill=purple, yshift=2.7mm]{high (3/9)}},
]{32};
\end{tikzpicture}
\end{document}
答案1
以下是一种方法:
- 忽略字体
- 使用
part fill
列表选项 - 手册中有更多
nodes
直接使用的示例 - 通过 textwidth 可以轻松使框变宽
\documentclass[10pt,border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{tikzpicture}
\node [rectangle split, rectangle split parts=4,draw,
rectangle split part fill=
{red!80!blue,yellow,red,white}]
{
high (3/9)
\nodepart{two}
even (1/9)
\nodepart{three}
\textbf{\textcolor{white}{\LARGE{32}}}
\nodepart{four}
1. Place
};
\end{tikzpicture}
\end{document}
答案2
这是另一种方法:
- 定义最小宽度、高度(对于矩形)和正方形的尺寸
- 用绝对坐标定位,用手/脑做一些计算
calc
可以通过使用库等实现自动化。
\documentclass[10pt,border=3mm]{standalone}
\usepackage{tikz}
%\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{tikzpicture}
[rc/.style={draw,minimum height=1cm,minimum width=3cm},
sq/.style={draw,minimum size=2cm}]
\node [rc,fill=red!80!blue] at (0,0) {high (3/9)};
\node [rc,fill=yellow] at (0,-1) {even (1/9)};
\node [sq,fill=red] at (0,-2.5) {\textbf{\textcolor{white}{\LARGE{32}}}};
\node [rc] at (0,-4) {1. Place};
\end{tikzpicture}
\end{document}