Emacs 上で、あるいは、そもそも PC で、テキストを縦組みで読みたいなどと思うことはめったにない、というよりまったくないかも知れない。しかし、そのようなことができる Emacs Lisp があってもよいのではないだろうか。縦組に整形する、tategaki.el を書いた人もいる。気分転換に、Emacs で文学作品を読んでみるのも悪くはないと思う。aozora.el はスクロールができる縦組みテキストビューアで、青空文庫などの電子テキストを縦組みで読むことができる。
インストールと設定
load-path の通ったディレクトリに aozora.el をコピーして以下のコードを .emacs に追加して下さい。
(autoload 'aozora "aozora" nil t) (autoload 'aozora-bookmark-jump "aozora" nil t) (autoload 'aozora-region "aozora" nil t)
または、require した方が簡単です。
(require 'aozora)
起動方法
ファイル名を聞いてくるので、縦組みで読みたいテキストのファイル名を入力して下さい。
M-x aozora
ブックマークからテキストを選択することができます。
M-x aozora-bookmark-jump
リージョン内のテキストを縦組みに整形したバッファが開きます。
M-x aozora-region
使い方
メニューバーに Aozora メニューが追加されます。すべてのコマンドはメニューから実行可能です。
バインド | コマンド | 機能 |
---|---|---|
SPC | aozora-scroll-up | スクロール(ページ単位) 前置引数をつけた場合には、そのページに移動します。例えば、C-u 100 SPC で100ページ目を表示します。 |
b | aozora-scroll-down | バックスクロール(ページ単位) |
j | aozora-scroll-up-screen | スクロール(1行単位) |
k | aozora-scroll-down-screen | バックスクロール(1行単位) |
M-> | aozora-beginning-of-buffer | 先頭のページに移動 |
M-< | aozora-end-of-buffer | 最後のページに移動 |
H | aozora-move-to-bookmark | ブックマークしたページに移動 |
S | aozora-bookmark-set | ブックマークする ブックマークは10個のテキストに設定できます。溢れた場合には古い順から消えます。ブックマークは ~/.aozora に保存されます。 |
J | aozora-bookmark-jump | ブックマークから他のテキストを選択する |
a | aozora-auto-scroll | オートスクロールのON/OFFをトグル OFFの場合に、前置引数をつけてONにするとオートスクロールのリピート秒を設定できます。例えば、C-u 4 a でリピート秒は4になります。 |
q | aozora-bury-buffer | 終了(バッファメニューなどから選択すれば再び読めます)。 |
カスタマイズ
変更可能な設定項目は以下の通りです。好みで .emacs に追加するとよいでしょう。
縦組みで表示した場合の、1ページの行数と1行の文字数を変更できます。
(setq aozora-vertical-line 15) ; 行数 初期値: 15 (setq aozora-vertical-cols 25) ; 文字数 初期値: 25
文字間の余白・上の余白を変更できます。文字間の余白は、line-spacing にセットされる値です。
(setq aozora-character-separation 5) ; 文字間の余白 初期値: 5 (setq aozora-upper-margin 2) ; 上の余白 行数で指定する 初期値: 2
1バイト文字を全角文字に変換するかどうかを設定できます。
(setq aozora-hankaku-zenkaku t) ; 初期値: t (t 変換する / nil 変換しない)
オートスクロールのリピート秒を変更できます。
(setq aozora-repeat-sec 3) ; 初期値: 3
M-x aozora RET で、ファイルを選択するときのデフォルトディレクトリを設定できます。読みたいテキストをまとめて置いてあるディレクトリを指定するとよいでしょう。
(setq aozora-directory "~/text/aozora/") ; 初期値: nil
ブックマークを保存するパス/ファイル名を変更できます。
(setq aozora-bookmark-file "~/.aozora") ; 初期値: "~/.aozora"
リージョンを縦組み表示する場合のバッファ名を変更できます。
(setq aozora-buffer-name "*aozora*") ; 初期値: "*aozora*"
禁則処理
次の文字をぶら下げ処理しています。
。、」)》>】]〕』>.?!〉})]ーゝゞヽヾ々ぁぃぅぇぉっゃゅょァィゥェォッャュョヵヶ
次の文字を次行に追い出し処理しています。
「(《<【[〔『<:〈{([
それぞれの文字は、縦組みした場合そのまままでは不自然ですから、適当な文字列に変換しています。禁則文字以外で変換処理している文字は次の文字です。
-―━→←↑↓:‥…−=‖|
また、禁則文字数は1文字です。カスタマイズ変数は次の3つです。
変数名 | 処理内容 |
---|---|
aozora-burasage-table | ぶら下げ |
aozora-oidashi-table | 追い出し |
aozora-convert-table | その他の変換 |