我正在尝试制作一个标题格式,其中章节号较大,然后文本较小,标题名称也较小。以下代码基本满足我的要求:
\documentclass[12pt]{book}
\usepackage{fontspec}
\setromanfont[Mapping=tex-text]{Garamond}
\usepackage{titlesec}
\titleformat{\chapter}{\raggedright}
{\fontsize{72pt}{72pt}\selectfont\thechapter}{1em}{\huge}
\begin{document}
\chapter{A Short Title}
Lorem ipsum...
\chapter{A Very Long Title With Extra Words}
Lorem ipsum...
\end{document}
但是,如果章节标题超过 1 行,数字的垂直对齐方式就不太美观。我希望数字垂直对齐,这样数字的顶部与行上其余文本的顶部相匹配,而不是当前的对齐方式,即数字的基线与文本其余部分的基线对齐。
我不知道什么命令可以实现这一点——而且很可能有很多更好的方法来解决这个问题。
答案1
适用于所有情况:
\documentclass[12pt,openany]{book}
\usepackage{fontspec,tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}
\setromanfont[Mapping=tex-text]{Linux Biolinum O}
\newsavebox\CBox
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}%
\parindent \z@ \normalfont
\sbox\CBox{\fontsize{72pt}{74pt}\selectfont\thechapter}
\begin{tabularx}{\linewidth}{@{}m{\wd\CBox}@{\quad}>{\raggedright}X@{}}
\usebox\CBox & \Huge \bfseries #1
\end{tabularx}
\par\nobreak
\vskip 40\p@}
\makeatletter
\begin{document}
\chapter{A Short Title}
Lorem ipsum...
\chapter{A Very Long Title With Extra Words}
Lorem ipsum...
\chapter{A Very Long Title With Extra Words A Very Long Title With Extra Words}
Lorem ipsum...
\setcounter{chapter}{10}
\chapter{A Very Long Title With Extra Words A Very Long Title With Extra Words}
Lorem ipsum...
\end{document}
答案2
或许这种方法是由 »标题安全« 包装是开始的东西。
\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[explicit]{titlesec}
\usepackage{lmodern}
\usepackage{lipsum}
\titleformat{\chapter}[hang]
{\raggedright}
{\parbox{0.2\textwidth}{\filright\fontsize{72pt}{72pt}\selectfont\thechapter}}
{0pt}
{\huge\parbox{0.8\textwidth}{\filright #1}}
\begin{document}
\chapter{A Short Title}
\lipsum[1]
\chapter{A Very Long Title With Extra Words}
\lipsum[2]
\end{document}