绘制带有文字的箭头

绘制带有文字的箭头

有没有办法画一个里面有文字的箭头,就像这图中那样?我看到了很多例子,TikZ但大多数都是文字在箭头上方,而不是箭头内部。

答案1

\documentclass{scrartcl}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  \coordinate (A) at (-5,0);
  \coordinate (B) at ( 5,0);
  \draw[->] (A) -- (B) node[midway,fill=white] {\emph{success}};
\end{tikzpicture}

\end{document}

这样做同样的事情,其他用户可能更容易理解

\draw[->] (A) -- node[midway,fill=white] {\emph{success}} (B);

答案2

无需 tikz 和任何复杂代码即可完成此操作。了解 TeX 基本体就足够了。

\def\arrowtext#1#2{\hbox to#1{\arrowtextA\ #2 \arrowtextA\kern2pt\llap{$\succ$}}}
\def\arrowtextA{\leaders\vrule height2.7pt depth-2.3pt\hfil}

\arrowtext{5cm}{success}

成功

编辑:为了回应下面@fpast 的评论,我展示了带有中间文本的对角线示例。 pdfTeX 应该是这样的。

\def\arrowtext#1#2{\hbox to#1{\arrowtextA\ #2 \arrowtextA\kern2pt\llap{$\succ$}}}
\def\arrowtextA{\leaders\vrule height2.7pt depth-2.3pt\hfil}
\def\diagonal{\pdfsave\pdfsetmatrix{.7071 .7071 -.7071 .7071}}

\arrowtext{5cm}{success}

\vskip2cm \noindent
\diagonal\rlap{\arrowtext{3cm}{diagonal}}\pdfrestore

成功2

答案3

使用 TikZ 的解决方案,无需用白色填充背景:

\documentclass{article}

\usepackage{tikz}

\begin{document}
  \begin{tikzpicture}
    \coordinate (A) at (-2,0);
    \coordinate (B) at ( 2,0);
    \path (A) -- node (success) {\emph{success}} (B);
    \draw[->] (A) -- (success) -- (B);
  \end{tikzpicture}
\end{document}

结果

利用库calc,还可以计算出节点的位置:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
  \begin{tikzpicture}
    \coordinate (A) at (-2,0);
    \coordinate (B) at ( 2,0);
    \draw[->]
      ($(A)!.5!(B)$) node (success) {\emph{success}}
      (A) -- (success) -- (B);
  \end{tikzpicture}
\end{document}

评论:

  • 箭头线与文本之间的空间由节点的内边距控制,通过选项设置inner sep;默认为0.3333em

答案4

基于 Heiko Oberdiek 解决方案:

\documentclass[tikz,border=1em]{standalone}
    \usetikzlibrary{calc}

    \begin{document}
\begin{tikzpicture}
    \coordinate (A) at (-2,-1);
    \coordinate (B) at ( 2,+1);
% invisible line, for sloped option:
\path (A) to node[sloped] (success) {\emph{success}} (B);
% real line with sloped text in the midle
\draw[->] (A) -- (success) -- (B);
\end{tikzpicture}
    \end{document}

此线可以双向指向任意方向。

相关内容