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* }
免责声明:未经测试!