[HarfBuzz] Vertical Mongolian

Simon Cozens simon at simon-cozens.org
Fri Jul 10 07:40:23 PDT 2015


Hello!

I don't know if the following is a font problem or a Harfbuzz problem.

Mongolian is written top to bottom - like Japanese but with the columns
left to right. It's also joined with initial, medial and final forms
like Arabic.

When I shape Mongolian text with direction set to LTR, I get the joining
characters:

> text = "ᠲᠣᠣᠷ"
> SILE.shaper:shapeToken(text, SILE.font.loadDefaults({ font =
"Mongolian White", direction = "LTR" }))
{
  {
    codepoint = 589,
    depth = -1.2744140625,
    height = 6.1181640625,
    name = "uni1832.E914_t.init",
    width = 4.8828125,
  },
  {
    codepoint = 373,
    depth = -0.8447265625,
    height = 4.39453125,
    name = "uni1823.E83C_o.medi",
    width = 2.9296875,
  },
  {
    codepoint = 373,
    depth = -0.8447265625,
    height = 4.39453125,
    name = "uni1823.E83C_o.medi",
    width = 2.9296875,
  },
  {
    codepoint = 618,
    depth = -0.4052734375,
    height = 6.73828125,
    name = "uni1837.E931_r.fina",
    width = 3.41796875,
  },
}

When I shape the text with direction set to TTB, then I get *isolated*
forms:

{
  {
    codepoint = 274,
    depth = 0,
    height = 9.08203125,
    name = "uni1832.t",
    width = 4.8828125,
  },
  {
    codepoint = 259,
    depth = 0,
    height = 9.08203125,
    name = "uni1823.o",
    width = 6.103515625,
  },
  {
    codepoint = 259,
    depth = 0,
    height = 9.08203125,
    name = "uni1823.o",
    width = 6.103515625,
  },
  {
    codepoint = 279,
    depth = 0,
    height = 9.08203125,
    name = "uni1837.r",
    width = 3.1689453125,
  },
}

Obviously what I would like to get is vertical positioning of joined-up
Mongolian. I could set the direction to LTR and then rotate everything,
but that feels like a hack. I'm typesetting TTB, so the direction should
be TTB.

Noto Sans Mongolian also shows the same behaviour. Is this expected?


More information about the HarfBuzz mailing list