LaTeX en VS Code: el visor de PDF no se actualiza y solo puede ejecutar un archivo en una carpeta

LaTeX en VS Code: el visor de PDF no se actualiza y solo puede ejecutar un archivo en una carpeta

Estoy intentando usar VS Code en Windows 10 x64 para LaTeX Workshop 8.7.2compilar documentos en LaTeX.

Me enfrento a tres problemas:

  1. El visor de PDF que se muestra en una pestaña en VS Code ya no se actualiza cuando compilo el documento nuevamente después de haber abierto el visor de PDF. Abrir el archivo PDF con otro programa muestra que se actualiza, por lo que es solo el visor en VS Code el que no se actualiza durante la compilación. Tengo que cerrar la pestaña y abrirla nuevamente ( LaTeX Workshop: View LaTeX PDF file in VSCode tab) para mostrar la versión más nueva, es decir, la versión actual del archivo PDF.

  2. El archivo tasks.jsonque se encuentra en la subcarpeta .vscodede la carpeta en la que myfilename.texse encuentra mi archivo que quiero compilar contiene la línea "myfilename.tex". Veo en varios lugares en línea (como la respuesta aceptada aquí o aquí) que aparentemente debería ser %DOC%.texo %DOC%(aunque en el primer enlace, se refieren al settings.jsonarchivo, que para mí se ve como se muestra a continuación, es decir, completamente diferente. Cuando compilo esto con %DOC%.texo simplemente %DOC%, obtengo:

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

Este problema significa que si quiero compilar dos .texarchivos en la misma carpeta, necesito reemplazar manualmente el nombre del archivo tasks.jsoncada vez. Lo que también intenté, sin éxito, es (siguiendohttps://github.com/James-Yu/LaTeX-Workshop/issues/384) "%DOCFILE%.tex"y "%DOCFILE%").

  1. También quiero crear un índice dentro del archivo PDF. En TeXWorks, que usé antes, usé MakeIndexasí:

ingrese la descripción de la imagen aquí

o (preferiblemente, combinado con pdfLaTeX) así

ingrese la descripción de la imagen aquí

¿Qué tendría que hacer para ejecutar MakeIndexusando VS Code?


Aquí están mis archivos: tareas.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": []
        }
    ]
}

configuración.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"
          ]
        },
      ]
}

Respuesta1

Finalmente creé un problema en la página de Github de LaTeX-Workshop.

Se supone que no debes usartareaspara compilación. Ahora no recuerdo dónde lo aprendí, pero no era lo mejor que podía hacer.

Lo que ahora funcionó, en una computadora, fue cambiar el settings.jsonarchivo de la siguiente manera:

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

y ejecutando con ctrl + alt + b.

En particular, esto funcionó en una PC nueva (también con Windows 10, MikTeX y TeXWorks instalados desde mi uso anterior), en la que simplemente descargué e instalé VS Code (1.44.0) y la extensión LaTeX Workshop (8.8.0). . Luego ajusté lo settings.jsonanterior y todos los problemas se resolvieron (excepto que el visor de PDF no se actualiza automáticamente al compilar, al menos no regularmente; todavía estoy tratando de identificar el problema, pero esto es menor).

Sin embargo,en otra computadora que no tengo perlinstalado y usando lo anterior settings.jsonme sale el error:

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

cuando descomento la receta latexmken el archivo de configuración, esto da como resultado:

  • El documento se compila sin errores.
  • El PDF no se actualiza en la pestaña; es necesario hacer clic nuevamente en el ícono para ver los cambios
  • La tabla de contenidos permanece vacía después de varias compilaciones
  • labelLas secciones referenciadas y sus números de página ( ref, pageref) son solo signos de interrogación.

información relacionada