論文執筆環境を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の使い方はこちらをどうぞ。
- LaTeXの使い方(埼玉大学学内LAN限定)
先ほどの tex-template-ics/Jpn/BMthesis/sample.tex をemacsで開き、YaTeXモードになっているかを調べる。
図やグラフ作成ツール_
inkscapeのインストール_
% sudo aptitude install inkscape
gnuplotのインストールと設定_
% sudo aptitude install gnuplot
gimpのインストール_
# aptitude install gimp