[[サクラエディタ]] > マクロ

&color(White,#5F2F2F){  ''◆目次◆''  };&br;

#contents

*マクロ [#k75075b0]

-[[Macro - SakuraEditorWiki:http://sakura.qp.land.to/?Macro]]
--[[Macro/投稿:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6]]
//-[[サクラエディタマクロ: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/HLP000103.html]]
---[[マクロ専用関数: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]]
-[[選択行コメントアウト:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F64]]
(maru さん)
//(JScript)
-[[Tex用画像挿入:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F77]]
(てふにしゃん さん)
-[[Tex用数式挿入:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F78]]
(てふにしゃん さん)
-[[TeX→PDF用マクロ:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F79]]
(てふにしゃん さん)
//(JScript)
-[[VSライクなhtml終タグ自動補完 & texの\end補完:http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F158]]
(peak さん)
//(JScript)
-[[LaTeX+SakuraEditorマクロ:http://www.sidewarehouse.net/sakura.html]]
(横倉 勇希 さん)
//(JScript)
-[[SakuraエディタのTeX用マクロ:http://execyou.blogspot.com/]]
(横前 拓磨 さん)
//(JScript)
-[[サクラエディタ - 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)
-[[サクラエディタでAspell:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1036830290]]
(angel_o_f_hell さん, pa10user さん)
//(JScript)
-[[Aspell の導入:http://yaplog.jp/ukokke69/archive/2032]] (うこっけ さん)

マクロを使うと 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     pdfupLaTeX   pdfupLaTeX.js     on                        };&br;
 ∣ 1                             off&br;
 ∣ 2                             off&br;
 ∣ …                              …&br;
 ∣ 47                             off&br;
 ∣ 48                             off&br;
 ∣ 49                             off&br;

  名前(N)  %%%pdfupLaTeX                                  %%%  Id: &color(Black,#EEEEEE){[0   ''ᐯ'']};&br;
  File     %%%pdfupLaTeX.js                                 ''ᐯ''%%%  &color(Black,#EEEEEE){[ 設定(A) ]};&br;
  ☑マクロを実行するたびにファイルを読み込みなおす(L)   キャンセル確認待ち時間 %%%10%%%  秒&br;
  自動実行:  ☐新規/開ファイル後(O)   ☐タイプ変更後(T)   ☐ファイル保存前(S)&br;
----

以下のマクロを使用する場合は サクラエディタ Ver. 2.1.0.0 以降が必要です.

**マクロにショートカットキーを割り当てる方法 [#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;
&br;
----

**pdfupLaTeX.js [#l9863978]

----
 (function () {
     var c = Editor.ExpandParameter("$e");
     var b = Editor.ExpandParameter("$g");
     var cd = "cd /d " + ["\"", c, "\""].join("");
     var ptex2pdf = "ptex2pdf -u -l -ot \"-synctex=1 -no-guess-input-enc -kanji=utf8\"" + " " + ["\"", b, "\""].join("");
     var cmd = "cmd /c " + cd + " && " + ptex2pdf;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Ctrl+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 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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Ctrl+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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Shift+Alt+J

**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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Shift+Alt+K

**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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Shift+Alt+I

**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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Ctrl+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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Shift+Alt+N

**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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Shift+Alt+U

**Mendex.js [#p1a2e7ba]

----
 (function () {
     var c = Editor.ExpandParameter("$e");
     var b = Editor.ExpandParameter("$g");
     var cd = "cd /d " + ["\"", c, "\""].join("");
     var makeindex = "mendex -U -T" + " " + ["\"", b, "\""].join("");
     var makeindex = "mendex -U" + " " + ["\"", b, "\""].join("");
     var cmd = "cmd /c " + cd + " && " + makeindex;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Ctrl+Alt+Y

**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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Shift+Alt+Y

*SumatraPDF との連携 [#t7a83c73]

**forward and inverse search (SumatraPDF を前面に表示したい場合) [#p7bf3825]

***SumatraPDF.js [#s758d3d9]
----
 (function () {
     var fso = new ActiveXObject("Scripting.FileSystemObject");
     var wshShell = new ActiveXObject("WScript.Shell");
     var sakuraEditor = Editor.ExpandParameter("$S");
     var currentTeXFile = Editor.ExpandParameter("$F");
     var suffix = /\.[^.]*$/;
     var pdfFile = currentTeXFile.replace(suffix, ".pdf");
     var line = Editor.ExpandParameter("$y");
     var sumatraPDF = "C:\\Program Files\\SumatraPDF\\SumatraPDF.exe";
     var existSumatraPDF = true;
 
     try {
         sumatraPDF = wshShell.RegRead("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\SumatraPDF.exe\\");
     } catch (e) {
         if (!fso.FileExists(sumatraPDF)) {
             sumatraPDF = Editor.InputBox("Input the path to SumatraPDF.exe.", "SumatraPDF.exe", 255);
             if (!fso.FileExists(sumatraPDF)) {
                 sumatraPDF = "rundll32 shell32,ShellExec_RunDLL SumatraPDF";
                 existSumatraPDF = false;
             }
         }
     }
 
     if (existSumatraPDF) {
         sumatraPDF = ["\"", sumatraPDF, "\""].join("");
     }
 
     if (!fso.FileExists(pdfFile)) {
         var mainTeXFile = Editor.InputBox("Input the path to main TeX file.", pdfFile.replace(suffix, ".tex"), 255);
         if (mainTeXFile != "") {
             pdfFile = mainTeXFile.replace(suffix, ".pdf");
         }
     }
 
     var mainTeXDir = fso.GetParentFolderName(pdfFile);
     var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
     currentTeXFile = ["\"", currentTeXFile, "\""].join("");
     pdfFile = ["\"", pdfFile, "\""].join("");
 
     var args = sumatraPDF + " -reuse-instance " + pdfFile + " -inverse-search \"\\\"" + sakuraEditor + "\\\" -Y=%l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line;
     var cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
     Editor.StatusMsg(cmd, 0);
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

:キー割り当て|Ctrl+Alt+O

**forward search (SumatraPDF を前面に表示したくない場合) [#wa5982c4]

[[SumatraPDF/fwdsumatrapdf]] の fwdsumatrapdf.exe を使用します.~

***fwdsumatrapdf.js [#ce8c0353]
----
 (function () {
     var fso = new ActiveXObject("Scripting.FileSystemObject");
     var currentTeXFile = Editor.ExpandParameter("$F");
     var suffix = /\.[^.]*$/;
     var pdfFile = currentTeXFile.replace(suffix, ".pdf");
     var line = Editor.ExpandParameter("$y");
     var fwdsumatrapdf = "fwdsumatrapdf.exe";
 
     if (!fso.FileExists(pdfFile)) {
         var mainTeXFile = Editor.InputBox("Input the path to main TeX file.", pdfFile.replace(suffix, ".tex"), 255);
         if (mainTeXFile != "") {
             pdfFile = mainTeXFile.replace(suffix, ".pdf");
         }
     }
 
     var mainTeXDir = fso.GetParentFolderName(pdfFile);
     var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
     currentTeXFile = ["\"", currentTeXFile, "\""].join("");
     pdfFile = ["\"", pdfFile, "\""].join("");
 
     var args = fwdsumatrapdf + " " + pdfFile + " " + currentTeXFile + " " + line;
     var cmd = "cmd /c " + cd + " && " + args;
     Editor.StatusMsg(cmd, 0);
     Editor.ExecCommand(cmd, 0x81);
 }.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"

*TeXworks との連携 [#s01ddee6]
**TeXworks.js [#w4b007fd]

----
 (function () {
     var fso = new ActiveXObject("Scripting.FileSystemObject");
     var currentTeXFile = Editor.ExpandParameter("$F");
     var suffix = /\.[^.]*$/;
     var pdfFile = currentTeXFile.replace(suffix, ".pdf");
     var texworks = "texworks";
 
     if (!fso.FileExists(pdfFile)) {
         var mainTeXFile = Editor.InputBox("Input the path to main TeX file.", pdfFile.replace(suffix, ".tex"), 255);
         if (mainTeXFile != "") {
             pdfFile = mainTeXFile.replace(suffix, ".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.StatusMsg(cmd, 0);
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----

*Adobe Reader との連携 [#md7b02af]

**pdfupLaTeXA.js [#p63937bf]

----
 (function () {
     var c = Editor.ExpandParameter("$e");
     var b = Editor.ExpandParameter("$g");
     var cd = "cd /d " + ["\"", c, "\""].join("");
     var ptex2pdf = "ptex2pdf -u -l -ot \"-no-guess-input-enc -kanji=utf8\"" + " " + ["\"", 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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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 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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.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;
 
     Editor.StatusMsg(cmd, 0);
     Editor.FileSave();
     Editor.ExecCommand(cmd, 0x81);
 }.call(this));
----