使用 \usepackage{multicol} 和 \SetEnumitemKey 时减少列之间的空间

使用 \usepackage{multicol} 和 \SetEnumitemKey 时减少列之间的空间

下面的 MWE 代码执行完美。但我需要将两列之间的水平空间减少 50%。

尝试将此字符串粘贴到序言中的不同位置以及 \begin{document} 之后

什么都没起作用。真诚感谢您的帮助。如果可能的话,请解释原因 \setlength\columnsep{10pt}不工作。

另外(这真的是强迫症),是否可以纠正两列之间的水平对齐? 我怀疑在同一行中同时使用分数和非分数答案选项会搞乱对齐。

水平错位的屏幕截图

平均能量损失

\documentclass[addpoints]{exam}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{multicol}

\newlist{options}{enumerate}{1}
\setlist[options]{label*=(\Alph*)}
\newcommand{\option}{\item}

\SetEnumitemKey{twocol}{
  before=\raggedcolumns\begin{multicols}{2},
  after=\end{multicols}}

\begin{document}

 %This code creates the text before the first question
%-------------------------------------------------------------------
\begin{center}
 \fbox{\fbox{\parbox{5.5in}{\centering
    Pre-Algebra Covid: Week 4 Item 2}}}
\end{center}

\vspace{5mm}

%Here, the questions begin
\begin{questions}

 % Q 1
 \question $\displaystyle\frac{4x^4y^3}{2x^3}$
 \bigskip

 \begin{options}[twocol]
  \option $2xy^3$\\
  \option $\displaystyle\frac{4x^2y^3}{2}$\\
  \option $\displaystyle\frac{24x^7}{y^2}$\\
  \option $\displaystyle\frac{4x}{9y^2}$\\
 \end{options}

\end{questions}
\end{document}

答案1

我不太清楚你在尝试什么。

根据你所做的设计

text in full width .............
................................

a multicol        at half of
splitting the     the \linewidth

因此,您的 4 个答案恰好出现在它们应该出现的位置,而更大的 \columnsep 不会改变这一点,它只会使列变小,而不会改变它们的起点。使用负 \columnsep 有所不同,但它实际上意味着您的第二列会覆盖第一列。(在您的情况下有效,因为您的列基本上是空的,但如果 (A) 或 (B) 有更多材料,则不会有效)。

因此,我不确定为什么你不简单地使用{multicols}{4}并将所有答案放在一行上,因为它们太短了。

但如果你真的决心要有两列并且在右侧有很多空白,请尝试如下操作:

\SetEnumitemKey{twocol}{
  before=\setlength\linewidth{.5\linewidth}%
         \raggedcolumns\begin{multicols}{2},
  after=\end{multicols}}

这样,multicols 看到的文本行宽度只有实际宽度的一半,因此它形成的两列就以该宽度为基准。

至于垂直“不”对齐...:多列不会将各个行对齐到不同的列中,它只是将样板分成几列,如果 (A) 是标准尺寸,而 (C) 是超高尺寸,则它们不会对齐。如果您希望所有内容对齐,最好使用表格或数组,但如果您想通过多列自动分页,那么您必须接受这一点或手动将内容设置为相同的高度,例如,

  \option $2xy^3 \phantom{\displaystyle\frac{4x}{9y^2}}$\\

这不太漂亮(但可以做得更好)。

无论如何,通过上述改变,你可以获得

在此处输入图片描述

示例中的第一行是使用

\SetEnumitemKey{fourcol}{
  before=\raggedcolumns\begin{multicols}{4},
  after=\end{multicols}}

为了减小宽度,可以应用相同的技巧,例如

\SetEnumitemKey{fourcol}{
  before=\setlength\linewidth{.6\linewidth}%   % -- 60 percent of the normal width
  \raggedcolumns\begin{multicols}{4},
  after=\end{multicols}}

或其他值,或者通常可以通过指定来减少厨房的宽度

\setlength\textwidth{4in}  % or some other value

在文件序言中。

相关内容