Моя проблема в том, что я пытаюсь написать документ с цветными разделами для примеров. Примеры могут содержать листинги кода. Каким-то образом я не могу совместить фоновую окраску с листингом или даже дословно.
Вот пример того, что я попробовал:
\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}
}
Любые идеи приветствуются!
решение1
Пожалуйста, всегда публикуйте полные документы, показывающие используемые пакеты. Проблема в том, что вы не можете использовать конструкции типа дословно в аргументе макроса типа \colorbox
. lrbox
Для этой цели была введена среда
\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}
решение2
Я обычно так и делаю.
\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
}
Обратите внимание на использование frame = single
в качестве аргумента. Использование frame = true
никуда вас не приведет. Просто как совет