我正在尝试使用 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
将从该额外边距进行测量。