Re: Bidi paragraph direction in terminal emulators

From: Eli Zaretskii via Unicode <unicode_at_unicode.org>
Date: Sat, 09 Feb 2019 21:13:29 +0200

> From: Egmont Koblinger <egmont_at_gmail.com>
> Date: Sat, 9 Feb 2019 20:03:21 +0100
> Cc: Richard Wordingham <richard.wordingham_at_ntlworld.com>,
> unicode Unicode Discussion <unicode_at_unicode.org>
>
> Let's suppose a utility outputs these two lines of text:
> abcdefg|
> complex|
>
> whereas "abcdefg" are these English letters themselves, but "complex"
> is a word of some language requiring complex script rendering, taking
> up 7 logical cells (because that's what wcwidth() says). Also, "|" is
> the pipe symbol, or a vertical box drawing line, whatever.
>
> Now let's assume that harfbuzz tells you that the desired width for
> rendering this "complex" word is 5.3 times the width of the character
> cell. Or 8.6 times it. How to proceed? How will the "|" bars align up,
> and thus mc's two-panel layout, tmux's vertical split etc. not fall
> apart? In the latter case, when the width requested by harfbuzz is
> bigger than the designated width, what to with characters that "fall
> off" at the right edge of the terminal?

That's the application's problem, not the terminal's. An application
that wants its column to line up _and_ wants to support complex text
scripts will need to move cursor to certain coordinates, not to assume
that 7 codepoints always take 7 columns on display. Or it will have
to tell the users to use specific fonts, which are known to provide
guarantees that this happens.

How is this different from using variable-pitch fonts?
Received on Sat Feb 09 2019 - 13:14:07 CST

This archive was generated by hypermail 2.2.0 : Sat Feb 09 2019 - 13:14:07 CST