10

I was going to write along an arc some math expression with curly brackets. Somehow the following snippet causes pdflatex to freeze.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.text}

\begin{document}

\begin{tikzpicture}

\draw[->,blue,
 postaction={decorate,decoration={text along path, raise=4pt,
  text={ $\{ hello \}${} },text color=blue,
 text align={align=center}}}] (0,5) arc (90:0:5);

\end{tikzpicture}

\end{document}

How can I do it otherwise?

mlt
  • 589

1 Answers1

16

One way to do is to use {$\lbrace$} and the corresponding {$\rbrace$}:

text={{$\lbrace$}hello{$\rbrace$}}

which yields:

enter image description here

Alternatively you could use:

text={{\textbraceleft}hello{\textbraceright}}

Notes:

  • Note the additional set of braces.

  • The TikZ/PGF manual states for text deocrations:

    • Each character in the text is typeset in a separate \hbox...

      ...

    • It is only possible to typeset text in math mode under considerable restrictions. Math mode is entered and exited using any character of category code 3 (e.g., in plain TEX this is $). Math subscripts and superscripts need to be contained within braces (e.g., {^y_i}) as do commands like \times or \cdot. However, even modestly complex mathematical typesetting is unlikely to be successful along a path (or even desirable).

Code:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.text}

\begin{document}

\begin{tikzpicture}

\draw[->,blue,
 postaction={decorate,decoration={text along path, raise=4pt,
  text={{$\lbrace$}hello{$\rbrace$}},text color=blue,
 text align={align=center}}}] (0,5) arc (90:0:5);

\end{tikzpicture}

\end{document}

Bizarre Behavior:

Using text={$hello$}, I get:

enter image description here

Peter Grill
  • 223,288
  • 4
    I noticed that bizarre behavior too. You can prevent it by adding {} after $. – mlt Oct 04 '12 at 06:42
  • @mlt Thanks, I was currently stuck with that same problem. Has this ever been reported as a bug in TikZ? – feculededentier Mar 02 '15 at 15:51
  • 3
    Also worth noting: if you want to use a macro inside the math text (within the decoration), you will need an extra pair of brackets encompassing that macro. For example: decoration={text along path, text align=center, text={${\overline{s}}${}}, raise=18pt} – feculededentier Mar 02 '15 at 16:05
  • 1
    Another note on the bizarre behavior: adding a subscript to the math can throw an error (e.g. {$T_r${}}). Instead, try: {{$T_r$}{}}. – Rico Picone Apr 19 '17 at 08:00
  • @RicoPicone: Interesting. Seems that using math mode is a real issue, but at least there are workarounds that allow you to achieve the desired functionality. – Peter Grill Apr 19 '17 at 08:10