companion
我在课程中使用memoir
XeTeX 的 chapterstyle。为了自定义章节标题,我做了memoir.cls
一些调整:
\makechapterstyle{companion}{%
\chapterstyle{default}
\RequirePackage{fontspec}
\renewcommand*{\chapnamefont}{\normalfont\sffamily\bfseries\Large\MakeTextUppercase}
\renewcommand*{\printchaptername}{\raggedleft\chapnamefont \@chapapp}
\renewcommand*{\chapnumfont}{\normalfont\fontsize{30}{30}\sffamily}
\renewcommand*{\chaptitlefont}{\normalfont\fontsize{30}{0}\sffamily}
\setlength{\chapindent}{\marginparsep}
\addtolength{\chapindent}{\marginparwidth}
\renewcommand*{\printchaptertitle}[1]{%
\begin{adjustwidth}{}{-\chapindent}
\raggedleft \chaptitlefont ##1\par\nobreak
\end{adjustwidth}}}
我的问题是如何调整“章节”一词中的字母间距,使其看起来更“拉长”,如下例所示:
我尝试添加\defaultfontfeatures{LetterSpace=50}
规则\chapnamefont
,但似乎没有任何改变。我也尝试过按照说明\lsstyle
从包中添加microtype
这里,但显然这不适用于 XeTeX。
答案1
你必须做一些不同的事情
拨打
fontspec
外线电话\makechapterstyle
明确定义字体
使用
\addfontfeatures
。
这是代码;当然 200 这个值是夸张的,我用它来强调结果。
\documentclass{memoir}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\makeatletter
\makechapterstyle{companion}{%
\chapterstyle{default}
\renewcommand*{\chapnamefont}{%
\normalfont\sffamily\bfseries
\addfontfeatures{LetterSpace=200}% exaggerated
\Large\MakeTextUppercase
}
\renewcommand*{\printchaptername}{\raggedleft\chapnamefont \@chapapp}
\renewcommand*{\chapnumfont}{\normalfont\fontsize{30}{30}\sffamily}
\renewcommand*{\chaptitlefont}{\normalfont\fontsize{30}{0}\sffamily}
\setlength{\chapindent}{\marginparsep}
\addtolength{\chapindent}{\marginparwidth}
\renewcommand*{\printchaptertitle}[1]{%
\begin{adjustwidth}{}{-\chapindent}
\raggedleft \chaptitlefont ##1\par\nobreak
\end{adjustwidth}}}
\makeatother
\chapterstyle{companion}
\begin{document}
\mainmatter
\chapter{This is a long chapter title}
\end{document}