如何在双列文档中的单列表格中获取双列逐字记录?

如何在双列文档中的单列表格中获取双列逐字记录?

我有一个双列文档,需要在其中并排放置两个源代码列表。双列文档的单列自然太窄,因此两个列表需要跨越页面宽度。

\onecolum \twocolumn不是一个选择,因为它们需要放在文档的中间,而且空间很宝贵。

我尝试了几种选项figure*table*但不知道如何让它正确显示。

在单列文档中,它很简单,就像我以前使用{multicols}{2}并用于lstlisting显示代码一样,但按照预期切换到两列,将两列放在单个文档列中。

关于如何解决这个问题有什么想法吗?

答案1

这里有一个可能的解决方案,使用 twocolumn 类选项和figure*和 twominipage来排版列表(因为figure*使用了 ,所以列表将出现在下一页的顶部):

\documentclass[twocolumn]{article}
\usepackage{listings}
\usepackage{lipsum}

\begin{document}

\lipsum[1-6]
\begin{figure*}
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
if (i<>0) then i := 0;
\end{lstlisting}
\end{minipage}%
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
\end{lstlisting}
\end{minipage}%
\caption{Two  side-by-side listings}
\label{fig:listings}
\end{figure*}
\lipsum[1-6]

\end{document}

在此处输入图片描述

现在还有另一种选择:不使用twocolumn文档选项,而是multicol使用包以双列模式生成文本;环境结束,使用简单的smulticols排版并排列表(该包用于使用 生成可能的标题),然后开始另一个环境:minipagecaption\captionofmulticols

\documentclass{article}
\usepackage{multicol}
\usepackage{listings}
\usepackage{caption}
\usepackage{lipsum}

\begin{document}

\begin{multicols}{2}
\lipsum[1-2]
\end{multicols}
\noindent\begin{minipage}{\textwidth}
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
if (i<>0) then i := 0;
\end{lstlisting}
\end{minipage}%
\begin{minipage}[t]{0.5\textwidth}
\begin{lstlisting}
if (i<=0) then i := 1;
if (i>=0) then i := 0;
\end{lstlisting}
\end{minipage}%
\captionof{figure}{Two  side-by-side listings}
\label{fig:listings}
\end{minipage}
\begin{multicols}{2}
\lipsum[1-2]
\end{multicols}

\end{document}

multicol在最后一个选项中,适用浮点数的通常限制。

在此处输入图片描述

相关内容