使用枚举和多列实现等间距

使用枚举和多列实现等间距

我想创建一个工作表,使所有问题都具有相同的垂直间距。我有两个问题。

  • 我该怎么做才能交换部分 (b) 和 (c),以便部分 (a) 和 (b) 在同一条线上,部分 (c) 和 (d) 在同一条线上?(这是之前的问题。但我想知道是否有更简单的解决方案。)
  • 一旦完成此交换,我该如何修改代码,以便问题 1 的部分 (a) 和 (b)、问题 1 的部分 (c) 和 (d) 以及问题 2 都具有垂直间距相等?(这三个空格应该占据整个页面。)

    \documentclass[10pt]{article}
    
    \usepackage{enumitem}
    \usepackage{multicol}
    \usepackage[margin=1.0in]{geometry}
    
    \begin{document}
    
    \begin{enumerate}
    % Problem 1
    \item First problem directions go here.
    \begin{multicols}{2}
    \begin{enumerate}
    \item This is part (a).
    \item This is part (b).
    \item This is part (c).
    \item This is part (d).
    \end{enumerate}
    \end{multicols}
    \vspace*{\stretch{1}}
    % Problem 2
    \item Second problem goes here.
    \vspace*{\stretch{1}}
    \end{enumerate}
    
    \end{document}
    

答案1

以下是使用 s 的基本实现minipage

在此处输入图片描述

\documentclass{article}
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\newlength{\subproblemhang}
\newcommand{\subproblem}[3][.5\linewidth]{%
  \settowidth{\subproblemhang}{(#2)~}%
  \begin{minipage}[t]{#1}
    \hangindent=\subproblemhang\hangafter=1%
    (#2)~#3
  \end{minipage}%
}

\begin{document}

\begin{enumerate}
% Problem 1
\item First problem directions go here. \par
\subproblem{a}{This is part (a).}%
\subproblem{b}{This is part (b).}

\vfill

\subproblem{c}{This is part (c).}%
\subproblem{d}{This is part (d).}

\vfill

% Problem 2
\item Second problem goes here.

\vfill

\end{enumerate}

\end{document}

这需要手动指定“子问题”编号,但如果需要,也可以更改。这取决于人们愿意将事情自动化到何种程度。\subproblem[<width>]{<number>}{<stuff>}允许您指定问题<number><stuff>,如果您希望拥有两个以上的“列”,则包括一个可选的<width>(默认0.5\linewidth为 2 列外观)。元素之间的相等间距由提供\vfill

如果您使用多行“子问题”语句,那么间距将有所不同。但是,可以使用固定minipage高度来正确调整每个“子问题”。不过,目前这可能就足够了。

相关内容