Re: yatexでbibtexを呼び出すと拡張子dviがついてきてしまう

名前: 本田
日時: 2010-01-17 12:08:52
IPアドレス: 220.147.90.*

>>54367 困りましたねえ・・・YaTeX側で間違ってますよね. C-t bでbibtexを呼ぶだけではなくって C-t iでmendexを呼ぶのもおかしいですよ #YaTeX 1.72で確認しています. #YaTeX1.74では確認してません. #1.74ではどうなんでしょうか? C-t b -> jbibtex file.dvi C-t i -> mendex file.dvi になってますね. こいつらは, YaTeX-call-command-on-file って関数を YaTeX-get-preview-file-name っていう関数の結果を引数にして呼んでるですが これがそもそもの間違いのようです だから,まじめにやるなら,それなりに考えて 内部をそれなりにいじらないとだめですよね. YaTeX-get-preview-file-name では,dvi2-command2の値に応じて拡張子を変えることで dvi2-command(xdviとかdvioutなどのプレビューア)に適した ファイル名を生成する関数です. 通常,dvi2-commandはxvdiやdvioutでしょうからこれに対応する拡張子は dviなわけで, ですので,YaTeX-call-command-on-fileではdviがついてしまうんです・・・ とりあえず,超クイックハックです. YaTeXでは拡張子を一切つけずに, コマンド側が自分用の拡張子を補うことを仮定します. yatexprc.elcが存在するならば,それをリネームしてください. そのあと,yatexprc.elを書き換えます. (defun YaTeX-get-preview-file-name () "Get file name to preview by inquiring YaTeX-get-latex-command" (let* ((latex-cmd (YaTeX-get-latex-command t)) (rin (rindex latex-cmd ? )) (fname (if (> rin -1) (substring latex-cmd (1+ rin)) "")) (r (YaTeX-assoc-regexp dvi2-command YaTeX-dvi2-command-ext-alist)) (ext (if r (cdr r) "")) (period)) (concat (if (string= fname "") (setq fname (substring (file-name-nondirectory (buffer-file-name)) 0 -4)) (setq period (rindex fname ?.)) (setq fname (substring fname 0 (if (eq -1 period) nil period)))) "";;ext ;;;;;;;;;;ここ!! )))

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)