增加纯 TeX 中的字母间距

增加纯 TeX 中的字母间距

我想将文档各部分的标题以大写形式排版,因此我需要增加字母之间的间距。

我目前正在使用以下(丑陋的)技巧

\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

您可以使用eplainletterspace,与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

xetex 版本

在此处输入图片描述


\font\rm="[lmroman10-regular.otf]"
\font\rmx="[lmroman10-regular.otf]:letterspace=7"

\rm
ABCDEF

\rmx
ABCDEF

\bye

如果你\input{luaotfload.sty}在第一行添加,那么你将获得一个版本luatex

答案3

pdftex 版本:

\letterspacefont\f=\tenrm 70

ABCDEF

\f ABCDEF 

\bye

请注意,pdfTeX 原语的参数\letterspacefont以 1/1000 em 为单位,而 LuaTeX 和 XeTeX 中使用的字体功能的参数letterspace以 1/100 em 为单位。

相关内容