我想绘制一个简单的图表来tikz
显示编译器前端的结构。
编译器用包含三部分的矩形分割形状节点表示。输入和输出用矩形节点表示,分别连接到分割形状第一部分的左侧和最后一部分的右侧。
我已经写了下面的文档,但是它不起作用。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning}
\begin{document}
\begin{tikzpicture}[thick, data/.style={rectangle,fill=red!12}]
\node[rectangle split,rectangle split parts=3,draw,anchor=center] (compiler) {
lexical analysis\nodepart{two}
syntatic analysis\nodepart{three}
semantic analysis
};
\node[data] (src) [left=of compiler.text,align=center] {source code};
\node[data] (obj) [right=of compiler.three,align=center] {intermediate code};
\draw [->] (src.east) -- (compiler.text west);
\draw [->] (compiler.three east) -- (obj.west);
\end{tikzpicture}
\end{document}
应如何修改才能达到预期的效果?
答案1
只需将left=of compiler.text
和更改right=of compiler.three
为left=of compiler.text west
和right=of compiler.three east
节点src
即可obj
改善输出。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning}
\begin{document}
\begin{tikzpicture}[thick, data/.style={rectangle,fill=red!12}]
\node[rectangle split,rectangle split parts=3,draw,anchor=center] (compiler) {
lexical analysis\nodepart{two}
syntatic analysis\nodepart{three}
semantic analysis
};
\node[data] (src) [left=of compiler.text west,align=center] {source code};
\node[data] (obj) [right=of compiler.three east,align=center] {intermediate code};
\draw [->] (src.east) -- (compiler.text west);
\draw [->] (compiler.three east) -- (obj.west);
\end{tikzpicture}
\end{document}