章节标题与 titleformat 对齐

章节标题与 titleformat 对齐

我正在尝试使用 titleformat 排版标题,如下例所示:

例子

我喜欢整体效果,但当标题环绕时,它不是左对齐的。有没有办法相应地缩进第二行?这是生成示例的代码:

\documentclass[12pt]{book}

\usepackage{titlesec}
\usepackage{xcolor}

\newfont{\chapterNumber}{eurb10 scaled 5000}

\titleformat{\chapter}[block]%
        {\relax}%
        {\llap{\color{gray}\chapterNumber\thechapter%
        \hspace{10pt}\vline}  }{10pt}%
        {\raggedright\LARGE\textsc}

%% Using this instead, the text is left-aligned but the
%% vertical line is not aligned with the body text
% \titleformat{\chapter}[block]%
%         {\relax}%
%         {\llap{\color{gray}\chapterNumber\thechapter%
%         \hspace{10pt}\vline\hspace{10pt}}}{0pt}%
%         {\raggedright\LARGE\textsc}

\begin{document}
\chapter{Long long long long long long long long long long title}
\end{document}

\hspace还有另一种定义,即通过将 放在内部来使标题对齐\llap,但这样垂直线就会向左移动,而我希望它与正文对齐。

答案1

使用\parbox赋予其负 10 点的宽度\textwidth

\documentclass[12pt]{book}

\usepackage{titlesec}
\usepackage{xcolor,lipsum}

\titleformat{\chapter}[block]
  {}
  {\llap{\color{gray}\chapterNumber\thechapter
   \hspace{10pt}\vline}}
  {10pt}
  {\formatchaptertitle}

\newcommand{\formatchaptertitle}[1]{%
  \parbox[t]{\dimexpr\textwidth-10pt}{\raggedright\LARGE\scshape#1}}

\newcommand{\chapterNumber}{%
  \fontsize{50}{50}\usefont{U}{eur}{b}{n}}


\begin{document}
\chapter{Long long long long long long long long long long title}

\lipsum[1]
\end{document}

lipsum包仅用于生成显示如何\vline与左边距对齐的文本。

不要使用\newfont,但我建议使用命令来定义\chapterNumber

在此处输入图片描述


该命令\newfont仍保留在 LaTeX 中以实现向后兼容,因为使用 LaTeX 2.09 编写的旧文档可以使用它。早在 90 年代初,随着新字体选择方案 (NFSS) 的引入,一些字体管理的新概念已包含在 LaTeX 中,使用定义的字体会\newfont忽略它们,因此结果可能会令人惊讶。

Euler 字体有“未指定”编码U,其系列名称为eur;您需要粗体系列b和正常形状n,因此\usefont{U}{eur}{b}{n};必须单独设置大小:第一个参数\fontsize是适当的字体大小,第二个参数是基线跳跃(这里几乎无关紧要,因此我使用与大小相同的值)。没有单位意味着单位“点”。命令后\fontsize{x}{y}\selectfont必需的,但它由自动提供\usefont

相关内容