(no digest yet with yesterday's posts... I hope one arrives soon)

Eli, I realize that (except for Chinese, Japanese, and possibly Korean), text is normally written horizontally (LTR or RTL). Vertical text is for special uses such as signage and advertising. (As an aside, my LTR example text is a play and short-lived TV sitcom from 1975 about the residents of a seedy hotel named The Hotel Baltimore. The sign's "e" in "Hotel" was burned out and never fixed, leaving the sign a vertical "HOT L BALTIMORE". Maybe there's a reason it only lasted half a season!) There's not much call for vertical text in most languages, but I'd like to know if it's being done correctly.

Anyway, I'm still not sure what the convention is for writing vertical text in RTL languages. There's not much discussion of this online, except for "I want to get a Hebrew tattoo down my spine saying 'daughter of Jehovah' -- which way will read correctly?" The convention for LTR scripts is to start at the top and grow downwards, which is like taking the original LTR coordinate system and rotating it 90 degrees clockwise (with individual letters rotated back). The next line (column) is to the LEFT. For RTL, my sources suggest that the last letter input (first one read) should be at the TOP of the text column, which means rotating the original horizontal coordinate system 90 degrees COUNTERclockwise. For TTB of a RTL script, it is like a clockwise rotation, with the first input letter at the top, but reading from the bottom/original right. Embedded LTR text is read TTB. For BTT, it is like a COUNTERclockwise rotation, with the first input letter at the bottom, reading from top/original right. Unfortunately, this leaves embedded LTR text backwards from what would be expected, but the direction of growth is now correct (upwards). Also, for BTT, is it correct that the next line (column) is to the RIGHT? That would match the rotated horizontal coordinate system. What I think I'm seeing here is that setting the direction of the text simply overrides whatever HarfBuzz would do with the natural/best guess ordering and orientation, and is outputting the characters TTB or BTT in the original input order. Is that how it's supposed to work?

I have a PDF of this, using HarfBuzz::Shaper: https://www.catskilltech.com/HarfBuzz.pdf. Vertical text is on page 2. I show Hebrew and Arabic (I don't think the text is real words... don't sweat it) in both TTB and BTT orientations. Which is considered correct, or do both have problems? You say that shop signs in Hebrew read vertically from the bottom, which would be more or less TTB? Although, I think the word order and direction of growth may be wrong... Hebrew and Arabic are both bidirectional, so I want to get embedded LTR text oriented correctly.

Finally, I tried some English (LTR Latin) text vertically with "field" in it, WITHOUT explicitly turning off ligatures (-liga), and it kept the "f" and "i" separate (good)... does this mean that HarfBuzz officially knows not to do ligatures with vertical text? Kerning doesn't appear to be a problem, either.

Thanks, Phil

On 7/12/2020 11:14 AM, Eli Zaretskii wrote:
From: Phil M Perry <[email protected]>
Date: Sun, 12 Jul 2020 10:15:31 -0400

Now, if I specify TTB direction, what should I see? Likewise, what
should BTT direction show? I know very little about RTL/bidi scripts,
and googling for examples gives ambiguous and conflicting information. I
realize that most scripts and languages are rarely written vertically,
except for East Asian (CJK) languages, but it would be nice to know that
the code is handling them correctly.

If you want to write Hebrew vertically, would you choose TTB or BBT?
Hebrew is not written vertically, no more than English or German are.
So if you must write it vertically, I guess TTB would be the preferred
layout, like with Latin scripts.  For example, that's how
vertically-laid-out shop signs are made.

_______________________________________________
HarfBuzz mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to