这看起来应该很容易,但我似乎在任何地方都找不到它......
我希望能够微调节点标签的定位。
我知道语法\node[label=above/below/etc:{label}] (x) {};
,但这似乎没有给你提供很多标签放置位置的选项。我希望能够将标签放置得更近或更远,或者放置在除 8 个可用预设之外的其他方向上。
\tikz[label distance=x]
不是一个好的解决方案,因为我需要它是特定于节点的。
答案1
您可以使用 定义标签的方向label=<angle>:<label text>
。要指定每个节点距离,您必须将其提供给选项label
:label={[label distance=<distance>]<angle>:<label text>}
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
every node/.style=draw,
every label/.style=draw
]
\node [label={[label distance=1cm]30:label}] {Node};
\end{tikzpicture}
\end{document}
答案2
很高兴知道执行此操作的所有其他方法,但我一直使用xshift=<length>
和yshift=<length>
来移动node
或label
。
蓝色是默认的,红色带有选项[xshift=1.0cm, yshift=0.3cm]
,而绿色(按照percusse的建议)使用备用语法将x和y移位指定为向量[shift={(1.0,0.3)}]
。
代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[blue]
\node [label={Label}] {Node};
\end{tikzpicture}
\begin{tikzpicture}[red]
\node [label={[xshift=1.0cm, yshift=0.3cm]Label}] {Node};
\end{tikzpicture}
\begin{tikzpicture}[green]
\node [label={[shift={(1.0,0.3)}]Label}] {Node};
\end{tikzpicture}
\end{document}
答案3
最简单的方法是使用另一个节点。就像您写的一样,标签是节点“标签”。实际\path ... node[⟨options⟩](⟨name⟩)at(⟨coordinate⟩){⟨text⟩} ...;
标签是⟨text⟩
。现在可以轻松添加节点和新标签,而无需选项label
。
\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node [draw,circle ] (a) { Real label};
\node at (a.60) {$\bullet$};
\node [draw] at ([shift={(95:1)}]a.60) {Second label};
\end{tikzpicture}
\end{document}
唯一的问题是你需要指定第一个节点的名称,但你可以做你想做的事。在 TikZ 的第一个版本中,没有这个label
选项,这是唯一的方法。
答案4
这种模式也非常有用:
\node at ($(R) + (0.03,0.4)$) {Your label!};
这样,您就可以相对于的坐标定位标签R
。
请注意,您需要\usetikzlibrary{calc}
这种方式。
类似的解决方案不需要calc
(感谢保罗·加博利!) 是
\path (R) ++(0.03,0.4) node {Your label!};