用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 库那种特有的放射状美学风格,用户可能需要额外调整边线路径和节点形状,不如专用库那样"开箱即用"。

相关推荐
20YC编程社区1 天前
一分钟学会用Markdown绘制Mermaid思维导图
markdown·思维导图·mermaid图表
xiami_world3 天前
Claude Design vs. 博思AIPPT深度对比:从架构、交互、数据处理看垂直AI PPT工具的优势
人工智能·ai·信息可视化·powerpoint·思维导图·ppt
weixin_416660074 天前
原创分享:Markdown 转 Word 工具,一键导出Word/PDF文档
pdf·word·latex·deepseek
伟贤AI之路13 天前
为什么AI里的公式复制到Word格式会乱?
人工智能·word·latex
不剪发的Tony老师14 天前
TeamMapper:一款基于Web的团队协作思维导图工具
思维导图
weixin_4166600714 天前
从标记语言到 Word 文档:AI 生成的 Mermaid 与 LaTeX 自动化转换的技术方案解析
word·latex·数学公式·deepseek
记录无知岁月20 天前
【LaTeX】入门和使用拾遗
数学建模·教程·latex·论文写作·texlive·texsudio
Irene199124 天前
杭州前端脑图软件推荐
思维导图·脑图
热爱生活的五柒1 个月前
如何将word中latex公式复制到另一个文档中
word·latex