枚举没有标签但与其他标签对齐的单个项目

枚举没有标签但与其他标签对齐的单个项目

我用它enumerate来创建第二个简约的目录。未编号的章节应与普通章节对齐。

引言 对齐不良

因此,未编号的章节简介应与章节主体中的第 1 对齐,而不是与文本“主体”对齐。

这是我的 MWE:

\documentclass[
a4paper,
10pt,
]{scrreprt}

\usepackage{setspace}
\usepackage{enumitem}

\spacing{1.5}

\setlength{\parindent}{0pt}

\begin{document}

List of the chapters, sections, items and sub-items.\\

\begin{enumerate}[label*=\arabic*]
    \item[] Introduction
    \item Main Body
    \begin{enumerate}[label*=.\arabic*]
        \item Main Body Section
        \begin{enumerate}[label*=.\arabic*]
            \item Main Body Subsection
        \end{enumerate}
    \end{enumerate}
\end{enumerate} 

\end{document}

答案1

首先请注意,列表编号默认是右对齐的,如此例所示:

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem}

\begin{document}

\begin{enumerate}
  \item First
  \setcounter{enumi}{9}%
  \item Tenth
\end{enumerate}

\begin{enumerate}[align=left]
  \item First
  \setcounter{enumi}{9}%
  \item Tenth
\end{enumerate}

\end{document}

这样,大型列表在包含大(宽)标签的情况下仍可以保持适当的水平对齐。此对齐方式可以在enumitem使用align键值。这一点很重要,因为否则很难即时将未枚举项与枚举项的编号对齐。以下是一些选项:

在此处输入图片描述

\documentclass{scrreprt}

\usepackage{enumitem}

\setlength{\parindent}{0pt}

\begin{document}

List of the chapters, sections, items and sub-items.

% Align outer enumeration numbering to left and reduce width of label to 1em
\begin{enumerate}[label*=\arabic*,align=left,labelwidth=1em]
  \item[] \hspace*{\dimexpr-\labelsep-\labelwidth}Introduction
  \item Main Body
  \begin{enumerate}[label*=.\arabic*]
    \item Main Body Section
    \begin{enumerate}[label*=.\arabic*]
      \item Main Body Subsection
    \end{enumerate}
  \end{enumerate}
\end{enumerate} 

% Retain original labelling alignment and fake label width
\begin{enumerate}[label*=\arabic*]
  \item[] \hspace*{-\labelsep}\llap{I}ntroduction
  \item Main Body
  \begin{enumerate}[label*=.\arabic*]
    \item Main Body Section
    \begin{enumerate}[label*=.\arabic*]
      \item Main Body Subsection
    \end{enumerate}
  \end{enumerate}
\end{enumerate} 

\end{document}

如果您确实希望在第二种情况下对齐完美,那么您可以计算标签的宽度并使用它来代替\llap

% Retain original labelling alignment and actual label width
\begin{enumerate}[label*=\arabic*]
  \makeatletter
  \settowidth{\@tempdima}{1}% Capture width of next label
  \item[] \hspace*{\dimexpr-\labelsep-\@tempdima}Introduction
  \makeatother
  \item Main Body
  \begin{enumerate}[label*=.\arabic*]
    \item Main Body Section
    \begin{enumerate}[label*=.\arabic*]
      \item Main Body Subsection
    \end{enumerate}
  \end{enumerate}
\end{enumerate} 

的价值下一个item 也可以计算,而不是使用固定值:

\settowidth{\@tempdima}{\number\numexpr\value{enumi}+1}% Width of next item label

答案2

对于您想要获得的东西,最好使用minitoc或类似的包,但是enumerate您可以尝试以下解决方案:

编辑1: 添加了项目标识的全局设置:

\documentclass{scrreprt}
\usepackage{setspace}
\spacing{1.5}
\usepackage{enumitem}
\setlist[enumerate]{leftmargin=*}

\setlength{\parindent}{0pt}

\begin{document}

List of the chapters, sections, items and sub-items.


\vspace{\baselineskip} % <---added
Introduction   % <--- moved out of list
\begin{enumerate}[label*=\arabic*]   % <--- added leftmargin=*
    \item Main Body
    \begin{enumerate}[label*=.\arabic*]
        \item Main Body Section
        \begin{enumerate}[label*=.\arabic*]
            \item Main Body Subsection
        \end{enumerate}
    \end{enumerate}
\end{enumerate}

\end{document}

在此处输入图片描述

编辑2和3: 在 OP 第二次发表评论后,我猜他喜欢这样的东西:

\documentclass{scrreprt}
\usepackage{setspace}
\spacing{1.5}
\usepackage{enumitem}
\setlist[enumerate,1]{label*=\arabic*, leftmargin=*}
\setlist[enumerate,2,3]{label*=.\arabic*, leftmargin=*}

\setlength{\parindent}{0pt}

\begin{document}
List of the chapters, sections, items and sub-items.

\vspace{\baselineskip} % <---added

\hspace*{1em}\begin{minipage}{\dimexpr\linewidth-1em} % moved list to the right
Introduction   % <--- moved out of list
\begin{enumerate}
    \item Main Body
    \begin{enumerate}
        \item Main Body Section
        \begin{enumerate}
            \item Main Body Subsection
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
    \end{minipage}
\end{document}

在此处输入图片描述

相关内容