Free

Free coded apps to suit all. No sign up, no email, usable offline, updates when I can, feedback welcome. Send feedback

How-to

How to write vertical, Arabic or Chinese text

Paint by Zaweba sets vertical type, right-to-left Arabic with joining, Indic shaping and CJK text with upright characters and tate-chu-yoko.

How to write vertical, Arabic or Chinese text

Vertical text and Arabic or Chinese script are all handled by the Type tools in Paint by Zaweba. The Vertical Type tool runs columns from top to bottom and from right to left, with Chinese, Japanese and Korean characters kept upright and tate-chu-yoko for short runs set across the column. Arabic is written right to left with its letters joined correctly, Indic scripts such as Devanagari are shaped properly, and mixed directions follow the Unicode bidi algorithm.

Many simple editors get these wrong. Arabic letters come out in isolated forms and reversed, Hindi vowel signs land in the wrong place, and vertical text is just a horizontal line rotated on its side. Paint does the shaping itself, so what you type is what you see.

Writing vertical text

Pick the Vertical Type tool and click on the canvas. Each line becomes a column, and new columns are added to the left, which is the traditional reading order for Japanese and Chinese. Chinese, Japanese and Korean characters stand upright. Latin letters and numbers in the middle of a column can be set with tate-chu-yoko, where a short run such as a two digit number sits across the column so it can be read without tilting your head.

Vertical type isn't only for East Asian text. A tall narrow banner, a book spine or a sign down the side of a poster can use it with English too, stacking letters one above another.

Arabic, Hebrew and other right-to-left scripts

Type Arabic as you normally would. Paint applies Arabic joining, so each letter takes its initial, middle, final or standalone form depending on its neighbours, and the line runs right to left. When you mix in English words or numbers, the Unicode bidi algorithm puts each run in the right order, and embeddings and isolates are respected if your text uses them.

Set the paragraph alignment to the right for a block of Arabic text so ragged edges fall on the left, which is what readers expect.

Hindi and other Indic scripts

Devanagari and other Indic scripts need shaping too: vowel signs attach to consonants, some combine into conjuncts, and marks can appear before the letter they belong to even though they are typed after it. Paint handles that shaping, so words in Hindi, Marathi and similar languages look right without any tricks.

Getting a good result

The font has to contain the characters. If you see empty boxes, the font you've chosen doesn't cover that script, so switch to one that does. Windows comes with fonts for most major scripts, and any font installed in Windows can be used.

CJK spacing rules are supported too, which keep punctuation and spacing between characters looking right in Chinese and Japanese. Leave them to do their job rather than adding spaces by hand.

There's also a way to use text as a selection. The Horizontal and Vertical Type Mask tools make a selection in the shape of the text you type, so you can fill characters with a photo or cut them out of a background. That works for any script the font supports.

If you need the text as outlines, for example to send to a printer that may not have the font, use Convert to Shape on a copy of the layer. SVG export also writes text as outlines.

Paint by Zaweba is a free, offline image editor for Windows, and these script features are built into its normal Type tools, with nothing extra to download.