multicols 不会将长列表拆分成列

multicols 不会将长列表拆分成列

我有一个枚举列表,其中每个列表项都有一个逐项子列表,我希望将其显示在 3 列中。根据其他问题/答案,我决定最好的方法是使用该multicol包。

如果子列表较小(3 个或更少的项目),则此方法可以正常工作,但如果列表长度超过我在multicols 标签中指定的列数,则列表将作为单个项目列表显示。


\documentclass{article}
\usepackage{multicol}
\begin{document}
\begin{enumerate}
    \item Programming Languages:
        \begin{multicols}{3}
            \begin{itemize}
                \item awk
                \item bash
                \item C 
                \item C++
                \item java
                \item perl
                \item python
            \end{itemize}
        \end{multicols}
    \item Operating Systems:
        \begin{multicols}{3}
            \begin{itemize}
                \item Linux
                \item Windows
            \end{itemize}
        \end{multicols}
    \item Network Tools:
\end{enumerate}
\end{document}

在此处输入图片描述

我期望输出如下所示:


1. Programming Languages:
awk  bash  c
c++  java  perl
python
2. Operating Systems:
Linux  Windows
3. Network tools

各列正确对齐。

这可能只是我的屏幕阅读器读取生成的 pdf 的方式,但我看到了单列中的语言列表和彼此相邻的操作系统。

答案1

环境itemize是垂直工作的,而不是水平工作的。重新排序\item语句(乏味)或者使用更好的方法,比如tasks包,定义一个\NewTasks环境并给它style=itemize选项

\documentclass{article}
\usepackage{enumitem}
\usepackage{tasks}

\NewTasks[style=itemize]{ComputerScience}

\setlist[enumerate,1]{wide=0pt}
\begin{document}

\begin{enumerate}
    \item Programming Languages:
      \begin{ComputerScience}(3)
      \task awk
      \task bash
      \task C 
      \task C++
      \task java
      \task perl
      \task python
    \end{ComputerScience}
    \item Operating Systems:
       \begin{ComputerScience}(2)
        \task Linux
        \task Windows
      \end{ComputerScience}
    \item Network Tools:
\end{enumerate}

\end{document}

对于更基本的方法,只需使用taskslabel=\textbullet

\documentclass{article}
\usepackage{tasks}
\begin{document}
\begin{enumerate}
    \item Programming Languages:
      \begin{tasks}[label=\textbullet](3)
      \task awk
                \task bash
                \task C 
                \task C++
                \task java
                \task perl
                \task python
         \end{tasks}
    \item Operating Systems:
        \begin{tasks}[label=\textbullet](2)
                \task Linux
                \task Windows
        \end{tasks}
    \item Network Tools:
\end{enumerate}
\end{document}

均显示

在此处输入图片描述

相关内容