f 和脚注标记之间的字距

f 和脚注标记之间的字距

改编 U. Fischer 的回答中的代码,我希望这可以解决 IM Fell 中脚注标记的问题,该标记触及前面的 f。但事实并非如此。应该怎么做?

\documentclass{article}
\usepackage{fontspec}

\directlua {
    fonts.handlers.otf.addfeature {
        name = "ktest",
             type = "kern",
             data = {
                 ["f"] = { 
                     ["o"] =  1000,
                     ["1"] = 1000,
                     ["¹"] = 1000
                 },
             },
    }
}

\setmainfont{imfellenglish}[RawFeature=+ktest]

\begin{document}

foof\footnote{barb.}.

\end{document}

f 接触 1

更新:

realscripts 包制作\textsuperscript\footnote访问上标字形,但新的字距调整被忽略。

\documentclass{article}
\usepackage{fontspec}
\usepackage{realscripts}

\directlua {
    fonts.handlers.otf.addfeature {
        name = "ktest",
        type = "kern",
        data = {
            ["f"] = { 
        ["⁵"] = 1000,
      }
        }
    }
}

\setmainfont{ebgaramond}[RawFeature=+ktest]

\begin{document}

\noindent
f⁴\\
f⁵\\
f\textsuperscript{5}\\
f\footnote{test}\\
f\footnote{test}\\
f\footnote{test}\\
f\footnote{test}\\
f\footnote{test}

\end{document}

在此处输入图片描述

PS III. 甚至使用 fontforge 更改 otf 也不起作用。

答案1

realscript无济于事:最后您仍将使用两种不同的字体——主字体和带有 +sups 开放类型标签的上标字体。

因此,如果您想解决字距调整问题,您需要重新定义\textsuperscript以便它直接访问上标字形(该示例仅适用于 1-5),并且要使其正常\footnote工作,您还需要重新定义设置脚注标记的命令——它可能会产生副作用,因为必须删除 \nobreak。示例中使用的数字是字体特定的。对于一般解决方案,需要某种方式通过名称访问字形。

\documentclass{article}
\usepackage{fontspec}


\directlua {
    fonts.handlers.otf.addfeature {
        name = "ktest",
        type = "kern",
        data = {
            ["f"] = {
        ["one.sups"] = 1000,
        [983449] = 1000,
        [983450] = 1000,    
        [983451] = 1000,
        [983452] = 1000,
      }
        }
    }
}

\setmainfont{ebgaramond}[RawFeature=+ktest]

\begin{document}

\renewcommand\textsuperscript[1]{%
 \ifcase #1 
 \or \symbol{983448}%one.sups 
 \or \symbol{983449}%two.sups 
 \or \symbol{983450}%three.sups 
 \or \symbol{983451}%four.sups
 \or \symbol{983452}%five.sups
 \fi}

\makeatletter 
\renewcommand\@makefnmark{\textsuperscript{\@thefnmark}}

\def\@footnotemark{%
  \leavevmode
  \ifhmode\edef\@x@sf{\the\spacefactor}%\nobreak
  \fi
  \@makefnmark
  \ifhmode\spacefactor\@x@sf\fi
  \relax}

f\footnote{test} \\
f\footnote{test}\\
f\footnote{test}\\
f\footnote{test}\\
f\footnote{test}

f\textsuperscript{1}
f\textsuperscript{2}
f\textsuperscript{3}
f\textsuperscript{4}
f\textsuperscript{5}

\end{document}

在此处输入图片描述

相关内容