metapost作图宏包mpgraphics的自动重命名

我们希望mpgraphics可以自动重命名,并将图的标题改为该重命名。可以这样实现:


\usepackage{xparse}

\makeatletter
\NewDocumentEnvironment{mpfig}{m}{%
  \stepcounter{mpgfig}%
  \xdef\MPGCutFile{\mpgfigname.mp}
  \MPGverbatimwrite{\MPGCutFile}
}{
  \endMPGverbatimwrite%
  \MPGgraphicsinclude%
  \IfFileExists{\mpgfigname.\mpg@graphicsextension}{%
  \immediate\write18{cp "\mpgfigname.\mpg@graphicsextension" "img/#1.\mpg@graphicsextension"}% 
    {\begin{center} \thempgfig:#1 \end{center}}%
  }{
    \csname @mpg@no@\mpg@graphicsextension true\endcsname
  }
  \global\@mpg@noprocessfalse\noindent%
}
\makeatother

添加上述代码到preamble区域。然后可以这样使用


\begin{mpfig}{a-circle}
draw fullcircle scaled 100pt;
\end{mpfig}

则可以重命名生成的文件到`img/`目录下(需要自己创建), 请用pdflatex编译。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

*

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理