TB-LAB BLOG

坪川研究室ブログです!適当に更新します!

卒論か・・・そうだ,emacs で YaTeX + yspel + aspel で作業効率をあげよう

こんにちは!
prune です!最近研究室が静かです.みんな作業してるんですね・・・
僕もそろそろ論文を書かないトナーァカイ

tb-labで提供してるyatexサーバ

texの環境つくるのめんどくさいし,サーバで提供しちゃえと始まった今年度限定のyatexサーバ.
サーバとかいいつつ単純にsshしてemacsYaTextexがかける用になってるだけです.
わりとCUIが嫌いな人が多いみたいで,利用率がどんどん減ってるよ☆★
Sambaでディレクトリ公開して自分が好きなeditorが使えた方が便利だよね.
最近sakuraさんが書いた記事をみてさすがだなーと思ったpruneです.
いまさら直すき0bitなのでまぁいいやってことで!
そもそも,おれvim派だからどうにかしてくれよ・・・とかっていう声は0だったのでいいんですよ!笑
そういう事は対応したいけどね☆★

今回はサーバのemacsでどんなことが設定されてるか知ってもらえればいいと思います!

emacs + YaTeXの環境構築

これは今度の記事で書きたいと思いますwww

実は言うとね?

実は言うと今日は僕の担当じゃないのです!
でも止めたくはないので・・・いま急遽記述してます.

無事に更新されたのでよかったのですが,せっかく記述したので公開します.


yspelとは?

本題に入りたいと思います.今回卒論を記述するにわたり「Wordなら文章校正あるのにー」とかっていう声をいつか聞いたので(僕はWord嫌い).
emacsでも文章校正はあるみたいなので導入してみました.それがyspelです!

導入方法

まずはgitから手にいれます!どうやらyahoo APIを利用してるみたいです.APIの制限も当然あるみたいなので,気をつけてください.
この文章校正が全て正しいということではありません.あくまで参考にしてください.

% cd ~/.emacs.d/
% git clone git://github.com/yama-natuki/yspel
% ls

どうですか?yspleというフォルダーができたと思います.ここにpathを通しましょう.ぼくは簡単にpathが通せるように以下の用にinit.elに記述しています.

;; function load-path
(defun add-to-load-path (&rest paths)
  (let (path)
    (dolist (path paths paths)
      (let ((default-directory
              (expand-file-name (concat user-emacs-directory path))))
        (add-to-list 'load-path default-directory)
        (if (fboundp 'normal-top-level-add-subdirs-to-load-path)
            (normal-top-level-add-subdirs-to-load-path))))))

;; load path
(add-to-load-path "elisp" "conf" "public_repos" "yspel")

上記のように関数化しておくことで,あらたにフォルダを~/.emacs.d内に追加したとしても,add-to-load-pathのところにフォルダ名を記述することで簡単にpathが通ります.
今度は利用できるようにしましょう.pathが通ったらあとは簡単.init.elに下記の記述を.

;; run yspel
(require 'yspel)

そして文章校正したくなったら.M-x yspelで呼び出ししてください.ね?できたでしょ?
pとnで上下に移動します.ウィンドウを消したくなったらqで閉じれます.画面の移動などはC-x oでできます.

aspelとは?

同時にスペルチェックできたらいいよねー!ってことでスペルチェックを導入してみましょう.それがaspelです!

導入方法

文章校正は自分が呼び出したいときだけでいいですが,スペルチェックはリアルタイムでやってほしいですよね?
なのでyatex modeになったときに同時にaspelも起動させてリアルタイムでチェックさせましょう.
今回はCentOSの場合で説明します.まずはyumでaspelをインストールします.aspell-enとやらないと英語の辞書がインストールされないみたい.

# yum -y install aspell-en aspell

今回は日本語混じりのtexのスペルチェックを行いたいのでinit.elにrun with Japaneseの記述をしてあげます.
そしてyatex modeの時にも動作してほしいのでhookしてあげます.

; run with Japanese
(setq-default ispell-program-name "aspell")
(eval-after-load "ispell"
  '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))

;; run on specific mode
(add-hook 'yatex-mode-hook
'(lambda () (flyspell-mode)))

そしてこれだけだと

Error: No word lists can be found for the language "ja_JP"

と怒られてしまうので/etc/aspell.confか~/.aspell.confに下記の記述をしてあげます.
また,texのnewcommandとかしたものをスペルチェックの対象から外す方法もあります.
また逆にチェックしてほしい場合もあります.
これらはこちらでチェックしてね☆★

lang en_US

--rem-tex-command hoge
--add-tex-command huga

動作確認

びふぉーー?あふたーー!
おすぎですっ!ぴーk(ry

Before

f:id:tb-lab:20131218231550p:plain

After

f:id:tb-lab:20131218231607p:plain

emacsで書く人の役に立てば嬉しいです!
クリスマスまであと7日☆★