らんだむな記憶

blogというものを体験してみようか!的なー

vrt2

Ken Lunde 🐬 on Twitter: "知っているのはMS Wordだけです。実はOpenType/CFFの場合にはvrt2は必要です。 QT @moji_memo: vrt2を使うアプリってどんなのがあるんですか? たとえばInDesignは使いませんよね。"
悲しい・・・

AFDKO “features” File Tips & Tricks, Part 2: GSUB Features for Public ROSesのGSUBの構成では、

feature vert {
  substitute \634 by \7887;
  substitute \635 by \7888;
  ...
   substitute \8351 by \8352;
  substitute \8354 by \8355;
} vert;

feature vrt2 {
  # All 'vert' substitutions
  substitute \634 by \7887;
  substitute \635 by \7888;
  ...
  substitute \8351 by \8352;
  substitute \8354 by \8355;
  # Added Adobe-Japan1-3 pre-rotated forms
  substitute \1 by \8720;
  substitute \2 by \8721; 
  ...
  substitute \629 by \9353;
  substitute \9354 by \12870;
} vrt2;

のようになっている。vertの範囲については、縦組みになる場合に拗促音の小文字の位置移動や句読点の位置移動、㌍などの合字の組み替えなどが定義されている。これに加え、vrt2では、欧文などの回転字形への明示的な写像が記載されている。後者については本来はUAX #50*1に従った動作をアプリケーションがサポートするならフォント側で定義する必要のない情報であるので、vrt2は冗長である、ということか。

Registered features, u-z - Typography | Microsoft Docsを見ると、

Tag: 'vert'
Friendly name: Vertical Alternates

であるが、Registered features, u-z - Typography | Microsoft Docsを見ると

Tag: 'vrt2'
Friendly name: Vertical Alternates and Rotation

となっており、なるほど「# Added Adobe-Japan1-3 pre-rotated forms」の実装が“Rotation”部分なんだなと。でも、“Rotation”はUAX #50の担当ですねと。

しかし、Adobe-Japan1に従って文字セットを作ると、UAX #50対応アプリがグリフを回転するとしないとに関わらず“pre-rotated forms”が入ってきてしまうし、vrt2を使って動いているアプリがあるのなら、afdko/GSUB.c at e5a21653490860a1e6e7cd456917705f9d6a8e9f · adobe-type-tools/afdko · GitHubの動作を踏まえて、vrt2をそれなりに与えてあげないと“pre-rotated forms”の縦の送り幅が不正なものになってしまう。

Source Han Sans が UAX #50 compliant であるのは、それが Adobe-Identity-0 であるが故に既成の文字セットに縛られることもなく、“pre-rotated forms”を入れずに済むので、UAX #50に対応したアプリ向けの最低限の実装で済ませられたということなんだな。

Automatic Feature Code must include vert in vrt2 - Glyphs - Glyphs Forumにも関連するコメントがある。