Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laysakura/wysiwyg-tex-el

WYSIWYG editting environment for TeX on Emacs.
https://github.com/laysakura/wysiwyg-tex-el

Last synced: 17 days ago
JSON representation

WYSIWYG editting environment for TeX on Emacs.

Awesome Lists containing this project

README

        

#+TITLE: WYSIWYG-TeX.el
#+AUTHOR: 中谷 翔 (Sho Nakatani)
#+LANGUAGE: ja

#+OPTIONS: ^:nil toc:2
#+STYLE:

* WYSIWYG-TeX.el
#+CAPTION: カーソル位置のプレビュー表示
[[https://github.com/laysakura/WYSIWYG-TeX-el/raw/master/doc/img/screenshot-display-preview.png]]

#+CAPTION: TeX の文法エラーもしっかり通知
[[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/WYSIWYG-TeX-el/raw/master/wysiwyg-tex.el]]
をダウンロード
- [[https://github.com/laysakura/doc-view-fit-to-page/raw/master/doc-view-fit-page.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 に以下の設定を追加 (設定内容は適宜変更してください)
#+BEGIN_SRC emacs-lisp
(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))) ; 全ページプレビュー
#+END_SRC
この他にも設定可能な項目があります (後述)
- 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= しかない場合,

#+BEGIN_SRC sh
ls -l /usr/share/fonts/truetype/ttf-japanese-mincho.otf
#+END_SRC

により, ttf-japanese-mincho.otf が指している実体 (.ttf ファイ
ルのはず) を調査.そして,

#+BEGIN_SRC sh
ln -s <調査した実体のフルパス> /usr/share/fonts/truetype/ttf-japanese-mincho.ttf
#+END_SRC

を実行.自分の場合はこれで doc-view-mode が正常に使えるように
なりました.

- /この動作,バグじゃね?/
- 是非ご報告ください. [[http://twitter.com/#!/laysakura][@laysakura]] までお願いします.

* 既知の問題
- /Bibtexをちゃんと扱ってなくて困る/
- それなりにすぐに対応します.

- /カーソル位置によるページ当てが洗練されてない/
- どこにカーソルがあっても当てられるようにしたいものです.これは時
間掛かる気がします.掛からないかもしれません.

* Follow Me on Twitter
[[http://twitter.com/#!/laysakura][@laysakura]] でお待ちしてますよ!

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