个人向 Org-mode 笔记记录方案

Table of Contents

  1. 前言

    1. 电子化笔记的必要性

    2. 理科人笔记的特殊需求

    3. emacs 中的 org-mode 是最佳选择

  2. 安装流程

    1. wsl 的安装

    2. Emacs 的安装

    3. Doom-Emacs 的安装

    4. Doom-Emacs 的配置和插件安装

    5. 相关软件的安装

      1. TeX

      2. Mathematica

  3. 存在问题和待办事项

    1. org-download 在 WSL 中无法插入图片

    2. WSLg 的窗口无法管理

    3. eaf 插件安装失败

    4. 配置模板和片段

    5. 学习 org-mode GTD 管理

    6. 配置笔记中运行 mathematica 并显示返回结果

    7. 配置笔记和配置文件的同步

    8. 在手机上阅读笔记和快速记录

    9. 配置 org-roam-ui

    10. 设置 org 文件的导出

  4. 总结

前言

电子化笔记的必要性

作为一个学理科的,日常笔记里都是大量的公式推导,一份笔记公式占比超过80%是常有的事。为此,几年来笔记都是手写,或者在平板上手写。但手写笔记难以检索和整理是固有的缺陷,即使现在一些笔记软件能 OCR 以供搜索,识别的准确率也惨不忍睹。何况我的书写很不美观,排版放飞自我,往往总是看书的时候记下一次笔记,就再也不会回头去看。有时想到一个问题曾经推导过,也找不到记在哪里。因此,使用一个合适的笔记软件记录笔记会有很大益处。

理科人笔记的特殊需求

现有的笔记软件大多数是计算机学科在使用,理科的笔记公式要多得多,也就对笔记软件提出了不一样的需求。这里我简单总结了下我个人的需求:

  • 能方便地输入公式,最好是能自动补全以及拓展到 LaTeX 代码,类似 vscode 中 Tex-Utilities 插件的功能

  • 能方便地在整个笔记库中搜索

  • 支持标签、分类、双链等笔记管理功能

  • 公式能即时渲染,至少要能分块编译,不需要写一个公式就整个文档编译几十秒

emacs 中的 org-mode 是最佳选择

当时在小众软件的论坛上发贴提问,收到的回复有很多。例如

  • latex 以及搜索文件夹内源码的插件

  • obsidian + 公式编辑器

  • vscode 插件 latexworkshop + foam

org-mode 也是其中之一。它成为我的最终选择,不仅因为它能满足上述的所有需求,还有以下的优势:

  • 支持完整的 \LaTeX, 能使用宏包

  • 语法简单,类似于 markdown, 学习成本低

  • 功能强大,能进行 GTD 管理,有强大的表格功能,能在文档内运行代码并输出返回值

  • 能方便导出为 latex, markdown, HTML, PDF 等文件

  • 开源免费,有极其丰富的插件,能实现很多特色功能,如

    • 内置 rime 输入法实现中英文的自动切换

    • org-roam 插件,能对每个笔记块添加双链

    • xenops 插件,能实时预览每一个公式块,还能直接显示 mathematica 之类的代码计算结果

放一个记笔记的效果图


安装流程

emacs 是个深坑,像我这种只想当个笔记软件拿来就用的,最好使用别人做好的配置文件,我选择了 Doom-Emacs。此外,为了更好的 Emacs 性能和更快的 LaTeX 编译速度,我在 WSL2 中进行安装。要是想在 Windows 下直接安装,可以试一下 Scoop, 装应用装依赖会方便很多。

wsl 的安装

这部分网上的教程大把,这里不再赘述。要注意的是 emacs 是 gui 应用,需要一个窗口服务,我是 Windows11 直接用了 WSLg, 不支持的可以装个 VcXsrv 之类的。

Emacs 的安装

我安装系统版本的是 ubuntu 20.04,直接使用 apt 安装就好,默认安装的 Emacs 版本是 27.1。Doom-Emacs 推荐的版本是 27.2,不过没用出什么区别也就不管了。

#+beginsrc sh

sudo apt-get install emacs

#+endsrc sh

Doom-Emacs 的安装

照着 官方文档 来就行,就是 github 网络环境不好就很难访问,wsl2 的代理设置又特别坑,当时因为这个折磨了一天。

先安装依赖 git, fd, ripgrep, 也是用 apt 直接安就好。之后运行

#+beginsrc shell

git clone –depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d

~/.emacs.d/bin/doom install

#+endsrc shell

如果文件夹 .emacs.d 已经有东西了就会报错,要先删除掉或者重命名。运行安装时会联网下载很多包,网络不好会失败很多次,重来就行。在 Windows 下安装还需要手动添加一个字体,会有提示照着做就好。

Doom-Emacs 的配置和插件安装

使用了 Doom-Emacs 后,.emacs.d 下的文件就不要随意去动,个人的配置应该在 .doom.d 下。这里会有三个文件,其中 init.el 是选择启用 doom-emacs 的哪些功能;packages.el 是用户自行添加的插件;config.el 是用户的个人配置文件。

通常安装插件的流程是先看一下 doom-emacs 里有没有这个插件,有的话就在 init.el 里启用,没有就在 packages.el 里添加,然后在 config.el 里设置好正确的配置,最后在运行 doom sync 安装。

我个人安装的插件

  • org-roam-v2, org-download 一个是笔记管理,一个是快速插入图片 自带,在 init.el 中设置 (org +roam2 +dragndrop)

  • auctex, cdlatex latex 语言支持和快速输入 自带,设置 (latex +cdlatex)

  • rime 输入法

  • xenops LaTeX 片段快速预览

  • laas 快速输入 LaTeX 公式

相关软件的安装

TeX

使用了 TeXLive, 直接 apt 安装即可。

#+beginsrc shell

sudo apt install texlive-full

#+endsrc shell

Mathematica

下载 Linux 版的安装文件,格式为.sh,移动到 WSL 硬盘里运行安装就好。

存在问题和待办事项

org-download 在 WSL 中无法插入图片

这个问题暂时没有好的解决方法,在这个链接有相关的讨论,有人使用 PowerShell 将剪贴板的图片复制到磁盘中来添加,实测可行,但每次都会弹出一个窗口,不是很理想。而且拖放功能无法实现。

WSLg 的窗口无法管理

不能使用 Windows 的快速分屏之类的功能,像是一个窗口看 PDF 另一个记笔记这种基础的需求都难以实现。据说微软正在做这个功能,什么时候能做好就不知道了。解决方法想到有几个,但都不是很理想。

  1. 使用 VcXsrv 之类的软件提供 Gui

    缺点是麻烦,不仅配置麻烦,每次使用的时候都会更麻烦。

  2. 多显示器,直接文档一个窗口,Emacs 一个窗口

    没钱买是我的问题,而且外出带笔记本也不能使用

  3. All in Emacs, 把 PDF 阅读、浏览器等功能都做到 Emacs 中

    改变常用软件的使用习惯也很痛苦,而且 Emacs 里的插件效果不一定有外面的好。

    同时,这也引出了下一个问题:插件装不上

eaf 插件安装失败

Emacs 还是很需要折腾的,虽然 doom-emacs 简化了大多数插件的安装,但有些插件还要自己动手来,eaf 就是其中之一。它提供了一套框架能在 emacs 中实现很多功能,比如说浏览器、图片浏览、PDF 阅读、音乐播放、文件管理、org 文件预览等等,可以说功能十分强大。但是我照着官方教程做了几次都安装失败,怀疑是因为网络问题中断了安装导致的。暂时不知道如何解决,有时间的话就再试几次。

TODO 配置模板和片段

要配的一个是 org-capture 的模板,可以快速创建笔记或待办之类的。

还有是快速输入片段,比如笔记中的定义、定理、证明之类的。

TODO 学习 org-mode GTD 管理

org-mode 有着强大的 GTD 管理功能,有时间就学习一下怎么用。

TODO 配置笔记中运行 mathematica 并显示返回结果

这里找到一篇教程,还没有去配置

TODO 配置笔记和配置文件的同步

git 操作还不是很会,现在是把笔记文件夹丢到了 onedrive 里,但是 org-roam 的数据文件还有配置都没有同步。不知道使用什么方式同步好,git 还是 webdav 还是直接备份文件夹。

TODO 在手机上阅读笔记和快速记录

找到一些方案,都有优缺点,有空再去仔细了解和尝试一下

  • Orgzly 通过 webdav 同步。

  • LogSeq

  • 在 Termux 里运行 Emacs

  • 在服务器里架设 Orgnice (买了一年的腾讯云)

  • 在服务器里运行 org-roam-ui

  • ssh 到服务器里的 Emacs

TODO 配置 org-roam-ui

org-roam-ui 是一个 org-roam 笔记的可视化插件,设置好能够直观的看到笔记之间的关系。

TODO 设置 org 文件的导出

现在直接导出到 org-roam 的笔记文件夹里,不方便管理也不方便找。

总结

Emacs 虽说是深坑但使用也没有过于困难。不需要管它的复杂功能,也不用刻意记住快捷键,只是当做笔记软件使用,简单配置后,它已经成为了我用的最顺手的 LaTeX 编辑器和 PC 上的笔记管理软件。

4 Likes

請問linux版的Mathematica是免費的嗎?可以找到下載地址嗎?

地球上的 Mathematica 都不是免费的 :joy:

不是免费的,我们学校购买了 mathematica 12 提供给我们用。
不正规的方法可以看这个教程 mathematica 激活指南

关于窗口管理,感觉 op 可以试试 GWSL,虽然我自己没有使用,但是从官方的 Demo 视频看起来是支持 Window Snap 的(视频时间 1:40 左右)

有空我会去试试的,但感觉这种方法都要舍弃 WSLg 的集成度。

目前还是想几百块买个便携屏组多显示器

logseq 我最近在试用,有 Android 端,但是想和 Windows 端共用一个库文件夹还是挺麻烦的,暂时只用 Windows 端了

安上试了,可以分屏,但是延迟巨大。删一行字都要注意停一下,一直按住就会删过头

我印象中聽數研論壇的人說,mathematica有一個engine版是免費的,但是我現在找不到了。

你说的可能是这个

1 Like

請問這個也能跟正式版一樣用嗎?

我发的这个里面就有介绍,大致上就是少了note book的Mathematica,可以在命令行里调用,也可以用第三方的notebook

发现本论坛越来越多 org-mode 相关内容了。感觉可以设立一个分区了:joy:

或许我们先从给笔记/文档软件设立一个分区开始? @scavin

2 Likes

我不确定 Syncthing 在新版的 Android 系统中可以用,如果不是最新版的 Android 的话,Syncthing 对于 Windows + Android 还是很好用的

1 Like

好家伙,“笔给你,写出来 Mathematica 算我输”的霸气感 :+1:
转念一想,wolfram 把引擎提供给开发者免费使用,是为了提升搭建他们的生态么?可是用户有 mathematica,还需要啥生态?

logseq 的双链和 org-roam-v2 不兼容了,不能管理笔记感觉意义不是很大

我只是把 Mathematica 当计算器用,生态什么的根本不了解
按我查到的说法这个引擎是有 Mathemathca 的全部功能的,只是少了个笔记本界面,算是很良心了