根据此处的评论,我combofont
目前正在使用包。但我对此有一些疑问。我想知道的第一件事是为什么该fallback
选项在我的代码中不起作用。我的意思是,OldStandard.otf
没有ligatures
,所以我试图用填充这些空白处ptm
。但是,正如您所看到的,如果您编译我的mwe
,它不起作用。请注意,我已经习惯fonttable
猜测我想要更改的字形。
\RequirePackage{luatex85}
\documentclass[parskip=half-]{article}
\usepackage{combofont}
\usepackage{fonttable}
\setupcombofont{combotest1-italic}
{
{file:OldStandard-Italic.otf:\combodefaultfeat} at #1pt,
{file:texgyretermes-italic.otf} at #1pt,
{file:texgyretermes-italic.otf} at #1pt
}
{
{} ,
0x66,
fallback
}
\DeclareFontFamily{TU}{combotest1}{}
\DeclareFontShape{TU}
{combotest1}{m}{it}{<->combo*combotest1-italic}{}
\setupcombofont{combotest2-italic}
{
{file:TeXGyreTermesX-Italic.otf:\combodefaultfeat} at #1pt,
{file:OldStandard-Italic.otf} at #1pt
}
{
{} ,
0x00-0x65*0x67-0xFF
}
%
\DeclareFontFamily{TU}{combotest2}{}
\DeclareFontShape{TU}
{combotest2}{m}{it}{<->combo*combotest2-italic}{}
\newcommand{\abc}{abcdefghijklmnopqrstuvwxyz }
\newcommand{\ligs}{ff fi fff ffi fl ffl}
\usepackage{fontspec}
\setmainfont{Old Standard}
\begin{document}
\centering
\xfonttable{T1}{ptm}{m}{it}
\abc \ligs
\fontfamily{combotest1}\selectfont
\textit{\abc \ligs}
\fontfamily{combotest2}\selectfont
\textit{\abc \ligs}
\end{document}
答案1
旧标准有连字(fff 连字除外)。
我认为像这样混合字体是个很糟糕的想法。f 的钩子与其他字符明显不同。
除此之外:一些连字符有 unicode 代码点(由于历史原因)所以您也需要将它们拉进来。
\documentclass{article}
\usepackage{combofont}
\setupcombofont{combotest1-italic}
{
{file:OldStandard-Italic.otf:\combodefaultfeat} at #1pt,
{file:texgyretermes-italic.otf} at #1pt,
{file:texgyretermes-italic.otf} at #1pt
}
{
{} ,
0x66*0xfb00-0xfb04,
fallback
}
\DeclareFontFamily{TU}{combotest1}{}
\DeclareFontShape{TU}
{combotest1}{m}{it}{<->combo*combotest1-italic}{}
\newcommand{\abc}{abcdefghijklmnopqrstuvwxyz }
\newcommand{\ligs}{ff fi fff ffi fl ffl}
\usepackage{fontspec}
\setmainfont{Old Standard}
\begin{document}
\textit{\abc \ligs}
\fontfamily{combotest1}\selectfont
\textit{\abc \ligs}
\end{document}