TikZ为思维导图专门设计了一个mindmap库。在未学习LaTex之前,我制作思维导图都是使用Xmind工具。那个时候是先用xmind画好,再截屏,然后贴入word中,特别麻烦。我们学习过Tikz的Tree,会发现,mindmap的语法和tikz的tree是几乎完全一样的,所以如果学过tikz tree的话,学习mindmap上手难度就小很多了。
简单使用
TikZ的这个包用起来特别简单,我写个例子:
\documentclass[a4paper,UTF8]{article}
\usepackage{ctex}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\tikzstyle{root concept} = [concept color=red!50]
\begin{tikzpicture}[large mindmap,concept color=red!50]
\node[concept] {Python}
child[grow=left] {node[concept] {Python 语法}}
child[grow=down] {node[concept] {Python API}};
\end{tikzpicture}
\end{document}
编译后效果:
概念注解
在Mindmap中,节点被称为概念concept,如果要对概念进行详细的解释,那么上面的简单写法就不够用了。注解的用法是使用\node[style=annotation]或者省略一下,\node[annotation]。因为是对概念的注释,所以要给概念取名字,语法是小括号,我举个例子:
\documentclass[a4paper,UTF8]{article}
\usepackage{ctex}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\tikzstyle{root concept} = [concept color=red!50]
\tikzstyle{every annotation} = [fill=blue!20]
\begin{tikzpicture}[mindmap,concept color=red!50]
\node[concept] (root) {Python}
child[grow=left] {node[concept](grammar) {Python 语法}}
child[grow=down] {node[concept] (api) {Python API}};
\node[annotation,right] at (root.east)
{Python是世界上最好的编程语言};
\node[annotation,above] at (grammar.north)
{语法必须全部掌握};
\node[annotation,below] at (api.south)
{要用到什么API,就去学什么API};
\end{tikzpicture}
\end{document}
编译效果:
概念大小
这属于mindmap的样式控制了,mindmap中有以下几个大小可供选择:
- small mindmap
- mindmap
- large mindmap
- huge mindmap
为了对比,我把四个放在同一个图里,这样对比更加明显:
\documentclass[a4paper,UTF8]{article}
\usepackage{ctex}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\tikzstyle{root concept} = [concept color=red!50]
\begin{tikzpicture}[small mindmap,concept color=red!50]
\node[concept] {small mindmap};
\end{tikzpicture}
\begin{tikzpicture}[mindmap,concept color=red!50]
\node[concept] {mindmap};
\end{tikzpicture}
\begin{tikzpicture}[large mindmap,concept color=red!50]
\node[concept] {large mindmap};
\end{tikzpicture}
\begin{tikzpicture}[huge mindmap,concept color=red!50]
\node[concept] {huge mindmap};
\end{tikzpicture}
\end{document}
编译后很容易对比大小:
级别样式
mindmap可以根据级别定义样式,为每个级别定义统一的样式,语法如下:
1. level 1 concept/.append style={}
2. level 2 concept/.append style={}
3. level 3 concept/.append style={}
依次类推,我举个例子:
\documentclass[a4paper,UTF8]{article}
\usepackage{ctex}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\begin{tikzpicture}[
large mindmap,
level 1 concept/.append style={concept color=blue!50},
level 2 concept/.append style={concept color=green!50},
level 3 concept/.append style={concept color=yellow!50},
]
\node[concept,concept color=red!50] {root}
child {
node[concept] {level 1}
child {
node[concept] {level 2}
child {
node[concept] {level 3}
}
}
};
\end{tikzpicture}
\end{document}
编译效果如下:
从编译效果来看,确实每个层级定义的颜色都不一样。