如何将 AutoFakeBold 和 AutoFakeItalic 与 fontspec 一起使用?

如何将 AutoFakeBold 和 AutoFakeItalic 与 fontspec 一起使用?

这款字体 Kalpurush 没有任何大胆的斜体加粗斜体等等功能。

\documentclass{article}
\usepackage{harfload, fontspec}
\setmainfont{Kalpurush}[RawFeature={mode=harf}]

\parindent 0pt
\begin{document}
    বাংলা  \textbf{বাংলা} \textit{বাংলা} \\
    English \textbf{English} \textit{English}
\end{document}

将其设置为 mainfont 会删除大胆的斜体加粗斜体功能也与英语相似。我怎样才能做到这一点大胆的斜体加粗斜体? AutoFake 能与 Luatex/Harftex 兼容吗?

答案1

添加字体选项AutoFakeBold,并AutoFakeSlant应启用没有粗体和斜体样式的字体的加粗和倾斜字体。

这适用于 XeTeX:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Kalpurush}
[
  AutoFakeBold,
  AutoFakeSlant,
]

\parindent 0pt
\begin{document}
    বাংলা  \textbf{বাংলা} \textit{বাংলা} \\
    English \textbf{English} \textit{English}
\end{document}

对于 LuaTeX 和 HarfTeX,该AutoFakeBold选项将引发警告,并且会被 fontspec 忽略(直到此请求请求已合并)。一种解决方法是手动执行BoldFeatures选项:

\documentclass{article}
\usepackage{harfload, fontspec}
\setmainfont{Kalpurush}
[
  AutoFakeBold,
  AutoFakeSlant,
  BoldFeatures={RawFeature={embolden=1.5}},
  RawFeature={mode=harf},
]

\parindent 0pt
\begin{document}
    বাংলা  \textbf{বাংলা} \textit{বাংলা} \\
    English \textbf{English} \textit{English}
\end{document}

harfload(这需要其最新的软件包GitHub資料庫)

答案2

使用luahblatex(基于引擎 luahbtex 的 latex)、luaotfload 版本 3.11(上传 10.11.)(需要该版本才能使 Script=Bengali 正常工作)和当前 fontspec 可以正常工作:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Kalpurush}[Renderer=Harfbuzz,Script=Bengali,AutoFakeSlant,AutoFakeBold]

\parindent 0pt
\begin{document}
    বাংলা  \textbf{বাংলা} \textit{বাংলা} \\
    English \textbf{English} \textit{English}
\end{document}

在此处输入图片描述 这里描述了如何安装luahbtex引擎: 如何在 TeXLive 上安装 HarfTeX?

相关内容