我有一个枚举列表,其中每个列表项都有一个逐项子列表,我希望将其显示在 3 列中。根据其他问题/答案,我决定最好的方法是使用该multicol
包。
如果子列表较小(3 个或更少的项目),则此方法可以正常工作,但如果列表长度超过我在multicol
s 标签中指定的列数,则列表将作为单个项目列表显示。
\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}
对于更基本的方法,只需使用tasks
和label=\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}
均显示