形状像表格的列表

形状像表格的列表

正如标题所暗示的,我想找到一种方法来以表格的形式编写(有序)列表。例如,这特别适合家庭作业。

我想到使用 multicol 包的解决方案是:

\documentclass{article}

\usepackage{multicol}

\begin{document}

\begin{multicols}{3}
[Solve the following equations:
]
\begin{enumerate}
\item Equation $1$
\item Equation $2$
\item Equation $3$
\item Equation $4$
\item Equation $5$
\item Equation $6$
\item Equation $7$
\item Equation $8$
\end{enumerate}
\end{multicols}

\end{document}

问题是,当各列的项目数不同时,最后一列会出现很大的空白。

因此,有没有办法让列表像表格一样?当然,我可以手动编写表格并自己对项目进行编号,但在删除/添加项目时不太方便。一个好的答案是提供选择列表是垂直还是水平枚举的选项。

对于可能不相等的列/行(如我的例子)的管理,规则应该是:当列表垂直枚举时,空白处位于右列的底部;当枚举是水平时,空白处位于最后一行的右侧。

答案1

您可以使用该tasks包,或者使用shortlst我已修补的包,以获得更大的灵活性。

我定义了一个tabenumerate环境,它接受两个 key=value 参数:nc是列数(默认为 3)和il基线拉伸(默认为 1.5)。相对于其他解决方案的优势在于,如果某个项目的宽度超过 1 列,它将automatically使用下一列。此外,我定义了一个\paritem命令来插入多行项目;它有一个可选参数,即此 \paritem 使用的列数(默认为 1),以及一个强制参数,即项目的内容。

以下是两种解决方案的演示:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{tasks}

\settasks{counter-format=tsk.}
\usepackage{shortlst,setspace,xkeyval}%
\makeatletter
\newcounter{ncol}
\define@key{lex}{nc}[3]{\setcounter{ncol}{#1}}%% 3 columns by default
\define@key{lex}{il}[1.5]{\def\@intln{#1}}% interlining![1]
\newenvironment{tabenumerate}[1][]{%
\setkeys{lex}{nc,il,#1}
\settowidth{\labelwidth}{\mbox{(m)}}
\setlength{\leftmargini}{\dimexpr\labelwidth+\labelsep\relax}%[1][3]
\setlength{\shortitemwidth}{\dimexpr\linewidth/\value{ncol}-\labelwidth-2\labelsep\relax}%
\renewcommand{\labelenumi}{\ensuremath{\arabic{enumi}.}}
\setstretch{\@intln}
\begin{shortenumerate}}%
{\end{shortenumerate}
 }%
 \newcommand\paritem[2][1]{\item \parbox[t]{#1\shortitemwidth}{\setstretch{1}#2\medskip}}
\makeatother


\begin{document}

\noindent Solve the following equations:
\begin{tasks}(3)
\task Equation $1$
\task Equation $2$
\task Equation $3$
\task Equation $4$ is a rather long equation
\task Equation $5$
\task Equation $6$
\task Equation $7$
\task Equation $8$
\end{tasks}
\bigskip

\noindent Solve the following equations:
\begin{tabenumerate}
  \item Equation $1$
\item Equation $2$
\item Equation $3$
\item Equation $4$ is a rather long equation
\item Equation $5$
\paritem[1] {Equation $6$ is another long equation}
\paritem[2] {Equation $7$ is a third long equation that stretches along two columns. }
\item Equation $8$

\end{tabenumerate}


\end{document} % 

在此处输入图片描述

相关内容