テキストエディタMery用LaTeXコンパイルマクロ

以前powershellを併用したバージョンを作りましたが、今度はJavascriptマクロ+コマンドラインだけです。powershellはローカルのスクリプトファイルを実行するのに色々めんどくさいんで… PDFの出力先は.texファイルがあるところと同じ場所です。
var docPath = '"'+document.Path + document.Name+'"';
var cmd = 'cmd /c cd /d "' + document.Path + '" & platex '
     + docPath + ' & dvipdfmx '+docPath.replace(".tex","");

document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);

コマンドライン側で.texの拡張子を取り除こうとしてて、馬鹿だなぁと思いましたw 普通にマクロ側で削除してから渡せばいいのに。

2012/07/27追記:---

Meryの開発ブログのこの記事を覗いていたら意外にこのマクロを使ってくださってる人がいるみたいでありがたやw

その中でsaiさんがTeX Live 2012での使い方を書いてたのでこちらの方にも追記させて頂きます。

TeX Live 2012の場合

var cmd = 'cmd /c cd /d "' + document.Path + '" & platex '
の部分を
var cmd ='cmd /c cd /d "' + document.Path + '" & platex -guess-input-enc'
に置き換える。

コメント

  1. PDF,DVIともうまくできます。あとPDFができた後0.5秒後にAcrobat readerが起動し確認できるようにお願いしたいのですが。

    返信削除
  2. @匿名さん
    document.Save();以降をこれに置き換えてください。pdfファイルに関連付けられているアプリケーションで開かれるはずです。動作未確認です。

    var shell = new ActiveXObject("WScript.Shell");
    shell.Run(cmd, 1, true);
    shell.Run("cmd /c "+docPath.replace(".tex",".pdf"),1,false);

    私はChromeでPDFを見ているのでコンパイルするたびに新しいタブでPDFが開かれるのがうるさくてつけていませんでした。お好みでしたらどうぞお使いください。

    返信削除
  3. ありがとうございます。DVI, PDFが生成しAcrobat Reader9が立ち上がり確認できました。感謝です。

    返信削除
  4. @匿名さん
    お役に立てたなら何よりです。大したコンテンツはありませんが、よろしければまたお越しくださいませ。

    返信削除
  5. Mery Ver2でもsjisでtexファイルとして保存すると上記のマクロがしっかり機能しています。UTF-8では機能しませんが, windowsではもともとsjisだからこのままでよいと思われます。

    返信削除
  6. 個人的にsift-jisは使いづらいと思うのです。それにもしUTF-8で保存したとしてこのマクロが使えなかったらなんだよ使えないゴミじゃんって初見さんならなりますよねw 更にsift-jisだと韓国語や中国語等他の言語を使うことができません。英数字しか使えない文字コードが私達にとって使えないものであるようsift-jisは使いづらいものだと思います。

    もうこのマクロは自分自身では使っていない(texworksを使っている)のですが、記事の保守として追記させて頂きました。

    返信削除

コメントを投稿

このブログの人気の投稿

初めてのC# -メモ帳でも作ってみる?-

【ファイル偽装】zipとしてもjpgとしても扱えるファイル

Javaにおいて引数付でスレッドを走らせる