下列的这个例子, 我写的:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{
decorations.text,
}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (6,0);
\draw[->, >=latex, blue!20!white, bend left=20, line width=15pt] (a) to (b) ;
\draw [bend left=20, decoration={raise=-0.8ex,text along path, text={{$start$}.}, text align={align=left}}, decorate] (a) to (b);
\draw [bend left=20, decoration={raise=-0.8ex,text along path, text={{$end\qquad$}.}, text align={align=right}}, decorate] (a) to (b);
\end{tikzpicture}
\end{document}
但是,如果我删除“。”字符,LaTeX 要么永远重复文本,要么陷入无限循环。
答案1
不要.
使用一对空的{}
。
相反,\qquad
我提出的那个黑客
text align/right indent=1cm
遗憾的是,这不适用于em
单位……
代码
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (6,0);
\draw[->, >=latex, blue!20!white, bend left=20, line width=15pt] (a) to (b) ;
\draw [name=reusepath,bend left=20, decoration={raise=-0.8ex,text along path, text={{$start$}{}}}, decorate] (a) to (b);
\draw [bend left=20, decoration={raise=-0.8ex,text along path, text={{$end$}}, text align/right indent=1cm, text align=right}, decorate] (a) to (b);
\end{tikzpicture}
\end{document}
输出
来自beamer
手册
只有在相当严格的限制下,才有可能在数学模式下排版文本。使用类别代码为 3 的任何字符(例如,在纯 TeX 中为
$
)可以进入和退出数学模式。数学下标和上标需要包含在括号内(例如),命令如或 也{^y_i}
一样。但是,即使是适度复杂的数学排版也不太可能沿着路径成功(甚至不可取)。\times
\cdot
更新
我允许自己稍微“清理”一下你的代码,这样就只生成一条路径,并且将装饰声明为后续动作。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.text,intersections}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (6,0);
\draw[->, >=latex,
blue!20!white,
bend left=20,
line width=15pt,
postaction={decorate,decoration={
raise=-0.8ex,
text along path,
text={{$start$}{}}
}
},
postaction={decorate,decoration={
raise=-0.8ex,
text along path,
text={{$end$}},
text align/right indent=1cm,
text align=right
}
}
] (a) to (b) ;
\end{tikzpicture}
\end{document}