我正在尝试在文档中创建章节样式memoir
。
这是当前的代码:
\documentclass[11pt]{memoir}
\usepackage[oldstyle]{libertine}
\usepackage{lipsum}
\newcommand\lefthang[1]{\makebox[0pt][r]{#1\hspace{\marginparsep}}}
% 'mychapter' chapter-style
\makechapterstyle{mychapter}{%
% Minimize vertical spaces
\setlength\afterchapskip{50pt}
\renewcommand\chapterheadstart\relax
\renewcommand\afterchapternum{}
% We don't print "Chapter"
\renewcommand\printchaptername{}
% Fonts and size
\renewcommand\chaptitlefont{\normalfont\Huge\scshape}
\renewcommand\chapnumfont{\chaptitlefont}
% Chapter number hanging into the paragraph
\renewcommand\printchapternum{%
\lefthang{\chapnumfont\thechapter}%
}
% Small-caps title (always lowercase)
\renewcommand\printchaptertitle[1]{\chaptitlefont\MakeTextLowercase{##1}}
\renewcommand\printchapternonum{\raggedright\chaptitlefont}
}
\chapterstyle{mychapter}
\begin{document}
\chapter{This is quite a long chapter title indeed}
\lipsum[1-4]
\end{document}
现在,我想要获得以下内容:
- 两行之间的间距应该较小,使得两行的高度总和不超过单行高度的两倍。
- 数字应为两行高(如果标题是单行也应如此),并且基线与第二行(或如果标题是单行,则为唯一一行)的基线对齐。
请注意,我使用的是 Libertine 和旧式数字,标题文本是小写的,这是故意的,这样“1”就和一行文本一样高。其他数字,如“6”,会上升或下降,大于两行,但这是可以的。我只希望“小”数字(如“1”,既不上升也不下降)和双行一样高。
这是我想要获得的模型:
主要问题是,无论标题文本是否占用两行,数字都应该更大,所以我无法简单地测量盒子。
我怎样才能达到这样的效果?
答案1
要使用的参数包括定义中的28pt
和,以及我用它替换了OP原始定义中的40pt
\lefthang
\fontsize{28pt}{28pt}\selectfont
\Huge
\documentclass[11pt]{memoir}
\usepackage[oldstyle]{libertine}
\usepackage{lipsum}
\usepackage{scalerel}
\newcommand\lefthang[1]{\makebox[0pt][r]{\smash{\raisebox{-28pt}{\scaleto{$#1$}{40pt}}}%
\hspace{\marginparsep}}}
% 'mychapter' chapter-style
\makechapterstyle{mychapter}{%
% Minimize vertical spaces
\setlength\afterchapskip{50pt}
\renewcommand\chapterheadstart\relax
\renewcommand\afterchapternum{}
% We don't print "Chapter"
\renewcommand\printchaptername{}
% Fonts and size
\renewcommand\chaptitlefont{\normalfont\fontsize{28pt}{28pt}\selectfont\scshape}
\renewcommand\chapnumfont{\chaptitlefont}
% Chapter number hanging into the paragraph
\renewcommand\printchapternum{%
\lefthang{\chapnumfont\thechapter}%
}
% Small-caps title (always lowercase)
\renewcommand\printchaptertitle[1]{\chaptitlefont\MakeTextLowercase{##1}}
\renewcommand\printchapternonum{\raggedright\chaptitlefont}
}
\chapterstyle{mychapter}
\begin{document}
\chapter{This is quite a long chapter title indeed}
\lipsum[1-4]
\end{document}
为了回应 OP 的后续问题,这里有一个不同的方法,尽管并不完全令人满意。可以将 的基线\lefthang
与章节标题的最后一行对齐。如果章节标题的长度为 1 或 2 行,这将满足 OP 的要求,但如果标题的长度为 3 行或更多,则将继续降低左悬垂章节编号。
\documentclass[11pt]{memoir}
\usepackage[oldstyle]{libertine}
\usepackage{lipsum}
\usepackage{scalerel,tabto}
\newcommand\lefthang[1]{\makebox[0pt][r]{\smash{\scaleto{$#1$}{40pt}}%
\hspace{\marginparsep}}}
% 'mychapter' chapter-style
\makechapterstyle{mychapter}{%
% Minimize vertical spaces
\setlength\afterchapskip{50pt}
\renewcommand\chapterheadstart\relax
\renewcommand\afterchapternum{}
% We don't print "Chapter"
\renewcommand\printchaptername{}
% Fonts and size
\renewcommand\chaptitlefont{\normalfont\fontsize{28pt}{28pt}\selectfont\scshape}
\renewcommand\chapnumfont{\chaptitlefont}
% Chapter number hanging into the paragraph
\renewcommand\printchapternum{}
% Small-caps title (always lowercase)
\renewcommand\printchaptertitle[1]{\chaptitlefont\MakeTextLowercase{##1}%
\tabto*{0pt}\lefthang{\chapnumfont\thechapter}}
\renewcommand\printchapternonum{\raggedright\chaptitlefont}
}
\chapterstyle{mychapter}
\begin{document}
\chapter{This is quite a long chapter title indeed}
\lipsum[1]
\chapter{This is a short chapter title}
\lipsum[2]
\end{document}
第 1 章标题显示与前面的示例相同,但第 2 章显示如下: