「Zim」- 在笔记中,添加插图

更新日期:2021年02月16日

问题描述

我们需要在笔记中添加插图,但是我们没有采用直接插入图片的方式。因为直接插入图片,在图片的编辑与更新时,非常麻烦。例如,我们需要先找到原文件,然后进行编辑,然后再导出图片,最后粘贴到页面中。这对笔记的更新维护非常不友好,尤其是在图片中有个错别字的时候,为了一点改动需要做很多步骤。

现在,已经有很多工具支持“使用文本生成图片”,比如 GraphvizLaTex、PlantUML 等等,可以通过使用纯文本语言,来生成图片。在 Zim 中,集成这种功能(与在 Markdown 中使用插图类似)。这样,我们就无需编辑图片文件,只需要修改“纯文本”,图片生成由工具来完成,极大简化笔记插图管理,做到所有工作都在当前应用内完成,避免借助过多的其他工具。

该笔记将记录:在 Zim 中,如何在笔记中添加插图、多种类型插图的插入方法,以及常见问题处理。

解决方案

该部分将列举:在 Zim 中与图形、绘图、公式相关的插件,这些插件让我们可以直接在笔记中完成绘图工作,而无需借助外部工具。

Insert Ditaa

该插件依赖于 ditaa 工具,可以在 Zim 中插入和编辑 ditaa 图解。

Insert Equation

该插件依赖于 LaTeX,提供公式编辑器。

Insert GNU R Plot

该插件依赖于 GNU R,绘图工具,使用 GNU R 的 S 语言进行绘图。

Insert GNUplot

该插件是一个科学绘图工具,支持二维和三维图形。它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形,它有两种工作方式,交互式方式和批处理方式,它可以让使用者很容易地读入外部的数据结果,在屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。

Insert Score

该插件依赖于 GNU Lilypond,用于编辑乐谱的。

Insert Screenshot

截图工具,该插件的截图功能依赖于 import(1)(ImageMagick)或者 scrot 命令。

Insert Sequence Diagram

通过该插件可以在笔记中插入与编辑序列图。该插件依赖于 seqdiag 工具,安装方法:

# 在Debian中,可以安装 python-seqdiag 安装,然后重启 Zim 后再启用该插件即可
ap-get install python-seqdiag
pip2.7 install seqdiag

更多使用方法,参考 seqdiag - Sequence Diagram 笔记。

Insert Sequence Diagram / <Insert / Sequence Diagram>

Insert Diagram

该插件基于 GraphViz,可以在 Zim 插入和编辑 GraphViz 图解。因为基于 Graphviz,所以可以使用 DOT 语言来编写图解,因此文章中可以避免插入一些“死图“,维护起来也很方便。

如果要启用该插件,要先安装 Graphviz,并确保 GraphViz 的命令在环境变量 PATH 中可以搜索到。因为该插件需要使用系统中的 GraphViz 命令来生成在文章中显示的图解。

启用该插件后,菜单栏的「Insert」中会有一个「Diagram......」项,点击它会弹出一个图解编辑框。「Preview」可以进行预览图解。编辑完成后点击「OK」就可以在文章中显示图解了。在文章的图解上点击右键,选择「Edit Diagram」可再次编辑图解。功能的截图如下:

Insert Diagram / <Insert / Diagram >

UML diagram(推荐)

该插件集成 PlantUML 工具,通过 PlantUML 在笔记中绘制插图。由于 PlantUML 本身功能强大(GitLab 也支持该工具),可以绘制多种类型的图解(比如 顺序图、时序图、状态图 等等),因此前面很多插件都可以被替代,算得上是终极武器(针对我们的绘图需求)。

该插件非核心插件,需要手动安装,参考 README.adoc 文档。

Insert Image from LaTeX

LaTex/bytefield / Insert Image from LaTeX / <Insert / Image from LaTeX>

Insert Image from Mermaid

Mermaid / Insert Image from Mermaid / <Insert / Image from Mermaid>

对于特定类型插图,应该使用哪个插件?

这里列举出部分「当绘制某种类型的插图时,我们可用的 Zim 插件」

插入时序图

Insert Sequence Diagram / <Insert / Sequence Diagram> / seqdiag - Sequence Diagram

简单的关系图

Insert Diagram / <Insert / Diagram > / Graphviz - Graph Visualization

网络报文、内存字节序列说明图

Insert Image from LaTeX / <Insert / Image from LaTeX> / LaTex/bytefield

参考文献

GitHub/jaap-karssenberg/zim-wiki/Plugins
Plugins · jaap-karssenberg/zim-wiki Wiki


ToC

问题描述

解决方案

Insert Ditaa

Insert Equation

Insert GNU R Plot

Insert GNUplot

Insert Score

Insert Screenshot

Insert Sequence Diagram

Insert Diagram

UML diagram(推荐)

Insert Image from LaTeX

Insert Image from Mermaid

对于特定类型插图,应该使用哪个插件?

插入时序图

简单的关系图

网络报文、内存字节序列说明图

参考文献