![TikZ:减少节点到锚点的距离](https://linux22.com/image/463378/TikZ%EF%BC%9A%E5%87%8F%E5%B0%91%E8%8A%82%E7%82%B9%E5%88%B0%E9%94%9A%E7%82%B9%E7%9A%84%E8%B7%9D%E7%A6%BB.png)
我想减少节点文本相对于锚点的距离。我有两个这样的节点,用于向轴上的某个点添加标签:
\node[red] (point) at (1,0) {\(\bullet\)};
\node[anchor=south west] at (point) {(1,0)};
这会在点处添加一个红点,并在其右上方添加一个带有一些文本的节点。我想将文本节点移近该点,因为自动放置会将其放置得有点远。我该怎么做?是否有选项可以使放置“紧密”或“紧凑”?
将两个节点更改为一个节点加上添加到项目符号节点的标签选项是否有意义?
答案1
如果您需要点(标记点/坐标),最好使用 TikZ 绘制的实际圆圈。字形的中心\bullet
不一定\textbullet
位于实际坐标上,因此您无法很好地引用它们。
形状为的节点circle
最适合使用。将设置inner sep
为零允许通过给出直径minimum size
。
要使节点更靠近该点,最好减小它的inner sep
。从技术上讲,使用负数outer sep
也是可行的,但在这种情况下,我认为这样做没有充分的理由。(请参阅键inner sep
中的值every label
。)
由于您似乎想要在页面上标记一个坐标,因此label
关键是要找到一种很好的方法来放置另一个节点以引用给定的节点,而无需为其指定明确的名称。它允许您使用dot
第二个代码中的样式,不仅可以添加标签,还可以将点放置在正确的坐标上,而无需给出两次。(当然,这并不总是有效。)
代码
\documentclass[tikz]{standalone}
\begin{document}
\tikz[
bullet/.style={shape=circle, fill, draw, inner sep=+0pt, minimum size=+3.5pt},
every label/.append style={inner sep=+.1em}
]
\node[bullet, red, label={north east:$(1, 0)$}] at (1,0) {};
\tikz[
dot/.style args={#1:#2}{bullet, label={#1:$#2$}, at={#2}, node contents=},
bullet/.style={shape=circle, fill, draw, inner sep=+0pt, minimum size=+3.5pt},
every label/.append style={inner sep=+.1em}
]
\node[red, dot={north east:(1, 0)}];
\end{document}