用Latex画思维导图:Forest

文章目录

Forest是基于TikZ的树形图宏包,专为创建思维导图、语法树等层次结构图设计。其语法简洁直观,采用方括号嵌套结构(如[node [][]...]),支持自动布局。通过for tree命令可设置全局样式,包括节点外观(边框、颜色)、连接线样式和布局参数(生长方向、间距)。还支持分层设置,使用where level语句为不同层级节点指定不同风格(如颜色、字体)。示例展示了如何创建计算机科学知识体系的思维导图,并演示了全局和分层样式的配置方法。

Forest思维导图

Forest 是基于tikz的树形图宏包,特别擅长创建思维导图、语法树、组织结构图等层次结构图,其语法简洁直观、可读性强,且支持自动布局,其简单示例如下

源码为

latex 复制代码
\documentclass{standalone}
\usepackage[edges]{forest}

\begin{document}
\begin{forest}
  for tree={
    draw,
    rounded corners,
    fill=blue!10,
    edge={->},
    l sep=20pt,
    s sep=10pt,
  }
  [计算机科学
    [理论
      [算法]
      [数据结构]
    ]
    [应用
      [人工智能]
      [数据库]
    ]
    [硬件
      [计算机组成]
      [体系结构]
    ]
  ]
\end{forest}
\end{document}

从示例程序可知,其代码结构极其简单,就是方括号的循环嵌套,可以递归式地写为[node [][]...],一目了然。

全局样式

【for tree】是Forest中最常用的全局样式设置命令,放在\begin{forest}后的第一个方括号内,其内部可选参数如下表所示

选项类型 键名 说明 示例
外观 draw 给节点加边框 draw=black, thick
fill 节点背景填充色 fill=blue!20
text 文字颜色 text=white
font 字体设置 font=\sffamily\bfseries
shape 节点形状 circle, rectangle, ellipse
边线 edge 连接线的样式 edge={->, thick, draw=gray}
布局 grow 树的生长方向 grow=east (向右), grow=south (向下)
l sep 层间距 (Level Sep) l sep=15mm
s sep 节点距 (Sibling Sep) s sep=5mm
锚点 anchor 节点自身的锚点 anchor=center
parent anchor 父节点连接子节点的位置 parent anchor=south
child anchor 子节点连接父节点的位置 child anchor=north

以上图为例,其全局设置如下,表示默认边框,节点形状为圆角,填充颜色为浅蓝色,连接线是顺向箭头,层级之间距离为20pt,同级节点间距离为10pt。

复制代码
for tree={
  draw,
  rounded corners,
  fill=blue!10,
  edge={->},
  l sep=20pt,
  s sep=10pt,
}

分层设置

上面示例中,通过全局设置,将不同节点设置成了统一风格。若想为不同层级的节点设置不同的风格,可用where level语句,示例如下,其中where level等号后面的就是节点层级。

复制代码
\begin{forest}
  for tree={draw, rounded corners} % 全局默认
  where level={0}{                 % 针对根节点 (Level 0)
    fill=red!30, 
    font=\Large\bfseries,
    minimum size=1.5cm
  }{}
  where level={1}{                 % 针对第一层子节点
    fill=blue!20,
    font=\normalsize
  }{}
  where level={2}{                 % 针对第二层 (叶子)
    fill=green!20,
    font=\small
  }{}
\end{forest}

和mindmap的区别

Forest 站在通用树形结构绘制的高度,强调语法的极简性与布局的自动化。作为基于 TikZ 的高级封装,它允许用户通过直观的嵌套括号定义层次关系,无需手动计算节点坐标,从而将精力集中于内容逻辑而非排版细节。这种设计使得 Forest 不仅适用于思维导图,还能轻松胜任语言学语法树、组织结构图等多种树形场景,其强大的 for tree 样式配置机制提供了极高的灵活性。然而,正因为其通用性,若要实现 mindmap 库那种特有的放射状美学风格,用户可能需要额外调整边线路径和节点形状,不如专用库那样"开箱即用"。

相关推荐
月昤昽1 天前
black!50与black!20颜色含义解析
latex·tikz
月昤昽1 天前
TikZ坐标单位详解
latex·tikz
basketball6162 天前
Latex常用符号表示方法
latex
secondyoung5 天前
Markdown数学公式语法速查手册
算法·编辑器·markdown·latex
喝凉白开都长肉的大胖子7 天前
latex 中改变其中一部分文本颜色
latex
迷路爸爸18011 天前
VSCode / Cursor 中 LaTeX Workshop 的 settings.json 配置:编译与 SyncTeX 跳转
ide·vscode·json·latex
weixin_4166600711 天前
豆包公式转Word,乱码解决
word·latex·豆包
lijfrank14 天前
MacOS 下 VS Code + LaTeX + Skim 双向同步配置
vscode·macos·pdf·latex·mactex
爱叨叨的小嘟15 天前
Latex公式 转 word可编辑公式
word·typora·latex
不剪发的Tony老师15 天前
Mind Map Wizard:一款基于AI的思维导图工具
思维导图