W wielu czcionkach rzeczywiście nie ma prawie żadnej różnicy między używaniem znaków Unicode dla cyfr rzymskich a po prostu tworzeniem ich ze zwykłych liter łacińskich. Na przykład następujące przedstawienie Louis VII
(u góry) i Louis Ⅶ
(u dołu przy użyciu współrzędnych kodowych dla cyfr rzymskich) renderowane za pomocą FreeSans:
Poza niewielką różnicą w odstępach, która prawdopodobnie nie była zamierzona, dane wyjściowe są identyczne.
Oto ten sam tekst renderowany w DejaVu Sans:
Podczas gdy postacie nadal wyglądają identycznie, istnieje znaczna różnica w odstępach. Może to być kwestia gustu, czy ta ostatnia jest lepsza od cyfr rzymskich, ale z pewnością nie byłby dobrym wyborem kerningu dla zwykłych wielkich liter.
Linux Libertine idzie o krok dalej:
W tym przypadku cyfry rzymskie są nieco mniejsze niż duże litery, co odpowiada cyfrom arabskim czcionki. Co najważniejsze, są one połączone, odtwarzając cechę często występującą w ręcznie narysowanych cyfrach rzymskich.
Teraz niektórzy nadal mogą argumentować, że nie ma żadnych ulepszeń w powyższym lub że nie są warte wysiłku. Oto przypadek, w którym nieużywanie znaków Unicode przyniesie okropne wyniki:
(Zwróć uwagę, że niewielki rozmiar cyfr odzwierciedla niektóre historyczne składy.) Coś podobnego może wystąpić w przypadku czcionek skryptowych lub kaligraficznych.
Bez określonych punktów Unicode dla cyfr rzymskich rozwiązanie tego drugiego problemu byłoby możliwe tylko przy:
Korzystanie ze złożonej funkcji OpenType (lub podobnej), która próbuje wykryć, czy sekwencja wielkich liter jest cyfrą rzymską. To nieuchronnie spowoduje problemy ze słowami, które również byłyby prawidłową cyfrą rzymską.
Za pomocą prostej funkcji OpenType, którą należy ręcznie aktywować dla każdej cyfry rzymskiej.
Korzystanie z obszaru prywatnego użytku Unicode. Problemy ze zgodnością prawdopodobnie pojawią się nawet przy przełączaniu między dwiema czcionkami obsługującymi cyfry rzymskie.
Z punktu widzenia Unicode ogromna różnica semantyczna między dużymi literami łacińskimi a cyframi rzymskimi powinna już wystarczyć do oddzielnego kodowania cyfr rzymskich.
TL; DR Konsorcjum Unicode zaleca, w miarę możliwości, stosowanie litery łacińskiej, a nie cyfr, które zostały uwzględnione w celu zapewnienia zgodności z typografią wschodnioazjatycką.
Pełna historia: (z uzasadnieniem powyższego stwierdzenia)
O ile nie robisz typografii wschodnioazjatyckiej, używanie (niearchaicznych) cyfr rzymskich z Unicode (U + 2160 - U + 217F) jest włamaniem.
Te znaki zostały uwzględnione w celu zapewnienia zgodności ze standardami wschodnioazjatyckimi sprzed Unicode. Znaki te pozostają pionowe tam, gdzie tekst wschodnioazjatycki jest składany od góry do dołu, podczas gdy zwykle tekst w alfabecie łacińskim (np. Imiona) jest pisany w tym kontekście bokiem.
Aby zacytować ostatnią wersję standardu Unicode (v 7.0, rozdz. 22, s. 20) :
Teoretycznie więc rozróżnienie między cyframi rzymskimi i literami jest kwestią tekstu sformatowanego, takiego jak kursywa, zmiana czcionki lub opcjonalne ligatury. To powiedziawszy, jak pokazuje @Wrzlprmft, niektóre czcionki używają go, aby uniknąć zmiany czcionki dla każdej cyfry rzymskiej, zachowując dobrą typografię.
Istnienie znaku dla XII, a nie dla XIII, oznacza, że istnieje kilka różnych kodowań tej samej cyfry, co prowadzi do trudności w wyszukiwaniu tekstu: jeśli piszesz o Ludwiku XII i Ludwiku XIII, prawdopodobnie napiszesz XIII jako X + I + Ja + ja, ale czy napiszesz XII jako pojedynczy znak? Czy jako X + I + I, aby mieć spójny obraz z XIII? Nie ma jednej dobrej odpowiedzi na to pytanie podczas korzystania z cyfr rzymskich i dlatego konsorcjum Unicode zaleca używanie liter łacińskich, jeśli to możliwe, a nie cyfr.
Edit: dodał TL; DR twierdzenie na początku
źródło
Z perspektywy tego, jak to wygląda, może nie być dużej różnicy. Więc jeśli publikujesz tylko materiały drukowane, to nie ma różnicy, z wyjątkiem niektórych czcionek, co Wrzlprmft wskazuje w swojej doskonałej odpowiedzi.
Semantyka jest ważna
Różnica semantyczna jest ogromna. Używając cyfr rzymskich, wyraźnie widać, że mówisz o cyfrze 5 zamiast litery V. Jasne, że wyglądają tak samo, ale oznaczają inaczej. Oznaczałoby to, że wyszukiwarka może mieć większą szansę na znalezienie „XX znak V” podczas wyszukiwania „XX wersja 5”.
W rzeczywistości przyczyną niektórych problemów jest to, że nie osadzamy informacji semantycznych. Świat byłby rzeczywiście lepszym miejscem, gdybyśmy to zrobili. Zatem użycie właściwego znaczenia semantycznego jest mniej więcej takie samo, jak użycie stylów w edytorze tekstu w porównaniu ze stylem ręcznie. Różnica po ludzku jest niewielka, ale duża automatyzacja.
Czcionki powinny tworzyć różne cyfry rzymskie
Twórcy czcionek tak naprawdę ich nie używają, ponieważ nie są bardzo często używane. Ale używając ich, możesz uzyskać tablice z cyframi rzymskimi na literach, które odróżniają je od tekstu. Tak więc ta funkcja nie jest w pełni wykorzystywana, ponieważ jest rzadka. Czcionki tak naprawdę nie implementują wszystkiego, podobnie jak nie powinny. Korzystając z nich, skorzystasz, jeśli są obecne.
Wniosek
To z pewnością problem z kurczakiem i jajkiem. Jeśli ludzie nie używają zakresów znaków specjalnych, nie zostaną wprowadzone żadne specjalne ograniczenia dla tych zakresów. Dlatego czcionka nie obsługuje specjalnie zaprojektowanych literałów rzymskich, ponieważ byłoby to marnowaniem wysiłku na funkcje, których nikt nie używa. To samo dotyczy wyszukiwania: jeśli nikt nie używa literałów rzymskich, żadna wyszukiwarka nie znajdzie literałów rzymskich i semantyka zostanie utracona. Semantyka cierpi z powodu nieprzyjęcia odpowiedniego znaczenia semantycznego. To samo z pewnością dotyczy również szerszego zakresu znaków Unicode.
Jeśli chodzi o złożoność wprowadzania danych, tak, większość użytkowników nie może pisać znaków rozszerzonych, ale nie jest to wymówka dla znawcy, aby pomijać takie znaki, jeśli ma to sens. Jeśli nikt nie poprawi sytuacji, nigdy nie nastąpi postęp. Piekło nawet słowo ma tryby pisania alfabetu przez wpisanie / alpha. Tak naprawdę nie ma powodu, dla którego nie byłoby łatwego sposobu oznaczania cyfr, a nawet automatycznego sugerowania ich jako takich. Ponownie, jeśli nikt tego nie zrobi, to nigdy nie uzyska szerszej adopcji.
źródło
<compat>
równoważne odpowiednim sekwencjom liter łacińskich, co zdecydowanie sugeruje, że jedynym powodem, dla którego są one w Unicode, jest kompatybilność w obie strony z niektórymi starszymi (prawdopodobnie CJK) zestawami znaków, które je miały. Zasadniczo takich znaków nie należy używać, z wyjątkiem wiernych dokumentów w obie strony utworzonych w starszych kodowaniach.