論文執筆環境をUbuntu 16.04ja上に整える

はじめに_

次に論文執筆環境を整える。論文執筆環境としてはemacs + LaTeXを用いることとする。

私が考えるLaTeXを使った方がよい理由は以下のとおり

  • データがテキスト+マークアップ言語であるため、これからどのようにコンピュータが進化しようと読めなくなることはありえない(データの継承がとても楽)
  • 計算機科学系の学会や会議ではTeXのスタイルファイルを配布しているため、見映えを整えるのに費やす時間が短くて済む(その分中身に注力できる)
  • 参考文献の参照(citation)がとても簡単。BibTeX(jBibTeX)を使うともっと簡単
  • フリーでPDFファイルを作ることができる
  • 数式が書きやすい

自分でスタイルファイルを作るとなるととても難しいが、スタイルファイルが準備してある場合はMS Wordに比べて見映えで苦しむ必要が少なくなる。MS Wordでの数式や参考文献の参照は死ぬほど面倒。

emacsを使いたい理由は以下のとおり

  • aspellというフリーのスペルチェッカーをemacsから動かすことができる
  • epwing形式の辞書をemacsから利用することができる
  • LaTeX執筆支援環境 YaTeXが使える
  • コピー&ペーストがキーボードだけで簡単にできる

emacs 24_

インストール_

Ubuntu 16.04jaではemacs 24が使用可能。そこで、emacs 24を利用する。 まずは、emacsをインストールする。

% sudo aptitude install emacs

次に、Ubuntu 15.10jaで利用されている漢字変換エンジンmozcをemacsから利用するためのソフトウェアをインストールする。

% sudo aptitude install emacs-mozc emacs-mozc-bin

一度、emacsを起動してみる。これで、~/.emacs.d/ が生成される。

% emacs &

現在の設定だと日本語入力機能(Imput Method、scim、uim、ibusなど)とemacsの日本語入力がかぶってしまう。試しに~/tmp.txtを開き、Ctrl+Spaceを押す。すると、mozcで日本語入力モードがスタートする。Ctrl+Spaceはemacsの選択開始を示すキーとかぶっているのでこのままだと困る。

そこで、日本語入力機能をemacs上でOFFにする。~/.Xresourcesの中身を以下のようにして保存する。

emacs.useXIM:false

その後、設定を反映させる。

% xrdb -merge ~/.Xresources

emacsを一度終了し、もう一度emacsを起動する。そして、Ctrl+Spaceではmozcが起動しないことを確認する。

init-loader.elと20-package.elの設置_

init-loader.elという仕組みを使って、設定ファイルを分割して管理する。まず、init-loader.elを取得するために git というコマンドを利用するので、gitをインストールする。Ubuntuでのパッケージ名はgit-core。

% sudo aptitude install git-core

続いて、GitHub:init-loaderより、init-loader.elを取得する。

% cd ~/.emacs.d/
% git clone https://github.com/emacs-jp/init-loader.git
% mkdir inits
% touch init.el

init.elの中身を以下のようにし、保存する。

;; Use init-loader.el
;; ref. https://github.com/emacs-jp/init-loader

;; Load downloaded init-loader.el
;; ref. http://tatsuyano.github.io/blog/2013/03/19/emacs-el-get-init-loader/
(setq load-path
  (append
  (list
  (expand-file-name "~/.emacs.d/init-loader/")
  )
  load-path))

;; Define directory of init files.
(require 'init-loader)
(init-loader-load "~/.emacs.d/inits")

~/.emacs.d/inits/20-packages.el の中身を以下のようにし、保存する。

;; Load package repository
;; ref. http://qiita.com/catatsuy/items/5f1cd86e2522fd3384a0
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

~/.emacs.d/init.elをemacsで起動し、M-x eval-buffer を実行し、設定ファイル群を読み込む。そして、M-x package-list-packages を実行し、パッケージリストが表示されれば、init-loader.el と pakeages.elの設定の成功。

init-loader.elは、~/.emacs.d/inits/ 以下においてある設定ファイルを番号順に読み込む。なので、新しく設定を付け加える場合は「XX-識別名.el」という名前のファイルを設置していく。

日本語関連設定 10-mozc.el の設置_

~/.emacs.d/inits/10-mozc.el の中身を以下のようにし、保存する。

;; Setting for Japanese Input
(set-language-environment "Japanese")

;; Mozcの設定
(require 'mozc)
(setq default-input-method "japanese-mozc")
(setq mozc-candidate-style 'overlay)

;; ターミナルから呼び出したときにターミナルに
;; 渡す文字コード
(set-terminal-coding-system 'utf-8-unix)

;; 新しく開いたファイルを保存しておくときの
;; 文字コード
(prefer-coding-system 'utf-8-unix)

;; emacsをXのアプリケーションへ貼り付ける
;; ときの文字コード
(set-clipboard-coding-system 'utf-8)

~/.emacs.d/init.elをemacsで起動し、M-x eval-buffer を実行し、設定ファイル群を読み込む。適当なファイルで漢字変換を行ってみる。変換中にスペースキーを二回押して、変換候補が表示されたならば、設定は成功。

次に変換時の挙動をegg(端末演習室のemacsの漢字変換機能)と似たような操作に設定する。端末で以下のコマンドをうち、mozcの設定ウィンドウを起動する。

% /usr/lib/mozc/mozc_tool -mode=config_dialog

起動したならば、「キー選択の設定」項目を「ことえり」にして、「OK」を押す。これで日本語変換は終了。

基本設定 01-default.el_

~/.emacs.d/inits/01-default.elとして以下の中身のファイルを置く。

;; 背景と全景とテキストの色
(set-background-color "black")
(set-foreground-color "white")
(set-cursor-color "white")

;; 自動セーブの中止
(setq auto-save-default nil)

;; メニューバーにファイルパスを表示する
(setq frame-title-format
      (format "%%f - Emacs@%s" (system-name)))

~/.emacs.d/init.elをemacsで起動し、M-x eval-buffer を実行し、設定ファイル群を読み込む。

30-whitespace.elを設置する。_

タブや半角スペースを表示する設定を~/.emacs.d/inits/30-whitespace.elとして置く。

(require 'whitespace)

(setq whitespace-style '(
			 face            ; 可視化
			 trailing        ; 行末
			 tabs            ; タブ
			 spaces        ; スペース
			 empty         ; 先頭、末尾のスペース
			 space-mark ; 全角スペースの別記号表記
			 tab-mark    ; タブの別記号表記
			 ))
(setq whitespace-display-mappings
        '(
          (space-mark ?\u3000 [?\u20DE]) ; 全角スペースを別記号で表記
          (tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t]) ; タブを別記号で表記
          ))
  (setq whitespace-trailing-regexp  "\\([ \u00A0]+\\)$")
  (setq whitespace-space-regexp "\\(\u3000+\\)")
  (set-face-attribute 'whitespace-trailing nil
                      :foreground "RoyalBlue4"
                      :background "RoyalBlue4"
                      :underline nil)
  (set-face-attribute 'whitespace-tab nil
                      :foreground "orange red"
                      :background "yellow4"
                      :underline nil)
  (set-face-attribute 'whitespace-space nil
                      :foreground "gray40"
                      :background "light gray"
                      :underline nil))
(global-whitespace-mode 1)

フォントの設定 10-font.el_

フォントも自由に設定できる。たとえば、プログラミング用フォント Rictyを使う場合は以下のようにフォントを設置し、emacsから設定を行う。

% mkdir ~/Ricty

プログラミング用フォント Rictyから、ricty_generator.shとricty_discord_converter.peをダウンロードし、~/Rictyに移動させる。

Migu(ミグ)フォントからMigu 1Mフォントをダウンロードする。migu-1m-XXXXX.zip としてダウンロードした場合以下のようにファイルを~/Rictyへ移動させる。

% unzip migu-1m-XXXXX.zip
% cp migu-1m-XXXXX/migu-1m-*.ttf ~/Ricty

GitHub:Google Font Inconsolataから、Inconsolata-Bold.ttf と Inconsolata-Regular.ttf をダウンロードする。具体的には上述のページのそれぞれのリンクをクリックし、開いたページで「Raw」ボタンをクリックするとダウンロードできる。そして、~/Ricty にコピーする。

% ls *.ttf
Inconsolata-Bold.ttf  Inconsolata-Regular.ttf
% cp *.ttf ~/Ricty

fontforgeコマンドをインストールする。

% sudo aptitude install fontforge

Rictyフォントを生成する。

% cd ~/Ricty
% sh ricty_generator.sh auto

Rictyフォントを設置し、ちゃんとフォントパスに組み込まれているかを確認する。

% sudo mkdir -p /usr/share/fonts/truetype/ttf-ricty
% sudo mv ./Ricty*.ttf /usr/share/fonts/truetype/ttf-ricty
% sudo fc-cache -fv
% fc-list | grep Ricty 

~/.emacs.d/inits/11-font.el の中身を以下のようにする。

;; Use Ricty font
;; ref. http://save.sys.t.u-tokyo.ac.jp/~yusa/fonts/ricty.html
;; How to configure is as follows.
;; ref. http://www.gfd-dennou.org/member/uwabami/cc-env/emacs/frame_config.html
(add-to-list 'default-frame-alist '(font . "ricty-13.5"))
(custom-set-faces
 '(variable-pitch ((t (:family "Ricty"))))
 '(fixed-pitch ((t (:family "Ricty"))))
 )

emacsを一旦終了し、再起動する。

aspellのインストール_

スペルチェッカーのaspellをインストールする。ispellの後継ソフトウェアらしい。

% sudo aptitude install aspell

TeX wiki:Aspellの記述に従い、~/.emacs.d/inits/31-aspell.el に以下の文章を追加する。

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

追加したら、~/.emacs.d/init.elをemacsで開き、M-x eval-bufferというようにemacs上でコマンドを打ち、設定を反映させる。

また、このままだとemacsから使用するときに「Error: No word lists can be found for the language "ja_JP"」というエラーメッセージが出てしまうので、ホームディレクトリに.aspell.confというファイルを用意し、中身を以下のようにする(Diary? 日記のような日記でない日記:aspell.confに従った)。

lang en_US

ためしにemacsで、新しいファイルをつくり、スペルチェックしてみる。

  • emacs上でC-x f (Controlキーを押しながらxキーを押す、その後fキーを押す)でnew.txtを作成
  • 「I wish I were a birb.」と打つ
  • M-x ispell とコマンドを実行
  • 「birb」に対して変換候補がでたならばaspellはちゃんと動いている。

日本語インクリメンタル検索 cmigemoのインストール&設定_

emacs上で文字列検索する際にはC-sというコマンドで検索するが、通常だとアルファベットはアルファベット、ひらがな+漢字はひらがな+漢字でしか検索できない。しかし、migemoというスクリプトをインストールすると、ひらがな+漢字をアルファベット(ローマ字)で検索できるようになり、とても便利。

migemoのインストール

% sudo aptitude install cmigemo

migemoパッケージをインストールする。emacs上で M-x package-list-pakcages 表示されたパッケージ一覧の中からC-sでmigemoパッケージを探す。migemoパッケージが見つかったらそのリンクの上でEnterキーを押す。

emacsが2画面表示になり、下画面に「Install」というリンクができるので、カーソルをそこに合わせてEnterキーを押す。するとパッケージがインストールされる。

~/.emacs.d/inits/32-migemo.el に以下を追加する。

;; 日本語のインクリメンタル検索
;; ref. http://qiita.com/catatsuy/items/c5fa34ead92d496b8a51
(require 'migemo)
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary "/usr/share/cmigemo/utf-8/migemo-dict")
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
(load-library "migemo")
(migemo-init)

追加したら、~/.emacs.d/init.elをemacsで開き、M-x eval-bufferというようにemacs上でコマンドを打ち、設定を反映させる。

日本語 LaTeX_

Ubuntu 16.04jaにおいては以下のコマンドで日本語TeX環境を整えることができる。インストール時間はネットワーク回線の帯域にもよるが20分弱かかる。

% sudo aptitude install texlive texlive-lang-cjk xdvik-ja

確認_

埼玉大学工学部情報システム工学科LaTeX用学位論文テンプレート(非公式)からファイルをダウンロードし、コンパイルおよびPDFファイルを作成できるかを確かめる。

% git clone https://github.com/yuichigoto/tex-template-ics.git
% cd tex-template-ics/Jpn/BMthesis
% platex sample.tex
% xdvi sample.dvi & (Warningはでるが気にしない)
% dvipdfmx sample
% evince sample.pdf &

yatexのインストール_

LaTeX形式のファイル作成支援環境 yatex のインストール。

% sudo aptitude install yatex

~/.emacs.d/inits/33-yatex.elの中身を以下のようにする。。

;; YaTeX
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist (append
  '(("\\.tex$" . yatex-mode)
    ("\\.ltx$" . yatex-mode)
    ("\\.cls$" . yatex-mode)
    ("\\.sty$" . yatex-mode)
    ("\\.clo$" . yatex-mode)
    ("\\.bbl$" . yatex-mode)) auto-mode-alist))

追加したら、~/.emacs.d/init.elをemacsで開き、M-x eval-bufferというようにemacs上でコマンドを打ち、設定を反映させる(設定が反映されない場合はemacsを再起動する)。

LaTeX+YaTeXの使い方はこちらをどうぞ。

先ほどの tex-template-ics/Jpn/BMthesis/sample.tex をemacsで開き、YaTeXモードになっているかを調べる。

図やグラフ作成ツール_

inkscapeのインストール_

% sudo aptitude install inkscape

gnuplotのインストールと設定_

% sudo aptitude install gnuplot

gimpのインストール_

# aptitude install gimp

戻る_