- 追加された行はこの色です。
- 削除された行はこの色です。
[[サクラエディタ]] > マクロ
&color(White,#5F2F2F){ ''◆目次◆'' };&br;
#contents
*マクロ [#k75075b0]
-サクラエディタ Ver. 2.0.7.0 で ExpandParameter にタイプ別設定の名前などの追加が行われました (→ [[Sakura Editor / Code / Commit [r2746]:http://sourceforge.net/p/sakura-editor/code/2746/]])
-サクラエディタ Ver. 2.0.6.0 で ExpandParameter の機能追加が行われました (→ [[Sakura Editor / PatchUnicode / #302 ExpandParameter機能追加等:http://sourceforge.net/p/sakura-editor/patchunicode/302/]])
-[[Macro - SakuraEditorWiki:http://sakura.qp.land.to/?Macro]]
//-[[サクラエディタマクロ:http://www.geocities.jp/maru3128/SakuraMacro/]]
//--[[リファレンス目次:http://www.geocities.jp/maru3128/SakuraMacro/reference/]]
//---[[S_ExpandParameter:http://www.geocities.jp/maru3128/SakuraMacro/reference/other/S_ExpandParameter.html]]
//-[[サクラエディタマクロ:http://sakura.qp.land.to/SakuraMacro/]]
//--[[リファレンス目次:http://sakura.qp.land.to/SakuraMacro/reference/]]
//---[[S_ExpandParameter:http://sakura.qp.land.to/SakuraMacro/reference/other/S_ExpandParameter.html]]
//-[[サクラエディタ ヘルプ目次:http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor/help/trunk2/_RESOURCE/HLP000001.html]]
//--[[ヘルプファイル更新履歴:http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor/help/trunk2/_RESOURCE/HLP_HISTORY.html]]
//--[[マクロ:http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor/help/trunk2/_RESOURCE/HLP000001.html#c927]]
//--[[ExpandParameter:http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor/help/trunk2/_RESOURCE/HLP000284.html]]
-[[サクラエディタ ヘルプ目次:http://sakura-editor.sourceforge.net/htmlhelp2/]]
//--[[ヘルプファイル更新履歴:http://sakura-editor.sourceforge.net/htmlhelp2/HLP_HISTORY.html]]
--[[マクロ:http://sakura-editor.sourceforge.net/htmlhelp2/#c927]]
---[[マクロ専用関数:http://sakura-editor.sourceforge.net/htmlhelp2/HLP000268.html]]
---[[ExpandParameter:http://sakura-editor.sourceforge.net/htmlhelp2/HLP000284.html]]
-[[Windows Script Host:http://msdn.microsoft.com/ja-jp/library/cc364455.aspx]]
-[[Windows Script Host Laboratory:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/]]
-[[TOY BOX ver.0.2: サクラエディタ:http://toybox-v2.blogspot.com/search/label/%E3%82%B5%E3%82%AF%E3%83%A9%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF]]
--[[サクラエディタでよく使うマクロ2つ:http://toybox-v2.blogspot.com/2011/09/2.html]]
-[[サクラエディタを青空文庫形式入力支援に使うためのマクロについて:http://takenokoshobo.com/kdp/manual_ao_epub/4.html]]
マクロを使うと LaTeX 環境を簡単に作ることができます.~
共通設定のマクロタブからマクロファイルが格納されているフォルダを参照して,名前,File,Id を指定し,マクロを実行するたびにファイルを読み込みなおす にチェックを入れて設定をクリックします.~
マクロを実行するたびにファイルを読み込みなおす のチェックが外れている場合,マクロを登録した後で,マクロファイルの内容を変更しても変更内容が反映されないので注意してください.~
登録したマクロは,メニューの [ツール(T)] → [登録済みマクロ(B)] から選択することで実行できます.~
----
&color(#FF77AA,#FF77AA){%%% &color(Black){''共通設定''}; &color(#FF77AA,#FA77AA){%%%[ &color(Black){''?''}; ]%%%};&color(#DD4444,#DD4444){%%%[ &color(White){''×''}; ]%%%};%%%};&br;
&color(Black,#EEEEEE){%%%[ ファイル ][ ファイル名表示 ][ バックアップ ][ 書式 ][ 検索 ][ キー割り当て ]%%%};&br;
&color(Black,#EEEEEE){%%%[ 全般 ][ ウィンドウ ][ メインメニュー ][ ツールバー ][ タブバー ][ ステータスバー ][ 編集 ]%%%};&br;
&color(Black,#EEEEEE){%%%[ カスタムメニュー ][ 強調キーワード ][ 支援 ]%%%};''[ マクロ ]''&color(Black,#EEEEEE){%%%[ プラグイン ]%%%};&br;
マクロ一覧 %%%.\macro\%%% &color(Black,#EEEEEE){[ 参照(R)... ]};&br;
∣%%% 番号 ∣ マクロ名 ∣ ファイル名 ∣ 実行時に読み込み ∣ 自動実行 %%%∣&br;
∣&color(White,#1188FF){ 0 pdfpLaTeX pdfpLaTeX.js on };&br;
∣ 1 off&br;
∣ 2 off&br;
∣ … …&br;
∣ 47 off&br;
∣ 48 off&br;
∣ 49 off&br;
名前(N) %%%pdfpLaTeX %%% Id: &color(Black,#EEEEEE){[0 ''ᐯ'']};&br;
File %%%pdfpLaTeX.js ''ᐯ''%%% &color(Black,#EEEEEE){[ 設定(A) ]};&br;
☑マクロを実行するたびにファイルを読み込みなおす(L) キャンセル確認待ち時間 %%%10%%% 秒&br;
自動実行: ☐新規/開ファイル後(O) ☐タイプ変更後(T) ☐ファイル保存前(S)&br;
----
以下のマクロを使用する場合は サクラエディタ Ver. 2.0.6.0 以上が必要です.
**pdfpLaTeX.js [#y5c91d76]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -guess-input-enc -sjis-terminal\"";
var charCode = Editor.GetCharCode();
if (charCode == 4) {
ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal\"";
} else if (charCode == 0) {
ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=sjis -sjis-terminal\"";
} else if (charCode == 2) {
ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=euc -sjis-terminal\"";
} else if (charCode == 1) {
ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -no-guess-input-enc -kanji=jis -sjis-terminal\"";
}
ptex2pdf += " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + ptex2pdf;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Ctrl+Alt+J
**pdfpLaTeX2.js [#u8bcfaaf]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var latex = "platex -synctex=1 -guess-input-enc -sjis-terminal";
var charCode = Editor.GetCharCode();
if (charCode == 4) {
latex = "platex -synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal";
} else if (charCode == 0) {
latex = "platex -synctex=1 -no-guess-input-enc -kanji=sjis -sjis-terminal";
} else if (charCode == 2) {
latex = "platex -synctex=1 -no-guess-input-enc -kanji=euc -sjis-terminal";
} else if (charCode == 1) {
latex = "platex -synctex=1 -no-guess-input-enc -kanji=jis -sjis-terminal";
}
latex += " " + ["\"", b, "\""].join("");
var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -g > " + ["\"", b, ".ps", "\""].join("");
var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
var cmd = "cmd /c " + cd + " && " + latex + " && " + dvips + " && " + ps2pdf;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Ctrl+Alt+K
**pdfupLaTeX.js [#l9863978]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var ptex2pdf = "ptex2pdf -l -u -ot \"-synctex=1 -no-guess-input-enc -kanji=utf8\"" + " " + ["\"", b, "\""].join("");
var ptex2pdf = "ptex2pdf -l -u -ot \"-synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal\"" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + ptex2pdf;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+J
**pdfupLaTeX2.js [#h46c2bcd]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var latex = "uplatex -synctex=1 -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join("");
var latex = "uplatex -synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal" + " " + ["\"", b, "\""].join("");
var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -u > " + ["\"", b, ".ps", "\""].join("");
var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
var cmd = "cmd /c " + cd + " && " + latex + " && " + dvips + " && " + ps2pdf;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+K
**pdfLaTeX.js [#yf857fdc]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var pdflatex = "pdflatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + pdflatex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+H
**LuaLaTeX.js [#b5787795]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var lualatex = "lualatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + lualatex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+Y
**LuaJITLaTeX.js [#w564abd7]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var luajitlatex = "luajitlatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + luajitlatex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+U
**XeLaTeX.js [#pf46590c]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var xelatex = "xelatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + xelatex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+I
**pBibTeX.js [#ib5040ed]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "pbibtex -sjis-terminal";
var charCode = Editor.GetCharCode();
if (charCode == 4) {
bibtex = "pbibtex -kanji=utf8 -sjis-terminal";
} else if (charCode == 0) {
bibtex = "pbibtex -kanji=sjis -sjis-terminal";
} else if (charCode == 2) {
bibtex = "pbibtex -kanji=euc -sjis-terminal";
} else if (charCode == 1) {
bibtex = "pbibtex -kanji=jis -sjis-terminal";
}
bibtex += " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Ctrl+Alt+N
**upBibTeX.js [#deacfc6b]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "upbibtex" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Shift+Alt+N
**BibTeX.js [#acb2369f]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "bibtex" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**BibTeXu.js [#ld3350a2]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "bibtexu" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**Mendex.js [#p1a2e7ba]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var makeindex = "mendex -T";
var charCode = Editor.GetCharCode();
if (charCode == 4) {
makeindex = "mendex -U -T";
} else if (charCode == 0) {
makeindex = "mendex -S -T";
} else if (charCode == 2) {
makeindex = "mendex -E -T";
} else if (charCode == 1) {
makeindex = "mendex -J -T";
}
makeindex += " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + makeindex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
:キー割り当て|Ctrl+Alt+M
**MakeIndex.js [#t0c4bf6a]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var makeindex = "makeindex" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + makeindex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**TeXindy.js [#f07f070d]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var makeindex = "texindy" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + makeindex;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**TeXworks.js [#w4b007fd]
----
(function () {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var currentTeXFile = Editor.ExpandParameter("$F");
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var texworks = "texworks";
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = Editor.InputBox("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"), 255);
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
var mainTeXDir = fso.GetParentFolderName(pdfFile);
var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
var args = texworks + " " + pdfFile;
var cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
Editor.ExecCommand(cmd, 1);
}.call(this));
----
:キー割り当て|Ctrl+Alt+O
*マクロにショートカットキーを割り当てる方法 [#ubcf1bda]
-[[キー割り当て一覧:http://sakura-editor.sourceforge.net/htmlhelp/HLP000107.html]]
-[[Macro/マクロファイルの実行 - SakuraEditorWiki:http://sakura.qp.land.to/?Macro%2F%A5%DE%A5%AF%A5%ED%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%BC%C2%B9%D4]]
-[[サクラエディタの外部マクロにショートカットキーに割り当てる:http://d.hatena.ne.jp/nanntekotta/20100623/]]
-[[サクラエディタの自作マクロにショートカットキーを割り当てる方法:http://muumoo.jp/news/2008/02/10/0sakuramacro.html]]
----
&color(#FF77AA,#FF77AA){%%% &color(Black){''共通設定''}; &color(#FF77AA,#FA77AA){%%%[ &color(Black){''?''}; ]%%%};&color(#DD4444,#DD4444){%%%[ &color(White){''×''}; ]%%%};%%%};&br;
&color(Black,#EEEEEE){%%%[ カスタムメニュー ][ 強調キーワード ][ 支援 ][ マクロ ][ プラグイン ]%%%};&br;
&color(Black,#EEEEEE){%%%[ 全般 ][ ウィンドウ ][ メインメニュー ][ ツールバー ][ タブバー ][ ステータスバー ][ 編集 ]%%%};&br;
&color(Black,#EEEEEE){%%%[ ファイル ][ ファイル名表示 ][ バックアップ ][ 書式 ][ 検索 ]%%%};''[ キー割り当て ]''&br;
種別(K) &color(Black,#EEEEEE){[ 外部マクロ ''ᐯ'']}; &color(Black,#EEEEEE){[ インポート(I)... ]}; &color(Black,#EEEEEE){[ エクスポート(X)... ]};&br;
機能(F) キー(Y)&br;
マクロ 0 (未登録) &color(White,#1188FF){ダブルクリック };&br;
マクロ 1 (未登録) ☐Shift 右クリック&br;
マクロ 2 (未登録) 中クリック&br;
マクロ 3 (未登録) ☐Ctrl 左サイドクリック&br;
マクロ 4 (未登録) 右サイドクリック&br;
マクロ 5 (未登録) ☐Alt トリプルクリック&br;
マクロ 6 (未登録) クアドラプルクリック&br;
マクロ 7 (未登録) ホイールアップ&br;
マクロ 8 (未登録) ホイールダウン&br;
マクロ 9 (未登録) ホイール左&br;
… …&br;
%%% 機能に割り当てられているキー(G) %%%&br;
&br;
&color(#888888,#EEEEEE){[割付(B)]}; キーに割り当てられている機能&br;
%%% %%% &color(Black,#EEEEEE){[解除(R)]}; %%%現在位置の単語選択%%%&br;
☐ウィンドウ毎にアクセラレータテーブルを作成する(Wine用)(W)&br;
----
*その他の便利な TeX 用マクロ [#u28c7ea5]
**Macro - SakuraEditorWiki [#o5661c6c]
-[[Macro - SakuraEditorWiki:http://sakura.qp.land.to/?Macro]]
--[[Macro/投稿:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6]]
***選択行コメントアウト [#ned6c107]
-[[選択行コメントアウト:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F64]]
(maru さん)
//(JScript)
***Tex用画像挿入 [#yc92f02e]
-[[Tex用画像挿入:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F77]]
(てふにしゃん さん)
***Tex用数式挿入 [#r86d3294]
-[[Tex用数式挿入:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F78]]
(てふにしゃん さん)
***TeX→PDF用マクロ [#l1f44e08]
-[[TeX→PDF用マクロ:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F79]]
(てふにしゃん さん)
//(JScript)
***VSライクなhtml終タグ自動補完 & texの\end補完: [#sfb49cfa]
-[[VSライクなhtml終タグ自動補完 & texの\end補完:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F158]]
(peak さん)
//(JScript)
**LaTeX+SakuraEditorマクロ [#y54f2100]
-[[LaTeX+SakuraEditorマクロ:http://www.sidewarehouse.net/sakura.html]]
(横倉 勇希 さん)
//(JScript)
//**サクラエディタ用TeXマクロ [#c3c7d37d]
//-[[サクラエディタ用TeXマクロ:http://kentarodev.up.seesaa.net/files/fileIndex.html]]
//(Kentaro (PortableMe) さん)
//(JScript)
**SakuraエディタのTeX用マクロ [#ra3e1193]
-[[SakuraエディタのTeX用マクロ:http://execyou.blogspot.com/]]
(横前 拓磨 さん)
//(JScript)
**サクラエディタ - PukiWiki for PBCG Lab [#t65f472c]
-[[サクラエディタ - PukiWiki for PBCG Lab:http://www.slis.tsukuba.ac.jp/~fujis/cgi-bin/wiki/index.php?%A5%B5%A5%AF%A5%E9%A5%A8%A5%C7%A5%A3%A5%BF]]
(藤澤 誠 (fujis) さん)
//(JScript)
//**TeXファイルのコンパイル [#k202d7e6]
//-[[TeXファイルのコンパイル:http://gusukus.blog50.fc2.com/blog-entry-10.html]]
//-[[TeXファイルのコンパイル:http://web.archive.org/web/20080611144911/http://gusukus.blog50.fc2.com/]]
//(ぐすく さん)
//-[[TeXファイルのコンパイル – サクラエディタ用マクロ | shiro.be:http://shiro.be/archives/135]]
//(しろ さん)
//(JScript)
**サクラエディタでAspell [#b5a2307d]
-[[サクラエディタでAspell:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1036830290]]
(angel_o_f_hell さん, pa10user さん)
//(JScript)
-[[Aspell の導入:http://yaplog.jp/ukokke69/archive/2032]] (うこっけ さん)
*SumatraPDF との連携 [#t7a83c73]
**forward and inverse search (SumatraPDF を前面に表示したい場合) [#p7bf3825]
***SumatraPDF.js [#s758d3d9]
----
(function () {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var sakuraEditor = Editor.ExpandParameter("$S");
var currentTeXFile = Editor.ExpandParameter("$F");
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var line = Editor.ExpandParameter("$y");
var sumatraPDF = "C:/Program Files/SumatraPDF/SumatraPDF.exe";
var mainTeXDir;
var cd;
var cmd;
var args;
if (!fso.FileExists(sumatraPDF)) {
sumatraPDF = "C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe";
if (!fso.FileExists(sumatraPDF)) {
sumatraPDF = Editor.InputBox("Input the path to SumatraPDF.exe.", "SumatraPDF.exe", 255);
if (!fso.FileExists(sumatraPDF)) {
sumatraPDF = "SumatraPDF.exe";
}
}
}
sumatraPDF = ["\"", sumatraPDF, "\""].join("");
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = Editor.InputBox("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"), 255);
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
mainTeXDir = fso.GetParentFolderName(pdfFile);
cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
currentTeXFile = ["\"", currentTeXFile, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
args = sumatraPDF + " -reuse-instance " + pdfFile + " -inverse-search \"\\\"" + sakuraEditor + "\\\" -Y=%l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line;
cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
Editor.ExecCommand(cmd, 1);
}.call(this));
----
**forward search (SumatraPDF を前面に表示したくない場合) [#wa5982c4]
[[SumatraPDF/fwdsumatrapdf]] の fwdsumatrapdf.exe を使用します.~
***fwdsumatrapdf.js [#ce8c0353]
----
(function () {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var currentTeXFile = Editor.ExpandParameter("$F");
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var line = Editor.ExpandParameter("$y");
var fwdsumatrapdf = "C:/w32tex/bin/fwdsumatrapdf.exe";
var mainTeXDir;
var cd;
var cmd;
var args;
if (!fso.FileExists(fwdsumatrapdf)) {
fwdsumatrapdf = Editor.InputBox("Input the path to fwdsumatrapdf.exe.", "fwdsumatrapdf.exe", 255);
if (!fso.FileExists(fwdsumatrapdf)) {
fwdsumatrapdf = "fwdsumatrapdf.exe";
}
}
fwdsumatrapdf = ["\"", fwdsumatrapdf, "\""].join("");
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = Editor.InputBox("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"), 255);
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
mainTeXDir = fso.GetParentFolderName(pdfFile);
cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
currentTeXFile = ["\"", currentTeXFile, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
args = fwdsumatrapdf + " " + pdfFile + " " + currentTeXFile + " " + line;
cmd = "cmd /c " + cd + " && " + args;
Editor.ExecCommand(cmd, 1);
}.call(this));
----
**inverse search [#uf1eff38]
"C:\Program Files\sakura\sakura.exe" -Y=%l "%f"
"C:\Program Files (x86)\sakura\sakura.exe" -Y=%l "%f"
または
"C:\Program Files\sakura\sakura.exe" -Y:%l "%f"
"C:\Program Files (x86)\sakura\sakura.exe" -Y:%l "%f"
*Adobe Reader との連携 [#md7b02af]
**pdfpLaTeXA.js [#m4b6208e]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var ptex2pdf = "ptex2pdf -l -ot \"-guess-input-enc -sjis-terminal\"";
var charCode = Editor.GetCharCode();
if (charCode == 4) {
ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=utf8 -sjis-terminal\"";
} else if (charCode == 0) {
ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=sjis -sjis-terminal\"";
} else if (charCode == 2) {
ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=euc -sjis-terminal\"";
} else if (charCode == 1) {
ptex2pdf = "ptex2pdf -l -ot \"-no-guess-input-enc -kanji=jis -sjis-terminal\"";
}
ptex2pdf += " " + ["\"", b, "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + ptex2pdf + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**pdfpLaTeX2A.js [#dab82aa3]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var latex = "platex -guess-input-enc -sjis-terminal";
var charCode = Editor.GetCharCode();
if (charCode == 4) {
latex = "platex -no-guess-input-enc -kanji=utf8 -sjis-terminal";
} else if (charCode == 0) {
latex = "platex -no-guess-input-enc -kanji=sjis -sjis-terminal";
} else if (charCode == 2) {
latex = "platex -no-guess-input-enc -kanji=euc -sjis-terminal";
} else if (charCode == 1) {
latex = "platex -no-guess-input-enc -kanji=jis -sjis-terminal";
}
latex += " " + ["\"", b, "\""].join("");
var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -g > " + ["\"", b, ".ps", "\""].join("");
var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvips + " && " + ps2pdf + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**pdfupLaTeXA.js [#p63937bf]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var ptex2pdf = "ptex2pdf -l -u -ot \"-no-guess-input-enc -kanji=utf8\"" + " " + ["\"", b, "\""].join("");
var ptex2pdf = "ptex2pdf -l -u -ot \"-no-guess-input-enc -kanji=utf8 -sjis-terminal\"" + " " + ["\"", b, "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + ptex2pdf + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**pdfupLaTeX2A.js [#q7e5677d]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var latex = "uplatex -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join("");
var latex = "uplatex -no-guess-input-enc -kanji=utf8 -sjis-terminal" + " " + ["\"", b, "\""].join("");
var dvips = "dvips -Ppdf -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -u > " + ["\"", b, ".ps", "\""].join("");
var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvips + " && " + ps2pdf + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**pdfLaTeXA.js [#sf8bfeac]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var pdflatex = "pdflatex" + " " + ["\"", b, "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + pdflatex + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**LuaLaTeXA.js [#y3996da5]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var lualatex = "lualatex" + " " + ["\"", b, "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + lualatex + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**LuaJITLaTeXA.js [#cfc61c8f]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var luajitlatex = "luajitlatex" + " " + ["\"", b, "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + luajitlatex + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----
**XeLaTeXA.js [#n9a237cf]
----
(function () {
var c = Editor.ExpandParameter("$e");
var b = Editor.ExpandParameter("$g");
var cd = "cd /d " + ["\"", c, "\""].join("");
var xelatex = "xelatex" + " " + ["\"", b, "\""].join("");
var pdf = ["\"", b, ".pdf", "\""].join("");
var pdfopen = "powershell -Command \"& {$$pdf = \"\"" + pdf + "\"\"; $$pages = (pdfinfo $$pdf | Select-String \"^Pages:\"); $$page = (-split $$pages)[1]; pdfopen --rxi --file $$pdf --page $$page}\"";
var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && pdfopen --rxi --file " + pdf + " && pdfclose --rxi --file " + pdf;
var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + xelatex + " && " + pdfopen;
var button = Editor.MessageBox(cmd, 1);
if (button == 1) {
Editor.FileSave();
Editor.ExecCommand(cmd, 1);
}
}.call(this));
----