设置 Latex Workshop 以与 VS Code 的 flatpak 版本(Debian)配合使用

设置 Latex Workshop 以与 VS Code 的 flatpak 版本(Debian)配合使用

我的问题涉及我在 Debian 12 发行版中选择的特定 VS Code 设置——我基本上采用了 flatpak 路线,以避免从专有/非官方软件包存储库安装 VS Code(目前)。

com.visualstudio.code我想,在flatpak 应用程序中安装 LaTeX Workshop 扩展后,所有工具和方法似乎都被破坏了(例如,latexmkbuild 命令会引发Recipe terminated with fatal error: spawn latexmk ENOENT错误),这并不奇怪。

然而,奇怪的是,我可以从集成终端顺利构建,使用以下settings.json参数生成(按照官方文档)。

  "host-bash": {
    "path": "/app/bin/host-spawn",
    "args": ["bash"],
    "icon": "terminal-bash",
    "overrideName": true
  }

由于我能够在 VS Code 的集成终端中编译 LaTeX 文档,我认为一定有一种方法可以正确配置扩展的工具和配方,但遇到了瓶颈。我尝试摆弄 SHELL 和 PATH 环境变量等,但到目前为止没有成功。我最终设置并让外部构建命令通过将其指向我编写的 shell 脚本来工作,但不幸的是,这会禁用所有其他内置构建工具和配方,因此它可能不是一个可行的长期解决方案:

"latex-workshop.latex.external.build.command": "~/code/scripts/latex_workshop/latexmk.sh",
"latex-workshop.latex.external.build.args": [
  "%OUTDIR%",
  "%DOC%"
],

在我放弃并通过该apt install路线安装 VS Code 之前,我想检查是否有人在com.visualstudio.code基于 Debian 的发行版上的 flatpak 应用程序中成功配置了 LaTeX Workshop 扩展,如果是的话,我将非常感谢一些关于如何使此设置正常工作的提示。

谢谢阅读。

答案1

为了清楚起见,我重新发布了我实施的解决方法settings.json,以防其他人需要帮助解决这个问题或类似的问题。

我想这暂时解决了我的问题,但我想知道是否有更优雅的方法来生成主机终端会话,然后在其中启动 LaTeX Workshop 工具或配方。

  {
    "name": "latexmk",
    "command": "/app/bin/host-spawn",
    "args": [
      "bash",
      "-c",
      "latexmk -synctex=1 -interaction=nonstopmode -file-line-error -pdf -outdir=%OUTDIR% %DOC%"
    ],
    "env": {}
  }

答案2

我设法让 LaTeX 在 Fedora Silverblue (VSCode Flatpak + 工具箱) 配置上运行:

"latex-workshop.latex.tools": [
    {
        "name": "latexmk",
        "command": "host-spawn",
        "args": [
            "toolbox",
            "run",
            "--container",
            "LaTeX",
            "latexmk",
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "-outdir=%OUTDIR%",
            "%DOC%"
        ],
        "env": {}
    },
],

"latex-workshop.linting.chktex.enabled": true,
"latex-workshop.linting.chktex.exec.path": "host-spawn",
"latex-workshop.linting.chktex.exec.args": [
    "toolbox",
    "run",
    "--container",
    "LaTeX",
    "chktex",
    "-wall",
    "-n22",
    "-n30",
    "-e16",
    "-q"
]

答案3

我的settings.jsonvscode 代码 remote-ssh + latex-studio + fedora silverblue + toolbox,灵感来自@lofilbzik

{
    "latex-workshop.hover.preview.cursor.enabled": true,
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "toolbox",
            "args": [
                "run",
                "--container",
                "texlive",
                "latexmk",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
    ],
    "latex-workshop.linting.chktex.enabled": true,
    "latex-workshop.linting.chktex.exec.path": "toolbox",
    "latex-workshop.linting.chktex.exec.args": [
        "run",
        "--container",
        "texlive",
        "chktex",
        "-wall",
        "-n22",
        "-n30",
        "-e16",
        "-q",
        "-I"
    ],
    "latex-workshop.latexindent.path": "toolbox",
    "latex-workshop.latexindent.args": [
        "run",
        "--container",
        "texlive",
        "latexindent",
        "-m",
        "-l", "%DIR%/latexindent.yaml",
        "-c",
        "%DIR%/",
        "%TMPFILE%",
    ],
}

相关内容