使用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 con­fig­ure the con­ceal­ment. This is a fea­ture where LaTeX code is re­placed or made in­vis­i­ble when your cur­sor is not on that line. By mak­ing \[\]$ in­vis­i­ble, they’re less ob­tru­sive which gives you a bet­ter overview of the doc­u­ment. This fea­ture also re­places \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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM