我不想只改变样式。我想创建接受 3 个数字的节点,并用适当的装饰显示它们。例如:
\mynode{5,6,7}
应在 3 行内显示包含“a=5”、“b=6”和“c=7”的节点。
更新:
我有这个代码:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{amsmath}
\newcommand{\statnode}[3]{
\node[rectangle, draw]{
$\begin{aligned}
n &= #1 \\
\text{sum} &= #2 \\
\mu &= #3
\end{aligned}$
}
}
\newcommand{\statnodex}[3]{
node[rectangle, draw]{
$\begin{aligned}
n &= #1 \\
\text{sum} &= #2 \\
\mu &= #3
\end{aligned}$
}
}
\begin{document}
\begin{tikzpicture}[
level distance=100,
]
\statnode{1}{10}{0.1}
child {
\statnodex{1}{10}{0.1}
};
\end{tikzpicture}
\end{document}
但:
- 有两个命令太丑了
- 由于某种原因,渲染不正确
答案1
- 将两个命令的共同部分放入另一个宏中。
anchor=north
如果你想把线画到顶部,但不要画得更远,请使用
答案2
TikZ“链”库适合您的应用程序吗?
快速破解您的代码以演示:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{chains}
\usetikzlibrary{positioning}
\usepackage{amsmath}
\newcommand{\statnode}[3]{
\node[rectangle, draw, on chain]{
$\begin{aligned}
n &= #1 \\
\text{sum} &= #2 \\
\mu &= #3
\end{aligned}$
}
}
\newcommand{\statnodex}[3]{
\node[rectangle, draw, on chain=going below, join]{
$\begin{aligned}
n &= #1 \\
\text{sum} &= #2 \\
\mu &= #3
\end{aligned}$
}
}
\begin{document}
\begin{tikzpicture}[
start chain,
node distance=5mm
]
\statnode{1}{10}{0.1};
\statnodex{1}{10}{0.1};
\end{tikzpicture}
\end{document}
答案3
如果您更改绘制树的代码,则只能使用其中一个自定义节点宏:
\draw \statnodex{1}{10}{0.1}
child {
\statnodex{1}{10}{0.1}
};
\node
只是 的语法糖\draw node
。
现在,您可以真正地发挥想象力并定义一个新的多部分节点(请参阅 PGF 手册中的“具有多个文本部分的形状”,即 2.00 版本中的第 39.6 节),但除非您想在许多文档中执行此操作,否则宏似乎没问题。