
fontspec
under 와 함께 사용되는 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}