Table of Contents
前言
电子化笔记的必要性
作为一个学理科的,日常笔记里都是大量的公式推导,一份笔记公式占比超过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 另一个记笔记这种基础的需求都难以实现。据说微软正在做这个功能,什么时候能做好就不知道了。解决方法想到有几个,但都不是很理想。
-
使用 VcXsrv 之类的软件提供 Gui
缺点是麻烦,不仅配置麻烦,每次使用的时候都会更麻烦。
-
多显示器,直接文档一个窗口,Emacs 一个窗口
没钱买是我的问题,而且外出带笔记本也不能使用
-
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 上的笔记管理软件。