编辑

编辑

我正在尝试复制论文的 Word 版本中的以下布局:

这就是我想在 LaTeX 中得到的东西。

有两个代码部分并排,代码在两者之间保持平衡。代码无法放在一列中,因此我使用这种方式使其保持在同一页上。标题将在下面。

我尝试过这样做,但不幸的是,这种方法虽然有效,但效果并不理想。它生成了两列,但存在一些问题:

我得到的是 LaTeX 版本。

所以首先,列与文本列(红线)不对齐。我认为这可能与我的迷你页面有关。

其次,它与后面的文本重叠(传记框应该在后面!)。这让我感觉它没有意识到小页面的存在,还是呈现了文本。

下面是执行此操作的代码片段(我在我的文件中使用相同的语法):

\documentclass[10pt,journal,compsoc]{IEEEtran}

\newcommand{\us}{\char`_}
\usepackage{listings}
\lstdefinestyle{base}{
    language=C,
    basicstyle=\footnotesize\ttfamily,
    multicols=2,
    breaklines=true
}
\usepackage{multicol}
\usepackage{xcolor}
\usepackage{blindtext}
\begin{document}


\noindent
\begin{minipage}[5cm]{\textwidth}
\begin{lstlisting}[language=C++,caption=Migration,style=base,captionpos=b]
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;



\end{lstlisting}
\end{minipage}%


\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext

\end{document}

我希望有人能提示我应该如何进行。

答案1

删除minipage并将列表括在内figure*;它将被移动到下一页的顶部,但您不会遇到现在遇到的问题:

\documentclass[10pt,journal,compsoc]{IEEEtran}
\usepackage{listings}
\lstdefinestyle{base}{
    language=C,
    basicstyle=\footnotesize\ttfamily,
    multicols=2,
    breaklines=true
}
\usepackage{multicol}
\usepackage{xcolor}
\usepackage{blindtext}

\newcommand{\us}{\char`_}

\begin{document}

\begin{figure*}
\begin{lstlisting}[language=C++,caption=Migration,style=base,captionpos=b]
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
int a;
\end{lstlisting}
\end{figure*}
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext

\end{document}

在此处输入图片描述

答案2

也许是这样的。这用于figure*产生双列浮点。将标题居中,caption以便figure*可以将标题分配给lstlisting标题而不是常规图形。

带对齐标题的多列列表

列表列表

\documentclass[10pt,journal,compsoc]{IEEEtran}

\newcommand{\us}{\char`_}
\usepackage{listings}
\lstdefinestyle{base}{
  language=C,
  basicstyle=\footnotesize\ttfamily,
  multicols=2,
  breaklines=true,
}
\usepackage{multicol}
\usepackage{caption}
\captionsetup{justification=justified, singlelinecheck=false}
\usepackage{xcolor}
\usepackage{kantlipsum}
\begin{document}
  \lstlistoflistings
  \begin{figure*}
    \begin{lstlisting}[language=C++,style=base]
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
      int a;
    \end{lstlisting}
    \captionsetup{type=lstlisting}
    \caption{Migration}
  \end{figure*}

  \kant[1-20]

\end{document}

编辑

根据 Gonzalo Medina 对此类标题格式的评论进行编辑。justification=justified调整标题的对齐方式并singlelinecheck=false防止仅包含一行的标题居中。

相关内容