如何将代码清单列表也分成两列?

如何将代码清单列表也分成两列?

我正在使用带有双列格式选项的 KOMA 类。不幸的是,使用宏的代码列表\lstlistoflistings强制改回单列格式。

请看一下我的最小示例:

\documentclass[%
  twocolumn=true,
  parskip=no,
  twoside=false
]{scrartcl}

\usepackage{hyperref} 

\usepackage{ifluatex}
\ifxetex % XeTeX (LuaTeX)
  \usepackage{default}
  \usepackage{fontspec}
  \defaultfontfeatures{Ligatures=TeX} 
\else % pdfTeX
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
\fi

\usepackage{listings}
\lstset{
  language=Java,
  inputencoding=utf8,
  extendedchars=\true,
}

\title{Title}
\author{Author}


\begin{document}
\maketitle 
\tableofcontents

\section{Section}

\begin{lstlisting}[float,caption={class en Java},label={lst:class}]
public class MyClass{
  public MyClass(){
    // creates a new instance
  }
}
\end{lstlisting}

\lstlistoflistings % buggy (ne marche pas en mode de deux colonnes)

\listoffigures

\end{document}

输出

输出

答案1

加载包scrhack。然后\lstlistoflistings由 KOMA-Script 包控制tocbasic,就像默认列表一样。此外,KOMA-Script 选项的设置listof(例如listof=flatlistof=totoc)也会影响。请注意,每个 KOMA-Script 类都会自动使用\lstlistoflistings该包。tocbasic

在此处输入图片描述

\documentclass[%
  twocolumn=true,
  parskip=no,
  twoside=false
]{scrartcl}
\usepackage{scrhack}% <- added
\usepackage{hyperref} 

\usepackage{ifluatex}
\ifxetex % XeTeX (LuaTeX)
  \usepackage{default}
  \usepackage{fontspec}
  \defaultfontfeatures{Ligatures=TeX} 
\else % pdfTeX
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
\fi

\usepackage{listings}
\lstset{
  language=Java,
  inputencoding=utf8,
  extendedchars=\true,
}

\title{Title}
\author{Author}

\begin{document}
\maketitle 
\tableofcontents
\section{Section}
\begin{lstlisting}[float,caption={class en Java},label={lst:class}]
public class MyClass{
  public MyClass(){
    // creates a new instance
  }
}
\end{lstlisting}
\lstlistoflistings
\listoffigures
\end{document}

相关内容