VS Code 上の LaTeX: PDF ビューアが更新されず、フォルダー内の 1 つのファイルしか実行できない

VS Code 上の LaTeX: PDF ビューアが更新されず、フォルダー内の 1 つのファイルしか実行できない

Windows 10 x64 で VS Code を使用してLaTeX Workshop 8.7.2LaTeX のドキュメントをコンパイルしようとしています。

私は3つの問題に直面しています:

  1. VS Code のタブに表示される PDF ビューアーは、PDF ビューアーを開いた後にドキュメントを再度コンパイルしても更新されません。別のプログラムで PDF ファイルを開くと更新されていることが示されるため、コンパイル時に更新されないのは VS Code のビューアーだけです。LaTeX Workshop: View LaTeX PDF file in VSCode tab最新の、つまり現在のバージョンの PDF ファイルを表示するには、タブを閉じて再度開く必要があります ( )。

  2. コンパイルしたいファイルがあるフォルダのtasks.jsonサブフォルダにあるファイルには、行が含まれています。オンラインの複数の場所で見ます(.vscodemyfilename.tex"myfilename.tex"ここで受け入れられた答えのように またはここ) は、%DOC%.texまたはであるべきであるようです%DOC%(ただし、最初のリンクでは、 ファイルが参照されていますが、これは以下のようになります。つまり、完全に異なります。これをまたは のみsettings.jsonでコンパイルすると、次のようになります。%DOC%.tex%DOC%

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7250 64-bit)
entering extended mode
! Emergency stop.
<*> %DOC%

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on texput.log.
The terminal process terminated with exit code: 1

この問題は、同じフォルダ内の2つのファイルをコンパイルする場合.tex、そのたびにファイル内のファイル名を手動で置き換える必要があることを意味しますtasks.json。私が試したのも無駄でしたが、次のとおりです(https://github.com/James-Yu/LaTeX-Workshop/issues/384"%DOCFILE%.tex"そして"%DOCFILE%")。

  1. PDF ファイル内にインデックスも作成したいと思います。以前使用していた TeXWorks では、MakeIndex次のように使用していました。

ここに画像の説明を入力してください

または(できれば と組み合わせてpdfLaTeX)このように

ここに画像の説明を入力してください

MakeIndexVS Code を使用して実行するには何をする必要がありますか?


私のファイルは次のとおりです: タスク.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run pdflatex",
            "type": "shell",
            "group": {
                "kind": "build"
            },
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "myfilename.tex"
            ]
        },
        {
            "label": "Run bibtex",
            "type": "shell",
            "group": {
                "kind": "test",
                "isDefault": true
            },
            "command": "bibtex",
            "args": [
                "-terse",
                "*.aux"
            ]
        },
        // {
        //     "label": "Run makeindex",
        //     "command": "makeindex",
        //     "args": [
        //           "myfilename.tex.nlo",
        //           "-s nomencl.ist",
        //           "-o myfilename.tex.nls%"
        //     ]
        // },
        {
            "label": "update pdf",
            "command": "${command:latex-workshop.refresh-viewer}",
            "problemMatcher": []
        },
        {
            "label": "Compile and update",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "dependsOrder": "sequence",
            "dependsOn": [
                // "Run makeindex",
                "Run pdflatex",
                "update pdf"
            ],
            "problemMatcher": []
        }
    ]
}

設定.json

{
    "latex-workshop.message.update.show": false,
    "latex-workshop.latex.autoClean.run": "onBuilt",
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.toc",
        // "*.blg",
        // "*.lof",
        // "*.lot",
        // "*.out",
        // "*.acn",
        // "*.acr",
        // "*.alg",
        // "*.glg",
        // "*.glo",
        // "*.gls",
        // "*.fls",
        // "*.log",
        // "*.fdb_latexmk",
        // "*.snm",
        "*.synctex(busy)",
        "*.synctex.gz(busy)",
        "*.nav"
    ],
    "latex-workshop.view.pdf.ref.viewer": "tabOrBrowser",
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.view.pdf.zoom": "page-fit",
    "window.zoomLevel": 1,
    "latex-workshop.latex.recipes": [
        {
          "name": "pdflatex ➞ bibtex ➞ pdflatex × 2",
          "tools": [
            "pdflatex",
            "bibtex",
            "pdflatex",
            "pdflatex"
          ]
        },
      ]
}

答え1

ついに の Github ページで の問題を作成しましたLaTeX-Workshop

使用しないでくださいタスクコンパイルのために。どこでそれを拾ったのかは今は思い出せませんが、それは良いことではありませんでした。

1 台のコンピューターで動作したのは、settings.json-file を次のように変更することでした。

{
    "cSpell.enabled": true,
    "editor.cursorBlinking": "solid",
    "editor.wordWrap": "on",
    "editor.wordWrapColumn": 80,
    "editor.wrappingIndent": "same",
    "latex-workshop.view.pdf.viewer": "tab",  
    "latex-workshop.view.pdf.zoom": "page-fit",
    "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true,
    "latex-workshop.latex.autoClean.run": "onFailed",
    "latex-workshop.latex.clean.subfolder.enabled": true,
    "latex-workshop.latex.clean.fileTypes": [ "*.aux"
        //, "*.toc", 
        // "*.ilg", 
        // "*.blg",
        // "*.lof",
        // "*.lot",
        // "*.out",
        // "*.acn",
        // "*.acr",
        // "*.alg",
        // "*.glg",
        // "*.glo",
        // "*.gls",
        // "*.fls",
        // "*.log",
        // "*.fdb_latexmk",
        // "*.snm"
    ],
    "latex-workshop.message.log.show": true,
    "latex-workshop.latex.recipes": [
        {
          "name": "latexmk",
          "tools": [
            "latexmk"
          ]
        },
        {
          "name": "pdflatex",
          "tools": [
            "pdflatex",
            // "bibtex",
            "makeindex",
            // "pdflatex",
            "pdflatex"
          ]
        }
      ],
    "latex-workshop.latex.tools":[
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-f",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-lualatex",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "latexmk_rconly",
            "command": "latexmk",
            "args": [
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ],
            "env": {}
       },
       { 
            "name": "makeindex",
            "command": "makeindex",
            "args": [
                "%DOCFILE%.nlo",
                "-s",
                "nomencl.ist",
                "-o",
                "%DOCFILE%.nls"
            ],
           "env": {}
      },
      {
            "name": "rnw2pdf",
            "command": "Rscript",
            "args": [
                "-e",
                "knitr::knit2pdf('%DOCFILE%')"
            ],
            "env": {}
      }
    ],
    "latex-workshop.message.update.show": false
}

で実行しますctrl + alt + b

特に、これは新しい PC (以前の使用から Windows 10、MikTeX、TeXWorks もインストール済み) で機能しました。この PC に、VS Code (1.44.0) と LaTeX Workshop 拡張機能 (8.8.0) をダウンロードしてインストールするだけで済みました。その後、settings.json上記のように調整すると、すべての問題が解決しました (ただし、PDF ビューアーがコンパイル時に自動的に更新されない (少なくとも定期的には更新されない) という問題があります。まだ問題を特定しようとしていますが、これは軽微な問題です)。

しかし、別のコンピューターではインストールしておらずperl、上記を使用するsettings.jsonとエラーが発生します。

latexmk: The script engine could not be found
latexmk: Data: scriptEngine="perl.exe", scriptName="latexmk"

latexmk設定ファイル内のレシピのコメントを解除すると、次のようになります。

  • ドキュメントはエラーなしでコンパイルされます
  • PDF はタブで更新されません。変更を確認するにはアイコンをもう一度クリックする必要があります。
  • 複数回のコンパイル後も目次が空のままになる
  • 参照されてlabelいるセクションとそのページ番号 ( refpageref) および は疑問符のみです。

関連情報