有没有办法影响文档中 \part{} 的排版,但同时又不影响目录和页面标题中的排版?我的最小示例“简介”、“附录”中有几个不同的部分,我的最小示例“示例 1、2”中有几个相关部分。由于我希望在某些但不是所有部分标题中使用前缀“示例 n”,因此简单地重新定义部分不是一个选择。
在相关部分中,我希望在标题中保持不变的位(示例 n)后有一个换行符,在目录和标题中,我希望它在同一行上:
\documentclass[12pt,a4paper,oneside]{scrbook}
\usepackage{titlesec}
\titleformat{\part}[display]{}{}{1em}{\sffamily\huge}
\titleformat{\chapter}[display]{}{}{1em}{\sffamily\large}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\textit{\textrm{\footnotesize{\rightmark}}}}
\renewcommand{\partmark}[1]{\markboth{#1}{}}
\begin{document}
\tableofcontents
\part{Introduction}
Bla \newpage Bla Bla
\part{Example 1:\\Foo}
Bla \newpage Bla Bla
\part{Example 2:\\Bar}
Bla \newpage Bla Bla
\part{Appendix}
Bla \newpage Bla Bla
\end{document}
编辑(在@RicoRally 的非常好的答案出现之后):解决这个问题的另一种选择是使用titlesec
两个选项,一个解决 -issue newline
,另一个解决编号:\usepackage[newlinetospace, newparttoc]{titlesec}
。这个解决方案是由@Bernard 在后续问题中提供的:https://tex.stackexchange.com/questions/211026#answer-211046
答案1
您可以强制不将部分内容显示在目录中。这可以通过抑制命令来实现\l@part
。
您可以在序言中添加以下内容:
\makeatletter
\renewcommand*\l@part[2]{}
\makeatother
这是处理 LaTeX 的一个相当粗暴的方法,但它确实有效。你的文档可能是:
\documentclass{scrbook}
\makeatletter
\renewcommand*\l@part[2]{}
\makeatother
\begin{document}
\tableofcontents
\part{Introduction}
\chapter{Bla} \newpage Bla Bla
\part{Example 1:\\Foo}
Bla \newpage Bla Bla
\part{Example 2:\\Bar}
\chapter{Bla} \newpage Bla Bla
\part{Appendix}
Bla \newpage Bla Bla
\end{document}
这样,内容中只会显示其他对象。
编辑
感谢 Seul,我终于正确理解了这个问题。
为此,使用可选参数就足够了\part
。当我们想在头部和目录中指定不同的标题时(它们将是相同的),就可以使用它。
在你的情况下,我之前的代码将变成:
\documentclass{scrbook}
\usepackage{titlesec}
\titleformat{\part}[display]{}{}{1em}{\sffamily\huge}
\titleformat{\chapter}[display]{}{}{1em}{\sffamily\large}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\textit{\textrm{\footnotesize{\rightmark}}}}
\renewcommand{\partmark}[1]{\markboth{#1}{}}
\begin{document}
\tableofcontents
\part{Introduction}
Bla \newpage Bla Bla
\part[Example 1: Foo]{Example 1:\\Foo}
Bla \newpage Bla Bla
\part[Example 2: Bar]{Example 2:\\Bar}
Bla \newpage Bla Bla
\part{Appendix}
Bla \newpage Bla Bla
\end{document}