我使用 titletoc\titlesec 来排版一本书。
\documentclass[a4paper]{book}
\pdfoutput=1 %For postig in ArXiv.org
\usepackage{textcase}
\usepackage[14pt]{extsizes}
\renewcommand{\baselinestretch}{1}
\usepackage{color}
\usepackage{indentfirst}
\usepackage{microtype}
\usepackage{indentfirst}
\makeatletter
\renewcommand{\@evenhead}{}
\renewcommand{\@oddhead}{}
\renewcommand{\@evenfoot}{\centerline\thepage}
\renewcommand{\@oddfoot}{\centerline\thepage}
\makeatother
\usepackage{geometry}
\geometry{top=2cm} %поле сверху
\geometry{bottom=2.5cm} %поле снизу
\geometry{left=2.5cm} %поле справа
\geometry{right=2cm} %поле слева
\geometry{bindingoffset=0cm}
\usepackage[breaklinks, pdfpagelabels,linktoc=all, colorlinks=true,bookmarks,bookmarksnumbered=true]{hyperref}
%---------------SECTIONS TYPOS---------------
\usepackage{titlesec,titletoc,chngcntr}
\let\cleardoublepage\clearpage
\titleformat{\chapter}[display]
{\vspace*{-5em}\Large}
{\titleline[l]{\textls[200]{\MakeTextUppercase{\chaptertitlename}}\ \thechapter}\vspace{6pt}\titlerule[.8pt]}
{\dimexpr-\baselineskip+6pt\relax}
{\bfseries\MakeUppercase}
\titleformat{\section}[block]
{\bfseries}
{\S\ \thesection.}
{\fontdimen2\font}
{}
\titlecontents{chapter}[0pt]
{}
{\textls[200]{\chaptername} \thecontentslabel.\ \bfseries}
{}
{\titlerule*[6pt]{.}\contentspage}
%[\addvspace{3pt}]
\titlecontents{section}[1.5em]
{}
{\S\ \makebox[1.5em][l]{\thecontentslabel.}}
{}
{\titlerule*[6pt]{.}\contentspage}
\makeatletter
\renewcommand\frontmatter{\cleardoublepage\@mainmatterfalse}
\renewcommand\mainmatter{\cleardoublepage\@mainmattertrue}
\makeatother
\renewcommand{\thechapter}{\Roman{chapter}}
\counterwithout{section}{chapter}
%---------------TOC typeseting---------------
\let\origtableofcontents\tableofcontents
\renewcommand{\tableofcontents}{%
\begingroup
\titleformat{\chapter}[display]
{\Large}
{\titleline[l]{\textls[200]{\MakeTextUppercase{\chaptertitlename}}\ \thechapter}\vspace{6pt}\titlerule[.8pt]}
{\dimexpr-\baselineskip+6pt\relax}
{\bfseries\MakeUppercase}%
\origtableofcontents
\endgroup}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Some one}
\section{Some one}
Some text
\section{Some two}
Some text
\chapter{Some two}
\section{Some two}
\end{document}
我需要更改 chaptertitle 之前的垂直缩进,这是\vspace*{-5em}
在 \titleformat 中设置的。由于 \titleformat[display] 的“-”符号添加了较大的未知垂直缩进。我希望以任何可能的方式删除此缩进。我认为这可以通过命令完成\vspace*{-5em}
,但值-5em
是非常不相关的,当我更改页面几何形状时,排版看起来不太好。因此,我需要\vspace*{0 any unit}
相对于 进行设置\geometry{top=2cm}
,即垂直空间必须具有值top=2cm
。
答案1
您可以使用 来实现\titlespacing
。我还用 键重新定义了目录的格式,numberless
并\lsstyle
从目录中删除了该命令,因为它绝不 应与小写文本一起使用。在章节标题中,我将其应用于\lsstyle
整个标题(标签+章节标题),默认值为 0.2em,我认为这个值太大了。
\documentclass[a4paper]{book}
\pdfoutput=1 %For postig in ArXiv.org
\usepackage{textcase}
\usepackage[14pt]{extsizes}
\renewcommand{\baselinestretch}{1}
\usepackage{color}
\usepackage{indentfirst}
\usepackage{microtype}
\usepackage{indentfirst}
\makeatletter
\renewcommand{\@evenhead}{}
\renewcommand{\@oddhead}{}
\renewcommand{\@evenfoot}{\centerline\thepage}
\renewcommand{\@oddfoot}{\centerline\thepage}
\makeatother
\usepackage[showframe, nomarginpar]{geometry}
\geometry{top=2cm} %поле сверху
\geometry{bottom=2.5cm} %поле снизу
\geometry{left=2.5cm} %поле справа
\geometry{right=2cm} %поле слева
\geometry{bindingoffset=0cm}
\usepackage[breaklinks, pdfpagelabels,linktoc=all, colorlinks=true,bookmarks,bookmarksnumbered=true]{hyperref}
%---------------SECTIONS TYPOS---------------
\usepackage{titlesec,titletoc,chngcntr}
\let\cleardoublepage\clearpage
\setlength\fboxsep{0pt}
\titleformat{\chapter}[display]
{\Large\centering\lsstyle}
{\MakeTextUppercase{\chaptertitlename}\ \thechapter\\\titlerule[.8pt]}%
{\dimexpr-\baselineskip +0.5ex\relax}%
{\bfseries\MakeUppercase}
\titleformat{name=\chapter, numberless}[block]
{\Large\lsstyle}{} {0pt}{\bfseries\MakeUppercase}
\titlespacing*{\chapter}{0pt}{-2.2ex}{5\baselineskip}
\titleformat{\section}[block]
{\bfseries}
{\S\ \thesection.}
{\fontdimen2\font}
{}
\titlecontents{chapter}[0pt]
{\bigskip}
{\chaptername~\thecontentslabel.\enspace\bfseries}
{}
{\titlerule*[6pt]{.}\contentspage}[\medskip]
\titlecontents{section}[1.5em]
{}
{\S\ \makebox[1.5em][l]{\thecontentslabel.}}
{}
{\titlerule*[6pt]{.}\contentspage}
\makeatletter
\renewcommand\frontmatter{\cleardoublepage\@mainmatterfalse}
\renewcommand\mainmatter{\cleardoublepage\@mainmattertrue}
\makeatother
\renewcommand{\thechapter}{\Roman{chapter}}
\counterwithout{section}{chapter}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Some one}
\section{Some one}
Some text
\section{Some two}
Some text
\chapter{Some two}
\section{Some two}
\end{document}