这个问题似乎很愚蠢,但我不知道如何\input
在 xelatex 中识别要输入的文件。我想我做的是正确的,但不知为何它不起作用。
我的主文件如下所示:
\documentclass{report}
\begin{document}
\input(testinput.tex)
\end{document}
testinput.tex
我在同一个目录中有一个名为的文件。如果我在该目录中运行xelatex
它,它会抱怨找不到该文件,但如果我输入文件名,它就会运行正常。
This is XeTeX, Version 3.14159265-2.6-0.99996 (TeX Live 2016) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2017/01/01> patch level 3
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/report.cls
Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size10.clo)) (./test.aux)
! I can't find file `(testinput.tex)'.
l.3 \input(testinput.tex)
(Press Enter to retry, or Control-D to exit)
Please type another input file name: testinput.tex
(./testinput.tex) [1] (./test.aux) )
Output written on test.pdf (1 page).
Transcript written on test.log.
我对自己做错的事情感到困惑。我尝试过不使用.tex
扩展程序,但结果相同。
答案1
您的输入建议您()
在文件名周围使用括号 ( )。将参数(强制)传递给 LaTeX 命令的正确方法是使用括号 ( {}
)。因此,您应该使用以下代码:
\documentclass{report}
\begin{document}
\input{testinput.tex}
\end{document}
顺便说一下,这与任何引擎都无关。
更新:由于 LaTeX 会自动附加,因此.tex
您也可以使用以下命令:
\documentclass{report}
\begin{document}
\input{testinput}
\end{document}
但请注意,此处 LaTeX 将首先检查文件testinput
,然后查看。这可能是在输入文件时testinput.tex
使用扩展名的一个很好的理由。.tex