TexStudio с arara; не могу найти extractbb

TexStudio с arara; не могу найти extractbb

С некоторой помощью отпредыдущий вопрос TexStudio и arara, мне удалось начать работу с arara внутри TexStudio (Ура!). Но при запуске компиляции Xelatex (второй пример кода в только что указанном URL) я получил это сообщение об ошибке (компиляция не была завершена):

(/usr/local/texlive/2022/texmf-dist/tex/latex/supertabular/supertabular.sty
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/glossaries/styles/glossary-tree.s
ty
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
! I can't find file `"|extractbb --version"'.
<to be read again> 
                   \scan_stop: 
l.72     \l__sys_internal_tl
                            
(Press Enter to retry, or Control-D to exit)
Please type another input file name: 
runpopen command not allowed: extractbb

extractbbсуществует и (на моем компьютере) находится в/usr/local/texlive/2022/bin/x86_64-linux/extractbb

Просто предположение: возможно ли, что проблема не столько в пути ( 'I can't find file `"|extractbb --version'), сколько в разрешении оболочки ( runpopen command not allowed : extractbb)??? Буду признателен за любые предложения по исправлению!

------редактировать, следовать комментарию Дэвида Карлайла относительно texmf.cfg-----

Мои единственные изменения в моем «личном» texmf.cfg — это добавление

shell_escape_commands = pagelayoutapi

тогда какнеизмененный,"general" texmf.cfg в /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnfуказывает, что

% The default is true, because we already avoid adding the standard
% extension(s) in the usual cases.  E.g., babel.sty will only look for
% babel.sty, not babel.sty.tex, regardless of this setting.
try_std_extension_first = t

% Enable system commands via \write18{...}.  When enabled fully (set to
% t), obviously insecure.  When enabled partially (set to p), only the
% commands listed in shell_escape_commands are allowed.  Although this
% is not fully secure either, it is much better, and so useful that we
% enable it for everything but bare tex.
shell_escape = p

% No spaces in this command list.
% 
% The programs listed here are as safe as any we know: they either do
% not write any output files, respect openout_any, or have hard-coded
% restrictions similar to or higher than openout_any=p.  They also have
% no features to invoke arbitrary other programs, and no known
% exploitable bugs.  All to the best of our knowledge.  They also have
% practical use for being called from TeX.
% 
shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
gregorio,\
kpsewhich,\
makeindex,\
repstopdf,\
r-mpost,\
texosquery-jre8,\

EDIT - ответ на ответ egreg Я пересмотрел, /usr/local/texlive/2022/texmf.cnfпотому что, хотя изменения egreg фактически решили проблему, инструкции (предоставленные в виде комментариев внутри файла) противоречат, они указывают, что вы должны внести изменения ТОЛЬКО в этот файл, а НЕ все исходные строки, присутствующие в /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf:

% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
%
% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, *NOT A COPY OF THE WHOLE THING!* [caps added here for emphasis--Birdman]
%

Я продолжаю этот разговор, потому что мне хотелось бы узнать, неправильно ли я истолковал это предостережение (--> не копировать все целиком), или же эти инструктивные комментарии сами по себе ошибочны.

решение1

Это определенно вина вашей модификации. С

shell_escape_commands = pagelayoutapi

вы позволяететолькоприложение pagelayoutapiв ограниченном shell-escape. Если вы попробуете

kpsewhich --var-value shell_escape_commands

из командной строки вы должны просто увидеть

pagelayoutapi

(только что опробовал на своей машине).

При изменении файла верхнего уровня необходимо скопировать весь список и добавить к нему texmf.cnf:

shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
gregorio,\
kpsewhich,\
makeindex,\
repstopdf,\
r-mpost,\
texosquery-jre8,\
pagelayoutapi,\

Как texmf.cnfработает чтение?

Обычно в дереве TeX есть два texmf.cnfфайла. Один находится на верхнем уровне, другой — в texmf-dist. Вывод

kpsewhich -a texmf.cnf

на моей машине есть

/usr/local/texlive/2022/texmf.cnf
/usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf

Таких файлов может быть больше, но важно знать, что они считываются в порядке, указанном в kpsewhich -a.

Значения переменных, которые задаются в файле,нетпереопределено более поздними файлами. В «главном» (но последнем прочитанном) файле есть рекомендация, а именно

% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, *NOT A COPY OF THE WHOLE THING!* [caps added here for emphasis--Birdman]

«НЕ КОПИЮ ВСЕГО» означает, что не добавляется каждая переменная, а только те, значение которых нужно изменить. Если вы добавите все, инициализация будет медленнее, поскольку многие значения нужно будет прочитать и отбросить.

texmf.cnfЕсли вы скажете в файле верхнего уровня

shell_escape_commands =

Никакая внешняя программа не допускается в ограниченной оболочке. Переменные не устанавливаются пошагово: последующие строки, начинающиеся с этого значения, игнорируются.

Связанный контент