Macro/投稿/79 のバックアップの現在との差分(No.4)




  • 追加された行はこの色です。
  • 削除された行はこの色です。
* LuaLaTeX でタイプセット → PDF を表示  [#z27b03ee]
* LaTeX用タイプセットスクリプト  [#z27b03ee]
-ページ: [[Macro/投稿]]
-作者: sai
-カテゴリー: js
-投稿日: 2014-01-22 (水) 15:00:00
-投稿日: 2015-10-27 (火) 00: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;
*** LaTeX用タイプセットスクリプト [#ae3ef185]
-Typeset.js

    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;
            }
        }
    }
サクラエディタ Ver. 2.2.0.0 以降が必要です.

    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));
}}

#code(javascript,Typeset.js)
----

#comment


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS