我正在尝试复制论文的 Word 版本中的以下布局:
有两个代码部分并排,代码在两者之间保持平衡。代码无法放在一列中,因此我使用这种方式使其保持在同一页上。标题将在下面。
我尝试过这样做,但不幸的是,这种方法虽然有效,但效果并不理想。它生成了两列,但存在一些问题:
所以首先,列与文本列(红线)不对齐。我认为这可能与我的迷你页面有关。
其次,它与后面的文本重叠(传记框应该在后面!)。这让我感觉它没有意识到小页面的存在,还是呈现了文本。
下面是执行此操作的代码片段(我在我的文件中使用相同的语法):
\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
防止仅包含一行的标题居中。