不明白 \input

不明白 \input

这个问题似乎很愚蠢,但我不知道如何\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

相关内容