Это может показаться очень глупым вопросом, но я не могу понять, как определить файл для ввода с помощью \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
при вводе файла.