
Я хотел бы получить доступ к некоторым альтернативным формам глифов с помощью fontspec. Если быть точным, я использую шрифт Garamond Premier Pro и хотел бы использовать альтернативные формы Q (Glyph 245), W (Glyph 246) и & (Glyph 301). Шрифт имеет 4 стилистических набора, но их использование через fontspec не влияет на форму упомянутой буквы.
Вот минимальный код, в котором все еще есть проблема:
\documentclass{article}
\usepackage[no-math]{fontspec}
\setmainfont[Ligatures=Common, StylisticSet={1,2,3,4}]{Garamond Premier Pro}
\title{Title}
\begin{document}
\maketitle
Test: WQ\&.
\end{document}
PS: Использование Style= Alternate
fontspec изменяет все, а не только три буквы (оно также выбирает альтернативную форму &, которая мне не нужна).
PPS: Проблема присутствует как в XeLaTeX, так и в LuaLaTeX.
решение1
Я не знаю, у нас одна и та же версия шрифтов, потому что номера глифов, которые вы упоминаете, не совпадают с тем, что я вижу. Но в LuaTeX вы можете сделать это (измените имя амперсанда, если показанный символ ampersand.alt2
не ampersand.alt3
тот, который вы хотели):
\documentclass[12pt]{article}
\usepackage[no-math]{fontspec}
\directlua{
fonts.handlers.otf.addfeature{
name = "malt",
type = "alternate",
data =
{
Q = "Q.alt",
["q.sc"] = "q.scalt",
W = "W.alt",
["w.sc"] = "w.scalt",
Wcircumflex = "Wcircumflex.alt",
Wgrave = "Wgrave.alt",
Wacute = "Wacute.alt",
Wdieresis = "Wdieresis.alt",
["wacute.sc"] = "wacute.scalt",
["wcircumflex.sc"] = "wcircumflex.scalt",
["wdieresis.sc"] = "wdieresis.scalt",
["wgrave.sc"] = "wgrave.scalt",
ampersand = "ampersand.alt1",
},
}
fonts.handlers.otf.addfeature{
name = "oops",
type = "alternate",
data =
{
["ampersand.alt1"] = "ampersand.sc",
},
}
}
\setmainfont{Garamond Premier Pro}[RawFeature=+malt]% “malt” for “my alternates”; choose another name if you like
\begin{document}
Test: W Q \&.
Ẃ Ẁ Ŵ Ẅ
% because the font doesn’t have small cap ampersand variants:
{\addfontfeature{RawFeature=+oops}\textsc{Test: w q \& ẃ ẁ ŵ ẅ}}
\end{document}
Если вы не хотите помнить о необходимости добавлять {\addfontfeature{RawFeature=+oops}...}
каждый раз заглавные буквы амперсанда, просто сделайте fontspec
это в преамбуле:
\setmainfont{Garamond Premier Pro}[
RawFeature=+malt,
SmallCapsFeatures={RawFeature=+oops}]
ВидетьКак настроить параметры шрифта в LuaTeX?для более подробной информации. Для глифов с длинными хвостами определение контекстной альтернативы часто бывает предпочтительным.