Aus irgendeinem Grund ё
fehlt der russische Buchstabe in einigen Schriftarten, was dazu führt,
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!
Es ist zwar fast immer akzeptabel, es durch den Buchstaben zu ersetzen е
, aber dieser Code funktioniert nicht:
\newunicodechar{ё}{\iffontchar\font`ё ё\else{е}\fi}
\newunicodechar{Ё}{\iffontchar\font`Ё Ё\else{Е}\fi}
Kann ich die automatische Ersetzung durchführenohneerklären, ё
ein aktiver Charakter zu sein?
Vollständiges 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}
Antwort1
In LuaTeX können Sie Ihre eigene Ersetzungsregel als Schriftart-Feature definieren, sieheWie passe ich Schriftfunktionen in LuaTeX an?
\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}