Tại sao tôi nên sử dụng các ký tự đặc biệt của Unicode cho các chữ số La Mã?


43

Điều này là để trả lời một câu hỏi phát sinh trong các nhận xét về câu hỏi này về các ký tự Unicode cho các chữ số La Mã:

Tại sao điều này cần thiết hoặc được ưa thích hơn so với cách gõ thông thường ai, ai-ai, ai-ai-ai, vee-ai, v.v.?

Để bắt đầu lại từ đầu, trong khối Biểu mẫu số của Unicode , tồn tại các điểm mã cho Chữ số La Mã thoạt nhìn trông rất giống với chữ Latin viết hoa tiêu chuẩn hoặc kết hợp của chúng (U + 2160 - U + 217F). Ví dụ, U + 2165 (Số La Mã Sáu) trông rất giống VI (Chữ viết hoa chữ Latinh V và Chữ cái viết hoa chữ Latinh I).

Vì vậy, câu hỏi đặt ra tại sao người ta không nên sử dụng cái sau để biểu diễn các chữ số đó và, ví dụ, loại Louis VIIthay vì Louis Ⅶ. Rõ ràng, việc không sử dụng các ký tự đặc biệt sẽ tránh được các vấn đề tương thích với các phông chữ không hỗ trợ chúng. Nhưng ngay cả khi tôi biết rằng văn bản sẽ được hiển thị với một phông chữ hỗ trợ các ký tự này, tại sao tôi phải bận tâm sử dụng chúng?

Câu trả lời:


56

Trong nhiều phông chữ, bạn thực sự sẽ tìm thấy hầu như không có sự khác biệt nào giữa việc sử dụng các ký tự Unicode cho các chữ số La Mã và chỉ cần soạn chúng từ các chữ cái Latinh. Ví dụ: các chương trình sau Louis VII(trên cùng) và Louis Ⅶ(dưới cùng, sử dụng mật mã cho chữ số La Mã) được hiển thị với FreeSans:

nhập mô tả hình ảnh ở đây

Ngoài một sự khác biệt nhỏ về khoảng cách, được cho là không cố ý, đầu ra là giống hệt nhau.

Đây là cùng một văn bản được kết xuất với DejaVu Sans:

nhập mô tả hình ảnh ở đây

Trong khi các nhân vật vẫn trông giống hệt nhau, có một sự khác biệt đáng kể về khoảng cách. Nó có thể là một vấn đề của hương vị cho dù sau này là thích hợp hơn cho chữ số La Mã, nhưng chắc chắn nó sẽ không phải là một lựa chọn tốt của k sâu cho tất cả các mũ thông thường.

Linux Libertine tiến thêm một bước:

nhập mô tả hình ảnh ở đây

Ở đây, các chữ số La Mã nhỏ hơn một chút so với chữ in hoa, do đó khớp với các chữ số Ả Rập của phông chữ. Quan trọng nhất, chúng được kết nối, tái tạo một tính năng thường được tìm thấy trong các chữ số La Mã vẽ tay.

Bây giờ, một số người vẫn có thể lập luận rằng không có bất kỳ cải tiến nào ở trên hoặc họ không đáng để nỗ lực. Vì vậy, đây là một trường hợp, khi không sử dụng các ký tự Unicode sẽ tạo ra kết quả khủng khiếp:

nhập mô tả hình ảnh ở đây

(Lưu ý rằng kích thước nhỏ của các chữ số phản ánh một số kiểu sắp xếp lịch sử thực tế.) Một cái gì đó tương tự có thể xảy ra đối với các tập lệnh hoặc phông chữ.

Nếu không có các điểm Unicode cụ thể cho các chữ số La Mã, việc giải quyết vấn đề sau chỉ có thể xảy ra với:

  • Sử dụng một tính năng OpenType phức tạp (hoặc tương tự) để cố gắng phát hiện xem một chuỗi các chữ in hoa có phải là một chữ số La Mã hay không. Điều này chắc chắn sẽ gây ra vấn đề với các từ cũng sẽ là một chữ số La Mã hợp lệ.

  • Sử dụng một tính năng OpenType đơn giản, cần phải được kích hoạt thủ công cho mỗi chữ số La Mã.

  • Sử dụng Khu vực sử dụng riêng của Unicode. Các vấn đề tương thích có thể xảy ra ngay cả khi chuyển đổi giữa hai phông chữ hỗ trợ cả chữ số La Mã.

Theo quan điểm của Unicode, sự khác biệt lớn về ngữ nghĩa giữa các chữ cái Latinh viết hoa và chữ số La Mã nên đã được sử dụng để mã hóa các chữ số La Mã riêng biệt.


Các chữ số La Mã đặt ra vấn đề gì khác với các từ viết tắt và chữ viết tắt, cả hai đều được xử lý đúng bằng cách có một phông chữ bao gồm một tập hợp các chữ hoa nhỏ? Tôi hy vọng rằng các kịch bản trong đó "VII" sẽ được hiển thị bằng cách sử dụng chữ hoa thay vì chữ nhỏ giống như các kịch bản trong đó "NATO" hoặc "PM" sẽ được hiển thị tương tự. Mặc dù có thể có cách tốt để kết nối các thanh ngang với "VII" nhưng không phải là "VIP", tôi không chắc chắn các thanh ngang nên được kết nối khi sử dụng chữ số trong văn bản .
supercat

Rất tốt thêm vào ngữ nghĩa mở rộng của bạn một chút nhưng nếu bạn muốn kết hợp trong câu trả lời của bạn, hãy thoải mái làm như vậy và xóa tôi.
joojaa

@supercat: Tôi không chắc chắn chính xác những gì bạn đang nhắm đến, nhưng theo kinh nghiệm của tôi, trong kiểu chữ hiện đại, chữ số La Mã luôn có kích thước chữ hoa, trong khi trong các ngôn ngữ khác tiếng Đức, có thể hiểu được sử dụng chữ hoa nhỏ cho chữ viết tắt. Trong kiểu chữ bảng đen, bạn sẽ sử dụng phông chữ La Mã cho chữ viết tắt của tất cả chữ hoa và chữ số La Mã, nhưng đôi khi bạn sẽ sử dụng chữ số La Mã nhỏ hơn (như trên) và trong một số trường hợp rất đặc biệt, bạn sẽ sử dụng chữ hoa màu đen.
Wrzlprmft

@Wrzlprmft: Tôi hy vọng các chữ số La Mã sẽ được in cùng kích cỡ với những thứ như "PM" hoặc "NATO"; trong một số bối cảnh, những thứ như vậy được in dưới dạng thủ đô kích thước đầy đủ, nhưng trong những bối cảnh khác làm cho chúng nổi bật quá nhiều. Nếu một phông chữ có một tập hợp các chữ in hoa có thiết kế, liên quan đến phần còn lại của phông chữ, phù hợp với "PM" hoặc "NATO", tôi sẽ nghĩ rằng nó cũng phù hợp với các chữ số La Mã.
supercat

@supercat: Đối với phông chữ La Mã thông thường, có (mặc dù người ta có thể tranh luận liệu đây có phải là điều tốt nhất để làm không). Nhưng những gì về phông chữ và phông chữ script? Ngoài ra, bạn kết luận gì từ đó?
Wrzlprmft

27

TL; DR Hiệp hội Unicode khuyến nghị sử dụng chữ cái Latinh nếu có thể và không phải là chữ số, trong đó bao gồm tính tương thích với kiểu chữ Đông Á.

Câu chuyện đầy đủ: (với sự biện minh của khẳng định trên)

Trừ khi bạn đang thực hiện một số kiểu chữ Đông Á, sử dụng các ký tự chữ số La Mã (không cổ) từ unicode (U + 2160 - U + 217F) là một hack.

Những ký tự này đã được đưa vào để tương thích với các tiêu chuẩn Đông Á tiền Unicode. Các ký tự này nằm dọc trong đó văn bản Đông Á được sắp chữ từ trên xuống dưới, trong khi thông thường, văn bản bằng các ký tự Latinh (ví dụ như tên) được viết sang một bên trong ngữ cảnh này.

Để trích dẫn phiên bản cuối cùng của tiêu chuẩn Unicode (v 7.0, chương 22, trang 20) :

Chữ số La Mã. Đối với hầu hết các mục đích, tốt hơn là nên soạn các chữ số La Mã từ các chuỗi các chữ cái Latinh thích hợp. Tuy nhiên, các biến thể chữ hoa và chữ thường của các chữ số La Mã đến 12, cộng với L, C, D và M, đã được mã hóa trong khối Biểu mẫu số (U + 2150..U + 218F) để tương thích với các tiêu chuẩn Đông Á. Không giống như các chuỗi chữ cái Latinh, các ký hiệu này vẫn đứng thẳng trong bố cục dọc. Ngoài ra, ở một số địa phương nhất định, các định dạng ngày nhỏ gọn sử dụng chữ số La Mã trong tháng, nhưng có thể mong đợi sử dụng một ký tự.

Vì vậy, về mặt lý thuyết, sự khác biệt giữa Chữ số La Mã và chữ cái là một vấn đề của văn bản phong phú, như chữ nghiêng, thay đổi phông chữ hoặc chữ ghép tùy chọn. Điều đó nói rằng, như @Wrzlprmft cho thấy, một số phông chữ sử dụng nó để tránh thay đổi phông chữ cho mỗi chữ số La Mã trong khi vẫn giữ một kiểu chữ tốt.

Sự tồn tại của một ký tự cho XII chứ không phải cho XIII ngụ ý rằng có một số mã hóa khác nhau có cùng một chữ số, dẫn đến khó khăn trong tìm kiếm văn bản: Nếu bạn viết về Louis XII và Louis XIII, bạn có thể sẽ viết XIII là X + I + Tôi + tôi, nhưng bạn sẽ viết XII như một nhân vật? Hoặc là X + I + I để có màn hình phù hợp với XIII? Không có câu trả lời tốt nào cho câu hỏi này trong khi sử dụng Ký tự số La Mã, và đó là lý do tại sao tập đoàn Unicode khuyên bạn nên sử dụng các chữ cái Latinh khi có thể chứ không phải là chữ số.

Chỉnh sửa: đã thêm xác nhận TL; DR vào đầu


9
" Hiệp hội Unicode khuyến nghị sử dụng các chữ cái Latinh khi có thể chứ không phải các chữ số." Điều này sẽ nổi bật hơn nhiều so với hiện tại.
Ixrec

1
Từ quan điểm ngữ nghĩa Unicode, đây là câu trả lời tốt nhất ở đây. Có thể có những lý do thực tế với một số phông chữ nhất định để thích các ký tự chữ số La Mã, và đó tất nhiên là một sự cân nhắc thiết kế đồ họa độc lập, nhưng về mặt ngữ nghĩa thì chúng luôn sai.
R ..

13

Từ góc độ của nó trông như thế nào, có thể không có nhiều sự khác biệt. Vì vậy, nếu bạn chỉ xuất bản tài liệu in thì không có gì khác biệt, ngoại trừ trong một số phông chữ như Wrzlprmft chỉ ra trong câu trả lời tuyệt vời của anh ấy.

Ngữ nghĩa là quan trọng

Sự khác biệt về ngữ nghĩa là rất lớn. Bằng cách sử dụng các chữ số La Mã, điều đó làm cho rõ ràng rằng bạn đang nói về số 5 thay vì chữ V. Chắc chắn chúng trông giống nhau, nhưng chúng có nghĩa khác nhau. Điều đó có nghĩa là công cụ tìm kiếm có thể có cơ hội tìm thấy "XX mark V" cao hơn khi bạn tìm kiếm "XX phiên bản 5".

Trong thực tế, lý do mà một số thứ hoạt động kém là vì chúng tôi không nhúng thông tin ngữ nghĩa. Thế giới thực sự sẽ là một nơi tốt hơn nếu chúng ta muốn. Vì vậy, sử dụng đúng ý nghĩa ngữ nghĩa cũng giống như sử dụng các kiểu trong trình xử lý văn bản so với kiểu dáng thủ công. Có rất ít sự khác biệt về kết thúc của con người, nhưng sức mạnh lớn trong tự động hóa.

Phông chữ nên tạo các chữ số La Mã khác nhau

Các nhà sản xuất phông chữ không thực sự sử dụng chúng vì chúng không được sử dụng thường xuyên. Nhưng bằng cách sử dụng chúng, bạn có thể có được các bảng số La Mã trên các chữ cái phân biệt chúng với văn bản. Vì vậy, tính năng này không được tận dụng vì nó là một cách sử dụng hiếm. Phông chữ không thực sự thực hiện mọi thứ, cũng không nên. Bằng cách sử dụng chúng, bạn sẽ có lợi nếu chúng có mặt.

Phần kết luận

Tất cả điều này chắc chắn là một vấn đề gà và trứng. Nếu mọi người không sử dụng các phạm vi ký tự đặc biệt thì sẽ không có phụ cấp đặc biệt nào cho các phạm vi đó. Vì vậy, phông chữ sẽ không hỗ trợ các chữ La Mã theo kiểu đặc biệt, bởi vì làm như vậy sẽ lãng phí công sức cho các tính năng không ai sử dụng. Áp dụng tương tự cho tìm kiếm: nếu không ai sử dụng chữ La Mã thì sẽ không có công cụ tìm kiếm nào tìm thấy chữ La Mã và ngữ nghĩa bị mất. Ngữ nghĩa bị ảnh hưởng bởi không chấp nhận ý nghĩa ngữ nghĩa đúng. Điều tương tự này chắc chắn cũng áp dụng cho một phạm vi rộng hơn của các ký tự Unicode.

Đối với độ phức tạp đầu vào, có, hầu hết người dùng không thể viết các ký tự mở rộng nhưng đó không phải là lý do để một người có kiến ​​thức bỏ qua làm như vậy nếu nó có ý nghĩa. Nếu không ai làm mọi thứ tốt hơn thì sẽ không có tiến bộ nào được thực hiện. Từ thậm chí từ có các chế độ để viết alpha bằng cách gõ / alpha. Vì vậy, thực sự không có lý do tại sao không thể dễ dàng gắn thẻ số hoặc thậm chí tự động đề xuất chúng như vậy. Một lần nữa nếu không ai làm điều này thì nó sẽ không bao giờ được áp dụng rộng rãi hơn.


Trên thực tế, một công cụ tìm kiếm trả về kết quả tốt hơn nhiều khi tìm kiếm "Louis VII" thay vì "Louis", vì trong thực tế, hầu hết nội dung được tạo ra với các công cụ không cho phép phân biệt ngữ nghĩa tốt như vậy.
xpereta

1
@xpereta có vì mọi người không quan tâm đến ngữ nghĩa. Tuy nhiên nếu họ sẽ thì bạn cũng dễ dàng khớp 7 cho các chữ số. Phần lớn sự thiếu chính xác trên thế giới là do mọi người không coi ot là quan trọng để chỉ ra sự khác biệt về ngữ nghĩa của mọi thứ một cách rõ ràng khi họ có thể dễ dàng làm như vậy. Máy tính thực sự không biết sự khác biệt ngay cả khi con người sẽ
joojaa

1
@joojaa Trong trường hợp này, nó có lẽ có liên quan nhiều hơn với thực tế rằng VII là thứ tự cường độ dễ gõ hơn. Tôi không chắc điều đó sẽ thay đổi.
Ixrec

Tôi sẽ mở rộng ở đoạn cuối một chút để kết thúc kết luận của bạn rằng việc sử dụng rộng rãi hơn các ký tự đặc biệt như thế này sẽ khuyến khích thực hiện phông chữ rộng hơn.
Nathan Tuggy 7/03/2015

2
Tôi mạnh mẽ đặt câu hỏi này về ngữ nghĩa. Các ký tự chữ số Unicode Roman <compat>tương đương với các chuỗi chữ cái Latinh tương ứng, điều này cho thấy mạnh mẽ rằng lý do duy nhất chúng có trong Unicode là vì khả năng tương thích khứ hồi với một số bộ ký tự kế thừa (có thể là CJK) có chúng. Các ký tự như vậy thường không nên được sử dụng ngoại trừ các tài liệu vấp tròn trung thực được tạo trong các bảng mã kế thừa.
R ..
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.