
Я хотел бы иметь некоторый код для установки, по всему документу, определенного варианта символа для буквы "v", только если она первая в слове. Решение в MWE не является решением, потому что у меня есть документ из нескольких сотен страниц. Есть какие-нибудь предложения? Спасибо.
\documentclass[a4paper,14pt,openright,twoside]{memoir}
\usepackage[T1]{fontenc}
\usepackage[scale=1,osf,nf,lf]{ebgaramond}
\usepackage{fontspec}
\usepackage{microtype}
\usepackage{csquotes}
\usepackage{realscripts}
\begin{document}
Normal set:
{\fontshape{it}
\addfontfeature{RawFeature=+hlig}
\addfontfeature{CharacterVariant=5:2}
\addfontfeature{RawFeature=+liga}
\addfontfeature{RawFeature=+dlig}
\addfontfeature{RawFeature=+swsh}
\addfontfeature{Numbers=OldStyle}
\selectfont
Ha visto un valvassore vivere come un valvassino invidioso che gridava evviva!}
Nice to have:
{\fontshape{it}
\addfontfeature{RawFeature=+hlig}
\addfontfeature{CharacterVariant=5:1}
\addfontfeature{RawFeature=+liga}
\addfontfeature{RawFeature=+dlig}
\addfontfeature{RawFeature=+swsh}
\addfontfeature{Numbers=OldStyle}
\selectfont
Ha {\addfontfeature{CharacterVariant=5:2}v}isto un {\addfontfeature{CharacterVariant=5:2}v}alvassore {\addfontfeature{CharacterVariant=5:2}v}ivere come un {\addfontfeature{CharacterVariant=5:2}v}alvassino invidioso che gridava evviva!}
\end{document}
решение1
Вы можете использовать класс символов:
\documentclass[a4paper,14pt,openright,twoside]{memoir}
\usepackage{fontspec}
\setmainfont{EB Garamond}[
Numbers=Lining,
ItalicFeatures={
RawFeature=+hlig,
RawFeature=+liga,
RawFeature=+dlig,
RawFeature=+swsh,
Numbers=OldStyle,
},
]
\newfontfamily\varv{EB Garamond}[
Numbers=Lining,
ItalicFeatures={
RawFeature=+hlig,
RawFeature=+liga,
RawFeature=+dlig,
RawFeature=+swsh,
Numbers=OldStyle,
CharacterVariant=5:2,
},
]
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\vclass
\XeTeXcharclass`v=\vclass
\XeTeXinterchartoks 255 \vclass = {\openswashv}
\makeatletter
\newcommand\openswashv{%
% by preceding the v with U+200C it's not at the boundary any more
\ifnum\strcmp{\f@shape}{it}=\z@
\begingroup\varv^^^^200cv\endgroup
\nobreak\hspace{0pt}% allow hyphenation in the rest of the word
\expandafter\@gobble
\fi
}
\makeatother
\begin{document}
Normal font:
Ha visto un valvassore vivere come un valvassino invidioso che gridava evviva!
Italic font: {\itshape
Ha visto un valvassore vivere come un valvassino invidioso che gridava evviva!
}
\end{document}
Это позволяет расставлять переносы в остальной части слова (но может привести к неправильной точке переноса в языках, отличных от итальянского). Я проверил, и EB Garamond не определяет никаких пар кернинга между v
и другой буквой.
Вам следует запросить у разработчика шрифта стилистический набор.