* フォント機能 [CODE[falt]] (OpenType)

[15] 
[[フォント機能]]
[DFN[[CODE[falt]]]]
は
Final Glyph on Line Alternates
とされます。
[SRC[>>14]]

[16] 
[RUBYB[文章][text]]の justification の補助のため、
[[行]]の最後の[[グリフ]]を、
特にこの目的で設計された代替形に置換します。
[SRC[>>14]]

[EG[


[17] 
[[アラビア文字]]では、行の最後のグリフの代替形を用意しておくと良い
[[justification]]
ができます。
例えば long tailed Yeh-with-tail
をいくらか長いか短い tail のものに置換します。
[SRC[>>14]]

]EG]


[18] 
[CODE[GSUB]] [F[[CODE[lookupType]]]] [N[1]]
で行の最後のグリフ ([[孤立形]]や[[語末形]])
を置換することが[RUBYB[推奨][recommended]]されます。
[SRC[>>14]]
他の [CODE[GSUB]] や [CODE[GPOS]] が禁止されているわけではありません。

[19] 
[CODE[falt]] は[[利用者]]の[RUBYB[好み][preference]]次第で既定で有効にも無効にもできます。
[SRC[>>14]]

[21] 
文章が justify されるときに行の最後のグリフに適用できます。
justification algorithm によって特定することもできますし、
[[利用者]]が直接制御することもできます。
[SRC[>>14]]

[23] 
[[連なり]]に他の[[フォント機能]]が適用されてから最後に適用する必要があります。
[SRC[>>14]]

[20] 
[CODE[JSTF]] [[表]]の justification extension や shrinkage modifications
とともに実装することができます。
[SRC[>>14]]

[22] 
[CODE[falt]] によって行長は変化することがあり、
line-breaking and justification algorithms はこれを考慮する[RUBYB[べきです][should]]。
[SRC[>>14]]


[REFS[


- [14] 
[CITE@en-us[Registered features, f-j (OpenType 1.9.1) - Typography | [[Microsoft Learn]]]], [[PeterCon]], [TIME[2024-05-31T17:42:16.000Z]], [TIME[2024-12-11T12:37:21.700Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/features_fj?source=recommendations>

]REFS]

* フォント機能 [CODE[jalt]] (OpenType)

[25] 
[[フォント機能]]
[DFN[[CODE[jalt]]]]
は
Justification Alternates
とされます。
[SRC[>>24]]

[26] 
[RUBYB[[[文章]]][text]]の [[justification]] を、
[[グリフ]]を [[justification]] のために特別に設計された代替形によって置換することで、
改善するものであります。
[SRC[>>24]]

[32] 
[[cursive script]] で使うことができます。 [SRC[>>24]]
[[アラビア文字]]での利用などが想定されているようです。
例えば[[ラテン文字]]の[[筆記体]]などでも使いようがありそうなものですが、
そうした利用が認められるのかどうかは仕様書の文言上明確になっていません。

[27] 
[CODE[GSUB]] [F[[CODE[lookupType]]]] [N[1]]
で[[語頭形]], [[語中形]], [[語末形]], [[孤立形]]をそれらの代替形に置換することが[RUBYB[推奨][recommended]]されます。
[SRC[>>24]]
他の [CODE[GSUB]] や [CODE[GPOS]] が禁止されているわけではありません。

[33] 
[CODE[init]], [CODE[medi]], [CODE[fina]], [CODE[isol]]
は、 [CODE[jalt]] より前に呼ばれる必要があります。
[SRC[>>24]]
これが仕様書において誰に対する要件なのかあまり明確ではありませんが、
おそらく[[フォント]]がそのように [[lookup]] を配置するべきということになるのでしょう。



[28] 
[CODE[JSTF]] [[表]]の justification extension や shrinkage modifications
とともに実装することができます。
[SRC[>>24]]

[29] 
[CODE[jalt]] は[[利用者]]の[RUBYB[好み][preference]]次第で既定で有効にも無効にもできます。
[SRC[>>24]]

[30] 
justification algorithm によってまたは直接の利用者の制御によて justify される文章に適用されるというのが[RUBYB[推奨][recommended]]される用法です。
[SRC[>>24]]

[31] 
[CODE[jalt]] は[[行長]]に影響することがあります。これは[RUBYB[[[改行]]][line-breaking]]と
justification algorithm において考慮する[RUBYB[べきです][should]]。
[SRC[>>24]]



[REFS[

- [24] 
[CITE@en-us[Registered features, f-j (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:16.000Z]], [TIME[2025-12-24T09:26:04.496Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/features_fj?source=recommendations#jalt>

]REFS]

* メモ

[7] 
[[JIS X 4051-1995]] 
3.15 行の調整処理

[11] 
[[JIS X 4051:2004]]
4.19 行の調整処理

[1] [CITE@ja[日本語組版処理の要件(日本語版)]]
( ([[Japanese Layout Task Force]] 著, [TIME[2012-03-23 20:19:12 +09:00]] 版))
<http://www.w3.org/TR/jlreq/ja/#d3e857>

[2] [CITE@ja[日本語組版処理の要件(日本語版)]]
( ([[Japanese Layout Task Force]] 著, [TIME[2012-03-23 20:19:12 +09:00]] 版))
<http://www.w3.org/TR/jlreq/ja/#ja-subheading2_7_3>

[3] [CITE@ja[日本語組版処理の要件(日本語版)]]
( ([[Japanese Layout Task Force]] 著, [TIME[2012-03-23 20:19:12 +09:00]] 版))
<http://www.w3.org/TR/jlreq/ja/#term.even-inter-character-spacing>

[4] [CITE@en-US[Techniques for WCAG 2.0]]
( ([TIME[2014-03-11 23:08:17 +09:00]] 版))
<http://www.w3.org/TR/2014/NOTE-WCAG20-TECHS-20140311/complete.html#F88>

[5] [CODE(charname)@en[ZWSP]]

[6] [CODE[JSTF]]


[8] 一般の段落では、最終行では[[伸ばし処理]]を行わず、それ以前の行では行う。

[9] [[割注]]では最終行でも行い得る。

[10] [[ルビ文字列]]では[[親文字列]]との関係もあって特殊。
[SEE[ [[ルビ]] ]]


[12] 
[[Chrome]] は justify のための空白の挿入がおかしいよなあ。
[CH[」]]の前に挿入するとか、[CH[)]]と[CH[。]]の間に挿入するとか、
[CH[、]]の前に挿入するとか、みっともない表示になりがち。
[TIME[2024-11-08T13:15:48.600Z]]

[13] 
>>12 不要なら[[空白]]を入れないけど、必要なら入れてもいい、みたいなケースを指定したくてもできない。
[CH[/]] の前後とか。 [CN[ZWSP]] 入れてみたけど効かなかった。

