記事の目的
Vimを使って英語論文を書くときに便利なPlugin等を紹介します。
Markdownで論文を書いて、Pandocで.docxへ変換することを前提としています。
Vim Pluginの入れ方や管理方法については別の記事をご覧ください。
環境
- Alpine Linux (Docker)
他の色んな環境でも同じようにできると思います。
英語文法チェック
LanguageToolをVimにて使用するためのPluginです。
最後には英文校閲業者に依頼をするとは思いますが、自分でもある程度チェックできるといいですよね。
使用準備
インストール
基本的にはVundle等、お手元のVim Plugin管理ソフトに rhysd/vim-grammarous を加えるだけです。
LanguageTool本体はwget
orcurl
で勝手に入れてくれます。
ただし、Java8+ が必要になりますので、入っていない場合はインストールが必要です。
Java Runtime Environment (JRE) というやつですね。
筆者環境ではRUN apk add -f openjdk11-jre-headless
で入れました。
スペルミス検出の有効化
このプラグインだと何故か、スペルミス(grammar→gramar等)のチェックをしてくれません。
スペルチェック機能は最新のVimに標準搭載されています。
この標準チェック機能をVim-Grammarousと併用するために、~/.vimrc
へ下記を追記します。
letg:grammarous#enable_spell_check=1
使用方法
:GrammarousCheck
ファイル全体の校閲を実行:GrammarousReset
校閲を終了(ハイライト等をオフにする)
以下は、Grammarousのウィンドウへ切り替え(Ctrl+w → j
)た状態でf
ウィンドウに表示されているエラーを自動修正するr
ウィンドウに表示されているエラーを修正せず除外するn
次のエラーのある箇所へ移動する
他にも、特定のエラーを表示しないようにする(受動態を認める等)といった様々な設定ができます。
詳細は公式ページを確認してください。
使用感
今まではOffice Word + Grammarlyプラグインを使っていました。
Grammarlyと比べるとLanguageToolの校正精度はイマイチ、か…?
まぁ最後には業者に校閲してもらうし。
代替Plugin
- dpelle/vim-LanguageTool←自分でLanguageToolをインストールしないといけないようで面倒そうだった
類語検索
適切な英単語を探したり、同じ単語を繰り返し使わないためには類語検索が便利です。
超メジャーなオンライン類語辞典であるThesaurus.comをVimから利用するプラグインです。
インストール
お手元のPluginマネージャーで普通にどうぞ。
ただし、PythonでコンパイルされたVimが必要とのことです。:py print('hello')
か:py3 print('hello')
が動作すればOKです。
使用方法
<Leader>t
で、現在カーソルが乗っている単語の類語が表示されます。
のデフォルトは\
なので、\
→ t
と入力すればOKです。
使用感
便利です。
Wordだと 単語を選択 → 右クリック → (長いメニューから)類義語 とクリックする必要があったので、だいぶ時短です。
代替Plugin
- beloglazov/vim-online-thesaurus←なんかうまく動きませんでした
参考文献リスト作成
Pandoc-citeprocを使うと参考文献リストを自動生成してくれますが、その使い方は少々大変そうです
(実際に使ったことはないので間違っていたら教えてください)。
まず、文献管理ソフト等を用いて引用する論文のリストを.bibファイルに出力します。
ひとつひとつの参考文献にはキーが振られますので、自分の文書の適所にそのキーを入力します。
論文で引用する文献を漏らさずリストアップするのも大変ですし、
キーを確認しながら文書に打ち込んでいくのも面倒です。
zotciteは文献管理ソフトZoteroとVimを連携させ、その手間をかなり削減してくれます。
pandoc-citeprocと一緒に使い方を解説します。
使用準備
Pandoc-citeproc
まずpandocやpandoc-citeprocのインストールですが、こちらの記事が役に立つかと思います。
筆者はDockerで準備したかったので、下記のようなDockerfileを作りました。
FROM alpine:latestRUN 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.
こんな風になります↓
Pandocのフィルターには、pandoc-citeproc
とzotref
を指定してください。
また、csl オプションを使って、DLした.cslファイルを指定してください。
例えば↓こんな感じです。
input-files:-bunsho.mdoutput-file:bunsho.docxcsl:src/frontiers-in-human-neuroscience.cslfilters:-zotref-pandoc-citeproc
以下は挿入されたCitationキーにカーソルを載せた状態で
- <Leader>zi
ステータスバーに論文の情報を表示
- <Leader>za
論文情報のすべてを表示
使用感
とてもいい感じです。
今まではOffice Word + Mendeley Pluginを使っていましたが、同等以上の使い勝手です。
代替Plugin
- uesseu/zosan.vim←Zotciteがうまくいったのでまだ試してない