\input{} 文件不存在

\input{} 文件不存在

我写了一个个人日记模板。主 tex 文件\input是一个名为 entry.tex 的文件,它将记录\input所有日记条目,这些条目位于子目录中,并记录条目的标题和日期(两者都是从路径和文件名中获取的)

entry.tex 是由一个名为 entry.py 的 python 脚本生成的,该脚本的输出如下所示:

\textbf{This is the title}  \hspace*{\fill}  \textbf{2018-11-16}\\
\input{entries/2018/11/16 - This is the title} \bigskip

\textbf{This is another entry}  \hspace*{\fill}  \textbf{2018-11-18}\\
\input{entries/2018/11/18 - This is another entry} \bigskip

main.tex 文件如下所示:

\documentclass{article}
\usepackage[margin=4cm,left=2cm,right=2cm]{geometry}

\title{\huge{}Personal Diary}
\author{\LARGE{}Author name}
\date{Last written \today}

\begin{document}

\maketitle
\newpage

\input{entries}

\end{document}

目录树如下所示:

Diary
├── entries
│   └── 2018
│       ├── 01
│       ├── 02
│       ├── 03
│       ├── 04
│       ├── 05
│       ├── 06
│       ├── 07
│       ├── 08
│       ├── 09
│       ├── 10
│       ├── 11
│       │   ├── 16 - This is the title.tex
│       │   └── 18 - This is another entry.tex
│       └── 12
├── entries.py
├── entries.tex
├── main.tex
└── makefile

但是,当我尝试编译 main.tex 时,它似乎找到了 entry.tex,但没有找到 entry.tex 包含的文件。它的输出如下所示:

python3 entries.py
pdflatex main.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian)  (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./main.tex
LaTeX2e <2018-04-01> patch level 5
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty)
(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))
No file main.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./entries.tex

! LaTeX Error: File `entries/2018/11/16 - This is the title.tex' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: tex)

Enter file name: 

我确信它entries/2018/11/16 - This is the title.tex存在。有人知道为什么 LaTeX 找不到它吗?

我已经创建了一个 github repo,其中包含所有代码,供任何想要尝试的人使用:https://github.com/ventlion/latexdiary

答案1

从 LaTeX 2019-10-01 版本开始,"不再需要显式引用,因此

    \input{entries/2018/11/18 - This is another entry}

可以,但最好还是避免在文件名中使用空格,


问题是文件名中的空格要么使用引号,如

\input{"entries/2018/11/18 - This is another entry"}

或者(通常更好)避免在文件名中使用空格。

文件名的语法是 TeX 中少数几个依赖于系统的部分之一,但所有基于 web2c 的发行版都支持此引用约定(特别是 texlive 和 miktex)。

相关内容