|
* LuaLaTeX でタイプセット → PDF を表示 [#z27b03ee] -ページ: [[Macro/投稿]] -作者: sai -カテゴリー: js -投稿日: 2014-01-22 (水) 15:00:00 ** メッセージ [#cc3bd5df] *** LuaLaTeX でタイプセット → SumatraPDF で表示 [#ae3ef185] #code(javascript){{ (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(""); } var mainTeXDir = fso.GetParentFolderName(pdfFile); var cd = "cd /d " + ["\"", mainTeXDir, "\""].join(""); currentTeXFile = ["\"", currentTeXFile, "\""].join(""); var lualatex = "lualatex -synctex=1" + " \"" + fso.GetBaseName(["\"", pdfFile.replace(suffix, ".tex"), "\""].join("")) + "\""; pdfFile = ["\"", pdfFile, "\""].join(""); var args = sumatraPDF + " -reuse-instance " + pdfFile + " -inverse-search \"\\\"" + sakuraEditor + "\\\" -X=1 -Y=%l \\\"%f\\\"\"" + " -forward-search " + currentTeXFile + " " + line; var cmd = "cmd /c " + cd + " && " + lualatex + " && echo " + args + " | cmd"; Editor.StatusMsg(cmd, 0); Editor.FileSave(); Editor.ExecCommand(cmd, 0x81); }.call(this)); }} *** LuaLaTeX でタイプセット → TeXworks で表示 [#b93c1d9f] #code(javascript){{ (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 mainTeXDir = fso.GetParentFolderName(pdfFile); var cd = "cd /d " + ["\"", mainTeXDir, "\""].join(""); var lualatex = "lualatex -synctex=1" + " \"" + fso.GetBaseName(["\"", pdfFile.replace(suffix, ".tex"), "\""].join("")) + "\""; var texworks = "powershell -Command \"& {$$line = \"\"\"" + line + "\"\"\"; $$src = \"\"\"" + currentTeXFile + "\"\"\"; $$pdf = \"\"\"" + pdfFile + "\"\"\"; $$param = $$line + \"\"\":0:\"\"\" + $$src; $$pageInfo = (synctex view -i $$param -o $$pdf | Select-String \"^Page:\"); $$page = ($$pageInfo -split \"\"\":\"\"\")[1]; texworks --position=$$page $$pdf}\""; var cmd = "cmd /c " + cd + " && "+ lualatex + " && " + texworks; Editor.StatusMsg(cmd, 0); Editor.FileSave(); Editor.ExecCommand(cmd, 0x81); }.call(this)); }} *** LuaLaTeX でタイプセット → Adobe Reader で表示 [#m614e1fe] #code(javascript){{ (function () { var currentTeXFile = Editor.ExpandParameter("$F"); var suffix = /\.[^.]*$/; var pdfFile = currentTeXFile.replace(suffix, ".pdf"); var line = Editor.ExpandParameter("$y"); var c = Editor.ExpandParameter("$e"); var b = Editor.ExpandParameter("$g"); var cd = "cd /d " + ["\"", c, "\""].join(""); var lualatex = "lualatex -synctex=1" + " " + ["\"", b, "\""].join(""); var pdf = ["\"", b, ".pdf", "\""].join(""); var pdfopen = "powershell -Command \"& {$$line = \"\"\"" + line + "\"\"\"; $$src = \"\"\"" + currentTeXFile + "\"\"\"; $$pdf = \"\"\"" + pdfFile + "\"\"\"; $$param = $$line + \"\"\":0:\"\"\" + $$src; $$pageInfo = (synctex view -i $$param -o $$pdf | Select-String \"^Page:\"); $$page = ($$pageInfo -split \"\"\":\"\"\")[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)); }} ---- #comment |