ubuntu20.04下vim+vimtex编写latex的利器

  • 安装中文环境的latex套件
  • vimtex的安装与配置
    • 安装vimtex
    • PDF阅读器 zathura
    • vimtex 与 zathura的配置
    • 安装conceal需要的插件
    • vimrc配置
  • 一个例子
  • 又一个例子
  • Snippets安装与配置
    • 安装与配置
    • 使用
  • 小结
  • 参考资料

之所以推荐vimtex编写latex是因为,vimtex属于实时编译预览的插件,使用起来更加方便。

  • vimtex   实时编译,并预览
  • vim-latex   只是编译和预览,并不能实时呈现,需要每次 “\ll”"\lv"
  • latex-live-preview   可以实时预览,但是不能编译生成pdf文档

而vimtex 基本上可以说是 vim-latex 和 latex-live-preview的综合,只需要一次 “\ll” ,更新内容后,记得保存,保存后就会刷新pdf文档。但是在当前目录下生成的中间文件有点多,有强迫症的同学会看着不舒服。

Latex的学习,请参考我的另外文章:

  • 中文版Latex常用语法大全教程
  • Latex-TiKZ绘制数学平面几何图教程
  • Latex-pgfplots绘制3维曲线图

在开始正文之前,请看下效果图(左边是vim,右边是zathura)

系统环境

  • ubuntu20.04
  • i3wm,平铺式桌面管理器(我喜爱i3wm的简洁,比ubuntu原生自带的用着舒服)

安装中文环境的latex套件

既然要编写latex文档,那么编译套件必不可少。

或许有的同学会疑惑,不是要使用vimtex编写latex文档吗,为什么要安装latex套件?其实我刚开始接触的时候也会有这样的疑惑,

能看到本文的同学,应该大部分都多少会点c语言吧,这里以ubuntu下C语言编程为例来回答上述疑惑:C语言的编写使用的是文本编辑工具(例如vim,gedit等),编译使用的是gcc。

  • latex套件   就好比是gcc编译套件
  • vimtex   就好比文本编辑工具

安装命令如下:

sudo apt-get install texlive-latex-base latex-cjk-all texlive-latex-extra
sudo apt-get install texlive-xetex texlive-publishers

这里面的部分介绍,请参考我的另外一篇文章(ubuntu20.04下vim+vim-latex+latex-live-preview编写中文latex文档)中的 “安装中文环境的latex套件” 部分,这里不再累述。

vimtex的安装与配置

本文使用vim-plug插件管理器安装vimtex,如果不会使用vim-plug的同学,可以参考我的另外一篇文章(ubuntu20.04安装之后需要做的事),这里不再累述。

安装vimtex

编辑你本地的vimrc文件,录入如下代码

call plug#begin('~/.vim/plugged')
Plug 'lervag/vimtex'
call plug#end()

之后在命令行模式下输入:“PlugInstall”,即可安装vimtex,安装完成后会有finish标志,请注意查看。

注意,安装完vimtex插件后,也要安装vimtex的编辑器 “latexmk”

sudo apt-get install latexmk

PDF阅读器 zathura

vmtex推荐的pdf阅读器是zathura,这里也使用zathura。

“注意”:ubuntu14.04 对要求的zathura的支持不够完整,若有想在ubuntu14.04下实现该环境的同学,请使用其他的pdf阅读器,比如 “okular”

sudo apt-get install zathura xdotool
  • xdotool   是zathura必须的一个模块

vimtex 与 zathura的配置

打开自己的vimrc文件,录入如下配置(包括安装vimtex的配置)

filetype indent oncall plug#begin('~/.vim/plugged')
Plug 'lervag/vimtex'
call plug#end()" vimtex配置
"
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0
set conceallevel=1
let g:tex_conceal='abdmg'
" 对中文的支持
let g:Tex_CompileRule_pdf = 'xelatex -synctex=1 --interaction=nonstopmode $*'

安装conceal需要的插件

有没有被只有的动图惊艳到

里面会把一些latex语法替换成相应的符号,并隐藏语法和 [,],$等,其实这个实时替换是通过如下两个插件实现的,但是有一点,并不是所有的语法都能预览替换,但是也能替换一大部分。

call plug#begin('~/.vim/plugged')
Plug 'KeitaNakamura/tex-conceal.vim', {'for': 'tex'}
Plug 'wjakob/wjakob.vim'
call plug#end()

vimrc配置

安装完相应插件后,需要把插件配置起来,如下是我的完整配置

filetype indent on
set numbercall plug#begin('~/.vim/plugged')
Plug 'lervag/vimtex'
Plug 'KeitaNakamura/tex-conceal.vim', {'for': 'tex'}
Plug 'wjakob/wjakob.vim'
call plug#end()" vimtex配置
"
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0" 对中文的支持
let g:Tex_CompileRule_pdf = 'xelatex -synctex=1 --interaction=nonstopmode $*'
let g:vimtex_compiler_latexmk_engines = {'_':'-xelatex'}
let g:vimtex_compiler_latexrun_engines ={'_':'xelatex'}set conceallevel=2   #这里建议写成2,写1时替换后的效果不好看
let g:tex_conceal='abdmg'

注意: 在vimrc中配好插件后,记得使用 “PlugInstall” 命令安装插件。

一个例子

用vim编写test.tex文件,录入如下内容后保存

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}你好,china \\$f^{(n)}(z) $$\sqrt{x} $$\underbrace{a+b+\cdots+z}_{26} $$\pm $$\sum \bigcup \bigvee \bigwedge \prod \coprod $feichanghao\end{document}

说明: 上述中的 “$ … $” 是开启行内数学模式,用于和文本合在一起使用。也可以使用 “ \ [ … \ ] ” ,使用 “\ [ … \ ]” 的格式如下:

\[
$\sqrt{x}
\]

使用 “\ll” 命令编译该文件时,就会生成如效果图版的pdf文件。

又一个例子

latex使用tikzpicture 来绘制各种数学图形,其使用的包是 “\usepackage{tikz}”

%! Tex program = xelatex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{tikz}
\begin{document}\begin{figure}\begin{tikzpicture}\draw[->](-1.2,0)--(1.2,0)node[left,below,font=\tiny]{$x$};\draw[->](0,-0.2)--(0,1.2)node[right,font=\tiny]{$y$};\draw[dashed](-1.2,1)--(1.2,1);\foreach \x in {-1,-0.5,0,0.5,1}{\draw(\x,0)--(\x,0.05)node[below,outer sep=2pt,font=\tiny]at(\x,0){\x};}\foreach \y in {0.5,1}{\draw(0,\y)--(0.05,\y)node[left,outer sep=2pt,font=\tiny]at(0,\y){\y};}\draw[color=red ,domain=-1.2:1.2]plot(\x,{1/(1+(e^(-1*(\x))))});\end{tikzpicture}\end{figure}
该图的表达式是:
\[
sigmoid(x) = \frac{1}{1 + e^{-x}}
\]
\end{document}

使用 “\ll” 命令编译该文件时,就会生成如下效果图版的pdf文件。

这个绘制数学图形的实现,主要是参考 uncle_gy 的《Latex 绘制函数图像》,十分感谢。

Snippets安装与配置

参考网上大神所述,下面给出我自己的相关配置

安装与配置

我还是使用的vim-plug做的插件安装

call plug#begin('~/.vim/plugged')
Plug 'SirVer/ultisnips'
Plug 'keelii/vim-snippets'  "这是别人的片段库,你也可以配置自己的,也可以根据这个来改
call plug#end()" 片段配置,输入关键字后,按tab键补全片段
let g:UltiSnipsExpandTrigger = '<tab>'
let g:UltiSnipsJumpForwardTrigger = '<tab>'
let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'

使用

keelii的片段库中没有 tex.snippets 文件,而这个文件是latex 文档需要的片段路,命名规则是
根据文件后缀名来加载,tex文件就加载 tex.snippets。

tex.snippets 文件位置: ~/.vim/plugged/vim-snippets/UltiSnips ,我的配置如下:

priority -50 snippet today "Date"
`date +%F`
endsnippetsnippet box "Box"
`!p snip.rv = '┌' + '─' * (len(t[1]) + 2) + '┐'`
│ $1 │
`!p snip.rv = '└' + '─' * (len(t[1]) + 2) + '┘'`
$0
endsnippetsnippet beg "begin{} / end{}" bA
\begin{$1}$0
\end{$1}
endsnippetsnippet mk "Math" wA
$${1}$`!p
if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']:snip.rv = ' '
else:snip.rv = ''
`$2
endsnippetsnippet dm "Math" wA
\[
$1
\] $0
endsnippet

上面的这些片段是参考国外小哥配置的,我们也可以根据自己的需要,在里面增删自己需要的配置。

小结

至此,算是把vim编写latex文档的配置工作完成了,也就是说可以初步达到《1700页数学笔记火了》文章描述的工作环境了,或许在编写的过程中,大家需要自己的代码片段快捷键,也都可以自己手动配置。

注意,也可以把英文关键字,替换为中文字符哦,如果有需要的话,也可以使用 Snippets 配置中文编程语言的开发环境。

下一步的计划是编写一篇《Latex入门教程》,有需要的同学,敬请期待啊……

参考资料

  1. https://blog.csdn.net/uncle_gy/article/details/78856164
  2. https://keelii.com/2018/08/26/vim-plugin-ultisnips-advanced-tips/

ubuntu20.04下vim+vimtex编写latex的利器相关推荐

  1. win10下 vim+vimtex 编辑Latex

    先说一个前提条件:git自带的vim安装在<git_install_dir>Git/usr/share/vim/ 文件夹内,而vimrc文件在<git_install_dir> ...

  2. Ubuntu20.04下vim安装YCM

    1.检查依赖是否满足要求,可以参考VIM的github:GitHub - ycm-core/YouCompleteMe: A code-completion engine for Vim 也可以参考博 ...

  3. Java基础:Ubuntu20.04下JDK1.8安装+配置

    Java基础:Ubuntu20.04 下JDK1.8安装+配置 Step_1: 下载JDK Oracle官网下载地址 点击上方链接,页面顶部是当前最新发布版本的JDK,一定要下拉到页面中下位置,下方提 ...

  4. ubuntu20.04下安装Kdevelop并实现图像ORB特征匹配

    ubuntu20.04下安装Kdevelop并实现图像ORB特征匹配 安装Kdevelop 图像ORB匹配 **CMakelists.txt文件** **使用kdevelop实现orb特征匹配** 安 ...

  5. Ubuntu18.04下vim+latex-live-preview搭建

    Ubuntu18.04下vim+latex-live-preview搭建 环境: Ubuntu18.04LTS,python3 效果 可以实时显示(短暂延迟,可以接受),可显示中文 步骤 1.安装vi ...

  6. Ubuntu20.04下Nginx的.NetCore项目部署流程

    Ubuntu20.04下Nginx的Web项目部署流程:点此跳转 本文旨在介绍在Ubuntu20.04系统中配置Nginx服务,并进行.NetCore项目部署. 第一部分:.NetCore项目部署 参 ...

  7. ubuntu20.04下搭建android 8.1开发环境

    ubuntu20.04下搭建android 8.1开发环境 代码下载 解压代码 安装工具 编译代码 总结 最近主动失业,在家无聊,想搞块开发板玩玩android 9.0系统,但最后只在闲鱼上入了块fi ...

  8. 13.在Ubuntu20.04下,chromium无法输入中文以及如何卸载chromium浏览器

    因为chromium安装比较简单,所以在Ubuntu20.04下直接安装了chromium,但是最近发现,无法在chromium中输入中文了,经过一顿折腾,最终也没搞定,解决办法就是安装Chrome ...

  9. U盘在Ubuntu20.04下只能读取文件不能向U盘复制文件

    背景 U盘在Ubuntu20.04下只能读取文件不能向该U盘复制文件,该U盘在其余电脑上一点问题不存在. Ubuntu系统插入其余U盘也能正确读取,只对该U盘无法处理. 处理过程 在CSDN中找了许多 ...

最新文章

  1. yum 安装报Header V3 DSA signature: NOKEY 的错
  2. 上海石库门建筑群中规模最大的张园 迎来历史性的“重生”
  3. java imapi.jat的使用_springboot+mybatis+Maven+jsp+Quartz整合实战林业厅项目
  4. __init和__initdata
  5. php urledcode_php慎用urldecode函数
  6. Java 面试—乐/悲观锁,wait/notify/notifyAll对比
  7. matlab分段函数怎么画图_关于MATLAB中分段函数的画法
  8. 不学网php线下培训视频教程
  9. 协调端到端的供应链管理——SCM
  10. excel实用快捷键图表_使用快捷键创建Excel图表
  11. 仓库盘点好方法,使用安卓盘点机PDA扫描商品条码进行超市盘点
  12. Python库——PyPDF2介绍
  13. 2017-2018-2 20179225 《密码与安全新技术专题》 第7周作业
  14. redis主从+哨兵
  15. CWE-416: Use After Free(释放后使用)
  16. 下载stm32f4xx标准外设库
  17. truetype字体怎么转换成普通字体_字体 – 如何将位图字体(.FON)转换为truetype字体(.TTF)?...
  18. 土木工程成功转行Python,月入13k,太香......
  19. Red Hat牵头推进NVFS文件系统
  20. edas上传pdf 失败

热门文章

  1. 正是江南好风景,落花时节又逢君。左右最值最大差
  2. php 公历阴历互相转换
  3. Video(flv,mpegts)视频流解决方案
  4. 用c#写一个json的万能解析器
  5. IDEA控制台中文乱码(JAVA
  6. requests 警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verif
  7. 3DSlicer导入医学图像数据
  8. 理解SSL/TLS系列 (五)握手协议
  9. C++ 多项式计算器
  10. Codeforces #635题解