使用 psfrag 将图像插入图形

使用 psfrag 将图像插入图形

我正在尝试使用 将图表导入文档Matlab。对于某些图表,我希望能够在特定位置添加小图像。我想我可以添加虚拟标签并替换它们,就像LaTeXPSFragMatlab

\psfrag{s14}[lt][lt]{%
    \color[rgb]{0,0,0}
    \setlength{\tabcolsep}{0pt}
    \begin{tabular}{l}
        \includegraphics[width = 0.8cm]{Simple2}
    \end{tabular}}%

但由于某种原因,它用基础图形(如我试图添加小图像的大图)而不是小图像替换了标签。

任何解决方案都非常感谢。

答案1

在此处输入图片描述

\includegraphics使用大量内部宏和寄存器来记录所包含图像的状态,并且它从未设计为在其自身处理过程中递归调用。因此,正如您所观察到的,它会丢失正在处理的文件的轨迹(可能还有很多其他细节)。使用框寄存器,您可以避免嵌套宏扩展的需要,并且(令人惊讶的是:-)一切都会顺利进行。上面显示了A原始 EPS 被文件渲染所取代b.ps

\begin{filecontents*}{a.ps}
%!
%%BoundingBox:100 100 172 172
100 100 moveto
72 72 rlineto
72 neg 0 rlineto
72 72 neg rlineto
stroke
100 100 moveto
/Times-Roman findfont
72 scalefont
setfont
(A) show
showpage
\end{filecontents*}
\begin{filecontents*}{b.ps}
%!
%%BoundingBox:100 100 120 120
100 100 moveto
20 20 rlineto
20 neg 0 rlineto
20 20 neg rlineto
stroke
100 100 moveto
/Times-Roman findfont
20 scalefont
setfont
(B) show
showpage
\end{filecontents*}
\documentclass{article}
\usepackage{psfrag}
\newsavebox\mybox

\begin{document}

\savebox\mybox{\includegraphics{b}}
\psfrag{A}{\usebox\mybox}

\includegraphics{a}

\end{document}

相关内容