前言
在学习过程中记笔记的方式因人而异,就载体而言,有实体纸张和电子文档两类。我在整理范畴论方面笔记时,两种都有尝试,思考过程中的写写画画自然是纸张最好,在正式整理上,电子文档相比厚厚的纸张,优势不言自明。markdown
在一般的电子文档格式中体验是最好的,用处也最广泛:写博客、软件文档、需求文档......笔者使用过的编辑器主要有:
这些编辑器很强大,但有一个不好的点:容易让人陷入配置旋涡。笔者面对浩如烟海的配置选择,会很好奇,恨不得每种配置都试一遍,今天觉得这个配置好,明天发现那个主题也不错,这对于写作本身来说是有害的,会让人分心,我想这也是极简文化兴起的某种因素吧?!(好像偏离了主题😂)言归正传,笔者在记数学类笔记时,发现了 markdown
格式的诸多不便:
- 论述格式支持差。数学中有定义、推论、定理、引理、证明等不同的论述环境,这些论述使用的字体,字号等都有差异(部分原因是从美观上考虑)。在
markdown
中,我没找到方便的插件。 - 专业图形表达缺失。数学论述中,图形化表达的重要性不言自明。就拿交换图来说,
markdown
很难直接做出这种图:
3.不支持排版模版导入。学术论文、杂志、书籍都需要各式各样的排版,markdown
显然不支持。
所以,我投入了 latex
的怀抱!
Latex 编辑方式
latex
文档编辑主要有云端和本地两种方式。云端推荐 overleaf 这个网站,不仅模版多多,还对接各种学术杂志,搞科研大杀器!缺点是只能导出为 pdf
格式,且编译时间有限制,如果文本量过大,需要开会员延长编译时间。本人有 html
输出格式的需求,所以选择了本地化。
Mac 安装 Latex
安装没啥好说的,去 MacTex 官网下载软件即可。
VSCode 相关插件配置
我安装了几个普遍使用的插件
- LaTeX Workshop 代码补全功能
- latexindent 代码格式化
这里需要对插件进行配置,我的配置如下:
{
// "latex.linter.enabled": false,
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.showContextMenu": true,
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatex"
]
},
{
"name": "PDFLaTeX",
"tools": [
"pdflatex"
]
},
{
"name": "BibTeX",
"tools": [
"bibtex"
]
},
{
"name": "LaTeXmk",
"tools": [
"latexmk"
]
},
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "pdflatex -> bibtex -> pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
],
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk"
],
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
"editor.unicodeHighlight.allowedLocales": {
"zh-hans": true,
"zh-hant": true
},
"latex-workshop.latexindent.path": "/Library/TeX/texbin/latexindent",
}
这里需要注意的是,编译中文文档,要使用 xelatex
这个编译器。
总结
对于 latex
笔者的接触时间不长,不过其强大之处深深吸引了我。纵然在学术文章撰写上不乏有 Quarto、Typst 等新兴势力,但 latex
凭借生态上的优势依然是主流选择。
PS:补一张自己范畴论笔记的图:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。