\documentclass[a4paper,9pt]{extarticle}
\usepackage[margin=1.5cm]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{tasks}
\usepackage{multicol}
\usepackage{enumitem}
\newlength{\taskindent}
\settowidth{\taskindent}{\hspace{0.09cm}\text{m)}}
\settasks{
item-indent=\taskindent,
label-format=\MakeUppercase,
after-skip = 3ex,
}
\begin{document}
\begin{multicols*}{2}
\begin{enumerate}[left=0pt,label=\bfseries\arabic*.,ref=\arabic*,resume]
\item
\begin{justify}
\textbf{I want to align options to width but not aligned as seen}
\end{justify}
\begin{tasks}(5)
\task $1$
\task $2$
\task $3$
\task $4$
\task $5$
\end{tasks}
\end{enumerate}
\vfill\null
\columnbreak
\begin{enumerate}[left=0pt,label=\bfseries\arabic*.,ref=\arabic*,resume]
\item
\begin{justify}
\textbf{I want to align options to width but not aligned as seen}
\end{justify}
\begin{tasks}(5)
\task $1$
\task $2$
\task $3$
\task $4$
\task $5$
\end{tasks}
\end{enumerate}
\end{multicols*}
\end{document}
答案1
tasks
包装会将每件物品排版在一个固定的框中,例如
<tasks> ::= <fwd-item> (<item-sep> <fwd-item>)*
<fwd-item> ::= \hbox to <some-fixed-width>{<item>}
因此将其改为
<tasks>. ::= <item> (\hfill <item>)*
需要大量修补。
但是,您可以通过为 选取适当的值来模拟所需的效果column-set=<length>
,只要剩余的行宽(除以每行的项目数)足够宽来排版每个项目文本。例如,使用column-sep=3em
(和debug
来绘制边界框),
\documentclass[a4paper,9pt]{extarticle}
\usepackage[margin=1.5cm]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{tasks}
\usepackage{multicol}
\usepackage{enumitem}
\newlength{\taskindent}
\settowidth{\taskindent}{\hspace{0.09cm}\text{m)}}
\settasks{
item-indent=\taskindent,
label-format=\MakeUppercase,
after-skip = 3ex,
debug
}
\begin{document}
\begin{multicols*}{2}
Default:
\begin{enumerate}[left=0pt,label=\bfseries\arabic*.,ref=\arabic*,resume]
\item
\textbf{I want to align options to width but not aligned as seen}
\begin{tasks}(5)
\task $1$
\task $2$
\task $3$
\task $4$
\task $5$
\end{tasks}
\settasks{column-sep=3em}%
Setting \verb|column-sep=3em|:
\item
\textbf{I want to align options to width but not aligned as seen}
\begin{tasks}(5)
\task $1$
\task $2$
\task $3$
\task $4$
\task $5$
\end{tasks}
\end{enumerate}
\end{multicols*}
\end{document}
相比@CarLaTeX 的回答它使用itemjoin
并内联来自enumitem
包的列表环境,
- 当项目文本的宽度发生变化(但仍适合项目允许的最大宽度)时,
tasks
确保不同多项选择题中的项目垂直对齐,而内联列表环境没有此功能。 - 当项目文本的宽度足够大时,
tasks
将按照项目宽度的宽度将文本换行,而内联列表环境将按照行宽的宽度将整个列表换行。
答案2
您可以使用enumerate*
以下enumitem
包:
\documentclass[a4paper,9pt]{extarticle}
\usepackage[margin=1.5cm]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{multicol}
\usepackage[inline]{enumitem}
\begin{document}
\begin{multicols*}{2}
\begin{enumerate}[left=0pt,label=\bfseries\arabic*.,ref=\arabic*,resume]
\item \bfseries I want to align options to width but not aligned as seen
\begin{enumerate*}[before*={\noindent},label=\Alph*), font=\normalfont,itemjoin=\hfill]
\item $1$
\item $2$
\item $3$
\item $4$
\item $5$
\end{enumerate*}
\end{enumerate}
\vfill\null
\columnbreak
\begin{enumerate}[left=0pt,label=\bfseries\arabic*.,ref=\arabic*,resume]
\item \bfseries I want to align options to width but not aligned as seen
\begin{enumerate*}[before*={\noindent},label=\Alph*), font=\normalfont,itemjoin=\hfill]
\item $1$
\item $2$
\item $3$
\item $4$
\item $5$
\end{enumerate*}
\end{enumerate}
\end{multicols*}
\end{document}
如果您的列表总是这样,您可以使用 来设置它们\setlist[enumerate,<levels>]{<format>}
。