![微类型是否支持普通 TeX?](https://linux22.com/image/450918/%E5%BE%AE%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%90%A6%E6%94%AF%E6%8C%81%E6%99%AE%E9%80%9A%20TeX%EF%BC%9F.png)
是否有代码可以使微排版基元(特别是字体扩展)与运行原生 PDF 输出引擎的纯 TeX 格式一起使用(即pdfTeX和LuaTeX)?
据我所知,我认为 microtype 包无法与 plain 一起使用,因为其必然与 LaTeX 字体设置相关。
我并不是在寻找通用解决方案。我基本上只是希望 cmr 能够微类型化,以减少 TUGboat 文章的编辑,纯粹是为了处理过满的框。(更好的输出是一个令人愉快的副作用。)
特克斯缺乏对字体扩展的支持,这让我很不感兴趣。(据我所知,没有任何可行的方法可以通过 DVI 输出支持字体扩展,但如果有人愿意付出如此大的开发努力,那就太好了。:)。
也许有人已经完成了,而我不知道?也许这很简单,而我被大量必要的定义吓到了?
答案1
如果你只对扩张那么其实没必要害怕。你需要做的就是这样做:
\input iftex.sty
\ifluatex
\adjustspacing=2
\def\doexpand#1{%
\expandglyphsinfont#1 20 20 1\relax}
\else
\pdfadjustspacing=2
\def\doexpand#1{%
\pdffontexpand#1 20 20 1 autoexpand\relax}
\fi
\doexpand\tenrm
\doexpand\tensl
\doexpand\tenbf
\hsize=2.2in
\input story
\bye
为了突出,以前有 Thanh 的protcode.tex
,提供了一些设置。它被从 texlive 中删除了(在我看来,这是不公平的)2016年,但仍然可以找到在不相关的包中。
字母间距可与letterspace
软件包 ( 的一部分microtype
) 一起使用,该软件包也可与纯文本一起使用。
答案2
您可以查看 OpTeX 技巧http://petr.olsak.net/optex/optex-tricks.html#fontexpand这里以示例的形式介绍了总体思路。在此示例中,必须在设置之前加载字体\_tenrm
。
问题是你必须单独设置许多字符的参数,而这不能简单地用几行代码来完成。这是在mte.opm
提到的 OpTeX 技巧链接的包(用于 OpTeX)中完成的。
我不知道是否存在仅适用于 Plain TeX 的纯解决方案,但mte.opm
如果您愿意,可以从该包中获得启发。