Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I need to introduce line breaks into the label of a node. This is what I've tried so far, but none of it worked:

1:

\node[node, label={[split parts = 4]alpha \nodepart{two} bravo \nodepart{three} charlie nodepart{four} delta }, below of = 5] (8) {$8$};

2:

\node[node, label={alpha\\bravo\\charlie\\delta}] below of = 5] (8) {$8$};

3:

\node[node, label={alpha \newline bravo \newline charlie \newline delta}] below of = 5] (8) {$8$};

All of those approaches are fairly similar. I found solutions on line breaks inside nodes, and on labels on edges, but not in labels of nodes.

In fact, I've tried the suggestions I found on labels of nodes, but it didn't work as well.

share|improve this question
1  
Could you please compose a minimal compilable example? The code snippets are more confusing than helpful, because they've got quite a few syntax errors and depend on things not commonly defined (what's the node style? Why do you have below of=5 in there?) –  Jake Feb 1 '13 at 17:54
1  
\node[align=center]{line1\\line2\\...}; (also align=left and align=right). –  Sašo Živanović Feb 1 '13 at 17:55
    
@SašoŽivanović Yep, figured it out with the answer by Jake. –  polemon Feb 1 '13 at 18:20

1 Answer 1

up vote 13 down vote accepted

A label is just like any other node, so you have to specify the align of the label before the manual line breaks work, using \node [label={[align=left]<label text\\with line breaks>}] {<node text>}. Alternatively (again, like with any other node), you can specify the text width of the label, that way manual line breaks will work and the text will wrap automatically after the specified text width.

\documentclass[border=5mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\node [draw, label={[align=left]First\\Second}] {Node};
\end{tikzpicture}
\end{document}
share|improve this answer
    
Thanks! For some reason it only worked when I have the [align=left] setting in it. If I leave that one out, it's not working :S –  polemon Feb 1 '13 at 18:19
    
@polemon: Yes, that's what I meant with "you have to specify the align of the label before the manual line breaks work" –  Jake Feb 1 '13 at 18:22
1  
@Jake, you could also add that specifying a specific node text width enables the linebreak as well: \node[text width=<x>cm] {Text\\is\\here!};. However, this also does "automatic" line breaks. –  zeroth Feb 1 '13 at 22:39
    
@zeroth: Yup, I'll put it in. We really need a "canonical" question and answer for this, it pops up so many times and there are quite a few with really misleading answers. –  Jake Feb 1 '13 at 22:41
    
@Jake, I completely agree. This question has a pretty good title, however, many have rather unintuitive titles (of course it is difficult if you dont know what it is called). But this calls for an "Dublicate the dublicated" which tries to track down all dublicates. ;) –  zeroth Feb 1 '13 at 22:51

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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