我希望能够实现以下着色箭“通过箭头接受”节点,但是是逐个节点地接受,而不是全局地接受:
从这个问题我能够看到如何全局设置箭头样式,但我对 Tikz 的了解还很基础,我无法弄清楚如何为特定节点设置接受箭头的颜色。(设置节点颜色为红色不会改变接受箭头的颜色。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata}
\tikzset{positive/.style={circle,red,minimum width=8pt,draw}}
\begin{document}
\begin{tikzpicture}[every accepting by arrow/.style={red}]
\node[positive,initial,initial text=,accepting by arrow] (A) {};
\end{tikzpicture}
\end{document}
答案1
您可以修改\newTransition
您链接的帖子的宏。
我使用的参数是:
- 起始节点名
- 结束(假)节点名称
- 假节点的位置
- 箭头的颜色。
以下是 MWE:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata, positioning}
\newcommand{\newTransition}[4]{\coordinate[#3 of #1] (#2);\draw[->] (#1) edge [#4] node {} (#2);}
\tikzset{positive/.style={circle,minimum width=8pt,draw}}
\begin{document}
\begin{tikzpicture}
\node[positive, initial, initial text=, accepting by arrow] (A) {};% benchmark with no colors
\node[positive, initial, initial text=, red, below = of A] (B) {};
\newTransition{B}{dummy1}{right =1.3em}{green}
\node[positive, initial, initial text=, blue, below = of B] (C) {};
\newTransition{C}{dummy2}{right =1.3em}{orange}
\end{tikzpicture}
\end{document}
以下是结果(第一个没有颜色作为基准):