替换 titlesec 并自定义标题(字符串中间的部分和章节编号)

替换 titlesec 并自定义标题(字符串中间的部分和章节编号)

我曾经titlesec为一本中文书籍定义过章节标题。但是,从 texlive 2020 开始,它与 Koma Script 不兼容titlesec(在我的特定设置中,我无法生成一个显示冲突的最小示例)。我想摆脱它,titlesec但我不知道如何达到效果。我正在寻找的是将章节编号放在标题中间的东西:“第 5 节”。

\documentclass{scrbook}


\usepackage{titlesec}

\titleformat{\chapter}[block]{\center\Large\bfseries}{Chapter\thechapter{}Number}{20pt}{}  
\titleformat{\appendix}[block]{\center\Large\bfseries}{\appendixname}{20pt}{}  
\titleformat{\section}[block]{\large\bfseries}{\thesection}{10pt}{}  
\titleformat{\tableofcontents}[block]{\center\Large\bfseries}{Some special string}{20pt}{}  
\titleformat{\part}[block]{\center\Large\bfseries}{Part \thepart{} Number}{20pt}{}  

\begin{document}

\tableofcontents

\clearpage

\part{A part}

\chapter{Introduction}

\section{foo}

\section{bar}

\end{document}

答案1

我不明白该做什么,\titleformat{\appendix}也不\titleformat{\tableofcontents}明白应该做什么:这两者都不\appendix\tableofcontents分段命令。

您的\titleformat\part\chapter\section可以替换为

\renewcommand*{\partformat}{Part \thepart{} Number\hspace{20pt}}
\renewcommand*{\partheadmidvskip}{}
\renewcommand*{\chapterformat}{\chapapp \thechapter Number\hspace{20pt}}
\renewcommand*{\raggedchapter}{\centering}
\renewcommand*{\sectionformat}{\thesection\hspace{10pt}}

\addtokomafont{disposition}{\rmfamily}
\setkomafont{partnumber}{\Large}
\setkomafont{part}{\Large}
\setkomafont{chapter}{\Large}
\setkomafont{section}{\large}

例子:

\documentclass{scrbook}

\renewcommand*{\partformat}{Part \thepart{} Number\hspace{20pt}}
\renewcommand*{\partheadmidvskip}{}
\renewcommand*{\chapterformat}{\chapapp \thechapter Number\hspace{20pt}}
\renewcommand*{\raggedchapter}{\centering}
\renewcommand*{\sectionformat}{\thesection\hspace{10pt}}

\addtokomafont{disposition}{\rmfamily}
\setkomafont{partnumber}{\Large}
\setkomafont{part}{\Large}
\setkomafont{chapter}{\Large}
\setkomafont{section}{\large}

\begin{document}
\tableofcontents
\part{A part}
\chapter{Introduction}
\section{foo}
\section{bar}
\end{document}

在此处输入图片描述

答案2

尝试以下定义\phantom....

在此处输入图片描述

\documentclass{scrartcl}

\usepackage{titlesec}
% Incorrect ToC link to \addsec
% \titleformat{\section}{\Huge\sffamily}{\thesection}{0.5em}{}
% Correct ToC link to \addsec
\titleformat{\section}{\Huge\sffamily}{\thesection}{0.5em}{\phantomsection}

\usepackage{hyperref}

\begin{document}

    \tableofcontents

    \clearpage

    \section{foo}

    \clearpage

    \addsec{bar}

\end{document}

相关内容