
Veo que mi descripción puede haber sido engañosa, así que aquí hay una pregunta revisada. Quiero que "perro" sea un poco más oscuro que el texto normal. No quiero que sea tan oscuro como "zorro". Estoy usando fontspec con lualatex.
Estoy tratando de hacer coincidir las cursivas de una fuente con otra que sea un poco más oscura. ¿Hay alguna manera de hacer eso con FakeBold? En el siguiente ejemplo, "perro" es tan oscuro como "zorro", pero solo quiero oscurecerlo un poco.
(Usando GentiumPlus aquí solo como ejemplo. No es mi fuente 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}
Respuesta1
Acabo de enviar el número 498 a la página de GitHub para latex3/fontspec. Vinculado a este hilo en SE. Cuando me respondan lo comentaré aquí. Mientras tanto, solución alternativa (funciona con lualatex):
En la mayoría de los casos, especialmente para texto de tamaño normal o casi normal, la apariencia visual del peso está más estrechamente relacionada con las raíces verticales que con las horizontales. Esto se debe a que la mayoría de los caracteres tienen tallos verticales más gruesos.
La fontspec
configuración FakeStretch
funciona bien. Todo lo que hace es escalar horizontalmente, que es una transformación lineal simple y está lo más libre de errores posible. Entonces, para un pequeño cambio de peso, lo usaría FakeStretch
por ahora y esperaría una resolución FakeBold
.
Si también debe cambiar el peso de los tallos horizontales, eso no se puede hacer con FakeStretch
. Pero si es necesario, puedes aumentar el tamaño de la fuente usando ScaleAgain
y compensar con el FakeStretch
valor.
Nota relacionada: Utilizo una combinación de ScaleAgain
y FakeStretch
para crear versalitas sintéticas, para fuentes que no las tienen. No perfecto, pero bueno.
Respuesta2
Ambos motores TeX [XeTeX] y [LuaTeX con luaotfload] admiten la función de fuente implementada en el motor embolden=decimal_number
para fuentes OpenType. El estándar PDF define dos rutinas básicas de pintado para curvas cerradas: fill
y stroke
. La fill
rutina inserta la tinta solo dentro de la curva cerrada y el trazo dibuja la curva con una línea, se debe declarar su ancho. El pintado de letras de fuentes se realiza sólo de fill
forma rutinaria por defecto. Cuando se establece la función de fuente dependiente del motor, embolden=decimal number
ambas rutinas pintan las letras de la fuente utilizada: fill
más stroke
y el ancho de línea de la stroke
rutina se establece en decimal_number/100 em
.
Por ejemplo, puedes intentar usar usando 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
El paquete fontspec LaTeX convierte internamente su sintaxis específica FakeBold=decimal number
a la característica de fuente.embolden=decimal_number
Agrego la siguiente imagen para mayor claridad de cómo funcionan las rutinas de relleno y trazo: