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

相关推荐
Irene19913 天前
杭州前端脑图软件推荐
思维导图·脑图
热爱生活的五柒11 天前
如何将word中latex公式复制到另一个文档中
word·latex
Sakuraba Ema14 天前
从零理解 MoE(Mixture of Experts)混合专家:原理、数学、稀疏性、专家数量影响与手写 PyTorch 实现
人工智能·pytorch·python·深度学习·数学·llm·latex
简宸~15 天前
VS Code + LaTex + SumatraPDF联合使用指南
java·vscode·latex·sumatrapdf
xiami_world18 天前
6款思维导图软件深度评测:协作、AI能力与工具选型对比
人工智能·ai·信息可视化·思维导图
bu_shuo20 天前
AI生成的数学公式复制为LaTeX插件
ai·chatgpt·latex·gemini·千问·豆包·数学公式复制
还不秃顶的计科生22 天前
latex代码裁剪pdf图片
pdf·latex
小哈里1 个月前
【科研】ACM MM 论文 Latex 投稿模板修改(基于sample-sigconf-authordraft-v2.16)
人工智能·llm·科研·latex·cv·overleaf
007张三丰2 个月前
Markdown+Pandoc写论文,完美支持LaTeX公式、Mermaid图表、参考文献
markdown·pandoc·latex·mermaid·mermaid图表·markdown写论文