请参考如何绘制工艺流程图?
现在我想将“and->path1”的线改为虚线,我添加了[样式=虚线],不幸的是它没有改变,为什么?
\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\tikzset{level 1/.style={level distance=1.5cm, sibling distance=3.5cm}}
\tikzset{level 2/.style={level distance=1.5cm, sibling distance=2cm}}
\tikzset{bag/.style={text width=20em, text centered,yshift=-0.2cm}}
\begin{document}
\begin{tikzpicture}[grow=down, -stealth]
\node[bag]{$(B)$}
child{ edge from parent node[right]{t}; \node[bag]{$(Rgood)$}
child{ edge from parent node[right]{and}; \node[bag]{$(and)$}
child[missing]
child{ edge from parent node[right=0.1cm][style =dashed]{it}; \node[bag]{$(path1)$}}
child{ edge from parent node[right=0.1cm]{else}; \node[bag]{$(path2)$}}
}
};
\end{tikzpicture}
\end{document}
答案1
可以局部定义一个在关键字附近引入选项的样式child
。
因此,示例应变为:
\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\tikzset{level 1/.style={level distance=1.5cm, sibling distance=3.5cm}}
\tikzset{level 2/.style={level distance=1.5cm, sibling distance=2cm}}
\tikzset{bag/.style={text width=20em, text centered,yshift=-0.2cm}}
\begin{document}
\begin{tikzpicture}[grow=down, -stealth]
\node[bag]{$(B)$}
child{ edge from parent node[right]{t}; \node[bag]{$(Rgood)$}
child{ edge from parent node[right]{and}; \node[bag]{$(and)$}
child[missing]
child[dashed]{ edge from parent node[right=0.1cm]{it}; \node[bag]{$(path1)$}} % <= NOTICE the dashed near child
child{ edge from parent node[right=0.1cm]{else}; \node[bag]{$(path2)$}}
}
};
\end{tikzpicture}
\end{document}
结果是:
为了完整起见,让我们看看改变选项的位置会发生什么。
在前面的例子中,假设每次只需更改以下行:
child[dashed]{ edge from parent node[right=0.1cm]{it}; \node[bag]{$(path1)$}}
1.在选项里插入颜色定义node
。
child[dashed]{ edge from parent node[right=0.1cm,red]{it}; \node[bag]{$(path1)$}}
结果是:
2.现在让我们通过将颜色定义作为选项插入来改变颜色定义edge from parent
。
child[dashed]{ edge from parent[red] node[right=0.1cm]{it}; \node[bag]{$(path1)$}}
得出:
虽然看起来与之前的结果相同,但实际上连接首先用红色绘制,然后样式被子定义用黑色覆盖。标签仍为黑色。
3.现在让我们通过将颜色定义作为选项插入来改变颜色定义child
。
child[dashed,red]{ edge from parent node[right=0.1cm]{it}; \node[bag]{$(path1)$}}
得出:
一旦将选项置于此位置,它将适用于所有元素。
编辑
下次请在问题中插入您的真正需求,而不是稍后在评论中询问。事实上,我开发了之前的代码来回答:
现在我想将“and->path1”这一行改为虚线,我添加了[style=dashed],但不幸的是它没有改变,为什么?
不是:
那么有没有办法让 "(Rgood)->(and)" 之间的线变成虚线,而 "(and)->path1" 之间的线保持不变,也就是说不是虚线呢?
解决方法如下:
\documentclass[a4paper,12pt]{article}
\usepackage[width=15cm]{geometry}
\usepackage{pgfplots}
\usetikzlibrary{trees}
\tikzset{level 1/.style={level distance=1.5cm, sibling distance=3.5cm}}
\tikzset{level 2/.style={level distance=1.5cm, sibling distance=2cm}}
\tikzset{bag/.style={text width=20em, text centered,yshift=-0.2cm}}
\begin{document}
\scalebox{1.5}{
\begin{tikzpicture}[grow=down, -stealth,dashed]
\node[bag]{$(B)$}
child{ edge from parent[solid] node[right]{t}; \node[bag]{$(Rgood)$}
child{ edge from parent node[right]{and}; \node[bag]{$(and)$}
child[missing]
child{ edge from parent[solid] node[right=0.1cm]{it}; \node[bag]{$(path1)$}}
child{ edge from parent[solid] node[right=0.1cm]{else}; \node[bag]{$(path2)$}}
}
};
\end{tikzpicture}
}
\end{document}