连字字体功能不再有效

连字字体功能不再有效

几个星期以来,我一直使用一种很好用的字体功能,当字体处于斜体模式时,可以自动将“et”更改为“&”。

但突然间,它不再起作用了……

我怀疑这与上下文约束有关,因为没有上下文的相同连字符也能正常工作。

我将非常感激任何帮助。

顺便问一下,是否还没有针对此类编程字体功能的官方指南/手册?

分数维:

\documentclass{article}

\usepackage{fontspec}

\directlua{

 fonts.handlers.otf.addfeature 
 {
   name = "itet",
   type = "chainsubstitution",

   lookups = {
            {
                type = "ligature",
                data = {
                    ["&"] = { "e","t" },
                },
            },
     },

    data = {
      rules = {
        {
          before  = { { " " }},
          after  = { { " ", "," }},
          current = {{"e"},{"t"}},
          lookups = { 1 },
        },  
      },
    },
}
}

\setmainfont{Baskerville}[ItalicFeatures = {RawFeature = {+itet}}]

\begin{document}
et \emph{et}
\end{document}

编辑

事实证明,由于某些神秘的原因,发生了以下情况:

  • 在我目前的工作中,我使用 \usepackage{fourier}\usepackage{fontspec};这很糟糕。
  • 即使没有使用傅立叶变换,这种用法也会对 MWE 产生影响。

所以,事实上,这都是我的错+缓存里的一些神秘的东西。

回答

不要在 fontspec 之后使用 fourier,如中所述在此处输入链接描述

谢谢你的帮助!包括答案中提出的修改(确实非常好)

答案1

至少在我的系统上(使用当前的 luaotfload/fontloader),before/after 规则中的空格不够,因为它不会影响行首和行末的出现。如果我使用,它会起作用0xFFFC,另请参阅https://www.mail-archive.com/[电子邮件保护]/msg85615.html

\documentclass{article}

\usepackage{fontspec}

\directlua{
 fonts.handlers.otf.addfeature
 {
   name = "itet",
   type = "chainsubstitution",
   lookups = {
            {
                type = "ligature",
                data = {
                    ["&"] = { "e","t" },
                },
            },
     },
    data = {
      rules = {
        {
          before  = { { 0xFFFC } },
         % before  = { {" "} },
          after   = { { 0xFFFC,  "," } },
         % after   = { { " ",  "," } },
          current = {{"e"},{"t"}},
          lookups = { 1 },
        },
      },
    },
}
}

\setmainfont{TeXGyreHeros}[ItalicFeatures = {RawFeature = {+itet}}]

\begin{document}
et blub et blet etbub et,

\emph{et} abc \emph{et} abc \emph{et}

\itshape et blub et blet etbub et,
et
\end{document}

用我的代码输出

在此处输入图片描述

输出带有注释的前后规则:

在此处输入图片描述

相关内容