我正在创建一种黑体字体,想将其与 XeLaTeX 一起使用。我尝试使用首字母/中字母/尾字母替换,如 s/ſ,但上下文似乎匹配,尽管实际上不应该匹配。
例如,我尝试使用init
和medi
表将 s 替换为 ſ,但使用 和fontspec
时Contextuals={Inner}
,词首和词尾的“s”也会被替换为“ſ”。所有词首和词尾形式的替换均适用相应的替换。
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Script=Latin,Language=German,Contextuals=Inner}
\setmainfont{Jena1330.otf}
\begin{document}
smstsms
\end{document}
给出一个包含正确字体的 ſmſtſmſ 的文档,而不是我期望的 smſtſms。
我做错了吗?XeLaTeX 如何判断一个字母是首字母、中间字母还是尾字母?
答案1
大多数 OpenType 布局引擎只能正确处理特定isol
脚本(阿拉伯文、叙利亚文、蒙古文等),对于其他脚本,它们将无条件地应用init
它们,这似乎是medi
fina
ICU 布局引擎由 XeTeX 使用。据我所知,只有一些 Adobe 应用程序可以处理拉丁文字。
为了更好的兼容性,您应该使用上下文替换来实现它。