*[[Mery:http://www.haijin-boys.com/island/wiki/]] [#l6f5ffa3] #ref(http://www.haijin-boys.com/island/wiki/images/logo.png,right,around,nolink,Mery) &color(White,#5F2F2F){ ''◆目次◆'' };&br; #contents #img(,clear) *Mery とは [#acb30ba1] Mery は Windows 7, Vista, XP で動作する国産でフリーのシンプルなテキストエディタです. Mery は -TeX の色分け -辞書ファイルによる入力補完 -アウトライン解析 に対応しています. -[[Mery - Mery's Factory:http://www.haijin-boys.com/island/wiki/]] --[[更新履歴:http://www.haijin-boys.com/island/wiki/index.php?title=Mery%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89]] --[[マクロリファレンス:http://www.haijin-boys.com/island/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9]] --[[kuro (haijinboys) on Twitter:http://twitter.com/haijinboys]] -[[窓の杜 - Mery:http://www.forest.impress.co.jp/lib/offc/document/txteditor/mery.html]] -[[Vector - Mery:http://www.vector.co.jp/soft/winnt/writing/se476839.html]] -[[まるエミュ for Mery:http://homepage3.nifty.com/kinzoku/editor/]] *既定のエンコード [#ccaf57fb] LaTeX 文書で使用するエンコードを指定します. -Unicode (UTF-8, BOM無) -Unicode (UTF-8, BOM有) -日本語 (シフト JIS) -日本語 (EUC) -日本語 (JIS) ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; ''[ 基本 ]''&color(Black,#EEEEEE){%%%[ 表示 ][ 記号 ][ 関連付け ][ キーボード ][ 履歴 ]%%%};&br; 折り返し方法(W): ☑行番号を表示(N)&br; &color(Black,#EEEEEE){[ウィンドウの右端で折り返し ▼]}; ☑ルーラを表示(R)&br; 行の表示方法(D): ☑ルーラで文字数を指定する(S)&br; &color(Black,#EEEEEE){[論理座標 ▼]}; ☑折り返し線を表示(A)&br; 文字数(M): %%% 80[◆]%%% ☑カーソルのある行に下線を表示(U)&br; 引用マーク(Q): %%%> %%% ☑対応する括弧を強調する(H)&br; タブの桁数(T): &color(Black,#EEEEEE){[2 ▼]}; ☐自動インデントを有効にする(T)&br; 行間隔(L): %%% 0[◆]%%% ☐タブの代わりに空白を挿入(I)&br; 既定のエンコード(E): ☐かな漢字変換を起動(P)&br; &color(Black,#EEEEEE){[Unicode (UTF-8, BOM無) ▼]}; ☑URLをダブルクリックするとそのURLを表示(K)&br; 既定の改行コード(C): ☑カーソル位置とブックマークを保存する(V)&br; &color(Black,#EEEEEE){[CR+LF (Windows) ▼]}; ☐ウィンドウ位置を復元(O)&br; ☐ウィンドウサイズを復元(Z)&br; ☐トレイアイコンを表示(Y)&br; ---- *マクロ [#oa5f5cea] マクロを使うと [[サクラエディタ]], [[gPad]] と同様に,LaTeX 環境を簡単に作ることができます. マクロは,メニューの [マクロ(M)] から選択することで実行できます. **pdfpLaTeX.js [#w4e337a9] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "platex -synctex=1 -guess-input-enc -sjis-terminal"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { latex = "platex -synctex=1 -guess-input-enc -sjis-terminal"; } else if (encoding == meEncodingJIS) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=jis -sjis-terminal"; } else if (encoding == meEncodingEUC) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=euc -sjis-terminal"; } else if (encoding == meEncodingSJIS) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=sjis -sjis-terminal"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal"; } latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join(""); var dvipdfm = "dvipdfmx" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + latex + " && " + dvipdfm; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で pdfpLaTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Ctrl+Alt+J%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; &color(White,#1188FF){pdfpLaTeX.js };&br; &br; ---- **pdfpLaTeX2.js [#ia1c6201] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "platex -synctex=1 -guess-input-enc -sjis-terminal"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { latex = "platex -synctex=1 -guess-input-enc -sjis-terminal"; } else if (encoding == meEncodingJIS) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=jis -sjis-terminal"; } else if (encoding == meEncodingEUC) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=euc -sjis-terminal"; } else if (encoding == meEncodingSJIS) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=sjis -sjis-terminal"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { latex = "platex -synctex=1 -no-guess-input-enc -kanji=utf8 -sjis-terminal"; } latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join(""); var dvips = "dvips -Ppdf -t a4 -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 ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で pdfpLaTeX2.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Ctrl+Alt+K%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; &color(White,#1188FF){pdfpLaTeX2.js };&br; &br; ---- **pdfupLaTeX.js [#cca95ce9] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "uplatex -synctex=1 -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join(""); var dvipdfm = "dvipdfmx" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + latex + " && " + dvipdfm; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で pdfupLaTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Shift+Alt+J%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; &color(White,#1188FF){pdfupLaTeX.js };&br; &br; ---- **pdfupLaTeX2.js [#s6641f74] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "uplatex -synctex=1 -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join(""); var dvips = "dvips -Ppdf -t a4 -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 ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で pdfupLaTeX2.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Shift+Alt+K%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; &color(White,#1188FF){pdfupLaTeX2.js };&br; &br; ---- **pdfLaTeX.js [#a177f996] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var pdflatex = "pdflatex -synctex=1" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + pdflatex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で pdfLaTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Shift+Alt+H%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; &color(White,#1188FF){pdfLaTeX.js };&br; &br; ---- **LuaLaTeX.js [#a56da2a2] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var lualatex = "lualatex -synctex=1" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + lualatex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で LuaLaTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Shift+Alt+U%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; pdfLaTeX.js&br; &color(White,#1188FF){LuaLaTeX.js };&br; &br; ---- **XeLaTeX.js [#x3721d4b] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var xelatex = "xelatex -synctex=1" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + xelatex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で XeLaTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Shift+Alt+I%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; pdfLaTeX.js&br; LuaLaTeX.js&br; &color(White,#1188FF){XeLaTeX.js };&br; &br; ---- **pBibTeX.js [#qbbeae1b] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var bibtex = "pbibtex -sjis-terminal"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { bibtex = "pbibtex -sjis-terminal"; } else if (encoding == meEncodingJIS) { bibtex = "pbibtex -kanji=jis -sjis-terminal"; } else if (encoding == meEncodingEUC) { bibtex = "pbibtex -kanji=euc -sjis-terminal"; } else if (encoding == meEncodingSJIS) { bibtex = "pbibtex -kanji=sjis -sjis-terminal"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { bibtex = "pbibtex -kanji=utf8 -sjis-terminal"; } bibtex += " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + bibtex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で pBibTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Ctrl+Alt+N%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; pdfLaTeX.js&br; LuaLaTeX.js&br; XeLaTeX.js&br; &color(White,#1188FF){pBibTeX.js };&br; &br; ---- **upBibTeX.js [#v9f70ec9] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var bibtex = "upbibtex" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + bibtex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で upBibTeX.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Shift+Alt+N%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; pdfLaTeX.js&br; LuaLaTeX.js&br; XeLaTeX.js&br; pBibTeX.js&br; &color(White,#1188FF){upBibTeX.js };&br; &br; ---- **Mendex.js [#ff7fca42] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var makeindex = "mendex -ST"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { makeindex = "mendex -ST"; } else if (encoding == meEncodingJIS) { makeindex = "mendex -J -ST"; } else if (encoding == meEncodingEUC) { makeindex = "mendex -E -ST"; } else if (encoding == meEncodingSJIS) { makeindex = "mendex -S -ST"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { makeindex = "mendex -U -ST"; } makeindex += " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + makeindex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で Mendex.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Ctrl+Alt+M%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; pdfLaTeX.js&br; LuaLaTeX.js&br; XeLaTeX.js&br; pBibTeX.js&br; upBibTeX.js&br; &color(White,#1188FF){Mendex.js };&br; &br; ---- **TeXworks.js [#a5baaf50] [[TeXworks#組み込みの PDF ビューアに日本語を表示させる>TeXworks#t5313ebc]] を参照してフォントの埋め込みの設定を行います. ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var currentTeXFile = document.FullName; var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf"); var texworks = "C:/w32tex/share/texworks/TeXworks.exe"; var mainTeXDir; var cd; var cmd; var args; if (!fso.FileExists(texworks)) { texworks = window.Prompt("Input the path to TeXworks.exe.", "TeXworks.exe"); if (!fso.FileExists(texworks)) { texworks = "TeXworks.exe"; } } texworks = ["\"", texworks, "\""].join(""); if (!fso.FileExists(pdfFile)) { var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex")); if (mainTeXFile != "") { pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf"); } } mainTeXDir = fso.GetParentFolderName(pdfFile); cd = "cd /d " + ["\"", mainTeXDir, "\""].join(""); pdfFile = ["\"", pdfFile, "\""].join(""); args = texworks + " " + pdfFile; cmd = "cmd /c " + cd + " && echo " + args + " | cmd"; new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } main(); ---- [マクロ(M)]-[カスタマイズ(C)...]-[新規作成(N)] で TeXworks.js を選択します. [ツール(T)]-[オプション(O)...]-[キーボード] でショートカットキーを追加して割り当てます. ---- &color(Black,#6593CF){%%% &color(White){''オプション''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; &color(Black,#EEEEEE){%%%[ 基本 ][ 表示 ][ 記号 ][ 関連付け ]%%%};''[ キーボード ]''&color(Black,#EEEEEE){%%%[ 履歴 ]%%%};&br; &br; 分類(%%%C%%%): 追加するショートカットキー(%%%N%%%):&br; &color(Black,#EEEEEE){[マイ マクロ ▼]}; %%%Ctrl+Alt+O%%%&br; &br; コマンド(%%%O%%%): 現在のキー(%%%U%%%):&br; pdfpLaTeX.js&br; pdfpLaTeX2.js&br; pdfupLaTeX.js&br; pdfupLaTeX2.js&br; pdfLaTeX.js&br; LuaLaTeX.js&br; XeLaTeX.js&br; pBibTeX.js&br; upBibTeX.js&br; Mendex.js&br; &color(White,#1188FF){TeXworks.js };&br; &br; ---- *その他の便利な TeX 用マクロ [#w4fa8cd3] **[[テキストエディタMery用LaTeXコンパイルマクロ:http://blog.kassyi.com/2011/10/merylatex.html]] [#ffd665b4] **MeryからTeXのコンパイル&PDF生成ができるようにする (LaTeXMacro.js + makepdf.ps1) [#n2ac0dc8] -[[TexをWindowsで使う:http://blog.kassyi.com/2011/05/texwindows_05.html]] -[[TeXをWindowsで使う(まとめ):http://blog.kassyi.com/2011/05/texwindows.html]] *スクリプト [#jd5ec718] **Happy [#dad3b2d6] -[[Happy:http://www.u-gakugei.ac.jp/~takizawa/Happy/]] --HappyInput (TeX 入力支援スクリプト) --HappyTeX (TeX タイプセット&プレビュー支援スクリプト) *入力補完 [#p98d874e] Mery には TeX の入力補完機能があります. Mery.exe と同じフォルダ内に ext というフォルダがあります.(存在しない場合は作成してください.) その中に tex.txt という名前の辞書ファイルを作成します. 辞書ファイルの内容を例えば documentclass section とすると -\d を入力した後で Ctrl+Space を入力すると \documentclass -\s を入力した後で Ctrl+Space を入力すると \section が補完されます. 辞書ファイルを作成するのが面倒な場合は,辞書ファイルを作成しなくても編集中のファイルから候補を探して補完してくれます. *アウトライン [#c4b6fe35] Mery にはアウトラインのプラグインが標準添付されています. LaTeX の -部 (\part) -章 (\chapter) -節 (\section) -小節 (\subsection) -小々節 (\subsubsection) -段落 (\paragraph) -小段落 (\subparagraph) にジャンプできるようにカスタマイズします. [ツール(T)]-[プラグイン(P)]-[プラグインの設定(C)...] :プラグイン|Outline の [プロパティ(P)] ---- &color(Black,#6593CF){%%% &color(White){''プロパティ''}; &color(Black,#CC3333){%%%[ ''&color(White){✕};'' ]%%%}; %%%};&br; 位置(%%%P%%%): &color(Black,#EEEEEE){[右 ▼]};&br; タイプ(%%%T%%%): &color(Black,#EEEEEE){[カスタム ▼]};&br; レベル%%%1%%%: %%%\\part%%% ☑正規表現(R)&br; レベル%%%2%%%: %%%\\chapter%%% ☑正規表現(E)&br; レベル%%%3%%%: %%%\\section%%% ☑正規表現(G)&br; レベル%%%4%%%: %%%\\subsection%%% ☑正規表現(U)&br; レベル%%%5%%%: %%%\\subsubsection%%% ☑正規表現(L)&br; レベル%%%6%%%: %%%\\paragraph%%% ☑正規表現(A)&br; レベル%%%7%%%: %%%\\subparagraph%%% ☑正規表現(R)&br; ---- *コマンドライン引数 [#uf77c708] -「/l 行番号 ファイル名」でそのファイルの指定行で開く。 -「/fd」でファイルから検索ダイアログ表示。 -「/ti」でタスクトレイアイコンで起動(スタートアップとかにショートカット作るため) *SumatraPDF との連携 [#ra6f502f] **forward and inverse search (SumatraPDF v1.9.4622 以上の場合) [#deefc535] ***SumatraPDF.js [#r19c8de4] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var mery = editor.FullName; var currentTeXFile = document.FullName; var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf"); var line = document.selection.GetActivePointY(mePosLogical); 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 = window.Prompt("Input the path to SumatraPDF.exe.", "SumatraPDF.exe"); if (!fso.FileExists(sumatraPDF)) { sumatraPDF = "SumatraPDF.exe"; } } } sumatraPDF = ["\"", sumatraPDF, "\""].join(""); if (!fso.FileExists(pdfFile)) { var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex")); 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 \"\\\"" + mery + "\\\" /l %l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line; cmd = "cmd /c " + cd + " && echo " + args + " | cmd"; new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } main(); ---- **forward search (SumatraPDF v1.9.4622 未満 かつ SumatraPDF v1.7.3952 以上の場合) [#t56d91ba] [[SumatraPDF#fwdsumatrapdf.exe>SumatraPDF#n8da77e2]] の fwdsumatrapdf.exe を使用します.~ ***fwdsumatrapdf.js [#a81d6b86] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var currentTeXFile = document.FullName; var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf"); var line = document.selection.GetActivePointY(mePosLogical); var fwdsumatrapdf = "C:/w32tex/NDde/Binary/fwdsumatrapdf.exe"; var mainTeXDir; var cd; var cmd; var args; if (!fso.FileExists(fwdsumatrapdf)) { fwdsumatrapdf = window.Prompt("Input the path to fwdsumatrapdf.exe.", "fwdsumatrapdf.exe"); if (!fso.FileExists(fwdsumatrapdf)) { fwdsumatrapdf = "fwdsumatrapdf.exe"; } } fwdsumatrapdf = ["\"", fwdsumatrapdf, "\""].join(""); if (!fso.FileExists(pdfFile)) { var mainTeXFile = window.Prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex")); 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; new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } main(); ---- **inverse search [#d4cfb140] C:\Mery\Mery.exe /l %l "%f" *Adobe Reader との連携 [#efc77172] **pdfpLaTeXA.js [#h14da8ca] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "platex -guess-input-enc -sjis-terminal"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { latex = "platex -guess-input-enc -sjis-terminal"; } else if (encoding == meEncodingJIS) { latex = "platex -no-guess-input-enc -kanji=jis -sjis-terminal"; } else if (encoding == meEncodingEUC) { latex = "platex -no-guess-input-enc -kanji=euc -sjis-terminal"; } else if (encoding == meEncodingSJIS) { latex = "platex -no-guess-input-enc -kanji=sjis -sjis-terminal"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { latex = "platex -no-guess-input-enc -kanji=utf8 -sjis-terminal"; } latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join(""); var dvipdfm = "dvipdfmx" + " " + ["\"", b, "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvipdfm + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **pdfpLaTeX2A.js [#gd894185] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "platex -guess-input-enc -sjis-terminal"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { latex = "platex -guess-input-enc -sjis-terminal"; } else if (encoding == meEncodingJIS) { latex = "platex -no-guess-input-enc -kanji=jis -sjis-terminal"; } else if (encoding == meEncodingEUC) { latex = "platex -no-guess-input-enc -kanji=euc -sjis-terminal"; } else if (encoding == meEncodingSJIS) { latex = "platex -no-guess-input-enc -kanji=sjis -sjis-terminal"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { latex = "platex -no-guess-input-enc -kanji=utf8 -sjis-terminal"; } latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join(""); var dvips = "dvips -Ppdf -t a4 -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -g > " + ["\"", b, ".ps", "\""].join(""); var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvips + " && " + ps2pdf + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **pdfupLaTeXA.js [#hdc45060] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "uplatex -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join(""); var dvipdfm = "dvipdfmx" + " " + ["\"", b, "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvipdfm + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **pdfupLaTeX2A.js [#r820202a] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "uplatex -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join(""); var dvips = "dvips -Ppdf -t a4 -z -f" + " " + ["\"", b, ".dvi", "\""].join("") + " | convbkmk -u > " + ["\"", b, ".ps", "\""].join(""); var ps2pdf = "ps2pdf.bat" + " " + ["\"", b, ".ps", "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + latex + " && " + dvips + " && " + ps2pdf + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **pdfLaTeXA.js [#u17bbe76] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var pdflatex = "pdflatex" + " " + ["\"", b, "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + pdflatex + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **LuaLaTeXA.js [#k5350e5c] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var lualatex = "lualatex" + " " + ["\"", b, "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + lualatex + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **XeLaTeXA.js [#hbb42785] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var xelatex = "xelatex" + " " + ["\"", b, "\""].join(""); var pdfopen = "pdfopen --file" + " " + ["\"", b, ".pdf", "\""].join(""); var pdfclose = "tasklist /fi \"IMAGENAME eq AcroRd32.exe\" /nh | findstr \"AcroRd32.exe\" > nul && echo exit | pdfdde"; var cmd = "cmd /c " + cd + " && " + pdfclose + " & " + xelatex + " && " + pdfopen; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- *dviout との連携 (非推奨) [#fee7abf9] [[dviout#forward and inverse search>dviout#ycc841a2]] を参照. **pLaTeX.js [#jc3b9e8f] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "platex -src-specials -guess-input-enc -sjis-terminal"; var encoding = document.Encoding; if (encoding == meEncodingAutomatic) { latex = "platex -src-specials -guess-input-enc -sjis-terminal"; } else if (encoding == meEncodingJIS) { latex = "platex -src-specials -no-guess-input-enc -kanji=jis -sjis-terminal"; } else if (encoding == meEncodingEUC) { latex = "platex -src-specials -no-guess-input-enc -kanji=euc -sjis-terminal"; } else if (encoding == meEncodingSJIS) { latex = "platex -src-specials -no-guess-input-enc -kanji=sjis -sjis-terminal"; } else if (encoding == meEncodingUTF8 || encoding == meEncodingUTF8N) { latex = "platex -src-specials -no-guess-input-enc -kanji=utf8 -sjis-terminal"; } latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + latex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **upLaTeX.js [#i30bcc08] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var c = document.Path; var b = fso.GetBaseName(document.Name); var cd = "cd /d " + ["\"", c, "\""].join(""); var latex = "uplatex -src-specials -no-guess-input-enc -kanji=utf8" + " " + ["\"", b, "\""].join(""); var cmd = "cmd /c " + cd + " && " + latex; var ok = window.Confirm(cmd); if (ok) { document.Save(); new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } } main(); ---- **forward search [#x84b65ee] ***dviout.js [#q13fb76b] ---- function main() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var currentTeXFile = document.FullName; var dviFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".dvi"); var line = document.selection.GetActivePointY(mePosLogical); var dviout = "C:/w32tex/dviout/dviout.exe" var mainTeXDir; var cd; var cmd; var args; if (!fso.FileExists(dviout)) { dviout = window.Prompt("Input the path to dviout.exe.", "dviout.exe"); if (!fso.FileExists(dviout)) { dviout = "dviout.exe"; } } dviout = ["\"", dviout, "\""].join(""); if (!fso.FileExists(dviFile)) { var mainTeXFile = window.Prompt("Input the path to main TeX file.", dviFile.replace(new RegExp(/\.[^.]*$/), ".tex")); if (mainTeXFile != "") { dviFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".dvi"); } } mainTeXDir = fso.GetParentFolderName(dviFile); cd = "cd /d " + ["\"", mainTeXDir, "\""].join(""); currentTeXFile = ["'", fso.GetFileName(currentTeXFile), "'"].join(""); dviFile = ["\"", dviFile, "\""].join(""); args = dviout + " -1 " + dviFile + " \"# " + line + " " + currentTeXFile + "\""; cmd = "cmd /c " + cd + " && echo " + args + " | cmd"; new ActiveXObject("WScript.Shell").Run(cmd, 1, true); } main(); ---- **inverse search [#b5409d96] C:\Mery\Mery.exe^s /l %d "%s"