我喜欢使用变量作为路径,这样如果我迁移到另一个系统/用户名,就不必更改每个路径名。这似乎不适用于该命令。我的文件input
中有以下内容:main.tex
\newcommand{\rootFolder}{/home/user/Documents/tex}
....
\input{\rootFolder/foo/bar.tex}
但我收到以下错误。
1 || ** \rootFolder/foo/bar.tex:
2 main.tex|86 error| Could not open "\rootFolder/foo/bar.tex"
我的蜘蛛感应告诉我它没有扩张\rootFolder
。谁能告诉我我做错了什么?
编辑用户 Peter Grill 要求我提供一个最小工作示例 (MWE),因此这里就有了。另外,我应该提到我在 Vim 内部遇到了这个错误。
测试.tex:
hello world
main.tex(本地路径):
\documentclass{article}
\begin{document}
\input{test.tex}
\end{document}
% Works Fine
main.tex(变量):
\newcommand{\rootFolder}{/home/user/Documents}
\documentclass{article}
\begin{document}
\input{\rootFolder/test.tex}
\end{document}
% Vim Error:
% 1 || ** \rootFolder/test.tex:
% 2 main.tex|5 error| Could not open "\rootFolder/test.tex"
main.tex (edef):
\newcommand{\rootFolder}{/home/user/Documents}
\documentclass{article}
\begin{document}
\edef\ExpandedFileName{\rootFolder/test.tex}\input{\ExpandedFileName}
\end{document}
% Vim Error:
% 1 || ** \ExpandedFileName:
% 2 main.tex|5 error| Could not open "\ExpandedFileName"
main.tex (无 edef):
\newcommand{\rootFolder}{/home/user/Documents}
\documentclass{article}
\begin{document}
\ExpandedFileName{\rootFolder/test.tex}\input{\ExpandedFileName}
\end{document}
% Vim Error:
% 1 || ** \ExpandedFileName:
% 2 main.tex|5 error| Could not open "\ExpandedFileName"
% pdflatex Error:
% Undefined control sequence.
% l.5 \ExpandedFileName{\rootFolder/test.tex}\input{\ExpandedFileN...
main.tex (扩展后):
\newcommand{\rootFolder}{/home/user/Documents}
\documentclass{article}
\begin{document}
\expandafter\input\expandafter{\rootFolder/test.tex}
\end{document}
% Vim Error:
% 1 test.tex|5 error| Don't use "\expandafter" in LaTeX documents
答案1
查看输出,您会发现这不是 Tex 错误(并且大概 LaTeX 可以正确处理您的代码),而是来自 Vim 的错误,我假设您使用的不是 emacs 的编辑器:-) 看起来您正在使用 Vim 模式,它认为它理解 TeX 语法并试图做一些有用的事情,但实际上它不理解完整的命令用法。