如何使用 lualatex 访问 Berling 字体中的引号?

如何使用 lualatex 访问 Berling 字体中的引号?

以下是一个小例子:

\documentclass[11pt,article,oneside]{memoir}

\usepackage{fontspec}
\setmainfont[ItalicFont={BerlIt}, FeatureFile=myligatures.fea]{Berling}
\begin{document}
``Lala la''
\end{document}

在此处输入图片描述

myligatures.fea 来自这个问题现在我想改用我知道字体在字形位置 105 和 119 处的引号。有没有办法映射这些引号以供改用?

值得注意的是,如果我从 Wikipedia 复制 unicode 符号并使用它们,它就可以起作用,但这会很麻烦,并且我希望 LuaLaTeX 能为我做到这一点......

\documentclass[11pt,article,oneside]{memoir}

\usepackage{fontspec}
\setmainfont[ItalicFont={BerlIt}, FeatureFile=myligatures.fea]{Berling}
\begin{document}
``Lala la''

“Lala la”
\end{document}

在此处输入图片描述

答案1

诸如``for''for之类的连字在 TeX 世界中是传统的,但它们并未在 OpenType 或 TrueType 字体中定义。

选择字体时的选项Ligatures=TeX可以启用它们和其他一些字体;使用 XeLaTeX 它会加载文件tex-text.map(实际上是其字节编码等效项)

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "TeX-text"
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D                   <>      U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>      U+2014  ; --- -> em dash

U+0027                  <>      U+2019  ; ' -> right single quote
U+0027 U+0027   <>      U+201D  ; '' -> right double quote
U+0022                   >      U+201D  ; " -> right double quote

U+0060                  <>      U+2018  ; ` -> left single quote
U+0060 U+0060   <>      U+201C  ; `` -> left double quote

U+0021 U+0060   <>      U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>      U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>      U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>      U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>      U+00BB  ; >> -> RIGHT POINTING GUILLEMET

所以我们看到映射是

  • --到短划线 –
  • ---加破折号 —
  • '右引号'
  • ''双引号右引号
  • `到左边的引号'
  • ``双引号左引号“
  • !`倒置感叹号 ¡
  • ?`倒置问号 ¿
  • ,,德语开场白“
  • <<打开 guillemets «
  • >>关闭 guillemets »

使用 LuaLaTeX 可以执行一些具有相同效果的代码;您可以通过tlig在 中查找来找到它luaotfload-features.lua

相关内容