Fully Justifying Text for Arabic (and other) Poetry

Classic Days

Long ago, in the days of the Classic Mac OS, when Nisus Software Inc. first developed its tools for multilingual software, on the shores of the Pacific Ocean, we learned some interesting facts about Arabic poetry. Not only, unlike English and most other European languages, does Arabic not hyphenate words, in its poetic expressions in particular, Arabic “likes” to have its lines spread out to fill the entire space of the column. In most European languages this is accomplished by adding tiny amounts of space between words. However, in Arabic it is done by adding “kashidas” . Beginning in Nisus 3.4x we developed what we called the Full Justify Tab.

The Full Justify Tab of Nisus Writer Classic
The Full Justify Tab of Nisus Writer Classic

As is clear from the illustration above, the Arabic text above the little note “Full Justify Tab” is the same text as appears below. However the text below is controlled by the tab indicator. As you dragged the tab indicator on the ruler (inside the red ring) horizontally to the right or left, the text governed by it squeezed or stretched correspondingly.

Welcome to Mac OS X

The text engine provided by Mac OS X, which Nisus Writer Pro and Express use, does not support justified tabs. Our Arabic users have repeatedly requested that we do something to alleviate their pain.

Teamwork Leads to a Solution

With the helpful testing of Nisus Writer Pro user Kamran, our lead engineer Martin prepared a set of macros that solve the problem of justifying Arabic text.

The first step is to install the “fully justify” macros. You’ll only need to do this once. Here’s what to do:

1. Download the justification macros.
2. They come in a compressed archive, which you may need to double click in the Finder to expand.
3. Switch to Nisus Writer Pro (NWP).
4. Use the menu Macros > Load Macro.
5. In the open file dialog, choose the files you downloaded/expanded earlier (eg: “Justify Fully Arabic”). You can select all the macros at once. Click the “Open” button.

From now on these macros will always be available on your Macros menu and you can safely trash the files you download.

Once you’ve typed up some poetry:

An Arabic poem (before)
An Arabic poem (before)

1. Select the paragraphs of text you want to fully justify.
2. Use the menu Macros > Justify Fully Arabic.

When the macro is done running, your text should appear fully justified.

An Arabic poem (after)
An Arabic poem (after)

One final note: these macros work by inserting kashida characters into your writing. It may be that you later want to go back and edit what you’ve written- having these kashidas may make that awkward. To remove them select the relevant text and use the menu Macros > Justify Fully Arabic (remove kashidas).

A Gift for English Writers As Well

While he was working on the Arabic task, Martin was able to accomplish a similar task for English poetry. The zipped collection of macros contains two additional macros: Justify Fully English and Justify Fully English (remove spaces). William Shakespeare might have used them if he had been able to write using Nisus Writer Pro.

Sonnet 18 (before)
Sonnet 18 (before)

Sonnet 18 (after)
Sonnet 18 (after)

We hope that all your writing “nisus” will be a pleasure with Nisus Writer Pro.

5 Comments

  1. Philip Winchester

    Indeed a very useful Aid.
    I shall investigate further more.

  2. Nice to have keshidas back. However, it seems not to work on vocalized text (a lenghthener is added between final consonant and vowel, so the consonant takes on the medial shape). As poetry may often be vocalized, this is problematic. And, of course, the beauty of the keshida tab was that you could justify two hemistiches of a line into two “columns”. But certainly, it is nice as it is, to have something missing from old Nisus back.

  3. Saad

    This is very useful feature for us.
    But can we justify this in two columns?

  4. S

    what about viewing it in poetry site i have a problem and i can’t read the text at all :(

Leave a Reply

Your email address will not be published. Required fields are marked *