是否可以使用不带嵌套列表的 \itemize 为 \subitems 创建项目符号?

是否可以使用不带嵌套列表的 \itemize 为 \subitems 创建项目符号?

我使用嵌套命令列出了问题和子问题\itemize,如下所示:

\documentclass[11pt]{report}
\usepackage[british]{babel}
\usepackage{enumitem}

\begin{document}

\begin{itemize}
  \item{First item}
    \begin{itemize}
      \item{First subitem}
      \item{Second subitem}
      \item{Third subitem}
    \end{itemize}
  \item{Second item}
  \item{Third item}
\end{itemize}

\end{document}

现在这对我来说很好,但我只是想知道,当使用\subitem嵌套列表时,您是否也可以创建项目符号,如下所示?我的子问题确实有缩进,但没有项目符号。

\begin{itemize}
  \item{First item}
    \subitem{First subitem}
    \subitem{Second subitem}
    \subitem{Third subitem}
  \item{Second item}
  \item{Third item}
\end{itemize}

答案1

这种方法的替代方法是使用 outlines 包,它有助于生成嵌套列表。要生成具有三个级别的项目符号列表,只需

\documentclass{article}
\usepackage{outlines}
\begin{document}
\begin{outline}
 \1 Top level item
   \2 Sub item
     \3 sub sub item
\end{outline}
\end{document}

要制作编号列表(而不是项目符号列表),只需将枚举选项传递给此包即可

\documentclass{article}
\usepackage{outlines}
\begin{document}
\begin{outline}[enumerate]
 \1 Top level item
   \2 Sub item
     \3 sub sub item
\end{outline}
\end{document}

答案2

虽然你应该不是使用\subitem,您可以使用不同的名称,例如\SubItem通过一些小技巧来实现所需的结果。为了进行比较,我将两个列表(右侧的一个使用\SubItem)放在 中minipage

在此处输入图片描述

警告:

代码:

\documentclass[11pt]{report}
\usepackage[british]{babel}
\usepackage{enumitem}

\newlist{SubItemList}{itemize}{1}
\setlist[SubItemList]{label={$-$}}

\let\OldItem\item
\newcommand{\SubItemStart}[1]{%
    \let\item\SubItemEnd
    \begin{SubItemList}[resume]%
        \OldItem #1%
}
\newcommand{\SubItemMiddle}[1]{%
    \OldItem #1%
}
\newcommand{\SubItemEnd}[1]{%
    \end{SubItemList}%
    \let\item\OldItem
    \item #1%
}
\newcommand*{\SubItem}[1]{%
    \let\SubItem\SubItemMiddle%
    \SubItemStart{#1}%
}%

\begin{document}
\begin{minipage}[t]{0.4\linewidth}
    \begin{itemize}
     \item{First item}
      \begin{itemize}
        \item{First subitem}
        \item{Second subitem}
        \item{Third subitem}
      \end{itemize}
      \item{Second item}
      \item{Third item}
    \end{itemize}
\end{minipage}
%
\begin{minipage}[t]{0.4\linewidth}
    \begin{itemize}
      \item{First item}
      \SubItem{First subitem}
      \SubItem{Second subitem}
      \SubItem{Third subitem}
      \item{Second item}
      \item{Third item}
    \end{itemize}
\end{minipage}
\end{document}

答案3

做这样的事怎么样?

无需使用额外的包,只需将其定义为新命令即可。它需要放在额外的括号中,否则新的缩进将应用于之后的所有项目。

\documentclass[11pt]{report}
\usepackage[british]{babel}
%\usepackage{enumitem}

\begin{document}

\newcommand{\SubItem}[1]{
    {\setlength\itemindent{15pt} \item[-] #1}
}


\begin{itemize}
  \item{First item}
    \SubItem{First subitem}
    \SubItem{Second subitem}
    \SubItem{Third subitem}
  \item{Second item}
  \item{Third item}
\end{itemize}

\end{document}

答案4

我很感激fuzzybear3965 的回答,我认为也可以修改成这样:

\documentclass{article}
\usepackage{outlines}
\begin{document}
  \begin{description}
    \item[An_Item_Which_Should_Be_Displayed_As_Usual]
    \begin{outline}
      \begin{description}
        \item[An_Item_Which_Sould_Be_Indented_Below_The_First_One]
      \end{description}
    \end{outline}
  \end{description}
\end{document}

相关内容