如何通过 Lyx 让更多连字符在 Luatex 中使用?

如何通过 Lyx 让更多连字符在 Luatex 中使用?

我遇到了一个问题“fi、fl、ffl 的连字符不适用于 Times New Roman (XeLaTeX),”它有两个解决方案;但都不完全适用于 LuaTex。第一个是 Xetex/XeLaTex 特有的,第二个虽然比必要的更复杂,但本质上意味着您可以添加Ligatures=Discretionary到 FontSpec 语句中,如果您有 Win10 Times New Roman,它就会起作用。这是一个非常简单的示例的代码预览,它在 Xetex 中有效,但在 LuaTex 中无效:

% Preview source code

%% LyX 2.3.6.1 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage{fontspec}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\setmainfont[Ligatures=Discretionary]{Times New Roman}

\makeatother

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\begin{document}
fi fj fl ff ffi ffj ffl Th “the” tt - – —
\end{document}

它有多种在现代美国英语中有用的连字,其中一些可以工作(尽管我通常没有看到支持“tt”连字)。以“F”开头的第一个连字不支持。目标是让它们在 LuaTex 中显示为连字,而不会弄乱任何其他连字,也不必更改底层字体文件。

(从这里创建 Lyx 文档或在其他 Tex 环境中运行它应该很简单。)

编辑:

  1. Times New Roman 7.0 和 Lyx 2020 均失败。
  2. 更新后的 Lyx 2021 成功了!我猜 Marcel Krüger 对这些问题的回答持反对态度,因为他给出了答案。我看到很多问题的答案只是评论。我不明白,但我没有抱怨。
  3. 答案已被接受并被赞成。

注意:显然,Lyx 所称的“LuaTex”实际上是“LuaLatex”,因为它可以识别\DocumentClass{}。这解释了为什么我的文档在 TeXworks 中 LuaTex 会出错,但在 LuaLaTeX 中不会出错。在我看来,Lyx 确实让人困惑。

答案1

LuaLaTeX 的字体塑造支持正在不断开发中,经常会发现并修复错误。因此,始终建议使用最新版本的 LuaLaTeX,尤其是当出现问题时,因为旧版本在当前版本中仍然修复了错误。

虽然这在 TeX Live 2020 上不起作用,但当前 TeX Live 2021 安装中不再出现此问题,因此解决问题的最佳方法是更新并使用新版本。

相关内容