我的问题涉及我在 Debian 12 发行版中选择的特定 VS Code 设置——我基本上采用了 flatpak 路线,以避免从专有/非官方软件包存储库安装 VS Code(目前)。
com.visualstudio.code
我想,在flatpak 应用程序中安装 LaTeX Workshop 扩展后,所有工具和方法似乎都被破坏了(例如,latexmk
build 命令会引发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.json
vscode 代码 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%",
],
}