LoginSignup
14
14

More than 5 years have passed since last update.

Emacsで英語論文を書くときに便利なパッケージと設定

Last updated at Posted at 2016-12-10

この記事は.emacs Advent Calendar 2016の11日目です。空いていたので、埋めるような形で書いてみます。

国際会議の論文を書いているときに改めてEmacsの設定を見つめ直す機会があった(論文書きたくないという現実逃避がそうさせた)のでその兼ね合いで見つけたものの紹介などを。
より正確には、Emacsでtexを書いたり、Google翻訳にかけたりするときに便利なパッケージ情報をいくつかまとめたものになります。
ほんとは、追加でやりたいことがあったんですけど、そんなことしてる場合じゃなさそうなので最後にやりたかったことも書いておきます。

YaTeX

YaTeXは、TeXのメジャーモードで日本人のユーザが多いTeXのメジャーモードです。
C-cがYaTeXのprefixキーとして割り当てられており、それに何かのキーを追加して入力することで機能を呼び出すという感じになってます。
機能はめちゃめちゃあるので、気になる人は参考ページのリンクを辿ってください。
ぶっちゃけ導入して間もないので使えている機能は限られていますが、それでも便利だなあと思った機能を紹介しておきます。

コンパイルができる

以下のコマンドでなんとEmacs上からコンパイル可能です。(途中で止めることも可能)

  • latexコマンド起動 → [prefix] t j
  • latex+dvipdfmx起動 → [prefix] t d
  • latexプロセスのkill → [prefix] t k

補完が便利

beginとendの補完とかそういうのは当たり前のようにあるんですけど、何よりも便利なのが数式イメージとかギリシャ文字の補完をしてくれることです。
私は研究の都合でβをめちゃめちゃ使うのでかなり便利でした。
この2つの補完は数式モード内でのみ発動します

  • 数式イメージ補完 → ;
  • ギリシャ文字イメージ補完 → :

設定

設定まわりも紹介。個人の環境にもよると思いますが、デフォルトでplatexが動く人と動かない人がいるようで、私はちゃんと設定してあげる必要がありました。
あと、私はprefixがC-Cっていうのも嫌だったのでC-tに変えてます。

(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq YaTeX-prefix "\C-t")
(setq tex-command "platex")
(setq bibtex-command "pbibtex")
(setq dviprint-command-format "dvipdfmx %s")
;; use utf-8 on yatex mode
(setq YaTeX-kanji-code 4)

latex-math-preview.el

これは名前の通り、数式のプレビューができるパッケージです。YaTeXと相性がいいので、一緒に導入して損はないと思います。
YaTeXと共存させる場合は下記のような設定を入れるとYaTeXのprefixキーと共存できて便利だと思います。

(add-hook 'yatex-mode-hook
         '(lambda ()
         (YaTeX-define-key "p" 'latex-math-preview-expression)
         (YaTeX-define-key "\C-p" 'latex-math-preview-save-image-file)
         (YaTeX-define-key "j" 'latex-math-preview-insert-symbol)
         (YaTeX-define-key "\C-j" 'latex-math-preview-last-symbol-again)
         (YaTeX-define-key "\C-b" 'latex-math-preview-beamer-frame)))
(setq latex-math-preview-in-math-mode-p-func 'YaTeX-in-math-mode-p)

reftex

これは\citeを貼るときにすごい便利です。
C-c [でbibファイルからも参考文献が検索できるので、いちいち確認する必要がないです。
また、Yatexモードと一緒に使う場合はこんな感じで設定しておくといいです。

;; reftex-mode
(add-hook 'yatex-mode-hook 'turn-on-reftex)

google-translate.el

英語で論文書いてるとEmacsとGoogle翻訳行き来するのが面倒になるのでこれは必須です。
Google翻訳も賢くなりましたから、今まさに使い勝手がアップしているといえますね。
しかし、これはデフォルトではどの言語からどの言語に翻訳するのかを入力する必要があります。
そのあたりを解決する設定をるびきち先生が書かれているので、その設定を持ってくると更に便利に活用できます。

(require 'google-translate)
(defvar google-translate-english-chars "[:ascii:]’“”–"
  "これらの文字が含まれているときは英語とみなす")
(defun google-translate-enja-or-jaen (&optional string)
  "regionか、現在のセンテンスを言語自動判別でGoogle翻訳する。"
  (interactive)
  (setq string
        (cond ((stringp string) string)
              (current-prefix-arg
               (read-string "Google Translate: "))
              ((use-region-p)
               (buffer-substring (region-beginning) (region-end)))
              (t
               (save-excursion
                 (let (s)
                   (forward-char 1)
                   (backward-sentence)
                   (setq s (point))
                   (forward-sentence)
                   (buffer-substring s (point)))))))
  (let* ((asciip (string-match
                  (format "\\`[%s]+\\'" google-translate-english-chars)
                  string)))
    (run-at-time 0.1 nil 'deactivate-mark)
    (google-translate-translate
     (if asciip "en" "ja")
     (if asciip "ja" "en")
     string)))
(global-set-key (kbd "C-c t") 'google-translate-enja-or-jaen)

おまけ

上記のパッケージに加えてpopwinというパッケージを入れておくと更に便利になります。
これは、補完等の際にポップアップのようなバッファが現れてその中に補完内容等が表示されるパッケージです。
これがあると、google-translate.ellatex-math-preview.elが更にパワーアップするので最高です。
私は、以下のように設定してます。 1

(require 'popwin)
(setq display-buffer-function 'popwin:display-buffer)
(setq popwin:popup-window-position 'bottom)
(push '("*quickrun*") popwin:special-display-config)
(push '("*Google Translate*") popwin:special-display-config)
(push '("*latex-math-preview-expression*") popwin:special-display-config)

あとがき

せっかく.emacs.dについてなので本当はYaTeX-modeで唯一気になっている下付き文字のサイズが変わらない部分について設定でどうにかするみたいなのをちゃんと調べてやりたかったのですが、論文放置してここまで紹介した上にそこまでやるとさすがに本末転倒すぎるのでやめました。
そのうち気が向いたら加筆するかもしれません。

他にも論文書くならこれ入れたら便利!みたいなパッケージや設定があると知りたいです。

また、今回私はあえてインストール方法については特に言及しませんでした。
それは私がel-getに頼っているため最近M-x package-installとかM-x package-list-packagesとか使ってなくてすっかり忘れているためです。
というわけで、インストールについては各自頑張ってくださいという投げやりな感じで終わりたいと思います。

さてと、添削された論文の修正やろっと・・・

参考ページ

注釈


  1. 私はquickrunも導入していてその結果もpopwinに投げるようにしている 

14
14
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
14
14