我想将文档各部分的标题以大写形式排版,因此我需要增加字母之间的间距。
我目前正在使用以下(丑陋的)技巧
\begingroup
\catcode`/=13 \def/{\kern0.167em}
\catcode` =\active \def {\kern0.5em}
c/h/a/p/t/e/r t/i/t/l/e
\endgroup
有没有更好的方法?(我更喜欢纯 TeX 解决方案,但使用 pdfTeX/XeTeX 扩展的解决方案对我来说也可以。)
答案1
您可以使用eplain
和letterspace
,与pdftex
或一起使用luatex
。对于 XeTeX,您需要在章节字体的定义中设置 letterspacing。
\input eplain
\beginpackages
\usepackage{iftex}
\ifxetex\else
\usepackage[letterspace=200]{letterspace}
\fi
\endpackages
\ifxetex
\font\chapterfont="[lmromancaps10-regular.otf]:letterspace=40" at 16pt
\def\lsstyle{}
\else
\font\chapterfont=cmcsc10 at 16pt
\fi
\def\chapter#1{%
\par\supereject
\vglue 48pt
\begingroup
\baselineskip=24pt
\chapterfont\lsstyle
#1
\par
\endgroup
\vskip 24pt
}
\chapter{This is spaced}
This is standard text for the chapter.
\bye
答案2
答案3
pdftex 版本:
\letterspacefont\f=\tenrm 70
ABCDEF
\f ABCDEF
\bye
请注意,pdfTeX 原语的参数\letterspacefont
以 1/1000 em 为单位,而 LuaTeX 和 XeTeX 中使用的字体功能的参数letterspace
以 1/100 em 为单位。