删除 TeX4HT 中小型大写的连字符

删除 TeX4HT 中小型大写的连字符

Amazon Kindle 的默认字体支持小写字母和连字符,但不支持小写字母的连字符。因此,当它看到连字符(甚至是常见的连字符,例如“ffi”)时,它会将其显示为小写,这很丑陋。

我不想禁用所有内容的连字,但是在小型大写字母的中间出现小写字母很难看。

有没有办法(最好使用.4ht文件)来禁用小型大写字母的连字?

有没有办法可以禁用给定环境/字符串的小型大写字母?

编辑:

显然,这是 CSS 的一个普遍问题,font-variant: small-caps我在浏览器中也得到了相同的结果。

编辑2:

CSS3 添加了一个font-variant-ligatures设置,可使用 OTF 字体启用不同类型的连字。使用此设置使用小型大写字母时,连字会自动禁用,就像 LaTeX 一样。但是,实现此功能的浏览器并不多,ebook-convert我使用的 calibre 似乎也不支持此功能。

编辑3:

\textsc我对 TeX4HT 的问题来自于我对 Tex4HT重新定义的事实:

% Reconfigure small caps
\NewConfigure{textsc}{2}
\renewcommand\textsc[1]{%
\a:textsc#1\b:textsc
}
\Configure{textsc}{\Tg<span class="small-caps">}{\Tg</span>}
\Css{span.small-caps{
font-variant:small-caps;
}}

这样做的原因是 TeX4HT 默认将所有字母转换为大写并为每个<span>字符创建一个标签,这很重、很丑,并且不会产生真正的小型大写字母(尽管它确实可以防止连字,因为所有字母都包含在<span>标签中)。所以我宁愿使用更干净的方法,通过禁用 TeX 中的连字并<span>仅使用一个元素,而不将字母更改为大写。

另外,我使用htlatex doc.tex 'ebook.cfg,xhtml,charset=utf-8' ' -cunihtf -utf8 -cvalidate'

答案1

您可以使用以下代码来抑制字符级<span>节点的创建:

\Configure{htf}{4}{+}{}{}{}{}{}{}{}

这样你将得到:

<span class="cmcsc-10">sufficient</span>

<span>这是字符级节点被抑制时的默认行为。

答案2

我不知道微型与 兼容tex4ht,但microtype可以禁用连字,包括字体和单独禁用。请参阅手册中的第 8 节。

代码如下:

\usepackage[protrusion=false}{microtype}
\DisableLigatures[ff,ffi,fj,fi]{encoding = *, family = sc* }

免责声明:未经测试!

相关内容