¿Cómo construir "dígitos en minúsculas" (es decir, cifras de texto)?

¿Hay alguna forma aceptada de ajustar los glifos de fuente para simular figuras de texto ?

ingrese la descripción de la imagen aquí

Fondo

Las cifras del texto son dígitos "en minúsculas". Normalmente usa dígitos en minúsculas donde también usa texto en minúsculas (por ejemplo, en medio de una oración).

Nunca se crearon teclados con dígitos en mayúsculas y minúsculas; 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 cifras en minúsculas a partir de las "mayúsculas" estándar de una fuente?

Wikipedia menciona que normalmente :

  • 012son x-altura
  • 68tener ascendentes
  • 34579tener descendientes

ingrese la descripción de la imagen aquí

Mi primer intento (en photoshop) sería:

  • aplastar 012
  • empujar 34579 hacia abajo
  • dejo el 68 donde estan:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Pero las cifras skwooshed (0, 1, 2) parecen claramente desagradables.

Si el consorcio Unicode sugiere que los "dígitos en minúsculas" se pueden construir simplemente a partir de los "mayúsculas", ¿qué me 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:

ingrese la descripción de la imagen aquí

Pero no estoy preguntando cómo cambiar para usar Georgia ; Estoy preguntando cómo construir figuras de revestimiento a partir de las que no lo están.

Y dado que esto es para mostrar en la web, me doy cuenta de que probablemente termine 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>

Renderizado como:

ingrese la descripción de la imagen aquí

Lo cual, de nuevo, no parece tan agradable como creo que debería.

¡Oye, mira, un centavo!

ingrese la descripción de la imagen aquí

Respuestas (2)

La respuesta muy corta es "No".

Las cifras de estilo antiguo ("minúsculas") se dibujan específicamente de esa manera. Las fuentes Postscript y TrueType heredadas, en su mayor parte, contienen solo figuras tabulares, que son alineadas o de estilo antiguo según la forma en que se diseñó la fuente.

El Consorcio Unicode no sugiere que las figuras de línea se puedan distorsionar en figuras de estilo antiguo, simplemente que solo hay un conjunto de valores Unicode para los dígitos 0-9, independientemente de si hay varios glifos para cada dígito.

Muchas fuentes OpenType contienen tanto figuras de forro como de estilo antiguo, tanto en anchos tabulares como proporcionales, siendo las figuras de forro tabular el valor predeterminado habitual. Todos estos están disponibles para aplicaciones que son compatibles con OpenType, generalmente a través de una configuración de preferencia en un estilo de carácter o párrafo. Comparten valores Unicode, pero son glifos alternativos dibujados por separado que existen (o no) como contornos en el software de fuentes. (De las familias de fuentes en su CSS, Calibri tiene figuras de estilo antiguo, pero la interfaz de usuario de Segoe no).

Desde un punto de vista tipográfico, no solo no hay una forma aceptada de hacer lo que pides, diría que tampoco hay una forma aceptable . Como ha descubierto, tratar de llegar allí cambiando las líneas de base y distorsionando las figuras lineales se ve horrible.

Buena respuesta, pero parece plantear la pregunta de cuándo los navegadores serán totalmente conscientes de OpenType, hasta el punto de poder especificar en CSS qué estilo de números usar cuando una fuente contiene ambos.
También es un punto importante señalar que no hay forma de garantizar que "Segoe UI", "Calibri", ni siquiera sans-serif sea la fuente real que se muestra. La línea de base exacta y los valores de altura x utilizados pueden parecer aún más horribles en Arbitrary Olde Style que el usuario ha instalado.
¿Alguna idea de por qué el Consorcio Unicode no codificó glifos separados para mayúsculas y minúsculas, pero codificó glifos separados para mayúsculas A( U+0041), minúsculas a( U+0061) e incluso sᴍᴀʟʟ cᴀᴘɪᴛᴀʟ ( U+1D00)? Es decir, ¿cuál podría ser el razonamiento que excluye los dígitos separados en mayúsculas y minúsculas, pero incluye letras separadas en mayúsculas y minúsculas?
Y finalmente, ¿puede nombrar una fuente OpenType que contenga dígitos tanto en "mayúsculas" como en "minúsculas" ?
@e100 No hay nada que haya visto en la documentación de WC3 que indique que se está considerando. La gente de WC3 no va al mismo Starbucks que yo, así que no tengo información interna sobre las cosas. :)
@IanBoyd Fue una decisión desafortunada, en mi opinión, pero es lo que es. En cuanto a las fuentes con ambas, Calibri es una que se envía con MS Office, por lo que está comúnmente disponible. Palatino de Linotype tiene ambos. Las fuentes de Adobe Garamond Pro, Jenson Pro, Caslon Pro, Minion Pro y Myriad Pro tienen ambas. Hay muchas, muchas fuentes en el mercado que incorporan figuras de estilo antiguo y de líneas. La mayoría de las fundiciones de fuentes y los sitios de fuentes muestran las funciones de OpenType disponibles en una fuente en particular, por lo que puede verificarlas fácilmente.
Solo pregunto sobre las fuentes porque (a partir de este momento) la única forma en que sé cómo inspeccionar los caracteres de una fuente es Charmap, que solo muestra caracteres Unicode. Sé que charmap no admite la investigación de otras características de fuentes, como las ligaduras. Obviamente, tengo que buscar un "visor de fuentes" . Pero saber que Calibri los admite me da un punto de referencia para cualquier espectador que encuentre.
@IanBoyd: Los caracteres regulares en mayúsculas y minúsculas tienen un significado distinto y, por lo tanto, cambiar entre ellos es mucho más que una elección estilística. Sin embargo, los números en mayúsculas y minúsculas tienen un significado idéntico y, por lo tanto, simplemente no son nada que Unicode quiera codificar, por la misma razón que no hay codificaciones específicas para cursiva, versalitas, minúsculas y similares. Los caracteres en mayúsculas pequeñas que encuentre solo están codificados porque tienen un significado distinto en fonética y no deben usarse para enfatizar (para esto, debe usar funciones OpenType o similares).
@IanBoyd: Por cierto: los caracteres a los que solo se puede acceder mediante funciones OpenType y similares a menudo también están codificados en el Área de uso privado de Unicode como una solución alternativa, por lo que obtiene una buena estimación de qué caracteres tiene una fuente mirando allí. Pero tenga en cuenta que en realidad son solo una solución alternativa y solo deben usarse cuando realmente necesita esos caracteres y no puede usar funciones OpenType o similares. Esto se debe a que no se pueden buscar y es probable que se reemplacen por tonterías, si la fuente se reemplaza por algún motivo.

La forma correcta de representar dígitos/números en minúsculas o "cifras de estilo antiguo" es usar CSS para seleccionar una función de fuente adecuada. Obviamente, la fuente utilizada debería admitir esta función de fuente en primer lugar. El soporte del mundo real con fuentes web no parece ser demasiado fuerte.

La configuración de CSS que está buscando es

font-feature-settings: "onum";

y la documentación:

La documentación de las características de OpenType, y onumla característica en particular, se puede encontrar en el registro de etiquetas OpenType Layout de Microsoft .

La documentación alternativa sobre las características de las fuentes está disponible en el artículo Cómo codificar características OpenType en CSS .

Oficialmente, se supone que debes usar

font-variant-numeric: oldstyle-nums;

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 funciones OpenType, por lo que también debería funcionar con fuentes que no sean OpenType. De la misma manera debes usar:

font-variant: small-caps; 

para habilitar las versalitas . No utilice la configuración de la función OpenType, como

font-feature-settings: "smcp";

para lograr este efecto porque font-variantla propiedad ya está bien respaldada.

No, nunca querrás usar font-variant: small-caps;porque eso crea letras pequeñas FALSAS . Utilice siempre el otro y utilice siempre fuentes OpenType. Sencillo y resuelto.
De acuerdo con la definición ( w3.org/TR/CSS21/fonts.html#propdef-font-variant ), es acceptablesi la small-capscaracterística es falsa. Eso no es un requisito y un agente de usuario de alta calidad haría lo correcto (asignarlo a la función OpenType). Estoy de acuerdo en que si prefiere no tener cambio en lugar de pequeñas mayúsculas falsas, debe usar font-feature-settings. Por lo general, las pequeñas capitalizaciones falsas son mejores que no tener ningún efecto.
@tchrist: ...la diferencia es? Si es capital y es pequeño, es una pequeña capitalización. Problema resuelto.
Las versalitas falsas hacen la parte "pequeña" al escalar las letras mayúsculas reales más pequeñas para que coincidan con la altura normal de las letras x minúsculas. Por supuesto, esto también hace que las letras sean visualmente más delgadas porque toda la letra está reducida, lo que también hace que las líneas de tallo sean más estrechas. El soporte adecuado para versalitas tiene un conjunto separado de letras que son ópticamente más pesadas para coincidir con el peso de las letras mayúsculas. Un conjunto de versalitas bien hecho también puede tener formas ligeramente diferentes para que la letra de versalitas coincida mejor con la fuente general.