我可以发誓这以前是有效的,因为我没有更改我的 makefile 或文件名。现在,在对 texlive 进行更新后,当父文件(名为 )index.tex
尝试从下层文件夹(碰巧也被称为 )进行子导入时,我收到错误index.tex
。
>ls -l index.tex
index.tex
>ls -l folder/index.tex
folder/index.tex
我确信这以前是可行的,因为在我的源代码树中多年来都是这样。现在它编译失败了。这是一个 MWE
文件名为index.tex
\documentclass[11pt]{report}%
\usepackage{standalone}
\usepackage{import}
\begin{document}
\subimport{folder/}{index}
\end{document}
在子文件夹中,folder/
我有一个子文件index.tex
%file folder/index.tex
\documentclass[12pt]{article}%
\usepackage{standalone}
\standalonetrue
\begin{document}
test
\end{document}
当我编译父级时index.tex
,我得到了这个
lualatex index.tex
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
restricted system commands enabled.
(./index.tex
LaTeX2e <2016/03/31> patch level 3
Babel <3.9r> and hyphenation patterns for 1 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/report.cls
.
.
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty))
(/usr/local/texlive/2016/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
ABD: EveryShipout initializing macros (./index.tex (./index.tex (./index.tex
(./index.tex (./index.tex (./index.tex (./index.tex (./index.tex (./index.tex
(./index.tex (./index.tex (./index.tex (./index.tex (./index.tex
! TeX capacity exceeded, sorry [text input levels=15].
<argument> index
l.8 \subimport{folder/}{index}
326 words of node memory still in use:
1 hlist, 1 rule, 1 dir, 5 glue, 39 glue_spec, 2 write, 1 pdf_colorstack node
s
avail lists: 2:15,3:1,4:1,5:4,7:2,8:1,9:3
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on index.log.
我可以通过将孩子重命名为index_1.tex
名字不再相同来解决这个问题。
我的问题是:父文件和子文件可以同名吗?
我使用 index.tex 做很多事情,并使用 standalone 将所有文件拉到一个文档中。我现在不想重命名所有文件并更改 makefile。这以前有用吗?(否则我的树以前是如何构建的?)
使用 texlive 2016,刚刚进行了完整更新。
答案1
这是记录的行为(至少从 TL14 开始就没有改变过):
根据您的 TEX 系统的配置方式,如果当前目录或 TEXINPUTS 路径中存在与导入文件同名的文件,则将优先读取该文件而不是导入目录中的文件。
为了避免这种情况,您必须使用带星号的命令版本:
为了避免在导入文件时搜索 TEXINPUTS 路径,请使用命令的“星号”版本:“\import*”和“\subimport*”。
这可能会产生副作用,因为导入的文档将不再在 texmf 树中找到文件。例如,在这里你遇到了fd
-files 的问题:
https://tex.stackexchange.com/a/309504/2388。因此,您必须选择对您来说更重要的功能。