
下图说明了我所寻找的内容:
multicol
本质上,我希望使用and包按上面所示进行编号enumitem
。但是当我使用以下代码尝试时:
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{enumitem,multicol}
\begin{document}
\begin{enumerate}
\item Evaluate each of the following if $x$ is a non-zero real number.
\begin{multicols}{2}
\begin{enumerate}[itemsep=1cm]% The item sep is my choice here.
\item $\dfrac{|x|}{x}$
\item $\dfrac{x}{|x|}$
\item $\dfrac{|-x|}{-x}$
\item $|x|-|-x|$
\end{enumerate}
\end{multicols}
\end{enumerate}
\end{document}
我得到:
本质上,我希望(b)
位于 所在位置(c)
。我知道这已经完成了,但我似乎找不到它。
答案1
以下是使用 defined 命令的选项\newitem
。内容设置为\parbox
自然从左到右流动的形式,以您想要的样式提供枚举:
\documentclass{article}
\usepackage{amsmath,amssymb}% http://ctan.org/pkg/{amsmath,amssymb}
\usepackage{enumitem,multicol,setspace}% http://ctan.org/pkg/{enumitem,multicol,setspace}
\newcounter{subenum}[enumi]
\renewcommand{\thesubenum}{\alph{subenum}}
\newcommand{\newitem}[1]{%
\refstepcounter{subenum}%
\parbox{\dimexpr.5\linewidth-.5\columnsep}{%
\makebox[\labelwidth][r]{(\thesubenum)\hspace*{\labelsep}}%
#1}\hfill%
}
\begin{document}
\begin{enumerate}[start=8]
\item Evaluate each of the following if $x$ is a non-zero real number.
\begin{multicols}{2}
\begin{enumerate}[itemsep=1cm]% The item sep is my choice here.
\item $\dfrac{|x|}{x}$
\item $\dfrac{x}{|x|}$
\item $\dfrac{|-x|}{-x}$
\item $|x|-|-x|$
\end{enumerate}
\end{multicols}
\item Evaluate each of the following if $x$ is a non-zero real number.\par
\setstretch{3}%
\newitem{$\dfrac{|x|}{x}$}
\newitem{$\dfrac{x}{|x|}$}
\newitem{$\dfrac{|-x|}{-x}$}
\newitem{$|x|-|-x|$}
\end{enumerate}
\end{document}
间距考虑由setspace
并且可以进行调整(\topsep
如果需要,还可以删除一些额外的“”空白)。
要以更自动化的方式更改列数,请添加
\usepackage[nomessages]{fp}% http://ctan.org/pkg/fp
到你的文档序言中,并使用
\FPeval\thecolwidth{round(1/4:4)}% Specify number of columns -> column width
\newcommand{\newitem}[1]{%
\refstepcounter{subenum}%
\parbox{\dimexpr\thecolwidth\linewidth-.5\columnsep}{%
\makebox[\labelwidth][r]{(\thesubenum)\hspace*{\labelsep}}%
#1}\hfill%
}
作为 的定义\newitem
。修改1/4
为1/<col nums>
以增加列数。
答案2
\documentclass{article}
\usepackage{amsmath,amssymb}
%\tracingall
\def\horizlist#1#2#3{%
\setcounter{enumi}{0}%
#3%
\flushleft
\dimen0 \linewidth
\divide\dimen0 by #1\relax
\advance\dimen0 -#2\relax
\def\item{\hfil\egroup\penalty50 \hfill
\refstepcounter{enumi}%
\leavevmode\hbox to \dimen0 \bgroup\space(\theenumi)\space}%
\leavevmode\bgroup\hskip 0pt plus -1fill }
\def\endhorizlist{\hfil\egroup\endflushleft}
\begin{document}
\begin{enumerate}
\item Evaluate each of the following if $x$ is a non-zero real number.
\begin{horizlist}{2}{1cm}{\renewcommand\theenumi{\alph{enumi}}}
\item $\dfrac{|x|}{x}$
\item $\dfrac{x}{|x|}$
\item $\dfrac{|-x|}{-x}$
\item $|x|-|-x|$
\end{horizlist}
\end{enumerate}
\end{document}
要了解这里发生的情况,如果您希望编号先从右到左再向下,这是正常的段落词序,因此要做的就是制作一系列固定宽度的框,如果它们是(比如说)文本宽度的 1/3,并且您在左齐平的段落中制作一个由这样的框组成的段落,那么 Tex 自然会用一行上的三个框包装该段落,并且它们将垂直对齐,因为它们的宽度相同。其余代码只是增加一个计数器并将(\the...)放在框的前面,并隐藏语法\makebox[0.3\textwidth]{...}
以使用标准\item
语法,这样就很容易在列表类型之间切换。
换句话说,与下面的内容进行比较,除了语法上的变化外,其他都相同。
\documentclass{article}
\begin{document}
\begin{flushleft}
\makebox[.3\textwidth][l]{one one}
\makebox[.3\textwidth][l]{two 2 two 2 two}
\makebox[.3\textwidth][l]{three three 3}
\makebox[.3\textwidth][l]{4 4 4 4 4 }
\makebox[.3\textwidth][l]{fifth box}
\makebox[.3\textwidth][l]{number 6}
\makebox[.3\textwidth][l]{7 7 7 7 }
\makebox[.3\textwidth][l]{eight}
\makebox[.3\textwidth][l]{nine nine}
\makebox[.3\textwidth][l]{10}
\end{flushleft}
\end{document}
尽管结果看起来分为三列,但它只是一个排版的段落,并且对齐是自动的,因为段落中的每个“单词”都是一个大小相同的框。
答案3
这很容易exsheets
包和tasks
包。希望下面的例子是不言自明的:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\DeclarePairedDelimiter\abs{\lvert}{\rvert}
\usepackage{exsheets}% loads the `tasks' package
\SetupExSheets{
headings = runin-nr
}
\settasks{
counter-format = tsk[a]. ,
label-format = \sffamily\itshape\bfseries
}
\setcounter{question}{43}% only for this example
\begin{document}
\begin{question}
Evaluate each of the following if $x$ is a non-zero real number.
\begin{tasks}(2)
\task $\dfrac{\abs{x}}{x}$
\task $\dfrac{x}{\abs{x}}$
\task $\dfrac{\abs{-x}}{-x}$
\task $\abs{x}-\abs{-x}$
\end{tasks}
\end{question}
\end{document}
答案4
这是一个无聊的例子,它使用resume
了enumitem
包。它不是最高效的,因为代码开始enumerate
过多地停止环境。但结果在视觉上是可以接受的。你可以引入各种额外的调整,因为它只是一个表格环境。
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
\newcommand{\Choices}[4]{\begin{tabular}{p{0.5\textwidth} p{0.5\textwidth}}
\begin{enumerate*}[series=lafter]
\item #1
\end{enumerate*} &%
\begin{enumerate*}[resume=lafter]
\item #2
\end{enumerate*} \\[2\baselineskip]
\begin{enumerate*}[resume=lafter]
\item #3
\end{enumerate*} &%
\begin{enumerate*}[resume=lafter]
\item #4
\end{enumerate*}
\end{tabular}}
\begin{document}
\begin{enumerate}
\item Evaluate each of the following if $x$ is a non-zero real number.
\Choices{$\dfrac{|x|}{x}$}{$\dfrac{x}{|x|}$}{$\dfrac{|-x|}{-x}$}{$|x|-|-x|$}
\item Evaluate each of the following if you can.
\Choices{This question is not answerable (is that a real word?)}
{This question does not have any correct answer}
{$\int_0^\pi{\tan\sqrt\theta d\theta}$}
{Whatever is a valid answer!}
\end{enumerate}
\end{document}