LaTeX中如何为\graphicspath添加当前目录以识别无后缀图片?
LaTeX \graphicspath 添加当前目录失效的解决办法
我尝试编译一份简单的LaTeX文件,代码如下:
\documentclass[12pt]{article} \usepackage[a4paper,margin=2.05cm]{geometry} \usepackage{graphicx} % \usepackage{grfext} \graphicspath{{./figures/}} % \graphicspath{{./}{./figures/}} % \DeclareGraphicsExtensions{.pdf,.eps} % \AtBeginDocument{% % \PrependGraphicsExtensions*{ % .mps,.MPS,.pdf,.PDF,.eps,.EPS,.ps,.PS, % .png,.PNG,.jpg,.jpeg,.JPG,.JPEG, % }% % %\PrintGraphicsExtensions % see .log file % } \begin{document} \includegraphics[width=0.45\textwidth]{quadrant} \end{document}
此前默认当前目录可直接查找图片,但现在该方式失效。尝试用\graphicspath{{./}{./figures/}}添加当前目录仍无效,除非在\includegraphics中指定图片后缀(如quadrant.pdf),但不想这么做。当前使用的pdflatex版本信息:
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2024.3.20)
解决办法
确保\graphicspath语法正确
每个路径必须单独用大括号包裹,且末尾必须添加斜杠,正确写法为:\graphicspath{{./}{./figures/}}这是TeX路径解析的要求,缺少斜杠会导致路径识别错误。
调整图形扩展名查找优先级
部分TeX Live版本会调整默认的扩展名查找顺序,甚至遗漏常用格式。可通过grfext包强制添加并优先查找目标格式:\usepackage{grfext} \AtBeginDocument{% \PrependGraphicsExtensions*{.pdf,.png,.jpg,.jpeg} }若想查看当前生效的扩展名列表,可取消注释
\PrintGraphicsExtensions,编译后在.log文件中查看详细信息。排查文件名与路径问题
- Linux环境下文件名大小写敏感,确保代码中填写的文件名(如
quadrant)与实际文件完全一致; - 确认图片文件确实存在于当前目录或
./figures/目录下,可通过终端命令ls或ls figures/验证。
- Linux环境下文件名大小写敏感,确保代码中填写的文件名(如
最小示例测试
用简化代码排除其他包的干扰,确认核心逻辑是否正常:\documentclass{article} \usepackage{graphicx} \graphicspath{{./}{./figures/}} \begin{document} \includegraphics{quadrant} \end{document}
内容的提问来源于stack exchange,提问作者ASarkar
相关产品推荐
相关产品推荐

