“EB Garamond”字体将ʿ
字符和其前面的字母组合在一起。请考虑以下文档:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\begin{document}
aʿ bʿ cʿ dʿ eʿ fʿ gʿ hʿ iʿ jʿ kʿ lʿ mʿ nʿ oʿ pʿ qʿ rʿ sʿ tʿ uʿ vʿ wʿ xʿ yʿ zʿ
\end{document}
如何防止ʿ
(MODIFIER LETTER LEFT HALF RING) 和前面的字母混淆?(在上图中,只有b,d,i,j
渲染正确。)
更新经过三十多次测试,这是唯一一款存在此问题的字体。不幸的是,这只适合包含大量 Unicode 字形的纸张。◕︵◕
答案1
在需要的情况下,作为一种临时的局部修复,您可以在字符前放置一个字距,以将其与前一个字母隐藏起来。
a\kern0ptʿ
无法结合。
答案2
很抱歉,这是一个疏忽,已在 v0.015b 中修复,我刚刚将其上传到https://bitbucket.org/georgd/eb-garamond/downloads
答案3
XeTeX 唯一的“解决方案”是使用映射文件,创建一个文件half-ring.map
,告诉 XeTeX 在排版中的任何修饰符半环前插入一个发丝空格:
LHSName "Modifier Half Ring"
RHSName "UNICODE"
pass(Unicode)
U+02BF <> U+200A U+02BF;
然后使用它来编译它teckit_compile
(应该包含在 TeX Live 中),并将字体命令修改为\setmainfont[Mapping=half-ring]{EB Garamond}
。
请注意,XeTeX 目前每个字体只能应用一个映射文件,因此如果您使用其他映射文件(或Ligature=TeX
字体选项),则必须在上述文件中复制该映射。
答案4
如果你愿意换用 LuaLaTeX,米科即将推出selnolig
包(在 GitHub 上)是你的好朋友。它实际上旨在全局避免意外连字,但也可以用于此。如果你加载它时没有语言选项,它不会改变任何其他内容:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage{selnolig}
\nolig{ʿ}{|ʿ}
\begin{document}
aʿ bʿ cʿ dʿ eʿ fʿ gʿ hʿ iʿ jʿ kʿ lʿ mʿ nʿ oʿ pʿ qʿ rʿ sʿ tʿ uʿ vʿ wʿ xʿ yʿ zʿ
\end{document}
有关更多背景信息selnolig
,请参阅新的软件包 selnolig,可以自动抑制印刷连字。
从另一个角度来看问题:我对这个特定的 Unicode 字符一无所知,但如果 EB Garamond 确实在这里出了问题,而且它是唯一出现问题的字体,你应该在其开发地点。