
Me gustaría tener algún código para establecer, en todo el documento, una variante de carácter específica para la letra "v" solo si es la primera de la palabra. La solución en MWE no es una solución porque tengo un documento de varios cientos de páginas. ¿Cualquier sugerencia? Gracias.
\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}
Respuesta1
Puedes usar una clase de personaje:
\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}
Esto permite la separación de palabras en el resto de la palabra (pero podría dar algún punto de separación de palabras incorrecto en idiomas diferentes al italiano). Revisé y EB Garamond no define ningún par de interletraje entre v
otra letra y otra.
Deberías pedirle al desarrollador de fuentes un conjunto estilístico.