LaTeX auf VS Code: PDF-Viewer wird nicht aktualisiert und kann nur eine Datei in einem Ordner ausführen

LaTeX auf VS Code: PDF-Viewer wird nicht aktualisiert und kann nur eine Datei in einem Ordner ausführen

Ich versuche, VS Code unter Windows 10 x64 zu verwenden, um LaTeX Workshop 8.7.2Dokumente in LaTeX zu kompilieren.

Ich stehe vor drei Problemen:

  1. Der PDF-Viewer, der in einem Tab in VS Code angezeigt wird, aktualisiert sich nicht mehr, wenn ich das Dokument nach dem Öffnen des PDF-Viewers erneut kompiliere. Das Öffnen der PDF-Datei mit einem anderen Programm zeigt, dass sie aktualisiert wird. Es ist also nur der Viewer in VS Code, der sich beim Kompilieren nicht aktualisiert. Ich muss den Tab schließen und erneut öffnen ( LaTeX Workshop: View LaTeX PDF file in VSCode tab), um die neueste, also aktuelle Version der PDF-Datei anzuzeigen.

  2. Die Datei tasks.json, die im Unterordner .vscodedes Ordners liegt, in dem meine myfilename.tex-Datei liegt, die ich kompilieren möchte, enthält die Zeile "myfilename.tex". Ich sehe an mehreren Stellen online (wie die akzeptierte Antwort hier oder hier%DOC%.tex), dass dies anscheinend eher oder sein sollte %DOC%(obwohl im ersten Link auf die settings.jsonDatei verwiesen wird, die für mich wie folgt aussieht, also völlig anders. Wenn ich dies mit %DOC%.texoder nur kompiliere %DOC%, erhalte ich:

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

Dieses Problem bedeutet, dass ich, wenn ich zwei -Dateien im selben Ordner kompilieren möchte .tex, den Dateinamen in der Datei jedes Mal manuell ersetzen muss tasks.json. Was ich auch versucht habe, ohne Erfolg, ist (folgendhttps://github.com/James-Yu/LaTeX-Workshop/issues/384) "%DOCFILE%.tex"Und "%DOCFILE%").

  1. Ich möchte auch einen Index innerhalb der PDF-Datei erstellen. In TeXWorks, das ich vorher verwendet habe, habe ich es MakeIndexfolgendermaßen gemacht:

Bildbeschreibung hier eingeben

oder (vorzugsweise kombiniert mit pdfLaTeX) so

Bildbeschreibung hier eingeben

Was muss ich tun, MakeIndexum VS Code auszuführen?


Hier sind meine Dateien: Aufgaben.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": []
        }
    ]
}

Einstellungen.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"
          ]
        },
      ]
}

Antwort1

Ich habe schließlich ein Problem auf der Github-Seite von erstellt LaTeX-Workshop.

Sie dürfen nicht verwendet werdenAufgabenzur Zusammenstellung. Ich weiß nicht mehr, wo ich das herhabe, aber es war nicht die richtige Vorgehensweise.

Auf einem Computer hat es nun funktioniert, die settings.jsonDatei wie folgt zu ändern:

{
    "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
}

und Ausführen mit ctrl + alt + b.

Dies funktionierte insbesondere auf einem neuen PC (auf dem auch Windows 10, MikTeX und TeXWorks von meiner vorherigen Nutzung installiert waren), auf dem ich einfach VS Code (1.44.0) und die LaTeX Workshop-Erweiterung (8.8.0) heruntergeladen und installiert habe. Ich habe dann settings.jsonwie oben beschrieben angepasst und alle Probleme sind gelöst (außer, dass der PDF-Viewer beim Kompilieren nicht automatisch aktualisiert wird, zumindest nicht regelmäßig; ich versuche immer noch, das Problem zu identifizieren, aber das ist geringfügig).

Jedoch,Auf einem anderen Computer habe ich das nicht perlinstalliert und verwende das obige Programm. Dann settings.jsonerhalte ich die folgende Fehlermeldung:

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

Wenn ich das Rezept latexmkin der Einstellungsdatei auskommentiere, ergibt sich Folgendes:

  • Dokument wird ohne Fehler kompiliert
  • PDF wird in der Registerkarte nicht aktualisiert. Das Symbol muss erneut angeklickt werden, um die Änderungen anzuzeigen.
  • Inhaltsverzeichnis bleibt nach mehrmaligem Kompilieren leer
  • Referenzierte labelAbschnitte und deren Seitenzahlen ( ref, pageref) und sind lediglich Fragezeichen.

verwandte Informationen