使用 LuaLaTeX 宪章字体形状未定义

使用 LuaLaTeX 宪章字体形状未定义

我必须使用出版商​​风格(关联),我在使用基本示例时遇到了问题。我按照建议使用 LuaTeX。XeTeX 也出现了同样的问题,但 pdfTeX 没有出现问题。

以下是从提供的模板中提取的 MWE:

\documentclass{article}
\usepackage[charter]{mathdesign}
\begin{document}
\end{document}

问题:

LaTeX Font Warning: Font shape `TU/mdbch/m/n' undefined
(Font)              using `TU/lmr/m/n' instead on input line 105.

我能做些什么吗,或者这种字体在这种设置下根本就不可用?如果是这样,最好的办法是什么,问问模板作者?我这么说是因为我希望提供的示例能够完美运行,至少在推荐的设置(LuaTeX)下是这样。

我的理解是,这/m/n不是一些不起作用的奇怪组合,而是“正常”字体,问题出在编码(TU),但我对这些东西不太了解。

答案1

LuaLaTeX 的默认输出字体编码是TU,但您想要T1

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[charter]{mathdesign}

\begin{document}

Hello

\end{document}

fontspec加载时收到的警告是虚假的,不应产生任何后果。加载fontenc是不必要的,甚至可能导致错误的输出。

\documentclass{article}

% fix for the spurious warning issued by
\DeclareFontFamily{TU}{mdbch}{}
\DeclareFontShape{TU}{mdbch}{m}{n}{
 <-> \UnicodeFontFile{lmroman10-regular}{\UnicodeFontTeXLigatures}
}{}

\usepackage[charter]{mathdesign}
\usepackage{fontspec}

\setmainfont{XCharter}

\begin{document}

Hello

\end{document}

答案2

在样式文件的最新版本中,这个问题有一个不同的解决方法。事实证明,并非所有字体或包都尚未准备好进行编码TU。在这种情况下,一切都正常EU,因此,暂时EU编码被强制为fontspec

但对于当前版本使用的解决方法将包括以下内容:

\PassOptionsToPackage{euenc}{fontspec}
\documentclass[english,submission]{programming}

%...

使用编码时,@egreg 的变体似乎是正确的TU,但我宁愿等待XCharter包真正与之兼容TU

编辑:免责声明:我是该风格的作者。

相关内容