为什么 \graphicspath 是一个未定义的控制序列?

为什么 \graphicspath 是一个未定义的控制序列?

在尝试调试其他内容时,我在下面的 MWE 中遇到了以下错误gpath-try.tex。出了什么问题?

(./gpath-try.tex
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-06-18>
(/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/usr/local/texlive/2020/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
...
./gpath-try.tex:3: Undefined control sequence.
l.3 \graphicspath
                 {{graphics/}}
? q
OK, entering \batchmode...

./gpath-try.tex:3: LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.3 \graphicspath{{g
                    raphics/}}
You're in trouble here.  Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.

妇女权利委员会:

\documentclass{article}

\graphicspath{{graphics/}}
\usepackage{graphicx}

\begin{document}
Hello
\end{document}

我认为这总是有效的,但我还尝试了反转顺序,这次使用:

\usepackage{graphicx}
\graphicspath{{graphics/}}

但这也失败了,出现错误:

(./graphics.sty
Package: graphics 2020-06-04 Load graphics packages and defines colors

./graphics.sty:12: Undefined control sequence.
<recently read> \graphicspath 
                              
l.12 \graphicspath
                  {{graphics/}} % set graphics path

答案1

正确的加载顺序是

\documentclass{article}

\usepackage{graphicx}
\graphicspath{{graphics/}}

\begin{document}
Hello
\end{document}

.log问题中的最后一个显示

(./graphics.sty
Package: graphics 2020-06-04 Load graphics packages and defines colors

这表明你有一个本地文件graphics.sty被加载,而不是——因此掩盖了——LaTeX 基础文件graphics.sty,它自称是

("C:\Program Files\MiKTeX 2.9\tex/latex/graphics\graphics.sty"
Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)

(无论如何,在我的计算机上:文件路径、日期和具体版本当然可能会有所不同)。

当然,这里运气真的很差,因为 real 定义的命令graphics.sty被加载的本地版本graphics.sty而不是 LaTeX 核心文件使用。但至少它中断得很厉害。本地文件掩盖系统文件的问题可能很难调试。

使用已经被包/LaTeX 基础文件占用的文件名总是很危险的,但当然很难知道所有可能的“禁止”名称。

相关内容