pdflatex 列出很多文件

pdflatex 列出很多文件

我正在尝试编译一个乳胶文档,但这花了很长时间。

当一个非常简单的文档几乎无法立即完成时,我认为这是非常奇怪的。

当使用 ptrace 运行 pdflatex 时,我发现它正在搜索到处在我家里texmf。但是,当我在另一台机器上运行相同的命令时,我没有看到这种情况发生。

以下是我的文件:

\documentclass[letterpaper,12pt]{article}
\begin{document}
Hello World!
\end{document}

下面是 strace 的一部分:

getdents(3, /* 241 entries */, 32768)   = 9048
stat("/home/user/gdb_examples.tar.xz", {st_mode=S_IFREG|0660, st_size=1796, ...}) = 0
stat("/home/user/src.tar.xz", {st_mode=S_IFREG|0644, st_size=112380084, ...}) = 0
stat("/home/user/tracing-on-linux.pdf", {st_mode=S_IFREG|0644, st_size=161222, ...}) = 0
stat("/home/user/ssl_example.pcapng", {st_mode=S_IFREG|0644, st_size=4520, ...}) = 0
stat("/home/user/spimsimulator-code", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/home/user/spimsimulator-code/texmf", 0x7ffee1f6ef40) = -1 ENOENT (No such file or directory)

尽管没有为 latex 设置变量来指示在其中进行搜索$HOME

我确信如果我mkdir ~/texmf这样做,这将解决问题,但我担心的是为什么乳胶事件尝试打开每个文件?

答案1

kpsexpand '$TEXINPUTS'

生产

.:{/home/cen5848//texmf,!!/etc/texmf,!!/var/lib/texmf,!!/usr/local/share/texmf,‌​!!/usr/share/texmf}/tex/{kpsewhich,generic,}//

问题是导致使用文件系统而不是 mktexlsr 文件列表对下面的 texmf/home/cen5848//texmf进行递归(//)搜索。/home/cen5848

显然$HOME意外地出现了尾随/,当与之连接时/texmf会产生不良影响。

~/texmf不这样做很正常,因为!!这样您可以将本地文件放在那里,而不必每次都重建文件列表。通常那里的树比系统 texmf 树小很多,所以这是一个合理的折衷方案。但是您通常不希望在//没有强制 kpathsea 使用文件列表的情况下在树上放置。

相关内容