使用 TikZ (最灵活、最强大)
TikZ 是 LaTeX 中绘图的标准工具,功能极其强大,可以绘制从简单线条到复杂图形的各种内容,用它来画思维导图是最灵活的方式,但需要一定的学习成本。

核心概念
- 节点: 使用
\node命令定义,是思维导图的各个要点。 - 连线: 使用
\draw命令连接节点。 - 样式: 可以定义节点和连线的样式(颜色、形状、线条粗细等),使图形更美观。
示例代码:中心辐射式思维导图
这个例子创建了一个以“中心主题”为核心,向外辐射四个分支的思维导图。
\documentclass[tikz, border=10pt]{standalone}
% 或者使用 \documentclass{article} 并在文档环境中使用 \begin{tikzpicture} ... \end{tikzpicture}
% 引入 TikZ 库
\usepackage{tikz}
% 定义样式,让代码更简洁
\tikzstyle{mindmap}=[
every node/.style={
concept,
circular drop shadow,
ball color=blue!30,
text=white,
font=\sffamily\bfseries,
minimum size=3cm, % 节点大小
align=center
},
level 1/.style={
level distance=5cm, % 第一层节点离中心的距离
sibling angle=90 % 第一层节点之间的夹角
},
level 2/.style={
level distance=3cm, % 第二层节点离其父节点的距离
sibling angle=45 % 第二层节点之间的夹角
}
]
\begin{document}
\begin{tikzpicture}[
% 使用 mindmap 样式
mindmap,
% 定义根节点的特殊样式
root concept/.style={
concept color=red!60,
text=white,
font=\Huge\sffamily\bfseries,
minimum size=4cm
}
]
% 根节点(中心主题)
\node[root concept] (center) {中心主题};
% 第一层分支
\coordinate (level1) at (center);
\node[concept, level 1] (node1) [above right=of center] {分支 1};
\node[concept, level 1] (node2) [right=of center] {分支 2};
\node[concept, level 1] (node3) [below right=of center] {分支 3};
\node[concept, level 1] (node4) [below left=of center] {分支 4};
% 第二层分支(以“分支 1”为例)
\node[concept, level 2] (node1-1) [above right=of node1] {要点 1.1};
\node[concept, level 2] (node1-2) [below right=of node1] {要点 1.2};
% 第二层分支(以“分支 2”为例)
\node[concept, level 2] (node2-1) [above=of node2] {要点 2.1};
\node[concept, level 2] (node2-2) [below=of node2] {要点 2.2};
% 第二层分支(以“分支 3”为例)
\node[concept, level 2] (node3-1) [below right=of node3] {要点 3.1};
\node[concept, level 2] (node3-2) [below left=of node3] {要点 3.2};
% 第二层分支(以“分支 4”为例)
\node[concept, level 2] (node4-1) [below left=of node4] {要点 4.1};
\node[concept, level 2] (node4-2) [above left=of node4] {要点 4.2};
% 手动绘制连接线(如果自动布局不满足需求)
% \draw[->] (center) -- (node1);
% \draw[->] (center) -- (node2);
% \draw[->] (center) -- (node3);
% \draw[->] (center) -- (node4);
% \draw[->] (node1) -- (node1-1);
% \draw[->] (node1) -- (node1-2);
% ... 以此类推
\end{tikzpicture}
\end{document}
如何编译
- 将代码保存为
.tex文件(mindmap.tex)。 - 使用 LaTeX 编译器(如
pdflatex)进行编译,如果你使用standalone类,可能需要编译两次。
效果预览
(这是一个简化的文字描述,实际编译后会生成一个漂亮的彩色图形)
- 中心是一个红色的圆形大节点,写着“中心主题”。
- 四个蓝色的第一层分支均匀分布在中心周围。
- 每个第一层分支旁边又连接着两个更小的蓝色第二层节点。
使用 mindmap 宏包 (最简单、最直接)
这个宏包是专门为绘制思维导图设计的,基于 TikZ,但提供了更简单的命令,非常适合快速创建标准的思维导图。
核心概念
\mindmap: 创建一个新的思维导图环境。\node: 在环境中添加节点。\concept: 创建一个概念节点。\tc: 创建一个“主题中心”(Top Center),通常是思维导图的起点。
示例代码:简单思维导图
\documentclass{article}
\usepackage{mindmap}
\begin{document}
\begin{mindmap}
% 中心主题
\tc{中心主题}
% 第一层分支
\concept{分支 A}
\concept{分支 B}
\concept{分支 C}
% 第二层分支,作为“分支 A”的子节点
\concept{要点 A1}
\concept{要点 A2}
% 第二层分支,作为“分支 B”的子节点
\concept{要点 B1}
\concept{要点 B2}
% 第二层分支,作为“分支 C”的子节点
\concept{要点 C1}
\concept{要点 C2}
\end{mindmap}
\end{document}
如何编译
与方法一相同,使用 pdflatex 编译。
效果预览
- “中心主题”位于图形顶部中央。
- “分支 A”、“分支 B”、“分支 C” 从中心向下辐射。
- “要点 A1”、“要点 A2” 从“分支 A”向下延伸,以此类推。
- 整个图形是垂直方向的,布局清晰。
使用 forest 宏包 (最优雅、最适合树状结构)
forest 是一个专门用于绘制树的宏包,但它非常适合绘制思维导图,因为思维导图本质上是一种树状结构。forest 的语法非常简洁和优雅。
核心概念
- 使用方括号
[]来定义节点和父子关系。 - 直接写在方括号内。
- 通过
for tree等选项可以轻松设置全局样式。
示例代码:使用 forest 绘制思维导图
\documentclass{article}
\usepackage{forest}
% 定义全局样式
\forestset{
mindmap/.style={
for tree={
grow'=0, % 从上到下生长
child anchor=west, % 子节点连接在父节点的左侧
parent anchor=south, % 父节点连接在子节点的上方
align=center,
font=\sffamily,
edge path={
\noexpand\path [draw, \forestoption{edge}]
(!u.south west) +(7.5pt,0) |- node[fill,inner sep=1.25pt] {} (.child anchor)\forestoption{edge label};
},
before typesetting nodes={
if n=1
{insert before={[,phantom]}}
{}
},
before computing xy={l=15pt},
calign=first,
},
root/.style={
for children={
edge={thick, color=blue!70},
},
before typesetting nodes={
if level=0
{font=\Huge\bfseries\sffamily, text=blue!70}
{font=\large\bfseries\sffamily, color=blue!70}
},
},
level 1/.style={
for children={
edge={thick, color=orange!70},
},
before typesetting nodes={
if level=1
{font=\large\bfseries\sffamily, color=orange!70}
{font=\sffamily, color=orange!70}
},
},
}
}
\begin{document}
\begin{forest}
mindmap,
root,
[中心主题
[分支 A
[要点 A1]
[要点 A2]
]
[分支 B
[要点 B1]
[要点 B2]
]
[分支 C
[要点 C1]
[要点 C2]
]
]
\end{forest}
\end{document}
如何编译
与方法一相同,使用 pdflatex 编译。
效果预览
- “中心主题”在顶部。
- “分支 A”、“B”、“C” 在第二层,水平排列。
- 各个“要点”在第三层,垂直排列在其对应的分支下方。
- 连接线通过
edge path自定义,可以绘制出曲线或折线,非常美观。
使用 pgf-umlsd 宏包 (适合流程和层级)
这个宏包主要用于绘制 UML 序列图,但其 activity 环境非常适合绘制具有清晰层级和流程的思维导图或组织结构图。
示例代码
\documentclass{article}
\usepackage{pgf-umlsd}
\begin{document}
\begin{activity}
\umlactivity{中心主题}
\umlactivity{分支 A}
\umlactivity{分支 B}
\umlactivity{分支 C}
\umlactivity{要点 A1}
\umlactivity{要点 A2}
\umlactivity{要点 B1}
\umlactivity{要点 B2}
\umlactivity{要点 C1}
\umlactivity{要点 C2}
\end{activity}
\end{document}
这个方法比较简单,但定制性不如 TikZ 和 Forest。
总结与选择建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| TikZ | 功能最强大,灵活性极高,可绘制任何图形,样式自定义能力极强。 | 学习曲线陡峭,代码相对复杂。 | 需要高度定制、非标准、复杂的思维导图;学术论文中的精美插图。 |
| mindmap | 最简单直接,命令专一,专为思维导图设计,上手快。 | 灵活性较低,样式和布局相对固定。 | 快速绘制标准、垂直辐射状的思维导图;教学、演示文稿。 |
| forest | 语法优雅简洁,非常适合树状结构,代码可读性高,布局控制灵活。 | 主要用于树状图,绘制非树状思维导图需要更多技巧。 | 需要绘制树状、层级分明、美观的思维导图;文档中的结构化展示。 |
| pgf-umlsd | 简单,适合绘制流程和层级关系。 | 功能相对单一,不适合复杂的放射状思维导图。 | 绘制带有流程性质的、简单的层级结构图。 |
给你的建议:
- 新手/快速出图: 从
mindmap宏包开始,它最符合“开箱即用”的需求。 - 追求美观与灵活: 推荐
forest,它的语法和输出效果都非常出色,是目前绘制树状思维导图的热门选择。 - 终极自由/复杂图形: 如果你对 TikZ 有兴趣,或者需要绘制非常规、艺术化的思维导图,
TikZ是不二之选,虽然学习成本高,但一旦掌握,你将拥有无限的创造力。
希望这份详细的指南能帮助你选择最适合你的方法,并成功创建出漂亮的 LaTeX 思维导图!
