![节点锚点距离节点文本太远](https://linux22.com/image/442949/%E8%8A%82%E7%82%B9%E9%94%9A%E7%82%B9%E8%B7%9D%E7%A6%BB%E8%8A%82%E7%82%B9%E6%96%87%E6%9C%AC%E5%A4%AA%E8%BF%9C.png)
我使用循环为线交叉点写入多个标签,但可能出于比例或其他原因,标签距离交叉点有点太远。我无法手动修复每个标签,因为我使用的是循环,而添加固定校正意味着错误会通过循环传播,最后的标签会完全消失。
\documentclass[11pt,border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,1) -- (2,1);
\draw (1,0) -- (1,2);
\node [anchor=north west] at (1,1) {Some text};
\node [anchor=north east] at (1.13,1.13) {Some text}; % Manual fix applied
\end{tikzpicture}
\end{document}
这是我的(极端)MWE 和我的实际应用。
我想知道是否有办法移动锚点,使其稍微位于文本边界框内或类似的东西内。
答案1
您可以使用inner sep
甚至负值来移动节点的文本,同时保持锚点不变。或者,outer sep
如果您使用边框,则使用会保持文本填充的 。
如果您只想水平或垂直应用此移位,请使用inner xsep
或inner ysep
(或outer xsep
或)。outer ysep
但我不确定这是否适用于你的情况。
\documentclass[11pt,border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,1) -- (2,1);
\draw (1,0) -- (1,2);
\node [anchor=south east, outer xsep=-10pt, draw=red] at (1,1) {Some text};
\node [anchor=north west, inner sep=-5pt] at (1,1) {Some text};
\node [anchor=north east, inner sep=0pt] at (1,1) {Some text}; % Now (almost) overlapping with the following node
\node [anchor=north east] at (1.13,1.13) {Some text}; % Manual fix applied
\end{tikzpicture}
\end{document}