在 TikZ 图中,我根据语法将标签放置在节点下方node [label=below:x]
。但是,某些标签需要稍微进行水平调整。看起来很有希望的解决方案是xshift
根据语法使用node [label={[below, xshift=1pt]{x}}]
。但是,这会使标签垂直偏移,我不明白为什么。
在下面的例子中,是否有某种方法可以使第二个标签(项目符号)的位置与第一个标签完全相同(相对于行尾),仅向右移动 1pt?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw
(0,0) node [label=below:$\bullet$] {} --
(2,0) node [label={[below, xshift=1pt]{$\bullet$}}] {};
\end{tikzpicture}
\end{document}
答案1
在我进行任何解释之前,让我们先看一下绘制节点的示例:
\tikz[nodes=draw, every label/.append style={help lines, draw}]
\draw
(0,0) node [label=below:$\bullet$] {} --
(2,0) node [label={[below, xshift=1pt]{$\bullet$}}] {};
标签below:
的放置位置是将其顶部 ( ) 置于其父节点的anchor=north
底部 ( )。.south
另一个标签的顶部 ( below
→ ) 位于其父节点(或它)的anchor=north
顶部 ( ) 。为什么是顶部?因为默认.north
above
label position
是above
。
标签位置below
和键之间是有区别的below
。
请记住,密钥的完整语法label
是
label={[<options>]<position>:<text>}
其中 和[<options>]
都是<position>:
可选的。如果缺失,则使用<position>:
最后给定的值。但是,您也可以设置标签位置:label position
<options>
label={[label position=below]<text>}
但它不会覆盖<position>:
规范。
below
除了标签位置 之外,键还执行其他操作below
。其最简单的形式就是设置anchor=north
。(然后是 ,below=<distance>
它是 的缩写anchor=north, yshift=-(<distance>)
,然后是positioning
- 事物的动力方面。)
所以你需要的是
\draw
(0,0) node [label=below:$\bullet$] {} --
(2,0) node [label={[label position=below, xshift=1pt]$\bullet$}] {};
或者
\draw
(0,0) node [label=below:$\bullet$] {} --
(2,0) node [label={[xshift=1pt]below:$\bullet$}] {};
或者,如果所有标签都应below
默认放置,
\draw[label position=below]
(0,0) node [label=$\bullet$] {} --
(2,0) node [label={[xshift=1pt]$\bullet$}] {};
代码
\documentclass[tikz]{standalone}
\tikzset{nodes=draw, every label/.append style={help lines, draw}}
\begin{document}
\tikz
\draw
(0,0) node [label=below:$\bullet$] {} --
(2,0) node [label={[label position=below, xshift=1pt]$\bullet$}] {};
\tikz
\draw
(0,0) node [label=below:$\bullet$] {} --
(2,0) node [label={[xshift=1pt]below:$\bullet$}] {};
\tikz
\draw[label position=below]
(0,0) node [label=$\bullet$] {} --
(2,0) node [label={[xshift=1pt]$\bullet$}] {};
\end{document}