「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;
然後使用(應包含在 TeX Live 中)對其進行編譯teckit_compile
,並將字體命令修改為\setmainfont[Mapping=half-ring]{EB Garamond}
.
請注意,XeTeX 目前只能為每個字體應用一個映射文件,因此如果您使用其他映射文件(或Ligature=TeX
字體選項),則必須在上述文件中複製該映射。
答案4
如果你同意切換 LuaLaTeX,米科即將推出selnolig
package(在 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 確實在這裡做錯了什麼,並且它是唯一這樣做的字體,您應該在以下位置提交錯誤報告:其開發地點。