¿Existe una forma aceptada de ajustar los glifos de fuente para simular figuras de texto ?
Antecedentes
Las figuras de texto son dígitos "en minúsculas". Normalmente usa dígitos en minúscula donde también usa texto en minúscula (por ejemplo, en el medio de una oración).
Los teclados nunca se crearon con dígitos en mayúscula y minúscula; y Unicode no los codifica específicamente, ya que "no se consideran caracteres separados de las figuras de revestimiento, solo una forma diferente de escribir los mismos caracteres".
Lo cual me lleva a mi pregunta; ¿Cuál es la forma aceptada de crear figuras en minúsculas a partir de las "mayúsculas" estándar de una fuente?
Wikipedia menciona que normalmente :
012
son dex
altura68
tener ascendentes34579
tener descendientes
Mi primer intento (en photoshop) sería:
- smush 012
- empujar 34579 hacia abajo
- deja 68 donde están:
Pero las figuras desvainadas (0, 1, 2) se ven claramente desagradables.
Si el consorcio Unicode sugiere que los "dígitos minúsculos" pueden construirse simplemente a partir de los "mayúsculas", ¿qué recomiendan que haga?
Idealmente en HTML
Mi objetivo final es mostrar texto en minúsculas en un navegador. Sé que algunas fuentes (por ejemplo, Georgia) ya muestran todos sus dígitos en minúsculas:
Pero no estoy preguntando cómo cambiar a usar Georgia ; Estoy preguntando cómo construir figuras de revestimiento a partir de figuras sin revestimiento.
Y dado que esto es para mostrar en la web, me doy cuenta de que probablemente terminaría teniendo que aplicar el formato por carácter:
<!doctype html">
<html>
<head>
<style type="text/css">
body {
font-family: "Segoe UI", "Calibri", sans-serif;
font-size: larger;
}
.xheight {
font-size: 1.5ex;
}
.descender {
position: relative;
bottom: -0.4ex;
}
</style>
</head>
<body>
<p>In the year <span class="xheight">21</span><span class="descender">5</span><span>6</span> the Romulan war...
</body>
</html>
Representación como:
Lo cual, nuevamente, no parece tan agradable como creo que debería ser.
Hey mira, un centavo!
fuente
A
(U+0041
), minúsculasa
(U+0061
), e incluso cᴀᴘɪᴛᴀʟ sᴍᴀʟʟᴀ
(U+1D00
)? Es decir, ¿cuál podría ser el razonamiento que excluye dígitos separados en mayúsculas y minúsculas, pero incluye letras separadas en mayúsculas y minúsculas?La forma correcta de representar dígitos / números en minúsculas o "figuras de estilo antiguo" es usar CSS para seleccionar una fuente adecuada. Obviamente, la fuente utilizada debería admitir esta función de fuente en primer lugar. El soporte del mundo real con webfonts no parece ser demasiado fuerte.
La configuración de CSS que está buscando es
y la documentación:
La documentación de las características de OpenType, y la
onum
característica en particular, se puede encontrar en el registro de etiquetas de diseño OpenType de Microsoft .La documentación alternativa sobre las características de fuente está disponible en el artículo Cómo codificar características de OpenType en CSS .
Oficialmente, se supone que debes usar
pero el soporte para eso parece ser aún más débil según la referencia de compatibilidad del navegador de Mozilla .
En teoría, esto es mejor porque no se refiere directamente a las características OpenType, por lo que también debería funcionar con fuentes que no sean OpenType. De la misma manera deberías usar:
para habilitar pequeñas mayúsculas . No , no utilizar la función de ajuste de OpenType como
para lograr este efecto porque la
font-variant
propiedad ya está bien soportada.fuente
font-variant: small-caps;
porque eso crea FAKE small caps. Siempre use el otro, y siempre use fuentes OpenType. Simple y resuelto.acceptable
si lasmall-caps
característica es falsa. Eso no es un requisito y el agente de usuario de alta calidad haría lo correcto (asignarlo a la función OpenType). Estoy de acuerdo en que si prefieres no tener cambios en lugar de pequeñas tapas falsas, debes usarlasfont-feature-settings
. Por lo general, las tapas pequeñas falsas son mejores que no tener ningún efecto.