LoginSignup
10
7

More than 3 years have passed since last update.

論文執筆のためのVim Plugin

Posted at

記事の目的

Vimを使って英語論文を書くときに便利なPlugin等を紹介します。
Markdownで論文を書いて、Pandocで.docxへ変換することを前提としています。
Vim Pluginの入れ方や管理方法については別の記事をご覧ください。

環境

  • Alpine Linux (Docker)

他の色んな環境でも同じようにできると思います。

英語文法チェック

gcheck.png

LanguageTool をVimにて使用するためのPluginです。
最後には英文校閲業者に依頼をするとは思いますが、自分でもある程度チェックできるといいですよね。

使用準備

インストール

基本的にはVundle等、お手元のVim Plugin管理ソフトに rhysd/vim-grammarous を加えるだけです。
LanguageTool本体はwgetorcurlで勝手に入れてくれます。
ただし、Java8+ が必要になりますので、入っていない場合はインストールが必要です。
Java Runtime Environment (JRE) というやつですね。
筆者環境ではRUN apk add -f openjdk11-jre-headlessで入れました。

スペルミス検出の有効化

このプラグインだと何故か、スペルミス(grammar→gramar等)のチェックをしてくれません。
スペルチェック機能は最新のVimに標準搭載されています。
この標準チェック機能をVim-Grammarousと併用するために、~/.vimrcへ下記を追記します。

let g:grammarous#enable_spell_check=1

使用方法

  • :GrammarousCheck ファイル全体の校閲を実行
  • :GrammarousReset 校閲を終了(ハイライト等をオフにする)
    以下は、Grammarousのウィンドウへ切り替え(Ctrl+w → j)た状態で
  • f ウィンドウに表示されているエラーを自動修正する
  • r ウィンドウに表示されているエラーを修正せず除外する
  • n 次のエラーのある箇所へ移動する

他にも、特定のエラーを表示しないようにする(受動態を認める等)といった様々な設定ができます。
詳細は公式ページを確認してください。

使用感

今まではOffice Word + Grammarlyプラグインを使っていました。
Grammarlyと比べるとLanguageToolの校正精度はイマイチ、か…?
まぁ最後には業者に校閲してもらうし。

代替Plugin

  • dpelle/vim-LanguageTool ←自分でLanguageToolをインストールしないといけないようで面倒そうだった

類語検索

thesa.png

適切な英単語を探したり、同じ単語を繰り返し使わないためには類語検索が便利です。
超メジャーなオンライン類語辞典であるThesaurus.comをVimから利用するプラグインです。

インストール

お手元のPluginマネージャーで普通にどうぞ。
ただし、PythonでコンパイルされたVimが必要とのことです。
:py print('hello'):py3 print('hello')が動作すればOKです。

使用方法

<Leader>tで、現在カーソルが乗っている単語の類語が表示されます。
のデフォルトは\なので、\tと入力すればOKです。

使用感

便利です。
Wordだと 単語を選択 → 右クリック → (長いメニューから)類義語 とクリックする必要があったので、だいぶ時短です。

代替Plugin

参考文献リスト作成

ezgif-7-b8a16d4e9ebe.gif

Pandoc-citeprocを使うと参考文献リストを自動生成してくれますが、その使い方は少々大変そうです
(実際に使ったことはないので間違っていたら教えてください)。
まず、文献管理ソフト等を用いて引用する論文のリストを.bibファイルに出力します。
ひとつひとつの参考文献にはキーが振られますので、自分の文書の適所にそのキーを入力します。
論文で引用する文献を漏らさずリストアップするのも大変ですし、
キーを確認しながら文書に打ち込んでいくのも面倒です。

zotciteは文献管理ソフトZoteroとVimを連携させ、その手間をかなり削減してくれます。
pandoc-citeprocと一緒に使い方を解説します。

使用準備

Pandoc-citeproc

まずpandocやpandoc-citeprocのインストールですが、こちらの記事が役に立つかと思います。
筆者はDockerで準備したかったので、下記のようなDockerfileを作りました。

FROM alpine:latest

RUN apk update \
&&  apk upgrade --available \
&&  apk add -f --no-cache \
      wget build-base make cmake gcc gmp curl xz perl cpio coreutils \
      binutils-gold tar gzip unzip libc-dev musl-dev ncurses-dev gmp-dev \
      zlib-dev expat-dev libffi-dev gd-dev postgresql-dev linux-headers cabal \
      ghc \  # 多分こんなにライブラリいらないけど、どれが必要かよくわかんなかった。
&&  cd /usr/bin \
&&  ./cabal new-update \
&&  ./cabal new-install pandoc pandoc-citeproc \

&&  apk del \
      wget build-base make cmake gcc gmp curl xz perl cpio coreutils \
      binutils-gold tar gzip unzip libc-dev musl-dev ncurses-dev gmp-dev \
      zlib-dev expat-dev libffi-dev gd-dev postgresql-dev linux-headers cabal \

Zotcite

zotcite自体はプラグインマネージャーで導入してください。
文献管理ソフトZoteroもインストールしましょう。
Zoteroをインストールしなくても、Zoteroのデータベース(zotero.sqlite)にさえアクセスできれば問題ありません。

筆者の環境(Alpine Linux)ではZoteroがうまくインストールできませんでした。
そこでホストOS(macOS)にZoteroをインストールし、そのデータベースのあるディレクトリをDockerコンテナへマウントしました。
データベースは/Users/ユーザー名/Zoteroにあります(設定で変えられます)。
コンテナ内のマウント先は、root直下にしましょう。
こんな感じです↓

docker run -v /Users/usernonamae/Zotero:/root/Zotero image-no-namae

Pandocを使ってOutputする際、zotrefというfilterを使用します。
zotrefはzotcite pluginに含まれており、自動でPATHに追加される、と説明されています。
しかし筆者環境ではうまくPATHに追加されていなかったので、手動で追加しました。
export PATH=$PATH:/root/.vim/bundle/zotcite/python3 てな具合です。

Citation Style List

投稿先のジャーナルに合わせた形式で引用文献を出力するために、.cslファイルを用意しておきましょう。
こちらのサイトで投稿予定のジャーナルを検索し、.cslファイルをDLしてください。

使用方法

引用を挿入したい箇所にて、(Insert modeで)@を入力します。
続けて、引きたい論文のファーストかラストオーサーの名前を入れます(途中まででもOK)。
例えばSmallwoodという人の論文であれば@Smallwoodと入力します。
さらに続けて、Ctrl-x, Ctrl-o と入力すると、その筆者名にひっかかった論文一覧が表示されます。
上下キーで引きたい論文を選びEnterで決定すると、その論文のキーが入力されます。
Pandocで出力すると、「Smallwood et al. (2009) 」といった感じになります。
また、文書の最後に文献リストが自動で挿入されます
(挿入される場所を指定できると便利だと思うんですが、できないんですかね)。

キーを[]で囲い、[\@Smallwood_Etal_2009] といったようにすると、「(Smallwood et al., 2009)」となります。
@の前にハイフンを入れると出版年だけになりますし、セミコロンで区切って複数の論文を挙げることもできます。
例えばこちら↓を.docxに変換すると、

# Introduction
@XCMPXCW4#Smallwood_Etal_2009 says iroiro.
Are ha koudayo
[see @6VDC62BQ#Smallwood_Obonsawin_Heim_2003;
@XCMPXCW4#Smallwood_Etal_2009]
Their paper [-@XCMPXCW4#Smallwood_Etal_2009] introduced arekore.

こんな風になります↓
ss.png
Pandocのフィルターには、pandoc-citeproczotrefを指定してください。
また、csl オプションを使って、DLした.cslファイルを指定してください。
例えば↓こんな感じです。

input-files:
  - bunsho.md

output-file: bunsho.docx

csl: src/frontiers-in-human-neuroscience.csl

filters:
  - zotref
  - pandoc-citeproc

以下は挿入されたCitationキーにカーソルを載せた状態で
- <Leader>zi ステータスバーに論文の情報を表示
- <Leader>za 論文情報のすべてを表示

使用感

とてもいい感じです。
今まではOffice Word + Mendeley Pluginを使っていましたが、同等以上の使い勝手です。

代替Plugin

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7