使用Vim写LaTeX代码(Vim+Vimtex+Skim)
最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案。我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用。于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目标定为:使用自己喜爱的文本编辑器Vim写tex代码,能够在Vim中方便的编译tex并生成pdf,当tex文件改变时pdf能够实时做出变化。下面就是我为了达成这个目标所做的一些工作。
1.目前的文本编辑器大多都支持markdown语法,也都具有对LaTeX公式的支持。那么在现成的文本编辑器中加入LaTex数学公式似乎是一个很简单的问题。下面进行一个试验:我将在本文本编辑器中输入一下一串公式:
$x^n + x^{n-1} + \cdots + x$
熟悉LaTex的朋友肯定能看出这一串代表什么。看看效果如何 -> $x^n + x^{n-1} + \cdots + x$
可见本文本编辑器(TinyMCE)能够正确识别LaTex数学公式,那么我最初的愿望也就实现了:在博客中能够随心所欲的书写数学公式。但是我又是爱折腾的人,能够在Vim中写LaTex代码并且实时呈现在pdf的变化上成了我下一个目标。
2.使用Vim写tex其实并不困难。Vim是可以正确识别Tex文件格式的,只要你把文件名的后缀改成.tex。那么简单的书写LaTex代码肯定是没问题了,接下来我查找资料得到了这样一个插件:Vimtex,插件安装很简单,常规的Plugin安装即可,安装完成后只需要按下<Leader> ll,.tex文件就会自动编译,并且产生pdf。然而这个插件默认是调用系统默认的pdfviewer接口,所以运行<Leader> ll之后打开了我的PDF Expert并且把pdf正确显示出来了。而且当重新保存.tex文件之后,pdf会实时更新,只不过很慢。于是我查找这个插件的文档,选择在系统中安装skim这个开源的pdfviewer,使用brew cask安装即可。安装完成后在.vimrc配置vimtex插件如下。
Plug 'lervag/vimtex' "帮助写latex
let g:vimtex_latexmk_options='-pdf -pdflatex="xelatex -synctex=1 \%S \%O" -verbose -file-line-error -interaction=nonstopmode'
let g:tex_flavor='latex'
let g:vimtex_view_method='skim'
let g:vimtex_quickfix_mode=0
set conceallevel=1
let g:tex_conceal='abdmg'
最后两行配置了tex文件的隐藏功能,参看这里https://castel.dev/post/lecture-notes-1/
The last two lines configure the concealment. This is a feature where LaTeX code is replaced or made invisible when your cursor is not on that line. By making \[
, \]
, $
invisible, they’re less obtrusive which gives you a better overview of the document. This feature also replaces \bigcap
by by ∩
, \in
by ∈
etc.
3.按理说按照以上的步骤,已经达到了目的。使用Vim写LaTex,使用<Leader> ll 命令实时编译产生pdf 但是在测试时发现对中文编译时会失败。解决方法是在文件头加上这样一串代码:
%! Tex program = xelatex
将编译软件换成对中文支持更好的xelatex,目前没有发现更好的解决办法。
下面看看最终的效果:
确实达到了预期的目标。需要改进的是LaTex语法的自动补全等等,因为自己刚刚入门,留待日后钻研。
下面附上这个文章的核心Vimtex的简易命令说明:
Start compiling the document with '\ll'
Open pdf viewer and/or do forward searching with '\lv'
Stop the running compilation with '\ll' (or 'lk')
To parse the log file for errors and warnings, press '\le'
To clearn auxiliary files, press '\lc' (or '\lC' to remove pdf's)
使用Vim写LaTeX代码(Vim+Vimtex+Skim)的更多相关文章
- 用vim写go代码——vim-go插件
GoImport:导入包 GoImport!:导入远程包 GoImportAs: 导入包并且重命名
- gvim写html代码时如何快速地跳转到一个标签的结束位置: 终极插件: matchit.vim
gvim写html代码时如何快速地跳转到一个标签的结束位置 参考这个vimrc的配置, 里面有一些 很好的东西, 配置很有用, 以前没有用到: http://www.cnblogs.com/wangj ...
- 【转】vim格式化C代码
转自:http://blog.chinaunix.net/uid-24774106-id-3396220.html 在自己的目录下编辑自己的.vimrc, vim ~/.vimrc 添加下面的几行: ...
- Vim 写 iOS App
Vim 写 iOS App 我们都知道 Vim 和 Emacs 都是文本编辑器中的上古神器,你也许用 ctags,cscopes 配合 Vim 完成过大型 C 或者 C++ 的开发,你也许配合过其他插 ...
- linux常用终端指令+如何用vim写一个c程序并运行
在装好ubuntu之后今天学习了一些linux的一些基础知识: windows里面打开命令窗口是win+r,在linux系统里面,ctrl+alt+t打开终端,今天的一些指令都是围绕终端来说的 首先s ...
- 就是要用Vim写Vue
Vim关于Vue的生态链还是很少,不过凑活凑活还是能用的. 缩进 缩进采用的是两个空格,.vimrc配置: au BufNewFile,BufRead *.html,*.js,*.vue set ta ...
- vim(5)vim下wimrc的配置,解决中文乱码问题
解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: ,ucs-bom,gb18030,gbk,gb231 ...
- VIM学习一: VIM命令学习及插件介绍
一.光标移动及编辑命令(含查找替换) [打开关闭窗口] :e file或:open file 打开新文档 :q或者ctrl+w+q 关闭当前视图的窗口 :tab split ...
- 【vim】mac配置vim,molokai配色
效果如下: 首先修改主目录下的.vimrc: "======================================================================= ...
随机推荐
- Java——变量自增(++)自减(--)
//运算符在操作数之后,称为“后增量”.i变量自增,返回自增之前的值;//运算符在操作数之前,称为“前增量”.i变量自增,返回自增之后的值.//自减同理 public static void test ...
- FPGA开发工具套餐搭配推荐及软件链接 (更新于2020.03.16)
一.Xilinx(全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态) (1) Xilinx官方软件下载地址链接: https://china.xilinx.com/supp ...
- Ubuntu虚拟机的安装
1.在VMware中新建虚拟机 注意W10的现在强制升级VMware所以大家,安装低版本的时候提示,升级就区官网下载一个新版本的即可. 这边大家填写自己的就好,要记住自己填写的! 这边我们等一会即可. ...
- [ES6系列-02]Arrow Function:Whats this?(箭头函数及它的this及其它)
[原创] 码路工人 大家好,这里是码路工人有力量,我是码路工人,你们是力量. 如果没用过CSharp的lambda 表达式,也没有了解过ES6,那第一眼看到这样代码什么感觉? /* eg.0 * fu ...
- 微信小程序语音同步智能识别的实现案例
目录 一.背景 二.同声传译插件介绍 1. 微信小程序后台添加插件 2. 微信小程序启用插件 三.语音同步转换的前端实现 1.界面UI与操作 2.代码实现 四.后端SpringBoot实现语音文件上传 ...
- Linux显示行号设置
linux显示行号设置 第一步,打开vim vi ~/.vimrc 第二步,在该文件中加入一行,命令如下: set nu # 显示行号 set nonu # 不显示行号 微信公众号:喵哥解说 公众号介 ...
- Apache Hudi在医疗大数据中的应用
本篇文章主要介绍Hudi在医疗大数据中的应用,主要分为5个部分进行介绍:1. 建设背景,2. 为什么选择Hudi,3. Hudi数据同步,4. 存储类型选择及查询优化,5. 未来发展与思考. 1. 建 ...
- SpringBoot--SpringMVC自动配置
SpringMVC自动配置 1.SpringBoot官方文档对SpringMVC的默认配置: Inclusion of ContentNegotiatingViewResolver and BeanN ...
- windows文本转语音 通过java 调用python 生成exe可执行文件一条龙
我已记不清 我失败过多少次 ,找过多少资料 ,但是功夫不负有心人 ,还是成功了. 所有资料和需要的语音模块的资料以放置在文章末尾, 有些是引用别人的博客的部分内容, 原文是在有道云笔记,所以没有图,请 ...
- css 盒模型、box-sizing 学习笔记
默认情况下,给元素设置的高度和宽度是元素内容区的宽度和高度,给元素加padding 和 border ,元素的实际宽度和高度的计算方式是下面的两个公式: 元素的宽度= 元素的内容区宽度 + 内边距宽度 ...