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.

kmario23
  • 259
TheBug
  • 5,649

7 Answers7

325

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.

Martin Scharrer
  • 262,582
198

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

TheBug
  • 5,649
  • 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). – Martin Scharrer Jun 28 '11 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. – Martin Scharrer Jul 22 '11 at 08:14
  • I found this to be problematic in Adobe. As you zoom in/out some sides of the box will dissapear – puk Jun 01 '20 at 23:47
  • 1
    How to set the Thickness on this? – Kennet Celeste Oct 05 '21 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}
Display Name
  • 46,933
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

Ignasi
  • 136,588
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.]

cfr
  • 198,882
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]
Aditya
  • 62,301
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.