对于以下文档,我无法理解为什么目录缺少标题。我还注意到,当我添加 \frontmatter 时,所有章节标题都会消失,章节编号也会变得混乱(第一章似乎变成了第零章)。我该如何解决这个问题,以便目录的标题与每个章节的标题样式相同?顺便问一句,有没有办法修改页眉以省略章节编号?例如,“1. 简介”将简单地变成“简介”。
\documentclass[12pt, a4paper]{scrbook}
\usepackage[left=3cm, right=3cm,top=4.15cm,bottom=4.27cm,showframe]{geometry}
\usepackage{titletoc,chngcntr}
\usepackage{lipsum}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage{scrlayer-scrpage}
\usepackage[explicit]{titlesec}
\titleformat{\chapter}
{\normalfont\Large\bfseries}{\thechapter \quad \MakeUppercase{#1}}{.5em}{\vspace{.5ex}}[\titlerule]
\titlespacing*{\chapter}
{0pt}{-12.5pt}{19.5pt}
\titleformat{\section}[block]
{\bfseries}
{\S\ \thesection \enskip}
{\fontdimen2\font}
{#1}
\renewcommand{\thechapter}{\arabic{chapter}.}
\renewcommand{\thesection}{\thechapter\arabic{section}.}
\pagestyle{scrheadings}
\clearpairofpagestyles
\ohead[]{\pagemark}
\lohead[]{\headmark}
\rehead{Title}
\setkomafont{pageheadfoot}{\scshape\footnotesize}% or "\footnotesize" depending on fonts
\automark[chapter]{chapter}
\automark[chapter]{}
\renewcommand{\contentsname}{Whatever}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{Motivation}
\lipsum
\newpage
More
\end{document}
答案1
您对章节格式的重新定义导致了\titleformat
这个问题。如果您scrbook
用标准类替换,也会出现这种情况book
。
但是也不建议将titletoc
和titlesec
和 KOMA-Script 类一起使用。因此,这里建议使用 KOMA-Script 命令:
\documentclass[12pt, a4paper,numbers=enddot]{scrbook}
\usepackage[left=3cm, right=3cm,top=4.15cm,bottom=4.27cm,showframe]{geometry}
\usepackage{chngcntr}
\usepackage{lipsum}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage{scrlayer-scrpage}
\RedeclareSectionCommand[
beforeskip=-.25em,
afterskip=19.5pt,
]{chapter}
\makeatletter
\renewcommand\chapterlinesformat[3]{%
\ifstr{#1}{chapter}
{\@hangfrom{#2}{\MakeUppercase{#3}}\vspace{-.25em}\rule{\textwidth}{.4pt}}
{\@hangfrom{#2}{#3}}%
}
\makeatother
\setkomafont{chapter}{\rmfamily\Large}
\setkomafont{section}{\rmfamily\normalsize}
\renewcommand\sectionformat{\S\ \thesection\autodot\enskip}
\clearpairofpagestyles
\ohead{\pagemark}
\lohead{\headmark}
\rehead{Title}
\setkomafont{pageheadfoot}{\scshape\footnotesize}% or "\footnotesize" depending on fonts
\automark[chapter]{}
\renewcommand{\contentsname}{Whatever}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{Motivation}
\lipsum[1-50]
\end{document}
要删除页眉中的章节编号,请添加
\renewcommand\chaptermarkformat{}
回到序言。
答案2
问题在于,章节标题是在“如果是编号章节”部分(第三个强制参数)设置的\titleformat
,因此在未编号的章节(例如目录)中不会出现任何内容。
解决办法是使用block
格式。
在下面的代码中,我将scrbook
其改为book
,因为 Komascript 类不喜欢titlesec
。
\documentclass[12pt, a4paper]{book}
\usepackage[
left=3cm,
right=3cm,
top=4.15cm,
bottom=4.27cm,
headheight=14.5pt,% <--- don't forget
showframe,
]{geometry}
%\usepackage[utf8]{inputenc} % not needed with newer LaTeX
%\usepackage{chngcntr} % not needed with newer LaTeX
\usepackage{microtype}
\usepackage{scrlayer-scrpage}
\usepackage{titlesec}
\usepackage{titletoc}
\usepackage{lipsum}
\titleformat{\chapter}[block]
{\normalfont\Large\bfseries}
{\thechapter}
{1em}
{\MakeUppercase}
[\titlerule]
\titlespacing*{\chapter}
{0pt}
{-12.5pt}
{19.5pt}
\titleformat{\section}[block]
{\bfseries}
{\S\ \thesection}
{\fontdimen2\font}
{}
\renewcommand{\thechapter}{\arabic{chapter}.}
\renewcommand{\thesection}{\thechapter\arabic{section}.}
\pagestyle{scrheadings}
\clearpairofpagestyles
\ohead[]{\pagemark}
\lohead[]{\scshape\headmark}
\rehead{Title}
\renewcommand{\contentsname}{Whatever}
\begin{document}
\tableofcontents
\chapter{Introduction}
\section{Motivation}
\lipsum
\clearpage
More
\end{document}