包含一个文件名中有空格的 .tex 文件

15

我正在使用 \include{} 语句逐一包含我的latex文件中的章节,到目前为止我没有任何问题。但是我最近写了一章,保存在一个包含空格的名称下...因为你可以这样做。

现在,include{} 语句显然不喜欢空格,并且在文档中只打印文件名,而不是章节。

这可能很容易解决(除了从文件名中删除空格,;-)),但我找不到解决方法。

更新

根据这个维基,这个问题并不乐观。它说,除非您使用最新的发行版,如teTeX 3或MikTeX 2.4,否则无法使用带有特殊字符的文件。

然而,还有一点希望,该页面的日期是2005年(5年内会有很多变化),而我正在使用包含在ubuntu中的pdflatex,我认为这是一个相当新的发行版。


不幸的是,最后一次我检查过的Ubuntu仓库中的LaTeX发行版是texlive2007,有点过时。TL2009非常好用,包括一个包管理器和许多其他适合你的TeX需求的好东西。 - Mica
当使用平面文件(只使用 .txt 文件)时,您还可以使用 \input{"./Chapters/My Chapter Name.txt"}。尽管在堆栈上有 TeX 社区,但它仍被认为是编程(如 XSL 等)。 - elika kohen
3个回答

10

尝试一下

\include{"file\space name"}

也就是说,使用引号和\space。您可能需要删除旧的.aux文件和/或运行LaTeX两次。


2
恐怕它不起作用。使用这个解决方案可以顺利通过.tex文件,但现在卡在了.aux文件上。 - NomeN
2
我相信这仅适用于图像。 - NomeN
@NomeN:我尝试了一下,对于我的简单测试案例是可行的,但我不确定它是否适用于所有情况。 - Alok Singhal

9

很抱歉,我找到了一个(相当不令人满意的)答案,它来自于这个 wiki

目前的答案是:除非你使用最近的版本,否则你不能解决这个问题。例如:teTeX 3和MikTeX 2.4。

看起来在latex中,不寻常的文件名仍然是一个问题,因此你最好避免使用或者找到一个已经解决了这个问题的版本。


7

它可以正常工作。您需要做的是,如果您的章节文件是File Of Mine.tex,则在主要的 .tex 文件中放置:

\include{"File\space Of\space Mine"} 

但是在 File Of Mine.tex 中,你只需要写上 \chapter{File Of Mine}。试一试,看看是否适用于你。这对我来说可行。


是否存在\chapter命令不应该影响这是否有效。它第二次会“工作”吗?@NomeN表示,在文件名中使用\space宏将允许加载.tex文件,但不会加载相应的.aux文件。 - Matthew Leingang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接