标题中的垂直文本对齐

标题中的垂直文本对齐

我正在尝试制作一个标题格式,其中章节号较大,然后文本较小,标题名称也较小。以下代码基本满足我的要求:

\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}

在此处输入图片描述在此处输入图片描述

相关内容