2020年04月24日

Windows上にLaTeX組版環境を構築する

1. 前提となる環境
Windows上で仕事をするときは、「TeX Live」「GNU Emacs」など日常的に使う基本的な道具は、ホームディレクトリ直下に「tools」フォルダを作ってそこにまとめて置いています。
Windowsでは基本的に「C:\Users\username」がホームディレクトリになっているので、道具置き場は「C:\Users\username\tools」で、たとえば「GNU Emacs」であれば「C:\Users\username\tools\emacs」に格納していくイメージです。
できるだけ管理者権限でログインしてない場合でもおなじ環境を構築できるように、理想的には道具置き場フォルダ「C:\Users\username\tools」をそのままUSBメモリにコピーして持ち出し、外出先のWindowsマシンに挿入していつもの環境で仕事ができるようにしたい、という方向で考えています(が、現状はあまりその部分はこだわって解決はしていません・・・)。

C:
+ Users
| + username
| | + tools
| | | + texlive
| | | + emacs
| | | + hunspell
| | | + SumatraPDF
| | | + ...

上記環境を前提としてWindows上でLaTeX組版を使うとすれば、かつて角藤版「W32TeX」にはたいへんお世話になったんだけど、いまならやはり「TeX Live」にしておきたいところ。
以下では、とりあえず「TeX Live」をまるごとインストールして、日本語で組版できる環境を構築するところまでの手順を記述します。

2. インストールの準備とファイルの取得
Installing TeX Live over the Internet」からWindows用のネットワークインストールファイル「install-tl.zip」をダウンロードします。

3. インストール作業
ダウンロードした「install-tl.zip」ファイルを解凍すると「install-tl-2020XXXX」のようなフォルダが生成されるので、そのなかにある「install-tl-windows.bat」ファイルをダブルクリックして実行します。
明示的に右クリックから「管理者として実行」を選択すれば、システム全体へのインストールも可能ですが、通常はユーザ権限でのインストールで問題ないことが多いと思います。
インストール画面では、インストール先やデフォルト用紙サイズ、TeX統合環境のひとつである「TeXworks」をインストールするかどうかを選択できます。
(「高度な設定」ボタンから、さらに詳細なオプションを指定することも可能です。)
標準では(C:)ドライブ直下から作成される「C:\texlive\2020」フォルダにファイルが配置されていきますが、ユーザ権限でインストールするなら自分のホームフォルダ内に置いておけばいいので、インストール先を道具置き場フォルダ内の「C:\Users\username\tools\texlive\2020」に変更します。
用紙サイズは「A4」のままで変更なし、「TeXworks」は「GNU Emacs + YaTeX」などべつの統合環境を使う場合は不要なのでチェックをはずしますが、そのままインストールしてしまってもべつに邪魔にはなりません。
上記設定が終わったら、「install」ボタンをクリックすれば、ファイルのコピーがはじまります。
環境にもよりますが、フルインストールにはかなり時間がかかります(一~二時間)ので、気長に待ちましょう。
インストールが完了したら、「閉じる」ボタンを押してインストール画面を閉じます。

4. インストール後の設定
以上で、「TeX Live」を使った日本語組版環境の構築は完了です。
「スタート」ボタンに「TeX Live 2020」フォルダが登録されており、そこから必要なプログラムへアクセスできます。
各種コマンドへのパスも通っているはずですが、「環境変数の編集」を開いて、ユーザ環境変数「Path」欄に「C:\Users\username\tools\texlive\2020\bin\win32」が追加されていることは確認しておきましょう。
ファイルはすべてこの「texlive」フォルダ以下に格納されており、各種設定ファイルはホームディレクトリに作成される隠しフォルダ「.texlive」に残されます。

・パッケージのアップデート
コマンドプロンプトを開いて、以下のコマンドを入力すれば、パッケージを最新版に一括更新できます。
「スタート」ボタンから「TeX Live 2020」 -> 「TeX Live Manager」を選択して「TeX Live Shell」を起動し、「ファイル」 -> 「リポジトリを読み込む」を選択、「すべてアップデート」をクリックしても同じことができます。
> tlmgr update --self --all


・アンインストール
「スタート」ボタンから「TeX Live 2020」 -> 「Uninstall TeX Live」を選択して、アンインストーラを起動します。
アンインストーラの実体は「C:\Users\username\tools\texlive\2020\tlpkg\installer\uninst.bat」なので、インストール後にファイルを移動した場合などは、このファイルを編集して現在の置き場所を指定することで対応できます。
要はインストール先「texlive」フォルダの削除、環境変数からのパス削除、「スタート」メニューに登録したショートカットの削除です。
設定ファイル用隠しフォルダ「.texlive」は、アンインストーラでは削除されないので、不要な場合は手動で削除しておきます。

5. TeX統合環境の構築
ここまでで「TeX Live」を使った日本語組版環境の構築は完了しているとはいっても、LaTeXファイルを編集しながら各種コマンドをべつべつに実行して、じっさいに組版作業をすすめていくのはたいへんです。
そのため、LaTeXファイルを編集しているエディタから直接コマンドを呼び出して、出力を確認しながら組版作業を効率よくすすめられるように、TeX統合環境というものが準備されています(ふつうはLaTeXファイル編集時の入力支援などの機能もそなえています)。
「TeX Live」といっしょにインストールできる「TeXworks」もそのひとつですが、ほかにも「GNU Emacs」エディタにLaTeX文書編集支援モード「YaTeX」を追加するなど、使用環境や慣れている入力方法におうじてさまざまな選択肢があります。
hatakazuはずっとLinuxメインで「GNU Emacs + YaTeX」を使ってきているので、Windows上にもおなじ環境を構築していますが、Windowsでは「SumatraPDF」というTeX総合環境に最適なPDFリーダも使えて便利です。
「GNU Emacs」のインストールや「YaTeX」の設定、「SumatraPDF」との連携については、また別投稿でまとめていきます。


参考ウェブページ一覧表(順不同)

TeX Wiki
TeX入手法
Microsoft Windows
TeX Live/Windows
LaTex入門
TeX Forum
日本語版『TeX Live ガイド』Git-Hubレポジトリ
TeX Live ガイド 2020 日本語版(PDFファイル)
Free PDF Reader - Sumatra PDF
Yet Another LaTeX mode for Emacs
GNU Emacs - GNU Project
posted by hatakazu at 18:04| Comment(0) | TeXとかEmacsとか | 更新情報をチェックする

2020年04月23日

Windows上の「GNU Emacs」でスペルチェックを利用する

1. 前提となる環境
Windows上で仕事をするときは、「TeX Live」「GNU Emacs」など日常的に使う基本的な道具は、ホームディレクトリ直下に「tools」フォルダを作ってそこにまとめて置いています。
Windowsでは基本的に「C:\Users\username」がホームディレクトリになっているので、道具置き場は「C:\Users\username\tools」で、たとえば「GNU Emacs」であれば「C:\Users\username\tools\emacs」に格納していくイメージです。
できるだけ管理者権限でログインしてない場合でもおなじ環境を構築できるように、理想的には道具置き場フォルダ「C:\Users\username\tools」をそのままUSBメモリにコピーして持ち出し、外出先のWindowsマシンに挿入していつもの環境で仕事ができるようにしたい、という方向で考えています(が、現状はあまりその部分はこだわって解決はしていません・・・)。

C:
+ Users
| + username
| | + tools
| | | + texlive
| | | + emacs
| | | + hunspell
| | | + SumatraPDF
| | | + ...

上記環境を前提として、「GNU Emacs」から利用できるスペルチェッカーを導入する方法を、以下に記述していきます。

2. インストールの準備とファイルの取得
利用できるスペルチェッカーはいろいろありますが、やはり「Aspell」や「Hunspell」が有力な選択肢になります。
ユーザ権限でインストールできるバイナリファイルをさがしてみたところ、「hunspell windows」Git-Hubレポジトリで公開されているものがありましたので、これを使います。
Releases」ページへすすみ、「hunspell-windows-h-1.6.2-1-d-9ec31e4-v2.zip」ファイルをダウンロードします。

3. インストール作業
ダウンロードしたファイルを解凍すると「hunspell-windows-h-1.6.2-1-d-9ec31e4-v2」フォルダができるので、フォルダ名を「hunspell」に変更して、まるごと「C:\Users\username\tools」ヘ移動します。
最終的に、「GNU Emacs」から呼び出すスペルチェックプログラム「hunspell.exe」は、「C:\Users\username\tools\hunspell\bin」フォルダに格納されていることになります。

4. インストール後の設定
「GNU Emacs」ホームフォルダ(「C-x C-f」として開いた小窓に「~/」と入力したときに開くのがホームフォルダ)には隠しフォルダ「.emacs.d」が設置されており、そのなかに「GNU Emacs」の挙動を制御する設定ファイル「init.el」が置かれています。
この設定ファイル「init.el」に、スペルチェッカーを呼び出す設定を記述します。
入力中にリアルタイムでスペルチェックをかけていく「Flyspell」という便利な機能もあるので、それを呼び出す設定も追加してあります。

・「init.el」設定例

;;
;; 1. Hunspellを使う場合
;;
;; Windowsでは、「https://github.com/gromnitsky/hunspell-windows/releases/」から
;; 「hunspell-windows-h-1.6.2-1-d-9ec31e4-v2.zip」をダウンロードする。
;; 「https://sourceforge.net/projects/ezwinports/files/」からも、
;; Windows用バイナリ「hunspell-1.3.2-3-w32-bin.zip」をダウンロードできる。
;; 以下の行をコメントアウトして、上記ファイルを解凍した場所を指定する。
(add-to-list 'exec-path "C:/Users/username/tools/hunspell/bin")
;;
;; Linuxなら、「$ sudo apt install hunspell hunspell-en-us」コマンドでインストールし、
;; 以下の二行をコメントアウトして、環境変数を設定する。「~/.bashrc」に記述でも可。
;; (setenv "DICTIONARY" "en_US")
;; (setenv "WORDLIST" "$HOME/.hunspell_personal_dictionary")
;;
;; 以下の行をコメントアウトして、スペルチェックプログラムにHunspellを指定する。
(setq-default ispell-program-name "hunspell")
;;
;; Hunspellの拡張機能を使う場合は、以下の行をコメントアウトする。
;; (setq ispell-really-hunspell t)
;;
;; Aspellを使う場合
;;
;; Windowsでは、「http://aspell.net/win32/」からWindows用インストーラ
;; 「Aspell-0-50-3-3-Setup.exe」をダウンロードして実行する。
;; 以下の行をコメントアウトして、Aspell のインストールパスを指定する。
;; (add-to-list 'exec-path "C:/Users/username/tools/aspell/bin")
;;
;; Linuxなら、「$ sudo apt-get install aspell aspell-en」コマンドでインストールする。
;;
;; あらかじめホームフォルダに「.aspell.conf」ファイルを作成し、対象言語「lang en_US」を記述しておく。
;; Linuxなら「$ echo "lang en_US" > ~/.aspell.conf」コマンドを実行する。
;; 上記の代わりに、以下の行をコメントアウトしてもO.K.かも。
;; (setenv "LANG" "en_US")
;;
;; 以下の行をコメントアウトして、スペルチェックプログラムにAspellを指定する。
;; (setq-default ispell-program-name "aspell")
;;
;; 以下の行をコメントアウトして、「ispell」を要求する。
(require 'ispell)
;;
;; ほかの辞書を使う場合は、その場所を指定する。
;; (setq ispell-personal-dictionary "C:/Users/username/tools/hunspell/xxxxx")
;; (setq ispell-alternative-dictionary "C:/Users/username/tools/hunspell/xxxxx")
;;
;; 日本語と英語が混ざった文章でスペルチェックを可能にする設定
(eval-after-load "ispell"
'(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
;;
;; 「C-M-$」で単語補完する設定
(global-set-key (kbd "C-M-$") 'ispell-complete-word)
;;
;; Flyspellで自動スペルチェックを実行する設定
;; 基本的には「M-x flyspell-mode」で自動スペルチェックを有効にできるが、
;; ファイル形式によって自動で有効化する設定を追加する。
;;
(mapc
(lambda (hook)
(add-hook hook 'flyspell-prog-mode))
'(
;; コメントのみスペルチェック対象とするFlyspellを自動起動するモードを指定
c-mode-common-hook
emacs-lisp-mode-hook
prog-mode-hook
))
(mapc
(lambda (hook)
(add-hook hook
'(lambda () (flyspell-mode 1))))
'(
;; Flyspellを自動起動するモードを指定
yatex-mode-hook
org-mode-hook
text-mode-hook
))


5. スペルチェッカーの利用方法
「GNU Emacs」での文書編集中に、スペルチェックをかけるによく使うキー操作は、以下のとおりです。





























入力 動作
M-x ispell スペルチェック呼び出し(対象範囲は選択状況に依存)
M-x ispell-buffer バッファ全体をスペルチェック
M-x ispell-region 選択範囲をスペルチェック
M-$ (M-x ispell-word) 選択した単語のスペル確認
C-M-$ (M-x ispell-word-complete) 選択した単語の補完
M-x flyspell-mode 自動スペルチェック(Flyspell)モード起動



参考ウェブページ一覧表(順不同)

http://gromnitsky.blogspot.com/2016/09/emacs-251-hunspell.html
https://texwiki.texjp.org/?Hunspell
posted by hatakazu at 18:42| Comment(0) | TeXとかEmacsとか | 更新情報をチェックする