如何垂直移动“沿路径的文本”?目前,我正在使用修改了端点的路径来放置文本,然后绘制实际的线条。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations,decorations.text}
\begin{document}
\begin{tikzpicture}
\node (p1) at (0,0) {1};
\node (p2) at (5,0) {2};
\path[
postaction={
decorate,
decoration={
text along path,
text align=center,
text={|\small\color{blue}|My curved text}
}
}
]
(p1.25) to [bend left=15] (p2.155);
\draw (p1) edge[<->,bend left=15] (p2);
\end{tikzpicture}
\end{document}
如果无论路径方向如何(沿路径的法线移动字母,即垂直于路径的线)解决方案都有效,则可以获得加分。
答案1
PGF 文档手册.pdf.gz, 在里面文本装饰部分,说道:
每个字符都使用其基线的中心进行定位。要垂直移动文本(相对于路径),应使用附加变换键。
transform
实际上应该是指向 de 文档的超链接/pgf/decoration/transform=<transformations>
,该文档位于相对于待装饰路径定位装饰部分。
因此,如果您只想垂直移动文本,请使用transform={yshift=1cm}
:
\draw[
<->,
postaction={
decorate,
decoration={
text along path,
text align=center,
transform={yshift=1cm},
text={|\small\color{blue}|My curved text}
}
}
]
(p1) to [bend left=15] (p2);
如果要沿着垂直于路径的线移动文本,请使用键/pgf/decoration/raise
,如下所示:
% I Increased bending and set text align=left so we can se the effect better.
\draw[
<->,
postaction={
decorate,
decoration={
text along path,
text align=left,
raise=1cm,
text={|\small\color{blue}|My rounded text}
}
}
]
(p1) to [bend left=100] (p2);
另请注意/pgf/decoration/mirror=<boolean>
,在相对于待装饰路径定位装饰部分,将装饰放在路径的另一侧。