我想创建一个工作表,使所有问题都具有相同的垂直间距。我有两个问题。
- 我该怎么做才能交换部分 (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
高度来正确调整每个“子问题”。不过,目前这可能就足够了。