Contents

Vectors, Logos and Things That Get Printed

Lesson 24 of 73. Sign in to keep your place.

Module 3 · Type, which is also vector

Devanagari, Arabic, and the scripts that break

10 min read

The only safe order for a complex scriptSet it liveReal words, real font,real sizeA reader checksSomebody who reads thescript, on screenOutlineOnly now, and theshaping is frozenCompareOutlined against live,letter by letterOutlining freezes whatever the shaping engine produced. After step three the file holds shapes ratherthan characters, so a wrong matra can no longer be proofread by anybody, in any application, ever.
Outlining freezes whatever the shaping engine produced. After step three the file holds shapes rather than characters, so a wrong matra can no longer be proofread by anybody, in any application, ever.

Figure

Latin is the easy case

In Latin, a string of characters maps almost one-to-one onto a string of glyphs, left to right. Almost every text engine gets it right.

Most of the world’s scripts do not work that way, and the failures are specific and recognisable.

What shaping means

Between “the user typed these characters” and “draw these glyphs here” sits a shaping engine, which consults the font’s GSUB and GPOS tables and applies rules. For Devanagari the rules include:

  • Conjuncts. क + ् + ष becomes क्ष: one glyph, not three. There are hundreds of these and the font must contain them.
  • Reordering. The vowel sign ि is typed after its consonant and drawn before it. कि is stored as क then ि and rendered with the matra on the left.
  • Matra positioning. Vowel marks attach above, below, left or right, and their exact position depends on the consonant’s width and on whether a conjunct formed.
  • Reph. र followed by a virama moves to the top right of the following cluster as a small hook.

Arabic adds contextual forms (each letter has isolated, initial, medial and final shapes) plus right-to-left order and vertical stacking in some styles. Tamil, Kannada, Telugu, Bengali, Khmer and Thai each have their own rules.

HarfBuzz is the open-source shaping engine that does this correctly, and it is what LibreOffice, Firefox, Chrome, Android, Scribus and Inkscape 1.x use. Applications that use an older engine, or their own, get it wrong in visible ways.

The failures you will see

  • Boxes (□) or the missing-glyph rectangle: the font has no glyph for that character. Change the font.
  • Conjuncts split into separate letters with a visible virama: the shaping ran but the font lacks the conjunct, so it fell back to the explicit half-form. Change the font.
  • Matras in the wrong place, or detached: the engine did not reorder. This is an application problem, not a font problem.
  • Correct on screen, wrong in the PDF: the export path used a different engine from the editing view. This is the one that costs money, because it is invisible until the proof arrives.

The test you must actually run

Never test a complex script with placeholder text. Type the client’s real name, the real address, the real headline, in the real font, at the real size, and look at it.

Build a test string that exercises the hard cases. For Devanagari:

Text
क्ष त्र ज्ञ श्री हिन्दी कार्यालय द्वितीय पुस्तक

Those cover a three-consonant conjunct, a reph, a left-side matra and a below-base form. If all of them render correctly, the combination of font and application is sound. If any of them is wrong, you have found it in thirty seconds rather than after printing.

Outlining a complex script

This is where jobs are lost. Converting to curves freezes whatever the shaping engine produced. If the engine was wrong, you have now made the error permanent and undetectable: the file no longer contains characters anyone can proofread, only shapes.

So the order is:

  1. Render it.
  2. Have a native reader check it on screen, at size, before you outline anything.
  3. Outline.
  4. Check the outlined version against the live version, side by side, letter by letter.

Step 2 is not optional and it is not something you can do yourself unless you read the script. A wrong matra is not a typo a non-reader can see.

Font sources that work

  • Noto: Google’s family, covering essentially every script in Unicode, OFL, well-shaped.
  • Ek Type: Mukta, Baloo and others, designed for Devanagari and Gujarati first rather than Latin-first.
  • Indian Type Foundry / Fontshare: high-quality Indic and Latin.
  • Google Fonts’ Indic section: Hind, Rozha, Yantramanav, Tiro Devanagari.

Avoid legacy non-Unicode fonts entirely: Kruti Dev, Chanakya, Shree-Lipi and similar map Devanagari shapes onto Latin codepoints. Text set in them is not Devanagari at all; it is Latin letters wearing a costume. It cannot be searched, spellchecked, copied into anything, or converted without a mapping tool. A great deal of Indian government and legal material is still typed this way, and converting it is real paid work; tools like the free Unicode Converter scripts and several web converters handle the common mappings.

In each program

Inkscape 1.x and Scribus use HarfBuzz and are dependable. LibreOffice is dependable. Illustrator needs the World-Ready Composer enabled: Paragraph panel menu ▸ Middle Eastern & South Asian Composer; without it, Indic text will not shape. CorelDRAW’s support varies markedly by version and is the single most common source of broken conjuncts in Indian print work. Test your own version with the string above before you promise anybody anything.

Every lesson here is open. Your progress is recorded once you pass the Editing an Image exam.

Check your understanding

A Hindi wedding card renders correctly in the designer’s editing window, but the exported PDF shows the ि matra after its consonant rather than before it. The font contains every required glyph. Where is the fault?

Pick the one you would defend. Your answer stays private.

Next lesson · 8 minFigures, dashes and the characters nobody checks

Stuck on something?Ask Nazia, your AI tutor

How to cite: Addaly (2026) ‘Devanagari, Arabic, and the scripts that break’, in Vectors, Logos and Things That Get Printed. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/vector-and-print/complex-scripts (Accessed: 13 October 2026).