打印阿拉伯字符会增加小的视觉差异并插入其他unicode字符

时间:2016-09-29 18:30:25

标签: unicode printing arabic postscript

所以我打印这个阿拉伯语文本(“第一方第二方”): لطرفالأولالطرفالثانى

有时打印方式如下:لطرفالأولالطرفالثانى

转换为unicode的'原始'文本读取: \ u0644 \ u0633 \ u0621 \ u0621 \ u0624 \ u0623 \ u0648 \ u0644 \ u0644 \ u0644 \ u0604 \ u0604 \ u0624 \ u0624 \ u0624 \ u0626 \ u0624 \ u0626 \ u0626 \ u0646 \ u0646

打印作业中的数据为: \ ufedf \ u0633 \ u0641 \ u0627 \ ufef7 \ u0648 \ u0644 \ u0627 \ ufedf \ u0637 \ u0631 \ u0641 \ u0627 \ ufedf \ ufe9b \ ufe8e \ ufee7 \ ufef0

那为什么会这样呢?我可以搜索打印作业数据并对某些单词进行操作,但似乎无法理解为什么打印数据会因阿拉伯语言而发生变化。

视觉上可检测到的差异也很小: Visually detectable differences 谢谢大家!

1 个答案:

答案 0 :(得分:1)

阿拉伯语的Typsetting与Roman脚本不同,特别是它处理连字和对齐的方式。要将其置于上下文中,请考虑英语,它具有一些用于排版组合的连字,例如ff,fi和ffi,它们通常在输出中呈现为单个字符。

下面是三个字符ffi,呈现为单个连字符(\ uFB03)。

Three characters ffi rendered as a single character ligature.

这是一篇关于连字的文章。

https://en.wikipedia.org/wiki/Typographic_ligature

为了证明,罗马脚本通常插入空格或连字符(以及字距调整)。使用阿拉伯语时,使用“kashidas”来拉伸笔画的宽度会更令人愉悦,这些额外的字符会导致拉伸的出现。

通常,排版文本中使用的Unicode字符数可能多于或少于原始文本。

如果您有兴趣,请参阅以下几个阿拉伯语参考资料。

https://www.tug.org/tugboat/tb27-2/tb87benatia.pdf

https://design.tutsplus.com/tutorials/creative-arabic-calligraphy-kashida-tajim-and-tashkil--cms-23240