如何在 Tikz 中定义箭头的起点?

如何在 Tikz 中定义箭头的起点?

我有以下问题:使用代码

\documentclass[border=10pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

\everymath{\displaystyle}

\begin{document}
\tikzstyle{block} = [rectangle, draw, fill=blue!20,
  text centered, rounded corners, minimum height=4em]

\tikzstyle{line} = [-stealth, thick, draw]

\begin{tikzpicture}[node distance=5cm, text width=8em, auto]
  \node [block] (A) {Block 1};
  \node [block, right of=A] (B) {Block 2};
  \path [line] (A) edge node [midway] {Text} (B);
\end{tikzpicture}

\end{document}

我得到以下图片

在此处输入图片描述

文字描述未显示在箭头的中心。似乎错误的起点是错误的。我需要做什么才能让箭头描述位于正确的位置(箭头中间)?

我的尝试:我可以改变midway但这at end似乎不是正确的解决方案......

答案1

问题在于text width=8em占用了太多空间。解决方法是删除它。因此,结果应该是

在此处输入图片描述

代码是

\documentclass[border=10pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

\everymath{\displaystyle}

\begin{document}
\tikzstyle{block} = [rectangle, draw, fill=blue!20,
  text centered, rounded corners, minimum height=3em, minimum width=5em]


\tikzstyle{line} = [-stealth, thick, draw]

\begin{tikzpicture}[node distance=3.5cm, auto]
  \node [block] (A) {Block 1};
  \node [block, right of=A] (B) {Block 2};
  \path [line] (A) edge node [midway] {Text} (B);
\end{tikzpicture}

\end{document} 

我已经更改了minimum height=3em和。另外,我还按照原帖作者在评论中的要求node distance=3.5cm添加了。minimum width=5em


更新:正如@Zarko 在下面的评论中提到的,该节点已经放置在中间,因此,无需明确将其添加到节点。

相关内容