枚举项列表中的垂直间距

枚举项列表中的垂直间距

考虑以下示例。

\documentclass{article}

\usepackage{enumitem}

% New line after \item (http://tex.stackexchange.com/a/29518/15874)
\makeatletter
\def\myitem{%
  \@ifnextchar[ \@myitem{\@noitemargtrue\@myitem[\@itemlabel]}}
  \def\@myitem[#1]{\item[#1]\mbox{}\\}
\makeatother
% Exercise
\setlist[enumerate,1]{
  wide = 0\parindent,
  listparindent = 0pt,
  label = \textbf{Exercise~\arabic*}
}
% Question
\setlist[enumerate,2]{
  wide = 0\parindent,
  listparindent = 0pt,
  label = \textbf{\alph*)}
}

\begin{document}

\begin{enumerate}
\myitem
  \begin{enumerate}
    \item A
    \item B
  \end{enumerate}
\end{enumerate}

\end{document}

输出

我如何

  • Exercise删除?后的空格
  • 去掉Underfull \hbox警告 (对 之后的空白行做什么Exercise)?PS 我不希望Exercise和之间有任何文字a)

答案1

在下面一行中

\def\@myitem[#1]{\item[#1]\mbox{}\\}

您将\\创建另一行。删除它以删除空白。如果您想进一步减少空间,可以添加负垂直空间。以下是两个版本。

输出

添加\vspace{-1ex}

在此处输入图片描述

空的

在此处输入图片描述

代码

\documentclass{article}

\usepackage{enumitem}

% New line after \item (http://tex.stackexchange.com/a/29518/15874)
\makeatletter
\def\myitem{%
  \@ifnextchar[ \@myitem{\@noitemargtrue\@myitem[\@itemlabel]}}
  \def\@myitem[#1]{\item[#1]\mbox{}\vspace{-1ex}}
\makeatother
% Exercise
\setlist[enumerate,1]{
  wide = 0\parindent,
  listparindent = 0pt,
  label = \textbf{Exercise~\arabic*},
  %partopsep=-40ex
}
% Question
\setlist[enumerate,2]{
  wide = 0\parindent,
  listparindent = 0pt,
  label = \textbf{\alph*)}
}

\begin{document}

\begin{enumerate}
\myitem
  \begin{enumerate}
    \item A
    \item B
  \end{enumerate}
\end{enumerate}
\end{document}

相关内容