图像中包含另一幅图像

图像中包含另一幅图像

我目前有一些 LaTeX 代码可以并排显示多幅图像:

\begin{figure*}
\begin{center}
\includegraphics[height=2cm]{foo11.jpg}
\includegraphics[height=2cm]{foo12.jpg}\\
\includegraphics[height=2cm]{foo21.jpg}
\includegraphics[height=2cm]{foo22.jpg}
\end{center}
\caption{my caption.}
\end{figure*}

我现在想添加一个小插图,例如在foo12.jpg和里面foo22.jpg。例如,将图像bar12.jpg作为小缩略图放在 的右上角foo12.jpg,将图像bar22.jpg作为小缩略图放在 的右上角foo22.jpg

当然,我的目标是不是使用 Photoshop(或任何外部工具/脚本)来做到这一点,但直接在 LaTeX 中做到这一点。我想这应该是可行的(因为使用 Acrobat,我们可以将图像放在 PDF 中的任何位置,而 LaTeX 图形是“浮动的”),但我不知道该怎么做,也找不到任何资源来提供帮助。

答案1

如果您知道图像的尺寸,那么您可以使用凸起重叠轻松完成此操作。

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\begin{figure}
  \centering
  \setbox1=\hbox{\includegraphics[height=2cm]{example-image-b}}
  \includegraphics[height=2cm]{example-image-a}\llap{\includegraphics[height=1cm]{example-image-c}}
  \includegraphics[height=2cm]{example-image-a}\llap{\raisebox{1cm}{\includegraphics[height=1cm]{example-image-c}}} \\
  \includegraphics[height=2cm]{example-image-b}\llap{\makebox[\wd1][l]{\includegraphics[height=1cm]{example-image-c}}}
  \includegraphics[height=2cm]{example-image-b}\llap{\makebox[\wd1][l]{\raisebox{1cm}{\includegraphics[height=1cm]{example-image-c}}}}
  \caption{My caption.}
\end{figure}
\end{document}

我使用了mwe包裹,并且知道高度为1cm,增加1cm将填充2cm原始图像的。但是,如果您不知道高度,可以始终将内容装箱并提取高度,就像我\setbox1=\hbox{...}使用\wd1(框 1 的宽度)所做的那样。可能有更好的方法来做到这一点。

答案2

stackengine软件包有此功能。已更新为较新的语法。

此处介绍的命令是\stackinset。插入内容的六个参数是

\stackinset{<hrz>}{<offset>}{<vrt>}{<offset>}{<inset content>}{<base content>}

<hrz>的值lcr决定 H 偏移是从左侧、中心还是右侧。 的值<vrt>tc决定bV 偏移是从顶部、中心还是底部。

如您所见,偏移量也可以为负,本质上是将插图移到较大图形之外。

此套餐可在以下网站购买:https://ctan.org/pkg/stackengine,带有用于标签堆叠的配套包https://ctan.org/pkg/tabstackengine

\documentclass{article}
\usepackage{stackengine}
\usepackage{graphicx}
\parskip 1em
\begin{document}
\def\big{\includegraphics[height=4cm]{example-image}}
\def\little{\includegraphics[height=1.2cm]{example-image}}
\stackinset{l}{2pt}{t}{5pt}{\little}{\big}
\stackinset{l}{25pt}{b}{5pt}{\little}{\big}

\stackinset{r}{7pt}{t}{7pt}{\little}{\big}
\stackinset{r}{-5pt}{b}{12pt}{\little}{\big}

\stackinset{c}{10pt}{c}{25pt}{\little}{\big}
\end{document}

在此处输入图片描述

答案3

借用一些优秀的代码使用 TikZ 在图像上绘图你可以使用以下方法实现tikz

截屏

代码

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}

\begin{document}

\begin{figure}[!htb]
    \centering
    \begin{tikzpicture}
        \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=\textwidth]{mushroom}};
        \begin{scope}[x={(image.south east)},y={(image.north west)}]
            \draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1);
            \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
            \foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; }
            \node[anchor=south west,inner sep=0] (image) at (0.5,0.7) {\includegraphics[width=0.1\textwidth]{tux}};
        \end{scope}
    \end{tikzpicture}
    \caption{Find that penguin!}
\end{figure}
\end{document}

相关内容