- バックアップ一覧
- ソース を表示
- javascripts for Adobe Illustrator CS は削除されています。
- 追加された行はこの色です。
- 削除された行はこの色です。
// http://oku.edu.mie-u.ac.jp/~okumura/texfaq/dtp/javascripts.html
*はじめに [#ae063b79]
Adobe Illustrator では、javascriptで処理を自動化できます。
アウトライン化した数式をリンク配置させるスクリプトを示します。
方法自体は[[TeXの数式をDTPソフトに>TeXの数式をDTPソフトに#hf9c85f7]]と同じです。
現状では、日本語は通りません。エラーの処理も最低限です。改良していただけると幸いです。
以下のスクリプトは、Adobe Illustrator CS (ver.11.0.0)で動作確認しています。
他のバージョンではエラーがでるかもしれません。
また、このスクリプトを使用することによって生じた問題について責任を取ることは不可能ですので、ご利用は自己責任で。
*概要 [#we9c341f]
半角英数のファイル名で保存されたファイル(hoge.ai)をAdobe Illustratorで開き、
"First.js"を実行する。
-そのファイルが存在するディレクトリに"EqsInhoge"というサブディレクトリが作成される。
-EqsInhogeに"eq.tex"が作られ、エディタで開かれる。
-数式を編集して保存する。
"Rewrite.js"を実行する。
-EqsInhogeに"eq_outline_1168709197154.eps"のようなEPSファイルができる。末尾の数字は作成時刻。
-アクティブなドキュメントのアクティブなレイヤーに、アウトライン化された数式がリンク配置される。
*First.js [#g4b6c5cc]
以下のスクリプトを"&Fitst.js"というファイル名で保存。
保存先は"C:\Program Files\Adobe\Illustrator CS\プリセット\スクリプト"が便利です。
//TeX関係の初期設定
docclass = "article"; //ドキュメントクラス
fontsize = "12"; //フォントサイズ
initialeq = "\\ket{0}_\\mathrm{photon}\\!\\ket{0}_\\mathrm{atom}";
//eps画像保存用フォルダ作成 アクティブなドキュメントのあるdirのsub dirに
//EqsInファイル名というフォルダを作る
folderRef = activeDocument.path;
str = activeDocument.name;
chr_f = str.split(".");
filename = chr_f[0];
if(folderRef=="/c")
{
alert("アクティブなドキュメントを半角英数の名前で保存してください。")
}
else
{
dir = folderRef.toString();
saveDir = ""+dir+"/EqsIn"+filename+"/";
chr_d = saveDir.split("/");
saveDrive = chr_d[1]+":";
savefolder = saveDir.slice(2,-1)+"/";
eqsFolder = new Folder( saveDir ) ;
if( eqsFolder.exists )
{
//editor.batを実行
fileObj = new File(""+saveDir+"editor.bat");
fileObj.execute();
}
else
{
eqsFolder.create();
//eq.texを書き出す
fileRef = new File (""+saveDir+"eq.tex");
flag = fileRef.open ("w","","");
if (flag)
{
fileRef.writeln("\\documentclass["+fontsize+"pt]{"+docclass+"}");
fileRef.writeln("\\pagestyle{empty}");
fileRef.writeln("\\usepackage{braket}");
fileRef.writeln("\\usepackage{amsmath,amssymb,bm}");
fileRef.writeln("\\begin{document}");
fileRef.writeln("\\[");
fileRef.writeln(""+initialeq+"");
fileRef.writeln("\\]");
fileRef.writeln("\\end{document}");
}
fileRef.close()
//editor.batを記述
fileRef = new File (""+saveDir+"editor.bat");
fileRef.open ("w","","");
fileRef.writeln("cd EqsIn"+filename+"");
fileRef.writeln("start eq.tex");
fileRef.writeln("exit");
fileRef.close();
//editor.batを実行
fileObj = new File(""+saveDir+"editor.bat");
fileObj.execute();
}
}
*Rewrite.js [#w935a51a]
以下のスクリプトを"&Rewrite.js"というファイル名で保存。
保存先は"C:\Program Files\Adobe\Illustrator CS\プリセット\スクリプト"が便利です。
//TeX関係の初期設定
gs = "gswin32c"; //アウトラインを作成
TeX = "latex"; //TeX処理
dvi = "dvips"; //dvi変換
folderRef = activeDocument.path;
str = activeDocument.name;
chr_f = str.split(".");
filename = chr_f[0];
if(folderRef=="/c")
{
alert("アクティブなドキュメントを半角英数の名前で保存してください。")
}
else
{
dir = folderRef.toString();
saveDir = ""+dir+"/EqsIn"+filename+"/";
chr_d = saveDir.split("/");
saveDrive = chr_d[1]+":";
savefolder = saveDir.slice(2,-1)+"/";
eqsFolder = new Folder( saveDir ) ;
if( !eqsFolder.exists )
{
alert("First.jsを先に実行してください");
}
else
{
time = new Date().getTime();
//tex2eps_outline.batを記述
fileRef = new File (""+saveDir+"tex2eps_outline.bat");
fileRef.open ("w","","");
fileRef.writeln(""+saveDrive+"");
fileRef.writeln("cd EqsIn"+filename+"");
fileRef.writeln(""+TeX+" eq");
fileRef.writeln(""+dvi+" -Ppdf -E eq -o eq.eps");
fileRef.writeln(""+gs+" -q -sDEVICE=epswrite -sOutputFile=eq_outline_"+time+".eps -r9600 -dNOPAUSE -dBATCH -dSAFER -dEPSCrop eq.eps");
fileRef.close();
//tex2eps_outline.batを実行
fileObj = new File(""+saveDir+"tex2eps_outline.bat");
fileObj.execute();
//TeX処理とEPS書き出しの時間がまちまちなので...
flag = confirm("描画しますか?");
if (flag == true)
{
//リンク画像としてアクティブなドキュメントの
//アクティブなレイヤーに貼り付ける。
placedImg = activeDocument.activeLayer.placedItems.add() ;
inputFile = ""+saveDir+"eq_outline_"+time+".eps";
placedImg.file = new File( inputFile );
placedImg.name = "+time+";
placedImg.position = [ 400, 400] ;
placedImg.selected = true ;
}
}
}
*使い方 [#jc24064d]
+半角英数のファイル名で保存されたファイル(hoge.ai)をダブルクリックなどで開く。
(Illustratorのメニュー[ファイル]→[開く]で開くとスクリプトがエラー終了します。)
+[ファイル]→[スクリプト]から"&Fitst.js"を実行。エディタで"eq.tex"が開かれます。
+適当に編集した後、[ファイル]→[スクリプト]から"&Rewrite.js"を実行すれば、対応する数式がリンク配置されます。
+続けて別の数式をリンク配置したい場合は、"eq.tex"を編集して保存し、[ファイル]→[スクリプト]から"&Rewrite.js"を実行するだけです。
*Tips [#if054c37]
-既にサブディレクトリ"EqsInhoge"が存在する場合に"Fitst.js"を実行すると、サブディレクトリ中の"eq.tex"が直前に編集された状態で開かれます。
-スクリプトの保存先を"C:\Program Files\Adobe\Illustrator CS\プリセット\スクリプト"にしてあり、スクリプトのファイル名を"&Fitst.js"、"&Rewrite.js"にしてある場合、[Alt+F]+[R]+[F]で"&First.js"、[Alt+F]+[R]+[R]で"&Rewrite.js"が実行されます。
-「Illustratorのメニュー[ファイル]→[開く]で開くとスクリプトがエラー終了」は、突き詰めると文字コードの問題です。半角英数のフォルダ名しか使わないのであれば容易に直せるのですが…。改良していただけると幸いです。
-エディタを常に最前面に表示するようにしておくと、細かい数式を大量に配置するときに便利です。