「CarbonEmacsAndYatex」の版間の差分

提供: MacWiki
移動: 案内検索
(関連ページ)
(83.233.30.101 (会話) による編集を WikiSysop による版へ差し戻し)
行1: 行1:
 
Carbon Emacs で [[YaTeX]] を使うためのノウハウ。
 
Carbon Emacs で [[YaTeX]] を使うためのノウハウ。
  
This is great! , <a href="http://www.twine.com/user/kx1u9t9">teen couple first fuck</a>, [url="http://www.twine.com/user/kx1u9t9"]teen couple first fuck[/url], http://www.twine.com/user/kx1u9t9 teen couple first fuck, <a href="http://www.profilactic.com/profile/sr1f9r9">janet jackson nude video clip</a>, [url="http://www.profilactic.com/profile/sr1f9r9"]janet jackson nude video clip[/url], http://www.profilactic.com/profile/sr1f9r9 janet jackson nude video clip, <a href="http://www.livevideo.com/LukeTrind">young teen girls masturbating</a>, [url="http://www.livevideo.com/LukeTrind"]young teen girls masturbating[/url], http://www.livevideo.com/LukeTrind young teen girls masturbating, <a href="http://dev.communityserver.com/members/nv1f9j9/default.aspx">tiny sexy bikinis</a>, [url="http://dev.communityserver.com/members/nv1f9j9/default.aspx"]tiny sexy bikinis[/url], http://dev.communityserver.com/members/nv1f9j9/default.aspx tiny sexy bikinis, <a href="http://www.twine.com/user/claudeguirie">canadian adult toys</a>, [url="http://www.twine.com/user/claudeguirie"]canadian adult toys[/url], http://www.twine.com/user/claudeguirie canadian adult toys,
+
== 関連ページ ==
 +
 
 +
*[[YaTeX]]公式サイト - http://www.yatex.org/
 +
*Mac Emacs JP プロジェクトの [[YaTeX]] ページ - http://macemacsjp.sourceforge.jp/?YaTeX
 +
*TeX Wiki の [[YaTeX]] ページ - http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?YaTeX
  
 
== インストール ==
 
== インストール ==

2009年1月11日 (日) 05:46時点における版

Carbon Emacs で YaTeX を使うためのノウハウ。

関連ページ

インストール

makeコマンドを利用するためには DeveloperTools をインストールしておく必要があります。

  • OSX付属のEmacs

makefileの一部を次のように編集し、$ sudo make install、 $ sudo make install-infoを実行。

PREFIX = /usr
EMACS = emacs
EMACSDIR= ${PREFIX}/share/${EMACS}
INFODIR = ${PREFIX}/share/info

makefileの一部を次のように編集し、$ sudo make install、 $ sudo make install-infoを実行。

PREFIX = /usr/local
EMACS = emacs
EMACSDIR= ${PREFIX}/share/${EMACS}
  • Carbon Emacs (パッケージ)

メニューの「Help > Carbon Emacs Package > Net-install > YaTeX」を選ぶと、ネットワーク経由でインストールできます。

  • うまくいかない場合は、makefileの一部を次のように編集し、$ sudo make install、 $ sudo make install-infoを実行して下さい。(## Carbon Emacs on Darwin (Sample) と書いてある付近の行をコメントアウト) /Applications/Emacs.app の部分は、自分が Emacs をインストールした場所に置き換えて下さい。
EMACS  = /Applications/Emacs.app/Contents/MacOS/Emacs
PREFIX = /Applications/Emacs.app/Contents/Resources
EMACSDIR = ${PREFIX}
$ sudo apt-get install task-tetex

で利用可能になります。 以下の設定がほぼ反映されています。

  • インストールの確認

インストール後、基本設定を行ってから拡張子.texのファイルを開いて以下を確認してください。

    • モード行に「やてふ」と表示
    • C-c ?としてから、ミニバッファからsectionなど適当なLaTeXのコマンドを入力するとYaTeX HELPが読める
    • C-h i (またはM-x info)でinfoにYaTeXの項目がある

基本設定

  • YaTeXを起動するには.emacs.elに以下を追加してください。
(setq auto-mode-alist
      (cons (cons "¥¥.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
  • platexコマンドの設定
(setq tex-command "platex")
    • 漢字コードが EUCの場合はオプションを追加して下さい(小川版パッケージではコマンドplatex-eucが利用できるが内容は同じ)。
(setq tex-command "platex --kanji=euc --fmt=platex-euc")
  • プレビュアの設定

プレビュアに渡すファイル名(の拡張子)が、設定されているプレビュアの種類をみるようになりました(yatex1.72.za以降)。用意されていないプレビュアを利用するときは再定義が必要です。最新版 1.72.ze 以降ではTeXShopやPreview.appなども定義されています。

(defvar YaTeX-dvi2-command-ext-alist
  '(("xdvi" . ".dvi")
    ("ghostview¥¥|gv" . ".ps")
    ("acroread¥¥|pdf¥¥|Preview¥¥|TeXShop" . ".pdf")))

(setq dvi2-command "open -a Mxdvi")

TeXShopのプレビュアをYaTeX(Emacs)から利用できます。TeXShop環境設定パネルの外部エディタの「プレビューを自動更新」にチェックを入れます。TeXShopのプレビュアはDVIファイルではなくPDFファイルをプレビューするので、platexとdvipdfmxを組み合わせてたスクリプトを利用する必要があります(日本語を扱わないならpdflatex)。TeXShopにはそのようなスクリプトが用意されているので、.emacs.elの設定は以下のようになります。

(setq tex-command "~/Library/TeXShop/bin/platex2pdf-sjis"   ; eucの場合はplatex2pdf-euc
     dvi2-command "open -a TeXShop")
    • Preview

MacOSX10.3 Pantherでは付属のPreviewが高速なPDFビュアーです。

(setq tex-command "dotexshop"  ; eucの場合は"dotexshop-euc"
     dvi2-command "open -a Preview")
    • dotexshopは小川版パッケージにはいっている以下のようなスクリプトです。漢字コードがEUCの場合はplatexにオプション--kanji=euc --fmt=platex-eucを追加します。
#!/bin/sh
tex=$*
dvi=`/usr/bin/basename "$tex" ".tex"`
/usr/local/bin/platex $tex
/usr/local/bin/dvipdfmx $dvi

上のdotexshopで/usr/local/bin/platexの代わりにlatexmkと書くと、相互参照がちゃんとするまでplatexやbibtexなどを繰り返し行ってくれる。 latexmk自体はperlスクリプトであり、スクリプト内でplatexにオプションを指定する。下は漢字コードがEUCで、かつsrc-specialを利用する場合。

$latex  = 'platex --kanji=euc --fmt=platex-euc --src-specials';

また、jbibtex、mendexを使うように変更したほうがよいかも。

$bibtex  = 'jbibtex';
$makeindex  = 'mendex';

これらを .latexmkrc に書き込むことで platex, bibtex mendex を繰り返し行うようになります。

      • src-specialについてはhttp://www.nn.iij4u.or.jp/~tutimura/tex/src-special.html を参照。
      • プレビューにxdviを利用するには.emacsで
(setq dvi2-command "xdvi") 
      • xdviでsrc-specialを利用するには /usr/local/share/texmf/xdvi/XDviで以下の行のコメントアウトを外す。
*editor: emacsclient --no-wait +%l %f
  • プレビューの印刷

(setq dviprint-command-format "適当なコマンド")

    • どのようなコマンドで印刷するのが一般的でしょうか?
  • 漢字コードの設定(1 SJIS, 2 JIS, 3 EUC)
(setq YaTeX-kanji-code 1)
  • エラーメッセージの漢字コード。タイプセット時のエラー出力が文字化けする場合は設定して下さい。
(setq YaTeX-latex-message-code 'euc-jp-unix) 


  • ソースコードの色づけ(font-lockを使う)
(setq YaTeX-use-hilit19 nil
        YaTeX-use-font-lock t)
(global-font-lock-mode t)
(require 'font-lock)

カスタマイズ設定

カスタマイズ変数の一覧はYaTeXのinfoにあります。

  • AMS-LaTeXを利用する
(setq YaTeX-use-AMS-LaTeX t)
    • 数式を含んだ書類を作成する場合は、AMS-LaTeXを利用することをお勧めします(\usepackage{amsmath))。AMS-LaTeXのコマンドの補完機能を追加します。
  • section型の補完でミニバッファから入力しない
(setq YaTeX-skip-default-reader t)
    • YaTeXでは、コマンドの引数をミニバッファから入力するようになっています。しかし、日本語を入力したり、複雑な数式を入力する場合、ミニバッファからの入力がバッファでの入力程度に快適ではない場合があります。yatex-currentでは、ミニバッファで数式記号イメージ補完ができるようになるなど、改良を試みられていますが、別解として最初からミニバッファでの入力をしないというオプションもあります。この設定は好みに応じて決めて下さい。
  • Commandキーのショートカットを追加
(setq mac-command-key-is-meta nil)  ; metaはoptionキー
(add-hook 'yatex-mode-hook
     '(lambda() 
        (require 'yatexprc)
 	 (local-set-key [(alt t)] 'YaTeX-typeset-buffer)
 	 (local-set-key [(alt r)] 'YaTeX-preview)
 	 ))
    • コンパイル、プレビューをCommandキーを使ったショートカットで行えるようにします。YaTeXの補完機能等を、あまり多用しない人には有効かもしれません。
  • SKKで「かなモード」のときに「$」を入力すると自動的に「アスキーモード」に切り替える

 http://www.math.s.chiba-u.ac.jp/~matsu/emacs/emacs21/yatex.html

(add-hook 'skk-mode-hook
         (lambda ()
           (if (eq major-mode 'yatex-mode)
               (progn
                 (define-key skk-j-mode-map "¥¥" 'self-insert-command)
                 (define-key skk-j-mode-map "$" 'YaTeX-insert-dollar)
                 ))
           ))
  • ことえり(インラインパッチ)使用時に記号と数字を直接入力する

Inline patch ver. 20060319 以降

;; ことえりの日本語入力時に記号と数字は直接入力する。
(add-hook 'yatex-mode-hook
   '(lambda () 
      (make-local-variable 'mac-ignore-shortcut)
      (let (ignore-key-list)
        (setq ignore-key-list
 	     '(?  ?! ?\" ?# ?$ ?% ?& ?\' ?* ?+ ?_ ?=
 		  ?\\ ?\( ?\) ?< ?> ?@ ?^?` ?\{ ?\} ?| ?~ ?/))	     
        (while ignore-key-list
 	 (mac-add-ignore-shortcut (car ignore-key-list))
 	 (setq ignore-key-list (cdr ignore-key-list))))
      (let ((i ?0))
        (while (<= i ?9)
 	 (mac-add-ignore-shortcut i)
 	 (setq i (1+ i))
 	 ))
      ))

(add-hook 'yatex-mode-hook
   '(lambda ()
      (kill-local-variable 'mac-ignore-shortcut)))
  • 環境の終わりの \end{document} などを書こうとすると、毎回「今度からはちゃんと ^C b を使いましょう」というメッセージが出てきて煩わしいと感じています。回避策はありませんでしょうか?
    • yatex.el の以下の部分をコロンでコメントアウトすれば、補完機能は働きますがメッセージは表示されなくなります。
(momentary-string-display
      (concat
"{"
(cond
 (YaTeX-japan
         (format "今度からはちゃんと %s b を使いましょう" YaTeX-prefix))
 (t (format "You don't understand Zen of `%s b':p" YaTeX-prefix)))
"}")
       (point))
    • YaTeXユーザとしては、メッセージの通りに^C-bで入力するか、endで閉じるときに ^C-e とするのが良いとは思います。
    • 改造したYaTeXを利用する場合は、YaTeXのディレクトリを自分のホームの適当な場所において、次のような設定を.emacs.elなどに書くと優先的に読み込まれます。
(setq load-path (cons (expand-file-name "場所") load-path))


  • pdfTeXでは、図などもPDFファイルを配置するが、Emacs の関数 file-name-completionでPDFファイルが無視される。無視する拡張子のリストに ".pdf" が入っているので取り除いて再定義する。こうすることで、YaTeXの includegraphics の引数のファイル名を補完するときに、候補のファイルがfoo.epsとfoo.pdfと2つある場合に、直ぐにfoo.epsと入力されてしまう問題を回避できる。
(custom-set-variables
 '(completion-ignored-extensions (quote (".svn/" "CVS/" ".o" "~" ".bin" 
".lbin" ".so" ".a" ".ln" ".blg" ".bbl"  ".elc" ".lof" ".glo" ".idx" ".lot" ".dvi"
".fmt" ".tfm" ".class" ".fas" ".lib" ".mem" ".x86f" ".sparcf" ".fasl" ".ufsl"
".fsl" ".dxl" ".pfsl" ".dfsl" ".lo" ".la" ".gmo" ".mo" ".toc" ".aux" ".cp" ".fn" 
".ky" ".pg" ".tp" ".vr" ".cps" ".fns" ".kys" ".pgs" ".tps" ".vrs" ".pyc" ".pyo"))))


使用方法

info (C-h i) に詳しい解説があります。

  • LaTeX コマンドの変更「C-c c」

汎用性の高い機能になっています。例えば、equation環境をalignに変更したいような場合、\begin{equation}または\end{..}のある行で「C-c c」としてみてください。また、section型コマンドなども引数部分をそのままにして変更できます。さらに面白い応用は括弧のサイズ変更です。\exp(\int f dx)の括弧サイズを変更するときは、\Biggl(\Biggr)や\biggl(\biggr) をいろいろ試すことになりますが、こういった場合にも「C-c c」が使えます( l<L<h<H で指定できます)。是非試してみてください。

yahtml

設定例

     (autoload 'yahtml-mode "yahtml" "Yet Another HTML mode" t)
     (add-to-list 'auto-mode-alist '("¥¥.html¥¥'" . yahtml-mode))

新しい Emacs 22 では、ファイルの内容のパターンをみてモードを起動する方法が導入されています。次のようにして、magic-mode-alist の html-mode を yahtml-mode に置換すると良いでしょう。

;; Emacs-22 provides magic-mode-alist...
(if (boundp 'magic-mode-alist)
    (or (rassq 'yahtml-mode magic-mode-alist)
	(setq magic-mode-alist
	      (cons
	       (cons (car (rassq 'html-mode magic-mode-alist)) 'yahtml-mode)
	       magic-mode-alist))))

質問

  • 日本語ファイル名のコンパイルができません。ターミナルからは,platex サンプル.tex と入力してコンパイルできますが,Carbon Emacs+YaTeXでコンパイルしようとすると,
##### platex --shell-escape 畳坫.tex
This is pTeX, Version 3.141592-p3.1.8 (sjis) (Web2C 7.5.4)
 \write18 enabled.
**

と表示されてしまいます。Copy and Pasteしたら上のようになったのですが,実際の画面ではファイル名のところは,\245\265\245\363\245\327\245\353.tex と表示されます。

    • .emacs.el に
(set-default-coding-systems 'utf-8)

を追加すると,メッセージ・バッファーには,\343\202...と表示されるもののコンパイルできました。この10進表示をコピーして貼り付けたところ,サンプル.texとなったので,表示はともかく内部的には認識できているようですね。

  • 上の設定ことえり(インラインパッチ)使用時に記号と数字を直接入力するについてですが、shift キーを押して入力する記号がことえりを経由してしまいます。数字などは直接入力になるんですが。

Wiki内の関連ページ