【漫漫科研路\LaTeX】使用Vim撰写科研论文

漫漫科研路 同时被 3 个专栏收录
21 篇文章 2 订阅
16 篇文章 0 订阅
4 篇文章 0 订阅

工欲善其事,必先利其器。

本文介绍如何使用Vim作为编辑器进行科研工作。一般来说,在学术界,使用Vim来写论文的人应该很少。即使是在工程界,大部分也都是使用的是各种IDE,使用Vim来编写代码的也属少数。大多数科研工作者一般都是使用WinEdtLyxTeXstudio等集成IDE,其中Lyx所见即所得的效果比较好。

我最早接触LaTeX是在大二暑假数学建模的时候,当时是使用的WinEdt。后来大四毕业设计的时候,果断选择LaTeX来编写毕业论文。读博之后,实验室普遍推荐用Lyx,我还是用的WinEdt。一方面,用的顺手了比较熟悉;另一方面,论文提交的时候有的要求LaTeX源代码,使用Lyx的话还得转换。又过了一年,偶然间发现了Sublime Text这款比较好的编辑器,于是想着使用Sublime+TexLive+SumatraPDF的组合,并安装了相关插件。相比于WinEdt,使用Sublime Text3写论文有两大好处:

主题可自由选择,语法高亮清晰,可读性好
可视化效果好,鼠标悬停在行间公式或图片处既可以预览

又过了两年,决定以后去工程界发展,开始学习熟悉所谓的编辑器之神,便考虑将所有的科研任务使用Vim中使用,这其中就包括了C/C++,LaTeX,Python文件等编辑及运行。下图给出了使用Vim编写论文的基础环境:
在这里插入图片描述


下面我通过介绍一些写作比较好用的插件和相关的vimrc配置,来说说使用Vim进行论文编写的一些特点:

lervag/vimtex插件

vimtex是写LaTeX的主要插件,具体使用可以在Vim中输入命令 :help vimtex,其中最主要的命令如下:

  • \ll :编译.tex文件;

  • \lv: 查看生成的pdf文件,正向索引,即会用黄色高亮PDF中对应光标在源文件的位置。反向索引:鼠标焦点在PDF,按下快捷键command(Ctrl)+shift,单机或者双击鼠标;
    在这里插入图片描述
    正向索引:输入:\lv即可得下图:
    在这里插入图片描述

  • \lc: 清除编译过程中产生的中间文件,有时编译错误的时候需要清除这类文件

  • \lt: 打开论文中的label目录,继而可以根据label进行跳转,如下图所示:
    在这里插入图片描述
    具体在.vimrc的配置如下:

"----------------Configuration for LaTeX---------------"
"Type help vimtex for detailed information
let g:tex_flavor='latex'
let g:vimtex_view_method='skim' "Use Skim as the pdf viewer
let g:vimtex_view_automatic=1
let g:vimtex_quickfix_mode=2
let g:vimtex_quickfix_autoclose_after_keystrokes=1
set conceallevel=2
let g:tex_conceal='abdmg'
let g:vimtex_quickfix_autojump=1
let g:vimtex_compiler_latexmk = {
    \ 'options' : [
    \   '-xelatex',
    \   '-verbose',
    \   '-file-line-error',
    \   '-synctex=1',
    \   '-interaction=nonstopmode',
    \ ],
    \}

let g:vimtex_complete_ignore_case=1
let g:vimtex_complete_close_braces=1

"In insert mode show the details, show the math equations othewise
autocmd FileType tex inoremap jk <esc>:set conceallevel=2<cr>
autocmd FileType tex nnoremap i :set conceallevel=0<cr>i
autocmd FileType tex nnoremap s :set conceallevel=0<cr>s
autocmd FileType tex nnoremap a :set conceallevel=0<cr>a
autocmd Filetype tex setlocal nofoldenable

"-------set the shortcuts for compiling, viewing, and cleaning .tex files
autocmd FileType tex nmap <leader>b  \ll
autocmd FileType tex nmap <leader>v \lv
autocmd FileType tex  nmap <leader>c \lc
autocmd FileType tex nmap <leader>t \lt

xuhdev/vim-latex-live-preview 插件

该插件可以实现实时预览,但是目前来说,我使用skim和zathura阅读器效果都不太好,容易出现卡顿现象。该插件在.vimrc的配置如下:

"----------Settings for xuhdev/vim-latex-live-preview
autocmd Filetype tex setl updatetime=15 "To set the update time for live view
let g:livepreview_previewer='open -a skim'

若要使用该功能可以在Vim输入命令 :LLPStarPreview


sirver/ultisnipshonza/vim-snippets自定义代码块插件

其中,ultisnips需要自己定义替代规则,而vim-snippets提供了常用的一些代码块。安装这两个插件需要在.vimrc中添加相应代码:

Plugin 'sirver/ultisnips'
Plugin 'honza/vim-snippets'

其中调用补全的快捷键设置如下:

let g:UltiSnipsExpandTrigger = '<tab>'
let g:UltiSnipsJumpForwardTrigger = '<tab>'
let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'

对于不同类型的文件都有不同的.snippets,比如tex.snippets文件中就是关于LateX文件的一些常用代码块,其目录位于/Users/tengweitw/.vim/bundle/vim-snippets/UltiSnips/tex.snippets (MacOS系统)。查看tex.snippets 文件,我们可以看到几个科研写作中比较常用的代码块:

  • 在插入模式下,在句首输入b或者begin之后按Tab键,会补全整个\begin…\end环境
    在这里插入图片描述
  • 在插入模式下,输入fig后按Tab键,会补全整个插入图片的代码段
    在这里插入图片描述
  • 在插入模式下,输入sec或者sub后按Tab键,会补全章节\section{}(\subsection{})并添加label
    在这里插入图片描述
    该文件中还有一些其他快捷代码块,都比较好理解,可自行查看。当然我们也可以自己在这个文件中添加自定义的代码块,我最常用的就是插入行内公式代码块,添加如下代码即可:
snippet mk "Math" wA
$${1}$`!p
if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']:
    snip.rv = ' '
else:
    snip.rv = ''
`$2
endsnippet

该代码块的作用是,当我们输入mk时,自动添加行内公式环境,并且鼠标位于$$中间。这里不需要按Tab键,因为代码中的A(uto)意味着自动补全。注意这里使用mk是因为以mk为首的英文字母不常见。 关于如何自定义代码块,请读者自行网上搜索。


  • 0
    点赞
  • 3
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;">期末</span><span style="font-size:14px;background-color:#fbeeb8;">考点</span><span style="font-size:14px;">都对应</span><span style="font-size:14px;background-color:#fbeeb8;">详解视频</span><span style="font-size:14px;">,</span><span style="font-size:14px;"><span style="color:#e03e2d;">基础阶段</span></span><span style="font-size:14px;">内容全面,语言通俗易懂(翻译书中的语言为</span><span style="font-size:14px;background-color:#fbeeb8;">人话)</span><span style="font-size:14px;">,</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;">老师精心研究</span><span style="font-size:14px;background-color:#fbeeb8;">百份</span><span style="font-size:14px;">考卷,总结每一个考点,同时结合你肯定可以听懂的骚话,</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;background-color:#fbeeb8;">扫清你的数据库系统盲区</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;"><span style="color:#e03e2d;">真题阶段</span></span><span style="font-size:14px;">为你提供</span><span style="font-size:14px;background-color:#fbeeb8;">解题思</span><span style="font-size:14px;">,培养你的</span><span style="font-size:14px;background-color:#fbeeb8;">解题思维</span><span style="font-size:14px;">,同时</span><span style="font-size:14px;background-color:#fbeeb8;">点明考点</span><span style="font-size:14px;">,结合文档进行重点解读,加深你的印象.</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;color:#3598db;">只为你的高分,我们交个朋友!让每位学生都可以学的起!!</span> </h4> <p> <span style="font-size:14px;color:#3598db;"><img src="https://img-bss.csdnimg.cn/202103040423318088.png" alt="" width="788" height="450" /></span> </p>
©️2021 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值