我在枚举环境中使用多列来制作子问题;但是,我遇到了令人讨厌的默认问题:由于某种原因,元素之间的间距不均匀,并且似乎不在页面上居中。 MWE 如下。
我尝试使用 \setlength{\columnsep} 并在问题点处手动输入水平分隔符,但都无法解决问题。理想情况下,我希望能够为文档全局设置它,而不必每次都进行修改。
提前致谢!
\documentclass[9pt]{amsart}
\usepackage[lmargin=.7in,rmargin=.9in,tmargin=1in,bmargin=1in]{geometry}
\geometry{letterpaper}
\usepackage{amsmath}
\usepackage{multicol}
\begin{document}
\begin{enumerate}
\begin{multicols}{5}
\item $(3^{\pi})^{\pi} = \underline{\qquad}$ ; \\
\item $(e^{\pi})^{1/\pi} = \underline{\qquad}$ ; \\
\item $100^{3} \cdot 10^{5} = \underline{\qquad}$ ; \\
\item $(4^x)^2\cdot 4^{x^2} = \underline{\qquad}$ ; \\
\item $\bigl((5^2)^3\bigr)^4 = \underline{\qquad}$ ; \\
\end{multicols}
\end{enumerate}
\end{document}
答案1
好吧,我很惊讶这居然能起作用,因为它实际上不支持输入。列表的语法是
\begin{enumerate} \item ...
中间没有任何东西。因此,放入\begin{multicols}
那个空间充其量只是一种冒险。
但是,如果我使用最新的multicols
CTAN 1.8g 运行您的文档,据我所知,一切正常,即使您可能认为间距有点奇怪,但请参见下文。我已收到您的输入并重复了这组问题,将列数从 5 减少到 2,如果我这样做,我会得到以下输出:
如果我改变环境的顺序以获得正确的输入,即
\begin{multicols}{5}
\begin{enumerate}
\item $(3^{\pi})^{\pi} = \underline{\qquad}$ ; \\
\item $(e^{\pi})^{1/\pi} = \underline{\qquad}$ ; \\
\item $100^{3} \cdot 10^{5} = \underline{\qquad}$ ; \\
\item $(4^x)^2\cdot 4^{x^2} = \underline{\qquad}$ ; \\
\item $\bigl((5^2)^3\bigr)^4 = \underline{\qquad}$ ; \\
\end{enumerate}
\end{multicols}
结果 (几乎) 保持不变。不同之处在于项目标签和文本之间的间距似乎发生了变化,结果是如果我们有 5 列,您的文本不再适合单个列。我猜原因是标签现在正确地位于列内,而之前它实际上由于这个原因而位于列分隔中(不支持环境之间的交互)。
制作一个使用原始代码和具有正确排序的环境的快速测试文件表明确实如此(我添加了\columnseprule=.4pt
以使其可见:
\documentclass[9pt]{amsart}
\usepackage[lmargin=.7in,rmargin=.9in,tmargin=1in,bmargin=1in]{geometry}
\geometry{letterpaper}
\usepackage{amsmath}
\usepackage{multicol}
\columnseprule.4pt
\begin{document}
Incorrectly ordered environments (multicols between enumerate and \verb=\item=)
\begin{enumerate}
\item I added an additional item in front to show what's going on: multicol works in the smaller space as the
enumerate indents. But at the same time the labels protrude outside of the space into the column separation.
\begin{multicols}{5}
\item $(3^{\pi})^{\pi} = \underline{\qquad}$ ; \\
\item $(e^{\pi})^{1/\pi} = \underline{\qquad}$ ; \\
\item $100^{3} \cdot 10^{5} = \underline{\qquad}$ ; \\
\item $(4^x)^2\cdot 4^{x^2} = \underline{\qquad}$ ; \\
\item $\bigl((5^2)^3\bigr)^4 = \underline{\qquad}$ ; \\
\end{multicols}
\end{enumerate}
Correctly ordered environments (multicols outside)
\begin{multicols}{5}
\begin{enumerate}
\item $(3^{\pi})^{\pi} = \underline{\qquad}$ ; \\
\item $(e^{\pi})^{1/\pi} = \underline{\qquad}$ ; \\
\item $100^{3} \cdot 10^{5} = \underline{\qquad}$ ; \\
\item $(4^x)^2\cdot 4^{x^2} = \underline{\qquad}$ ; \\
\item $\bigl((5^2)^3\bigr)^4 = \underline{\qquad}$ ; \\
\end{enumerate} \end{multicols}
\end{document}
如果我们运行这个我们会得到:
我还没有检查旧版本的 multicol 出了什么问题。如果只是水平间距,那么我希望在上面的例子中解释那里发生的事情。
但是,如果垂直间距也有些不正确,那么原因是我最近修复了一些非常特殊场景的对齐问题,正是多列与列表交互而不是主要的直文本(它最初是为此编写的)的情况。
请注意,版本 1.8g 可能尚未在 TeX Live 等 TeX 发行版上自动更新,因此您必须从 CTAN 获取它。
答案2
使用内联列表效果会更好。有了enumitem
,这很容易。
\documentclass[9pt]{amsart}
\usepackage[lmargin=.7in,rmargin=.9in,tmargin=1in,bmargin=1in]{geometry}
\geometry{letterpaper}
\usepackage{amsmath}
\usepackage{showframe}
\usepackage[inline]{enumitem}
\begin{document}
\noindent
\begin{enumerate*}[leftmargin=*, itemjoin={{\hfill}}]
\item $(3^{\pi})^{\pi} = \underline{\qquad}$ ;
\item $(e^{\pi})^{1/\pi} = \underline{\qquad}$ ;
\item $100^{3} \cdot 10^{5} = \underline{\qquad}$ ;
\item $(4^x)^2\cdot 4^{x^2} = \underline{\qquad}$ ;
\item $\bigl((5^2)^3\bigr)^4 = \underline{\qquad}$ ;
\end{enumerate*}
\end{document}
除了\hfill
in之外itemjoin
,您还可以指定固定长度:
itemjoin={{\hspace{0.75cm}}}
适合您。