ロボクメモ Robojimamemo

ロボットを研究する、ある学生のメモ。日々、勉強したことをメモ代わりに残して共有します(ROS,C++,python,linux,etc...)

vimでlatexを編集してかっこ良く論文を書きたい

Vimlatexを編集してかっこ良く論文を書きたい

論文を書かなければいけない時期が必ずある。今まではWindowsのtexworksを用いて本文も書いていたが、普段の開発はLinuxのため行き来がかなり面倒に感じていた。そこでvim を用いて一つのターミナルでプログラムの実行と本文を書くことができたらいいと思いいろいろ調べて環境を整えてみた。

環境

 Linux ubuntu16.04

参考にしたサイト

 

qiita.com

qiita.com

設定

    1. latexmk を使用してtexファイルをpdfへ
      tex wikiに簡単にinstall する方法がのっている。

      Latexmk - TeX Wiki

      追記:
      $ sudo apt install latexmk
      $ sudo apt install texlive-lang-japanese
      $ sudo apt install mupdf

    2. latexmkの設定
      ~/.latexmkrcに設定を書くことでコマンドからのコンパイルの設定を決めることができる。
      #!/usr/bin/perl
      $latex = 'platex -kanji=utf-8 -synctex=1 %S';
      $dvipdf = 'dvipdfmx %S';
      $bibtex = 'pbibtex';
      $pdf_mode = 3; # use dvipdf
      $pdf_update_method = 2;
      $pdf_previewer = "start mupdf %O %S";
      $max_repeat       = 5;
      # Prevent latexmk from removing PDF after typeset.
      $pvc_view_file_via_temporary = 0;

      とりあえずここまでで.texを.pdfにできる
      $ latexmk main.tex

    3. vim plugin の準備

      github.com基本的にinstalationにしたがって行う

      $curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

    4. .vimrcに設定を追加

      call plug#begin('~/.vim/plugged')

      Plug 'lervag/vimtex'

      call plug#end()

      "部分的にコンパイルする設定

      function! s:previewTex() range
      let l:tmp = @@
      silent normal gvy
      let l:selected = split(@@, "\n")
      let @@ = l:tmp

      " \"\\documentclass{tADR2e}",
      "" let l:template1 = ["\\documentclass[a4paper]{jsarticle}",
      " \"\\usepackage[dvipdfmx]{graphicx}",
      " \"\\usepackage{amsmath,amssymb,bm}",
      " \"\\pagestyle{empty}",
      let l:template1 = ["\\documentclass{tADR2e}",
      \"\\begin{document}"]
      let l:template2 = ["\\end{document}"]

      let l:output_file = "preview.tex"
      call writefile(extend(extend(l:template1, l:selected), template2), l:output_file)
      call system("latexmk preview.tex")
      call system("mupdf preview.pdf")
      endfunction
      autocmd FileType tex
      \ | vnoremap <buffer> <localleader>la :call <SID>previewTex()<CR>

使用方法

  1. プレビュー 
    \lvでプレビュー 画像ではmupdfを使用

    f:id:shun0612:20180930225036p:plain

  2. 自動コンパイル設定
    \llで自動コンパイルのON/OFFを設定
    これはevinceなどでpdfファイルを開いているとリロードが自動でされてかっこ良い
  3. 部分コンパイル
    vim のvisualモードで囲まれている時に\laで部分コンパイル
    やっていることは単純で,選択範囲をもとにpreview.texを作成して,それをコンパイル します.また,上の例ではvim-latexの関数を使って,ノーマルモード<localleader>laを実行した場合現在のセクションをプレビュー

    LaTeX-suite じゃない vim-latex を使ってvimによるLaTeX作成環境を整える - 睡分不足

    .vimrcで書いた関数のteplate1のところでtexに合わせたテンプレートを書く。
    自分はmupdfをviewerに設定している

    f:id:shun0612:20180930225635p:plain

 

以上