前几天,我在创建包含文本和列表的示例时遇到了问题,我在这里询问了这个问题:在盒子里列出?David Carlisle 找到了一个非常好的解决方案,在尝试了他的解决方案后,我又遇到了另一个问题。看来这个解决方案确实接受列表,但不接受数字。
下面是我想要的一个例子。它基本上是 David 之前提供的解决方案,并添加了一个图形。因此它会失败。虽然我知道这里可能不需要这个图形,但我有其他情况确实想在示例中使用图形,这提供了一个可行的示例。
我不知道如何解决这个问题。欢迎提供任何指点和想法。
顺便说一句,我打算稍后使用最终解决方案作为新环境,作为我在文档中获得的所有示例的模板。
谢谢您阅读此篇。
\documentclass{article}
\usepackage{color,listings}
\definecolor{lightgray}{rgb}{.7,.7,.7}
\newsavebox\lstbox
\begin{document}
\begin{lrbox}{\lstbox}\begin{minipage}{\textwidth}
An example text
\begin{lstlisting}[frame=single,language=XML,caption=A Fibonaci example\label{code:fibonaci}]
<xml></xml>
\end{lstlisting}
\begin{figure}[htb]
\begin{verbatim}
1 1 2 3 5 8 13 21 34 55 89
\end{verbatim}
\caption{\label{code:fibonaci:output}Output of the Fibonaci example}
\end{figure}
Some more text
\end{minipage}\end{lrbox}
\colorbox{lightgray}{\usebox\lstbox}
\end{document}
答案1
使用caption
或capt-of
包并在外部figure
环境中执行所有操作。我添加了一些间距,使框架围绕lstlisting
灰色背景内部。
\documentclass{article}
\usepackage{color,listings,caption,calc}
\definecolor{lightgray}{rgb}{.7,.7,.7}
\newsavebox\lstbox
\begin{document}
\begin{figure}[htb]
\begin{lrbox}{\lstbox}\begin{minipage}{\textwidth-2\fboxsep-2pt}
An example text
\begin{lstlisting}[frame=single,language=XML,caption=A Fibonacci example\label{code:fibonacci}]
<xml></xml>
\end{lstlisting}
\begin{verbatim}
1 1 2 3 5 8 13 21 34 55 89
\end{verbatim}
\captionof{figure}{\label{code:fibonacci:output}Output of the Fibonacci example}
Some more text
\end{minipage}\end{lrbox}
\colorbox{lightgray}{\kern1pt\usebox\lstbox\kern1pt}
\end{figure}
\end{document}
顺便说一下,斐波那契,而非斐波纳契。