* 仕様書

[REFS[
- [44] [CITE[[[The Unicode Standard]], Version 13.0 - ch02.pdf]], [TIME[2020-03-09T17:53:32.000Z]], [TIME[2020-12-20T08:35:03.323Z]] <https://www.unicode.org/versions/latest/ch02.pdf#G14527>
- [22] [CITE[[[The Unicode Standard]], Version 13.0 - ch03.pdf]], [TIME[2020-03-09T17:53:34.000Z]], [TIME[2020-12-20T02:08:18.239Z]] <https://www.unicode.org/versions/latest/ch03.pdf#G2212>
- [5] 
[CITE[[[The Unicode Standard]], Version 13.0 - ch23.pdf]], [TIME[2020-03-09T17:53:52.000Z]], [TIME[2020-12-13T07:28:31.667Z]] <https://www.unicode.org/versions/latest/ch23.pdf#G27446>
]REFS]

* 書式

[23] 
[DFN[[RUBY[書式][しょしき][Format]]]]は、
[[符号点型]]の1つです。
[SRC[>>22 D10a]]
そのような[[符号点]]の
[[General Category]]
は、
[DFN[[CODE[Cf]]]],
[CODE[Zl]],
[CODE[Zp]]
のいずれかです (それらの
[[General Category]] の[[符号点]]は、すべてこの[[符号点型]]に属します)。
[SRC[>>44]]

[REFS[
- [24] [[符号点型]] [CODE[Format]]
の[[符号点]]の一覧
<https://chars.suikawiki.org/set/%24unicode%3Aformat>
]REFS]

* 書式制御文字

[1] [DFN[[RUBYB[書式制御文字][format control character]]]]は、
[[Unicode文字]]の種類の1つです。

[FIG(short list)[ [3] [[書式制御文字]]
- [CODE(charname)@en[ZWJ]]
- [CODE(charname)@en[ZWNJ]]
- [[bidirectional ordering controls]]
]FIG]

[REFS[
- [17] [[書式制御文字]]の一覧
<https://chars.suikawiki.org/set/%24unicode%3Aformat-control-characters>
]REFS]

* paired stateful controls

[6] 
[DFN[paired stateful controls]]
は、
[RUBYB[最初][initiating]]の文字(列)と[RUBYB[最後][terminating]]の文字とで組にして使います。
[SRC[>>5]]

[FIG(short list)[ [8] [RUBYB[[[推奨]]][recommended]]されるもの [SRC[>>5]]
- [[bidi overrides]]
- [[bidi embeddings]]
- [[bidi isolates]]
- [[annotation characters]]
- [[musical beams and slurs]]
]FIG]

[12] 
いくつかのものは、
[RUBYB[[[非推奨]]][deprecated]]であり、避ける[RUBYB[べき][should]]です。
[SRC[>>5]]

[FIG(short list)[ [11] [RUBYB[[[非推奨]]][deprecated]]のもの [SRC[>>5]]
- [[deprecated format characters]]
- [CODE(char)[U+E0001]] [CODE(charname)@en[LANGUAGE TAG]]
]FIG]

[7] 
[[テキスト]]の[[コピペ]]や[[削除]]の操作で、
組が崩れてしまうことがあります。
理想的には元の[[テキスト]]も複写した方の[[テキスト]]も組が維持される形となるべきですが、
複雑な処理になることもあり、
それが行われないことや、
間違った形で行われることがあります。
[SRC[>>5]]
[[相互運用性]]や[[セキュリティー][文字のセキュリティー]]の観点からも、
実装は受信データ中で組になっていない場合であってもそれなりの扱いができる必要があります。


[9] 
推奨されるもののうち、
[[bidi]] 系と
[[annotation characters]]
は、
[[段落]]境界までで効果が終わるため、
そこそこ頑強とされます。
[SRC[>>5]]

[10] 
[[beams and slurs in music]]
は、
特化した音楽レイアウトソフトウェアのみに推奨されるもので、
適用範囲も限られているものです。
[SRC[>>5]]

[14] 
[[タグ文字]]は[[テキスト]]の移動操作で壊れやすいです。
[SRC[>>5]]

[REFS[
- [18] [[paired stateful controls]] の一覧
<https://chars.suikawiki.org/set/%24unicode%3Apaired-stateful-controls>
-- [20] 推奨の一覧
<https://chars.suikawiki.org/set/%24unicode%3Apaired-stateful-controls-recommended>
-- [19] 非推奨の一覧
<https://chars.suikawiki.org/set/%24unicode%3Apaired-stateful-controls-deprecated>
]REFS]

* 非推奨書式文字

[13] 
[DFN[[RUBYB[非推奨書式文字][deprecated format character]]]]は、
[[[RUBYB[非推奨][deprecated]]であり、避ける[RUBYB[べき][should]]][Unicodeの非推奨の文字]]です。
[SRC[>>5]]

[FIG(list )[ [16] [[非推奨書式文字]]
- [15] [[symmetric swapping format characters]]
- [[character shaping selectors]]
- [[numeric shape selector format characters]]
]FIG]

[REFS[
- [21] [[非推奨書式文字]]の一覧
<https://chars.suikawiki.org/set/%24unicode%3Adeprecated-format-characters>
]REFS]

* Arabic subtending or supertending marks

[28] 
[DFN[[CODE[Prepended_Concatenation_Mark]]]]:
[DFN[prepended concatenation marks]]
([DFN[prefixed format control characters]], [DFN[subtending marks]])

- [29] [CITE@en-us[Background for PRI #310]], [TIME[2015-11-25T20:51:54.000Z]], [TIME[2024-07-08T01:22:06.491Z]] <https://www.unicode.org/review/pri310/pri310-background.html>
- [30] [CITE@en-us[Public Review Issues]], [TIME[2016-02-02T00:16:46.000Z]], [TIME[2024-07-08T01:24:30.671Z]] <http://www.unicode.org/review/pri310/>
- [31] [CITE[The Unicode Blog: New Character Property for Prepended Concatenation Marks]], [TIME[2024-07-04T06:30:16.000Z]], [TIME[2024-07-08T01:24:51.410Z]] <http://blog.unicode.org/2015/11/new-character-property-for-prepended.html>

[REFS[

- [32] [CITE@en[[[Character set]] "Prepended_Concatenation_Mark"]], [TIME[2024-07-08T01:27:40.000Z]] <https://chars.suikawiki.org/set/%24unicode%3APrepended_Concatenation_Mark>

]REFS]


[26] 
[[アラビア文字]]のうち
[ [CC[U+0600]], [CC[U+0605]] ],
[CC[U+06DD]],
[ [CC[U+0890]], [CC[U+0891]] ]
は、
おそらく後続の[[数字]]列に作用してそれらの上下にまたがって[[レンダリング]]される性質があるために、
[CODE[Cf]] に分類されています。

[27] 
[CODE[Cf]] に含まれる中でも他の状態を持つ文字や状態を変化される文字や不可視の文字とは違って、
これらは[[結合文字]]と似たような性質で、危険性は比較的低いと思われます。


- [11] [CITE[L2 / UTC Document Search by Number: Results]], [TIME[2024-07-08T00:29:24.000Z]] <https://www.unicode.org/cgi-bin/GetMatchingDocs.pl?L2/09-144>
- [12] [CITE[UTC 121/L2 218 Joint Meeting Pre-Preliminary Minutes]], [TIME[2024-07-08T00:29:51.000Z]] <http://www.unicode.org/L2/L2009/09335.htm>


- [25] [CITE@ja[Microsoft Word - three-arabic-symbols.docx - 20245-three-arabic-symbols.pdf]], [TIME[2020-09-28T15:36:18.000Z]], [TIME[2024-07-08T01:01:06.201Z]] <https://www.unicode.org/L2/L2020/20245-three-arabic-symbols.pdf>

[33] [[アラビア文字]]の他にもいくつかあります。 [SRC[>>32]]

[35] 
関連:
[[二重ダイアクリティカルマーク]]

* セキュリティー

[SEE[ [[文字のセキュリティー]] ]]

* 関連

[2] [[制御文字]]とは異なります。

[4] [CODE(charname)@en[CGJ]] は[[書式制御文字]]ではありません。

[34] [[unicode-xml]] に関係する記述がいくらかありますが ([SEE[ [[XMLにおける文字]] ]])、
情報が古くて不完全です。あまり役に立ちません。

* メモ