vscode每次要编译两次才能看PDF,不知道为什么

发布于 2024-08-17 08:15:10

vscode里面编写好代码后,Ctrl+s编译,然后尝试Ctrl+Alt+V查看PDF,每次显示:
Cannot view file PDF file. File not found: file:F.pdf。,然后再次Ctrl+s就可以了.但麻烦。
下面是我的jason文件:

{
  "latex-workshop.latex.tools": [
    // 定义编译工具 xelatex
    {
      "name": "xelatex",
      "command": "xelatex",
      "args": [
        "-synctex=1",                   // 启用 SyncTeX 支持
        "-interaction=nonstopmode",     // 设置交互模式为非停止模式,以便自动处理错误
        "-file-line-error",             // 显示文件和行号错误信息
        "-output-directory=./out",      // 将输出文件保存在 ./out 目录中
        "%DOC%"                        // 编译当前文档
      ]
    },
    // 定义编译工具 lualatex
    {
      "name": "lualatex",
      "command": "lualatex",
      "args": [
        "-synctex=1",                   // 启用 SyncTeX 支持
        "-interaction=nonstopmode",     // 设置交互模式为非停止模式,以便自动处理错误
        "-file-line-error",             // 显示文件和行号错误信息
        "-output-directory=./out",      // 将输出文件保存在 ./out 目录中
        "%DOC%"                        // 编译当前文档
      ]
    }
  ],
  "latex-workshop.latex.recipes": [
    // 定义编译配方 xelatex with move
    {
      "name": "xelatex with move",
      "tools": [
        "xelatex"
      ],
      "outputDir": "./out",   // 设置编译输出文件的目录为 ./out
      "viewer": {
        "external": {
          "command": "cp %DIR%/%DOCFILE%.pdf %DOCFILE%.pdf.backup && cp %DIR%/%DOCFILE%.pdf %DOCFILE%.pdf",  // 复制生成的 PDF 文件到源文件目录
          "forwardSearch": {
            "args": []   // 设置正向搜索的参数
          }
        }
      }
    },
    // 定义编译配方 lualatex
    {
      "name": "lualatex",
      "tools": [
        "lualatex"
      ],
      "outputDir": "./out",   // 设置编译输出文件的目录为 ./out
      "viewer": {
        "external": {
          "command": "cp %DIR%/%DOCFILE%.pdf %DOCFILE%.pdf.backup && cp %DIR%/%DOCFILE%.pdf %DOCFILE%.pdf",  // 复制生成的 PDF 文件到源文件目录
          "forwardSearch": {
            "args": []   // 设置正向搜索的参数
          }
        }
      }
    }
  ],
  "latex-workshop.view.pdf.viewer": "tab",   // 使用内置的 PDF 预览功能,在 VS Code 的标签页中显示 PDF 文件
  "latex-workshop.synctex.afterBuild.enabled": true,   // 启用编译后自动生成的 SyncTeX 文件
  "latex-workshop.latex.autoBuild.run": "onSave",   // 在保存文档时自动触发编译
  "latex-workshop.latex.outDir": "./out",   // 指定编译输出文件的目录
  "latex-workshop.latex.clean.fileTypes": [
    // 指定清理命令要删除的文件类型
    "*.aux",
    "*.bbl",
    "*.blg",
    "*.idx",
    "*.ind",
    "*.lof",
    "*.lot",
    "*.out",
    "*.toc",
    "*.acn",
    "*.acr",
    "*.alg",
    "*.glg",
    "*.glo",
    "*.gls",
    "*.fdb_latexmk",
    "*.fls",
    "*.log",
    "*.nav",
    "*.snm",
    "*.synctex(busy)",
    "*.synctex.gz",
    "*.tdo",
    "*.bcf",
    "*.run.xml",
    "*.vrb"
  ],
  "latex-workshop.latex.watch.usePolling": true,   // 启用文件轮询监视器
  "latex-workshop.message.update.show": false,   // 关闭 LaTeX Workshop 的更新消息通知
  "explorer.confirmDelete": false,   // 禁用删除确认
  "editor.wordWrap": "on",   // 启用自动换行
  "latex-workshop.chktex.enabled": true,   // 启用 ChkTeX 工具检查 LaTeX 文件中的语法问题
  "editor.minimap.enabled": false,   // 禁用小地图
  "editor.unicodeHighlight.allowedLocales": {
    "zh-hans": true   // 允许中文
  },
  "security.workspace.trust.untrustedFiles": "open"
}

查看更多

关注者
0
被浏览
731
1 个回答
Sagittarius Rover
Sagittarius Rover 2024-08-17
我要成为TikZ糕手/(ㄒoㄒ)/~~

没有完全弄懂你的上述配置,但是要想解决的话,也许可以配置一个xelatex*2recipe
放到"latex-workshop.latex.recipes"内部

    {
      "name": "xelatex*2",
      "tools": [
        "xelatex",
        "xelatex",
      ],
    },

我想要解决你的问题可能需要研究一下latex-workshop插件预览pdf文件的位置信息文档
有可能这与你采用如下配置移动pdf文件位置有关

"outputDir": "./out",   // 设置编译输出文件的目录为 ./out
      "viewer": {
        "external": {
          "command": "cp %DIR%/%DOCFILE%.pdf %DOCFILE%.pdf.backup && cp %DIR%/%DOCFILE%.pdf %DOCFILE%.pdf",  // 复制生成的 PDF 文件到源文件目录
          "forwardSearch": {
            "args": []   // 设置正向搜索的参数
          }
        }
      }

个人觉得如非特别有必要,不要修改过多默认配置

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览