latex编辑器推荐(latex好用的编辑软件)

latex编辑器推荐(latex好用的编辑软件)p 晓查 乾明 发自 凹非寺 br 量子位 报道 公众号 QbitAI p p 又出现一位 神仙 本科生 p p 数学课上 全程键盘手打 1700 页笔记 p p 速度紧追老师板书 公式 图形一个不落 p p 效果 请看下图 p

大家好,我是讯享网,很高兴认识大家。




讯享网

 <p>晓查 乾明 发自 凹非寺 <br/>量子位 报道 | 公众号 QbitAI</p><p>又出现一位“神仙”本科生!</p><p>数学课上,全程键盘手打1700页笔记。</p><p>速度紧追老师板书,公式、图形一个不落。</p><p>效果?请看下图:</p><p class="f_center"><img src="http://dingyue.ws.126.net/lCxJvyThrLtUJ4W1DD=l1QLPTgwcSM9ywgPmVm5Scjlvu04.gif"/><br/></p><p>不仅排版媲美教科书,而且还能够批注,检索关键词……<br/></p><p>笔记被他Po到网上之后,便引来大量围观。</p><p>不到一天,相关推文就已经有2000多赞,Hacker News论坛上盖了200多楼。</p><p>甚至有网友评论称:“你就是我们需要的英雄!”</p><p>他是怎么做到的呢?秘密武器就是:<strong>LaTeX</strong>+<strong>Vim</strong>!</p><p class="f_center"><img src="http://dingyue.ws.126.net/zc2VfsX=34jCpcgKpQ5jnXmtV8kq1LUnvXNUr9UaFmuja18.gif"/><br/></p><p>这位来自欧洲的小哥非常强烈安利Vim文本编辑器,他说:<br/></p><p><blockquote>用LaTeX写数学公式,我选Vim编辑器。它强大、通用、可扩展性很强。只要是基于文本的任务我都用它,写代码、编辑LaTeX、写markdown都是。<br/>虽然入门阶段的学习曲线超级陡峭,但只要掌握了基本的操作方式,就会欲罢不能。<br/></blockquote></p><p>下面就让我们看一下他完成这一壮举的具体流程,文中提到的工具下载地址,我们都附在了最后。</p><p>快速上手教程</p><p>我们先看看小哥的工作环境配置。</p><p>他用Vim编辑LaTeX的场景,就像下面这样:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F1kSaK98O%3DnCL7pZg7HqHJva7L0AWxt2X0oq68nWLI4h6308compressflag.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p>左边是Vim,右边是pdf阅读器Zathura,它也有类似Vim的快捷键。<br/></p><p>小哥用的操作系统是Ubuntu,使用bspwm作为窗口管理器。在Vim中,使用的LaTex插件是vimtex,它有语法高亮显示、目录视图、同步对象等功能。</p><p>然后,使用vim-plug做如下配置:</p><p></p><p>最后两行控制的是“隐藏”功能。开启了这个功能,除了你光标所在的那一行之外,文本里夹杂的LaTeX代码就都会隐藏或者替换成其他符号。<br/></p><p>比如说在下面动图里,隐藏了[,],$之后,没有了它们的干扰,整个文档就更易读。这个功能还会用∩替代bigcap,∈替代in等等。</p><p class="f_center"><img src="http://dingyue.ws.126.net/7TpkRjjgZiY2gFe2hVlxmrN2tds6Dp2isKO2=agzMAG6308.gif"/><br/></p><p>设置完成,接下来就到了整个教程的精华所在:<br/></p><p><strong>用LaTeX记笔记,怎么才能像老师写板书一样快?</strong></p><p>这就是片段(snippets)发挥作用地方了。</p><p>片段</p><p><strong>片段是什么?</strong></p><p>片段是一小段可复用的文本,由其他文本触发。</p><p>例如,输入sign,再按下Tab键,这个单词就会自动扩展为一段签名:</p><p class="f_center"><img src="http://dingyue.ws.126.net/rWFQRPjzqiS7eNh7hkITAqbbucKxe1ZRQXsGMAdk3lk6308.gif"/><br/></p><p>片段也可以是动态的:输入today并按下Tab键,它就会变成当前的日期。<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/XmdgBKAgEtV45Y0lmjdExgh16BCf4zlUp6Wp=X=ifHLJn11.gif"/><br/></p><p>而输入box按Tab,就会出现一个框,还会随着输入文字自动变大。<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/NtwwzGl5tUhn2IUgj1HdnyGH52UXh9aZas9873Nwjn5kL11.gif"/><br/></p><p>片段,甚至可以嵌套在另一个片段里用:<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/oZ7u=srXx5ZkMiQbSM22arLktxBCF3Tmd7JGVPArkmeSc11.gif"/><br/></p><p><strong>怎么创建片段?使用UltiSnips</strong><br/></p><p>管理片段的插件UltiSnips,小哥是这样配置的:</p><p></p><p>关于sign片段的代码如下:</p><p></p><p>对于动态的片段,你可以将代码放在``之间, 在片段扩展的时候,就会运行。下面的例子,就是用 bash 格式化当前日期:date+%f。<br/></p><p></p><p>你也可以在!p ...代码块里使用Python,比如上面box片段的代码就是这样的:</p><p></p><p>这些 Python 代码块将被变量 snip.rv 的值替换。在这些代码块中,你可以访问代码段的当前状态,例如t[1]包含第一个制表位,fn是当前文件名等等。<br/></p><p>LaTex片段</p><p>使用片段编写LaTeX,要比纯手工编写快得多。特别有些非常复杂的片段能帮你大大节约时间,有效防止抓狂。</p><p>下面是一些非常有用且容易上手的片段:</p><p><strong>环境</strong></p><p>想插入一个环境,只需要在一行的开头输入beg。然后键入环境的名称,这个名称在end{}命令中也是一样。按下Tab键,就能够将光标放置在新创建的环境中。</p><p class="f_center"><img src="http://dingyue.ws.126.net/MqEAWSpyGdACT65JrA6Ul1uXCBz2YhBZRDxCWK2nbRJAJ11.gif"/><br/></p><p>这个片段的代码如下:</p><p></p><p>其中,b表示这个片段只会在代码行的开头展开,A代表自动展开,也就是说不用按Tab键了。制表位(Tab stop)——也就是你可以通过按Tab 和Shift+Tab跳转到的位置——用$1、 $2、......来表示,最后一个用$0。<br/></p><p><strong>行内和数学显示</strong></p><p>在记数学笔记的过程中,最常用的两个片段是mk和dm。</p><p>它们负责启动数学模式。第一个片段用于“行内数学”,第二个用于“显示数学”。</p><p class="f_center"><img src="http://dingyue.ws.126.net/6MbFHQtHPJYpO2t9C0yijbU0oKoWPwWPWUPA9uXt2uyvv11.gif"/><br/></p><p>代码行内的数学片段是“智能的”:它知道什么时候在$符号后面直接输入一个单词,它会自动加个空格。但如果输入一个非单词的字符,它就不会添加空格了,比如在““$p$-value”情况下,是这样的:<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/RdIkg2GLIEAd9v8zY5fQ83SY9lwbIsEgFNo4z3KCRyDzY11.gif"/><br/></p><p>这个片段的代码如下:</p><p></p><p>第一行末尾的w,意味着这个片段会在单词边界处扩展,例如,hellomk不会扩展,但是hello mk会。<br/></p><p>用于显示数学的片段更简单,也更加方便;有了它,你可能再也不会忘记用句号结束方程了。</p><p class="f_center"><img src="http://dingyue.ws.126.net/EKuDOpmazOLClM=bq1TC9AytaE3gb=lun916MfhjdvU5s12.gif"/><br/></p><p>代码:</p><p></p><p><strong>小写和上标</strong><br/></p><p>另一个很有用的片段就是下标。能够把a1改为a1,把a_12改为a{12}。</p><p class="f_center"><img src="http://dingyue.ws.126.net/HmNgh6qFgkIR3C3mCMTYan2wLO2QCdrCEdfnwGjvTr6ml13.gif"/><br/></p><p>这个片段的触发器是使用正则表达式。有两种情况会扩展片段。一是你键入一个字符,后面跟着一个数字,比如[A-Za-z]d;另一种是,一个字符后面有并跟着两个数字,比如[A-Za-z]dd。</p><p></p><p>当你使用括号将正则表达式的一部分装在一个组中时,例如(dd),你可以在 Python中通过match.group (i)来使用它们扩展片段。<br/></p><p>至于上标,可以使用td,它就会变成^{}。然而,对于平方、立方和其他一些常见的片段,可以使用专门的代码片段,如 sr、cb等等。</p><p>效果图:</p><p class="f_center"><img src="http://dingyue.ws.126.net/VZpGrmXx2ZkvzmbZIY7EKwr5f=I8D82spfG=KiaTSK0th14.gif"/><br/></p><p>代码:</p><p></p><p><strong>分数</strong><br/></p><p>分数是一个用起来最方便的一个片段,扩展的形式如下:</p><p>/ / → frac {}{}<br/>3 / → frac {3}{}<br/>4 pi ^ 2 / → frac {4 pi ^ 2}{}<br/>(1 + 2 + 3) / → frac {1 + 2 + 3}{}<br/>(1 + (2 + 3) /)→(1 + frac {2 + 3}{})<br/>(1 + (2 + 3)) / → frac {1 + (2 + 3)}{</p><p class="f_center"><img src="http://dingyue.ws.126.net/QkOKmcWYTo20eHGUvbl14SUZJ9vrpne0SPEC0FLhTadoZ14.gif"/><br/></p><p>第一个片段的代码很简单:</p><p></p><p>第二个和第三个示例,可以使用正则表达式来匹配3/、4ac/、6pi^2/、a2/等表达式。<br/></p><p></p><p>看了上边这些,你可能觉得正则表达式太难了。没关系,下面有一个解释得非常直观的图表:<br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2FwxE0b9utXcyt5x4YXUK%3D3icoVuFptQS4Yfn6yVNkIaKl314.png&thumbnail=660x&quality=80&type=jpg"/><br/></p><p>在第四和第五种示例下,要换一种方法。使用UltiSnips的正则表达式引擎解决不了的,Python可以:</p><p></p><p>这里最后要分享的关于分数的片段,能根据你的选择,来生成一个分数。<br/></p><p>你可以先选择一些文本,然后按Tab键,继续输入、然后再按Tab键。</p><p class="f_center"><img src="http://dingyue.ws.126.net/BmoMSlatatVJolJJ4tF6UITAs=vlycFRVD3DtohYeZFKe14.gif"/><br/></p><p>代码中,使用${VISUAL}变量来表示所选的内容。</p><p></p><p><strong>Sympy和Mathematica</strong><br/></p><p>还有一个很酷但用得不多的片段,是使用Sympy来计算数学表达式。例如,输入sympy,然后按下Tab,可以扩展为sympy | sympy,输入sympy 1 + 1 sympy,按下Tab,可以扩展为2。</p><p class="f_center"><img src="http://dingyue.ws.126.net/EfSjaffayX0X0pJL73pQpEzQipQfAudWBgBAIFrBvul1V14.gif"/><br/></p><p>片段代码:</p><p></p><p>用Mathematica,也可以做类似的事情:<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/18TBXzZqlFx1B4F4JAMey7TL8kE90VqyeCDpqRpoA02ap15.gif"/><br/></p><p>片段代码:</p><p></p><p><strong>后缀片段</strong><br/></p><p>除了上边这些之外,后缀片段也很值得分享。例如phat→hat{p}和zbar→overline{z}。还有类似的后缀向量,例如v,.→vec{v}和v.,→vec{v}。.和,的顺序没关系,所以可以同时按下它们两个。</p><p class="f_center"><img src="http://dingyue.ws.126.net/czj4gzeS4Xs1RAeCDr6d=BT8CIgbw7IxBn=1a89ZqlyDn15.gif"/><br/></p><p>这些片段真的可以节省时间,可以按照和老师写板书一样的顺序来记。</p><p>注意,bar和hat前缀也依然可以用,只要以较低的优先级添加它们就行。</p><p>这些片段的代码是:</p><p></p><p></p><p></p><p><strong>其他片段</strong><br/></p><p>此外,小哥还有大约100个常用的片段(下载地址附于文末),大多数都很简单。比如,输入!&gt;变成mapsto,输入-&gt;变成 o等等。</p><p class="f_center"><img src="http://dingyue.ws.126.net/zc2VfsX=34jCpcgKpQ5jnXmtV8kq1LUnvXNUr9UaFmuja18.gif"/><br/></p><p>fun变成f: R o R :,!&gt;变成mapsto,-&gt;变成 o,cc变成subset。<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/kTKDdqKqhKLoFPQnLVfslwFPcUvHsTJDy5rMIMJiV8Agw18.gif"/><br/></p><p>lim变成lim{n o infty},sum变成sum{n = 1}^{infty},ooo变成infty。<br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/IH5bQjZbg140rOqDDljvr9OSrSQE7iXTBv=p3HqupF319.gif"/><br/></p><p class="f_center"><img src="http://dingyue.ws.126.net/MrTI13hjGTdBV7LkkWgBI5mJENcgcZDQsaURlQvpO5Wga19.gif"/><br/></p><p><strong>特定课程的片段</strong><br/></p><p>除了一些常用的片段,也可以针对特定的课程设定片段。例如,在量子力学这门课中,可以设定一些关于bra/ket符号的片段。</p><p>&lt;a|→bra{a} &lt;ψ|→bra{psi}="" a=""&gt;→ket{a}<br/>|ψ&gt;→ket{psi}<br/>→braket{a}{b}</p><p class="f_center"><img src="http://dingyue.ws.126.net/lgI96lYAxzBezwlYdq84wf3fo6M0nUgC59Um2iywenBhU20.gif"/><br/></p><p>代码:</p><p></p><p><strong>上下文</strong><br/></p><p>在编写这些片段时需要考虑的一件事是,“这些片段会与长与常用的文本冲突吗?”</p><p>例如,在英语中大约有72个单词包含sr,这意味着当输入disregard这个词时,sr会扩展到^2,出现一个di^2egard。</p><p>这个问题的解决方案是,为代码片段添加上下文。</p><p>通过使用 Vim 的语法突出显示,可以确定UltiSnips是否应该扩展片段,这取决于你使用的是数学还是文本。</p><p></p><p>现在,你可以将context “math()”添加到只希望在数学上下文中展开的片段中。</p><p></p><p>请注意,“数学上下文”是一个微妙的东西。 有时你可以使用 ext{…}在数学环境中添加一些文本。在这种情况下,你不需要扩展片段。但是,在以下情况下: [ ext{$...$} ],它们可以扩展。 这就是为什么math上下文的代码有点复杂。下面的动图说明了这些微妙之处。</p><p class="f_center"><img src="http://dingyue.ws.126.net/qHYnqPDTQwKWvbTR7vNaOHWVq6MXKWgIlAs3MvIWo7cHg21.gif"/><br/></p><p>除了上述一些片段,你也可以根据自己的需要,来自己添加一些插件或者片段,来提高自己的效率。<br/></p><p>用笔还是用电脑?</p><p>纯手打记下1700页数学笔记,awesome都不够形容了这位小哥了,堪称理工科学生中的“英雄”。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Fe0Yn3oTVciR0Wy4dH4yfVQF7KL2hpb166QioDUudqHLQo21.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p>并非所有人都赞同小哥的做法,强大的高科技工具在传统面前常常会被质疑。</p><p>有部分网友认为手写比电脑打字印象深刻,而且要达到这位小哥的熟练程度,恐怕LaTeX和Vim得练习好几年。</p><p>既然用笔更方便,为什么还要用电脑来记笔记呢?原因很简单:字太丑!</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2FFy6jzf8aLYPOmeDXj5fsjkG8sdv6R8mofA7DKd5hiF8W%3D22.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p>如果记下来的内容连自己看的欲望都没有,怎么复习课堂笔记呢?至少用电脑记下来的排版工整,让人赏心悦目。</p><p>虽然国外网友争论不休,但在国内只要一个条件就可以彻底否决这个方法:不让带电脑进课堂。</p><p>对此,你怎么看?</p><p>工具传送门:</p><p>Linux和Mac系统自带Vim。</p><p>Windows用户安装Vim:<br/>https://ftp.nluug.nl/pub/vim/pc/gvim81.exe</p><p>Vim插件管理:<br/>https://github.com/junegunn/vim-plug</p><p>Vim上的LaTeX插件:<br/>https://github.com/lervag/vimtex</p><p>窗口平铺管理器:<br/>https://github.com/baskerville/bspwm</p><p>管理Vim片段工具:<br/>https://github.com/SirVer/ultisnips</p><p>如果你用不惯Vim,还有Emacs、Atom、VS Code、Sublime,它们都有LaTeX插件,总有一款文本编辑器适合你。</p><p>LaTeX常见数学符号输入方法:<br/>https://en.wikibooks.org/wiki/LaTeX/Mathematics</p><p>想要熟悉更多的LaTeX使用方法,就需要系统地学习,平时多加练习也必不可少。</p><p>博文链接:</p><p>https://castel.dev/post/lecture-notes-1/</p> 

讯享网
小讯
上一篇 2025-04-19 14:30
下一篇 2025-05-02 15:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188306.html