dlig

合字

目次

  1. 意味
  2. いろいろな合字
  3. 連字
  4. OpenType 合字
    1. 合字グリフ
    2. フォント機能
      1. ccmp
      2. calt
      3. clig
      4. dlig
      5. liga
      6. 誤適用
  5. 合字フォント
  6. 合字・連綿の有無の記述
  7. Web における合字
  8. 演算子合字
  9. メモ

意味#

[33] を組み合わせた(ようにみえる)ものは幅広く合字と呼ばれます。

いろいろな合字#

[3] 合字

連字#

[28] 活字時代、貴人の名前に関する連字の慣習:

[29] 伊豆大島独立構想と1946年暫定憲法, NetCommons, , , https://ngu.repo.nii.ac.jp/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=49&item_id=165&item_no=1 #page=25

実際,『島の新聞』に対しても検閲の目は 厳しく,「天皇「陛下」を「陸下」と誤って印 刷した」ことにより,一ヶ月の休刊処分を受け たという

OpenType 合字#

合字グリフ#

[16] OpenTypeグリフ級 2 は、 (ごう) () グリフ (ligature glyph) を表します。

[17] 合字グリフ合字を表すグリフです。

[18] 合字グリフ基底グリフと似ていますが、 基底グリフが1組分の添付点しか指定できないのに対し、 合字グリフには複数組分の添付点が指定できます。 グリフ位置決定

[20] どの組が選ばれるか 文字のレンダリング

[19] 合字上のキャレット位置 キャレット, 合字キャレットリスト, 文字のレンダリング

[22] 合字グリフanchor point の記述においては、 データ構造上の構成部品 (component) の順序は、 文章 (text) 書字方向 (writing direction, logical direction) によるとされます。 すなわち、例えば左横書きなら左から右の順とします。 >>21

[23] これは1つの合字グリフは1つの書字方向を内包するという前提になっていますが、 それって必ず成り立つものなのですかね。
[24] 必ずしもグリフ列全体 (text) の書字方向と同じである必要はなく、 当該グリフ内の構成部品の書字方向 (というか論理順) で良い、 と緩和するべきかも? それなら「株式会社」 のような2次元の書字方向でも、 「ゆるゆるKKです」 のような周りの書字方向と違う書字方向グリフでも、 問題にならないのですが。

[25] 合字キャレットリスト中のキャレット位置の意味するところは不明瞭ですが、 常識的に考えれば合字化される前の各文字と元のままの順序、 つまり論理順で対応付けられるものでしょう。 従って anchor point 群の順序と同じ順序になるはずです。 ただしキャレット位置は1次元になります。

[26] 単調増加は求められていないようなので行ったり戻ったりを記述することも不可能ではなさそうですが、 「株式会社」のような合字の構成要素に合わせた上下移動は記述できません。

フォント機能#

[52] 特定目的用: afrc

ccmp#

[54] ccmp は Glyph Composition / Decomposition とされています。 >>53

[55] グリフの代替 (glyph alternates) の数を最小化するために文字の既定のグリフを2つ以上グリフ分解 (decompose) することが望まれる (desirable) ことが時々あります。 また、より良いグリフの処理のために2つ以上文字の既定のグリフを単一のグリフ合成 (compose) するのが好ましい (preferable) ことがあります (may) ccmp はこうした目的で使えます。 >>53

[57] 応用は常に ccmp を適用するべきです (should) 。 通常は利用者に有効・無効を制御させるべきではありません (should not) >>53

[58] GSUB lookupType42推奨 (recommended) されています。 >>53 それ以外が禁止されているわけではありません。

[59] ccmp は他のフォント機能より先に実装する必要があるとされます。 >>53 ここでの実装とは文脈からみてフォントGSUB lookup の組み合わせ方のことでしょうか。

calt#

calt

clig#

[60] フォント機能 clig は Contextual Ligatures とされています。 >>53

[61] clig は、 グリフ列を typographic な目的に好ましい (preferred) 単一のグリフに置換します。 >>53

[62] 他の合字 (ligature) フォント機能と違って合字推奨 (recommended) される文脈 (context) を指定します。 >>53

[63] 用字系により、あるいは swash ligature 用に必要な機能です。 >>53

[64] GSUB lookupType 8推奨 (recommended) されます。 >>53 その他の GSUBGPOS が禁止されているわけではありません。

[65] clig は既定の状態で有効とするべきです (should) >>53

[66] cswh も参照。

dlig#

[67] フォント機能 dlig は Discretionary Ligatures です。 >>53

[68] グリフ列を typographic 目的で好ましい (preferred) 単一のグリフ置き換えます (replace) >>53

[69] 利用者 (user) 好み (preference) により特別な効果 (special effect) に使える (may) 合字 (ligature) 使えます (covers) >>53

[70] c tグリフ列を ctグリフに置き換えられます。 >>53

[71] ( )グリフ列を に置き換えられます。 >>53

[72] 具体的にどのような合字があるかは設計や用字系によります。 >>53

[74] 既定の状態では無効とするべきです (should) >>53

[75] Discretionary、つまり自由裁量という通り、用字系に於いて必須の合字ではないものに用いることが想定されているようです。

[76] しかし一口に必須でない合字といっても幅があって、 仕様書に明示されている例だと ct は専ら装飾目的ですが、 はスペースの削減だったり縦中横の見栄えのためだったりします。 どちらも「組版的 (typographic) な目的」での合字で 「あってもなくても良いがあると良くなる場面がある」 ことには違いないのでしょうが。

[77] 従って dlig は何も考えずに有効にしたり無効にしたりするようなものではなく、 特定のフォントと特定の文脈との組み合わせで個別に適用するべきか、しないべきかを検討するべきものといえます。

[78] 事前に何が入力されるか予期できない UGC のようなものには向きません。

[79] Webフォントとしてサーバーから提供されるフォントではなくプラットフォームフォントを使って表示する Webページでは使うべきではありません。

[73] GSUB lookupType 4推奨 (recommended) されています。 >>53 それ以外の GSUBGPOS が禁止されているわけではありません。

[84] 任意の合字 - Wikipedia, , https://ja.wikipedia.org/wiki/%E4%BB%BB%E6%84%8F%E3%81%AE%E5%90%88%E5%AD%97

liga #

[32] 関連: CJK統合漢字合字

誤適用#

[35] 〼(ます)や株式会社がiPhone(Safariなど)で特殊文字に変換される原因と解決方法 | 株式会社ウェブ企画パートナーズ, https://wk-partners.co.jp/homepage/blog/hpseisaku/htmlcss/special-characters-in-safari/

要は、特殊文字にできそうなところは、片っ端から特殊文字に変換されてしまうし、ChromeのディベロッパーツールでiPhoneのユーザーエージェントにしているのにも関わらず、その場合は正常表示だし、なんでや!!という症状です。

font-feature-settings とはブラウザで表示される文字をカーニング(字詰め)してくれるCSS。

カーニングをする分には問題ないんですが、「”liga”」が指定してある場合にハマります。

これは本来英文字なんかで「合字」といってタイポグラフィ目的のときによく使用されるんですが、この指定が入っていると、株式会社などを勝手に合字して表示しちゃうみたいです。

[36] >>35 これによるとカーニングしたいだけで意味もわからず liga を有効にする人がいて、 iPhone には ligaに置換するようなフォントが入っているために、 iPhone でだけ意図せず合字化する現象が発生する模様。

[40] >>38 これは元の欧文なら害がなかった dlig の指定が、 機械翻訳によって日本語文字に差し替わった結果合字化されてしまった事案。

[37] 意味もわからず ligadlig を指定する人がいるならそこにまず問題があるが、 フォントによって ligadlig で変化したりしなかったりする相互運用性の無さに問題がある。 fi合字化されるかどうかのようなものと、 合字化されるようなものが一緒くたになっているのはおかしい。 前者のようなものはフォントの設計次第で良いが、 後者のようなものはすべてのフォント合字化されるかされないか統一基準があるべきなのに、ないので混乱の元になっている。

[41] 調べてみないと断言できないが、おそらく欧文ではカーニングfiのような合字化でラテン文字の配置や字形が最適化されるという目論見で kernliga ないし dlig を有効にする指定が流行しているのだろう。 また、日本語でも意味もわからずそれを真似ることがあるのかもしれない。

[42] >>35 には

新しいテーマをガチャガチャとカスタマイズしている

と書かれているので、欧文想定で書かれたデザインテーマを和文用に使おうとしてるケースで発症してそう。 >>35 の場合は試用段階で発覚しているけど、気づかないままそのまま使っているサイトもありそう (iPhone で特定の文言が入っていないと発覚しないので)。

合字フォント#

[10] アイコンフォント

[30] GitHub - kirishitanbank/KirishitanLigaturesFont: Font for displaying abbreviated ligatures found in Kirishitan Ban prints., https://github.com/kirishitanbank/KirishitanLigaturesFont

フォントをお使いの機器にインストールし、アプリケーションの文書からフォントを選択します。フォントで以下の画像のようなスラッシュ付きの文字列を入力すると、それに対応する合字記号が表示されます。大文字小文字の区別はありません。/apoは/APO、/Apo、/aPoなど、いずれも受け付けられます。スラッシュがあることで検索が楽になりますし、合字が表示されていない場合に発見しやすくなります。

/apo /apt /bta /bto /de /de2 /dpo /ds /ds2 /ds3 /ds4 /fo /jao /jo /jo2 /js /jxo /ma /pa /pe /po /pp /pt /pta /pu /sm /sma /xao /xo /x1 /x2 /x3

合字・連綿の有無の記述#

連綿

Web における合字#

[1] Web standards: Bookmarks and test files (Joe Clark) ( 版) http://joeclark.org/standards/#ligatures

[31] 22240 - Do ligature substitution on web content - chromium, https://bugs.chromium.org/p/chromium/issues/detail?id=22240

演算子合字#

[48] programming ligatures と称して、 プログラミング言語演算子合字表示するフォント群があります。

[49] プログラマーに遍く受け入れられているとは言い難いですが、 かなりの人気があるらしく、多くのフォントが作られています。

[46] GitHub - i-tu/Hasklig: Hasklig - a code font with monospaced ligatures, https://github.com/i-tu/Hasklig

[47] GitHub - SSNikolaevich/DejaVuSansCode: Monospaced font with programming ligatures based on DejaVu Sans Mono, https://github.com/SSNikolaevich/DejaVuSansCode

[45] GitHub - tonsky/FiraCode: Free monospaced font with programming ligatures, https://github.com/tonsky/FiraCode

[50] GitHub - kika/fixedsys: Fixedsys Excelsior font with programming ligatures, https://github.com/kika/fixedsys

[43] Iosevka, , https://typeof.net/Iosevka/

[44] Monoid, , https://larsenwork.com/monoid/

[51] GitHub - JetBrains/JetBrainsMono: JetBrains Mono – the free and open-source typeface for developers, https://github.com/JetBrains/JetBrainsMono

メモ#

[34] DSSSL には combine-char があって、基底文字アクセントの組み合わせを合成済文字に置き換えるような使い方ができました。

[2] Prefectly | deform ( ()) http://deform.jp/prefectly/

大文字のAからZと小文字のaからuまでの文字に47都道府県、それらとは別に、yに県境なしの日本地図、zに県境ありの日本地図が割り振ってあります。

モダンブラウザでは都道府県の略記によるリガチャ(合字)を使用できます。例えば、"st"と入力すれば埼玉県が、"hk"なら北海道が表示されます。加えて、"jp"のリガチャでは日本地図が表示されます。

[4] tonsky/FiraCode: Monospaced font with programming ligatures ( ()) https://github.com/tonsky/FiraCode

[5] Iosevka ( ()) https://be5invis.github.io/Iosevka/

[6] Inziu Iosevka Downloads ( ()) https://be5invis.github.io/Iosevka/inziu.html

[9] 技術と方法(4)コンピュータ・下 | 文字を組む方法 | 文字の手帖 | 株式会社モリサワ, https://www.morisawa.co.jp/culture/japanese-typesetting/07/

[15] しま書体 - しまの言葉を伝える書体 -, , https://shimanomoji.site/how.html

[11] 合字(2) : デザインの現場 小林章の「タイプディレクターの眼」, type_director, https://blog.excite.co.jp/t-director/10503399/

[12] プログラム用リガチャはプログラマ向けではない | NUMBER-SHOT.NET, https://number-shot.net/blog/programming-ligatures-are-not-for-programmers/

[13] アラビア文字の合字(リガチャー)と手書き時の位置関係 – アラビア語学習メモ () https://alarabiyah.sakura.ne.jp/arabic/alphabets/arabicligatures/

[14] Sam Sneddon 🏳️‍⚧️さんはTwitterを使っています 「And finally inspired by @Berlin_Type: 9. a reminder that ß is in origin a ſz digraph, which many street signs make more obvious than it often is, 10. interesting letter width & kerning choices for "ch" (plus bonus tz ligature). https://t.co/QiKR4xBr1V」 / Twitter (, ) https://twitter.com/gsnedders/status/1500615671977332739

[27] 点訳校正委員会報告(「点訳のてびき 第4版」), , http://www.shichocenter.kagoshima.kagoshima.jp/shikaku_sub/tennyaku_kosei4.html#20200906