%3F.png)
Estou fazendo um documento usando a fonte Minion Pro, que não possui uma ligadura 'oo' (ou seja, U+A74F: ꝏ). Gostaria, portanto, de criar artificialmente esta ligadura, reduzindo automaticamente o espaçamento entre qualquer ocorrência do par de letras 'oo'. Posso fazer isso manualmente e criar um comando (por exemplo \oo
), mas isso seria bastante chato comparado à facilidade de outras ligaduras.
Abaixo está o efeito que eu gostaria, embora criado de maneira complicada:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Minion Pro}
\begin{document}
\Huge
Bo\hspace{-.15em}ok\par Book
\end{document}
Responder1
Aqui eu o
ativo o que você não quer em geral, então disponibilizo \myligON
e \myligOFF
limito seu uso.
\documentclass{article}
\let\svO o
\newcommand\OOkern{\hspace{-.15em}}
\newcommand\myligON{\catcode`o=\active }
\newcommand\myligOFF{\catcode`o=11 }
{\catcode`o=\active \gdefo#1{\svO\ifxo#1\expandafter\OOkern\fi#1}}
\begin{document}
Book
\myligON Book hop \myligOFF
versus Book hop
\end{document}
Responder2
Eu não faria isso em todos os lugares, apenas para efeitos especiais em títulos em tamanho de exibição. Mas o método de kerning Ulrike Fischer explica emComo ajustar recursos de fonte no LuaTeX?faz o trabalho:
% compile with lualatex
\documentclass{article}
\usepackage{fontspec}
\directlua{
fonts.handlers.otf.addfeature{
name = "oooh",
type = "kern",
data =
{
["o"] = { ["o"] = -175 },
},
}
}
\setmainfont{Minion Pro}[RawFeature=+oooh]
\begin{document}
Look at the old book in the nook.
\end{document}
Responder3
Uma XeTeX
solução para complementar a resposta de @Therese LuaTeX
, aproveitando o Interchartoks
recurso:
\documentclass{article}
\XeTeXinterchartokenstate = 1
\newXeTeXintercharclass \mycharclasso
\XeTeXcharclass `\o \mycharclasso
% between "o" and "o":
\XeTeXinterchartoks\mycharclasso\mycharclasso={\kern-2.5pt }
\usepackage{fontspec}
\setmainfont{Minion Pro}
\begin{document}
\huge\centering Look at the old book in the nook.
\end{document}