floatrow 环境中的 tikz 图像叠加

floatrow 环境中的 tikz 图像叠加

我试图在同一页面上的某个floatrow \ffigbox环境中分别在两个较大图形的顶部插入一个小图像,但这样做似乎floatrow有点问题(overpic虽然它更容易使用,但也有同样的问题 -tikz但大多数人似乎都在使用?)。

我能够在 floatrow 环境中添加插图,但问题是下一页的插图现在被较小的插图所取代。

我确实找到了另一个问题的答案,它看起来可能相关,但那里的答案看起来相当复杂。

tikz 外部化 floatrow

我会避免使用 floatrow,但它包含在我在文档其他地方使用的另一个包中。注释掉 auto-pst-pdf 包也可以解决问题,但这也是我想使用的东西。有没有办法让所有这些一起工作?

梅威瑟:

\documentclass[11 pt]{report}
\usepackage[runs=2]{auto-pst-pdf}
\usepackage{graphicx} 
\usepackage{floatrow}
\usepackage{tikz}

\begin{document}

\begin{figure}[htbp]
\centering

\begin{floatrow}
\ffigbox[\FBwidth]{%
\begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0)     {\includegraphics[width=0.9\textwidth]{images/bigimage1}};
     \begin{scope}[x={(image.south east)},y={(image.north west)}]
                    \node[anchor=south west,inner sep=0] (image) at (0.05,0.65){\includegraphics[scale=0.8]{images/smallinset1}};
             \end{scope}
\end{tikzpicture}
}%
    {\caption{caption1}}
 \end{floatrow}

 \begin{floatrow}
\ffigbox[\FBwidth]{%

\begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0)     {\includegraphics[width=0.9\textwidth]{images/bigimage2}};
         \begin{scope}[x={(image.south east)},y={(image.north west)}]
                   \node[anchor=south west,inner sep=0] (image) at (0.05,0.65)    {\includegraphics[scale=0.8]    {images/smallinset1}};
             \end{scope}
    \end{tikzpicture}
    }%
    {\caption{caption2}}
\end{floatrow}

\end{figure}

\clearpage
\begin{figure}[ht]
\centering
\includegraphics[scale=0.8]{second large figure}
\caption{wrong image appears here}
\end{figure}

\end{document}

这是我目前得到的结果:

在此处输入图片描述

第一页很好,图像叠加正确,但由于某种原因,图 3 被第一个插图取代。

编辑:编译时出现此错误 -

Package pst-pdf Warning: `untitled-2-pics.pdf' contains 7 pages but 3 pages are requested: File `untitled-2-pics.pdf' is no more valid! Recreate it .

查看此文件,第一个插图(小插图)出现了 6 次,而我想要的图 3 中的插图在最后一页。所以我认为这与 floatrow 调用该图像次数过多有关?

答案1

  • 抱歉,你的问题不清楚,所以这里我只能猜测你的问题是什么。希望你能更清楚地解释(通过编辑你的问题),你的问题是什么
  • 我假设图像存储在子文件夹中,并且pdf格式为
  • 如果图像 3 不是所需的图像,则路径和图像名称会出现一些错误
  • 因为我没有你的图片,我用graphicx包中的演示图片替换它

在此处输入图片描述

在此处输入图片描述

  • 对于图像的放置,我简化了代码tikzpicture
  • 如你所见,我改变了大图像上的小图像。如果我的改变没有给你想要的结果,那么你可以简单地改变这个
  • 图像定位的代码被简化了,floatrow首先figure省略了它,因为它只影响图像的大小(因为它会缩小\FBwidth)并且对图像没有其他影响。

\documentclass[11 pt]{report}
\usepackage[runs=2]{auto-pst-pdf}
\usepackage{floatrow}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}

\begin{figure}[htbp]
\centering
\tikzset{every node/.style = {inner sep=0pt, outer sep=0pt},
         node distance = 3pt and 3pt% set distance according your needs
         }
%\begin{floatrow}
\ffigbox[\FBwidth]{%
    \begin{tikzpicture}
\node (image) {\includegraphics[width=0.9\linewidth]{example-image-a}};%big image
\node[below right=of image.north west] {\includegraphics[scale=0.4]{example-image-b}};% small image
\end{tikzpicture}
                }{\caption{caption1}}

\bigskip
\ffigbox[\FBwidth]{%
    \begin{tikzpicture}
\node (image) {\includegraphics[width=0.9\linewidth]{example-image-a}};%big image
\node[below right=of image.north west] {\includegraphics[scale=0.4]{example-image-b}};% small image
\end{tikzpicture}
                }{\caption{caption2}}
%\end{floatrow}
\end{figure}

\begin{figure}[ht]
\centering
\includegraphics[scale=0.8]{example-image}%big image
\caption{wrong image appears here (this i cant check because you not provide path and name of this image. my replacement for it work as expected)}
\end{figure}

\end{document}

相关内容