我需要排版一个比 或 更窄的目录\textwdith
。\linewidth
我使用包\adjustwidth
中的来实现changepage
这一点,它几乎可以工作,只是它在实际的目录页之前引入了一个空白页。
我将其简化为一个最小的例子,以便您可以看到这里发生了什么(请复制并粘贴这两个代码块到两个命名文件中并编译narrowtoc.tex
):
narrow-toc.cls
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesClass{narrow-toc}
\DeclareOption*{
\PassOptionsToClass{\CurrentOption}{report}
}
\ProcessOptions\relax
\LoadClass[12pt,letterpaper,oneside]{report}
\RequirePackage{changepage}
\let\cleardoublepage\clearpage
\renewcommand{\contentsname}{Table of Contents}
\let\oldtableofcontents = \tableofcontents
\renewcommand{\tableofcontents}{
%\clearpage % even after comment out this, there is still a blank page before the toc
\pagestyle{plain}
\begin{adjustwidth}{1cm}{1cm}
\oldtableofcontents
\end{adjustwidth}
}
narrowtoc.tex
\documentclass{narrow-toc}
\title{A normal title}
\author{My name}
\begin{document}
\maketitle
\tableofcontents
\chapter{My first chapter}
Texts
\end{document}
生成的pdf文件有4页:第3页是“目录”,第2页是空白,第1页是标题页。
我怎样才能删除这个空白页 2?这里使用了报告文档类,因此这不是“oneside”选项可以解决的问题。
答案1
环境adjustwidth
启动一个列表,然后\oldtableofcontents
发出\clearpage
(from \chapter*
); 添加\let\clearpage\relax
到定义中。
\renewcommand{\tableofcontents}{%
\pagestyle{plain}
\begin{adjustwidth}{1cm}{1cm}
\let\clearpage\relax
\oldtableofcontents
\end{adjustwidth}
\clearpage
}