又出现一位“神仙”本科生!
数学课上,全程键盘手打1700页笔记。
速度紧追老师板书,公式、图形一个不落。
效果?请看下图:

笔记被他Po到网上之后,便引来大量围观。
不到一天,相关推文就已经有2000多赞,Hacker News论坛上盖了200多楼。
甚至有网友评论称:“你就是我们需要的英雄!”
他是怎么做到的呢?秘密武器就是:LaTeX+Vim!

用LaTeX写数学公式,我选Vim编辑器。它强大、通用、可扩展性很强。只要是基于文本的任务我都用它,写代码、编辑LaTeX、写markdown都是。
虽然入门阶段的学习曲线超级陡峭,但只要掌握了基本的操作方式,就会欲罢不能。
下面就让我们看一下他完成这一壮举的具体流程,文中提到的工具下载地址,我们都附在了最后。
快速上手教程
我们先看看小哥的工作环境配置。
他用Vim编辑LaTeX的场景,就像下面这样:
![]()
小哥用的操作系统是Ubuntu,使用bspwm作为窗口管理器。在Vim中,使用的LaTex插件是vimtex,它有语法高亮显示、目录视图、同步对象等功能。
然后,使用vim-plug做如下配置:
比如说在下面动图里,隐藏了[,],$之后,没有了它们的干扰,整个文档就更易读。这个功能还会用∩替代bigcap,∈替代in等等。

用LaTeX记笔记,怎么才能像老师写板书一样快?
这就是片段(snippets)发挥作用地方了。
片段
片段是什么?
片段是一小段可复用的文本,由其他文本触发。
例如,输入sign,再按下Tab键,这个单词就会自动扩展为一段签名:




怎么创建片段?使用UltiSnips
管理片段的插件UltiSnips,小哥是这样配置的:
关于sign片段的代码如下:
你也可以在!p ...代码块里使用Python,比如上面box片段的代码就是这样的:
LaTex片段
使用片段编写LaTeX,要比纯手工编写快得多。特别有些非常复杂的片段能帮你大大节约时间,有效防止抓狂。
下面是一些非常有用且容易上手的片段:
环境
想插入一个环境,只需要在一行的开头输入beg。然后键入环境的名称,这个名称在end{}命令中也是一样。按下Tab键,就能够将光标放置在新创建的环境中。

这个片段的代码如下:
行内和数学显示
在记数学笔记的过程中,最常用的两个片段是mk和dm。
它们负责启动数学模式。第一个片段用于“行内数学”,第二个用于“显示数学”。


这个片段的代码如下:
用于显示数学的片段更简单,也更加方便;有了它,你可能再也不会忘记用句号结束方程了。

代码:
小写和上标
另一个很有用的片段就是下标。能够把a1改为a1,把a_12改为a{12}。

这个片段的触发器是使用正则表达式。有两种情况会扩展片段。一是你键入一个字符,后面跟着一个数字,比如[A-Za-z]d;另一种是,一个字符后面有并跟着两个数字,比如[A-Za-z]dd。
至于上标,可以使用td,它就会变成^{}。然而,对于平方、立方和其他一些常见的片段,可以使用专门的代码片段,如 sr、cb等等。
效果图:

代码:
分数
分数是一个用起来最方便的一个片段,扩展的形式如下:
/ / → frac {}{}
3 / → frac {3}{}
4 pi ^ 2 / → frac {4 pi ^ 2}{}
(1 + 2 + 3) / → frac {1 + 2 + 3}{}
(1 + (2 + 3) /)→(1 + frac {2 + 3}{})
(1 + (2 + 3)) / → frac {1 + (2 + 3)}{

第一个片段的代码很简单:
![]()
在第四和第五种示例下,要换一种方法。使用UltiSnips的正则表达式引擎解决不了的,Python可以:
你可以先选择一些文本,然后按Tab键,继续输入、然后再按Tab键。

代码中,使用${VISUAL}变量来表示所选的内容。
Sympy和Mathematica
还有一个很酷但用得不多的片段,是使用Sympy来计算数学表达式。例如,输入sympy,然后按下Tab,可以扩展为sympy | sympy,输入sympy 1 + 1 sympy,按下Tab,可以扩展为2。

片段代码:

片段代码:
后缀片段
除了上边这些之外,后缀片段也很值得分享。例如phat→hat{p}和zbar→overline{z}。还有类似的后缀向量,例如v,.→vec{v}和v.,→vec{v}。.和,的顺序没关系,所以可以同时按下它们两个。

这些片段真的可以节省时间,可以按照和老师写板书一样的顺序来记。
注意,bar和hat前缀也依然可以用,只要以较低的优先级添加它们就行。
这些片段的代码是:
其他片段
此外,小哥还有大约100个常用的片段(下载地址附于文末),大多数都很简单。比如,输入!>变成mapsto,输入->变成 o等等。




特定课程的片段
除了一些常用的片段,也可以针对特定的课程设定片段。例如,在量子力学这门课中,可以设定一些关于bra/ket符号的片段。
<a|→bra{a} <ψ|→bra{psi}="" a="">→ket{a}
|ψ>→ket{psi}
→braket{a}{b}

代码:
上下文
在编写这些片段时需要考虑的一件事是,“这些片段会与长与常用的文本冲突吗?”
例如,在英语中大约有72个单词包含sr,这意味着当输入disregard这个词时,sr会扩展到^2,出现一个di^2egard。
这个问题的解决方案是,为代码片段添加上下文。
通过使用 Vim 的语法突出显示,可以确定UltiSnips是否应该扩展片段,这取决于你使用的是数学还是文本。
现在,你可以将context “math()”添加到只希望在数学上下文中展开的片段中。
请注意,“数学上下文”是一个微妙的东西。 有时你可以使用 ext{…}在数学环境中添加一些文本。在这种情况下,你不需要扩展片段。但是,在以下情况下: [ ext{$...$} ],它们可以扩展。 这就是为什么math上下文的代码有点复杂。下面的动图说明了这些微妙之处。

用笔还是用电脑?
纯手打记下1700页数学笔记,awesome都不够形容了这位小哥了,堪称理工科学生中的“英雄”。
![]()
并非所有人都赞同小哥的做法,强大的高科技工具在传统面前常常会被质疑。
有部分网友认为手写比电脑打字印象深刻,而且要达到这位小哥的熟练程度,恐怕LaTeX和Vim得练习好几年。
既然用笔更方便,为什么还要用电脑来记笔记呢?原因很简单:字太丑!
![]()
如果记下来的内容连自己看的欲望都没有,怎么复习课堂笔记呢?至少用电脑记下来的排版工整,让人赏心悦目。
虽然国外网友争论不休,但在国内只要一个条件就可以彻底否决这个方法:不让带电脑进课堂。
对此,你怎么看?
工具传送门:
Linux和Mac系统自带Vim。
如果你用不惯Vim,还有Emacs、Atom、VS Code、Sublime,它们都有LaTeX插件,总有一款文本编辑器适合你。
想要熟悉更多的LaTeX使用方法,就需要系统地学习,平时多加练习也必不可少。
博文链接:
https://castel.dev/post/lecture-notes-1/
今天的文章 latex编辑器推荐(latex好用的编辑软件)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/53562.html