I use \includegraphics
command to insert image to the document. But how can I add a border around this image w/o any margin between border lines and image?
It seems to be very easy, but I can't find it in the documentation.
-
3related : tex.stackexchange.com/q/133450/138900– AndréCCommented Dec 10, 2019 at 9:05
7 Answers
You can add a frame around it by placing it inside a \fbox{...}
command.
\fbox{\includegraphics[options]{image}}
The distance can be set by changing the \fboxsep
length and the line width with the \fboxrule
length, e.g. to draw a tight 1pt thick rule around the image use:
{%
\setlength{\fboxsep}{0pt}%
\setlength{\fboxrule}{1pt}%
\fbox{\includegraphics[options]{image}}%
}%
Using a recent version of my adjustbox
package you can use:
\usepackage[export]{adjustbox}
% ...
\includegraphics[<your options>,frame]{image}% tight frame
% or
\includegraphics[<your options>,fbox]{image}% Like normal \fbox
There is also cframe
and cfbox
for colored frames. All of these allow for multiple optional values, e.g. frame=<rule width>
. See the manual for more information.
-
9Thanks,
\frame
works better for me, because I don't need any margin between image and line.– TheBugCommented Jun 13, 2011 at 20:15 -
19I now programmed a
frame
option for\includegraphics
. It will be released with the next package update ofadjustbox
. Commented Jul 22, 2011 at 8:16 -
2Pleasen i ask if it's possible to have rounded border corners? and how ? thank you. Commented Sep 8, 2012 at 11:49
-
1@researcher: For rounded corners you need to use TikZ or PS-Tricks. See also How to draw frame with rounded corners around box. Commented Sep 8, 2012 at 12:16
-
1
I've found that \frame{\includegraphics{image}}
command works for my case.
-
6Nice, I didn't know that
\frame
existed. I now figured out thatbeamer
which defines its own\frame
macro andframe
environment also supports the normal\frame
inside them (be saving and then restoring the default definition locally). Commented Jun 28, 2011 at 17:25 -
3Note that
\frame
will cause the final box to have no depth, which is fine for image but mostly not for text.{\setlength{\fboxsep}{0pt}\fbox{..}}
however will keep the original depth, so that letters like 'y' and 'g' are not moved up. Commented Jul 22, 2011 at 8:14 -
I found this to be problematic in Adobe. As you zoom in/out some sides of the box will dissapear– pukCommented Jun 1, 2020 at 23:47
-
1
You need more fancy frame? The settings that you can adjust:
\fboxsep=10mm%padding thickness
\fboxrule=4pt%border thickness
and
%\fcolorbox{bordercolor}{paddingcolor}{image}
\fcolorbox{red}{yellow}{\includegraphics[width=0.5\linewidth]{foobarbaz}}
\documentclass[demo]{article}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{blindtext}
\fboxsep=10mm%padding thickness
\fboxrule=4pt%border thickness
\begin{document}
\blindtext
\begin{figure}[hbtp]
\centering
%\fcolorbox{bordercolor}{paddingcolor}{image}
\fcolorbox{red}{yellow}{\includegraphics[width=0.5\linewidth]{foobarbaz}}
\caption{This is a black box for demo purpose.}
\label{fig:foobarbaz}
\end{figure}
\blindtext
\end{document}
-
3Thanks for such complete example, it will help me with my next experiments.– TheBugCommented Jun 14, 2011 at 15:26
A tcbox
(or a tcolorbox
) were missing in this list. Some simple examples:
\documentclass[a4paper]{article}
\usepackage[most]{tcolorbox}
\begin{document}
\tcbox{\includegraphics[width=5cm]{frog}}
\tcbox[colframe=green!30!black,
colback=green!30]{\includegraphics[width=5cm]{frog}}
\tcbox[sharp corners, boxsep=5mm, boxrule=1mm,
colframe=green!30!black, colback=white]
{\includegraphics[width=5cm]{frog}}
\end{document}
Update
An alternative to tcbox
is tcbincludegraphics
command:
\documentclass[a4paper]{article}
\usepackage[most]{tcolorbox}
\begin{document}
\tcbincludegraphics[width=5cm]{frog}
\tcbincludegraphics[colframe=green!30!black,
colback=green!30, graphics options={height=2cm}, width=.25\linewidth]{frog}
\tcbincludegraphics[hbox, size=fbox, graphics options={width=3cm}, sharp corners, colframe=red]{frog}
\end{document}
-
1Although this is the hardest solution, it is much better than the top rate solution by @theBug– pukCommented Jun 2, 2020 at 0:05
-
I wanted no margins, so
\tcbox[size=tight]{}
was a great solution. Commented Aug 23, 2022 at 3:02
Somebody tell me if I've missed an answer already covering this, but my favourite way to do this is using efbox
and this is my go-to image-framer for simple framing.
\documentclass[border=9pt]{standalone}
\usepackage{efbox,graphicx}
\efboxsetup{linecolor=green,linewidth=10pt}
\begin{document}
\efbox{\includegraphics{cath-gadael-chartref}}
\end{document}
[Disclaimer: code for the image is somewhere on this site, but it's mine so I don't feel obligated to find it.]
-
7Any cat seeing this must give +1.– user194703Commented Dec 9, 2019 at 22:57
-
1@Schrödinger'scat Beats
example-image-a
. I think themwe
package needs more cats!– cfrCommented Dec 9, 2019 at 22:59 -
1
-
1@Schrödinger'scat
example-image-purr
,example-image-silent-glare
,example-image-hiss
,example-image-growl
,example-image-prowl
...?– cfrCommented Dec 9, 2019 at 23:03 -
I think you got the point. ;-)– user194703Commented Dec 9, 2019 at 23:04
For someone who wants to achieve a similar affect in ConTeXt,
\externalfigure
accepts all the options of \framed
, so one can draw a border using:
\externalfigure[file][frame=on]
I use this command.
\usepackage{graphicx}
\setlength{\fboxsep}{0.005pt}
\newcommand{\tmpframe}[1]{\fbox{#1}}
%\renewcommand{\tmpframe}[1]{#1}
use example:
\begin{figure}
\centering
\tmpframe{\includegraphics[width=0.99\linewidth]{images/pathToImage.png}}
\caption{Some caption text).}
\label{fig:myRef}
\end{figure}
If you want to print a picture without a frame, use renewcomand in comment.