我打算在我的文档中使用两种类型的章节标题:对于序言和附录,使用简单的带下划线的大写字母,而对于主要章节,我希望在整页上在两行不同的行上显示“第 n 章/标题”...
我(几乎)成功地通过定义一个新的环境“chapterpage”并将参数传递给\titleformat
(来自 titlesec 包)作为宏(在全局和 chapterpage 环境中的定义方式不同)来做到这一点。
但是,我无法\titleformat
按照这种方式传递第一个可选参数 :( 我需要这个,因为我想在前一个布局中使用悬挂形状,在后一个布局中使用显示形状。我怀疑它可以使用适当的 \protect 命令来解决,但我没有设法修复它!
这是一个最小的例子。如果可行,“第 2 章”和“Bar”应该打印在不同的行上。感谢您的帮助。
\documentclass[11pt]{scrreprt}
\usepackage{lipsum}
\usepackage{titlesec}
\usepackage{setspace}
\newcommand{\mychapterShape}{hang} % hang is for aligning the number with the title
\newcommand{\mychapterFormat}{\relax}
\newcommand{\mychapterBefore}{\raggedright}
\newcommand{\mychapterAfter}{\normalsize\vspace*{.8\baselineskip}\titlerule}
\newcommand{\mychapterLabel}{\thechapter} %{\relax}
\newenvironment{chapterpage}
{
\renewcommand{\mychapterShape}{display}
\renewcommand{\mychapterFormat}{
\vspace{\stretch{7}}\normalfont\onehalfspacing\centering\large
}
\renewcommand{\mychapterBefore}{
\thispagestyle{empty}%
%\begin{addmargin}[1cm]{0cm}%
\vspace{0.5em}%
}
\renewcommand{\mychapterAfter}{
\vspace{\stretch{10}}\cleardoublepage\thispagestyle{empty}\singlespacing
}
\renewcommand{\mychapterLabel}{\chaptertitlename~\thechapter}
}
{} % end chapterpage envt
\titleformat{\chapter}[\mychapterShape]%
{\mychapterFormat}{\mychapterLabel}{1em}%
{\mychapterBefore}[\mychapterAfter]%
\begin{document}
\chapter{Foo}
\lipsum[1-3]
\begin{chapterpage}
\chapter{Bar}
\end{chapterpage}
\lipsum[1-3]
\end{document}
答案1
我将定义两种章节样式
\documentclass[11pt]{scrreprt}
\usepackage{lipsum}
\usepackage{titlesec}
\newcommand{\mainchapterstyle}{%
\titleformat{\chapter}[display]
{\vspace{\stretch{7}}\normalfont\onehalfspacing\centering\large}
{\chaptertitlename~\thechapter}
{1em}
{\thispagestyle{empty}\vspace{0.5em}}
[\vspace{\stretch{10}}\cleardoublepage
\thispagestyle{empty}\singlespacing]}
\newcommand{\appchapterstyle}{%
\titleformat{\chapter}[hang]
{}
{\thechapter}
{1em}
{\raggedright}
[\normalsize\vspace*{.8\baselineskip}\titlerule]}
\begin{document}
\mainchapterstyle
\chapter{Bar}
\lipsum[1-3]
\appendix
\appchapterstyle
\chapter{Foo}
\lipsum[1-3]
\end{document}