
Estou usando openin_any = p
(definido em um custom TEXMFCNF
) como uma linha adicional de defesa em um aplicativo que é executado em código LaTeX (parcialmente) fornecido pelo usuário. Isso costumava funcionar bem, mas depois de atualizar para o texlive 2020 mais recente, a construção de praticamente qualquer documento agora falha:
/opt/texlive/bin/x86_64-linux/xelatex: Not reading from /opt/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.tex (openin_any = p).
! LaTeX3 Error: File 'xparse-generic.tex' not found.
Pelo que entendi, mesmo com openin_any = p
os arquivos TEXMFDIST
devem estar bem. Isso é um bug ou é uma mudança intencional. De qualquer forma, estou procurando uma solução que permita acesso a qualquer coisa além TEXMFDIST
do diretório que contém meu arquivo tex.
Responder1
Este foi realmente um bug no texlive; depois de perguntar na lista de discussão elesconsertei.
Detalhes (também dolista de discussão) sobre por que exatamente isso aconteceu:
Com
openin_any=p
você pode carregar a maioria dos pacotes LaTeX normalmente. O problema específico do xparse(-generic.tex) é que ele usa um\pdffilesize
teste baseado em - (expansível) para verificar se um arquivo existe e, como eu disse no meu e-mail anterior, \pdffilesize falha comopenin_any=p
:export openin_any=p && pdftex '\pdffilesize{sample2e.tex}\bye'
e é isso que o patch de Akira-san aborda.
Esse "comportamento antigo" que você mencionou é que até alguns meses atrás o xparse era todo carregado de uma só vez em xparse.sty como a maioria dos pacotes (e funciona como sempre), mas agora está dividido no "carregador" (e legado --- não use --- interfaces) e a maior parte do código em
xparse-generic.tex
. Como o último usa\pdffilesize
, ele falha comopenin_any=p
.