\chapter*{}
我在\frontmatter
和\chapter{}
中使用\mainmatter
。
我用标题安全章节标题的样式如下:
\documentclass[10pt,a4paper,openany,oneside]{book}
...
\usepackage{titlesec}
\newcommand*{\justifyheading}{\raggedleft}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\justifyheading}
{\filleft\Large\textsc{\chaptertitlename}~\Huge\thechapter}
{1ex}
{\titlerule\vspace{0ex}\filleft}
问题:如何使章节标题处于同一级别?请参阅此屏幕截图中的问题,我希望标题规则处于同一级别(即与顶部的距离相同)。
附加问题:我如何将“第 1 章”推到右侧,以便数字悬挂在边距之外?
答案1
一种可能性是有两个定义:一个用于编号章节,另一个用于未编号章节,使用键numberless
。在未编号章节的定义中,一些\phantom
s 用于隐藏章节名称和章节编号;对于奖励问题,a\rlap
将完成这项工作:
\documentclass{book}
\usepackage[a5paper]{geometry}% just for the example
\usepackage{titlesec}
\newcommand*{\justifyheading}{\raggedleft}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\justifyheading}
{\filleft\Large\textsc{\chaptertitlename}\rlap{~\Huge\thechapter}}
{1ex}
{\titlerule\filleft}
\titleformat{name=\chapter,numberless}[display]
{\normalfont\huge\bfseries\justifyheading}
{\filleft\Large\textsc{\phantom{\chaptertitlename}}\rlap{~\Huge\phantom{\thechapter}}}
{1ex}
{\titlerule\filleft}
\begin{document}
\chapter{Test Numbered Chapter}
\chapter*{Test Unnumbered Chapter}
\end{document}
使用您当前的设置,您需要使用允许使用粗体小型大写字母的字体,尽管我建议您只使用小型大写字母(而不是粗体)。
作为芭芭拉·比顿已经建议,您当前的设置将导致标题太接近规则;增加一些间距将产生更好的效果:
\documentclass{book}
\usepackage[a5paper]{geometry}% just for the example
\usepackage{titlesec}
\newcommand*{\justifyheading}{\raggedleft}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\justifyheading}
{\filleft\Large\textsc{\chaptertitlename}\rlap{~\Huge\thechapter}}
{1ex}
{\titlerule\vskip1ex\filleft}
\titleformat{name=\chapter,numberless}[display]
{\normalfont\huge\bfseries\justifyheading}
{\filleft\Large\textsc{\phantom{\chaptertitlename}}\rlap{~\Huge\phantom{\thechapter}}}
{1ex}
{\titlerule\vskip1ex\filleft}
\begin{document}
\chapter{Test Numbered Chapter}
\chapter*{Test Unnumbered Chapter}
\end{document}