Graphics, Figures & Tables ⇒ How to add a shadow under a picture ?
- Stefan Kottwitz
- Site Admin
- Posts: 10330
- Joined: Mon Mar 10, 2008 9:44 pm
Re: How to add a shadow under a picture ?
Stefan
NEW: TikZ book now 40% off at Amazon.com for a short time.
And: Currently, Packt sells ebooks for $4.99 each if you buy 5 of their over 1000 ebooks. If you choose only a single one, $9.99. How about combining 3 LaTeX books with Python, gnuplot, mathplotlib, Matlab, ChatGPT or other AI books? Epub and PDF. Bundle (3 books, add more for higher discount): https://packt.link/MDH5p
Re: How to add a shadow under a picture ?
- Stefan Kottwitz
- Site Admin
- Posts: 10330
- Joined: Mon Mar 10, 2008 9:44 pm
How to add a shadow under a picture ?
Code: Select all
\newcommand{\shadowpicture}[1]{%
\shadowsize=1pt
\fboxrule=0pt
\fboxsep=0pt
\color{gray}
\shadowbox{\fboxsep=6pt\fcolorbox{white}{white}{#1}}
\normalcolor
}
Code: Select all
\begin{figure}[H]
\centering
\shadowpicture{\includegraphics[height=8cm]{picture.jpg}}
\caption{Another caption.}
\end{figure}
Stefan
Re: How to add a shadow under a picture ?

Thanks Stefan ! (by the way, see the preview in my last message, on the previous page...)
- Stefan Kottwitz
- Site Admin
- Posts: 10330
- Joined: Mon Mar 10, 2008 9:44 pm
How to add a shadow under a picture ?
Regarding macros, try defining macros for all which you possibly need several times, also to make a logical document. For example, I would not even use
\textbf
or \textit
in a document - but I would define \keyword
etc. for such emphasis. These macros could call \textbf etc. And I could change that for the whole document whenever I like.Stefan
How to add a shadow under a picture ?
It certainly looks like its exactly what you are looking for, and I was also. Next thing is I'd like to make this part of a class or a module.
Let me know how you go.
Cheers
Here is the code
Code: Select all
\documentclass{article}
% put all this in the preamble
\usepackage{tikz}
\usetikzlibrary{shadows,calc}
% code adapted from http://tex.stackexchange.com/a/11483/3954
% some parameters for customization
\def\shadowshift{3pt,-3pt}
\def\shadowradius{6pt}
\colorlet{innercolor}{black!60}
\colorlet{outercolor}{gray!05}
% this draws a shadow under a rectangle node
\newcommand\drawshadow[1]{
\begin{pgfonlayer}{shadow}
\shade[outercolor,inner color=innercolor,outer color=outercolor] ($(#1.south west)+(\shadowshift)+(\shadowradius/2,\shadowradius/2)$) circle (\shadowradius);
\shade[outercolor,inner color=innercolor,outer color=outercolor] ($(#1.north west)+(\shadowshift)+(\shadowradius/2,-\shadowradius/2)$) circle (\shadowradius);
\shade[outercolor,inner color=innercolor,outer color=outercolor] ($(#1.south east)+(\shadowshift)+(-\shadowradius/2,\shadowradius/2)$) circle (\shadowradius);
\shade[outercolor,inner color=innercolor,outer color=outercolor] ($(#1.north east)+(\shadowshift)+(-\shadowradius/2,-\shadowradius/2)$) circle (\shadowradius);
\shade[top color=innercolor,bottom color=outercolor] ($(#1.south west)+(\shadowshift)+(\shadowradius/2,-\shadowradius/2)$) rectangle ($(#1.south east)+(\shadowshift)+(-\shadowradius/2,\shadowradius/2)$);
\shade[left color=innercolor,right color=outercolor] ($(#1.south east)+(\shadowshift)+(-\shadowradius/2,\shadowradius/2)$) rectangle ($(#1.north east)+(\shadowshift)+(\shadowradius/2,-\shadowradius/2)$);
\shade[bottom color=innercolor,top color=outercolor] ($(#1.north west)+(\shadowshift)+(\shadowradius/2,-\shadowradius/2)$) rectangle ($(#1.north east)+(\shadowshift)+(-\shadowradius/2,\shadowradius/2)$);
\shade[outercolor,right color=innercolor,left color=outercolor] ($(#1.south west)+(\shadowshift)+(-\shadowradius/2,\shadowradius/2)$) rectangle ($(#1.north west)+(\shadowshift)+(\shadowradius/2,-\shadowradius/2)$);
\filldraw ($(#1.south west)+(\shadowshift)+(\shadowradius/2,\shadowradius/2)$) rectangle ($(#1.north east)+(\shadowshift)-(\shadowradius/2,\shadowradius/2)$);
\end{pgfonlayer}
}
% create a shadow layer, so that we don't need to worry about overdrawing other things
\pgfdeclarelayer{shadow}
\pgfsetlayers{shadow,main}
\newcommand\shadowimage[2][]{%
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[#1]{#2}};
\drawshadow{image}
\end{tikzpicture}}
% end of the preamble stuff
% this is what you put in your document - replace {image} with your image file name e.g. {my picture}
\begin{document}
\shadowimage[width=5cm]{image}\par\bigskip
\shadowimage[width=8cm]{image}
\end{document}
-
- Posts: 51
- Joined: Sat Oct 22, 2016 3:43 pm
How to add a shadow under a picture ?
Stef