假设我有一个简单的矩形节点,我希望延长它的某些边,使它们从角延伸得更远。很简单,这是我的尝试:
\documentclass[tikz,border=1mm]{standalone}
\begin{document}
\begin{tikzpicture}
\node[draw] (x) {foo};
\draw (x.north west) -- ++(0, +1mm);
\end{tikzpicture}
\end{document}
结果:
我知道问题出在哪里:x.north west
正好位于形状的角落,并draw
从这个角落画出一条线,使得绘制的路径pgflinewidth/2
沿着我指定的轨迹在两个方向上突出(如果这有意义的话;抱歉,这很难解释)。
我的问题是,我该如何画线才能让它看起来像是延伸了节点的原始侧x
?
- 我认为
x.north east
锚点就在它所在的地方,没有其他锚点恰好在我需要的地方 - 我想到的一件事是发出命令
draw
,\draw[xshift=.5\pgflinewidth]
但它并没有引起任何变化,而且感觉有点怪异
答案1
答案2
改进我尝试的“黑客”解决方案:
据我了解,xshift
不适用于节点引用的点,在本例中(x.north west)
。相反,人们可以使用transform canvas
,如下所示:
\documentclass[tikz,border=1mm]{standalone}
\begin{document}
\begin{tikzpicture}
\node[draw] (x) {foo};
\draw[transform canvas={xshift=.5\pgflinewidth}] (x.north west) -- ++(0, +1mm);
\end{tikzpicture}
\end{document}
结果:
这最终解决了我的问题,但感觉不太对。有没有更好的怎么做呢?☺