Tikz 截断 tikzpicture 中的文本顶部

Tikz 截断 tikzpicture 中的文本顶部

我正在绘制一个箭头,上面有文字

\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}

相关内容