![子文件包 - 当主文件名有空格时不编译子文件](https://linux22.com/image/412487/%E5%AD%90%E6%96%87%E4%BB%B6%E5%8C%85%20-%20%E5%BD%93%E4%B8%BB%E6%96%87%E4%BB%B6%E5%90%8D%E6%9C%89%E7%A9%BA%E6%A0%BC%E6%97%B6%E4%B8%8D%E7%BC%96%E8%AF%91%E5%AD%90%E6%96%87%E4%BB%B6.png)
我正在尝试制作一些线性代数笔记,这些笔记将由一个主文件和每个章节的子文件组成。我的所有文件的文件名中都有空格,这对大多数情况都很好。我甚至可以在子文件和主文件名中都有空格的情况下编译和查看主文件。但是,主文件名中有空格似乎会导致编译和查看子文件出现问题(我很确定这与主文件名称中的空格有关,因为我曾尝试将主文件重命名为一个作品,并且能够编译子文件)。
所以我的问题是:我希望能够在主文件名中保留空格,但仍然单独编译子文件。
例如,这是一个子文件
%!TeX root = Introduction - Linear Algebra Notes
\documentclass[Main - Linear Algebra Notes.tex]{subfiles}
\begin{document}
BLAH BLAH BLAH
\end{document}
其中子文件名为“Introduction - Linear Algebra Notes”,主文件名为“Main - Linear Algebra Notes”。我得到的错误是
File `Main-LinearAlgebraNotes.tex' not found. \subimport{\filename@area}{\filename@base}
正如我上面所说的,如果我将主文件重命名为“main”(即一个单词),就不会出现此错误。
PS:我用的是TeXstudio 2.12.14。
答案1
最好避免在 LaTeX 文件名中使用空格!
但通常情况下,会有一个不太好的解决方法。将文件名定义为命令:
\newcommand{\mainfile}{"Main - Linear Algebra Notes.tex"}
\documentclass[\mainfile]{subfiles}
\begin{document}
BLAH BLAH BLAH
\end{document}
但是你可以做一件事并不意味着你应该去做这件事。请不要!