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
. lrbox
ambiente foi introduzido por esta razão
\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 = single
como argumento. Usar frame = true
não levará você a lugar nenhum. Apenas como dica