我如何设置 \l_file_search_path_seq 以便 \file_input:n 在 Texlive 2019 中查找文件,就像在 Texlive 2018 中一样?

我如何设置 \l_file_search_path_seq 以便 \file_input:n 在 Texlive 2019 中查找文件,就像在 Texlive 2018 中一样?

我有以前使用的代码\file_path_include:n,但现在尝试进行\l_file_search_path_seq如下调整。使用 Texlive 2018,这有效,但使用 Texlive 2019,则无效。我遗漏了什么?

工作目录包含一个子目录abc。目录包含一个以内容abc命名的文件a.tex

hylo

工作目录中的主文件包含:

\documentclass{article}
\usepackage{xparse}
\begin{document}
\ExplSyntaxOn
\seq_put_right:Nn \l_file_search_path_seq {abc}
\seq_show:N \l_file_search_path_seq
\file_input:n {a}
\ExplSyntaxOff
\end{document}

这会产生错误。

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./prawf.tex
LaTeX2e <2018-12-01>
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/article.cls
Document Class: article 2018/09/03 v1.4i Standard LaTeX document class
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def))
) (./prawf.aux)
The sequence \l_file_search_path_seq contains the items (without outer
braces):
>  {abc}.
<recently read> }

l.14 \seq_show:N \l_file_search_path_seq

? 

! LaTeX3 Error: File 'a' not found.

For immediate help type H <return>.
 ...                                              

l.15 \file_input:n {a}

? 

a.tex如果我使用代替,结果也是一样的a,但是 的文档\file_input:n说它使用与 相同的搜索\file_if_exist:n,即搜索标准输入路径加上 中的附加内容\l_file_search_path_seq

如果我在指定目录时包含尾部正斜杠

\seq_put_right:Nn \l_file_search_path_seq {abc/}

正如 AlexWatson 在评论中所建议的那样,我遇到了错误,但最终找到了文件。

! Argument of \__file_file_name_cleanup:w has an extra }.
<inserted text> 
                \par 
l.17 \file_input:n {a.tex}

? 
Runaway argument?
\cs_if_exist:NT \input@path {\tl_map_tokens:Nn \input@path {\__file_full_name_a
ux:nn \ETC.
! Paragraph ended before \__file_file_name_cleanup:w was complete.
<to be read again> 
                   \par 
l.17 \file_input:n {a.tex}

? 
(./abc/a.tex)

我该如何\l_file_search_path_seq正确设置才能让它\file_input:n按照我想要的方式运行?或者,如果这不可能,有什么解决方法?

答案1

这是一些新代码中的一个错误:我们正在开发一个可扩展的\file_input:n,第一步是文件搜索。事情已经按照描述进行了修复https://github.com/latex3/latex3/issues/634:大概明天就会向 CTAN 进行更新。

相关内容