OpenType 글꼴의 추가 커닝에 대한 사용자 정의 글꼴 기능 문제

OpenType 글꼴의 추가 커닝에 대한 사용자 정의 글꼴 기능 문제

fontspecunder 와 함께 사용되는 OpenType 글꼴에 일부 사용자 정의 커닝을 추가하려고 합니다 lualatex. 실제 예제에서는 Brill글꼴을 사용하지만 TeX Live의 일부가 아니기 때문에 Libertinus아래 예제에서는 사용합니다.

발음 구별 부호와 위 첨자 숫자를 사용하여 특정 문자 사이에 커닝을 추가하고 싶습니다. 작동하는 유일한 조합은 유니코드 위 첨자 숫자를 직접 사용하는 것입니다. 올바른 수치를 사용하기 \textsuperscript위해 재정의된 를 사용하자마자 realscripts추가 커닝이 적용되지 않습니다.

를 사용하는 동안 내가 원하는 것을 달성할 수 있는 방법이 있습니까 \textsuperscript?

% !TeX TS-program = lualatex
\documentclass{article}

\usepackage{fontspec}
% Values below are for demonstration purposes only
\directlua {
   fonts.handlers.otf.addfeature {
      name = "supkern",
      type = "kern",
      data = {
         ["ī"] = {
            ["¹"] = 500,%
            ["two.sups"] = 500,%
         },
         ["š"] = {%
            ["one.sups"] = 500,%
            ["two.sups"] = 500,%
         },
      },
   }
}
\usepackage[defaultfeatures={RawFeature={+supkern}}]{libertinus} %Brill in real life
\usepackage{realscripts}

\begin{document}
   ī\textsuperscript{12}
   
   ī¹
   
   ī{\addfontfeatures{VerticalPosition=Superior}2}
   
   {\addfontfeatures{RawFeature={+supkern}}ī\addfontfeatures{VerticalPosition=Superior}12}
   
   š\textsuperscript{2}
   
\end{document}

답변1

realscripts 코드는 \addfontfeature 명령을 추가합니다. 이는 기본적으로 두 가지 다른 글꼴이 있다는 것을 의미합니다. 이와 같은 것이 작동해야 하지만 몇 가지 테스트를 추가해야 글꼴에 위 첨자가 없어도 실패하지 않습니다. 실제 스크립트 코드를 살펴보세요.

\documentclass{article}

\usepackage{fontspec}
% Values below are for demonstration purposes only
\directlua {
   fonts.handlers.otf.addfeature {
      name = "supkern",
      type = "kern",
      data = {
         ["ī"] = {
            ["¹"] = 500,%
            ["two.sups"] = 500,%
         },
         ["š"] = {%
            ["one.sups"] = 500,%
            ["two.sups"] = 500,%
         },
      },
   }
}
\usepackage[defaultfeatures={RawFeature={+sups,+supkern}}]{libertinus} %Brill in real life
\RenewDocumentCommand\textsuperscript{m}{#1}
\begin{document}
   ī\textsuperscript{12}

ī¹ 
\end{document}

관련 정보