我有以下代码
\draw[style={shorten >=-1cm}, dashed] (C) -- (CENTER) node {NAME};
有没有简单的方法可以将 {NAME} 定位到“缩短”行的末尾?如果我使用上面的代码,它将被放置在 (CENTER)。
塞巴斯蒂安
编辑:我没有权限回答我自己的问题,因此我写了一个简短的编辑:
我认为我找到了一个可以解决我的问题的解决方案:
\tikzset{%
add/.style args={#1}{to path={%
($(\tikztostart)$)--($(\tikztotarget)!-#1!(\tikztostart)$)%
\tikztonodes}}
}
\draw[dashed, add=1cm] (C) to (CENTER) node[right] {NAME};
答案1
您可以使用xshift
节点并使用适当的锚点:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (C) at (0,0);
\coordinate (CENTER) at (10,0);
\draw[style={shorten >=-1cm}, dashed] (C) -- (CENTER) node[xshift=1cm,anchor=west,inner sep=0pt] {NAME};
\end{tikzpicture}
\end{document}
答案2
我不确定你的问题是否非常准确。你写“缩短”行是因为你使用了选项shorten
?事实上你用以下方式增加了行数shorten >=-1cm
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture} [dot/.style={draw,circle,minimum size=3pt,
inner sep=0pt,outer sep=0pt,thick,fill}}]
\coordinate[dot] (C) at (0,0);
\coordinate[dot] (CENTER) at (10,0);
\draw[style={shorten >=-1cm}, dashed] (C) -- (CENTER) ;
\end{tikzpicture}
\end{document}
给出
逻辑上最简单的方法
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (C) at (0,0);
\node (CENTER) at (10,0) {NAME};
\draw[dashed] (C) -- (CENTER) ;
\end{tikzpicture}
\end{document}
但也许你真的想对抗 的效果\draw[shorten >=-1cm
,你可以用 得到一个很好的结果:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[dot/.style={draw,circle,minimum size=3pt,
inner sep=0pt,outer sep=0pt,thick,fill}}]
\coordinate[dot] (C) at (0,0);
\coordinate[dot] (CENTER) at (10,0);
\draw[style={shorten >=-1cm}, dashed] (C) -- (CENTER) node[right=1cm] {NAME};
\end{tikzpicture}
\end{document}
这是将一个节点相对于另一个节点放置的一种方法。首先,当您写下right
新节点放置在“anchor=west”时,如果您决定将线增加 1 厘米,则需要将新节点移动到中心右侧 1 厘米处。