我正在绘制一个箭头,上面有文字
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\draw[<-, thick, postaction={decorate, decoration={text along path,text align=center, raise=.7em, text={Process}}}]
(0, 0) to [bend left=60] (5, 0);
\end{tikzpicture}
\end{document}
我如何修复 tikzpicture 的边界框,以便它自己调整标签的文本?我可以使用装饰来扩展边界框吗,就像arrows.meta
箭头那样?
我希望 tikzpicture 的边界框能够自动调整到图片的内容,而不必微调固定值。
如果我将文本放在它自己的节点中,它就不会被切断,但它不会遵循箭头的路径。
当然,我不能提高文本,但是它离箭头太近了。
接受的答案这里与我的问题无关,因为该arrows.meta
包不会更改装饰的边界框。该问题的其他答案建议添加边距,但我不想必须微调边距参数(然后如果我移动箭头装饰,就必须再次更改它)。
答案1
边界框计算不正确。可以通过使用以下代码绘制边界框来证明这一点\draw[red] (current bounding box.north west) rectangle (current bounding box.south east);
快速破解方法是向独立类添加边距。
\documentclass[tikz,margin=1cm]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\draw[<-, thick, postaction={decorate, decoration={text along path,text align=center, raise=.7em, text={Process}}}]
(0, 0) to [bend left=60] (5, 0);
\end{tikzpicture}
\end{document}
答案2
通过使文本遵循与箭头不同的路径,文本将沿着弯曲路径行进,而不会被边界框切断
\begin{tikzpicture}
\pgfmathsetmacro{\xa}{0}
\pgfmathsetmacro{\xb}{5}
\pgfmathsetmacro{\y}{0}
\pgfmathsetmacro{\m}{.2}
\draw[<-, thick]
(\xa, \y) to [bend left=60] (\xb, \y);
\path [decorate,decoration={text along path, text align=center, text={Process}}] (\xa, \y + \m) to [bend left=60] (\xb, \y + \m);
\end{tikzpicture}