
Vejo onde minha descrição pode ter sido enganosa, então aqui está uma pergunta revisada. Quero deixar “cachorro” um pouco mais escuro que o texto normal. Não quero que seja tão escuro quanto “raposa”. Estou usando fontspec com lualatex.
Estou tentando combinar o itálico de uma fonte com outra um pouco mais escura. Existe uma maneira de fazer isso com o FakeBold? No exemplo abaixo, “cachorro” é tão escuro quanto “raposa”, mas só quero escurecê-lo um pouco.
(Usando GentiumPlus aqui apenas como exemplo. Não é minha fonte real.)
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{GentiumPlus}
\newfontfamily{\fbgentium}{GentiumPlus}[%
ItalicFeatures={FakeBold=1.5},
Scale = MatchLowercase]
% Want this to be just slightly dark
\newfontfamily{\ltgentium}{GentiumPlus}[%
ItalicFeatures={FakeBold=1.05}, % specify a small amount here (tried 0.05)
Scale = MatchLowercase]
\begin{document}
\itshape
The quick brown {\fbgentium fox}
jumps over the lazy {\ltgentium dog.}
\end{document}
Responder1
Acabei de enviar o problema nº 498 para a página do GitHub para latex3/fontspec. Vinculado a este tópico no SE. Quando eles me responderem, comentarei aqui. Enquanto isso, solução alternativa (funciona com lualatex):
Na maioria dos casos, especialmente para texto em tamanho normal ou quase normal, a aparência visual do peso está mais intimamente relacionada às hastes verticais do que às hastes horizontais. Isso ocorre porque a maioria dos caracteres tem hastes verticais mais grossas.
A fontspec
configuração para FakeStretch
funciona bem. Tudo o que ele faz é dimensionar horizontalmente, que é uma transformação linear simples e é o mais livre de erros possível. Então, para uma pequena mudança de peso, eu usaria FakeStretch
por enquanto e aguardaria uma resolução em FakeBold
.
Se você também precisar alterar o peso das hastes horizontais, isso não poderá ser feito por FakeStretch
. Mas se necessário, você pode aumentar o tamanho da fonte usando ScaleAgain
e compensar com o FakeStretch
valor.
Nota relacionada: Eu uso uma combinação de ScaleAgain
e FakeStretch
para criar versaletes sintéticas, para fontes que não as possuem. Não é perfeito, mas é bom.
Responder2
Ambos os mecanismos TeX [XeTeX] e [LuaTeX com luaotfload] suportam o recurso de fonte implementado pelo mecanismo embolden=decimal_number
para fontes OpenType. O padrão PDF define duas rotinas básicas de pintura para curvas fechadas: fill
e stroke
. A fill
rotina insere a tinta somente dentro da curva fechada e o traço desenha a curva com uma linha, sua largura deve ser declarada. A pintura das letras das fontes é feita apenas por fill
rotina por padrão. Quando o recurso de fonte dependente do mecanismo embolden=decimal number
é definido, as letras da fonte usada são pintadas por ambas as rotinas: fill
plus stroke
e a largura da linha da stroke
rotina é definida como decimal_number/100 em
.
Por exemplo, você pode tentar usar xetex
:
\font\fa=[lmroman10-regular]
\font\fb=[lmroman10-regular]:embolden=1.7
\fa Default: only fill is used.
\fb Special: fill plus stroke is used.
\bye
O pacote LaTeX fontspec converte sua sintaxe específica FakeBold=decimal number
para o embolden=decimal_number
recurso de fonte internamente.
Adiciono a seguinte imagem para maior clareza sobre como funcionam as rotinas de preenchimento e traçado: