Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

論文執筆のためのVim Plugin

$
0
0

記事の目的

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へ下記を追記します。

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をインストールしないといけないようで面倒そうだった

類語検索

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: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.

こんな風になります↓
ss.png
Pandocのフィルターには、pandoc-citeproczotrefを指定してください。
また、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


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>