我正在尝试使用 TikZ 将一些文本叠加在箭头上。我知道可以将文本超过箭头,但这不是我想要达到的目的。
到目前为止我所做的是:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node(n1){n1};
\node(n2)[below right=3cm and 3cm of n1]{n2};
\draw[->] (n1) -- node[sloped, fill=white]{Text} (n2);
\end{tikzpicture}
\end{document}
但是,这只适用于白色背景。有没有更好的方法可以获得相同的效果?
答案1
一种可能性是将draw
文本作为节点。您可以在帮助下放置它path
。放置完所有节点后,draw
箭头。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node(n1){n1};
\node(n2)[below right=3cm and 3cm of n1]{n2};
% this path will place/draw a node call (text)
\path (n1) -- node[sloped] (text) {Text} (n2);
% Now draw arrows. This way it will be like you want.
\draw[->] (n1)--(text)--(n2);
% If you use two draw commands, will get two arrows.
%\draw[->] (n1)--(text);
%\draw[->] (text)--(n2);
\end{tikzpicture}
\end{document}