TeX - LaTeX Asked by WhitAngl on June 18, 2021
I currently have some LaTeX code to have multiple images side by side:
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*}
I would now like to add a small inset, inside for example foo12.jpg
and foo22.jpg
. For example, having the image bar12.jpg
as a small thumbnail in the top-right corner of foo12.jpg
and having the image bar22.jpg
as a small thumbnail in the top-right corner of foo22.jpg
.
Of course, my goal is not to do that using Photoshop (or any external tool/script) but to do it directly in LaTeX. I guess this should be doable (since with Acrobat we can place images wherever we want in a PDF, and since LaTeX figures are “floating”), but have no idea how and I can’t find any resource to help.
If you know the dimensions of the images, then you can easily do this with a raised overlap.
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}
I've used the example images from the mwe
package, and knowing that the heights will be 1cm
, raising by 1cm
will fill the 2cm
of the original image. However, if you don't know the heights, one can always box the contents and extract the height, as I did with setbox1=hbox{...}
and using wd1
(width of box 1). There might be better ways of doing this.
Correct answer by Werner on June 18, 2021
Borrowing some of the excellent code from Drawing on an image with TikZ you can achieve this using tikz
Code
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.1textwidth]{tux}};
end{scope}
end{tikzpicture}
caption{Find that penguin!}
end{figure}
end{document}
Answered by cmhughes on June 18, 2021
The stackengine
package has this feature. UPDATED for newer syntax.
The command featured here is stackinset
. The six arguments to inset content are
stackinset{<hrz>}{<offset>}{<vrt>}{<offset>}{<inset content>}{<base content>}
The value of <hrz>
of l
, c
, or r
determines whether the H-offset is from the left, center, or right. The value of <vrt>
of t
, c
, or b
determines whether the V-offset is from the top, center, or bottom.
As you can see, the offsets can also be negative, essentially moving the inset outside of the larger graphic.
The package is available at https://ctan.org/pkg/stackengine, with a companion package for tabbed stacking at https://ctan.org/pkg/tabstackengine.
documentclass{article}
usepackage{stackengine}
usepackage{graphicx}
parskip 1em
begin{document}
defbig{includegraphics[height=4cm]{example-image}}
deflittle{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}
Answered by Steven B. Segletes on June 18, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP