Overleaf导入带*.pdf_tex的SVG文件时被识别为*.pdf的问题求助
问题:Overleaf中使用Gilles Castel方法导入SVG仅显示文字无图形
问题描述
在Overleaf中遵循Gilles Castel的方法导入SVG到TeX文档,编译时程序误将目标文件识别为*.pdf而非*.pdf_tex,导致文档仅显示图中文字,图形区域为空白。
复现代码
\documentclass{article} \usepackage{import} \usepackage{pdfpages} \newcommand{\incfig}[1]{% \def\svgwidth{\columnwidth} \import{./figures/}{#1.pdf_tex} } \begin{document} \begin{figure}[h!] \centering \incfig{myfigure} \caption{A figure.} \label{fig:myfigure} \end{figure} \end{document}
文件结构与现象
- SVG转译后的文件存储在本地
./pdftex/目录,文件名HBRIDGE-CIRCDIAGRAM(对应生成HBRIDGE-CIRCDIAGRAM.pdf和HBRIDGE-CIRCDIAGRAM.pdf_tex文件)。 - 编译输出仅显示图中的文字内容,图形部分为空白框,未加载完整的SVG图形。
原因分析
- 路径不匹配:代码中
\import命令指定的导入目录是./figures/,但实际*.pdf_tex文件存放在./pdftex/目录,TeX无法找到正确的pdf_tex文件,转而加载了同名的pdf文件。而Gilles Castel的方法中,pdf文件仅包含纯图形层,pdf_tex才是整合文字和图形引用的核心文件,因此只显示文字。 - 文件名调用不一致:代码中调用
\incfig{myfigure},但实际文件名为HBRIDGE-CIRCDIAGRAM,名称不匹配也会导致加载错误。
解决方法
- 修正目录路径
- 调整
\import命令的路径参数,使其指向实际文件所在目录:\import{./pdftex/}{#1.pdf_tex} - 或者将
./pdftex/目录下的*.pdf和*.pdf_tex文件移动到./figures/目录,匹配代码中的路径设置。
- 调整
- 保证文件名一致
- 调用
\incfig时使用正确的文件名:\incfig{HBRIDGE-CIRCDIAGRAM}
- 调用
- 检查Overleaf项目结构
- 在Overleaf的项目文件列表中确认文件的层级位置,确保相对路径的起始目录(项目根目录)与代码中的路径逻辑一致。
内容的提问来源于stack exchange,提问作者mvh28
相关产品推荐
相关产品推荐

