![]() ![]() So, how is this done? Again, for brevity I’m omitting a huge amount of detail but in essence the process is quite easy to understand. To support high-quality Arabic typesetting, OpenType fonts contain the necessary positioning data to adjust the positions of vowels/markers to move them closer to, or away from, the base glyph over which they appear. OpenType features: anchor points (mark positioning) AThuge /ArialMT findfont 500 scalefont def The zero-width can be demonstrated very simply by amending the above PostScript to display just the vowels/markers: here you can see they all overlap because they do not move the current point after being displayed – because they have zero width. Clearly, this is very important because Arabic is a joined/cursive script – non-zero vowel widths would seriously interfere with joining the base Arabic glyphs. Vowels have zero widthĪ small but important point to note is that the Arabic vowels (and some other markers) should be designed to have zero width: when you render or place a vowel it does not affect the current horizontal point or position on the page. Spare a thought for the designers who labour for hours ensuring the positioning data works. However, the font designer still has to work very hard to put that positioning data into OpenType font to ensure that the myriad of combinations work well – not forgetting that Arabic letters have up to 4 shapes depending on their position in the word (initial, medial, final or isolated) and have a myriad of complex ligatures which also need similar positioning data. Of course you don’t need to do that – if you use high quality OpenType fonts all the necessary positioning data is contained in the font itself. ![]() ![]() Naturally, it would be crazy if you had to manually work out the positioning adjustments for each vowel/marker according to the glyph it is marking. So, in essence, “poor quality” typesetting of fully-vowelled Arabic can arise from typesetting processes/software that do not make any adjustments to the positions of vowels/markers with respect to the base glyph they are supposed to mark. (Glyph positions manually adjusted: ) show (Glyphs in their default positions: ) show AThuge /ArialMT findfont 75 scalefont def The following code initially typesets the word “yawmu” using the default glyph positions and then typesets the same glyphs by applying manual re-positioning/adjustments – moving the vowels/markers closer to the base glyphs and faking a bit of kerning too. Don’t worry about how I found the appropriate glyph names for use with the PostScript glyphshow operator. To begin to explain the problem, we can replicate the above scan with a little bit of hand-rolled PostScript code. So, I asked myself “Why”, little did I know that it would result in me being distracted away from studying Arabic to exploring typesetting it instead. As a small example, here’s a scan of the word “yawmu” (day) taken from a book that shall remain nameless:Įven to the casual observer it is clear that the marks above the glyphs are very distant from the base glyphs they are supposed to be marking. Often, lines of fully-vowelled Arabic text were so poorly typeset that it was hard to know which vowel belonged to which base glyph. It was not simply a question of being “picky”, or mere aesthetics, but it actually impacted on reading the material. In fact, some of it was atrocious, especially the placement of vowels/markers (damma, kasra, fatha, sukoon, shadda and so forth). I bought many books and began to notice that the quality of Arabic typesetting was extremely variable, even from the most respected publishers. ![]() And this happened to me whilst trying to teach myself some Arabic. One side-effect of using TeX is being distracted by the typesetting quality of materials you are reading. In addition, I’ve been rather loose in my definition of “vowels” and should be more precise to distinguish between damma/kasra/fathah and other markers such as shedda, sukoon and so forth. I simply cannot justify the time it would take to explore everything in full detail so I apologize for the brevity if there’s insufficient detail for many readers. This post could easily turn into the length of a small book if I covered all the background material that may be required for a full understanding. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |