言語ごとのパターン。TextStyle::language(BCP47)で引く。 完全一致 → 主言語("en-GB" なら "en")→ 既定の言語(setDefaultLanguage)の順に探す。
Hyphenator & forLanguage(const std::string &language)
言語にパターンを足す(無ければ作る)。最初に足した言語が既定になる
const std::string & defaultLanguage() const
const Hyphenator * find(const std::string &language) const
言語のパターン(無ければ既定の言語、それも無ければ nullptr)
void setDefaultLanguage(const std::string &language)
見つからなかったときに使う言語(空で無効)
void addException(const std::string &utf8Word)
例外(as-so-ciate のようにハイフンで区切った綴り)を 1 つ足す
std::vector< size_t > hyphenate(const std::u32string &word, int minLeft=2, int minRight=3) const
単語の分割位置。返るのは「先頭から k 文字目の後ろで切ってよい」の k(1 始まり、昇順)。 文字数は UTF-32 の符号位置で数える
size_t addPatterns(const std::string &utf8)
TeX のパターンを読む。\patterns{ ... } と \hyphenation{ ... } のブロック、 または 1 行 1 パターンの素のリストを受け付ける(% から行末まではコメント)
size_t addPatternFile(const std::string &path)
ファイルから読む(見つからなければ 0)
size_t patternCount() const
text/char_class — JLReq の文字クラス
constexpr char32_t kSoftHyphen
ソフトハイフン