\input 和 \import 在宏中不起作用

\input 和 \import 在宏中不起作用

我试图在我的文档中包含从 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 找不到文件?我也试过了,但还是发生了同样的情况。\importsubimport

我相信我的问题可能与这个(未回答的)问题,但阅读它对我没有帮助。

为了以防万一,我使用 ShareLaTeX。

答案1

\def\svgwidth{{#1}}

如果#1\linewidth(你的默认设置)

\def\svgwidth{{\linewidth}}

这将是一个错误。您只需要一组括号。

相关内容