我打算沿着弧线写一些带花括号的数学表达式。不知何故,以下代码片段导致 pdflatex 冻结。
\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}
否则我该怎么做?
答案1
一种方法是使用{$\lbrace$}
和相应的{$\rbrace$}
:
text={{$\lbrace$}hello{$\rbrace$}}
得出的结果是:
或者你也可以使用:
text={{\textbraceleft}hello{\textbraceright}}
笔记:
请注意附加的一组括号。
TikZ/PGF 手册中关于文本修饰的规定如下:
文本中的每个字符都排版在单独的 \hbox 中……
...
只有在相当严格的限制下,才有可能在数学模式下排版文本。使用类别代码为 3 的任何字符(例如,在纯 TEX 中为 $)可以进入和退出数学模式。数学下标和上标需要包含在括号内(例如
{^y_i}
),命令如\times
或 也需要包含在括号内\cdot
。但是,即使是适度复杂的数学排版也不太可能沿着路径成功(甚至不理想)。
代码:
\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}
怪异行为:
使用text={$hello$}
,我得到: