Esto es para responder una pregunta que surgió en los comentarios sobre esta pregunta sobre los caracteres Unicode para números romanos:
¿Por qué es esto necesario o preferible a la forma habitual de escribir ai, ai-ai, ai-ai-ai, vee-ai, etc.?
Para empezar desde el principio, en el bloque Formas numéricas de Unicode , existen puntos de código para números romanos que, a primera vista, son muy similares en apariencia a las letras latinas mayúsculas estándar o combinaciones de las mismas (U+2160 – U+217F). Por ejemplo, U+2165 (número romano seis) se parece mucho a VI (letra mayúscula latina V y letra mayúscula latina I).
Por lo tanto, surge la pregunta de por qué uno no debería usar este último para representar esos dígitos y, por ejemplo, escribir Louis VII
en lugar de Louis Ⅶ
. Obviamente, no usar caracteres especiales evita problemas de compatibilidad con fuentes que no los admiten. Pero incluso si sé que el texto se representará con una fuente que admita estos caracteres, ¿por qué debería molestarme en usarlos?
En muchas fuentes, de hecho, apenas encontrará ninguna diferencia entre usar los caracteres Unicode para los números romanos y simplemente componerlos a partir de letras latinas estándar. Por ejemplo, los siguientes espectáculos Louis VII
(arriba) y Louis Ⅶ
(abajo, usando puntos de código para números romanos) renderizados con FreeSans:
Aparte de una pequeña diferencia en el espaciado, que probablemente no fue intencional, el resultado es idéntico.
Aquí está el mismo texto renderizado con DejaVu Sans:
Si bien los caracteres aún se ven idénticos, hay una diferencia considerable en el espaciado. Puede ser una cuestión de gusto si este último es preferible para los números romanos, pero ciertamente no sería una buena elección de interletraje para mayúsculas normales.
Linux Libertine va un paso más allá:
Aquí los números romanos son ligeramente más pequeños que las letras mayúsculas, por lo que coinciden con los números arábigos de la fuente. Lo que es más importante, están conectados, reproduciendo una característica que a menudo se encuentra en los números romanos dibujados a mano.
Ahora, algunos aún pueden argumentar que no hay mejoras en lo anterior o que no vale la pena el esfuerzo. Entonces, aquí hay un caso en el que no usar los caracteres Unicode producirá resultados horribles:
(Tenga en cuenta que el tamaño pequeño de los números refleja una composición tipográfica histórica real). Algo similar puede ocurrir con las fuentes de escritura o caligráficas.
Sin puntos Unicode específicos para números romanos, resolver este último problema solo sería posible con:
Usando una característica compleja de OpenType (o similar) que intenta detectar si una secuencia de letras mayúsculas es un número romano. Esto inevitablemente causará problemas con palabras que también serían números romanos válidos.
Usando una función OpenType simple, que debe activarse manualmente para cada número romano.
Uso del área de uso privado de Unicode. Es probable que surjan problemas de compatibilidad incluso al cambiar entre dos fuentes que admitan números romanos.
Desde el punto de vista de Unicode, la enorme diferencia semántica entre las letras latinas mayúsculas y los números romanos ya debería haber sido suficiente para una codificación separada de los números romanos.
TL; DR El consorcio Unicode recomienda usar la letra latina siempre que sea posible y no el número, que se incluyó para compatibilidad con la tipografía de Asia oriental.
La historia completa: (con justificación de la afirmación anterior)
A menos que esté haciendo alguna tipografía de Asia oriental, usar los caracteres numéricos romanos (no arcaicos) de Unicode (U+2160 — U+217F) es un truco.
Estos caracteres se han incluido por motivos de compatibilidad con los estándares de Asia oriental anteriores a Unicode. Estos caracteres permanecen verticales donde el texto de Asia oriental se escribe de arriba a abajo, mientras que, por lo general, el texto en caracteres latinos (por ejemplo, nombres) se escribe de lado en este contexto.
Para citar la última versión del estándar Unicode (v 7.0, cap. 22, p. 20) :
Números romanos. Para la mayoría de los propósitos, es preferible componer los números romanos a partir de secuencias de letras latinas apropiadas. Sin embargo, las variantes en mayúsculas y minúsculas de los números romanos hasta el 12, además de L, C, D y M, se han codificado en el bloque Formas numéricas (U+2150..U+218F) para compatibilidad con los estándares de Asia oriental. A diferencia de las secuencias de letras latinas, estos símbolos permanecen en posición vertical en disposición vertical. Además, en ciertos lugares, los formatos de fecha compactos usan números romanos para el mes, pero pueden esperar el uso de un solo carácter.
Entonces, en teoría, la distinción entre números romanos y letras es una cuestión de texto enriquecido, como cursiva, un cambio de fuente o ligaduras opcionales. Dicho esto, como muestra @Wrzlprmft, algunas fuentes lo usan para evitar un cambio de fuente para cada número romano mientras mantienen una buena tipografía.
La existencia de un carácter para XII y no para XIII implica que hay varias codificaciones diferentes del mismo número, lo que genera dificultades en la búsqueda de texto: si escribe sobre Luis XII y Luis XIII, probablemente escribirá XIII como X+I+ I+I, pero ¿escribirás XII como un solo carácter? ¿O como X+I+I para tener una visualización consistente con XIII? No hay una sola respuesta buena a esta pregunta cuando se usan los caracteres de números romanos, y es por eso que el consorcio Unicode recomienda usar las letras latinas cuando sea posible y no los números.
Editar: agregó la afirmación TL;DR al principio
Desde una perspectiva de cómo se ve, puede que no haya mucha diferencia. Entonces, si publica solo material impreso, entonces no hay diferencia, excepto en algunas fuentes, como señala Wrzlprmft en su excelente respuesta.
La diferencia semántica es enorme. Al usar números romanos, queda muy claro que estás hablando del número 5 en lugar de la letra V. Seguro que se ven iguales, pero significan diferente. Eso significaría que el motor de búsqueda podría tener una mayor probabilidad de encontrar "XX marca V" cuando busca "XX versión 5".
De hecho, la razón por la que algunas cosas funcionan mal es porque no incrustamos información semántica. De hecho, el mundo sería un lugar mejor si lo hiciéramos. Por lo tanto, usar el significado semántico correcto es casi lo mismo que usar estilos en un procesador de textos en lugar de diseñarlos manualmente. Hay poca diferencia en el lado humano, pero un gran poder en la automatización.
Los creadores de fuentes realmente no los usan porque no se usan con mucha frecuencia. Pero al usar estos, podría obtener losas de números romanos en las letras que las diferencian del texto. Por lo tanto, la función está infrautilizada porque es un uso raro. Las fuentes realmente no implementan todo, ni deberían hacerlo. Al usarlos, se beneficiaría si estuvieran presentes.
Todo esto es ciertamente un problema del tipo del huevo y la gallina. Si las personas no usan los rangos de caracteres especiales, no se harán concesiones especiales para esos rangos. Por lo tanto, la fuente no admitirá literales romanos de estilo especial, porque hacerlo sería desperdiciar el esfuerzo en características que nadie usa. Lo mismo se aplica a la búsqueda: si nadie usa literales romanos, ningún motor de búsqueda encontrará literales romanos y la semántica se perderá. La semántica sufre por no adoptar el significado semántico correcto. Esto mismo ciertamente se aplica a una gama más amplia de caracteres Unicode.
En cuanto a la complejidad de entrada, sí, la mayoría de los usuarios no pueden escribir caracteres extendidos, pero eso no es excusa para que una persona con conocimientos no lo haga si tiene sentido. Si nadie mejora las cosas, nunca se logrará ningún progreso. Diablos, incluso Word tiene modos para escribir alfa escribiendo /alfa. Así que realmente no hay ninguna razón por la que no pueda haber una manera fácil de etiquetar números o incluso sugerirlos automáticamente como tales. Nuevamente, si nadie hace esto, nunca obtendrá una adopción más generalizada.
<compat>
equivalentes a las secuencias correspondientes de letras latinas, lo que sugiere que la única razón por la que están en Unicode es la compatibilidad de ida y vuelta con algunos conjuntos de caracteres heredados (probablemente CJK) que los tenían. Por lo general, estos caracteres no deben usarse, excepto para documentos de ida y vuelta fieles creados en codificaciones heredadas.
Super gato
joojaa
Wrzlprmft
Super gato
Wrzlprmft
Super gato
Wrzlprmft
Wrzlprmft
Super gato
Super gato
Super gato
Wrzlprmft
Wrzlprmft