我正在尝试实现一个命令,以便更轻松地将 .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}}%
}
定义您的命令,以确保所需参数中的特殊命令不会被误解。