Bug 163475 - Single-letter Kashida
Summary: Single-letter Kashida
Status: UNCONFIRMED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Kashida-Justification, Tatweel
  Show dependency treegraph
 
Reported: 2024-10-16 17:42 UTC by AvidSeeker
Modified: 2024-10-16 18:29 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Examples of single-letter tatweel (155.23 KB, image/jpeg)
2024-10-16 17:43 UTC, AvidSeeker
Details

Note You need to log in before you can comment on or make changes to this bug.
Description AvidSeeker 2024-10-16 17:42:09 UTC
Description:
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. 
- Start with the last word in a line, and apply stretching to the final letter in that word.
- However, if the letter is not "stretch-able" (e.g: Arabic Meem م), then look for middle-form Kaaf (ك) and stretch that
- If there is no Kaaf, apply the fallback Kashida by adding TATWEEL between letters.
- TATWEEL is usually added to the last two connected letters. These letters are not necessarily the last letters of the word since they could be in isolated form (e.g: "الماء" --> "المـــاء") Notice that "اء" are isolated (they cannot connect).
- Stretch-able letter forms are: كـ, ـن, ن, ت, ـت, س, ـس, ص, ـص, ـى, ى, ف, ـف (where س and ت also their dotted variants e.g: ش and ث). Also have a look on https://en.wikipedia.org/wiki/Arabic_alphabet#Table_of_basic_letters for reference.

Please check examples with images in this github issue: https://github.com/latex3/babel/issues/317

I attached a screenshot of the examples here.

Steps to Reproduce:
.

Actual Results:
.

Expected Results:
.


Reproducible: Always


User Profile Reset: No

Additional Info:
.
Comment 1 AvidSeeker 2024-10-16 17:43:02 UTC
Created attachment 197097 [details]
Examples of single-letter tatweel
Comment 2 Eyal Rozenberg 2024-10-16 18:29:35 UTC
I suggest we distinguish between the following:

1. The ability to render individual letters (like a ك or a ف) with some extension
2. The ability to indicate/force an extension of an individual letter (i.e. the equivalent of using the tatweel unicode character between letters, indicating the use of tatweel between them) - at the level of plain text and/or an ODF document
3. The user's ability to force tatweel of a letter - by typing or using something in the application UI
4. Justification algorithms which take into account the possibility of single-letter tatweel, in addition to inter-letter tatweel and other measures (spacing increases, slight narrowing of letters, hyphenation for scripts which support it etc.; see Laszlo Nemeth' talk in LOCon 2024 [1]).

Lets clarify what we already have, what we're missing, what we (or rather, developers) should focus on, and in what order. Right now this issue looks a little messy to me.


 [1] : https://events.documentfoundation.org/libreoffice-conference-2024/talk/QEDSF7/