编辑:解决了。
解决方案:阅读手册。
即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
所有‘重复’选项均被禁用。
目录结构如下:
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
在链中。
您所链接问题的答案说明了如何引用该命令: