如何垂直移动“沿路径的文本”?

如何垂直移动“沿路径的文本”?

如何垂直移动“沿路径的文本”?目前,我正在使用修改了端点的路径来放置文本,然后绘制实际的线条。

\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>,在相对于待装饰路径定位装饰部分,将装饰放在路径的另一侧。

相关内容