是否可以在枚举环境中使用多枚举包?以下代码无法正确显示(最后一列移动到下一行):
\begin{enumerate}
\item \begin{multienumerate}
\mitemxxx{Not1}{Linear1}{Not1}
\mitemxxx{Not2}{Linear2}{Not2}
\end{multienumerate}
\end{enumerate}
另外,如果可以的话,我该如何更改编号?由于 multienumerate 嵌套在 enumerate 环境中,我希望每个项目都标有字母字符 (a、b、c...)。如果这不可能,有人可以建议一种替代方法吗?
理想情况下,我希望创建以下内容:
1. 问题 1 序言
(a) a 部分 (b) b 部分 (c) c 部分
(d) d 部分 (e) e 部分 (f) f 部分
2. 问题 2 序言
(a) a 部分 (b) b 部分 (c) c 部分
(d) d 部分 (e) e 部分 (f) f 部分
其中 ac 和 df 部分跨越线宽并且标签垂直对齐。
答案1
您可以更改\hsize
为\linewidth
inside multienumerate
,这样环境就可以知道线宽的当前值(包\textwidth
默认使用);可以使用重新定义来更改所用计数器的表示\labelenumi
。如果您的内部项目自然平衡,则另一种选择是使用构建的三列,例如使用包multicol
。以下示例显示了两种替代方案:
\documentclass{article}
\usepackage{enumitem}
\usepackage{multienum}
\usepackage{multicol}
\begin{document}
\noindent Using \texttt{multienum}:
\begin{enumerate}
\item
\setlength\hsize{\linewidth}
\begin{multienumerate}
\setcounter{enumi}{0}
\renewcommand{\labelenumi}
{\addtocounter{enumi}{1}\alph{enumi}.}
\mitemxxx{Not}{Linear}{Not}
\end{multienumerate}
\end{enumerate}
\noindent Using \texttt{multicol}:
\begin{enumerate}
\item \begin{multicols}{3}
\begin{enumerate}
\item Not
\item Linear
\item Not
\end{enumerate}
\end{multicols}
\end{enumerate}
\end{document}
也许最好的选择是使用带有包选项的包enumerate*
中的环境并使用以下命令控制项目之间的间距:enumitem
inline
\hfill
\documentclass{article}
\usepackage[inline]{enumitem}
\begin{document}
\noindent With \texttt{enumitem}:
\begin{enumerate}
\item
\begin{enumerate*}[itemjoin=\hfill]
\item Not
\item Linear
\item Not
\end{enumerate*}
\end{enumerate}
\end{document}
通过对原始问题的编辑,更好的选择似乎是使用宽度等于且具有自动单元格编号的tabularx
环境(来自包):tabularx
\linewidth
\documentclass{article}
\usepackage{array}
\usepackage{tabularx}
\newcounter{row}
\renewcommand\therow{\alph{row}}
\begin{document}
\begin{enumerate}
\item
\begin{tabularx}{\linewidth}[t]{*{3}{>{\stepcounter{row}\makebox[1.8em][l]{(\therow)\hfill}}X}}
part 1 & part 2 & part 3\\
part 4 & part 5 & part 6\\
\end{tabularx}
\item
\setcounter{row}{0}
\begin{tabularx}{\linewidth}[t]{*{3}{>{\stepcounter{row}\makebox[1.8em][l]{(\therow)\hfill}}X}}
part 1 & part 2 & part 3\\
part 4 & part 5 & part 6\\
\end{tabularx}
\end{enumerate}
\end{document}
当然,如果要多次使用这个结构,可以定义一个新的环境来简化书写:
\documentclass{article}
\usepackage{array}
\usepackage{tabularx}
\newcounter{row}
\renewcommand\therow{\alph{row}}
\newenvironment{rowenum}
{\setcounter{row}{0}%
\par\noindent\tabularx{\linewidth}[t]
{*{3}{>{\stepcounter{row}\makebox[1.8em][l]{(\therow)\hfill}}X}}%
}
{\endtabularx}
\begin{document}
\begin{enumerate}
\item Question 1 preamble
\begin{rowenum}
part 1 & part 2 & part 3 \\
part 4 & part 5 & part 6 \\
\end{rowenum}
\item Question 2 preamble
\begin{rowenum}
part 1 & part 2 & part 3 \\
part 4 & part 5 & part 6 \\
\end{rowenum}
\end{enumerate}
\end{document}