`openin_any = p`가 TEXMFDIST의 패키지에 대한 액세스를 제한하는 이유는 무엇입니까?

`openin_any = p`가 TEXMFDIST의 패키지에 대한 액세스를 제한하는 이유는 무엇입니까?

나는 (부분적으로) 사용자 제공 LaTeX 코드에서 실행되는 응용 프로그램의 추가 방어선으로 openin_any = p(사용자 정의에 설정 )을 사용하고 있습니다. TEXMFCNF이전에는 잘 작동했지만 최신 texlive 2020으로 업데이트한 후에는 이제 거의 모든 문서 작성이 실패합니다.

/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.

내가 이해한 바에 따르면, openin_any = p파일이 들어 있어도 TEXMFDIST괜찮을 것 같습니다. 이것은 버그입니까, 아니면 의도적인 변경입니까? 어쨌든 나는 TEXMFDIST내 tex 파일이 포함된 디렉터리 외에 무엇이든 액세스할 수 있는 솔루션을 찾고 있습니다.

답변1

이것은 실제로 texlive의 버그였습니다. 메일링 리스트에 물어본 후고쳤다.

세부정보(또한메일링 리스트) 정확히 왜 이런 일이 일어났는지에 대해:

를 사용하면 openin_any=p대부분의 LaTeX 패키지를 정상적으로 로드할 수 있습니다. xparse(-generic.tex)와 관련된 문제는 \pdffilesize파일이 존재하는지 확인하기 위해 기반(확장 가능) 테스트를 사용한다는 것입니다. 이전 메일에서 말했듯이 \pdffilesize는 다음과 같이 실패합니다 openin_any=p.

export openin_any=p && pdftex '\pdffilesize{sample2e.tex}\bye'

이것이 바로 Akira-san의 패치가 다루는 내용입니다.

당신이 언급한 이 "오래된 동작"은 몇 달 전까지만 해도 xparse가 대부분의 패키지처럼 xparse.sty에서 한 번에 모두 로드되었지만(항상 그랬던 것처럼 작동함) 이제는 "로더"로 분할된다는 것입니다(그리고 레거시---사용하지 마세요---인터페이스) 및 xparse-generic.tex. 후자는 를 사용하므로 \pdffilesize에서는 실패합니다 openin_any=p.

관련 정보