w3c / alreq

Documenting gaps and requirements for support of Arabic Script languages on the Web and in eBooks.
Other
62 stars 31 forks source link

Single-letter Kashida #281

Open avidseeker opened 4 weeks ago

avidseeker commented 4 weeks ago

Currently, applying Kashida is by adding "ـ" U+0640 ARABIC TATWEEL between letters. However, a more elegant way is by stretching a specific letter within the word. This method is popular with old scriptures, calligraphy, and handwritten messages.

Here is a rough estimate of the algorithm for the improved Kashida.

Examples: (Taken from KFGQPC print of Quran).

kaaf-alif-maqsura-kashida

Single-letter Kashida applied to initial form "كـ" and final "ـى"

kaaf-baa-kashida

Applied to "ـكـ" and "ـب" in "الكتب"

kaaf-faa-kashida

Applied to "كـ" and "ـف" in "كيف"

kaf-kashida

Applied to "ـكـ"

regular-kashida

Applied to last two connected letters in "الناس" (notice that س and ا are not connected) and last two connected letters in "عظيم".

image

Here is an example for a line. The algorithm works by

  1. Choose the last word in the line (الذين). Apply stretching to the last letter "ن".
  2. Next, to fill more space, look for a initial form "كـ" or medial form "ـكـ", which is in this case "شاكر" then stretch it.
  3. Next, to fill more space, look in the list for stretch-able letters, and stretch "ن" in "فإن".
  4. Done. Notice how the priority goes for single-letters rather than filling in between letters. This is a more beautiful usage of Arabic calligraphy.