TeXstudio;‘无法启动命令’用于运行 bash 脚本的自定义命令

TeXstudio;‘无法启动命令’用于运行 bash 脚本的自定义命令

编辑:解决了

解决方案:阅读手册

Schoekling 建议,手册指出:

“每个用户命令都有一个以 : 格式命名的名称,例如 user0:User Command 0。命令 ID 必须是唯一的,并且不能包含空格。在高级模式下,您可以使用 txs:///"<command id>" 来引用它。”


我正在使用 Mendeley 导出 .bib 文件,并尝试运行 shell 脚本来删除“抽象”条目并biber --tool --validate-model在运行 biber 之前运行:

#!/bin/bash
biber --tool --configfile=bibtex_files/remabs.conf bibtex_files/examplebib.bib
biber --tool --validate-datamodel bibtex_files/examplebib_bibertool.bib

该命令在 shell 中运行良好,并且在 TeXstudio 中使用工具 > 用户 > {commandname} 时也是如此

但是,作为构建配置的一部分运行时,我收到错误:

Error: Could not start the command: jrb2:///biberprepare

我在跑:

- TeXstudio 3.1.1
- texlive/pdfTeX; Version 3.14159265-2.6-1.40.21 (TeX Live 2020)
- biber version 2.16 rev. 57273
- OS: Ubuntu 20.04 kernel 5.8.0-48-generic

我的 TeXstudio Meta 命令配置如下:

(相关行以防图像无法加载)

Default Compiler: txs:///pdflatex | jrb2:///biberprepare | txs:///biber | txs:///pdflatex | txs:///pdflatex
Build & View: txs:///compile | txs:///view
Default Bibliography Tool: txs:///biber
User Commands:
First entry field | Second text entry field
jrb2:biberprepare | biberprepare.sh

所有‘重复’选项均被禁用。

TeXstudio '元命令' 配置 1/2

TeXstudio '元命令' 配置 2/2

我认为命令部分本身并不相关,但它可能是: TexStudio‘命令’配置

目录结构如下:

textest
     +----biberprepare.sh
     +----bibtex_files
     |    +----examplebib.bib
     +----chapters
     |    +----introduction.tex
     +----figures
     |    +----titlepage
     |    |    +----example1.svg
     |    +----introduction
     |         +----example2.svg
     +----introduction.tex
     +----maintest.aux
     +----maintest.bcf
     +----maintest.log
     +----maintest.out
     +----maintest.pdf
     +----maintest.run.xml
     +----maintest.synctex.gz
     +----maintest.tex
     +----remabs.conf
     +----svg-inkscape
     |    +----example1_svg-tex.pdf_tex
     |    +----example1_svg-tex.pdf
     +----titlepage.tex

这可能是什么原因造成的?

我尝试过的一些方法:

  • 提出了一个可能的解决方案这里暗示 OP 忘记了 shebang。然而这里的情况并非如此。

  • 我想也许该脚本需要执行权限,所以我运行了chmod +x biberprepare.sh->但无济于事。

答案1

正如解释的那样手册(第 3.1 节)“用户命令”下左侧字段的格式为<command id>:<display name>,而不是类似 的内容<group>:<command id>。要调用该命令,您必须引用命令 ID,而不是显示名称,方法是使用

txs:///jrb2

在链中。

您所链接问题的答案说明了如何引用该命令:

在此处输入图片描述

相关内容