WYSIWYG-TeX.el は, Emacs 上で TeX を WYSIWYG (What You See Is What You Get) 編集するための拡張です.
- いま編集しているページの仕上がりが,2キーストロークで確認できる (設定によっては1キーストローク!)
- 全ページプレビューも,2キーストロークで実現
- TeX の文法エラーもしっかり教えます
- TeX 編集中に Emacs を離れる必要がなくなります!!
- TeX 環境
- doc-view-mode が正常に使えること (Emacs 23 以降には標準で入っています)
- https://github.com/laysakura/WYSIWYG-TeX-el/raw/master/wysiwyg-tex.el をダウンロード
- https://github.com/laysakura/doc-view-fit-to-page/raw/master/doc-view-fit-page.el もダウンロード
- wysiwyg-tex.el と doc-view-fit-page.el を,ロードパスの通ったディレクトリに置く
- wysiwyg-tex.el と doc-view-fit-page.el を以下のようにバイトコンパイル
\M-x byte-compile-file [RET] /path/to/wysiwyg-tex.el \M-x byte-compile-file [RET] /path/to/doc-view-fit-page.el
- ~/.emacs に以下の設定を追加 (設定内容は適宜変更してください)
(eval-after-load 'cl '(require 'wysiwyg-tex)) (add-hook 'tex-mode-hook ; <.tex編集で使うモード>-hook '(lambda () ;; 細かいカスタマイズ (setq wysiwyg-tex-tex2dvi-command "platex" ; TEX から DVI に変換するコマンド (デフォルト "latex") wysiwyg-tex-using-color-package t ; TeX でいつも \usepackage{color} をしているか (デフォルト nil) wysiwyg-tex-typeset-3-times t ; タイプセットを3回繰り返すか (デフォルト t) wysiwyg-tex-doc-view-fit-preview 1 ;; 1: プレビューの幅をバッファウィンドウに合わせる (デフォルト) ;; 2: プレビューの高さをバッファウィンドウに合わせる ;; 3: プレビューがバッファウィンドウに収まるように幅か高さを合わせる ;; それ以外: プレビューの大きさ自動調整をしない ) ;; tex-mode のみで有効なキーバインド (local-set-key "\C-c\C-p" 'wysiwyg-tex-show-preview) ; 編集中ページのみプレビュー (local-set-key "\C-cp" 'wysiwyg-tex-show-whole-preview))) ; 全ページプレビュー
この他にも設定可能な項目があります (後述)
- Emacs を再起動
- Emacs で TEX ファイルを作成
- メジャーモードが tex-mode (あるいは,別の自分で hook をかけたモー ド) であることを確認
- TeX のフォーマットに従い文章をしたためる
- 地の文 にカーソルを置き, \C-c\C-p (wysiwyg-tex-show-preview)
- カーソル周辺のプレビューが別のバッファに表示される. TeX が誤ってい れば,エラーログバッファが表示される.
- 更に TeX ファイルを開いているバッファで \C-cp (wysiwyg-tex-show-whole-preview)
- 全ページのプレビューが別のバッファに表示される. TeX が誤ってい れば,エラーログバッファが表示される.
設定可能な変数は,
\M-x customize [RET] -> Wysiwyg Tex
で確認できます.また, wysiwyg-tex.el のソース中の “defcustom” で定 義された変数でもありますので,ソースで確認したい方はそちらをどうぞ.
- プレビューの表示されたバッファの操作方法がよく分からない
- そのバッファ上で
\M-x describe-mode [RET]
で使い方が出ます.
- そのバッファ上で
- \C-c\C-p (wysiwyg-tex-show-preview) で, TeX ファイルに問題はない
のにタイプセットがエラーになったり,全然別のページが表示される
- なるべく地の文にカーソルを置いて \C-c\C-p
(wysiwyg-tex-show-preview) を実行してください.
内部の処理を少し知って頂ければ, \C-c\C-p
(wysiwyg-tex-show-preview) をするときのカーソル位置のコツがつか
めると思います.
内部的には,カーソル位置にマーカーを設定して,そのマーカーの位置
を中間ファイルの PS ファイルから検出することで,カーソルのあるペー
ジを特定しています.
そのマーカーは大雑把に言って,
\mbox{.,.,.}
という形をしています. すなわち, \mbox{} を挿入しても大丈夫な位置にカーソルがあるとき に \C-c\C-p (wysiwyg-tex-show-preview) を実行してください とい うことになります. また,マーカーのリテラルは
.,.,.,
なので,もしも自分で TEX ファイル中に
.,.,.
と書いた部分があれ ば, \C-c\C-p (wysiwyg-tex-show-preview) は失敗します.ともあれ,よく使う操作にコツが必要なのも考えものなので,バー ジョンアップにご期待ください.
- なるべく地の文にカーソルを置いて \C-c\C-p
(wysiwyg-tex-show-preview) を実行してください.
内部の処理を少し知って頂ければ, \C-c\C-p
(wysiwyg-tex-show-preview) をするときのカーソル位置のコツがつか
めると思います.
内部的には,カーソル位置にマーカーを設定して,そのマーカーの位置
を中間ファイルの PS ファイルから検出することで,カーソルのあるペー
ジを特定しています.
そのマーカーは大雑把に言って,
- TeX ファイルがあるディレクトリに沢山ファイルが出てきて邪魔
- ごめんなさい. TeX 中で指定した画像ファイルなどのパスの解決が楽
なので,同じディレクトリに沢山中間ファイルを置いてしまっています.
あくまでも中間ファイルなので,ことあるごとに削除して大丈夫です.
rm -f wysiwyg-tex-files*
でお願いします.
- ごめんなさい. TeX 中で指定した画像ファイルなどのパスの解決が楽
なので,同じディレクトリに沢山中間ファイルを置いてしまっています.
あくまでも中間ファイルなので,ことあるごとに削除して大丈夫です.
- タイプセットは成功してるっぽいのに,組版結果が表示されない
- doc-view-mode が正常に使える状態か確認してください.
\C-x\C-f で適当な PS ファイルを開いてみて,画像として表示されな
ければ, doc-view-mode を使える状態にする必要があります.
これに関しては関知する必要はないのでしょうが,自分も同じ状態になっ て解決したので,その症状と解決方法を記しておきます.
- doc-view-mode の裏で呼ばれる GhostScript が
/usr/share/fonts/truetype/
からttf-japanese-mincho.ttf
を使うのにもかかわらず,ttf-japanese-mincho.otf
しかない場合,ls -l /usr/share/fonts/truetype/ttf-japanese-mincho.otf
により, ttf-japanese-mincho.otf が指している実体 (.ttf ファイ ルのはず) を調査.そして,
ln -s <調査した実体のフルパス> /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
を実行.自分の場合はこれで doc-view-mode が正常に使えるように なりました.
- doc-view-mode の裏で呼ばれる GhostScript が
- doc-view-mode が正常に使える状態か確認してください.
\C-x\C-f で適当な PS ファイルを開いてみて,画像として表示されな
ければ, doc-view-mode を使える状態にする必要があります.
- この動作,バグじゃね?
- 是非ご報告ください. @laysakura までお願いします.
- Bibtexをちゃんと扱ってなくて困る
- それなりにすぐに対応します.
- カーソル位置によるページ当てが洗練されてない
- どこにカーソルがあっても当てられるようにしたいものです.これは時 間掛かる気がします.掛からないかもしれません.
@laysakura でお待ちしてますよ!
- v1.2: プレビュー画像をバッファウィンドウに合わせられうようにした
- v1.1:
- 分割した TEX ファイルに対応
- 同ファイル名を持つ異なる2ファイルのプレビューを同時に作成できな い問題を修正
- v1.0: 公開開始