Por que `openin_any = p` está restringindo o acesso a pacotes em TEXMFDIST?

Por que `openin_any = p` está restringindo o acesso a pacotes em TEXMFDIST?

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 = pos arquivos TEXMFDISTdevem 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 TEXMFDISTdo 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=pvocê pode carregar a maioria dos pacotes LaTeX normalmente. O problema específico do xparse(-generic.tex) é que ele usa um \pdffilesizeteste baseado em - (expansível) para verificar se um arquivo existe e, como eu disse no meu e-mail anterior, \pdffilesize falha com openin_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 com openin_any=p.

informação relacionada