/WYSIWYG-TeX-el

WYSIWYG editting environment for TeX on Emacs.

Primary LanguageEmacs Lisp

WYSIWYG-TeX.el

WYSIWYG-TeX.el

https://github.com/laysakura/WYSIWYG-TeX-el/raw/master/doc/img/screenshot-display-preview.png

https://github.com/laysakura/WYSIWYG-TeX-el/raw/master/doc/img/screenshot-display-errlog.png

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 を再起動

使い方

  1. Emacs で TEX ファイルを作成
  2. メジャーモードが tex-mode (あるいは,別の自分で hook をかけたモー ド) であることを確認
  3. TeX のフォーマットに従い文章をしたためる
  4. 地の文 にカーソルを置き, \C-c\C-p (wysiwyg-tex-show-preview)
  5. カーソル周辺のプレビューが別のバッファに表示される. TeX が誤ってい れば,エラーログバッファが表示される.
  6. 更に TeX ファイルを開いているバッファで \C-cp (wysiwyg-tex-show-whole-preview)
  7. 全ページのプレビューが別のバッファに表示される. 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) は失敗します.

      ともあれ,よく使う操作にコツが必要なのも考えものなので,バー ジョンアップにご期待ください.

  • TeX ファイルがあるディレクトリに沢山ファイルが出てきて邪魔
    • ごめんなさい. TeX 中で指定した画像ファイルなどのパスの解決が楽 なので,同じディレクトリに沢山中間ファイルを置いてしまっています. あくまでも中間ファイルなので,ことあるごとに削除して大丈夫です.
      rm -f wysiwyg-tex-files*
              

      でお願いします.

  • タイプセットは成功してるっぽいのに,組版結果が表示されない
    • 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 が正常に使えるように なりました.

  • この動作,バグじゃね?
    • 是非ご報告ください. @laysakura までお願いします.

既知の問題

  • Bibtexをちゃんと扱ってなくて困る
    • それなりにすぐに対応します.
  • カーソル位置によるページ当てが洗練されてない
    • どこにカーソルがあっても当てられるようにしたいものです.これは時 間掛かる気がします.掛からないかもしれません.

Follow Me on Twitter

@laysakura でお待ちしてますよ!

更新履歴

  • v1.2: プレビュー画像をバッファウィンドウに合わせられうようにした
  • v1.1:
    • 分割した TEX ファイルに対応
    • 同ファイル名を持つ異なる2ファイルのプレビューを同時に作成できな い問題を修正
  • v1.0: 公開開始