我正在尝试使用包模拟默认目录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
,可以将其作为自定义的起点。