在下面的屏幕截图中,我希望内联模式中的第一个项目 A) 与第一个列表中的标签 A) 到 D) 的缩进级别相同。
为此,我想知道enumitem
包裹上是如何贴标签的。
这是我使用过的代码。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{enumitem}
\newlist{choices}{enumerate}{1}
\setlist[choices]{label*=\Alph*)}
\newcommand{\choice}{\item}
\newcounter{choice}
\renewcommand\thechoice{\Alph{choice}}
\newcommand\choicelabel{\thechoice)}
\newcommand\choicestarlabel{{\large $\square$}}
\newenvironment{inlineChoices}{%
\setcounter{choice}{0}%
\def\choice{%
\refstepcounter{choice}%
\ifnum\value{choice}>1\relax
\penalty -50\hskip 1em plus 1em\relax
\else
\hspace{\labelindent}% WRONG SPACING !!!
\fi
\choicelabel
\nobreak\enskip
}%
\ifvmode\else\enskip\fi
\ignorespaces
}{}
\begin{document}
\noindent Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
\begin{choices}
\choice $\dfrac{4}{7}$
\choice $\dfrac{8}{24}$
\choice $\dfrac{44}{121}$
\choice $\dfrac{9}{11}$
\end{choices}
\noindent Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
\begin{inlineChoices}
\choice $\dfrac{4}{7}$
\choice $\dfrac{8}{24}$
\choice $\dfrac{44}{121}$
\choice $\dfrac{9}{11}$
\end{inlineChoices}
\end{document}
答案1
您的内联列表会获得您指定的间距和正常的段落缩进,下面的代码确保它以\noindent
段落开头的 if 开始,然后获得我认为正确的缩进,具体取决于您想要的项目之间的间距。
\newenvironment{inlineChoices}{%
\ifvmode\noindent\fi
\hspace*{\leftmargini}%
\hspace*{-\labelwidth}%
\setcounter{choice}{0}%
\def\choice{%
\refstepcounter{choice}%
\ifnum\value{choice}>1\relax
\penalty -50\hskip 1em plus 1em\relax
\else
\hspace*{\itemindent}%
\fi
\choicelabel
\nobreak\enskip
}%
\ifvmode\else\enskip\fi
\ignorespaces
}{}
答案2
使用[inline]
选项enumitem
可使此类列表的制作更简单。由于这些列表旨在用于运行文本,因此您需要将它们包装在某种环境中以处理间距问题;但是,我在我的示例中忽略了这一点。我已将项目之间的分隔设为 ( itemjoin
) \qquad
。您可以根据需要更改它。根据您的评论,我还使用了 包parskip
来设置零parindent
。然后,我使用leftmargin=*
和align=left
来使常规choices
列表的标签正确对齐。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[inline]{enumitem}
\usepackage{parskip} % for zero par indent the right way
\newlist{choices}{enumerate}{1}
\newlist{inlinechoices}{enumerate*}{1}
\setlist[inlinechoices]{label*={\Alph*)},itemjoin={\qquad}}
\setlist[choices]{label*={\Alph*)},leftmargin=*,align=left}
\newcommand{\choice}{\item}
\newcounter{choice}
\renewcommand\thechoice{\Alph{choice}}
\newcommand\choicelabel{\thechoice)}
\newcommand\choicestarlabel{{\large $\square$}}
\begin{document}
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
\begin{choices}
\choice $\dfrac{4}{7}$
\choice $\dfrac{8}{24}$\label{824}
\choice $\dfrac{44}{121}$
\choice $\dfrac{9}{11}$
\end{choices}
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla As in \ref{824}
\bigskip
\begin{inlinechoices}
\choice $\dfrac{4}{7}$
\choice $\dfrac{8}{24}$
\choice $\dfrac{44}{121}$\label{44}
\choice $\dfrac{9}{11}$
\end{inlinechoices}
\bigskip
\noindent Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla As in \ref{44}
\end{document}