Based on the link in my comment I created an environment in which you can use the lstlistings
-environment:
Code
\documentclass[a4paper, 11pt]{article}
%\usepackage{color} loaded by tikz and you should use xcolor instead ...
\usepackage{listings}
\usepackage{tikz}
% set listings
\lstset{%
basicstyle=\footnotesize\ttfamily,
% captionpos=t,
framesep=5em,
}
% define backgroundcolor
\definecolor{bggray}{rgb}{0.85, 0.85, 0.85}
% add frame environment
\usepackage[%
framemethod=tikz,
skipbelow=\topskip,
skipabove=\topskip
]{mdframed}
\mdfsetup{%
leftmargin=0pt,
rightmargin=0pt,
backgroundcolor=bggray,
middlelinecolor=black,
roundcorner=10
}
\usepackage{etoolbox}% >= v2.1 2011-01-03
\BeforeBeginEnvironment{lstlisting}{\begin{mdframed}\vspace{-0.7em}}
\AfterEndEnvironment{lstlisting}{\vspace{-0.5em}\end{mdframed}}
% needed for \lstcapt
\def\ifempty#1{\def\temparg{#1}\ifx\temparg\empty}
% make new caption command for listings
\usepackage{caption}
\newcommand{\lstcapt}[2][]{%
\ifempty{#1}%
\captionof{lstlisting}{#2}%
\else%
\captionof{lstlisting}[#1]{#2}%
\fi%
\vspace{0.75\baselineskip}%
}
% only for testing ...
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\blindtext
%
\begin{lstlisting}
Foo {
Bazzzzz }
Bar
\end{lstlisting}
\lstcapt{Test}
%
\blindtext
%
\begin{lstlisting}
Foo
\end{lstlisting}
\lstcapt[Short descrpition]{Another long description. Another long description.
Another long description.}
%
\blindtext
%
\lstlistoflistings
\end{document}
Result
Limitation
This solution works only for non page breaking listings. See the answers to Test if a paragraph has a page break in it? for an idea how this could work.
See Update 3
Update
I put this three lines to the above example to patch the lstlisting
environment dircetly. So there’s no need to put it manually in \begin{code} … \end{code}
anymore.
\usepackage{etoolbox}
\BeforeBeginEnvironment{lstlisting}{\begin{code}}
\AfterEndEnvironment{lstlisting}{\end{code}}
Update 2
I created a new command \lstcapt[<Short>]{<Text>}
to set a caption out of the frame, and added it to the above example code.
Update 3
I changed to mdframed instead of using TikZ directly to solve the page breaking problem as Marco suggested.
Update 4
Please note that this code needs etoolbox
v2.1 or higer …
Update 5: Filelist
This is the result of \filelist
before \documentclass
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size11.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
listings.sty 2007/02/22 1.4 (Carsten Heinz)
keyval.sty 1999/03/16 v1.13 key=value parser (DPC)
lstmisc.sty 2007/02/22 1.4 (Carsten Heinz)
listings.cfg 2007/02/22 1.4 listings configuration
tikz.sty 2010/10/13 v2.10 (rcs-revision 1.76)
pgf.sty 2008/01/15 v2.10 (rcs-revision 1.12)
pgfrcs.sty 2010/10/25 v2.10 (rcs-revision 1.24)
everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS)
pgfrcs.code.tex
pgfcore.sty 2010/04/11 v2.10 (rcs-revision 1.7)
graphicx.sty 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/message (HO)
ltxcmds.sty 2011/04/18 v1.20 LaTeX kernel commands for general use (HO)
pgfsys.sty 2010/06/30 v2.10 (rcs-revision 1.37)
pgfsys.code.tex
pgfsyssoftpath.code.tex 2008/07/18 (rcs-revision 1.7)
pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
xcolor.sty 2007/01/21 v2.11 LaTeX color extensions (UK)
color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
pgfcore.code.tex
pgfcomp-version-0-65.sty 2007/07/03 v2.10 (rcs-revision 1.7)
pgfcomp-version-1-18.sty 2007/07/23 v2.10 (rcs-revision 1.1)
pgffor.sty 2010/03/23 v2.10 (rcs-revision 1.18)
pgfkeys.sty
pgfkeys.code.tex
pgffor.code.tex
tikz.code.tex
mdframed.sty 2011/08/06 v0.7a: mdframed
kvoptions.sty 2010/12/23 v3.10 Keyval support for LaTeX options (HO)
kvsetkeys.sty 2011/04/07 v1.13 Key value parser (HO)
etexcmds.sty 2011/02/16 v1.5 Prefix for e-TeX command names (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
calc.sty 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
etoolbox.sty 2011/01/03 v2.1 e-TeX tools for LaTeX
md-frame-1.mdf 2011/08/06 v0.7a: md-frame-1
caption.sty 2011/08/18 v3.2b Customizing captions (AR)
caption3.sty 2011/08/18 v1.3b caption3 kernel (AR)
babel.sty 2008/07/08 v3.8m The Babel package
english.ldf 2005/03/30 v3.3o English support from the babel system
blindtext.sty 2009/12/29 V1.9c blindtext-Package
xspace.sty 2009/10/20 v1.13 Space after command names (DPC,MH)
supp-pdf.mkii
pdftexcmds.sty 2011/04/22 v0.16 Utilities of pdfTeX for LuaTeX (HO)
ifpdf.sty 2011/01/30 v2.3 Provides the ifpdf switch (HO)
epstopdf-base.sty 2010/02/09 v2.5 Base part for package epstopdf
grfext.sty 2010/08/19 v1.1 Managing graphics extensions (HO)
kvdefinekeys.sty 2011/04/07 v1.3 Defining keys (HO)
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
***********
I am afraid that framed
package cannot do that alone. But you can redefine \fbox
or \FrameCommand
to obtain this results with the usual command \fbox
or the framed
environment.
This need some complex TeX definitions that are already included in fancybox.sty
. So, the most simple solution in to load also fancybox
package and then make a very simple definitions including \ovalbox
or \Ovalbox
. Example:
\documentclass{article}
\usepackage{fancybox,framed}
\renewcommand\fbox[1]{\Ovalbox{#1}}
\renewcommand*\FrameCommand{\ovalbox}
\begin{document}
Some text
\begin{framed}
A framed environment example ...
\end{framed}
Some text
\vspace{2cm}
Some text
\fbox{Simple framed box}
Some text
\end{document}
But I think that is more clear, more intuitive and less problematic use \Ovalbox
or \ovalbox
directly and left \fbox
for rentangular boxes.
About colors asked in azetina comment, as far I now fancybox
do not have color options, but is not difficult to obtain a colored border. See Enumerate over two columns in tabular environment for a example. A colored background seem more complicated (for me), so my advise is left definitively \fbox
and fancybox
and use the tcolorbox
or mdframed
packages, both excellent alternatives with many interesting options. There are a lot examples here, just some are in:
Best Answer
Next code uses
tcolorbox
to format the shadowed box where code is inserted throughlisting
package. Size, color and format of shadows can be adapted to ones taste.