为什么使用 etoc 会覆盖边距以及如何使内容正确对齐?

为什么使用 etoc 会覆盖边距以及如何使内容正确对齐?

我正在尝试使用包模拟默认目录etoc(我对默认目录很满意,但我想要一些自定义)

我想出了以下设置(参见 MWE 1 和屏幕截图 1),但它存在一些问题:

  • Etoc 超出了左/右边距。如何修复?;
  • 如何让章节自动对齐到章节标签下方?我目前使用 hspace(0.375 厘米),这是我通过实验发现的,但它在 MWE 中不再起作用(不同的字体/大小)。如何让它始终有效(所以没有硬偏移?)
  • 第 2 章的对齐在这里也出错了。

我如何使用模拟默认 TOC(参见 MWE 2/屏幕截图 2) etoc/etocsetstyle

最大能量损失 1:

\documentclass{extbook}
\usepackage[a4paper,left=3cm,showframe]{geometry}
\usepackage{titlesec}
\usepackage{etoc}
\etocsetstyle{chapter} 
{}
{ \normalsize\bfseries\addvspace{.5ex}\leavevmode}
{\llap{\etocnumber\hspace{0.75cm}}\etocname\hspace{10pt}\titlerule*[1pc]{.}\hspace{10pt}%
 \makebox[0cm][l]{\makebox[0pt]{\etocpage}}\par}
{}
\etocsetstyle{section}
{}
{ \normalsize\addvspace{.5ex}\leavevmode}
{\llap{}\textit{\etocnumber\hspace{0.375cm}\etocname}\hspace{10pt}\titlerule*[1pc]{.}\hspace{10pt}%
 \makebox[0cm][l]{\makebox[0pt]{\etocpage}}\par}
{}
\etocsettocstyle{\chapter*{Contents}}{}
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{2}
\begin{document}
\tableofcontents
\chapter{Test1}
 \section{Test1.1}
 \section{Test1.2}
\chapter{Test2}
 \section{Test2.1}
\end{document}

在此处输入图片描述

MWE2:

\documentclass{extbook}
\usepackage[a4paper,left=3cm,showframe]{geometry}
\begin{document}
\tableofcontents
\chapter{Test1}
 \section{Test1.1}
 \section{Test1.2}
\chapter{Test2}
 \section{Test2.1}
\end{document}

在此处输入图片描述

答案1

\parindent除第一个标题外,其他标题都偏移了。其他问题是由于etoc它按指示执行操作。以下是代码的快速重写:

\documentclass{extbook}
\usepackage[a4paper,left=3cm,showframe]{geometry}
\usepackage{titlesec}
\usepackage{etoc}
\etocsetstyle{chapter} 
{}
{\bfseries\addvspace{.5ex}\setlength{\leftskip}{0.75cm}\noindent}
{\llap{\makebox[0.75cm][l]{\etocnumber}}\etocname
  \hspace{10pt}\titlerule*[1pc]{.}\hspace{10pt}\etocpage\par}
{}
\etocsetstyle{section}
{}
{\normalfont\addvspace{.5ex}\noindent\setlength{\leftskip}{1.75cm}\noindent}
{\llap{\makebox[1cm][l]{\textit{\etocnumber}}}\etocname
  \hspace{10pt}\titlerule*[1pc]{.}\hspace{10pt}{\bfseries\etocpage}\par}
{}
\etocsettocstyle{\chapter*{Contents}}{}
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{2}
\begin{document}
\tableofcontents
\chapter{Test1}
 \section{Test1.1}
 \section{Test1.2}
\chapter{Test2}
 \section{Test2.1}
\end{document}

在此处输入图片描述 我有些随意地选择了各个级别(这里是章节和部分)的左边距。

附注:etoc 文档埃托克现在包含代码片段作为文件附件注释,您可以在合适的 pdf 查看器中查看。其中有一个相当完整的类外观伪模拟book,可以将其作为自定义的起点。

相关内容