使用 multicols 包时空间不足

使用 multicols 包时空间不足

我使用了以下代码:

\documentclass{article}
\usepackage{multicol}
\begin{document}
\begin{enumerate}
    \item 1
    \begin{multicols}{2}
    \begin{enumerate}  \itemsep=1in
        \item 2
        \item 3
        \item 4
        \item 5
    \end{enumerate}
    \end{multicols}
    \item 6
\end{enumerate}
\end{document}

当我看到我的文档的 .pdf 格式时,它变成了这样: 在此处输入图片描述

我通过选项指定了固定长度itemsep,但 (b) 和 (d) 选项下没有空格。我可以用什么来填充1in这些选项下的空格?谢谢。

答案1

也许该enumitem包是一种替代方案,它允许对列表参数进行单独的精细控制。

如果使用\itemsep=1in它仅在内部环境中有效enumerate,由于分组(长度/尺寸是组安全的,即组内的更改不会影响组外的值),因此对于外部enumerate,该\itemsep值仍然是传统的值。

\documentclass{article}
\usepackage{multicol}
\usepackage{enumitem}
\begin{document}

\begin{enumerate}[itemsep=1.5in]
    \item 1
    \begin{multicols}{2}
    \begin{enumerate}[itemsep=1in]

        \item 2
        \item 3
        \item 4
        \item 5
    \end{enumerate}
    \end{multicols}
    \item 6
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

在页面/列分隔符处删除垂直空间,因此\itemsep第 2 项和第 3 项之间的空间消失。

您需要将物品装箱,以便它们占据规定的高度。

\documentclass{article}
\usepackage{multicol}

\newenvironment{subquestions}[1][1in]
  {\begin{multicols}{2}\begin{enumerate}\setlength{\subqheight}{#1}}
  {\end{enumerate}\end{multicols}}
\newlength{\subqheight}
\newcommand{\subq}[1]{%
  \item \parbox[t][\subqheight]{\linewidth}{#1}%
}

\begin{document}

\begin{enumerate}
\item 1
  \begin{subquestions}
  \subq{2}
  \subq{3}
  \subq{4}
  \subq{5}
  \end{subquestions}
\item 6
  \begin{subquestions}[.5in]
  \subq{7}
  \subq{8}
  \subq{9}
  \subq{10}
  \end{subquestions}
\item 11
\end{enumerate}
\end{document}

在此处输入图片描述

如果要保留\item语法,则会有点困难,但可以借助environ

\documentclass{article}
\usepackage{multicol,environ}

\NewEnviron{subquestions}[1][1in]{
  \begin{multicols}{2}\begin{enumerate}\setlength{\subqheight}{#1}%
  \expandafter\subquestionrecurse\BODY\item\subquestionrecurse
}
\makeatletter
\long\def\subquestionrecurse\item#1\item#2\subquestionrecurse{%
  \subq{#1}%
  \if\relax\detokenize{#2}\relax
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\end{enumerate}\end{multicols}}%
  {\subquestionrecurse\item#2\subquestionrecurse}%
}
\makeatother
\newlength{\subqheight}
\newcommand{\subq}[1]{%
  \item \parbox[t][\subqheight]{\linewidth}{#1}%
}

\begin{document}

\begin{enumerate}
\item 1
  \begin{subquestions}
  \item 2
  \item 3
  \item 4
  \item 5
  \end{subquestions}
\item 6
  \begin{subquestions}[.5in]
  \item 7
  \item 8
  \item 9
  \item 10
  \end{subquestions}
\item 11
\end{enumerate}
\end{document}

相关内容