1#ifndef TYPESET_INL_ANNOTATION_HPP
2#define TYPESET_INL_ANNOTATION_HPP
inl/annotation — 行内に組み込む注記
@ Emphasis
圏点(縦組みでは親文字の右、横組みでは上)
@ Indent
途中からの字下げ: 行頭が [start, end) にある行を indentEm だけ下げる(KAG3 [indent])
@ Warichu
割注(行内に 2 行の子ブロックを組む)
@ Jidori
字取り(指定 em 数へ均等割り付け)
@ MoveTo
行内の絶対位置: start の文字を行頭から position(pt)の位置から始める(KAG3 [locate])
@ TateChuYoko
縦中横(半角数字等を 1em 角に正立で収める。横組みでは無視)
@ Group
グループルビ。親文字列全体に 1 つのルビを中付きで配置する
@ Jukugo
熟語ルビ。text を | で区切って親文字 1 文字ずつに対応させるが、はみ出す部分は 熟語内の隣の親文字に掛ける(JLReq 3.3.8)。全部が親に収まればモノルビと同じ、 熟語全体でも収まらなけ...
@ Mono
モノルビ。text を | で区切って親文字 1 文字ずつに対応させる
char32_t emphasisMarkCodePoint(EmphasisMark mark)
static Annotation warichu(size_t start, size_t end, std::u16string text, float scale=0.5f)
float offset
ルビ・圏点と親文字の間隔(親文字の em)。既定はベタ付け
float scale
ルビ・割注・圏点の文字サイズ倍率
static Annotation moveTo(size_t start, Pt position)
行内の絶対位置。start の文字を行頭から position(pt)から始める(手前なら空きを入れ、既に超えていれば何もしない)
static Annotation emphasis(size_t start, size_t end, EmphasisMark mark=EmphasisMark::Sesame, float scale=0.5f, bool oppositeSide=false)
static Annotation ruby(size_t start, size_t end, std::u16string text, RubyMode mode=RubyMode::Group, float scale=0.5f)
bool oppositeSide
圏点を注記側の反対(縦組み: 左、横組み: 下)に付ける
static Annotation indent(size_t start, size_t end, float indentEm)
途中からの字下げ。行頭が [start, end) にある行を indentEm 下げる(end は npos で段落末まで)
Pt position
MoveTo の位置(pt)
float indentEm
Indent の字下げ(em)
std::u16string text
ルビ文字列 / 割注の内容
static Annotation jidori(size_t start, size_t end, float em)
static Annotation tateChuYoko(size_t start, size_t end)