在下一行开始枚举的枚举?

在下一行开始枚举的枚举?

我想要做的是让我的枚举看起来像这样

a)
    i) answer
    ii) answer
b) answer

目前,我正在使用

\begin{enumerate}
\item \hfill \\
    \begin{enumerate}[a)]
    \item
    \item
    \end{enumerate}
\end{enumerate}

但是当我这样做时,看起来有 2 个空行,而不是 1 个。

a)


    i)

我尝试了很多间距命令,但无法让它们起作用(LaTeX 的新功能)。

那么,有办法吗?还是我应该把它们都放在同一行?我知道这更容易,但我觉得看起来很奇怪。

答案1

任何创建空白框或添加一些空白的方法都可以解决问题。例如\mbox{}或 甚至\hfill。 的问题\hfill\\是它会填满行,然后创建新行,然后为列表创建新段落;因此垂直空白太多。

\begin{enumerate}
    \item \mbox{}
    \begin{enumerate}
        \item
        \item
    \end{enumerate}
\end{enumerate}

例子

答案2

如果您希望所有操作都{enumerate}像这样,您可以修补命令\item以添加\leavevmode(与 Ca​​ramdir 建议的效果相同\mbox{})以自动化所有操作。修补可以通过\apptocmd以下命令完成:电子工具箱在命令末尾附加代码的包。如果您希望能够使用可选参数(您需要为此修补和),则不能直接附加到enumerate和。在下面的代码中,我还使用了item\\enumerate\@item枚举项包来定制列表(它允许自动拥有第二级的a)b)等等{enumerate})。

结果截图

\documentclass{article}
\usepackage{enumitem}
\setenumerate[2]{label=\alph*)}
\usepackage{etoolbox}
\makeatletter
\expandafter\apptocmd\expandafter{\csname\string\enumerate\endcsname}{\apptocmd{\@item}{\leavevmode}{}{}}{}{}
\makeatother
\begin{document}
\begin{enumerate}
    \item \begin{enumerate}
              \item answer
              \item answer
          \end{enumerate}
    \item answer
          \begin{enumerate}
              \item answer
              \item answer
          \end{enumerate}
\end{enumerate}
\end{document}

代码\apptocmd{\@item}{\leavevmode}{}{}附加到 ,\item它总是在内部\leavevmode之后开始新行。为了将其仅限于环境,此代码本身附加到 ,这要归功于另一个。\item{enumerate}{enumerate}\enumerate\apptocmd

关于此代码的最后一点说明:如果将 嵌套{itemize}在 内{enumerate},也将被重新定义(如果这是一个问题,那么修补以保留 的原始定义\item并不困难)。{itemize}\item

相关内容