该PR0101_Enunciado.tex
文件位于文件夹内Ejercicios
,仅包含此行:
Un enunciado de pregunta
然后,在同一级别的另一个文件夹中somefolder
,我有以下内容main.tex
:
\documentclass{article}
\newcommand{\n}{PR0101}
\edef\fullfilename{../Ejercicios/{\n}\_Enunciado.tex}
\begin{document}
\input{\fullfilename}
\end{document}
它不工作了,我该如何修复它?
答案1
如果我跑
\documentclass{article}
\begin{document}
\newcommand{\n}{PR0101}
\edef\fullfilename{../Ejercicios/{\n}\_Enunciado.tex}
\texttt{\meaning\fullfilename}
\end{document}
我明白了
的扩展\_
比你想象的要复杂得多……让我们忘记这一点,简单地_
用\_
\documentclass{article}
\begin{document}
\newcommand{\n}{PR0101}
\edef\fullfilename{../Ejercicios/{\n}_Enunciado.tex}
\texttt{\meaning\fullfilename}
\end{document}
肯定更好,但是...当 TeX 抓取未限定的参数时,一对括号会被剥离,但是不是 在扩展过程中。
长话短说:你想要的只是
\newcommand{\n}{PR0101}
\newcommand{\fullfilename}{../Ejercicios/\n_Enunciado.tex}
\input{\fullfilename}
或者只是
\newcommand{\n}{PR0101}
\input{../Ejercicios/\n_Enunciado.tex}