以下是一个小例子:
\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
。