306

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.

1

7 Answers 7

324

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.

7
  • 6
    Thanks, \frame works better for me, because I don't need any margin between image and line.
    – TheBug
    Jun 13, 2011 at 20:15
  • 15
    I now programmed a frame option for \includegraphics. It will be released with the next package update of adjustbox. Jul 22, 2011 at 8:16
  • 2
    Pleasen i ask if it's possible to have rounded border corners? and how ? thank you.
    – researcher
    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. Sep 8, 2012 at 12:16
  • 1
    Thanks! the frame option of adjustbox works very well!
    – rmbianchi
    Oct 1, 2015 at 18:19
198

I've found that \frame{\includegraphics{image}} command works for my case.

4
  • 6
    Nice, I didn't know that \frame existed. I now figured out that beamer which defines its own \frame macro and frame environment also supports the normal \frame inside them (be saving and then restoring the default definition locally). Jun 28, 2011 at 17:25
  • 3
    Note 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. 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
    – puk
    Jun 1, 2020 at 23:47
  • 1
    How to set the Thickness on this? Oct 5, 2021 at 15:17
76

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}}

enter image description here

\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}
1
  • 3
    Thanks for such complete example, it will help me with my next experiments.
    – TheBug
    Jun 14, 2011 at 15:26
27

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}

enter image description here

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}

enter image description here

2
  • 1
    Although this is the hardest solution, it is much better than the top rate solution by @theBug
    – puk
    Jun 2, 2020 at 0:05
  • I wanted no margins, so \tcbox[size=tight]{} was a great solution. Aug 23, 2022 at 3:02
9

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}

cath sy'n gadael ei chartref

[Disclaimer: code for the image is somewhere on this site, but it's mine so I don't feel obligated to find it.]

8
  • 5
    Any cat seeing this must give +1.
    – user194703
    Dec 9, 2019 at 22:57
  • 1
    @Schrödinger'scat Beats example-image-a. I think the mwe package needs more cats!
    – cfr
    Dec 9, 2019 at 22:59
  • 1
    How about example-image-meow?
    – user194703
    Dec 9, 2019 at 23:00
  • 1
    @Schrödinger'scat example-image-purr, example-image-silent-glare, example-image-hiss, example-image-growl, example-image-prowl ...?
    – cfr
    Dec 9, 2019 at 23:03
  • I think you got the point. ;-)
    – user194703
    Dec 9, 2019 at 23:04
6

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]
2

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .