Crear automáticamente negrita-cursiva a partir de una fuente en cursiva

Google Chrome tiene una buena función: puede crear letras en negrita y cursiva sobre la marcha a partir de letras en cursiva (en caso de que una fuente tenga estilo en cursiva pero no tenga negrita y cursiva). El resultado se ve bastante bien: las letras se vuelven más gruesas solo en dirección vertical, hay líneas horizontales delgadas. En comparación, el mismo resultado de Firefox es horrible.

¿Hay alguna manera de hacer esto automáticamente en toda la fuente en el editor de fuentes gratuito o en cualquier otra aplicación gratuita (CLI también está bien)? Puede ser que Chrome use algún motor gratuito...

UPD

Aquí hay una captura de pantalla de Linux Libertine en Chrome. El mejor ejemplo es una cursiva seminegrita hecha por el autor de la fuente. El ejemplo medio está en cursiva por el autor. En la parte inferior hay una pseudo-semibold-italic generada automáticamente por Chrome a partir de cursiva. En rojo hay una captura de pantalla de FontForge después de cambiar el peso de la fuente.

ingrese la descripción de la imagen aquí

No puedo responder... pero esto me recordó a un letrero que habían colocado en uno de mis primeros puestos de trabajo... "Suficientemente bueno, no lo es".
A los snobs tipográficos no les importan las negritas o las cursivas automáticas. Si el proceso pudiera realizarse automáticamente, no tendrían que publicar más estos estilos de letra. A las personas les lleva mucho tiempo desarrollar sus formas de letras en negrita y cursiva para que estén optimizadas para la lectura. ¿Se puede hacer con freeware? No sé.
@Peter Zagubisalo Probablemente haya una razón por la que los creadores de tipos no hayan creado una variante en negrita y cursiva: si fuera tan fácil como ejecutar un script simple en la variante en cursiva, lo harían. Si aplica negrita automática, es probable que la legibilidad de su texto se vea afectada. En cambio, recomendaría a) usar una fuente diferente yb) no usar cursiva y negrita a la vez (excepto en algunos casos de esquina, es solo una mala práctica)
¿Por qué esperas que sea de buena calidad?
@joojaa Porque lo veo de buena calidad.
Sí, pero está hecho manualmente por el autor, obviamente, eso es mejor calidad que automático, al menos hasta que tengamos IA.
@joojaa Arriba es mejor que abajo. Pero no tanto como solía ser antes
@PeterZagubisalo posiblemente se haya intropolado al hacer que notbold y bold sean una fuente maestra múltiple.
@joojaa ¿Podría describirlo con más detalles y tal vez con otras palabras :)

Respuestas (2)

FontForge es un editor de fuentes gratuito que puede hacer eso. Seleccione todos los glifos y aplique el comando en el menú Elemento > Estilo > Cambiar peso... Luego regenere la fuente. En cuanto a lo bueno que es, no puedo decirlo; la calidad es subjetiva.

Intenté esto. Esto es ligeramente mejor que el horrible resultado de Firefox. Aunque sigue siendo malo.
¡Chrome hace un buen trabajo, de hecho! Sinceramente, nunca he usado ninguna de las utilidades de cambio de peso en los editores de fuentes. La única solución (en FontForge) que puedo ver es escribir su propio script de cambio de peso en Python... -_-
En efecto. Para mí, el trabajo de Chrome parece mágico. No se donde empezar. Hice otra pregunta y abrí un problema en el repositorio de GitHub FontForge... También pensé en preguntar en la comunidad de aprendizaje de StackExchange Machine si conocen algoritmos como ese (ya sabes: Google, magia, aprendizaje profundo), pero dudé :)

Hay una herramienta en FontForge llamada Expandir trazo. Permite personalizar la cantidad de realce tanto en horizontal como en vertical, así como el ángulo.

ingrese la descripción de la imagen aquí

En primer lugar, el "Tipo de pluma": recomiendo "Circular (Elíptica)" para el envalentonado automático. Proporciona la distribución más uniforme de envalentonamiento en todos los ángulos.

Luego, el "Ancho del trazo principal" y la "Altura del trazo principal": esas son las dimensiones del realce. Advertencia: establecer uno en 0 o establecer uno en un valor negativo y el otro en positivo no funcionará correctamente. Establecer ambos en positivo (espesar) o negativo (adelgazar) funcionará correctamente. Y cuando la diferencia relativa entre los dos es grande (como 74 y 1) funcionará muy lentamente. Entonces, si solo desea una negrita horizontal de, digamos, 50 unidades, primero haga "60, 10" y luego "-10, -10".

Luego, el ángulo de la pluma. Cuando se establece en 0, las dimensiones de realce son horizontales y verticales. Pero también se puede colocar en ángulo.

"Line Cap" solo se usa para contornos abiertos. Las fuentes de contorno estándar usan contornos cerrados, por lo que para envalentonar esto no importa.

"Unión de línea" determina el comportamiento en negrita de las esquinas. Con "Inglete" se conservarán las esquinas vivas, siempre que sean esquinas exactas. "Redondo" siempre redondeará las esquinas, mientras que "Bisel" agregará un borde.

"Eliminar contorno interno" debe estar habilitado y "Eliminar contorno externo" deshabilitado para resaltar. Si ambos están deshabilitados, el resultado se convierte en un trazo. Si ambos están habilitados, el resultado es nada. Si solo se habilita "Eliminar contorno externo", la negrita funcionará a la inversa, lo que equivale a usar números inversos.

Su muestra también parece agregar espacio adicional. La forma de agregar espaciado (ya sea positivo o negativo) es usar Métricas/Establecer ambos rodamientos. Utilice la opción Incrementar rodamientos. Tenga en cuenta que Expandir trazo resalta exactamente la cantidad dada, mientras que Incrementar rodamientos agrega el valor a ambos lados del glifo, por lo que si desea que el espacio adicional sea igual al valor en negrita, debe configurar la opción Incrementar rodamientos a la mitad del valor. .

ingrese la descripción de la imagen aquí

Después de descubrir esas herramientas, pruébelas.

Muestra de Times New Roman Italic y Times New Roman Bold Italic:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Después de realizar las tres operaciones en orden,

ingrese la descripción de la imagen aquí

llegué a este resultado:

ingrese la descripción de la imagen aquí

Siéntase libre de experimentar con los parámetros, para ver si dan mejores o peores resultados.