Listando em uma caixa?

Listando em uma caixa?

Meu problema é que estou tentando escrever um documento com seções coloridas como exemplos. Os exemplos podem conter listagens de códigos. De alguma forma, não consigo combinar uma coloração de fundo com uma listagem, ou mesmo literalmente.

Um exemplo do que tentei é este:

\colorbox{lightgray}{
\begin{minipage}{4cm}
An example text

\begin{lstlisting}[frame=single,language=XML,caption=A Fibonaci example\label{code:fibonaci}]
  <xml></xml>
\end{lstlisting}   

Some more text
\end{minipage}  
}

Todas as ideias são apreciadas!

Responder1

Por favor, sempre publique documentos completos mostrando os pacotes usados. O problema é que você não pode usar construções semelhantes literalmente no argumento de uma macro como \colorbox. lrboxambiente foi introduzido por esta razão

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{color,listings}
\definecolor{lightgray}{rgb}{.7,.7,.7}
\newsavebox\lstbox
\begin{document}

\begin{lrbox}{\lstbox}\begin{minipage}{4cm}
An example text

\begin{lstlisting}[frame=single,language=XML,caption=A Fibonaci example\label{code:fibonaci}]
  <xml></xml>
\end{lstlisting}   

Some more text
\end{minipage}\end{lrbox}  

\colorbox{lightgray}{\usebox\lstbox}


\end{document}

Responder2

Isso é o que costumo usar.

\documentclass[12pt]{article}
\usepackage[margin=1.6cm]{geometry}
\usepackage{amsmath, amssymb}
\usepackage{xcolor}
\usepackage{listings}
\lstset
{
    language=[LaTeX]TeX,
    breaklines=true,
    basicstyle=\tt\normalsize,
    keywordstyle=\color{blue},
    identifierstyle=\color{magenta},
    frame = single
}

Observe o uso de frame = singlecomo argumento. Usar frame = truenão levará você a lugar nenhum. Apenas como dica

informação relacionada