我正在尝试使用 Graphite 字体排版一些 Kashur(克什米尔)文本,即人民报。以下是 MWE:
\documentclass[border=1cm]{standalone}
\usepackage[%
english,%
bidi = {bidi-r}%
]{babel}
\usepackage{fontspec}
\newfontfamily\ksfnt[%
IgnoreFontspecFile,%
Extension = {.ttf},%
Renderer = {Graphite}%
]{AwamiNastaliq-Regular}
\begin{document}
\ksfnt
یِہ (کوٗر) چھَےٚ اَم کھؠوَان۔
\end{document}
我需要 LuaLaTeX 的bidi
支持,但不幸的是,渲染的变音符号达不到标准:
使用 LibreOffice 可以看到正确的输出:
有没有什么 LuaLaTeX 黑客可以解决这个问题?
我有已报告GitHub 上也有这个。
答案1
您可以通过传递RawFeature = {script=arab}
字体来避免这种情况:
\documentclass{article}
\usepackage[%
english,%
bidi = {bidi-r}%
]{babel}
\usepackage{fontspec}
\newfontfamily\ksfnt[%
IgnoreFontspecFile,%
Extension = {.ttf},%
Renderer = {Graphite},%
RawFeature = {script=arab}
]{AwamiNastaliq-Regular}
\begin{document}
\ksfnt
یِہ (کوٗر) چھَےٚ اَم کھؠوَان۔
\end{document}
该变化源自 HarfBuzz 的变化,它使 Graphite 模式更加依赖脚本,因此现在您需要传递(至少大致)正确的脚本以获得正确的形状。通常您会使用选项来执行此fontspec
操作Script = Arabic
,但fontspec
不会直接转发,因为字体不包含阿拉伯语的特定功能。