30

actually it's an easy question, but I could find an answer with Google or the included search on StackExchange ;)

How do I add in the middle of the line a node with Tikz? I want somethink like this:

-------------->
     text

Normally I did it with an additional node at command. If I will resize the the arrow then I need to change the position of the node also.

---------->
   text

Which is not the best way for big things. I try to find something in the manual and didn't find an answer yet.

Thanks.

Best regards.

51

You could also use the midway-option

\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \draw [->] (0,0) -- (5,0) node [midway, below] {Text};
    \draw [->] (0,1) -- (5,1) node [near end, below] {Text};
    \draw [->] (0,2) -- (5,2) node [pos=0.62, below] {Text};
    \draw [->] (0,3) -- (5,3) node [pos=0.2, below] {Text};
\end{tikzpicture}
\end{document}

gives

result of the given example

See the tikz manual section 16.8 “Placing Nodes on a Line or Curve Explicitly”

  • 1
    Note that if you use curved arrows, this solution will not work (the text does not end up in the middle of the arrow). You will have to use something like \draw[->,>=stealth,out=90,in=90] (A) to node[midway,above] {Text} (B) ; – Anthony Labarre Mar 14 '15 at 8:21
19

You can use the node construct without the at specifier:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  \draw[->] (0,0) --  node[label= below:text] {} (2,0);
  \draw[->] (0,1) --  node[label= below:text] {} (3,1);
\end{tikzpicture}

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.