- 追加された行はこの色です。
- 削除された行はこの色です。
[[gPad]] > マクロ
&color(White,#5F2F2F){ ''◆目次◆'' };&br;
#contents
*マクロ [#w9b67570]
マクロを使うと LaTeX 環境を簡単に作ることができます.
**pdfpLaTeX.js [#b88feabd]
**Typeset.js [#b88feabd]
----
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";
latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join("");
var dvipdfm = "dvipdfmx" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + latex + " && " + dvipdfm;
(function () {
menu = CreatePopupMenu();
menu.Add("pLaTeX (ptex2pdf)", 1, 0);
menu.Add("pLaTeX (dvips + ps2pdf)", 2, 0);
menu.Add("upLaTeX (ptex2pdf)", 3, 0);
menu.Add("upLaTeX (dvips + ps2pdf)", 4, 0);
menu.Add("pdfLaTeX", 5, 0);
menu.Add("LuaLaTeX", 6, 0);
menu.Add("LuaJITLaTeX", 7, 0);
menu.Add("XeLaTeX", 8, 0);
menu.Add("", 0, meMenuSeparator);
menu.Add("pLaTeX (ptex2pdf) [Adobe Reader]", 11, 0);
menu.Add("pLaTeX (dvips + ps2pdf) [Adobe Reader]", 12, 0);
menu.Add("upLaTeX (ptex2pdf) [Adobe Reader]", 13, 0);
menu.Add("upLaTeX (dvips + ps2pdf) [Adobe Reader]", 14, 0);
menu.Add("pdfLaTeX [Adobe Reader]", 15, 0);
menu.Add("LuaLaTeX [Adobe Reader]", 16, 0);
menu.Add("LuaJITLaTeX [Adobe Reader]", 17, 0);
menu.Add("XeLaTeX [Adobe Reader]", 18, 0);
menu.Add("", 0, meMenuSeparator);
menu.Add("pBibTeX", 51, 0);
menu.Add("upBibTeX", 52, 0);
menu.Add("BibTeX", 53, 0);
menu.Add("BibTeXu", 54, 0);
menu.Add("", 0, meMenuSeparator);
menu.Add("Mendex", 61, 0);
menu.Add("MakeIndex", 62, 0);
menu.Add("TeXindy", 63, 0);
menu.Add("", 0, meMenuSeparator);
menu.Add("TeXworks", 71, 0);
menu.Add("SumatraPDF", 72, 0);
menu.Add("fwdsumatrapdf", 73, 0);
menu.Add("pdfopen", 74, 0);
menu.Add("", 0, meMenuSeparator);
menu.Add("Quit", 99, 0);
var menuItem = menu.Track(0);
switch (menuItem) {
case 1:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var ptex2pdf = "ptex2pdf -l -ot \"-synctex=1 -guess-input-enc -sjis-terminal\"" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + ptex2pdf;
execute(cmd);
break;
case 2:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var latex = "platex -synctex=1 -guess-input-enc -sjis-terminal" + " " + ["\"", 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;
execute(cmd);
break;
case 3:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].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;
execute(cmd);
break;
case 4:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].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;
execute(cmd);
break;
case 5:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var pdflatex = "pdflatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + pdflatex;
execute(cmd);
break;
case 6:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var lualatex = "lualatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + lualatex;
execute(cmd);
break;
case 7:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var luajitlatex = "luajitlatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + luajitlatex;
execute(cmd);
break;
case 8:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var xelatex = "xelatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + xelatex;
execute(cmd);
break;
case 11:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var ptex2pdf = "ptex2pdf -l -ot \"-guess-input-enc -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;
execute(cmd);
break;
case 12:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var latex = "platex -guess-input-enc -sjis-terminal" + " " + ["\"", 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;
execute(cmd);
break;
case 13:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].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;
execute(cmd);
break;
case 14:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].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;
execute(cmd);
break;
case 15:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
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;
execute(cmd);
break;
case 16:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
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;
execute(cmd);
break;
case 17:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
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;
execute(cmd);
break;
case 18:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
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;
execute(cmd);
break;
case 51:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "pbibtex -kanji=utf8 -sjis-terminal" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
execute(cmd);
break;
case 52:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "upbibtex" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
execute(cmd);
break;
case 53:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "bibtex" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
execute(cmd);
break;
case 54:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var bibtex = "bibtexu" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
execute(cmd);
break;
case 61:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var makeindex = "mendex -U -T" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + makeindex;
execute(cmd);
break;
case 62:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var makeindex = "makeindex" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + makeindex;
execute(cmd);
break;
case 63:
var c = document.Path;
var b = new ActiveXObject("Scripting.FileSystemObject").GetBaseName(document.Name);
var cd = "cd /d " + ["\"", c, "\""].join("");
var makeindex = "texindy" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + makeindex;
execute(cmd);
break;
case 71:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var currentTeXFile = document.FullName;
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var texworks = "texworks";
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
main();
----
:ショートカット|Ctrl+Alt+J
**pdfpLaTeX2.js [#ledbb00b]
----
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";
latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", 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 mainTeXDir = fso.GetParentFolderName(pdfFile);
var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
var args = texworks + " " + pdfFile;
var cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
break;
case 72:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var gpad = editor.FullName;
var currentTeXFile = document.FullName;
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var line = document.selection.GetActivePointY(ePosLogical);
var sumatraPDF = "C:/Program Files/SumatraPDF/SumatraPDF.exe";
var existSumatraPDF = true;
var mainTeXDir;
var cd;
var cmd;
var args;
main();
----
:ショートカット|Ctrl+Alt+K
**pdfupLaTeX.js [#d1ed0d34]
----
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;
if (!fso.FileExists(sumatraPDF)) {
sumatraPDF = "C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe";
if (!fso.FileExists(sumatraPDF)) {
sumatraPDF = prompt("Input the path to SumatraPDF.exe.", "SumatraPDF.exe");
if (!fso.FileExists(sumatraPDF)) {
sumatraPDF = "rundll32 shell32,ShellExec_RunDLL SumatraPDF";
existSumatraPDF = false;
}
}
}
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
if (existSumatraPDF) {
sumatraPDF = ["\"", sumatraPDF, "\""].join("");
}
main();
----
:ショートカット|Shift+Alt+J
**pdfupLaTeX2.js [#vb3b2bff]
----
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 -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;
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
mainTeXDir = fso.GetParentFolderName(pdfFile);
cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
currentTeXFile = ["\"", currentTeXFile, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
main();
----
:ショートカット|Shift+Alt+K
**pdfLaTeX.js [#d94b29c5]
----
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;
args = sumatraPDF + " -reuse-instance " + pdfFile + " -inverse-search \"\\\"" + gpad + "\\\" -NoMultipleBoot -Y=%l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line;
cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
break;
case 73:
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/bin/fwdsumatrapdf.exe";
var existFwdSumatraPDF = true;
var mainTeXDir;
var cd;
var cmd;
var args;
if (!fso.FileExists(fwdsumatrapdf)) {
fwdsumatrapdf = prompt("Input the path to fwdsumatrapdf.exe.", "fwdsumatrapdf.exe");
if (!fso.FileExists(fwdsumatrapdf)) {
fwdsumatrapdf = "fwdsumatrapdf.exe";
existFwdSumatraPDF = false;
}
}
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
if (existFwdSumatraPDF) {
fwdsumatrapdf = ["\"", fwdsumatrapdf, "\""].join("");
}
main();
----
:ショートカット|Shift+Alt+H
**LuaLaTeX.js [#zfcfa91e]
----
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;
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
mainTeXDir = fso.GetParentFolderName(pdfFile);
cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
currentTeXFile = ["\"", currentTeXFile, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
main();
----
:ショートカット|Shift+Alt+Y
**LuaJITLaTeX.js [#f63f5aa7]
----
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 luajitlatex = "luajitlatex -synctex=1" + " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + luajitlatex;
args = fwdsumatrapdf + " " + pdfFile + " " + currentTeXFile + " " + line;
cmd = "cmd /c " + cd + " && " + args;
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
break;
case 74:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var currentTeXFile = document.FullName;
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var pdfopen = "pdfopen";
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
}
}
main();
----
:ショートカット|Shift+Alt+U
**XeLaTeX.js [#n5d84d27]
----
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 mainTeXDir = fso.GetParentFolderName(pdfFile);
var cd = "cd /d " + ["\"", mainTeXDir, "\""].join("");
pdfFile = ["\"", pdfFile, "\""].join("");
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
:ショートカット|Shift+Alt+I
**pBibTeX.js [#oabf20f6]
----
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 -kanji=utf8 -sjis-terminal";
bibtex += " " + ["\"", b, "\""].join("");
var cmd = "cmd /c " + cd + " && " + bibtex;
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
:ショートカット|Ctrl+Alt+N
**upBibTeX.js [#w302791d]
----
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 = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
:ショートカット|Shift+Alt+N
**Mendex.js [#pa08cf71]
----
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 -U -T";
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();
----
:ショートカット|Ctrl+Alt+M
**TeXworks.js [#eed78d60]
----
function main()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var currentTeXFile = document.FullName;
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var texworks = "texworks";
if (!fso.FileExists(pdfFile)) {
var mainTeXFile = prompt("Input the path to main TeX file.", pdfFile.replace(new RegExp(/\.[^.]*$/), ".tex"));
if (mainTeXFile != "") {
pdfFile = mainTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var args = pdfopen + " --rxi --file " + pdfFile;
var cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
break;
case 99:
break;
default:
break;
}
}
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";
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
main();
function execute(commandLine) {
var ok = confirm(commandLine);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(commandLine, 1, true);
}
}
}.call(this));
----
:ショートカット|Ctrl+Alt+O
:ショートカット|Ctrl+T
*SumatraPDF との連携 [#vb348fe8]
**forward and inverse search (SumatraPDF を前面に表示したい場合) [#l2061012]
***SumatraPDF.js [#vcd32599]
----
function main()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var gpad = editor.FullName;
var currentTeXFile = document.FullName;
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var line = document.selection.GetActivePointY(ePosLogical);
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 = 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 = 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 \"\\\"" + gpad + "\\\" -Y=%l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line;
cmd = "cmd /c " + cd + " && echo " + args + " | cmd";
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
main();
----
Typeset.js を実行して
**forward search (SumatraPDF を前面に表示したくない場合) [#q6af99da]
-pLaTeX (ptex2pdf)
-pLaTeX (dvips + ps2pdf)
-upLaTeX (ptex2pdf)
-upLaTeX (dvips + ps2pdf)
-pdfLaTeX
-LuaLaTeX
-LuaJITLaTeX
-XeLaTeX
[[SumatraPDF#fwdsumatrapdf.exe>SumatraPDF#n8da77e2]] の fwdsumatrapdf.exe を使用します.~
を選択します.
***fwdsumatrapdf.js [#c541770c]
----
function main()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var currentTeXFile = document.FullName;
var pdfFile = currentTeXFile.replace(new RegExp(/\.[^.]*$/), ".pdf");
var line = document.selection.GetActivePointY(ePosLogical);
var fwdsumatrapdf = "C:/w32tex/NDde/Binary/fwdsumatrapdf.exe";
var mainTeXDir;
var cd;
var cmd;
var args;
再び Typeset.js を実行して SumatraPDF を選択します.~
if (!fso.FileExists(fwdsumatrapdf)) {
fwdsumatrapdf = 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 = 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 [#dae36579]
**forward search (SumatraPDF を前面に表示したくない場合) [#q6af99da]
C:\gPad\gPad.exe -Y=%l "%f"
[[SumatraPDF#fwdsumatrapdf.exe>SumatraPDF#n8da77e2]] の fwdsumatrapdf.exe を使用します.~
*Adobe Reader との連携 [#k7e32b43]
Typeset.js を実行して
**pdfpLaTeXA.js [#w9c8fc43]
-pLaTeX (ptex2pdf)
-pLaTeX (dvips + ps2pdf)
-upLaTeX (ptex2pdf)
-upLaTeX (dvips + ps2pdf)
-pdfLaTeX
-LuaLaTeX
-LuaJITLaTeX
-XeLaTeX
----
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";
latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", b, "\""].join("");
var dvipdfm = "dvipdfmx" + " " + ["\"", 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 + " & " + latex + " && " + dvipdfm + " && " + pdfopen;
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
を選択します.
**pdfpLaTeX2A.js [#f3490b53]
再び Typeset.js を実行して fwdsumatrapdf を選択します.~
----
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";
latex += " " + "-jobname=" + ["\"", b, "\""].join("") + " " + ["\"", 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 ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
**inverse search [#dae36579]
**pdfupLaTeXA.js [#rf2dcd15]
"C:\gPad\gPad.exe" -NoMultipleBoot -Y=%l "%f"
----
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 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 + " && " + dvipdfm + " && " + pdfopen;
var ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
*Adobe Reader との連携 [#k7e32b43]
**pdfupLaTeX2A.js [#r2783faf]
Typeset.js を実行して
----
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 -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 ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
-pLaTeX (ptex2pdf) [Adobe Reader]
-pLaTeX (dvips + ps2pdf) [Adobe Reader]
-upLaTeX (ptex2pdf) [Adobe Reader]
-upLaTeX (dvips + ps2pdf) [Adobe Reader]
-pdfLaTeX [Adobe Reader]
-LuaLaTeX [Adobe Reader]
-LuaJITLaTeX [Adobe Reader]
-XeLaTeX [Adobe Reader]
**pdfLaTeXA.js [#z77a2cf6]
を選択します.
----
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 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 ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
**LuaLaTeXA.js [#ia6cdb6b]
----
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 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 ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
**LuaJITLaTeXA.js [#x4fb0b25]
----
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 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 ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----
**XeLaTeXA.js [#u5a50eee]
----
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 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 ok = confirm(cmd);
if (ok) {
document.Save();
new ActiveXObject("WScript.Shell").Run(cmd, 1, true);
}
}
main();
----