我用它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}