LuaLaTeX에서 누락된 글리프를 다른 글리프로 자동 대체

LuaLaTeX에서 누락된 글리프를 다른 글리프로 자동 대체

어떤 이유로 ё일부 글꼴에는 러시아어 문자가 누락되어 있습니다.

warning  (file c:/Users/mishk/OneDrive/Stuff/fonts/PTSerifPro-Regular.otf) (cff
): 'seac' character deprecated in type 2 charstring
! error:  (file c:/Users/mishk/OneDrive/Stuff/fonts/PTSerifPro-Regular.otf) (cf
f): Type2 Charstring Parser: parsing charstring failed: (status=-1, stack=5)
!  ==> Fatal error occurred, no output PDF file produced!

그러나 문자로 대체하는 것은 항상 허용되지만 е이 코드는 작동하지 않습니다.

\newunicodechar{ё}{\iffontchar\font`ё ё\else{е}\fi}
\newunicodechar{Ё}{\iffontchar\font`Ё Ё\else{Е}\fi}

자동 대체를 할 수 있나요?없이ё활동적인 캐릭터라고 선언하시나요 ?

전체 LuaLaTeX MWE:

\documentclass{book}

\usepackage{polyglossia}

\usepackage{newunicodechar}

\setmainlanguage{russian}

\newcommand{\MyPath}{C:/Users/mishk/OneDrive/Stuff/fonts/}


\newfontfamily{\cyrillicfont}{PTSerifPro}[
    Path            =   \MyPath,
    Extension       =   .otf,
    UprightFont     =   *-Regular,
]

\newunicodechar{ё}{\iffontchar\font`ё ё\else{е}\fi}
\newunicodechar{Ё}{\iffontchar\font`Ё Ё\else{Е}\fi}

\begin{document}

    ааа еее ёёё

\end{document}

답변1

LuaTeX에서는 글꼴 기능으로 자신만의 대체 규칙을 정의할 수 있습니다.LuaTeX에서 글꼴 기능을 조정하는 방법은 무엇입니까?

\documentclass{article}
\usepackage{fontspec}

\directlua{
fonts.handlers.otf.addfeature {
    name = "ediaeresis",
    type = "substitution",
    prepend = true,
    data = {
        ["ё"] = "e",
        ["Ё"] = "Е",
    }
}
}

\setmainfont{PT Serif}[RawFeature=+ediaeresis]

\begin{document}

ё Ё

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보