“\includegraphics{}” 但是适用于.pgf 文件吗?

“\includegraphics{}” 但是适用于.pgf 文件吗?

我正在尝试实现一个命令,以便更轻松地将 .pgf 文件放入我的文档(来自 matplotlib 的图),类似于\includegraphics[scale=...]{...}图像文件的工作方式。但是,由于 .pgf 文件使用该input{}命令,因此这有点困难。

通常,我显示 .pgf 图形的方式是:

\begin{figure}
    \resizebox{0.5\textwidth}{!}{\input{"../Parent_Dir/filename.pgf"}}
\end{figure}

但如果能用一个快速命令完成所有这些操作就更好了。

所以我想要类似这样的东西:

\newcommand{\pgfpath}{"../Parent_Dir"}
\newcommand{\includepgf}[2][0.5\textwidth]{\resizebox{#1}{!}{\input{\pgfpath#2.pgf}}}

不幸的是,这不起作用。我在转义文件路径名时遇到了一些麻烦,因为我在文件路径中使用了下划线,并且\textwidth可选缩放参数中的命令似乎会引发错误。

我将非常感激任何建议!

答案1

您没有提供示例,也没有说明您遇到了什么错误,但如果您展示的第一个表单有效,则下面的第二个表单将有效。请注意,/路径名和文件名之间缺少您建议的代码。

\documentclass{article}

\begin{document}

\begin{figure}
    \resizebox{0.5\textwidth}{!}{\input{"../Parent_Dir/filename.pgf"}}
\end{figure}


\newcommand{\pgfpath}{../Parent_Dir}
\newcommand\zz[2][0.5\textwidth]{\resizebox{0.5\textwidth}{!}{\input{"\pgfpath/#2.pgf"}}}

\zz{filename}

\end{document}

在当前的 latex 中不需要引用",但也许你有一个旧版本,你没有说。我在这里留下了引号。

答案2

尝试使用xparse引入\NewDocumentCommand。然后你可以写

\NewDocumentCommand{\includepgf}{ O{0.5\textwidth} v }{%
   \resizebox{#1}{!}{\input{\pgfpath#2.pgf}}%
}

定义您的命令,以确保所需参数中的特殊命令不会被误解。

相关内容