fi、fl、ffl 的连字符不适用于 Times New Roman (XeLaTeX)

fi、fl、ffl 的连字符不适用于 Times New Roman (XeLaTeX)

当我使用 XeLaTeX(使用 TeXworks)编译下面的代码时,Times New Roman 的连字符不会显示。相反,我只得到单数字符。

\documentclass{article}

\usepackage{fontspec}

\setmainfont[Mapping=tex-text,Ligatures=TeX,Scale=1.05]{Times New Roman}

\begin{document}

Ligatures: fi fl ffl

\end{document}

我已经尝试过Ligatures={Common}并且Ligatures={Common, TeX}代替Ligatures=TeX(在答案),但没有区别。我检查了 Times New Roman (v.6.85) 的字体图,Unicode 字符 FB01 和 FB02 都具有预期的连字符。

但是,当我不指定字体时,上面的内容(因此在 Computer Modern 中设置)有连字符。

对我来说,使用 Times New Roman 并不是很重要,但它有 IPA 字符(我的语言学论文需要),以及旧式数字和小型大写字母(我喜欢)。

有什么办法可以让 Times New Roman 显示这些连字符吗?

答案1

准备一个新的地图文件,我称之为rijke.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

; additions for f ligatures
;U+0066 U+0066 U+0069 <> U+FB03 ; LATIN SMALL LIGATURE FFI
;U+0066 U+0066 U+006C <> U+FB04 ; LATIN SMALL LIGATURE FFL
;U+0066 U+0066        <> U+FB00 ; LATIN SMALL LIGATURE FF
U+0066 U+0069        <> U+FB01 ; LATIN SMALL LIGATURE FI
U+0066 U+006C        <> U+FB02 ; LATIN SMALL LIGATURE FL

基础是tex-text.mapTeX Live 中的标准文件。“ff”连字符被注释掉了,因为我的 Times New Roman 不支持它们。

现在编译它

teckit_compile rijke.map

这将生成一个rijke.tec文件;如果你将它保存在文档中,输入

\documentclass{article}

\usepackage{fontspec}

\setmainfont[Mapping=rijke,Scale=1.05]{Times New Roman}

\begin{document}

Ligatures: ff ffi ffl fi fl 

\end{document}

将产生

在此处输入图片描述

答案2

在 Windows 10 1803 中,Times New Roman 似乎已更新至 7.00 版本,并且添加了一些(更多)连字符(但添加到了dlig查找中,而不是更广泛使用的liga)。然后我们可以使用fontspec来打开此功能:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\begin{document}
\verb|Default:                  |
fi fj fl ff ffi ffj ffl Th

\verb|Ligatures=Discretionary:  |
{\fontspec{Times New Roman}[Ligatures=Discretionary] % or `Ligatures=Rare`
fi fj fl ff ffi ffj ffl Th}
\end{document}

图像

相关内容