箭头上的文字:带角的箭头上的倾斜文字

箭头上的文字:带角的箭头上的倾斜文字

我是新手,正在尝试弄清楚 tikz。
当我有这样的构造时:

\draw [arrow] (node1) node[sloped] {Some text} |-  (node2);

我最终得到了如下结果(抱歉,我的 ASCII 艺术格式是这样的...):

|--->
|
Some Text

我如何让“某些文本”垂直,并位于箭头的垂直位置?我一直希望是 [倾斜],但失败了。

为了澄清,因为我显然解释得不好:我希望文本位于垂直线上,只是侧面,也就是说,“文本”确实是倾斜的而不是堆叠的。:

T|--->
e|
x|
t|

答案1

使用选项的替代方案sloped

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
\begin{tikzpicture}
  \draw [->] (1,1)  |-  (3,2) node[at start,left,sloped] {Some text};
\end{tikzpicture}
\end{document}

在此处输入图片描述

编辑:在您编辑问题之后,您似乎正在寻找其他内容:

在此处输入图片描述

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}

\begin{tikzpicture}
  \draw [->] (1,1) |-  (3,2) node[pos=0.25,above,sloped] {Some text};
\end{tikzpicture}
\end{document}

观察相对位置0.25:它小于0.5表示线上的角。等于或大于的值0.5将文本放在线的水平部分。

如果你有简单的直线,代码就更简单了:

  \draw [->] (0,0) -- node[above,sloped] {Some text} (0,2) ;

或等效地

  \draw [->] (0,0) -- (0,2) node[midway,above,sloped] {Some text};

其中midway的影响与 相同pos=0.5。两种情况下的结果相同:

在此处输入图片描述

有关更多详细信息,请参阅 tikz 和 pgf 手册,第 237 页。

答案2

这里有两种旋转方式(我认为这就是您正在寻找的):

\documentclass[12pt,paper=a4]{scrartcl}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  \draw [->] (1,1) node[anchor=east,rotate=90] {Some text} |-  (3,2);
\end{tikzpicture}


\begin{tikzpicture}

  \draw [->] (1,1) node[yshift=-1cm,rotate=90] {Some text} |-  (3,2);

\end{tikzpicture}


\end{document}

输出:

在此处输入图片描述

评论:

A)为什么是 90 而不是 -90?

-因为角度是逆时针的

B) 为什么是东边而不是南边?

-因为锚点在旋转90度(逆时针)之前会被调用:

编译下一个示例来查看:

\documentclass[12pt,paper=a4]{beamer}
\usepackage{tikz}
\usepackage{xcolor}

\begin{document}
  \begin{frame}
\begin{tikzpicture}
  \coordinate (A) at (1,1);
  \draw[->] (A)|-(3,2);
  \only<1>{\node[opacity=0.3] at (A) {\color{red}Some text};
    \node at (-3,0){Without options};
  }
  \only<2>{\node[opacity=0.6,anchor=east] at  (A) {\color{red}Some text};
    \node at (-3,0){Anchor=east: called};}
    \only <3> {\node[anchor=east,rotate=90,opacity=1] at (A) {\color{red}Some text};
    \node at (-3,0){Rotated (around A)};
    }
\end{tikzpicture}
\end{frame}


\end{document}

如果您尝试以不同的顺序(相反)解释这些位置,您会发现解释“失败”。

C)yshift 怎么样?

-yshift 是(编辑:几乎总是->例如:@Zarko 的答案中的一个例外是 ax 或 yshift)如果我们不旋转整个 tikzpicture,则始终参考垂直轴

答案3

看来您希望文本沿着以下行:

在此处输入图片描述

以下是代码:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

    \node at (0,0) (nodeA) {A};
    \coordinate (nodeB) at (0,2);
    \node at (2,2) (nodeC) {C};

    \draw[thick,->] (nodeA) -- (nodeB) node [midway, above, sloped] (TextNode) {Text} -- (nodeC);

\end{tikzpicture}
\end{document}

这个sloped论点也适用于有角度的线:

\draw[thick,->] (nodeA) -- (nodeC) node [midway, above, sloped] (TextNode) {Text};

将产生输出:

在此处输入图片描述

相关内容