我试图在我的文档中包含从 Inkscape 导出的 PDF+LaTeX 图形。.pdf_tex 和 .pdf 文件都位于同一路径内,嵌套在项目根目录中。这两段代码运行良好:
\def\svgwidth{\linewidth}
\import{figs/}{myfig.pdf_tex}
或者
\def\svgwidth{\linewidth}
\graphicspath{{figs/}}
\input{figs/myfig.pdf_tex}
我想制作这些的宏,因此我尝试:
\newcommand{\includepdflatexOne}[3][\linewidth]{
\def\svgwidth{{#1}}
\import{#2}{#3.pdf_tex}
}
和
\newcommand{\includepdflatexTwo}[3][\linewidth]{
\def\svgwidth{#1}
\graphicspath{{#2}}
\input{#2#3.pdf_tex}
}
但调用\includepdflatexOne{figs/}{myfig}
或\includepdflatexTwo{figs/}{myfig}
会导致
! LaTeX Error: File `myfig.pdf_tex' not found.
为什么在宏中调用\input
或时 LaTeX 找不到文件?我也试过了,但还是发生了同样的情况。\import
subimport
我相信我的问题可能与这个(未回答的)问题,但阅读它对我没有帮助。
为了以防万一,我使用 ShareLaTeX。
答案1
\def\svgwidth{{#1}}
如果#1
是\linewidth
(你的默认设置)
\def\svgwidth{{\linewidth}}
这将是一个错误。您只需要一组括号。