在 ArchLinux 上愉快地 LaTeXing

Happy LaTeXing

Posted by Junix on March 8, 2019

摘要

这是一篇我在 ArchLinux 下用 vim 愉快地整理笔记的小记。

(其实在 Windows 上我也是用vim 写 LaTeX 的, 但是清真的 powershell 用不惯, 体验整体没有 Linux 好, 不过写得还算流畅)

一些说服你使用 LaTeX (雷太赫) 的理由

效果图 笔记模版用的是 elegantnote

这里补充说明下

  • vim-template: 用 vim 打开任意空文件就会根据你的后缀(如.cpp)出现相应的模版
  • LaTeX 模版: 以.cls 结尾的文本文件,一般/usr/share/texmf-dist/tex/latex/目录下;使用时只要将.cls 之前的该文本文件的名字放在documentclass 的花括号里面就行了。

用料

  • texlive
  • vim 及其插件
    • aperezdc/vim-template
    • lervag/vimtex
    • SirVer/ultisnips 和 honza/vim-snippets
  • mathpix

在 Linux 上安装 texlive

方法一

查阅 texlive-zh-cn 使用 Unix installer 安装: 可使用国内大学的开源镜像站,wget 下载 install-tl,执行 install-tl 脚本。

方法二

使用源上的 texlive
(非 Arch Linux 用户请使用方法一安装,以使用最新版本)

优点
缺点

无法使用 texdoc命令 查看文档 (然而我只是 tex 小白,看完 lshort后, 会用几个宏包, 使用个模版, 熟练地编辑数学公式已经很 happy 啦) 不过可以查看在线文档嘛

vim 插件

vim-template

安装后就可以用了
如用 vim 直接创建一个 .c 结尾的文件就会出现 c文件的模版

当然你可以创建自己的模版文件
在vim配置文件中写入

let g:templates_directory = '$HOME/.vim/templates'

文件的命名模式是”=template=<pattern>
如:我的 templates

Vimtex

我曾 google “vim latex”,一堆使用 vim-latex 的文章。 我个人并不推荐。
而是主张使用 vimtex README 上所推荐的:vimtex 搭配 Ultisnips.

Vimtex 轻量且功能强大,这里只列举几个 to make it work(以后有时间再补充)

  • 普通模式下
    • 使用dsc/dse/ds$/dsd 删除周围的命令(command),环境(environment),计数器(delimiter)
    • 使用csc/cse/cs$/csd 修改周围的命令(command),环境(environment),计数器(delimiter)
    • 使用 tsc/tse使命令(command)或者环境(environment)在加*和不加*之间互相切换
    • 使用tsd/tsD使括号在()\left(\right) 两状态互相切换
    • 使用 <F7> 插入新的命令
  • 插入模式下
    • 使用 ]] 关闭 当前环境或计数器, 如: 在末尾添加end{your environment}
  • 查看对应的 pdf
    :VimtexView

  • 即时预览
    此功能其实是调用 latexmk 之类的一些自动编译脚本, 若有兴趣, 可以查看 latexmk 和 vimtex 的文档; 若你认为太长不看…… 这是(我的插件配置)
    使用 vim 编辑 .tex时 输入:VimtexCompile即可打开预览(当:w时会自动刷新)。
    若嫌此命令太长可以 map 一下。

  • 符号替换
    替代文本里夹杂的 LaTeX 代码为相对应的 Unicode,使 *.tex 更易读。等到你写了近一个 月的 LaTeX,练熟 LaTex 后,可能根本不需要再用即时预览了。这时,此功能会很有用,真正做到所思即所得。
    【注】: 确保你的字体中有相应的 Unicode, 比如 windows 的 Courier_New 就会把 LaTeX 代码映射成豆腐块。
    若你需要更好的效果可以尝试插件PietroPate/vim-tex-conceal

Ultisnip

是个代码块引擎
你还需要代码块合集

前人栽树后人乘凉,我们可以下载别人写好的代码块合集 如 honza/vim-snippets(几乎囊括了所有语言)
当然,也可以在 ~/.vim/UltiSnips/ 目录下创建我们自己的代码块合集作为补充。
如:我的UltiSnips目录

之后我们就可以愉快地使用 snips 啦。
举个例子:输入b<tab> 补全 再按 tab 跳转到下一个。
推荐 https://castel.dev/post/lecture-notes-1/ 的 snips
(后来我基本上抄袭学习他的代码块; 这位比利时小哥没给出他的 vim 配置,有需要的初学者可以参 考我的点文件)

You Complete Me

我参考这篇文章 解决了同时使用 YCM 和 Ultisnips 造成的 tab 键冲突

如果您有更好的办法恳请您不吝赐教

mathpix

原本 archlinuxcn 源上是有 mathpix 的 /(ㄒoㄒ)/~~)
后来由于没有协议,认为不能分发
无奈,从 aur 上下载安装吧

其实有了 snips 不需要 mathpix 了,但是写论文时从已有的电子书上直接抄公式也是 懒癌患者的乐事啊。

若突然忘记某个公式怎么用 LaTeX 写了,可以点这个网站来手写输入

参考

http://mednoter.com/UltiSnips.html
https://segmentfault.com/a/1190000006036434

请给我提意见或建议哈~

若博文中出现错误,请一定要指出啊;或你也用 LaTeX 记笔记、写论文,有什么建议,欢迎在评论区提出~

两只可爱小姐姐的博客链接

这篇看了萌狼姐姐的 知识管理ABC 后有所感悟从而分享自己LaTeXing 的小记到此结束。

我这样做知识管理:

纸质:

  • 存放 A4 纸的文件夹 和 使用彩色标签标记的活页笔记本

    电子:

  • LaTeX: 主要用来整理公式多的笔记
  • 滴答清单
  • Goldendict
  • Anki
  • OneNote: 可以做网页剪藏、导入 pdf 和 M$ office, b站上有很多教程;配合我的二手 surface pro3 体验相当好
  • Simplenote 轻量的笔记软件,可以作私人的 pastebin 用
  • VimWiki: 别人做演讲、演示的时候,在下面速记相当方便
  • inoreader
  • pocket, Liner(火狐插件) 以及火狐书签

惠狐姐姐的 WacomBambooSlate 很不错的样子,可惜我没钱买…