TikZ 库自动机使用选项 double 和 shorten

TikZ 库自动机使用选项 double 和 shorten

我正在尝试使用 TikZ 和库绘制自动机automata。我想用双圆表示接受状态,但两个圆之间的距离应该大于默认值(最初为0.6pt)。我通过设置来做到这一点double distance=1.5pt,但这与选项不能很好地配合,shorten >=1pt如以下最小示例所示:

\documentclass{minimal}

\usepackage{tikz}

\usetikzlibrary{automata,positioning}

\begin{document}
\begin{tikzpicture}[shorten >=1pt]
  \node[state] (1) {1};
  \node[state,accepting] (2) [below=of 1] {2};
  \path[->] (1) edge (2);
\end{tikzpicture}
%
\begin{tikzpicture}[shorten >=1pt,accepting/.style={double distance=1.5pt}]
  \node[state] (1) {1};
  \node[state,accepting] (2) [below=of 1] {2};
  \path[->] (1) edge (2);
\end{tikzpicture}
%
\begin{tikzpicture}[shorten >=1pt,accepting/.style={double distance=1.5pt}]
  \node[state] (1) {1};
  \node[state,accepting] (2) [below=of 1] {2};
  \path[->,shorten >=1.9pt] (1) edge (2);
\end{tikzpicture}
\end{document}

在第二个自动机中,箭头接触接受状态的双圆。我可以通过将缺失值添加0.9pt到缩短参数来手动修复该问题,但这有点繁琐且容易出错。有没有自动处理这种情况的方法?

答案1

就在上周,我不得不自己在一篇论文中处理这个问题…… :)outer sep=.9pt在 的定义中添加选项accepting/.style,这实际上会在您的接受节点周围添加 .9pt 的边距。shorten将从该额外边距进行测量。

相关内容