答案1
以下解决方案结合了几个“技巧”:
首先,所有代码片段都在一个figure
环境中。这使您可以使用标题。后者会说一些话:图 1. 字幕内容(数字因为标题已在...figure
环境中定义!)。
然后,我们使用subfigure
环境将多个元素并排放置。使用包subcaption
可以定义\caption
每个环境内部subfigure
,从而添加...子标题。
最后,可以使用该listings
包在环境中显示代码lstlisting
。注意:由于代码是逐字打印的,因此您应该在lstlisting
环境中“重置”缩进。居中代码片段并不是一件容易的事。为此,我们绕道而行,lstlisting
在 one-cell 中包含tabular
,如中所述如何使列表居中?。
\documentclass{article}
\usepackage{subcaption}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[htb]
\centering
\begin{subfigure}[t]{.5\linewidth}
\centering
\begin{tabular}{c}
% Don't indent the lstlisting environment!
\begin{lstlisting}
[
'foo',
'bar',
'baz',
]
\end{lstlisting}
\end{tabular}
\caption{Simply words}
\end{subfigure}%
\begin{subfigure}[t]{.5\linewidth}
\centering
\begin{tabular}{c}
\begin{lstlisting}
[
3,
2,
1,
]
\end{lstlisting}
\end{tabular}
\caption{And numbers here}
\end{subfigure}
\caption{Very code. Much geek. Wow!}
\end{figure}
\lipsum[2]
\end{document}