1. 序論
この~moduleは、 ~CSSによる植字~制御について述べる — それは、[ ~source~textから,行lが折返され, 整形された~textへの転換 ]を制御する,各種~CSS特能である。 種々の~CSS~propが、 次に対する制御を供する ⇒# `大小~変形n@#transforming$, `空白の縮約-法@#white-space-processing$, `~textの折返ng@#white-space-property$, `行-分断ng規則$と`~hyphen化@#hyphenation$, `整列と両端揃え@#justification$, `間隔法@#spacing$, `字下n@#edge-effects$ ◎ This module describes the typesetting controls of CSS; that is, the features of CSS that control the translation of source text to formatted, line-wrapped text. Various CSS properties provide control over case transformation, white space collapsing, text wrapping, line breaking rules and hyphenation, alignment and justification, spacing, and indentation.
注記: `~font選定@~CSSFONT#font-matching-algorithm$ については、 `CSS-FONTS-3$r が受持つ。 ◎ Note: Font selection is covered in the CSS Fonts Module. [CSS-FONTS-3]
(以前は、 この~moduleの一部を成していた) `行l装飾@~CSSTEXTDECOR#line-decoration$( `underline^en ), `圏点@~CSSTEXTDECOR#emphasis-marks$( `emphasis mark^en ), `影@~CSSTEXTDECOR#text-shadow-property$( `shadow^en ) などの,~textを装飾するための特能は、 `CSS-TEXT-DECOR-3$r が受持つ。 ◎ Features for decorating text, such as underlines, emphasis marks, and shadows, (previously part of this module) are covered in the CSS Text Decoration Module. [CSS-TEXT-DECOR-3]
[ `双方向-$/`縦書き$ ]な~textについては、 `CSS-WRITING-MODES-4$r にて取組まれる。 ◎ Bidirectional and vertical text are addressed in the CSS Writing Modes Module. [CSS-WRITING-MODES-4].
世界各地の様々な言語と書記~体系における植字~要件についての更なる情報は、 `国際化~WG@~I18N/core/$ による `TYPOGRAPHY$r にて見出せる。 ◎ Further information about the typesetting requirements of various languages and writing systems around the world can be found in the Internationalization Working Group’s Language Enablement Index. [TYPOGRAPHY]
1.1. 各種~module間の相互作用
この~moduleは、 `CSS-TEXT-DECOR-3$r とともに, `CSS2$r `§ 16@~CSS22/text.html$ にて定義される~text~levelの特能を置換して拡張する。 ◎ This module, together with the CSS Text Decoration Module, replaces and extends the text-level features defined in Cascading Style Sheets Level 2 chapter 16. [CSS-TEXT-DECOR-3] [CSS2]
以下に定義される各種~用語に加えて、 この仕様にて利用される他の[ 各種用語/概念 ]は, `CSS2$r, `CSS-WRITING-MODES-4$r にて定義される。 ◎ In addition to the terms defined below, other terminology and concepts used in this specification are defined in Cascading Style Sheets Level 2 and the CSS Writing Modes Module. [CSS2] and [CSS-WRITING-MODES-4].
1.2. 値~定義
【 この節の内容は `~CSS日本語訳 共通~page@~CSScommon#values$に移譲。 】
【この訳に特有な表記規約】
簡潔かつ明確にするため、 この訳では,記号 "↔", "間" を次の意味で用いる:
- ~textを~~構成する,ある分類による単位(例えば “単語”, “文字”,その他 何らかの条件を満たす文字列の集合など) %W に対し、 “%W↔間” という表記(例:“単語↔間” )は、 論の対象の~textの中で互いに隣接な,任意の 2 個の[ %W に属する単位~instance ]の合間を意味する。
- %Z を別の単位とするとき、 “%W ↔ %Z 間” という表記は、 ~textの中で互いに隣接な,[ %W に属する任意の単位~instanceと, %Z に属する任意の単位~instance ](順不同)の合間を意味する。 (同順であることも要する場合は、 その旨が記される)
“隣接な” の定義は、 双方向性による並替ngの前/後で変化することに注意(~layoutの文脈では、 通例的に並替ngの後になる)。
この仕様の語[ 始端/終端 ]は、 特に断らない限り,`行内~基底~方向$のそれを意味する(塊~flow~方向ではなく)。
略語 “~CJK” は、[ 中国語, 日本語, 韓国語 ]の総称を表す。
一部の共通的に利用される符号位置は、 次の表に示す略称で参照される(`~space$, `~tab$は、 原文では他所で定義されるが,ここに集約する):
略称(英語名) | 符号位置 |
---|---|
`~CR@ ( `carriage return^en ) | `000D^U `CARRIAGE RETURN^cn |
`~LF@ ( `line feed^en ) | `000A^U `LINE FEED^cn |
`~space@ | `0020^U `SPACE^cn |
`~tab@ | `0009^U `CHARACTER TABULATION^cn |
1.3. 言語と植字
作者は、 最良な結果を得るため,言語~tagを内容に正確aにあてがうベキである ◎ Authors should accurately language-tag their content for the best typographic behavior.
多くの~typographic効果は、 言語上の文脈に応じて変わる。 言語と書記~体系の規約は、[ 行-分断法, ~hyphen化, 両端揃え, ~glyph選定 ], その他,多くの~typographic効果に影響し得る。 ~CSSにおいては、 言語に特有な~typographicな誂えは、 `内容~言語$が既知である(宣言されている)ときに限り適用される。 したがって,作者には — 高~品質な~typographyを得るためには — 文書~内の~textが成す正しい言語上の文脈を~UAに伝えることが要求される。 ◎ Many typographic effects vary by linguistic context. Language and writing system conventions can affect line breaking, hyphenation, justification, glyph selection, and many other typographic effects. In CSS, language-specific typographic tailorings are only applied when the content language is known (declared). Therefore, higher quality typography requires authors to communicate to the UA the correct linguistic context of the text in the document.
要素の `内容~言語@ とは、 `文書~言語$の規則に則って,要素が属するものと宣言されている(ヒトが話す)言語である。 要素の`内容~言語$は,未知もアリなことに注意。 例:[ ~tag付けられてない内容/言語~tag付けの便宜性が無い`文書~言語$内の内容 ]の内容~言語は、 未知と見なされる。 ◎ The content language of an element is the (human) language the element is declared to be in, according to the rules of the document language. Note that it is possible for the content language of an element to be unknown—e.g. untagged content, or content in a document language that does not have a language-tagging facility, is considered to have an unknown content language.
注記: 作者は、[ ~HTMLにおいては大域的な `lang^a 属性/ ~XMLにおいては普遍的な `xml:lang^a 属性 ]を利用して`内容~言語$を宣言できる。 [ ~HTML/~XML ]要素の`内容~言語$を決定するための規則は、[ `~HTML要素のそれ@~HTMLdom#language$ `HTML$r / `~XML要素のそれ@~TR/xml/#sec-lang-tag$ `XML10$r ]を見よ。 ◎ Note: Authors can declare the content language using the global lang attribute in HTML or the universal xml:lang attribute in XML. See the rules for determining the content language of an HTML element in HTML, and the rules for determining the content language of an XML element in XML 1.0. [HTML] [XML10]
要素に宣言された`内容~言語$は、 要素に利用されている `内容~書記~体系@ ( `content writing system^en ) — すなわち、 利用されている言語に特有な書記法( `written form^en ) — を識別する。 この情報は、 `文書~言語$による[ `内容~言語$の識別-用の便宜性 ]に依存して,明示的に与えられることも, 暗黙のものになることもある。 規範的な付録 `§ 内容~書記~体系の識別-法@#script-tagging$ を見よ。 ◎ The content language an element is declared to be in also identifies the specific written form of that language used in that element, known as the content writing system. Depending on the document language’s facilities for identifying the content language, this information can be explicit or implied. See the normative Appendix F: Identifying the Content Writing System.
注記: 一部の言語には,複数の書記~体系が伝統的にある。 また、 ある言語が外来の書記~体系の中に翻字-( `transliterate^en )される事例もある。 そのような事例では、 作者は,~UAが適切に順応できるよう `用字系~下位tag@#script-tagging$を与えるベキである。 ◎ Note: Some languages have more than one writing system tradition; in other cases a language can be transliterated into a foreign writing system. Authors should subtag such cases so that the UA can adapt appropriately.
【 以下に現れる~code( `BCP47$r 言語~tag)のうち~hyphenが接頭されたものが,用字系~下位tagを表す。 】
例えば,韓国語( `ko^c )は、 ~Hangul( `-Hang^c )でも~Hanja( `-Hani^c )でも,この両者の組合n( `-Kore^c )でも記され得る。 歴史的な文書は、 もっぱら~Hanjaで記され,単語↔間の間隔を利用しない — それらは、 現代の韓国語より現代の中国語の様に整形される。 言い換えれば,~typographicの目的においては、 `ko-Hani^c は, `ko^c ( `ko-Kore^c )より `zh-Hant^c の様に挙動する。 ◎ For example, Korean (ko) can be written in Hangul (-Hang), Hanja (-Hani), or a combination (-Kore). Historical documents written solely in Hanja do not use word spaces and are formatted more like modern Chinese than modern Korean. In other words, for typographic purposes ko-Hani behaves more like zh-Hant than ko (ko-Kore).
別の例として,日本語( `ja^c )は、 概して,[ ~Hiragana( `-Hira^c ), ~Katakana( `-Kana^c ), ~Kanji( `-Hani^c ) ]の組合n( `-Japn^c )で記される。 しかしながら,言語~学習教本の様な特別な目的においては,~Latin( `-Latn^c )に “~romanize” されることもあり、 その事例では,日本語より~Englishの様に整形されるべきである。 ◎ As another example Japanese (ja) is typically written in a combination (-Japn) of Hiragana (-Hira), Katakana (-Kana), and Kanji (-Hani). However, it can also be ”romanized” into Latin (-Latn) for special purposes like language-learning textbooks, in which case it should be formatted more like English than Japanese.
また別の例として,現今の~Mongolianは、 2 種の用字系 — ~Cyrillic( `-Cyrl^c ), ~Mongolian( `-Mong^c ) — で記される(~Mongoliaでは,前者が公式的に利用され、 中国の一部を成す内Mongoliaでは,後者の方が共通的にある)。 この 2 つの整形~要件は、 ごく異なる — ~Cyrillicは,~Latinや~Greekと類似に挙動する一方で、 ~Mongolianの書記~規約は,~Arabic, 中国語の両者から導出される。 ◎ As a third example contemporary Mongolian is written in two scripts: Cyrillic (-Cyrl, officially used in Mongolia) and Mongolian (-Mong, more common in Inner Mongolia, part of China). These have very different formatting requirements, with Cyrillic behaving similar to Latin and Greek, and Mongolian deriving from both Arabic and Chinese writing conventions.
1.4. 文字と字l
植字の基本的~単位は, `文字@ ( `character^en )である。 しかしながら,書記~体系は基本的な~English~alphabetほど単純とは限らないので、 `文字$が実際に何であるかは,その用語が利用される文脈に依存する。 例えば,~Hangul(韓国語の書記~体系)では、 各[ 音節の方形~表現 ](例: `한^lt = Han )を,`文字$と見なせる。 しかしながら,方形~記号は、 ~~実際に,それぞれが音素を表現するような 複数の字l( `letter^en )から構成されており(例: `ㅎ^lt = h, `ㅏ^lt = a, `ㄴ^lt = n )、 そのそれぞれも`文字$と見なせる。 ◎ The basic unit of typesetting is the character. However, because writing systems are not always as simple as the basic English alphabet, what a character actually is depends on the context in which the term is used. For example, in Hangul (the Korean writing system), each square representation of a syllable (e.g. 한=Han) can be considered a character. However, the square symbol is really composed of multiple letters each representing a phoneme (e.g. ㅎ=h, ㅏ=a, ㄴ=n) and these also could each be considered a character.
~computerにおける~text符号化法の基本的~単位も,`文字$と呼ばれる — その符号化法の単独の`文字$は、 符号化法に依存して, 予め構成-済みな 音節的な`文字$全体(例: `한^lt )にも, 個々の音素的な`文字$(例: `ㅎ^lt )にも, 基底~字形などの より小さな単位(例: `ㅇ^lt )にも対応することがある。 更には、 結合~markも,それを様々にさせる(例: 有気音を表現する余分な描線)。 ◎ A basic unit of computer text encoding, for any given encoding, is also called a character, and depending on the encoding, a single encoding character might correspond to the entire pre-composed syllabic character (e.g. 한), to the individual phonemic character (e.g. ㅎ), or to smaller units such as a base letterform (e.g. ㅇ) and any combining marks that vary it (e.g. extra strokes that represent aspiration).
その一方,符号化法の単独の`文字$は、 ~data~stream内では 1 個以上の~byteとして表現され得る。 また、 ~programming環境でも,ときには 1 個の~byteを`文字$と呼ぶことがある。 ◎ In turn, a single encoding character can be represented in the data stream as one or more bytes; and in programming environments one byte is sometimes also called a character.
したがって、 用語 `文字$は,技術的な精度が要求される所では多義的になる。 ◎ Therefore the term character is fairly ambiguous where technical precision is required.
~text~layoutにおいては、 `~typographic文字~単位@ ( `typographic character unit^en ) 【 “植字した結果の,~~見かけの~~形に基づく文字~単位” 】 が,~textの基本的な単位になる。 ~text~layoutの分野でも、 関連な`文字$単位は,演算に依存する。 例えば,[ `行-分断法$, `字間隔法$ ]においては、 ~Thai文字~並びが `0E33^U `#0E33^lt `THAI CHARACTER SARA AM^cn を含んでいる場合に,区分の~~仕方が異なる。 また,~Devanagariなどの用字系における連接子音の挙動は、 利用~中の~fontに依存することがある。 このように,`~typographic文字$は、 特定0の~typographic演算( `行-分断法$, (段落の)最初の字l( `first-letter^en )効果, `字間隔法$, 両端揃え, 縦書き時の配列法, 等々 )に関して分割0不能な,書記~体系の単位を表現する — 例えば ⇒# ~Latinにおける~alphabetic字l(その発音区別符も含む), ~Hangulにおける音節, 中国語における表語-文字, ~Myanmarにおける音節~cluster, 等々 ◎ For text layout, we will refer to the typographic character unit as the basic unit of text. Even within the realm of text layout, the relevant character unit depends on the operation. For example, line-breaking and letter-spacing will segment a sequence of Thai characters that include U+0E33 ำ THAI CHARACTER SARA AM differently; or the behavior of a conjunct consonant in a script such as Devanagari may depend on the font in use. So the typographic character represents a unit of the writing system—such as a Latin alphabetic letter (including its diacritics), Hangul syllable, Chinese ideographic character, Myanmar syllable cluster—that is indivisible with respect to a particular typographic operation (line-breaking, first-letter effects, tracking, justification, vertical arrangement, etc.).
`UAX29$r は、 `書記素~cluster@ ( `grapheme cluster^en )と呼ばれる,`~typographic文字$を近似する単位を定義している。 ~UAは、 自身の`~typographic文字~単位$の基礎として, `UAX29$r にて定義される `拡張された書記素~cluster^em( `extended grapheme cluster^en ) を利用するモノトスル( `旧来の書記素~cluster^em( `legacy grapheme cluster^en ) ではなく)。 しかしながら,~UAは、 ~typographic慣習からの要求に応じて,定義を誂えるベキである — 既定の規則は、 必ずしも[ 適切/理想的 ]とは限らず,必要に応じて[ 演算に依存して,異なるものに誂える ]ものと期待されているので。 ◎ Unicode Standard Annex #29: Text Segmentation defines a unit called the grapheme cluster which approximates the typographic character. [UAX29] A UA must use the extended grapheme cluster (not legacy grapheme cluster), as defined in UAX29, as the basis for its typographic character unit. However, the UA should tailor the definitions as required by typographic tradition since the default rules are not always appropriate or ideal—and is expected to tailor them differently depending on the operation as needed.
注記: そのような誂え用の規則は、 ~CSSの視野から外れる。 ◎ Note: The rules for such tailorings are out of scope for CSS.
標準な植字の実施に要求される,`~typographic文字~単位$の誂え例を以下に挙げる: ◎ The following are some examples of typographic character unit tailorings required by standard typesetting practice:
- ~Myanmarや~Devanagariなどの一部の用字系では、 両端揃えと行-分断法のいずれに対しても,`~typographic文字~単位$は 1 個の音節~全体であり,複数の`書記素~cluster$を含み得る。 ◎ In some scripts such as Myanmar or Devanagari, the typographic character unit for both justification and line-breaking is an entire syllable, which can include more than one Unicode grapheme cluster. [UAX29]
-
~Thaiや~Laoなどの他の用字系においては、 行-分断法に対しては,`~typographic文字$は,~Unicodeの既定の`書記素~cluster$に合致する一方、 `字間隔法$に関連な単位は, `書記素~cluster$`よりも細かい^emため,間隔法を挿入し得るようになる前に,分解形その他の代用を要することがある。 ◎ In other scripts such as Thai or Lao, even though for line-breaking the typographic character matches Unicode’s default grapheme clusters, for letter-spacing the relevant unit is less than a Unicode grapheme cluster, and may require decomposition or other substitutions before spacing can be inserted. [UAX29]
一例として、 ~Thaiの単語 `#0E04#0E33^lt ( `0E04^U + `0E33^U )内に適正な字間隔を入れるためには, `0E33^U を[ `0E4D^U + `0E32^U ]に分解する必要があり、 その上で `0E32^gU の前に余分な字間隔が挿入される: `#0E04#0E4D #0E32^lt ◎ For instance, to properly letter-space the Thai word คำ (U+0E04 + U+0E33), the U+0E33 needs to be decomposed into U+0E4D + U+0E32, and then the extra letter-space inserted before the U+0E32: คํ า.
もう少し複階的な例として、 `#0E19#0E49#0E33^lt ( `0E19^U + `0E49^U + `0E33^U ) がある。 この事例における ~Thaiに対する通常の形状付けでは、 まず `0E33^U を[ `0E4D^U + `0E32^U ]に分解してから,[ `0E4D^U と `0E49^U ]を入替えて[ `0E19^U + `0E4D^U + `0E49^U + `0E32^U ]を与える。 次に、 先に~~述べたように,余分な字間隔が `0E32^gU の前に挿入される: `#0E19#0E4D#0E49 #0E32^lt ◎ A slightly more complex example is น้ำ (U+0E19 + U+0E49 + U+0E33). In this case, normal Thai shaping will first decompose the U+0E33 into U+0E4D + U+0E32 and then swap the U+0E4D with the U+0E49, giving U+0E19 + U+0E4D + U+0E49 + U+0E32. As before the extra letter-space is then inserted before the U+0E32: นํ้ า.
- 縦書き植字 `CSS-WRITING-MODES-4$r から要求される誂えもある。 例えば, `upright$v ~textを植字するときは、 ~Tibetanの[ tsek / shad ]~markは — 独立な`~typographic文字~単位$として扱うことなく — 先行する`書記素~cluster$と~~一緒に保たれる。 ◎ Vertical typesetting can also require tailoring. For example, when typesetting upright text, Tibetan tsek and shad marks are kept with the preceding grapheme cluster, rather than treated as an independent typographic character unit. [CSS-WRITING-MODES-4]
`~typographic字l単位@ ( `typographic letter unit^en ), (または,この仕様の目的においては)略して `字l@ ( `letter^en )とは、 `~typographic文字~単位$のうち,`~Unicode字種$[ `Letter^uc / `Number^uc ]に属するものを指す。 `~typographic文字~単位$の各種~Unicode~propを決定する方法については、 `§ 文字の~prop@#character-properties$ を見よ。 ◎ A typographic letter unit (or letter for the purpose of this specification) is a typographic character unit belonging to one of the Letter or Number general categories. See Appendix E: Characters and Properties for how to determine the Unicode properties of a typographic character unit.
`~typographic文字~単位$が要素~境界で分割0されている場合、 その描画~特性は定義されない。 理想的には,各~成分は、[ 一体としての`~typographic文字~単位$の正しい形状付けと位置決め ]を保守しながら,[ それぞれが属する要素の各~propによる整形~要件 ]に則って描画されるベキである。 しかしながら,これは、 常にアリになるとは限らず,[ 各~部における整形の相違の資質, 利用-中の~font技術の能力 ]に依存する。 したがって,そのような`~typographic文字~単位$は、 境界の一方の側に属するように描画されることも,何らかの近似で両者に属するように描画されることもある。 作者には、 `書記素~cluster$や合字を要素~境界で分割0すると[ 一貫しない/欲されない ]結果にもなり得ることを警告しておく。 ◎ The rendering characteristics of a typographic character unit divided by an element boundary is undefined. Ideally each component should be rendered according to the formatting requirements of its respective element’s properties while maintaining correct shaping and positioning of the typographic character unit as a whole. However, depending on the nature of the formatting differences between its parts and the capabilities of the font technology in use, this is not always possible. Therefore such a typographic character unit may be rendered as belonging to either side of the boundary, or as some approximation of belonging to both. Authors are forewarned that dividing grapheme clusters or ligatures by element boundaries may give inconsistent or undesired results.
1.5. ~text処理
~CSSは`~Unicode$citeの上に築かれている。 ~Unicodeを~supportする~UAは、 ~CSSにより明示的に上書きされた所を除き,~Unicodeの中核~標準を成すすべての規範的な要件を固守するモノトスル。 ~Unicode以外の~text符号化法~modelに基づいて実装されている~UAであっても、[ 適切な対応付け, 相似的な挙動 ]があると見做す下で,同じ~text取扱い要件を充足することが期待される。 ◎ CSS is built on Unicode. [UNICODE] UAs that support Unicode must adhere to all normative requirements of the Unicode Core Standard, except where explicitly overridden by CSS. UAs implemented on the basis of a non-Unicode text encoding model are still expected to fulfill the same text handling requirements by assuming an appropriate mapping and analogous behavior.
~text処理(空白~処理, ~text変形n, 行-分断法, 等々)用に文字の隣接性を決定する目的においては — したがって、 一般に,この仕様の中では — [ 文字~並びに挟まれた`行内~box$の境界/`~flow外$にある要素 ]は,無視するモノトスル。 ただし,~text形状付けに関しては、 `§ 要素~境界をまたがる形状付け@#boundary-shaping$ を見よ。 ◎ For the purpose of determining adjacency for text processing (such as white space processing, text transformation, line-breaking, etc.), and thus in general within this specification, intervening inline box boundaries and out-of-flow elements must be ignored. With respect to text shaping, however, see § 7.3 Shaping Across Element Boundaries.
2. ~textの変形-法
2.1. 大小~変形: `text-transform^p ~prop
◎名 `text-transform@p ◎値 `none$v | [ `capitalize$v | `uppercase$v | `lowercase$v ] || `full-width$v || `full-size-kana$v ◎初 `none^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 ~textを~style付け目的で変形する。 これは、 下層の内容に効果を発揮することはなく,~copy-pasteされる素な~textの内容には影響しないモノトスル。 ◎ This property transforms text for styling purposes. It has no effect on the underlying content, and must not affect the content of a plain text copy & paste operation.
作者は、 意味論上の目的において, `text-transform$p に依拠してはナラナイ — 正しい[ 大小-法, 意味論 ]は、 ~source文書を成す[ ~text/~markup ]内に符号化するベキである。 ◎ Authors must not rely on text-transform for semantic purposes; rather the correct casing and semantics should be encoded in the source document text and markup.
各種 値の意味は: ◎ Values have the following meanings:
- `none@v
- 効果なし。 ◎ No effects.
- `capitalize@v
- 各~単語の最初の`~typographic字l単位$を,小文字であれば題字~化する — 他の文字は影響されない。 ◎ Puts the first typographic letter unit of each word, if lowercase, in titlecase; other characters are unaffected.
- 【 “小文字であれば” — おそらく、 この記述のみからは真意は伝わらないであろう — `詳細@https://lists.w3.org/Archives/Public/www-style/2015Mar/0144.html$ 】【 題字( `titlecase^en ) — 当の言語において,~~主要な単語の頭字を大文字~化するなどの~~慣習。 表題などによく用いられる。 】
- `uppercase@v
- すべての`字l$を,大文字~化する。 ◎ Puts all letters in uppercase.
- `lowercase@v
- すべての`字l$を,小文字~化する。 ◎ Puts all letters in lowercase.
- `full-width@v
- すべての`~typographic文字~単位$を`全角~形$にする。 対応する全角~形が無い文字は、 そのままにされる。 この値は概して、 ~Latin[ 字l/数字 ]を それらが表語-文字であったかのように植字するために利用される。 ◎ Puts all typographic character units in full-width form. If a character does not have a corresponding full-width form, it is left as is. This value is typically used to typeset Latin letters and digits as if they were ideographic characters.
- `full-size-kana@v
- すべての`小書き~Kana$文字を等価な`全部的~sizeの~Kana$へ変換する。 この値は、 概して,`~ruby注釈$を成す~text用に利用される — ~ruby内に小さい~font~sizeが利用されて判読し難くなるのを補うため、 作者は,小書き~Kanaをすべて大きい~Kanaに描かせたいと求めることもある。 ◎ Converts all small Kana characters to the equivalent full-size Kana. This value is typically used for ruby annotation text, where authors may want all small Kana to be drawn as large Kana to compensate for legibility issues at the small font sizes typically used in ruby.
日本語~text内の略語( `abbr^e )に利用されている~ASCII文字を、 全角~異体に変換して, 表語文字の様に~lay-outして, 行-分断する例: ◎ The following example converts the ASCII characters used in abbreviations in Japanese text to their full-width variants so that they lay out and line break like ideographs:
abbr:lang(ja) { text-transform: full-width; }
注記: `text-transform$p の目的は、 文書の意味論に影響することなく,大小変換による変形nを呈示において許容することにある。 特に, `text-transform$p による大小変換~演算は、 情報欠損を伴うので,~textの意味を歪めることもあることに注意。 ~accessibility~UIは,描画される~textの見かけ上の大小変換を利用者に伝達したいと望むこともあろうが、 変形された~textに依拠して,文書の下層の意味を正確aに表現することはできない。 ◎ Note: The purpose of text-transform is to allow for presentational casing transformations without affecting the semantics of the document. Note in particular that text-transform casing operations are lossy, and can distort the meaning of a text. While accessibility interfaces may wish to convey the apparent casing of the rendered text to the user, the transformed text cannot be relied on to accurately represent the underlying meaning of the document.
この例では、 ~textの最初の行lは,視覚-効果として大字~化される。 ◎ In this example, the first line of text is capitalized as a visual effect.
section > p:first-of-type::first-line { text-transform: uppercase; }
行l分断の位置は~layoutに依存するので、 この効果は,~source文書の中には記せない。 のみならず,この大字~化は、 意味論上の区別を反映しておらず,段落の読み取りに影響するよう意図されない — したがって,それは呈示~層に属する。 ◎ This effect cannot be written into the source document because the position of the line break depends on layout. But also, the capitalization is not reflecting a semantic distinction and is not intended to affect the paragraph’s reading; therefore it belongs in the presentation layer.
`~ruby注釈$を成す~textの~sizeは,対応する`~ruby基底$を成す~textの半分になるが、 この例では,`小書き~Kana$に代えて`全部的~sizeの~Kana$を利用するように変形される。 ◎ In this example, the ruby annotations, which are half the size of the main paragraph text, are transformed to use regular-size kana in place of small kana.
rt { font-size: 50%; text-transform: full-size-kana; }
:is(h1, h2, h3, h4) rt { text-transform: none; /*
大きい~text用には未設定にする
◎
unset for large text
*/ }
この変形nは、[ 印字~sizeが小さいときでも,そのような字lを見易くする ]が,~textを歪めることに注意。 読者は、 適切な箇所で,それらを脳内で`小書き~Kana$に読み替える必要がある — ~Latinにおいて,文字 “U” がすべて “V” の様な見かけで刻まれた語を読むときと似たようなものである。 ◎ Note that while this makes such letters easier to see at small type sizes, the transformation distorts the text: the reader needs to mentally substitute small kana in the appropriate places—not unlike reading a Latin inscription where all “U”s look like “V”s.
例えば,次の~sourceに
`text-transform$p: `full-size-kana$v
が適用された場合、
注釈された “~~十” の正しい読みと意味を与える注釈は,
`ten^en を意味する “じゅう” ではなく
`liberty^en を意味する “じゆう” と読まれることになる。
◎
For example, if text-transform: full-size-kana were applied to the following source, the annotation would read “じゆう” (jiyū), which means “liberty”, instead of “じゅう” (jū), which means “ten”, the correct reading and meaning for the annotated “十”.
<ruby>~~十<rt>じゅう</ruby>
2.1.1. 対応付け規則
`capitalize$v に対し,何が “単語” を成すかは~UAに依存する — そのような単語~境界の決定-法には、 `UAX29$r が示唆される(要求されてはいないが)。 [ 行内~要素の境界/`~flow外$にある要素 ]は、[ `text-transform$p に単語~境界を導入しない, かつ そのような単語~境界を決定するときには無視する ]モノトスル。 ◎ For capitalize, what constitutes a “word“ is UA-dependent; [UAX29] is suggested (but not required) for determining such word boundaries. Out-of-flow elements and inline element boundaries must not introduce a text-transform word boundary and must be ignored when determining such word boundaries.
注記: 作者は、 `capitalize$v が言語に特有な題字~化~規約に従うこと(~Englishにて,冠詞は飛ばすなど)には依存できない。 ◎ Note: Authors cannot depend on capitalize to follow language-specific titlecasing conventions (such as skipping articles in English).
~UAは、 ~Unicode文字に対し,[ `~Unicode$cite標準 § `Default Case Algorithms^en(既定の文字大小~algo) にて定義される,全部的な大小~対応付け ]を利用するモノトスル — 条件付き大小変換~規則が在れば それも含め。 言語に特有な適切な規則が在れば、[ `文書~言語$の規則に則って,要素の`内容~言語$が既知である ]とき, そのときに限り,それも適用するモノトスル。 これらは、 必要最小限であり,~Unicodeの `SpecialCasing.txt@~UNIDATA/SpecialCasing.txt$ による言語に特有な規則を含む。 ◎ The UA must use the full case mappings for Unicode characters, including any conditional casing rules, as defined in the Default Case Algorithms section of The Unicode Standard. [UNICODE] If (and only if) the content language of the element is, according to the rules of the document language, known, then any appropriate language-specific rules must be applied as well. These minimally include, but are not limited to, the language-specific rules in Unicode’s SpecialCasing.txt.
例えば~Turkishには、 ~dot付きの “i” ( `İ^lt / `i^lt )と, そうでない “i” ( `I^lt / `ı^lt )がある。 よって,通例の `I^lt 対 `i^lt による大小~対応付けは、[ ~Englishには存在しない,[ ~dotなし, ~dotあり ]それぞれに~~対応する 2 つの対応付け ]に置換される。 この対応付けは、 `内容~言語$が[ 現代の~Latinに基づく`書記~体系$で記された~Turkish(より~~一般には、 ~Turkicのうち,~Turkishの大小変換~規則を利用するもの) ]である場合に限り,効果を発揮するモノトスル — 他の言語の下では、 通例の `I^lt 対 `i^lt による対応付けが要求される。 よって,この規則は、 ~Unicodeの `SpecialCasing.txt@~UNIDATA/SpecialCasing.txt$ ~fileでは,条件付きとして定義される。 ◎ For example, in Turkish there are two “i”s, one with a dot—“İ” and “i”—and one without—“I” and “ı”. Thus the usual case mappings between “I” and “i” are replaced with a different set of mappings to their respective dotless/dotted counterparts, which do not exist in English. This mapping must only take effect if the content language is Turkish written in its modern Latin-based writing system (or another Turkic language that uses Turkish casing rules); in other languages, the usual mapping of “I” and “i” is required. This rule is thus conditionally defined in Unicode’s SpecialCasing.txt file.
[ `全角~形@ ( `full-width form^en )/ `半角~形@ ( `half-width form^en ) ]の定義は、 `UAX11$r にて見出せる。 `全角~形$への対応付けは、 `~Unicode文字~database$citeにおける `Decomposition_Mapping^c 内の[ `wide^e / `narrow^e ]~tagを伴う符号位置を取り出すことで定義される。 この対応付けは: ◎ The definition of full-width and half-width forms can be found in Unicode Standard Annex #11: East Asian Width. [UAX11] The mapping to full-width form is defined by taking code points with the <wide> or the <narrow> tag in their Decomposition_Mapping in Unicode Standard Annex #44: Unicode Character Database. [UAX44]\
- `narrow^e ~tagを伴う符号位置は、 その分解形(から `narrow^e ~tagを除いたもの)に対応付けられる。 ◎ For the <narrow> tag, the mapping is from the code point to the decomposition (minus <narrow> tag), and\
- `wide^e ~tagを伴う符号位置は、 その分解形(から `wide^e ~tagを除いたもの)に戻すように対応付けられる。 ◎ for the <wide> tag, the mapping is from the decomposition (minus the <wide> tag) back to the original code point.
`小書き~Kana$から`全部的~sizeの~Kana$への対応付けは、 付録 `§ 小書き~Kanaの対応付け@#small-kana$ にて定義される。 ◎ The mappings for small Kana to full-size Kana are defined in Appendix G: Small Kana Mappings.
2.1.2. 演算の順序
複数の値が指定されたため,複数の変形nを適用する必要がある場合、 次の順序で適用される ⇒# [ `capitalize$v / `uppercase$v / `lowercase$v ], `full-width$v, `full-size-kana$v ◎ When multiple values are specified and therefore multiple transformations need to be applied, they are applied in the following order: • capitalize, uppercase, and lowercase • full-width • full-size-kana
`~text変形n$が起こるのは、 `空白の縮約-法と変形n$より後, かつ`空白の削りと位置決め$より前である。 すなわち、[ `~space$のうち, `full-width$v により `3000^U `IDEOGRAPHIC SPACE^cn へ変形されるもの ]は`保全d空白$に限られる。 ◎ Text transformation happens after § 4.1.1 Phase I: Collapsing and Transformation but before § 4.1.2 Phase II: Trimming and Positioning. This means that full-width only transforms spaces (U+0020) to U+3000 IDEOGRAPHIC SPACE within preserved white space.
注記: `§ ~text演算の処理~順序@#order$ にて定義されるように、 ~textの変形-法は,行-分断法と他の整形~演算に影響することに注意。 ◎ Note: As defined in Appendix A: Text Processing Order of Operations, transforming text affects line-breaking and other formatting operations.
3. 空白と折返ng: `white-space^p ~prop
◎名 `white-space@p ◎値 `normal$v | `pre$v | `nowrap$v | `pre-wrap$v | `break-spaces$v | `pre-line$v ◎初 `normal^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 次の 2 つを指定する: ◎ This property specifies two things:
- `空白$を,縮約するかどうか/どう縮約するか。 ◎ whether and how white space is collapsed
- 各~行lを 非強制の`自動折返し機会$の所で`折返して$もヨイかどうか。 ◎ whether lines may wrap at unforced soft wrap opportunities
各種 値は,次の意味を持ち,[ `空白~処理~規則$, `行-分断ng規則$ ]に則って解釈するモノトスル: ◎ Values have the following meanings, which must be interpreted according to the White Space Processing and Line Breaking rules:
- `normal@v
- この値は、[ 各 `空白$並びを 1 個の文字に (`一部の事例@#line-break-transform$では 0 個の文字に) 縮約する ]ことを,~UAに指図する。 各~行lは、 `行内-軸$における~overflowを最小~化するよう,[ 有効な行-分断ng規則により決定される,許容される`自動折返し機会$ ]の所で折返してもヨイ。 ◎ This value directs user agents to collapse sequences of white space into a single character (or in some cases, no character). Lines may wrap at allowed soft wrap opportunities, as determined by the line-breaking rules in effect, in order to minimize inline-axis overflow.
- `pre@v
- ~UAは、 `空白$並びを縮約しないようにする。 `~LF$などの`区分~分断$は、 `強制d行-分断$として保全される。 各~行lは、 `強制d行-分断$の所に限り分断する — `塊~容器$の中に収まらない内容は~overflowする。 ◎ This value prevents user agents from collapsing sequences of white space. Segment breaks such as line feeds are preserved as forced line breaks. Lines only break at forced line breaks; content that does not fit within the block container overflows it.
- `nowrap@v
- `normal$v 同様,`空白$は縮約するが、 `pre$v 同様,折返ngは許容しない。 ◎ Like normal, this value collapses white space; but like pre, it does not allow wrapping.
- `pre-wrap@v
- `pre$v 同様,`空白$は保全するが、 `normal$v 同様,折返ngは許容する。 ◎ Like pre, this value preserves white space; but like normal, it allows wrapping.
- `break-spaces@v
-
次に該当する場合を除き、 `pre-wrap$v の挙動に一致する: ◎ The behavior is identical to that of pre-wrap, except that:
- [ `保全d空白$/`その他の~space分離子$ ]が成す並びは、 行lの末尾も含め,常に空間を占める。 ◎ Any sequence of preserved white space or other space separators always takes up space, including at the end of the line.
- 各[ `保全d空白$/`その他の~space分離子$ ]の後には (直後に別のそれがあっても)、 行l分断法~機会が存在する。 ◎ A line breaking opportunity exists after every preserved white space character and after every other space separator (including between adjacent spaces).
- 注記: この値は、 `空白$に因る~overflowが決して生じないことは保証しない。 例えば,行lの長さが 1 個の`空白$が収まるに満たないほど短い場合、 ~overflowは避けれない。 ◎ Note: This value does not guarantee that there will never be any overflow due to white space: for example, if the line length is so short that even a single white space character does not fit, overflow is unavoidable.
- `pre-line@v
- `normal$v 同様,[ 連続する`空白$は縮約する/折返ngは許容する ]が、 ~source内の`区分~分断$は,`強制d行-分断$として保全される。 ◎ Like normal, this value collapses consecutive white space characters and allows wrapping, but it preserves segment breaks in the source as forced line breaks.
空白~処理に因り[ 除去-/縮約- ]されなかった`空白$は、 `保全d空白@ と呼ばれる。 ◎ White space that was not removed or collapsed due to white space processing is called preserved white space.
注記: 行lの末尾にある[ `保全d空白$/`その他の~space分離子$ ]は、 一部の事例では`吊下がる$こともあり,[ `内在的~sizing$のために測定されるかどうか ]に影響し得る。 ◎ Note: In some cases, preserved white space and other space separators can hang when at the end of the line; this can affect whether they are measured for intrinsic sizing.
次の一覧(参考)に、 各種 `white-space$p 値の挙動を要約する: ◎ The following informative table summarizes the behavior of various white-space values:
改行文字 | ~spaceと~tab | ~textの折返ng | 行末にある~space | 行末にある`その他の~space分離子$ | |
---|---|---|---|---|---|
`normal$v | 縮約する | 縮約する | 折返n可 | 除去する | 吊下げる |
`pre$v | 保全する | 保全する | 折返n不可 | 保全する | 折返さない |
`nowrap$v | 縮約する | 縮約する | 折返n不可 | 除去する | 吊下げる |
`pre-wrap$v | 保全する | 保全する | 折返n可 | 吊下げる | 吊下げる |
`break-spaces$v | 保全する | 保全する | 折返n可 | 折返す | 折返す |
`pre-line$v | 保全する | 縮約する | 折返n可 | 除去する | 吊下げる |
`空白$がどう縮約されるかの詳細は、 `空白~処理~規則$を見よ。 ◎ See White Space Processing Rules for details on how white space collapses.
折返ngの挙動の詳細は、 `行-分断ng規則$を見よ。 ◎ See Line Breaking for details on wrapping behavior.
4. 空白~処理の詳細と制御~文字
文書の~source~textは、[ 最終的な描画には関連しない整形 ]を包含することが多い: 例えば,編集を容易にするため、 `~sourceを何~区分(行l)かに分断し@https://rhodesmill.org/brandon/2012/one-sentence-per-line/$た上で,`~tab$や`~space$などの`空白$を追加して~source~codeを字下げするなど。 ~CSSによる空白~処理は (それは、 `white-space$p ~propで制御される)、 作者がそのような整形の解釈を制御して,文書を描画するときに[ 保全する/取去る ]ことを~~可能にする。 ~CSSによる空白~処理が`空白$を解釈するのは、 描画~用に限られる — 下層の文書~dataに効果が及ぶことはない。 ◎ The source text of a document often contains formatting that is not relevant to the final rendering: for example, breaking the source into segments (lines) for ease of editing or adding white space characters such as tabs and spaces to indent the source code. CSS white space processing allows the author to control interpretation of such formatting: to preserve or collapse it away when rendering the document. White space processing in CSS (which is controlled with the white-space property) interprets white space characters only for rendering: it has no effect on the underlying document data.
注記: ~textを成す各~区分は、 文書~言語に依存して,[ 特定0の改行文字~並び (`~LF$や[ `~CR$, `~LF$ ]並びなど) ]で分離されることも,[ SGML の[ `RECORD-START^c/`RECORD-END^c ]~tokenなどの,何らかの他の仕組み ]により区切られることもある。 ◎ Note: Depending on the document language, segments can be separated by a particular newline sequence (such as a line feed or CRLF pair), or delimited by some other mechanism, such as the SGML RECORD-START and RECORD-END tokens.
~CSS処理においては、 ~text内の各[ 文書~言語が定義する “区分~分断” や “改行文字” / あるいは何も定義されていない場合は`~LF$ ]は, `区分~分断@ ( `segment break^en )として扱われる — それらは、 描画~時には `white-space$p ~propに指定されたとおりに解釈される。 ◎ For CSS processing, each document language–defined “segment break” or “newline sequence”—or if none are defined, each line feed (U+000A)—in the text is treated as a segment break, which is then interpreted for rendering as specified by the white-space property.
~HTMLの事例では、 各 改行文字~並びは,~DOM内の表現~用には `1 個の~LFに正規化される@~HTMLwriting#newlines$ので、 ~HTML文書が~DOM~treeとして表現されるとき,各`~LF$は`区分~分断$として扱われる。 `HTML$r `DOM$r ◎ In the case of HTML, each newline sequence is normalized to a single line feed (U+000A) for representation in the DOM, so when an HTML document is represented as a DOM tree each line feed (U+000A) is treated as a segment break. [HTML] [DOM]
注記: ほとんどの共通的な~CSS実装においては、 ~HTMLは,直に~styleされない — 代わりに~DOM~treeの中に処理されてから,~styleが適用される。 ~HTMLと違って、 ~DOMは`~CR$に特定0の意味を与えないので,それらは`区分~分断$として扱われない。 `~CR$が~HTML構文解析~以外の手段により~DOMの中へ挿入された場合、 それらは以下に定義されるとおりに扱われるようになる。 ◎ Note: In most common CSS implementations, HTML does not get styled directly. Instead, it is processed into a DOM tree, which is then styled. Unlike HTML, the DOM does not give any particular meaning to carriage returns (U+000D), so they are not treated as segment breaks. If carriage returns (U+000D) are inserted into the DOM by means other than HTML parsing, they then get treated as defined below.
注記: 文書の構文解析器は、 `区分~分断$を正規化するのみならず,[ 他の~space文字も縮約したり,~markup規則に則って空白を処理する ]こともあることに注意。 ~CSS処理は,この構文解析より`後に生じる^emので、 ~style付けのために これらの文字を戻すことはアリでない。 この制限の影響により、 下に指定される挙動のうち一部は,~UAに依存することもある。 ◎ Note: A document parser might not only normalize any segment breaks, but also collapse other space characters or otherwise process white space according to markup rules. Because CSS processing occurs after the parsing stage, it is not possible to restore these characters for styling. Therefore, some of the behavior specified below can be affected by these limitations and may be user agent dependent.
注記: `縮約-可能$な`空白$のみからなる`匿名$な`塊$は、 描画~treeから除去されることに注意。 よって、 `塊~level$の要素の周囲に そのような`空白$が在れば,取去られる。 `CSS2$r `§ 匿名~塊~box@~CSS2VISUREN#anonymous-block-level$ を見よ。 ◎ Note: Anonymous blocks consisting entirely of collapsible white space are removed from the rendering tree. Thus any such white space surrounding a block-level element is collapsed away. See Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification § visuren#anonymous. [CSS2]
制御~文字( `~Unicode字種$ `Cc^uc )のうち[ `~tab$, `~LF$, `~CR$, `区分~分断$を形成する並び ]以外のものに対しては、 ~UAは次を行うモノトスル: ◎ Control characters (Unicode category Cc)—other than tabs (U+0009), line feeds (U+000A), carriage returns (U+000D) and sequences that form a segment break—\
- 可視な~glyphとして描画する — ~font内に見出された~glyphは可視でない場合には、 それを合成した上で。 ◎ must be rendered as a visible glyph which the UA must synthesize if the glyphs found in the font are not visible,\
- 他に関しては、[ `~Unicode字種$ `Other Symbols^uc( `So^uc )や, `Common^uc `用字系$ ]に属する文字と同じに扱う — ~UAは、 次のいずれかをしてヨイ ⇒# ~fontにて,当の制御~文字~用に特定的に供されている~glyphを利用する / Control Pictures 【~Unicode】~blockにて供される,対応する記号を成す~glyphで代用する / その符号位置~値の視覚的な表現を生成する / 何らかの他の~methodを利用して,適切な可視な~glyphを供する ◎ and must be otherwise treated as any other character of the Other Symbols (So) general category and Common script. The UA may use a glyph provided by a font specifically for the control character, substitute the glyphs provided for the corresponding symbol in the Control Pictures block, generate a visual representation of its code point value, or use some other method to provide an appropriate visible glyph.\
`~Unicode$citeから要求されるように、 ~supportしない `Default_ignorable^uc 文字は,~text描画~用には無視するモノトスル。 ◎ As required by Unicode, unsupported Default_ignorable characters must be ignored for text rendering. [UNICODE]
`~CR$は、 すべてに関し,`~space$と同じに扱われる。 ◎ Carriage returns (U+000D) are treated identically to spaces (U+0020) in all respects.
注記: ~HTML文書~用には、 ~source~code内に在る`~CR$は,構文解析~段階にて`~LF$に変換されるので ( `HTML$r `§ 入力~streamの前処理-法@~HTMLparsing#preprocessing-the-input-stream$, `INFRA$r の`改行文字を正規化する$~algoを見よ)、 ~CSSにおいては`~CR$として現れることはない。 しかしながら,`当の文字は保全され^em、 ~escape列( `
^c )を利用して符号化されたときには,上の規則は観測-可能になる。 ◎ Note: For HTML documents, carriage returns present in the source code are converted to line feeds at the parsing stage (see HTML § 13.2.3.5 Preprocessing the input stream and the definition of normalize newlines in Infra and therefore do no appear as U+000D CARRIAGE RETURN to CSS. [HTML] [INFRA]) However, the character is preserved—and the above rule observable—when encoded using an escape sequence (
).
4.1. 空白~処理~規則
他が指定されない限り、 ~CSSによる空白~処理は,`文書~空白$のみに影響する。 次に挙げるものが, `文書~空白@ ( `document white space character^en )とされる ⇒# `~space$, `~tab$, `区分~分断$ ◎ Except where specified otherwise, white space processing in CSS affects only the document white space characters: spaces (U+0020), tabs (U+0009), and segment breaks.
【 単に “空白” とも称される (他の定義による空白と区別する必要がない所では)。 “空白” は、 原文では[ `white space^en または `white space character^en ]と記されているが、 この訳では “`character^en” は省略して,一律に “空白” と記す。 】
注記: `文書~空白$(文書~内容の一部)と見なされる文字の集合と, 構文上の空白(~CSS構文の一部)と見なされる文字の集合とは、 一致するとは限らないことに注意。 しかしながら、 両者とも[ `~space$, `~tab$, `~LF$ ]を含むので、 ほとんどの作者は,その相違に気付かないであろう。 ◎ Note: The set of characters considered document white space (part of the document content) and those considered syntactic white space (part of the CSS syntax) are not necessarily identical. However, since both include spaces (U+0020), tabs (U+0009), and line feeds (U+000A) most authors won’t notice any differences.
`~Unicode$citeは、[ `~space$, `00A0^U `NO-BREAK SPACE^cn ]の他にも,追加的な~space分離子~文字をいくつか定義している。 この仕様においては、 `~Unicode字種$ `Zs^uc に属する文字のうち[ `~space$, `00A0^U `NO-BREAK SPACE^cn ]以外のものは, `その他の~space分離子@ と総称される。 ◎ Besides space (U+0020) and no-break space (U+00A0), Unicode defines a number of additional space separator characters. [UNICODE] In this specification all characters in the Unicode general category Zs except space (U+0020) and no-break space (U+00A0) are collectively referred to as other space separators.
4.1.1. 空白の縮約-法と変形n
`行内~整形~文脈$の中の各 `行内$(`匿名$な`行内~box$も含む)における`空白$は、[ `行-分断法$, `双向性による並替ng$ ]に先立って,以下に従って処理される — `双向-整形~文字@ ( `Bidi_Control^uc ~propが伴われた文字 `UAX9$r 【 `Directional Formatting Characters@~UTR/tr9/#Directional_Formatting_Codes$en 】) は,そこに無かったかのように無視する下で、 `white-space$p の値に応じて: ◎ For each inline (including anonymous inlines; see Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification § visuren#anonymous [CSS2]) within an inline formatting context, white space characters are processed as follows prior to line breaking and bidi reordering, ignoring bidi formatting characters (characters with the Bidi_Control property [UAX9]) as if they were not there:
- `normal$v
- `nowrap$v
- `pre-line$v
-
`空白$は `縮約-可能@ であると見なされ,次の手続きで処理される: ◎ If white-space is set to normal, nowrap, or pre-line, white space characters are considered collapsible and are processed by performing the following steps:
- `区分~分断$の[ 直前/直後 ]にある`縮約-可能$な[ 文字 ~IN { `~space$, `~tab$ } ]たちが成す並びは、 どれも除去する。 ◎ Any sequence of collapsible spaces and tabs immediately preceding or following a segment break is removed.
- `縮約-可能$な`区分~分断$を描画するときは、 `区分~分断の変形n規則$に則って変形する。 ◎ Collapsible segment breaks are transformed for rendering according to the segment break transformation rules.
- `縮約-可能$な各`~tab$は、 `縮約-可能$な 1 個の`~space$に変換する。 ◎ Every collapsible tab is converted to a collapsible space (U+0020).
- [ `縮約-可能$な`~space$ %S0 の直後に別の縮約-可能な`~space$ %S1 がある ]かつ[ %S0, %S1 は同じ`行内~整形~文脈$の中にある ]場合、 %S1 の送幅を 0 に縮約する (それは不可視になるが、 それによる`自動折返し機会$は維持する) — %S1 が[ %S0 を包含している`行内$ ]の境界の外側にあったとしても。 ◎ Any collapsible space immediately following another collapsible space—even one outside the boundary of the inline containing that space, provided both spaces are within the same inline formatting context—is collapsed to have zero advance width. (It is invisible, but retains its soft wrap opportunity, if any.)
- `pre$v
- `pre-wrap$v
- `break-spaces$v
- どの~space並びも分断されない~space並びとして扱われる。 しかしながら、 `pre-wrap^v に対しては,[ 文字 ~IN { `~space$, `~tab$ } ]が成す各~並びの終端に`自動折返し機会$が存在し、 `break-spaces^v に対しては,どの[ `~space$/`~tab$ ]の後にも`自動折返し機会$が存在する。 ◎ If white-space is set to pre, pre-wrap, or break-spaces, any sequence of spaces is treated as a sequence of non-breaking spaces. However, for pre-wrap, a soft wrap opportunity exists at the end of a sequence of spaces and/or tabs, while for break-spaces, a soft wrap opportunity exists after every space and every tab.
次の例に、 `~space$について特別に注意すべき,空白の縮約-法と双方向性との相互作用を示す。 次の~markup断片を考える (各~spaceは、[ 色/背景/~border ]で~~区別される): ◎ The following example illustrates the interaction of white-space collapsing and bidirectionality. Consider the following markup fragment, taking special note of spaces (with varied backgrounds and borders for emphasis and identification):
<ltr>A <rtl> B </rtl> C</ltr>
ここで、 `ltr^e 要素は 右向き埋込みを表現し, `rtl^e 要素は 左向き埋込みを表現する。 `white-space$p ~propが `normal$v に設定されている場合、 空白~処理~modelの結果は,次のようになる: ◎ where the <ltr> element represents a left-to-right embedding and the <rtl> element represents a right-to-left embedding. If the white-space property is set to normal, the white-space processing model will result in the following:
- `B^lt の前にある`~space$ ( )と, `A^lt の後にある`~space$ ( )とが,縮約される。 ◎ The space before the B ( ) will collapse with the space after the A ( ).
- `C^lt の前にある`~space$ ( )と, `B^lt の後にある`~space$ ( )とが,縮約される。 ◎ The space before the C ( ) will collapse with the space after the B ( ).
これは、 2 個の`~space$を残す — `A^lt の後にある右向き埋込み~level内のものと, `B^lt の後にある左向き埋込み~level内のもの。 それから,~textは`~Unicode双方向-~algo$citeに則って順序付けられ、 ~~最終~結果は次のようになる: ◎ This will leave two spaces, one after the A in the left-to-right embedding level, and one after the B in the right-to-left embedding level. The text will then be ordered according to the Unicode bidirectional algorithm, with the end result being:
A BC
`~space$は、 `A^lt ↔ `B^lt 間に 2 個, `B^lt ↔ `C^lt 間は 0 個 になることに注意。 これを避ける最善~~策は、[ 各`~space$を 開き/閉じ ~tagのすぐ内側に~~置かず,要素の外側に~~置く ]こと, および[ 実用的になる所では,明示的な埋込み~levelの代わりに暗黙的な双方向性に依拠する ]ことである。 ◎ Note that there will be two spaces between A and B, and none between B and C. This is best avoided by putting spaces outside the element instead of just inside the opening and closing tags and, where practical, by relying on implicit bidirectionality instead of explicit embedding levels.
4.1.2. 空白の削りと位置決め
塊~全体は、 `空白の縮約-法と変形n$の後に描画される — 各 `行内$は、 `双向性による並替ng$を織り込みつつ, `white-space$p ~propに指定されたとおりに`折返ng$を入れながら~lay-outされる。 各~行lを~lay-outしていくに伴い: ◎ Then, the entire block is rendered. Inlines are laid out, taking bidi reordering into account, and wrapping as specified by the white-space property. As each line is laid out,
- 行lの先頭にある`縮約-可能$な`~space$並びは,除去する。 ◎ A sequence of collapsible spaces at the beginning of a line is removed.
-
`保全され$た`~tab$たちは、 `~tab~size$が 0 の場合は描画されない。 他の場合,それらの各~tabは、[ 直後の~glyphが、 横方向【`行内~基底~方向$】にズラされ,その始端~辺が 次の`~tab停$に~~揃う ]ような間隔として描画される。 ただし,ズラす距離が `0.5ch^v 未満になる場合、 その次の`~tab停$が代わりに利用される。 `~tab停@ ( `tab stop^en ) 【行lの始端からの整列~位置】 たちが成す~~集合は、[ それらの`~tab$に最も近い[ `塊~容器$である先祖 ]の`内容~box$の始端~辺 ]から`~tab~size$の整数倍の地点からなる。 `~tab~size$は、 `tab-size$p ~propで与えられる。 ◎ If the tab size is zero, preserved tabs are not rendered. Otherwise, each preserved tab is rendered as a horizontal shift that lines up the start edge of the next glyph with the next tab stop. If this distance is less than 0.5ch, then the subsequent tab stop is used instead. Tab stops occur at points that are multiples of the tab size from the starting content edge of the preserved tab’s nearest block container ancestor. The tab size is given by the tab-size property.
注記: `~tab$が双向性とどう相互作用するかについては、 `~Unicode双方向-~algo$citeの `規則 L1@~UTR/tr9/#L1$ を見よ。 ◎ Note: See the Unicode rules on how tabulation (U+0009) interacts with bidi. [UAX9]
-
行lの末尾にある`縮約-可能$な`~space$並びは、 除去する。 行lの末尾の `1680^U `OGHAM SPACE MARK^cn も、 その `white-space$p ~propが[ `normal$v / `nowrap$v / `pre-line$v ]ならば,除去する。 ◎ A sequence of collapsible spaces at the end of a line is removed, as well as any trailing U+1680 OGHAM SPACE MARK whose white-space property is normal, nowrap, or pre-line.
注記: `~Unicode双方向-~algo$citeの `規則 L1@~UTR/tr9/#L1$ に因り、 `双向性による並替ng$ `CSS-WRITING-MODES-4$r の前に行lの末尾に在った`縮約-可能$な`~space$並びは,並替ngの後にも行lの末尾にあり続けることになる。 ◎ Note: Due to Unicode Bidirectional Algorithm rule L1, a sequence of collapsible spaces located at the end of the line prior to bidi reordering will also be at the end of the line after reordering. [UAX9] [CSS-WRITING-MODES-4]
-
(`双向性による並替ng$の後において)行lの末尾に[ 文字 ~IN { `空白$, `その他の~space分離子$, `保全され$た`~tab$ } ]が成す並びがまだある場合、 `white-space$p に設定された値に応じて: ◎ If there remains any sequence of white space, other space separators, and/or preserved tabs at the end of a line (after bidi reordering [CSS-WRITING-MODES-4]):
- `normal$v / `nowrap$v / `pre-line$v ◎ If white-space is set to normal, nowrap, or pre-line,\
- ~UAは、 その並びを`吊下げる$モノトスル(無条件に) ◎ the UA must hang this sequence (unconditionally).
- `pre-wrap$v ◎ If white-space is set to pre-wrap,\
- ~UAは、 その並びがある行lに[ `強制d行-分断$が後続している場合は`条件付きで吊下げる$/ ~ELSE_(無条件に)`吊下げる$ ]モノトスル。 また,その並びが~overflowするときには、 並びを成す各~文字の送幅を視覚的に縮約してもヨイ。 ◎ the UA must (unconditionally) hang this sequence, unless the sequence is followed by a forced line break, in which case it must conditionally hang the sequence instead. It may also visually collapse the character advance widths of any that would otherwise overflow.
- 注記: 空白を縮約せずに吊下げれば、 利用者は,~textを選択したり編集するときに それらを見れるようになる。 ◎ Note: Hanging the white space rather than collapsing it allows users to see the space when selecting or editing text.
- `break-spaces$v ◎ If white-space is set to break-spaces,\
-
[ `~space$/`~tab$/`その他の~space分離子$ ]は、 他の可視な文字と同じに扱われる。 それらは、 `吊下げる$ことも, 送幅を縮約することもできない。 ◎ spaces, tabs, and other space separators are treated the same as other visible characters: they cannot hang nor have their advance width collapsed.
注記: したがって、 そのような文字は空間を占める — その結果、[ 可用な空間/適用-可能な行l分断法の制御 ]に依存して,~overflowするか行lを折返させることになる。 ◎ Note: Such characters therefore take up space, and depending on the available space and applicable line breaking controls will either overflow or cause the line to wrap.
この例は、 行lの末尾にて,強制d分断を伴う空白が`条件付きで吊下がる$とき,行lの両端が対称になる様子を示す。 ◎ This example shows that conditionally hanging white space at the end of lines with forced breaks provides symmetry with the start of the line.\
各~spaceは、 可視化する都合により `005F^gU で表される。 ◎ An underline is added to help visualize the spaces.
p { white-space: pre-wrap; width: 5ch; border: solid 1px; font-family: monospace; text-align: center; }
<p>_0_</p>
上の見本は、 次のように描画されることになる: ◎ The sample above would be rendered as follows:
最後にある`~space$は、 `強制d行-分断$の前にあり,~overflowしないので、 吊下がらない — 中央寄せは期待されるように働く。 ◎ Since the final space is before a forced line break and does not overflow, it does not hang, and centering works as expected.
この例は、 行lの末尾にある`~space$が,[ 強制d分断が~~後続しているため`吊下がる$場合, 強制d分断が~~後続しないため`条件付きで吊下がる$場合 ]の相違を示す。 ◎ This example illustrates the difference between hanging spaces at the end of lines without forced breaks, and conditionally hanging them at the end of lines with forced breaks.\
各~spaceは、 可視化する都合により `005F^gU で表される。 ◎ An underline is added to help visualize the spaces.
p { white-space: pre-wrap; width: 3ch; border: solid 1px; font-family: monospace; }
<p>_0_0_0_0_</p>
上の見本は、 次のように描画されることになる: ◎ The sample above would be rendered as follows:
0_0_
0_
`p { text-align: right; }^css が追加された場合、 結果は次のようになる: ◎ If p { text-align: right; } was added, the result would be as follows:
0_0_
0_
行lの末尾にある`保全され$た`~space$は、 `強制d行-分断$が~~後続するかどうかに応じて: ◎ ↓
- ~~後続しない場合、 `吊下がら$なければナラナイので,~text整列の間に行lを成す残りを配置するときには考慮されない。 そのような`~space$は~overflowするので、 行lを成す残りの内容は,終端へ向けて整列される場合には行lの終端~辺に接合されることになる。 ◎ As the preserved spaces at the end of lines without a forced break must hang, they are not considered when placing the rest of the line during text alignment. When aligning towards the end, this means any such spaces will overflow, and will not prevent the rest of the line’s content from being flush with the edge of the line.\
- `~~後続する場合^em、 `条件付きで吊下がる$。 この例における最後の行lの末尾にある~spaceは、 ~overflowしないので,`吊下がら$ない — したがって,~text整列の間に考慮される。 ◎ On the other hand, preserved spaces at the end of a line with a forced break conditionally hang. Since the space at the end of the last line would not overflow in this example, it does not hang and therefore is considered during text alignment.
次の例では,行lの末尾にある~spaceは、 どの行lにおいても,収まるに十分な部屋がないため`吊下がる$ — 強制d分断が~~後続する行lでは,そうすることが要求され、 ~~後続しない行lでは,`条件付きで吊下がる$結果 ~overflowするので。 ◎ In the following example, there is not enough room on any line to fit the end-of-line spaces, so they hang on all lines: the one on the line without a forced break because it must, as well as the one on the line with a forced break, because it conditionally hangs and overflows.\
各~spaceは、 可視化する都合により `005F^gU で表される。 ◎ An underline is added to help visualize the spaces.
p { white-space: pre-wrap; width: 3ch; border: solid 1px; font-family: monospace; }
<p>0_0_0_0_</p>
0_0_
最後の行lは、 最後の `0030^gU の前では折返されない — `条件付きで吊下がる$文字は、 行lの内容が収まるかどうか測定するときには考慮されないので。 ◎ The last line is not wrapped before the last 0 because characters that conditionally hang are not considered when measuring the line’s contents for fit.
4.1.3. 区分~分断の変形n規則
`区分~分断$は、 `white-space$p の値に応じて,次のように変形される: ◎ ↓
- `pre$v
- `pre-wrap$v
- `break-spaces$v
- `pre-line$v
- `区分~分断$は`縮約-可能$でない — 代わりに,`保全され$る`~LF$に変形される。 ◎ When white-space is pre, pre-wrap, break-spaces, or pre-line, segment breaks are not collapsible and are instead transformed into a preserved line feed (U+000A).
- `normal$v
- `nowrap$v
-
`区分~分断$は`縮約-可能$になり、 次に従って縮約される: ◎ For other values of white-space, segment breaks are collapsible, and are collapsed as follows:
- `区分~分断$のうち,直前に別の区分~分断が在るものは、 除去する。 ◎ First, any collapsible segment break immediately following another collapsible segment break is removed.
-
残りの`区分~分断$は、 当の分断の前後の文脈に依存して, 1 個の`~space$に変形するか除去する — この演算~用の規則は、 この~levelでは,~UAにより定義される。 ◎ Then any remaining segment break is either transformed into a space (U+0020) or removed depending on the context before and after the break. The rules for this operation are UA-defined in this level.
注記: この文脈が評価される前に、 分断の[ 直前/直後 ]にある`~tab$や`~space$は,空白~処理~規則により すでに除去されていることに注意。 ◎ Note: The white space processing rules have already removed any tabs and spaces around the segment break before this context is evaluated.
区分~分断の変形n規則(より一般には空白の縮約-法)の目的は、 文書の~source~code内の `いくつかの区分に分断された~text@#white-space-processing$ を “未分断にして” 作業し易くすることである。 ~Englishや韓国語などの単語~分離子を利用する言語において,行lを “未分断にする” ときは、 2 つの行lを 1 個の`~space$【に等価な間隔】で繋げることが要求される。 ◎ The purpose of the segment break transformation rules (and white space collapsing in general) is to “unbreak” text that has been broken into segments to make the document source code easier to work with. In languages that use word separators, such as English and Korean, “unbreaking” a line requires joining the two lines with a space.
Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read and edited in a text editor.
Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read and edited in a text editor.
【 “ここには、~text~editor内で読み易くかつ編集し易くなるよう,~source~code内で複数の行lに分断された~English段落がある。” 】中国語などの単語~分離子が無い言語において,行lを “未分断にする” ときは、 2 つの行lを~spaceを挟まずに繋げることが要求される。 ◎ In languages that have no word separators, such as Chinese, “unbreaking” a line requires joining the two lines with no intervening space.
這個段落是那麼長,
在一行寫不行。最好
用三行寫。
這個段落是那麼長,在一行寫不行。最好用三行寫。
区分~分断の変形n規則では、 区分~分断を 1 個の~spaceに変形するか, まるごと排するときに,隣接な文脈を利用し得る。 ◎ The segment break transformation rules can use adjacent context to either transform the segment break into a space or eliminate it entirely.
注記: 歴史的に,~HTML/~CSSは、 `区分~分断$を無条件に`~space$に変換していた。 それは、 中国語などの言語で著作される内容において,~sourceを~~改行できなくしていた。 ~UAの経験則は、 そのような言語~用の~supportを改善しようと図るときでも,どこで`区分~分断$を破棄するかについては保守的になる必要がある。 ◎ Note: Historically, HTML and CSS have unconditionally converted segment breaks to spaces, which has prevented content authored in languages such as Chinese from being able to break lines within the source. Thus UA heuristics need to be conservative about where they discard segment breaks even as they strive to improve support for such languages.
4.2. ~tab文字~size: `tab-size^p ~prop
◎名 `tab-size@p ◎値 `number$t | `length$t ◎初 `8^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された実数/絶対~長さ ◎ the specified number or absolute length ◎順 n/a ◎ア 算出d値の型による ◎表終この~propは、 `保全され$た`~tab$を描画するときに利用される `~tab~size@ を決定する。 `number$t は、[ その実数 ~MUL [ 当の`~tab$に最も近い[ `塊~容器$である先祖 ]における,`~space$の送幅 ]]による行内~sizeを表現する — この送幅には、 それに結付けられている `letter-spacing$p, `word-spacing$p も含まれる。 負な値は許容されない。 ◎ This property determines the tab size used to render preserved tab characters (U+0009). A <number> represents the measure as a multiple of the advance width of the space character (U+0020) of the nearest block container ancestor of the preserved tab, including its associated letter-spacing and word-spacing. Negative values are not allowed.
5. 行-分断法と単語~境界
`行内~level$の内容は、 行lたちに~lay-outされるときに,いくつかの`行l~box$に渡って分断( `break^en, “改行” )される。 そのような各~分断は、 `行-分断@ ( `line break^en, または単に分断)と呼ばれる†。 [ 明示的な行-分断法の制御(`保全され$た改行文字など), あるいは塊の[ 開始/終了 ]]に因る行-分断は、 `強制d行-分断@ ( `forced line break^en )と呼ばれる。 行lが内容の `折返ng@ ( `wrapping^en )に因り分断される (すなわち,~UAが内容を行内~sizeに収めるために,非強制の行-分断を作成する) ことを `自動折返し分断@ ( `soft wrap break^en )という。 `行内~level$の内容を何~行lかに分断する処理-は、 `行-分断法@ ( `line-breaking^en )と呼ばれる。 ◎ When inline-level content is laid out into lines, it is broken across line boxes. Such a break is called a line break. When a line is broken due to explicit line-breaking controls (such as a preserved newline character), or due to the start or end of a block, it is a forced line break. When a line is broken due to content wrapping (i.e. when the UA creates unforced line breaks in order to fit the content within the measure), it is a soft wrap break. The process of breaking inline-level content into lines is called line breaking.
【† 行-分断 — “改行” の方が馴染まれているであろうが、 “分断” それ自体が自立する用語の役割も担うため、 用語とその用法の体系を保つ観点から,この訳では “行-分断” と記すことにする。 一般に、 折返ngは~layout上の効果, 分断は(そのような効果を生じさせるような)抽象的な区切りを表す。 】
折返ngが遂行されるのは、 許容される分断点に限られる — そのような分断点は `自動折返し機会@ ( `soft wrap opportunity^en )と呼ばれる。 折返ngが可能化された下では( `white-space$p を見よ)、 ~UAは,内容が行lを~overflowする量を最小~化するモノトスル — `自動折返し機会$が存在するならば,そこで行lを折返すことにより。 ◎ Wrapping is only performed at an allowed break point, called a soft wrap opportunity. When wrapping is enabled (see white-space), the UA must minimize the amount of content overflowing a line by wrapping the line at a soft wrap opportunity, if one exists.
ほとんどの書記~体系では、 `自動折返し機会$が生じる所は,単語~境界に限られる (`~hyphen化$が無い下では)。 そのような体系の多くが、 `~space$や約物†を利用して単語を明示的に分離させており,`自動折返し機会$はこれらの文字で識別できる。 しかしながら, ~Thai, ~Lao, ~Khmer, などの用字系では、 単語を分離するような`~space$や約物を利用しない。 これらの用字系においては、 明示的な単語~区切子として 零幅~space( `200B^U )を利用できるが,この実施は共通的なものではない。 その結果、 そのような~textにおいて`自動折返し機会$を正しく識別するための,字句-資源が必要になる。 ◎ In most writing systems, in the absence of hyphenation a soft wrap opportunity occurs only at word boundaries. Many such systems use spaces or punctuation to explicitly separate words, and soft wrap opportunities can be identified by these characters. Scripts such as Thai, Lao, and Khmer, however, do not use spaces or punctuation to separate words. Although the zero width space (U+200B) can be used as an explicit word delimiter in these scripts, this practice is not common. As a result, a lexical resource is needed to correctly identify soft wrap opportunities in such texts.
【† 具体的にどの文字が約物( `punctuation mark^en, または単に `punctuation^en )と見なされるかは、 用字系のみならず,各種~layout処理も含め、 文脈に応じて様々になるかもしれない。 】
一部の書記~体系では、 `自動折返し機会$は — 単語~境界ではなく — 正書法~上の音節~境界に基づいている。 これらの体系のうち,~Javaneseや~Balineseなど一部は、 ~Thaiや~Laoと類似に 分断する機会を見出すために分析を要する。 中国語など(あるいは 日本語, ~Yi, ときには韓国語も),他の書記~体系においては、 各~音節は単独の`~typographic字l単位$に対応する傾向にあり,行-分断法~規約により[ 一定の組合nによる文字 ]↔間を`除き^em,どこでも行lを分断することが許容される。 加えて、 これらの制約における`厳密さ$の~levelは,植字~styleにより様々になり得る。 ◎ In some other writing systems, soft wrap opportunities are based on orthographic syllable boundaries, not word boundaries. Some of these systems, such as Javanese and Balinese, are similar to Thai and Lao in that they require analysis of the text to find breaking opportunities. In others such as Chinese (as well as Japanese, Yi, and sometimes also Korean), each syllable tends to correspond to a single typographic letter unit, and thus line breaking conventions allow the line to break anywhere except between certain character combinations. Additionally the level of strictness in these restrictions varies with the typesetting style.
~CSSは,`自動折返し機会$が生じる所を全部的には定義しないが、 共通的な多様さを判別するための制御をいくつか供する。 ◎ While CSS does not fully define where soft wrap opportunities occur, some controls are provided to distinguish common variations:
- `line-break$p ~propは、 行l分断法の制約~用に様々な~levelの “厳密さ” を選べるようにする。 ◎ The line-break property allows choosing various levels of “strictness” for line breaking restrictions.
- `word-break$p ~propは、[ どの型の字lどうしが一まとめにされ,分断-不能な “単語” を形成するか ]を制御し、 ~CJK文字を非~CJK~textの様に, あるいはその逆に挙動させる。 ◎ The word-break property controls what types of letters are glommed together to form unbreakable “words”, causing CJK characters to behave like non-CJK text or vice versa.
- `hyphens$p ~propは、 ~hyphen化するような用字系において,単語を分断する自動的な~hyphen化を許容するかどうかを制御する。 ◎ The hyphens property controls whether automatic hyphenation is allowed to break words in scripts that hyphenate.
- `overflow-wrap$p ~propは、[ 他では分断-不能で~overflowすることになる文字列 ]内のどこでも分断-可能にすることを,~UAに許容する。 ◎ The overflow-wrap property allows the UA to take a break anywhere in otherwise-unbreakable strings that would otherwise overflow.
注記: `UAX14$r は、 ~Unicode内のすべての用字系に対し,行-分断法のための基底線の挙動を定義する — それらは、 さらに誂えられるものと期待されている。 行-分断法~規約の情報は、[ 日本語については `JLREQ$r, `JIS4051$r / 中国語については `CLREQ$r, `ZHMARK$r ]にもっと見出せる。 他の言語についての情報は、 `国際化~WG@~I18N/$による `TYPOGRAPHY$r `§ 行lと段落@~TR/typography/#blocks_paragraphs$ に含まれている。 ここに示すべき,適切な文献について追加的な指導があれば、 とてもありがたい。 ◎ Note: Unicode Standard Annex #14: Unicode Line Breaking Algorithm defines a baseline behavior for line breaking for all scripts in Unicode, which is expected to be further tailored. [UAX14] More information on line breaking conventions can be found in Requirements for Japanese Text Layout [JLREQ] and Formatting Rules for Japanese Documents [JIS4051] for Japanese, Requirements for Chinese Text Layout [CLREQ] and General Rules for Punctuation [ZHMARK] for Chinese. See also the Internationalization Working Group’s Language Enablement Index which includes more information on additional languages. [TYPOGRAPHY] Any guidance on additional appropriate references would be much appreciated.
5.1. 行-分断法の詳細
`行-分断$を決定するときは: ◎ When determining line breaks:
-
`行-分断法$と双方向-~textとの相互作用は、 次により定義される:
- `CSS-WRITING-MODES-4$r `§ 双方向-並替ng~algoの適用-法@~CSSWM#bidi-algo$
- `~Unicode双方向-~algo$cite — 特に,その `§ 解決された~levelたちの並替ng@~UTR/tr9/#Reordering_Resolved_Levels$
-
`保全され$た`区分~分断$, および — `white-space$p の値を問わず — `~Unicode行-分断法~class$[ `BK^uc, `NL^uc ]に属する~Unicode文字 は、 強制d行l分断として扱うモノトスル。 ◎ Preserved segment breaks, and—regardless of the white-space value—any Unicode character with the the BK and NL line breaking class, must be treated as forced line breaks. [UAX14]
注記: そのような`強制d行-分断$に対する双向性による含意は、 `~Unicode双方向-~algo$citeにて定義される。 ◎ Note: The bidi implications of such forced line breaks are defined by the Unicode Bidirectional Algorithm. [UAX9]
-
明示的に他が定義された所
(例:
`line-break$p1: `anywhere$v1
や`overflow-wrap$p1: `anywhere$v1
) を除き、 `~Unicode行-分断法~class$[ `WJ^uc, `ZW^uc, `GL^uc, `ZWJ^uc ]用に定義される行-分断法の挙動は,尊守するモノトスル。 ◎ Except where explicitly defined otherwise (e.g. for line-break: anywhere or overflow-wrap: anywhere) line breaking behavior defined for the WJ, ZW, GL, and ZWJ Unicode line breaking classes must be honored. [UAX14] -
[
`単語~分離子$以外の,`書記~体系$に利用される約物
]の所でも折返ngを許容する~UAは、
それらによる分断点に優先順位を与えるベキである
(例えば,[
~slashの後にある分断
]に~spaceより低い順位が与えられた場合、
並び
"`check /etc^c"
は,
`/^lt ↔ `e^lt
間では,決して分断しないことになる)。
そのような不自然な分断は避けるよう配慮される限り、
単語~分離子~以外の適切な約物の所でも分断を許容することは,推奨される
— 特に行内~sizeが狭小な下では、
結果の~marginの見かけは,より均等になるので。
~UAは、
順位をアテガう際に[
`包含塊$の横幅【`論理-横幅$】,
~textの言語,
`line-break$p 値,
その他の要因
]を利用してもヨイ
— ~CSSは、
行l分断法~機会の順位付けを定義しない。
しかしながら,`単語~分離子$の順位付けは、
`word-break$p1: `break-all$v1
が指定されている場合は期待されない (この値は、 行-分断法の挙動が単語~分離子における行-分断法に基づかないことを明示的に要求するので) ことに加え,`line-break$p1: `anywhere$v1
の下では禁止される。 ◎ UAs that allow wrapping at punctuation other than word separators in writing systems that use them should prioritize breakpoints. (For example, if breaks after slashes are given a lower priority than spaces, the sequence “check /etc” will never break between the "/" and the "e".) As long as care is taken to avoid such awkward breaks, allowing breaks at appropriate punctuation other than word separators is recommended, as it results in more even-looking margins, particularly in narrow measures. The UA may use the width of the containing block, the text’s language, the line-break value, and other factors in assigning priorities: CSS does not define prioritization of line breaking opportunities. Prioritization of word separators is not expected, however, if word-break: break-all is specified (since this value explicitly requests line breaking behavior not based on breaking at word separators)—and is forbidden under line-break: anywhere. - [ 行内~要素の境界/`~flow外$にある要素 ]が、 ~flow内に[ `強制d行-分断$/`自動折返し機会$ ](順不同)を導入することはない。 【例:~flow外にある要素を~flow内にある内容から外した “跡” の所など】 ◎ Out-of-flow elements and inline element boundaries do not introduce a forced line break or soft wrap opportunity in the flow.
- ~Web互換性を得るため、 各[ 置換される要素/他の`不可分な行内$ ]の[ 前, 後 ]には,`自動折返し機会$がある — 隣接な文字が、 `00A0^U `NO-BREAK SPACE^cn など,通常は それらを抑止する場合でも。 ◎ For Web-compatibility there is a soft wrap opportunity before and after each replaced element or other atomic inline, even when adjacent to a character that would normally suppress them, such as U+00A0 NO-BREAK SPACE.
- 行-分断の所で消える文字(例: `~space$)により作成される`自動折返し機会$に対しては、 その文字を直に包含している~box上の~propが,その機会における行-分断法を制御する。 ◎ For soft wrap opportunities created by characters that disappear at the line break (e.g. U+0020 SPACE), properties on the box directly containing that character control the line breaking at that opportunity.\
- 文字↔間の境界により定義される`自動折返し機会$に対しては、 その 2 個の文字に最も近い共通な先祖~上の `white-space$p ~propが分断法を制御する — そのような境界が`自動折返し機会$になるかどうかの決定は、 要素の[ `line-break$p, `word-break$p, `overflow-wrap$p ]~propが制御するが,この~level 3 仕様においては定義されない。 ◎ For soft wrap opportunities defined by the boundary between two characters, the white-space property on the nearest common ancestor of the two characters controls breaking; which elements’ line-break, word-break, and overflow-wrap properties control the determination of soft wrap opportunities at such boundaries is undefined in Level 3.
- ~boxの[ 最初の文字の前/最後の文字の後 ]の`自動折返し機会$に対しては、 分断は,~boxの[ 直前/直後 ](の~margin辺の所)に生じる — ~boxを その[ 内容~辺 ↔ 内容 ]間で分断するのではなく。 ◎ For soft wrap opportunities before the first or after the last character of a box, the break occurs immediately before/after the box (at its margin edge) rather than breaking the box between its content edge and the content.
- `~ruby$の中/周りにおける行-分断法は、 `CSS-RUBY-1$r `§ 複数~行lへの分断-法@~CSSRUBY#line-breaks$ にて定義される。 ◎ Line breaking in/around Ruby is defined in CSS Ruby Annotation Layout 1 § 3.4 Breaking Across Lines. [CSS-RUBY-1]
-
[ 期待されない~overflowを避けるよう,行lを分断する ]ためには,`内容~言語$に必須な[ 字句-分析/正書法~上の分析 ]が要求されるが、 ~UAは — 例えば,一定の言語~用の辞書を欠くことに因り — それが遂行-不能な場合には,[ 該当する書記~体系における~typographic字l単位↔間には、 `自動折返し機会$がある ]と見做すモノトスル。 ◎ In order to avoid unexpected overflow, if the user agent is unable to perform the requisite lexical or orthographic analysis for line breaking any content language that requires it—for example due to lacking a dictionary for certain languages—it must assume a soft wrap opportunity between pairs of typographic letter units in that writing system.
注記: この条項は、 ~UAが特定0の`~text連なり$内に単語~境界を見出せなかっただけでは,誘発されない — その~text連なりが分断-不能な単独の単語である場合など。 この条項は、 例えば,次の場合に適用される ⇒ 当の~text連なりは,~Khmer文字( `1780^U 〜 `17FF^U )から構成されていて、 ~UAは,~Khmerにおいて単語~境界を決定する方法を知らない ◎ Note: This provision is not triggered merely when the UA fails to find a word boundary in a particular text run; the text run may well be a single unbreakable word. It applies for example when a text run is composed of Khmer characters (U+1780 to U+17FF) if the user agent does not know how to determine word boundaries in Khmer.
5.2. 字l用の分断ng規則: `word-break^p ~prop
◎名 `word-break@p ◎値 `normal$v | `keep-all$v | `break-all$v | `break-word$v ◎初 `normal^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 字l↔間の`自動折返し機会$ — すなわち、 ~text行lのどこが,分断を許可-可能な “通常の所” とされるか — を指定する。 特定的には、 `~typographic字l単位$↔間に[ `自動折返し機会$は,一般に存在するかどうか ]を制御する — ただし,この目的に限り、 `~Unicode行-分断法~class$[ `NU^uc / `AL^uc / `AI^uc / `ID^uc ]に属する(`字l$でない)`~typographic文字~単位$も`~typographic字l単位$として扱うとする。 ◎ This property specifies soft wrap opportunities between letters, i.e. where it is “normal” and permissible to break lines of text. Specifically it controls whether a soft wrap opportunity generally exists between adjacent typographic letter units, treating non-letter typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes as typographic letter units for this purpose (only). [UAX14]\
この~propは、[ `自動折返し機会$のうち[ `空白$や`その他の~space分離子$により作成される/約物の周りに作成される ]もの ]を統治する規則には,影響しない (約物や`小書き~Kana$に影響する制御については、 `line-break$p を見よ)。 ◎ It does not affect rules governing the soft wrap opportunities created by white space (as well as by other space separators) and around punctuation. (See line-break for controls affecting punctuation and small kana.)
例えば,~CJK植字では、
~styleによっては、
~English単語は,[
~spaceの所/~hyphen化~地点
]のみならず,どの字l↔間でも分断が許容される
— これは
`word-break$p: `break-all$v
で可能化できる。
◎
For example, in some styles of CJK typesetting, English words are allowed to break between any two letters, rather than only at spaces or hyphenation points; this can be enabled with word-break:break-all.
日本語~text内の英単語 ‘caption’ が ‘capt’ と ‘ion’ に分断されて 2 行lに分かれる様子。 ◎ A snippet of Japanese text with English in it. The word ‘caption’ is broken into ‘capt’ and ‘ion’ across two lines.
別の例として、
韓国語の行-分断法には 2 種の~styleがある
— 韓国語~音節↔間
( `word-break$p: `normal$v
),
または~Englishと同様に~~主に~spaceの所で
( `word-break$p: `keep-all$v
):
◎
As another example, Korean has two styles of line-breaking: between any two Korean syllables (word-break: normal) or, like English, mainly at spaces (word-break: keep-all).
각 줄의 마지막에 한글이 올 때 줄 나눔 기 준을 “글자” 또는 “어절” 단위로 한다.
각 줄의 마지막에 한글이 올 때 줄 나눔 기준을 “글자” 또는 “어절” 단위로 한다.
~Ethiopicの行-分断法にも同様に 2 種の~styleがある
— `単語~分離子$の所に限り分断するか
( `word-break$p: `normal$v
),
単語の中の各~字l↔間にも分断を許容する
( `word-break$p: `break-all$v
):
◎
Ethiopic similarly has two styles of line-breaking, either only breaking at word separators (word-break: normal), or also allowing breaks between letters within a word (word-break: break-all).
ተወልዱ፡ኵሉ፡ሰብእ፡ግዑዛን፡ወዕሩያን፡ በማዕረግ፡ወብሕግ።ቦሙ፡ኅሊና፡ወዐቅል፡ ወይትጌበሩ፡አሐዱ፡ምስለ፡አሀዱ፡ በመንፈሰ፡እኍና።
ተወልዱ፡ኵሉ፡ሰብእ፡ግዑዛን፡ወዕሩያን፡በማ ዕረግ፡ወብሕግ።ቦሙ፡ኅሊና፡ወዐቅል፡ወይትጌ በሩ፡አሐዱ፡ምስለ፡አሀዱ፡በመንፈሰ፡እኍና።
注記: ~overflowする場合に限り,追加的な分断~機会を可能化するときは、 `overflow-wrap$p を見よ。 ◎ Note: To enable additional break opportunities only in the case of overflow, see overflow-wrap.
各種 値の意味は: ◎ Values have the following meanings:
- `normal@v
- `行-分断ng規則$にて述べたように,単語を その慣例の規則に則って分断する。 異なる 2 種の共通的な挙動を呈する韓国語では、 連続する どの[ ~Hangul, ~Hanja ]↔間でも分断が許容される。 同じく 2 種の挙動を呈する~Ethiopicでは、 そのような分断は単語の中では許容されない。 ◎ Words break according to their customary rules, as described above. Korean, which commonly exhibits two different behaviors, allows breaks between any two consecutive Hangul/Hanja. For Ethiopic, which also exhibits two different behaviors, such breaks within words are not allowed.
- `break-all@v
-
`normal$v による`自動折返し機会$に加えて、 “単語” の中で分断することも許容される。 特定的には,行-分断法の目的においては、 次に挙げるものは,代わりに `ID^uc ( `ideographic character^en, 表語-文字)として扱われる:
- `~typographic字l単位$
- `~typographic文字~単位$のうち,その`~Unicode行-分断法~class$が 次のいずれかに解決されるもの ⇒# `NU^uc ( “`numeric^en” = 数量- ) `AL^uc ( “`alphabetic^en” = ~alphabetic ) `SA^uc ( “`Southeast Asian^en” = 東南Asian )
- ~hyphen化は適用されない。 ◎ Hyphenation is not applied.
- 注記:
この値は、
約物~周りの`自動折返し機会$には影響しない。
分断をどこでも許容したければ,
`line-break$p1: `anywhere$v1
を見よ。 ◎ Note: This value does not affect whether there are soft wrap opportunities around punctuation characters. To allow breaks anywhere, see line-break: anywhere. - 注記: この選択肢は、 ~Ethiopic用に,他の共通的な挙動を可能化する。 また、[ ~CJK文字が元々支配的で,非~CJK~textは 短い引用に限られる文脈 ]の下で[ ~textを各~行lに,より良好に分布させたいと欲されるとき ]に利用されることも多い。 ◎ Note: This option enables the other common behavior for Ethiopic. It is also often used in a context where the text consists predominantly of CJK characters with only short non-CJK excerpts, and it is desired that the text be better distributed on each line.
- `keep-all@v
- “単語” の中で分断することは、 禁止される: `~typographic字l単位$ (あるいは,`~Unicode行-分断法~class$[ `NU^uc / `AL^uc / `AI^uc / `ID^uc ]に属する他の`~typographic文字~単位$) ↔間の,暗黙的な`自動折返し機会$は抑止される — すなわち,そのような文字↔間の分断は、 辞書に基づく分断法に因り存在する機会を除いて,禁則される ( `line-break$p1 に対する `anywhere$v1 以外の設定に関わらず)。 他に関しては、 `normal$v と等価になる。 この~styleにおいては、 ~CJK文字~並びは分断しない。 ◎ Breaking is forbidden within “words”: implicit soft wrap opportunities between typographic letter units (or other typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes [UAX14]) are suppressed, i.e. breaks are prohibited between pairs of such characters (regardless of line-break settings other than anywhere) except where opportunities exist due to dictionary-based breaking. Otherwise this option is equivalent to normal. In this style, sequences of CJK characters do not break.
- 注記: これは、 韓国語における もう一つの共通的な挙動(単語↔間に`~space$を利用する)である。 また、[ `~space$を分離に利用するような別の言語の中に,~CJK片が混在している ]ような,混在用字系~textに対しても有用になる。 ◎ Note: This is the other common behavior for Korean (which uses spaces between words), and is also useful for mixed-script text where CJK snippets are mixed into another language that uses spaces for separation.
特定0の字種に属する字lと同じ仕方で行-分断する記号は、 それらの字lと同じ仕方で影響される。 ◎ Symbols that line-break the same way as letters of a particular category are affected the same way as those letters.
混在用字系~textの見本: ◎ Here’s a mixed-script sample text:
分断点( ‘·’ で指示される)は、 `word-break$p 値に応じて,次のように決定される: ◎ The break-points are determined as follows (indicated by ‘·’):
- `normal^v
- `这·是·一·些·汉·字·and·some·Latin^lt·`#648·#6A9#645#6CC·#62E#637·#639#631#628#6CC^lt·`และ·ตัวอย่าง·การเขียน·ภาษาไทย·በጽሑፍ፡·ማራዘሙን፡·አንዳንድ፡^lt
- `break-all^v
- `这·是·一·些·汉·字·a·n·d·s·o·m·e·L·a·t·i·n^lt·`#648·#FB90·#FEE4·#FEF0·#FEA7·#FEC1·#FECB·#FEAE·#FE91·#FEF0^lt·`แ·ล·ะ·ตั·ว·อ·ย่·า·ง·ก·า·ร·เ·ขี·ย·น·ภ·า·ษ·า·ไ·ท·ย·በ·ጽ·ሑ·ፍ፡·ማ·ራ·ዘ·ሙ·ን፡·አ·ን·ዳ·ን·ድ፡^lt
- `keep-all^v
- `这是一些汉字·and·some·Latin^lt·`#648·#6A9#645#6CC·#62E#637·#639#631#628#6CC^lt·`และ·ตัวอย่าง·การเขียน·ภาษาไทย·በጽሑፍ፡·ማራዘሙን፡·አንዳንድ፡^lt
~Arabicなどの用字系を形状付ける際には、 `break-all$v に因り単語の中の分断が許容される文字は,その単語が`分断されなかった@#word-break-shaping$かのように形状付けるモノトスル (`単語~内の分断をまたがる形状付け@#word-break-shaping$を見よ)。 ◎ When shaping scripts such as Arabic are allowed to break within words due to break-all the characters must still be shaped as if the word were not broken (see § 5.6 Shaping Across Intra-word Breaks).
旧来の内容との互換性を得るため、
`word-break$p ~propは,非推奨にされた
`break-word@v
~keywordも~supportする。
指定されたときは、[
`word-break$p1: `normal$v1
,
`overflow-wrap$p1: `anywhere$v1
]にされたときと同じ効果になるとする
— `overflow-wrap^p ~propの実際の値に関わらず。
◎
For compatibility with legacy content, the word-break property also supports a deprecated break-word keyword. When specified, this has the same effect as word-break: normal and overflow-wrap: anywhere, regardless of the actual value of the overflow-wrap property.
5.3. 行-分断法の厳密さ: `line-break^p ~prop
◎名 `line-break@p ◎値 `auto$v | `loose$v | `normal$v | `strict$v | `anywhere$v ◎初 `auto^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 要素の中で適用される行-分断ng規則の`厳密さ$を指定する — とりわけ、 `折返ng$が 約物や記号 と どう相互作用するかについて。 各種 値の意味は: ◎ This property specifies the strictness of line-breaking rules applied within an element: especially how wrapping interacts with punctuation and symbols. Values have the following meanings:
- `auto@v
- ~UAが、 行-分断法を制約するために利用する規則の集合を決定する。 制約は、 行lの長さに基づいて様々になり得る — 例えば短い行lに対しては、 より制約が緩い規則の集合を利用するなど。 ◎ The UA determines the set of line-breaking restrictions to use, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.
- `loose@v
- 最も制約が緩い行-分断ng規則の集合を利用して~textを分断する。 概して、 新聞など,行lが短いものに対し利用される。 ◎ Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.
- `normal@v
- 最も共通的な行-分断ng規則の集合を利用して~textを分断する。 ◎ Breaks text using the most common set of line-breaking rules.
- `strict@v
- 最も厳格な行-分断ng規則の集合を利用して~textを分断する。 ◎ Breaks text using the most stringent set of line-breaking rules.
- `anywhere@v
-
`自動折返し機会$は、 どの~typographic文字~単位の周りにもある:
- これには、[ 約物/`保全d空白$/単語の途中 ]も含まれる。
- 行-分断に抗する禁則は、 無視rする — `~Unicode行-分断法~class$[ `GL^uc / `WJ^uc / `ZWJ^uc ]に属する文字により導入されるものや, `word-break$p ~propにより義務付けられるものであっても。
- 異なる折返ng機会は優先されないモノトスル。 ~hyphen化は適用されない。 ◎ The different wrapping opportunities must not be prioritized. Hyphenation is not applied.
- 注記: この値は、 概して~terminalに見られる行-分断ng規則を誘発する。 ◎ Note: This value triggers the line breaking rules typically seen in terminals.
-
注記: `anywhere$v は、 `white-space$p1 が `break-spaces$v1 に設定されているときに限り,行lの末尾にある`保全d空白$を次の行lに折返すのを許容する — 他の事例では、 次により許容されない: ◎ Note: anywhere only allows preserved white spaces at the end of the line to be wrapped to the next line when white-space is set to break-spaces, because in other cases:
- `normal$v1 / `pre-line$v1 の場合 ⇒ 行lの終端や始端にある`保全d空白$は、 破棄されるので。 ◎ preserved white space at the end/start of the line is discarded (normal, pre-line)
- `nowrap$v1 / `pre$v1 の場合 ⇒ 折返ngは、 総じて禁止されるので。 ◎ wrapping is forbidden altogether (nowrap, pre)
- `pre-wrap$v1 の場合 ⇒ `保全d空白$は、 `吊下がる$ので。 ◎ the preserved white space hang (pre-wrap).
`break-spaces$v1 による,そのような効果による分断ngは、 `保全d空白$の並びを成す最初の~spaceの前にて許容される。
`white-space$p: `break-spaces^v
だけで許容されることはない。 ◎ When it does have an effect on preserved white space, with white-space: break-spaces, it allows breaking before the first space of a sequence, which break-spaces on its own does not.
~CSSでは、 ~text折返ng規則の `厳密さ@ が, 4 ~level 【すなわち、`line-break^p に対する `auto^v 以外の値】 で判別される。 そのうち[ `loose^v / `normal^v / `strict^v ]~levelに対し有効な規則の集合が精確にどうなるかは、 ~UAに委ねられ,言語ごとの規約に従うベキである。 しかしながら,この仕様では、 次については要求される: ◎ CSS distinguishes between four levels of strictness in the rules for text wrapping. The precise set of rules in effect for each of loose, normal, and strict is up to the UA and should follow language conventions. However, this specification does require that:
-
次に挙げる分断は、 行-分断法が `strict$v のときは禁止され,[ `normal$v / `loose$v ]のときは許容される: ◎ The following breaks are forbidden in strict line breaking and allowed in normal and loose:
- 次に挙げる日本語の文字 — すなわち,`~Unicode行-分断法~class$ `CJ^uc に属する文字 — の前にある分断 ⇒# `小書き~Kana$ / 長音符 `30FC^gU `KATAKANA-HIRAGANA PROLONGED SOUND MARK^cn / 長音符 `FF70^gU `HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK^cn ◎ breaks before Japanese small kana or the Katakana-Hiragana prolonged sound mark, i.e. characters from the Unicode line breaking class CJ. [UAX14]
-
次に挙げる分断は、 `書記~体系$が[ `中国語$wsまたは`日本語$ws ]である下では,行-分断法が[ `normal$v / `loose$v ]のときは許容され,他のとき【すなわち, `strict^v ?】は禁止される: ◎ The following breaks are allowed for normal and loose line breaking if the writing system is Chinese or Japanese, and are otherwise forbidden:
- 次に挙げる[ ~CJKにおける,~hyphenの様な文字 ]の前にある分断 ⇒# `301C^gU, `30A0^gU ◎ breaks before certain CJK hyphen-like characters: 〜 U+301C, ゠ U+30A0
-
次に挙げる分断は、 行-分断法が `loose$v かつ[ 先行する文字が`~Unicode行-分断法~class$ `ID^uc に属する ]ときは許容され (
`word-break$p: `break-all^v
に因り, 先行する文字が `ID^uc として扱われる場合も含む), 他のときは禁止される: ◎ The following breaks are allowed for loose line breaking if the preceding character belongs to the Unicode line breaking class ID [UAX14] (including when the preceding character is treated as ID due to word-break: break-all), and are otherwise forbidden:- 次に挙げる~hyphenの前にある分断 ⇒# `2010^gU, `2013^gU ◎ breaks before hyphens: ‐ U+2010, – U+2013
-
次に挙げる分断は、 行-分断法が[ `normal$v / `strict$v ]のときは禁止され, `loose$v のときは許容される: ◎ The following breaks are forbidden for normal and strict line breaking and allowed in loose:
- 次に挙げる反復符の前にある分断 ⇒# `3005^gU, `303B^gU, `309D^gU, `309E^gU, `30FD^gU, `30FE^gU ◎ breaks before iteration marks: 々 U+3005, 〻 U+303B, ゝ U+309D, ゞ U+309E, ヽ U+30FD, ヾ U+30FE
- 次に挙げる分離-不能~文字↔間の分断 ⇒ `~Unicode行-分断法~class$ `IN^uc に属する文字 ( `2025^gU, `2026^gU など)。 ◎ breaks between inseparable characters (such as ‥ U+2025, … U+2026) i.e. characters from the Unicode line breaking class IN. [UAX14]
-
次に挙げる分断は、 `書記~体系$が[ `中国語$wsまたは`日本語$ws ]である下では,行-分断法が `loose$v のときは許容され,他のとき【すなわち, `strict^v / `normal^v ?】は禁止される: ◎ The following breaks are allowed for loose if the writing system is Chinese or Japanese and are otherwise forbidden:
- 次に挙げる `centered^en 約物符の前にある分断 ⇒# `30FB^gU, `FF1A^gU, `FF1B^gU, `FF65^gU, `203C^gU, `2047^gU, `2048^gU, `2049^gU, `FF01^gU, `FF1F^gU ◎ breaks before certain centered punctuation marks: ・ U+30FB, : U+FF1A, ; U+FF1B, ・ U+FF65, ‼ U+203C, ⁇ U+2047, ⁈ U+2048, ⁉ U+2049, ! U+FF01, ? U+FF1F
- 次に挙げる接尾辞の前にある分断 ⇒# `~Unicode行-分断法~class$ `PO^uc に属する文字, `東Asian字幅~prop$ `UAX11$r が[ `Ambiguous^uc/ `Fullwidth^uc / `Wide^uc ]である文字 ◎ breaks before suffixes: Characters with the Unicode line breaking class PO [UAX14] and the East Asian Width property [UAX11] Ambiguous, Fullwidth, or Wide.
- 次に挙げる接頭辞の後にある分断 ⇒# `~Unicode行-分断法~class$ `PR^uc に属する文字, `東Asian字幅~prop$ `UAX11$r が[ `Ambiguous^uc/ `Fullwidth^uc / `Wide^uc ]である文字 ◎ breaks after prefixes: Characters with the Unicode line breaking class PR [UAX14] and the East Asian Width property [UAX11] Ambiguous, Fullwidth, or Wide.
注記: 上に挙げた要件により~~差異が生じるのは、 ~CJK~textに限られる。 上の規則のみに合致し,追加的な規則は無い実装においては、 `line-break$p が影響するのは~CJK符号位置に限られる — 当の書記~体系が[ `中国語$ws/`日本語$ws ]であると~tag付けられていない限り。 この仕様の将来~levelでは、 他の書記~体系や言語~用にも — 要件が既知になり次第 — それに特有な規則を追加し得る。 ◎ Note: The requirements listed above only create distinctions in CJK text. In an implementation that matches only the rules above, and no additional rules, line-break would only affect CJK code points unless the writing system is tagged as Chinese or Japanese. Future levels may add additional specific rules for other writing systems and languages as their requirements become known.
~UAは、[ `strict$v, `normal$v, `loose$v ]の間にさらに~~差異を追加できる。 これらの値は、 他の書記~体系においても相違を露にし得る。 例えば,~Thai 言語~処理~用に十分高度な能を有する~UAは、 これらの~keywordを~Thaiの行-分断法において異なる~levelの`厳密さ$に対応付けることも選べる — 例: `strict$v の下では,複合語の中の分断は許容しない (例: `ตัวอย่างการเขียนภาษาไทย^lt を `ตัวอย่าง·การเขียน·ภาษาไทย^lt として分断する) 一方で、 `loose$v の下では,もっと分断を許容する ( `ตัวอย่าง·การ·เขียน·ภาษา·ไทย^lt として分断する) など。 ◎ As UAs can add additional distinctions between strict/normal/loose modes, these values can exhibit differences in other writing systems as well. For example, a UA with sufficiently-advanced Thai language processing ability could choose to map different levels of strictness in Thai line-breaking to these keywords, e.g. disallowing breaks within compound words in strict mode (e.g. breaking ตัวอย่างการเขียนภาษาไทย as ตัวอย่าง·การเขียน·ภาษาไทย) while allowing more breaks in loose (ตัวอย่าง·การ·เขียน·ภาษา·ไทย).
注記: ~CSS~WGは、 この仕様の将来~版では、 最高品質出版の要件を満たすためには,行-分断法に対するより精緻な制御が必要とされ得るものと認識している。 ◎ Note: The CSSWG recognizes that in a future edition of the specification finer control over line breaking may be necessary to satisfy high-end publishing requirements.
5.4. ~hyphen化: `hyphens^p ~prop
`~hyphen化@ は、 通例的には分断が許容されない所で段落の~layoutを改善するためにある,制御された単語の分割-法であり、 概して、 単語を[ 音節的な部分/形態素 ]の境界で分割し,それを視覚的に指示する (通例的に~hyphen `2010^gU を挿入する)。 一部の事例では、 ~hyphen化は,単語の綴りも改めることがある。 にも関わらず、 ~hyphen化の効果は描画に限られる — 下層の文書~内容や, ~textの[ 選択/探索処理 ]には、 効果を発揮しないモノトスル。 ◎ Hyphenation is the controlled splitting of words where they usually would not be allowed to break to improve the layout of paragraphs, typically splitting words at syllabic or morphemic boundaries and visually indicating the split (usually by inserting a hyphen, U+2010). In some cases, hyphenation may also alter the spelling of a word. Regardless, hyphenation is a rendering effect only: it must have no effect on the underlying document content or on text selection or searching.
各~言語にわたる~hyphen化 ◎ Hyphenation Across Languages
~hyphen化の実施は、 言語に応じて変わり,次を孕み得る ⇒# ~hyphenを行l分断より前のみならず後(あるいは前後両方)に挿入する/ ~hyphenとして `2010^U とは異なる文字を挿入する/ 当の単語の綴りを変更する ◎ Hyphenation practices vary across languages, and can involve not just inserting a hyphen before the line break, but inserting a hyphen after the break (or both), inserting a different character than U+2010, or changing the spelling of the word.
言語 | 未分断 | 前 | 後 |
---|---|---|---|
~English | Unbroken | Un‐ | broken |
~Dutch | cafeetje | café‐ | tje |
~Hungarian | Összeg | Ösz‐ | szeg |
~Mandarin | tú’àn | tú‐ | àn |
àizēng‐fēnmíng | àizēng‐ | ‐fēnmíng | |
~Uyghur | داميدى | داميـ | دى |
~hyphen化は、 妥当な `~hyphen化~機会@ で行-分断する際に生じる — それは、 ~hyphen化が許容される単語の中に存在する,`自動折返し機会$の一種である。 ~CSSにおいては、 `~hyphen化~機会$は `hyphens$p ~propにより制御される。 この仕様の~levelでは,~hyphen化~用の正確な規則は定義されないが、 ~UAには,[ 言語に適切な~hyphen化~地点を選ぶよう,自身が選ぶ分断点を最適化する ]ことが強く奨励される。 ◎ Hyphenation occurs when the line breaks at a valid hyphenation opportunity, which is a type of soft wrap opportunity that exists within a word where hyphenation is allowed. In CSS hyphenation opportunities are controlled with the hyphens property. CSS Text Level 3 does not define the exact rules for hyphenation; however UAs are strongly encouraged to optimize their choice of break points and to chose language-appropriate hyphenation points.
注記: [ `002D^gU `HYPHEN-MINUS^cn / `2010^gU `HYPHEN^cn ]により導入される`自動折返し機会$は、 `~hyphen化~機会$ではない — 折返されたとしても,分割-の視覚的な指示は`作成されない^em。 これらの文字は、 そこで行lが折返されるかどうかを問わず,可視になる。 ◎ Note: The soft wrap opportunity introduced by the U+002D - HYPHEN-MINUS character or the U+2010 ‐ HYPHEN character is not a hyphenation opportunity, as no visual indication of the split is created when wrapping: these characters are visible whether the line is wrapped at that point or not.
`~hyphen化~機会$は、 `最小-内容 内在的~size$を計算するときには,`考慮される^em。 ◎ Hyphenation opportunities are considered when calculating min-content intrinsic sizes.
注記: これは、 包含塊を~overflowしないよう,~tableの内容を~hyphen化することを許容する — それは、 ~Germanの様な単語が長い言語にとって特に重要になる。 ◎ Note: This allows tables to hyphenate their contents instead of overflowing their containing block, which is particularly important in long-word languages like German.
◎名 `hyphens@p ◎値 `none$v | `manual$v | `auto$v ◎初 `manual^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 ~text行lの中で,[ `自動折返し機会$を作成するような`~hyphen化$ ]を更に許容するかどうかを制御する。 各種 値の意味は: ◎ This property controls whether hyphenation is allowed to create more soft wrap opportunities within a line of text. Values have the following meanings:
- `none@v
- 単語は、 内側の文字が明示的に`~hyphen化~機会$を定義していても,~hyphen化されない。 ◎ Words are not hyphenated, even if characters inside the word explicitly define hyphenation opportunities.
- 注記: これは、[ 文字[ `002D^gU `HYPHEN-MINUS^cn / `2010^gU `HYPHEN^cn ]などの常に可視な文字 ]により導入される既存の`自動折返し機会$は,抑止しない。 ◎ Note: This does not suppress the existing soft wrap opportunities introduced by always visible characters such as U+002D - HYPHEN-MINUS or U+2010 ‐ HYPHEN.
- `manual@v
-
単語が~hyphen化されるのは、 内側の文字が明示的に`~hyphen化~機会$を示唆する所に限られる。 ~UAは: ◎ Words are only hyphenated where there are characters inside the word that explicitly suggest hyphenation opportunities. The UA\
- 言語に特有な適切な~hyphen化~文字(たち)を利用するモノトスル。 ◎ must use the appropriate language-specific hyphenation character(s) and\
- 適切に綴りを変更するベキである — 同じ地点における自動的な~hyphen化と同じに。 ◎ should apply any appropriate spelling changes just as for automatic hyphenation at the same point.
~Unicodeでは、 `00AD^U は 条件付き “~soft-hyphen( `soft hyphen^en )” とされ, `2010^U は 無条件な~hyphenとされる。 `UAX14$r は、 ~Unicodeの行-分断法における `~soft-hyphenの役割@~UTR/tr14/#SoftHyphen$ を述べている。 ~HTMLにおいては、 `­^c 【 Soft HYphen 】が~soft-hyphen文字を表現し,~hyphen化~機会を示唆する。 ◎ In Unicode, U+00AD is a conditional "soft hyphen" and U+2010 is an unconditional hyphen. Unicode Standard Annex #14 describes the role of soft hyphens in Unicode line breaking. [UAX14] In HTML, ­ represents the soft hyphen character, which suggests a hyphenation opportunity.
ex­ample
- `auto@v
- 単語は、[ 条件付き~hyphenにより明示的に指示されるもの ]に加えて,[ 言語に適切な`~hyphen化~資源$により自動的に決定される,`~hyphen化~機会$ ]の所でも分断されてヨイ。 単語が条件付き~hyphen — `­^c ( `00AD^U `SOFT HYPHEN^cn ) — を包含する場合、 それが~~選好され, 当の単語の中の他所における自動的な~hyphen化~機会は無視するモノトスル。 しかしながら,[ そのような機会で分断した後でも、 その単語のある部位が 1 行lに収まるには,まだ長過ぎる ]場合には、 自動的な~hyphen化~機会も利用してヨイ。 ◎ Words may be broken at hyphenation opportunities determined automatically by a language-appropriate hyphenation resource in addition to those indicated explicitly by a conditional hyphen. Automatic hyphenation opportunities elsewhere within a word must be ignored if the word contains a conditional hyphen (­ or U+00AD SOFT HYPHEN), in favor of the conditional hyphen(s). However, if, even after breaking at such opportunities, a portion of that word is still too long to fit on one line, an automatic hyphenation opportunity may be used.
正しい自動的な~hyphen化は、 分断される~textの言語に適切な `~hyphen化~資源@ を要求する。 したがって,~UAは、[ `内容~言語$が既知である, かつ それに適切な~hyphen化~資源がある ]場合に限り,~textを自動的に~hyphen化するモノトスル。 ◎ Correct automatic hyphenation requires a hyphenation resource appropriate to the language of the text being broken. The UA must therefore only automatically hyphenate text for which the content language is known and for which it has an appropriate hyphenation resource.
正しい自動的な~hyphen化を得するためには、 作者は,内容の`言語$に正しい~tagをあてがうベキである (例:[ ~HTML内では `lang^a 属性 / ~XML内では `xml:lang^a 属性 ]を利用して)。 ◎ Authors should correctly tag their content’s language (e.g. using the HTML lang attribute or XML xml:lang attribute) in order to obtain correct automatic hyphenation.
~UAは、 言語に誂えられた経験則を利用して,自動的な~hyphen化から一定の単語を除外してもヨイ。 例えば~UAは、 固有名詞においては,ある種の[ 大字~化/約物 ]~patternに合致している単語を除外することにより,~hyphen化を避けようと試行するかもしれない。 この仕様は、 そのような経験則は定義しない。 (そのような経験則は、 言語に応じて変える必要があることに注意: 例えば、 ~Englishと~Germanにおける大字~化~規約は,かなり異なる。) ◎ The UA may use language-tailored heuristics to exclude certain words from automatic hyphenation. For example, a UA might try to avoid hyphenation in proper nouns by excluding words matching certain capitalization and punctuation patterns. Such heuristics are not defined by this specification. (Note that such heuristics will need to vary by language: English and German, for example, have very different capitalization conventions.)
`hyphens$p ~propの目的においては、 何が “単語“ を成すかは~UAに依存する。 しかしながら,単語~境界を決定するときには、[ 行内~要素の境界/`~flow外$にある要素 ]は無視するモノトスル。 ◎ For the purpose of the hyphens property, what constitutes a “word” is UA-dependent. However, inline element boundaries and out-of-flow elements must be ignored when determining word boundaries.
条件付き~hyphen文字( `00AD^U `SOFT HYPHEN^cn など)により作成される`~hyphen化~機会$の所で,~hyphen化に因り示される~glyphたちは、 その文字で表現され,それに適用される各種~propに則って~styleされる。 ◎ Any glyphs shown due to hyphenation at a hyphenation opportunity created by a conditional hyphen character (such as U+00AD SOFT HYPHEN) are represented by that character and are styled according to the properties applied to it.
~Arabicなどの用字系の下では、 ~hyphen化に因り単語の中で分断が許容される所の文字は,その単語が`分断されなかった@#word-break-shaping$かのように形状付けるモノトスル (`単語~内の分断をまたがる形状付け@#word-break-shaping$を見よ)。 ◎ When shaping scripts such as Arabic are allowed to break within words due to hyphenation, the characters must still be shaped as if the word were not broken (see § 5.6 Shaping Across Intra-word Breaks).
例えば,~hyphen化された~Uyghurの単語 `#62F#627#645#64A#62F#649^lt は、 次の最初の図のように現われることになる — その次の図ではなく: ◎ For example, if the Uyghur word “داميدى” were hyphenated, it would appear as
順に: 単独形 DAL, 単独形 ALEF, 語頭形 MEEM, 語中形 YEH, ~hyphen, 行-分断, 語末形 DAL, 単独形 ALEF MAKSURA ◎ [isolated DAL + isolated ALEF + initial MEEM + medial YEH + hyphen + line-break + final DAL + isolated ALEF MAKSURA]
,順に: 単独形 DAL, 単独形 ALEF, 語頭形 MEEM, 語尾形 YEH, hyphen, 行-分断, 単独形 DAL, 単独形 ALEF MAKSURA ◎ not as ◎ [isolated DAL + isolated ALEF + initial MEEM + final YEH + hyphen + line-break + isolated DAL + isolated ALEF MAKSURA]
5.5. ~overflow時の折返ng: `overflow-wrap^p/`word-wrap^p ~prop
◎名 `overflow-wrap@p, `word-wrap@p ◎値 `normal$v | `break-word$v | `anywhere$v ◎初 `normal^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 他による分断が許容されない行lにおいても[ 他では分断-不能な文字列が,`行l~box$に収まるには長過ぎるとき ]には~overflowしないように,~UAが行lのどこかで分断してもヨイかどうかを指定する。 これは、 `white-space$p が`折返ng$を許容するときに限り,効果を発揮する。 アリな値は: ◎ This property specifies whether the UA may break at otherwise disallowed points within a line to prevent overflow, when an otherwise-unbreakable string is too long to fit within the line box. It only has an effect when white-space allows wrapping. Possible values:
- `normal@v
-
行lを分断してもヨイ所は、
許容される分断点に限られる。
しかしながら,[
`word-break$p1: `keep-all$v1
により導入される制約 ]は、 行lの中に[ 受容-可能な分断点が他にない ]場合には,`word-break$p1: `normal$v1
に合致するように緩められてもヨイ。 ◎ Lines may break only at allowed break points. However, the restrictions introduced by word-break: keep-all may be relaxed to match word-break: normal if there are no otherwise-acceptable break points in the line. - `anywhere@v
- 他では分断-不能な`文字$並びは、 行lの中で[ 受容-可能な分断点が他にない ]場合には,任意な地点で分断されてもヨイ。 文字の形状付けにおいては、 依然として,単語が分断されていなかったかのように形状付けられ、 各 書記素~clusterは, 1 個の単位として一緒のままにされるモノトスル。 分断点には,~hyphen化~文字は挿入されない。 ◎ An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line. Shaping characters are still shaped as if the word were not broken, and grapheme clusters must stay together as one unit. No hyphenation character is inserted at the break point.\
- この値により導入された`自動折返し機会$は、 `最小-内容 内在的~size$を計算するときにも`考慮される^em。 ◎ Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes.
- `break-word@v
- `anywhere$v と同じにふるまうが、 この値により導入された`自動折返し機会$は,`最小-内容 内在的~size$を計算するときには`考慮されない^em。 ◎ As for anywhere except that soft wrap opportunities introduced by break-word are not considered when calculating min-content intrinsic sizes.
旧来の理由から、 ~UAは, `word-wrap$p を `overflow-wrap$p ~propの`旧来の別名n$として扱うモノトスル。 ◎ For legacy reasons, UAs must treat word-wrap as a legacy name alias of the overflow-wrap property.
5.6. 単語~内の分断をまたがる形状付け
~Arabicなどの用字系の単語に対しては、
その中の非強制の`自動折返し機会$†による`折返ng$の所では、
文字は,単語~全体のままであったかのように(繋がっている形で)形状付けるモノトスル
(†
`word-break$p1: `break-all$v1
/
`line-break$p1: `anywhere$v1
/
`overflow-wrap$p1: `break-word$v1
/
`overflow-wrap$p1: `anywhere$v1
に因る,あるいは~hyphen化などに因る分断)。
◎
When shaping scripts such as Arabic wrap at unforced soft wrap opportunities within words (such as when breaking due to word-break: break-all, line-break: anywhere, overflow-wrap: break-word, overflow-wrap: anywhere, or when hyphenating) the characters must still be shaped (their joining forms chosen) as if the word were still whole.
例えば、 単語 `#646#648#634#62A#646^lt が `#634^lt と `#62A^lt の合間で分断される場合でも,依然として:
- `#634^lt は、 その語頭形( `initial form^en, `#FEB7^lt )をとる — `#646#648#634^lt ではなく, `#FEE7#FEEE#FEB7^lt 内にあるかのように。
- `#62A^lt は、 その語中形( `medial form^en, `#FE98^lt )をとる — `#62A#646^lt ではなく, `#FE98#FEE6^lt 内にあるかのように。
6. 整列と両端揃え
整列( `text-align-*^p )と両端揃え( `text-justify^p )は、 `行内~内容$が`行l~box$の中でどう分布するかを制御する。 ◎ Alignment and justification controls how inline content is distributed within a line box.
6.1. ~textの整列: `text-align^p 略式~prop
◎名 `text-align@p ◎値 `start$v | `end$v | `left$v | `right$v | `center$v | `justify$v | `match-parent$v | `justify-all$v ◎初 `start^v ◎適 `塊~容器$ ◎継 される ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎順 n/a ◎ア 離散的 ◎表終この`略式~prop$は、[ `text-align-all$p, `text-align-last$p ]~propを設定し、 塊の`行内~level$の内容が,`行l~box$を完全に埋めない場合に,行内-軸~~方向に整列される方法について述べる。 [ `justify-all$v, `match-parent$v ]以外の値は、 `text-align-all^p にアテガわれ `text-align-last^p を `auto$v に設定し直す。 ◎ This shorthand property sets the text-align-all and text-align-last properties and describes how the inline-level content of a block is aligned along the inline axis if the content does not completely fill the line box. Values other than justify-all or match-parent are assigned to text-align-all and reset text-align-last to auto.
各種 値の意味は: ◎ Values have the following meanings:
- `start@v
- 行内~levelの内容は、 行l~boxの`始端$辺に整列される。 ◎ Inline-level content is aligned to the start edge of the line box.
- `end@v
- 行内~levelの内容は、 行l~boxの`終端$辺に整列される。 ◎ Inline-level content is aligned to the end edge of the line box.
- `left@v
- 行内~levelの内容は、 行l~boxの`行-左端$に整列される。 (縦組みにおいては、 `writing-mode$p に依存して,物理的な[ `上端$, `下端$ ]どちらにもなり得る。) `CSS-WRITING-MODES-4$r ◎ Inline-level content is aligned to the line-left edge of the line box. (In vertical writing modes, this can be either the physical top or bottom, depending on writing-mode.) [CSS-WRITING-MODES-4]
- `right@v
- 行内~levelの内容は、 行l~boxの`行-右端$に整列される。 (縦組みにおいては、 `writing-mode$p に依存して,物理的な[ `上端$, `下端$ ]どちらにもなり得る。) `CSS-WRITING-MODES-4$r ◎ Inline-level content is aligned to the line-right edge of the line box. (In vertical writing modes, this can be either the physical top or bottom, depending on writing-mode.) [CSS-WRITING-MODES-4]
- `center@v
- 行内~levelの内容は、 行l~boxの中で中央寄せにされる。 ◎ Inline-level content is centered within the line box.
- `justify@v
- ~textは、 行l~boxを正確に埋めるために, `text-justify$p ~propにより指定される~methodに則って両端揃される。 ただし,[ 強制d分断の直前にある行l, および 塊の最終~行l ]では、 `text-align-last$p により 他が指定されない限り, `start$v と同じく始端に整列される。 ◎ Text is justified according to the method specified by the text-justify property, in order to exactly fill the line box. Unless otherwise specified by text-align-last, the last line before a forced break or the end of the block is start-aligned.
- `justify-all@v
- [ `text-align-all$p, `text-align-last$p ]とも `justify$v に設定して、 最後の行lも両端揃するよう強制する。 ◎ Sets both text-align-all and text-align-last to justify, forcing the last line to justify as well.
- `match-parent@v
- この値は、 `inherit$v と同じに挙動する(親の算出d値に算出される) — ただし,`継承d値$が[ `start$v / `end$v ]の場合、 親の `direction$p 値を~~基準に解釈され,結果の算出d値は[ `left$v または `right$v ]になる。 `根~要素$に指定された場合、 算出d値は `start$v になる。 ◎ This value behaves the same as inherit (computes to its parent’s computed value) except that an inherited value of start or end is interpreted against the parent’s direction value and results in a computed value of either left or right. Computes to start when specified on the root element.
- `text-align$p1 略式~propに指定された場合、[ `text-align-all$p, `text-align-last$p ]両~propとも `match-parent$v1 に設定する。 ◎ When specified on the text-align shorthand, sets both text-align-all and text-align-last to match-parent.
~textの塊は,いくつかの`行l~box$の堆積である。 この~propは、 各 行l~boxの中の`行内~level$の~boxたちを,行l~boxの[ 始端, 終端 ]側を基準に整列する方法を指定する。 整列は`表示域$や`包含塊$を基準にはしない。 ◎ A block of text is a stack of line boxes. This property specifies how the inline-level boxes within each line box align with respect to the start and end sides of the line box. Alignment is not with respect to the viewport or containing block.
`justify$v の事例では、 ~UAは、 各 `行内~level$の~boxに対し,その~textを調整することにより,伸張-/縮短してもヨイ ( `text-justify$p を見よ)。 要素の`空白$が`縮約-可能$でない場合、 両端揃えの目的においては,その~textを調整することは要求されない — ~UAは、 ~textを`両端揃え機会$を持たないものと扱ってもヨイ。 ~UAは、 ~textを調整することを選ぶならば、 `空白~処理~規則$から要求されるように,各 `~tab停$が揃い続けることを確保するモノトスル。 ◎ In the case of justify, the UA may stretch or shrink any inline boxes by adjusting their text. (See text-justify.) If an element’s white space is not collapsible, then the UA is not required to adjust its text for the purpose of justification and may instead treat the text as having no justification opportunities. If the UA chooses to adjust the text, then it must ensure that tab stops continue to line up as required by the white space processing rules.
(両端揃えがあればその後で)`行内~内容$が`行l~box$に収まるには長過ぎる場合、 内容は,`始端$に整列される — 収まらない内容は、 行l~boxの`終端$辺を~overflowする。 ◎ If (after justification, if any) the inline contents of a line box are too long to fit within it, then the contents are start-aligned: any content that doesn’t fit overflows the line box’s end edge.
`行l~box$の`始端$, `終端$辺を決定する方法の詳細は、 `§ 双方向性と行l~box@#bidi-linebox$ を見よ。 ◎ See § 8.3 Bidirectionality and Line Boxes for details on how to determine the start and end edges of a line box.
6.2. 既定の~text 整列: `text-align-all^p ~prop
◎名 `text-align-all@p ◎値 `start$v | `end$v | `left$v | `right$v | `center$v | `justify$v | `match-parent$v ◎初 `start^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された~keyword — ただし、 `match-parent$v は上に定義したように算出される。 ◎ keyword as specified, except for match-parent which computes as defined above ◎順 n/a ◎ア 離散的 ◎表終これは `text-align$p1 `略式~prop$の下位propであり、 `塊~容器$における`行内~内容$の,すべての行lに渡る行内の整列を指定する — ただし,最後の行lについては、 `text-align-last$p の非 `auto$v 値により上書きされる。 各種 値の全部的な記述については `text-align$p を見よ。 ◎ This longhand of the text-align shorthand property specifies the inline alignment of all lines of inline content in the block container, except for last lines overridden by a non-auto value of text-align-last. See text-align for a full description of values.
作者は、 この~propの代わりに `text-align$p 略式~propを利用するベキである。 ◎ Authors should use the text-align shorthand instead of this property.
6.3. 最後の行l整列: `text-align-last^p ~prop
◎名 `text-align-last@p ◎値 `auto$v | `start$v | `end$v | `left$v | `right$v | `center$v | `justify$v | `match-parent$v ◎初 `auto^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、[ 塊の最後の行l / `強制d行-分断$の前にある`行-右端$ ]を整列する方法について述べる。 ◎ This property describes how the last line of a block or a line right before a forced line break is aligned.
`auto@v が指定された場合、 影響される行l上の内容は, `text-align-all$p に従って整列される — ただし、 `text-align-all$p が `justify$v に設定されている場合に限り, `start$v と同じく始端に整列される【!`start$v-aligned】。 他のすべての値は、 `text-align$p に述べるように解釈される。 ◎ If auto is specified, content on the affected line is aligned per text-align-all unless text-align-all is set to justify, in which case it is start-aligned. All other values are interpreted as described for text-align.
6.4. 両端揃え~method: `text-justify^p ~prop
◎名 `text-justify@p ◎値 `auto$v | `none$v | `inter-word$v | `inter-character$v ◎初 `auto^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword (旧来の値 `distribute$v は除く) ◎ specified keyword (except for the distribute legacy value) ◎順 n/a ◎ア 離散的 ◎表終この~propは、 行lの整列( `text-align$p を見よ)が `justify$v1 に設定されているときに利用される両端揃え~methodを選定する。 この~propは,~textに適用されるが、 `塊~容器$から[ 行内~levelの内容を包含している根~行内~box ]へ継承される。 これは、 次に挙げる値をとり得る: ◎ This property selects the justification method used when a line’s alignment is set to justify (see text-align). The property applies to text, but is inherited from block containers to the root inline box containing their inline-level contents. It takes the following values:
- `auto@v
- ~UAは、 自身が従う両端揃え~algoを,処理能と呈示~品質との兼合いに基づいて,決定する。 両端揃え規則は,`書記~体系$と`言語$により様々になるので、 ~UAは,アリな所では、 ~textに適切な両端揃え~algoを利用するベキである。 ◎ The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality. Since justification rules vary by writing system and language, UAs should, where possible, use a justification algorithm appropriate to the text.
- 例えば~UAは、 まず,どの書記~体系に対しても,既定では[ 単純な,普遍的で折衷的な両端揃え~method ] — 主として[ `単語~分離子$/[ ~CJK `~typographic字l単位$↔間 ]]を延張し、 副として[ 東南Asian`~typographic字l単位$↔間 ]を延張するような — を利用した上で、 段落の`内容~言語$が既知である所では,より言語に誂えられた両端揃えの挙動を選ぶこともできる — 例えば ⇒# 日本語に対しては `JLREQ$r に従う, ~Arabicに対しては 筆記的な引伸ばしを利用する, ~Germanに対しては `inter-word$v を利用する, 等々 ◎ For example, the UA could use by default a justification method that is a simple universal compromise for all writing systems—such as primarily expanding word separators and between CJK typographic letter units along with secondarily expanding between Southeast Asian typographic letter units. Then, in cases where the content language of the paragraph is known, it could choose a more language-tailored justification behavior e.g. following the Requirements for Japanese Text Layout for Japanese [JLREQ], using cursive elongation for Arabic, using inter-word for German, etc.
-
続字的な 2 行lにわたる~Arabicは、 圧縮d形と~swash形を混ぜることに因り,両端が揃う。 ◎ Two lines of calligraphic Arabic end together due to a mix of compressed and swash forms.
筆記的に両端揃された ~Arabic~textの例 ( `Tasmeem@https://www.decotype.com/$ による描画)。 ~Englishと同様に,~Arabicでも単語↔間の間隔法を調整して両端揃できるが、 ほとんどの~styleでは,続字的に引伸して, あるいは字形~自体を圧縮して,両端揃することもできる。 この例では、 ~~上段の~textは,引伸された形(~kashida)と~swash形を利用して行lを埋めるように拡張されている一方で、 ~~下段の行lでは,[ `#062A^lt ↔ `#0645^lt ]間の文字が上下に重ねられ,少しだけ圧縮されている。 伝統的な続字的~技法を駆使することで、 植字機は、 ~flowと均質さ( `typographic color^en )を保全しつつ, 行lを両端揃して,高~品質な両端揃え効果を供せる。 しかしながら これは、 その資質により,用字系にごく特有な効果になる。 ◎ An example of cursively-justified Arabic text, rendered by Tasmeem. Like English, Arabic can be justified by adjusting the spacing between words, but in most styles it can also be justified by calligraphically elongating or compressing the letterforms themselves. In this example, the upper text is extended to fill the line by the use of elongated (kashida) forms and swash forms, while the bottom line is compressed slightly by using a stacked combination for the characters between ت and م. By employing traditional calligraphic techniques, a typesetter can justify the line while preserving flow and color, providing a very high quality justification effect. However, this is by its nature a very script-specific effect. 各~spaceの所, および~CJKや~Thaiの文字~間に間隔が追加される。 ◎ Extra space is partly to spaces and partly among CJK and Thai letters.
`text-justify$p: `auto^v
にされた,混在用字系~text: この解釈では、 普遍的で折衷的な両端揃え~methodを利用する — ~spaceの所とともに[ ~CJK字l↔間, 東南Asian字l↔間 ]でも延張するような。 【!~CJK字l ↔ 東南Asian字l 間も含まれる?】 これは実質的に、 単語~分離子や~CJK文字を含む各~行lに対し, 単語↔間や 表語文字↔間 の間隔法を利用し、[ 間隔を含まない/間隔が伸張され過ぎる ]ような各~行lに対しては,~cluster間による挙動に~fall-backする。 ◎ Mixed-script text with text-justify: auto: this interpretation uses a universal-compromise justification method, expanding at spaces as well as between CJK and Southeast Asian letters. This effectively uses inter-word + inter-ideograph spacing for lines that have word-separators and/or CJK characters and falls back to inter-cluster behavior for lines that don’t or for which the space stretches too far. - `none@v
- 両端揃えは不能化される: ~textの中に`両端揃え機会$はない。 ◎ Justification is disabled: there are no justification opportunities within the text.
-
余分な間隔は挿入されない。 ◎ No extra space is inserted.
`text-justify$p: `none^v
にされた混在用字系~text ◎ Mixed-script text with text-justify: none - 注記: この値は、[ 可読性を改善する/ ~accessibilityを目的とする ]ような,利用者~stylesheetでの利用が意図されている。 ◎ Note: This value is intended for use in user stylesheets to improve readability or for accessibility purposes.
- `inter-word@v
- 両端揃えでは、 `単語~分離子$の所でのみ間隔法を調整する (実質的に,行l上の `word-spacing$p の使用~値を変えて)。 この挙動は、 ~Englishや韓国語の様な,~spaceを利用して単語を分離する言語に典型的なものである。 ◎ Justification adjusts spacing at word separators only (effectively varying the used word-spacing on the line). This behavior is typical for languages that separate words using spaces, like English or Korean.
-
余分な間隔は、 主に各~spaceの所に均等に分配される。 ◎ Extra space is equally distributed mainly to spaces.
`text-justify$p: `inter-word^v
にされた,混在用字系~text ◎ Mixed-script text with text-justify: inter-word - `inter-character@v
- 両端揃えでは、 各`~typographic文字~単位$↔間の間隔法を調整する (実質的に,行l上の `letter-spacing$p の使用~値を変えて)。 この値は、 日本語などの東Asian体系でときどき利用される。 ◎ Justification adjusts spacing between each pair of adjacent typographic character units (effectively varying the used letter-spacing on the line). This value is sometimes used in East Asian systems such as Japanese.
-
余分な間隔は、 すべての書記~体系にわたり,各[ ~space/字l ]の間に均等に分配される。 ◎ Extra space is equally distributed at points between spaces and letters of all writing systems.
`text-justify$p: `inter-character^v
にされた,混在用字系~text ◎ Mixed-script text with text-justify: inter-character - 旧来の理由から、 ~UAは,代替-~keywordとして `distribute@v も~supportするモノトスル — それは、 `inter-character$v に算出され,正確に同じ意味かつ同じ挙動になるモノトスル。 ~UAは、 これを`旧来の別名~値$として扱ってもヨイ。 ◎ For legacy reasons, UAs must also support the alternate keyword distribute which must compute to inter-character, thus having the exact same meaning and behavior. UAs may treat this as a legacy value alias.
最適な両端揃えは,`言語$に敏感なので、 最良な結果を得るためには,作者は内容に正しく言語~tagをあてがうベキである。 ◎ Since optimal justification is language-sensitive, authors should correctly language-tag their content for the best results.
注記: この~levelの~CSSによる指針では、 完全な両端揃え~algoは,述べられない。 それは、 完全な~algoが満たすベキ要件が成す最小限の集合にすぎない。 要件の集合を制限することで、 ~UAには、 両端揃え~algoを選ぶ際に — 必要と欲される[ 品質, 速さ, 複階性 ]の兼合いを満たすためとして — ある程度の自由度が与えられる。 ◎ Note: The guidelines in this level of CSS do not describe a complete justification algorithm. They are merely a minimum set of requirements that a complete algorithm should meet. Limiting the set of requirements gives UAs some latitude in choosing a justification algorithm that meets their needs and desired balance of quality, speed, and complexity.
6.4.1. ~textの延張-法と圧縮-法
~UAは,~textを両端揃するとき、 内容が`行l~box$を正確に埋めるように,[[ 行lの内容の両端 ]↔[ `行l~box$の両端~辺 ]間に残された間隔 ]を その内容~全体にわたって分配する。 ~UAは、 代替として,行l上に[ 通常の間隔法~条件の下で収まるものより多い内容 ]を~~置いて,負な間隔を分配してもヨイ。 ◎ When justifying text, the user agent takes the remaining space between the ends of a line’s contents and the edges of its line box, and distributes that space throughout its content so that the contents exactly fill the line box. The user agent may alternatively distribute negative space, putting more content on the line than would otherwise fit under normal spacing conditions.
`両端揃え機会@ ( `justification opportunity^en )とは、 両端揃え~algoが~textの中の間隔法を改めてもヨイとされる地点である。 両端揃え機会は、[ 1 個の`~typographic文字~単位$(`単語~分離子$など), または 2 個の `~typographic文字~単位$の並置 ]により,供され得る。 `自動折返し機会$に対する制御と同じく,`~typographic文字~単位$が`両端揃え機会$を供するかどうかは、 その親の `text-justify$p 値により制御される。 同様に,連続する 2 個の`~typographic文字~単位$の合間に`両端揃え機会$が存在するかどうかは、 その 2 個の文字に最も近い共通な先祖の `text-justify$p 値により決定される。 ◎ A justification opportunity is a point where the justification algorithm may alter spacing within the text. A justification opportunity can be provided by a single typographic character unit (such as a word separator), or by the juxtaposition of two typographic character units. As with controls for soft wrap opportunities, whether a typographic character unit provides a justification opportunity is controlled by the text-justify value of its parent; similarly, whether a justification opportunity exists between two consecutive typographic character units is determined by the text-justify value of their nearest common ancestor.
両端揃えにより分配される間隔は、[ `letter-spacing$p, `word-spacing$p ]~propにより定義される間隔法に対する `追加^emである。 そのような追加的な間隔が`単語~分離子$による`両端揃え機会$に分配されるときは、 `word-spacing$p に対するときと同じ規則の下で適用される。 同様に、 `~typographic文字~単位$↔間の`両端揃え機会$に間隔が分配されるときは、 `letter-spacing$p に対するときと同じ規則の下で適用されるベキである。 ◎ Space distributed by justification is in addition to the spacing defined by the letter-spacing or word-spacing properties. When such additional space is distributed to a word separator justification opportunity, it is applied under the same rules as for word-spacing. Similarly, when space is distributed to a justification opportunity between two typographic character units, should be applied under the same rules as for letter-spacing.
両端揃え~algoは、 各 `両端揃え機会$を異なる優先順位~levelに仕分けしてもヨイ。 同じ順位~levelに属する どの`両端揃え機会$も、 その機会を どの`~typographic文字~単位$が作成したかに関わらず,同じように延張-/圧縮される。 例えば, [ 漢字↔間 , ~Latin字l↔間 ]の`両端揃え機会$が,同じ~levelにあると定義された場合、 それらは( `inter-character$v 両端揃え~styleの下では),異なるように扱われない — それらは異なる`~typographic文字~単位$を出自にするので【?】。 他の要因 (~font~size, 字間隔法, ~glyphの形状付け, 行lの中での位置, 等々) が、[ 行lの中の`両端揃え機会$に対する間隔の分配 ]に波及し得るかどうか, および その方法については、 この【仕様の】~levelでは,定義されない。 ◎ A justification algorithm may divide justification opportunities into different priority levels. All justification opportunities within a given level are expanded or compressed at the same priority, regardless of which typographic character units created that opportunity. For example, if justification opportunities between two Han characters and between two Latin letters are defined to be at the same level (as they are in the inter-character justification style), they are not treated differently because they originate from different typographic character units. It is not defined in this level whether or how other factors (such as font size, letter-spacing, glyph shape, position within the line, etc.) may influence the distribution of space to justification opportunities within the line.
~UAは、 どの~methodの下でも,~textの両端揃えを補助するためとして、 任意選択な合字を可能化したり分断するか, あるいは[ 代替-~glyphや~glyph圧縮などの他の~font特能 ]を利用してもヨイ。 この挙動は、 この~levelの~CSSでは制御されない。 しかしながら,~UAは、 必須の合字を分断するなど,[ 複階的な用字系を正しく形状付けるために要求される特能 ]を不能化しては`ナラナイ^em。 ◎ The UA may enable or break optional ligatures or use other font features such as alternate glyphs or glyph compression to help justify the text under any method. This behavior is not controlled by this level of CSS. However, UAs must not break required ligatures or otherwise disable features required to correctly shape complex scripts.
中に`両端揃え機会$が存在する行lに対し, `~text整列@#text-align-property$により 全部的な両端揃え( `text-align^p1 `justify$v1 )が指定されている場合、 その行lは両端揃するモノトスル。 ◎ If a justification opportunity exists within a line, and text alignment specifies full justification (justify) for that line, it must be justified.
6.4.2. 記号と約物の取扱い
`両端揃え機会$たちを決定するとき、 `~Unicode字種$[ 各種 Symbol( `S*^uc )/ 各種 Punctuation ( `P*^uc ) 【 "*" は,ワイルドカードを表す】 ]に属する`~typographic文字~単位$は、 一般に,同じ用字系 (あるいは,文字の`用字系~prop$が `Common^uc である場合は、 支配的な用字系) の`~typographic字l単位$と同じに扱われる。 ◎ When determining justification opportunities, a typographic character unit from the Unicode Symbols (S*) and Punctuation (P*) classes is generally treated the same as a typographic letter unit of the same script (or, if the character’s script property is Common, then as a typographic letter unit of the dominant script).
しかしながら、 ~typographic慣習には,[ 記号や約物の両端揃えを制御する,追加的な規則 ]を備えるものもある。 したがって,~UAは、 記号や約物を孕むような`両端揃え機会$を取扱うときには、 特定の文字に対し【優先順位~levelを】あてがい直したり,順位付けに追加的な~levelを導入してもヨイ。 ◎ However, by typographic tradition there may be additional rules controlling the justification of symbols and punctuation. Therefore, the UA may reassign specific characters or introduce additional levels of prioritization to handle justification opportunities involving symbols and punctuation.
例えば、 連続する同じ[ `2014^gU `EM DASH^cn / `2015^gU `HORIZONTAL BAR^cn / `2026^gU `HORIZONTAL ELLIPSIS^cn / `2025^gU `TWO DOT LEADER^cn ]文字↔間には、 `両端揃え機会$は,伝統的にない `JLREQ$r — よって,~UAは、 これらの文字に優先順位~level “never” 【決して両端揃え機会とされない】 をアテガうこともあろう。 別の例として、 日本語では,一定の全角~約物 ( `301A^gU `LEFT WHITE SQUARE BRACKET^cn など) は、 `両端揃え機会$を包含すると見なされる。 したがって,~UAは、 これらの文字に,表語-文字↔間の機会より高い優先順位~levelをアテガうこともあろう。 ◎ For example, there are traditionally no justification opportunities between consecutive U+2014 — EM DASH, U+2015 ― HORIZONTAL BAR, U+2026 … HORIZONTAL ELLIPSIS, or U+2025 ‥ TWO DOT LEADER characters [JLREQ]; thus a UA might assign these characters to a “never” prioritization level. As another example, certain full-width punctuation characters (such as U+301A [ LEFT WHITE SQUARE BRACKET) are considered to contain a justification opportunity in Japanese. The UA might therefore assign these characters to a higher prioritization level than the opportunities between ideographic characters.
6.4.3. 延張-不能な~text
行lの`行内~内容$が,`行l~box$の全部的な横幅【`論理-横幅$】まで伸張できない場合、 `text-align-last$p ~propに指定されたとおりに整列するモノトスル。 ( `text-align^p1 `text-align-last$p が `justify$v1 にされている下では、 `center$v1 に対するときと同じに整列するモノトスル。) ◎ If the inline contents of a line cannot be stretched to the full width of the line box, then they must be aligned as specified by the text-align-last property. (If text-align-last is justify, then they must be aligned as for center.)
6.4.4. 筆記的な用字系
~Arabicなどの`筆記的~用字系$においては、 両端揃する際に,繋がっている[ `筆記的~用字系$の`~typographic字l単位$の連なり ]の中の どの単位↔間にも途切れを`導入しない^emモノトスル — ~UAは: ◎ Justification must not introduce gaps between the joined typographic letter units of cursive scripts such as Arabic.\
- 可能なら、[ そのような連なりの中で,`両端揃え機会$に分配された間隔 ]を,その連なりに対する何らかの形の筆記的 引伸ばしに`転換してもヨイ^em。 ◎ If it is able, the UA may translate space distributed to justification opportunities within a run of such typographic letter units into some form of cursive elongation for that run.\
- 可能でなければ、 どの`~typographic字l単位$↔間にも,(それらが繋がっているかどうかに関わらず)`両端揃え機会$は`存在しないと見做すモノトスル^em。 ◎ It otherwise must assume that no justification opportunity exists between any pair of typographic letter units in cursive script (regardless of whether they join).
受容-可能でない両端揃えの例: ◎ The following are examples of unacceptable justification:
両端揃えに,~tatweel文字†を利用できるように~designされた~fontもある。 ~tatweelに基づく両端揃えを遂行する~UAは、 その規則を適正に取扱うモノトスル。 ~tatweel文字の正しい挿入~法は、[ 孕まれる字lの組合n, 単語の中での所在, 行lの中での単語の所在 ]も含め,文脈に依存することに注意。 【† ~tatweel — 続字的に引伸する書法 ( `kashida^en ) を表現する~glyph (または、 特に文字 `0640^U `ARABIC TATWEEL^cn を指す?)。 】 ◎ Some font designs allow for the use of the tatweel character for justification. A UA that performs tatweel-based justification must properly handle the rules for its use. Note that correct insertion of tatweel characters depends on context, including the letter-combinations involved, location within the word, and location of the word within the line.
6.4.5. `auto^v による両端揃えに課される最小限の要件
`auto$v による両端揃えに対しては、 この仕様は,`両端揃え機会$について[ そのすべての~~集合は何であるか / それらが順位付けられる方法 / 各~levelの間で いつどのように相互作用するか ]は、 定義しない。 しかしながら、 次が要求される: ◎ For auto justification, this specification does not define what all of the justification opportunities are, how they are prioritized, or when and how multiple levels of justification opportunities interact. However, it does require that:
-
[ `内容~言語$の, または 隣接な[ 記号/約物 ]に対する ]~typographic慣習により禁則0されない限り、 次に挙げるそれぞれが,`両端揃え機会$を供する: ◎ Unless contraindicated by the typographic traditions of the content language or adjacent symbols/punctuation, each of the following provides a justification opportunity:
- `単語~分離子$ ◎ Word separators
- [ `~block用字系$の`~typographic文字~単位$ ↔ 他の`~typographic文字~単位$ ]間の境界 ◎ The boundary between a typographic character unit of any block scripts and any other typographic character unit
- [ `~clustered用字系$の`~typographic文字~単位$ ↔ 他の`~typographic文字~単位$ ]間の境界 ◎ The boundary between a typographic character unit of any clustered scripts and any other typographic character unit
- すべての`~block用字系$に属する すべての`字l$は,同じに扱われ、 すべての`~clustered用字系$に属する すべての`字l$は,同じに扱われる。 例えば、 次の 2 つの両端揃え機会は区別されない ⇒# 漢字↔間 / 漢字↔~Hangul字l 間(この順序) ◎ All letters belonging to all block scripts are treated the same, and all letters belonging to all clustered scripts are treated the same. For example, no distinction is made between the justification opportunity between a Han letter followed by another Han letter, vs. the justification opportunity between a Han letter followed by a Hangul letter.
両端揃えについての更なる情報は、 `JUSTIFY$r にて見出せる(また,提出できる) — それは、 書記~体系と言語で~indexされ,W3C `国際化~WG@~I18N/$ により保守されている。 ◎ Further information on text justification can be found in (or submitted to) “Approaches to Full Justification”, which indexes by writing system and language, and is maintained by the W3C Internationalization Working Group. [JUSTIFY]
7. 間隔法
~CSSによる~textに対する間隔法の制御は、[ `word-spacing$p, `letter-spacing$p ]~propを介して提供される。 それらは順に,[ `単語~分離子$の周り, `~typographic文字~単位$↔間 ]に追加的な間隔を指定する。 ◎ CSS offers control over text spacing via the word-spacing and letter-spacing properties, which specify additional space around word separators or between typographic character units, respectively.
7.1. 単語↔間の間隔法: `word-spacing^p ~prop
◎名 `word-spacing@p ◎値 `normal$v | `length$t ◎初 `normal^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 絶対~長さ ◎順 n/a ◎ア 算出d値の型による ◎表終この~propは、 “単語” ↔間に対する追加的な間隔法を指定する。 各種 値は、 以下に定義するとおりに解釈される: ◎ This property specifies additional spacing between “words”. Values are interpreted as defined below:
- `normal@v
- 追加的な間隔法は適用されず, 0 に算出される。 ◎ No additional spacing is applied. Computes to zero.
- `length$t
- ~fontにより定義される内在的な単語↔間の間隔法に`加えて^em,余分な間隔法を指定する。 ◎ Specifies extra spacing in addition to the intrinsic inter-word spacing defined by the font.
追加的な間隔法は、 `空白~処理~規則$が適用された後に,~text内に残された各`単語~分離子$に適用され、 ~typographic慣習により規定されない限り,文字の各~側に半分ずつ適用されるベキである。 負な値もとり得るが、 実装に依存する制限sがあり得る。 ◎ Additional spacing is applied to each word separator left in the text after the white space processing rules have been applied, and should be applied half on each side of the character unless otherwise dictated by typographic tradition. Values may be negative, but there may be implementation-dependent limits.
`単語~分離子@ ( `word-separator character^en, 略して `word separator^en )とは、 `~typographic文字~単位$のうち,単語を分離することが その[ 首な目的/一般~用法 ]とされているものを指す。 `~Unicode$citeでは、 これは次に挙げるものを含む (が、網羅的に定義されてはいない) ⇒# `~space$, 分断不可~space( `00A0^U ), ~Ethiopic `word space^en( `1361^U ), ~Aegean `word separator^en( `10100^U, `10101^U ), ~Ugaritic `word divider^en ( `1039F^U ), ~Phoenician `word separator^en( `1091F^U ) ◎ Word-separator characters are typographic character units whose primary purpose and general usage is to separate words. In Unicode this includes (but is not exhaustively defined as) the space (U+0020), the no-break space (U+00A0), the Ethiopic word space (U+1361), the Aegean word separators (U+10100,U+10101), the Ugaritic word divider (U+1039F), and the Phoenician word separator (U+1091F). [UNICODE]
注記: 一般に約物は, および固定幅~space( `3000^U, `2000^U 〜 `200A^U など)は、 `単語~分離子$とは見なされない — それらが大概は単語を分離するかのように~~現れるとしても、 それらの首な目的は,単語を分離することではないので。 ◎ Note: Neither punctuation in general, nor fixed-width spaces (such as U+3000 and U+2000 through U+200A), are considered word-separator characters, because even though they frequently happen to separate words, their primary purpose is not to separate words.
`単語~分離子$が無い, あるいは その送幅は 0 である場合 ( `200B^U `ZERO WIDTH SPACE^cn など)、 ~UAは,単語↔間に追加的な間隔法を作成しないモノトスル。 ◎ If there are no word-separator characters, or if a word-separating character has a zero advance width (such as U+200B ZERO WIDTH SPACE) then the user agent must not create an additional spacing between words.
7.2. 字l↔間の間隔法: `letter-spacing^p ~prop
◎名 `letter-spacing@p ◎値 `normal$v | `length$vt ◎初 `normal^v ◎適 `行内~box$/~text ◎継 される ◎百 受容しない ◎算 絶対~長さ ◎順 n/a ◎ア 算出d値の型による ◎表終この~propは、 `~typographic文字~単位$↔間に対する追加的な間隔法 — `字間隔法@ ( `letter-spacing^en )†を指定する ( “`tracking^en” とも共通的に呼ばれる)。 【!字l↔間の一律な間隔法】 それは,`双向性による並替ng$ `CSS-WRITING-MODES-4$r の後に適用され、[ `~kerning$ `CSS-FONTS-3$r / `word-spacing$p ]による間隔法もあるときは,それに対する追加になる。 有効な両端揃え規則に依存して,~UAは、 `~textを両端揃する@#text-justify-property$ために `~typographic文字~単位$↔間の間隔を更に増減してもヨイ。 ◎ This property specifies additional spacing (commonly called tracking) between adjacent typographic character units. Letter-spacing is applied after bidi reordering and is in addition to kerning and word-spacing. [CSS-WRITING-MODES-4] [CSS-FONTS-3] Depending on the justification rules in effect, user agents may further increase or decrease the space between typographic character units in order to justify text.
【† 単語↔間の間隔の概念がない日本語の組版~用語では、 “字詰め” と称されることが多い。 】
各種 値の意味は: ◎ Values have the following meanings:
- `normal@v
- 追加的な間隔法は適用されず, 0 に算出される。 ◎ No additional spacing is applied. Computes to zero.
- `length$t
- `~typographic文字~単位$↔間に対する`追加的な^em間隔法を指定する。 負な値もとり得るが、 実装に依存する制限sがあり得る。 ◎ Specifies additional spacing between typographic character units. Values may be negative, but there may be implementation-dependent limits.
旧来の理由( `1484$issue )から、 `letter-spacing$p の算出d値 `0^v に対する`解決d値$( `getComputedStyle()$c が返す値)は、 `normal$v になるとする。 ◎ For legacy reasons, a computed letter-spacing of zero yields a resolved value (getComputedStyle() return value) of normal.
`letter-spacing$p の目的においては、 各[ `不可分な行内$(画像や`行内~塊$など)の連続する連なり ]は、 単独の`~typographic文字~単位$として扱われる。 ◎ For the purpose of letter-spacing, each consecutive run of atomic inlines (such as images and inline blocks) is treated as a single typographic character unit.
`字間隔法$は、 行lの先頭には適用しないモノトスル — 行lの末尾に適用するかどうかは、 この~levelの仕様では未定義である。 ◎ Letter-spacing must not be applied at the beginning of a line. Whether letter-spacing is applied at the end of a line is undefined in this level.
`字間隔法$は,行lの先頭/末尾には適用されないときは、 ~textは常に,塊の辺に接合するように収まる。 ◎ When letter-spacing is not applied at the beginning or end of a line, text always fits flush with the edge of the block.
p { letter-spacing: 1em; }
<p>abc</p>
したがって~UAは、 `本当は^em,行lの末尾の辺に`字間隔法$を付加する`ベキでない^em `RFC6919$r ( `really should not^en ): ◎ UAs therefore really should not [RFC6919] append letter spacing to the right or trailing edge of a line:
`~typographic文字~単位$↔間の`間隔法$は、 実質的に, それらの文字~単位を包含する要素のうち,最も内縁な %要素 に “属する” — すなわち、 `~typographic文字~単位$↔間の(`双向性による並替ng$の後の)間隔法は、 %要素 により指定され, %要素 の中に描画される。 しかしながら,~UAは、[ 要素~境界に接する,どちらか一方の`~typographic文字~単位$ ]にも 【言い換えれば、各 ~typographic文字~単位の前後どちらかに一律に】 字間隔法を付与してもヨイ — %要素 に~~付随している `letter-spacing$p の値を利用して†。 ◎ Letter spacing between two typographic character units effectively “belongs” to the innermost element that contains the two typographic character units: the total letter spacing between two adjacent typographic character units (after bidi reordering) is specified by and rendered within the innermost element that contains the boundary between the two typographic character units. However, the UA may instead attach letter-spacing at element boundaries to one or the other typographic character unit using the letter-spacing value pertaining to its containing element.
注記†: この副次的な挙動は、 ~Web互換性の懸念に因り,この~levelにおいては許可される。 ◎ Note: This secondary behavior is permitted in this level due to Web-compat concerns.
行内~boxは、[ 当の要素の中に完全に包含された文字たち ]を成す各~文字↔間に限り,字間隔法を含むものと期待される — したがって、 要素の末尾の辺における字間隔法は,除外される: ◎ An inline box is expected to only include letter spacing between characters completely contained within that element, thus excluding letter spacing on the right or trailing edge of the element:
p { letter-spacing: 1em; }
<p>a<span>bb</span>c</p>
その帰結として, `letter-spacing$p の値が影響するのは、[ それが指定された要素に完全に包含されている文字 ]↔間に限られるものと期待される: ◎ Consequently a given value of letter-spacing is expected to only affect the spacing between characters completely contained within the element for which it is specified:
p { letter-spacing: 1em; } span { letter-spacing: 2em; }
<p>a<span>bb</span>c</p>
要素が包含する文字が 1 個以下の場合、 このことは, `letter-spacing$p による効果は描画~結果に現れないことも含意する: ◎ This further implies that applying letter-spacing to an element containing only a single character has no effect on the rendered result:
p { letter-spacing: 1em; } span { letter-spacing: 2em; }
<p>a<span>b</span>c</p>
`字間隔法$が挿入されるのは,双方向性【!RTL 】による並替ngより後なので、 例えば次の `span^e に適用される字間隔法による効果は,同様に生じない — 並替ngの後、 `c^lt は `~HebA^lt の隣に来ないので: ◎ Since letter spacing is inserted after RTL reordering, the letter spacing applied to the inner span below likewise has no effect, since after reordering the "c" doesn’t end up next to "א":
p { letter-spacing: 1em; } span { letter-spacing: 2em; }
<p>ab<span>c~HebA</span>~HebB~HebC</p>
`abc^lt に後続する~Hebrewの “abc” — `~HebA^lt ( `alef^en ), `~HebB^lt ( `bet^en ), `~HebC^lt ( `gimel^en ) — は、 並替ngにより,逆順に表示される: ◎ <!-- abc followed by Hebrew letters alef (א), bet (ב) and gimel (ג) --> <!-- Reordering will display these in reverse order. -->
`字間隔法$においては、 不可視な零幅~整形~文字(`~Unicode字種$ `Cf^uc に属するものなど)は無視される。 間隔法は、[ そのような文字は、 文書~内に存在しなかった ]かのように追加するモノトスル。 ◎ Letter spacing ignores invisible zero-width formatting characters (such as those from the Unicode Cf category). Spacing must be added as if those characters did not exist in the document.
例えば, `A​B^c に適用される `letter-spacing$p は、 要素~境界がどこに来ようが, `AB^c に対するときと一致する。 ◎ For example, letter-spacing applied to A​B is identical to AB, regardless of where any element boundaries might fall.
文字↔間の実質的な間隔法が (`両端揃え@#text-justify-property$ や[ `letter-spacing$p に対する 0 でない値 ]に因り) 0 でないときは、 ~UAは,任意選択な合字 — すなわち、 ~glyphの正しい形状付けに基礎的に要求されるものと定義されるもの — を適用するベキでない。 しかしながら,[ 低~levelな `font-feature-settings$p ~propを介して指定される,合字~その他の~font特能 ]は、 この規則より~~優先される。 `CSS-FONTS-3$r の `§ 特能の~~優先度@~CSSFONT#feature-precedence$ を見よ。 ◎ When the effective spacing between two characters is not zero (due to either justification or a non-zero value of letter-spacing), user agents should not apply optional ligatures, i.e. those that are not defined as required for fundamentally correct glyph shaping. However, ligatures and other font features specified via the low-level font-feature-settings property take precedence over this rule. See CSS Fonts Module Level 3 § feature-precedence.
例えば,単語 “filial” 内に字間隔を入れるときは、 “fi” 合字は 利用されるベキでない — そうすると、 ~textの間隔法は均等でなくなるので。 ◎ For example, if the word “filial” is letter-spaced, an “fi” ligature should not be used as it will prevent even spacing of the text.
filial / filial ◎ filial vs filial
注記: ~OpenTypeにおいては、 必須の合字は, `rlig^c 特能に結付けられるものと期待される。 したがって,他のすべての合字は、 任意選択と見なされる。 しかしながら,~UAや~platformは、 一部の壊れた~fontの事例を取扱うため,経験則により追加的な合字を適用することもある。 この仕様は、 そのような例外的な取扱いを[ 定義する/上書きする ]ことはない。 ◎ Note: In OpenType, required ligatures are expected to be associated to the rlig feature. All other ligatures are therefore considered optional. In some cases, however, UA or platform heuristics apply additional ligatures in order to handle broken fonts; this specification does not define or override such exceptional handling.
7.2.1. 筆記的~用字系
~UAは可能なら、 `筆記的~用字系$に対し,余分な間隔の総量を転換して — すなわち、 そのような字lの筆記的な接続を分断することなく,何らかの形で引伸して (または負な間隔法【! tracking 】に対しては圧縮して) — 等価な総 延張(または圧縮)量が得られるように分配することにより,`字間隔法$を適用しても`ヨイ^em。 そのように延張できない場合、 ~UAは、 その用字系の どの`~typographic字l単位$↔間にも,間隔法は`適用しない^emモノトスル (字間隔法の目的においては、 実質的に,各~単語を単独の`~typographic字l単位$として扱うことになる)。 いずれにせよ、 字l↔間の実質的な間隔法は 0 になるが、 引伸ばしは,~textを伸張する趣旨を保全することになる。 ◎ If it is able, the UA may apply letter spacing to cursive scripts by translating the total extra space to be distributed to a run of such letters into some form of cursive elongation (or compression, for negative tracking values) for that run that results in an equivalent total expansion (or compression) of the run. Otherwise, if the UA cannot expand text from a cursive script without breaking its cursive connections, it must not apply spacing between any pair of that script’s typographic letter units at all (effectively treating each word as a single typographic letter unit for the purpose of letter-spacing). Both cases will result in an effective spacing of zero between such letters; however the former will preserve the sense of stretching out the text.
~Arabic~textに間隔を加える,いくつかの適切な/不適切な例: ◎ Below are some appropriate and inappropriate examples of spacing out Arabic text.
- 元の~text: ◎ Original text
- `arabic-stretch-original^dgm
- (不良) 各~字l↔間に間隔を均等に分配する: ◎ BAD Even distribution of space between each letter.
- `arabic-stretch-spaced^dgm
- `筆記的な繋がりを分断してしまう!^em ◎ Notice this breaks cursive joins!
- (良) ~typographicに適切な筆記的な引伸ばしにより,字間隔の~~総和を分配する: ◎ OK Distributing ∑letter-spacing by typographically-appropriate cursive elongation. The resulting text is as long as the previous evenly-spaced example.
- `arabic-stretch-kashida^dgm
- `結果の~textの長さは、 上の間隔を均等に分配する例と同じ。^em ◎ ↑
- (良) [ ~Arabicの字l ]↔間の `letter-spacing$p を抑止する: ◎ OK Suppressing letter-spacing between Arabic letters.
- `arabic-stretch-suppressed^dgm
- `letter-spacing$p は,(`~space$の様な)~Arabicでない文字にも適用されないことに~~注意。 ◎ Notice letter-spacing is nonetheless applied to non-Arabic characters (like spaces).
- (不良) [ 繋がってない字l ]↔間に限り, `letter-spacing$p を適用する: ◎ BAD Applying letter-spacing only between non-joined letters.
- `arabic-stretch-unjoined^dgm
- これは、 均質さ( `typographic color^en )を歪める上,単語~境界を曖昧にしてしまう。 ◎ This distorts typographic color and obfuscates word boundaries.
注記: 筆記的~textに対する適正な引伸ばしや圧縮は、[ 用字系, 書体, 言語, 単語の中での所在, 行lの中での所在, 実装の複階性, ~font能力, 続字的~選好 ]に依存して,変わり得ることに注意。 また、 ある種の事例ではまったくアリでないこともある。 それは[ 合字の短縮/ ~swash異体/ 文脈に応じた形/ `0640^gU `ARABIC TATWEEL^cn などによる引伸ばし~glyph/ その他の微細な~typography ]の利用を孕むこともある。 そのような効果~用の規則を定義することは、 ~CSSの視野から外れる。 作者は、 `筆記的~用字系$に対しては, `letter-spacing$p を適用するのを避けるベキである — 相互運用可能でない結果でも受容されると判っているときは別として。 ◎ Note: Proper cursive elongation or compression of a text can vary depending on the script, typeface, language, location within a word, location within a line, implementation complexity, font capabilities, and calligraphic preferences, and may not be possible in certain cases at all. It may involve the use of shortening ligatures, swash variants, contextual forms, elongation glyphs such as U+0640 ARABIC TATWEEL, or other microtypography. It is outside the scope of CSS to define rules for these effects. Authors should avoid applying letter-spacing to cursive scripts unless they are prepared to accept non-interoperable results.
7.3. 要素~境界をまたがる形状付け
`行内~box$の境界が~textの`~typographic文字~単位$↔間を分離していて,次のいずれかが満たされる場合、 ~textの形状付けは,その境界で分断する`モノトスル^em: ◎ Text shaping must be broken at inline box boundaries when any of the following are true for any box whose boundary separates the two typographic character units:
- 境界における~boxの行内-軸[ `margin$p, `border$p, `padding$p ]いずれかの値は 0 でない。 ◎ Any of margin/border/padding separating the two typographic character units in the inline axis is non-zero.
- ~boxの `vertical-align$p 値は `baseline$v でない。 ◎ vertical-align is not baseline.
- 境界は、 `双向-隔離-$している。 ◎ The boundary is a bidi isolation boundary.
~textの形状付けは、 整形が実質的に変化しないか, 変化しても~glyphには影響しないときは (`~text装飾@~CSSTEXTDECOR#line-decoration$を適用するときなど),行内~box境界を`分断しないモノトスル^em。 ◎ Text shaping must not be broken across inline box boundaries when there is no effective change in formatting, or if the only formatting changes do not affect the glyphs (as in applying text decoration).
そうでなくとも、 当の事例において適理かつ,与えられた~font技術の制限の下でアリならば、 ~textの形状付けは,行内~box境界で`分断されるベキでない^em。 ◎ Text shaping should not be broken across inline box boundaries otherwise, if it is reasonable and possible for that case given the limitations of the font technology.
境界をまたがる形状付けが適理かつアリな例としては、 ~Arabic形状付けがある: 多くの~systemでは、 これは,~font~engineにより遂行される — [[ ~~精巧な,文脈に応じた形状付け ]も伴い得るような,何種かの異体~glyphを供する ]ことを,~fontに許容する下で。 ~fontが変化する箇所でこの~systemに依拠するのは,一般に — 当の~font~engineが文脈を供する~APIを備えていない限り — アリでないが、 ~engineにとってはこの制限に対処するのは単直なので,~~普通に適理になる:例えば、 2 種の零幅~文字[ `200D^U `ZERO WIDTH JOINER^cn / `200C^U `ZERO WIDTH NON-JOINER^cn ]を利用して,[ 語頭形/語中形/語尾形/単独形( `initial/medial/final/isolated^en ) ]の~glyphを正しく選ぶよう適切に請求するなどにより。 ◎ An example of reasonable and possible shaping across boundaries is Arabic shaping: in many systems this is performed by the font engine, allowing the font to provide variant glyphs with potentially very sophisticated contextual shaping. It’s not generally possible to rely on this system across a font change unless the font engine has an API to provide context, but it is straightforward and therefore quite reasonable for an engine to work around this limitation by, for example, using the zero-width-joiner (U+200D) or zero-width-non-joiner (U+200C) as appropriate to solicit the correct choice of initial/medial/final/isolated glyph.
境界をまたがる形状付けはアリであるが適理でない例には、[ ある文字列の どちらかの端において どの~glyphを選ぶかが,文字列の前`および後^emにある計 20 個くらいの文字(行内~境界で整形が変化するものも含む)が成す文脈に敏感である ]ような~fontの取扱いが挙げられる。 それは複雑であり、 ~UAは,そのような事例を`取扱うこともできる^emが要求されてはいない — それらは代表的でないか,現代の どの書記~体系からも基礎的には要求されていないので。 ◎ An example of possible but not reasonable shaping across boundaries is handling a font that is sensitive to 20 characters of context on either side to choose its glyphs: passing all the text before and after the string in question, even through multiple inline boundaries with formatting changes, is complicated. The UA could handle such cases, but is not required to, as they are not typical or fundamentally required by any modern writing system.
境界をまたがる形状付けが不可能な例には、 ある~fontにおいて[ ある単語(例: “`and^en” )を成す字lすべてが,ある合字(例: `0026^gU ~glyph)に置換されることになる ]下での,単語の途中における~font~weightの変化が挙げられる。 ◎ An example of impossible shaping across boundaries is a change in font weight partway through the word “and” in a font where a ligature would replace all three letters of the word “and” with an ampersand glyph (“&”).
8. 行lの両端~辺における効果
`text-indent$p ~propは、 塊~内の他の行lを基準に,行lの字下nを制御する。 `hanging-punctuation$p ~propは、 行lの[ 始端, 終端 ]辺の所で内容が測定される方法【禁則処理】を制御する。 ◎ Edge effects control the indentation of lines with respect to other lines in the block (text-indent) and how content is measured at the start and end edges of a line (hanging-punctuation).
8.1. 字下n: `text-indent^p ~prop
◎名 `text-indent@p ◎値 [ `length-percentage$t ] && `hanging$v? && `each-line$v? ◎初 `0^v ◎適 `塊~容器$ ◎継 される ◎百 `塊~容器$の自前の`行内-軸$`内縁~size$を基準にする ◎ refers to block container’s own inline-axis inner size ◎算 算出された `length-percentage$t 値と指定された~keyword(たち) ◎ computed <length-percentage> value, plus any specified keywords ◎順 文法に従う ◎ア 算出d値の型による ◎表終この~propは、 塊~内の`行内~内容$の各~行lに適用される字下nを指定する。 字下げは、 `行l~box$の`始端$辺に適用される~marginとして扱われる。 ◎ This property specifies the indentation applied to lines of inline content in a block. The indent is treated as a margin applied to the start edge of the line box.
影響されるのは、 ~keyword[ `each-line$v / `hanging$v ]により 他が指定されない限り,要素の`整形される最初の行l$ `CSS-PSEUDO-4$r に限られる。 例えば,`匿名$な`塊~box$の最初の行lは、 その親~要素の最初の子であるときに限り影響される。 ◎ Unless otherwise specified by the each-line and/or hanging keywords, only lines that are the first formatted line of an element are affected. [CSS-PSEUDO-4] For example, the first line of an anonymous block box is only affected if it is the first child of its parent element.
各種 値の意味は: ◎ Values have the following meanings:
- `length$t
- 字下げ量を,絶対~長さとして与える。 ◎ Gives the amount of the indent as an absolute length.
- `percentage$t
- 字下げ量を,`塊~容器$の自前の`論理-横幅$に対する百分率として与える。 【 “自前の” :すなわち、包含塊のそれではなく( `2394$issue )。】 ◎ Gives the amount of the indent as a percentage of the block container’s own logical width.
- 百分率は、 `内在的~size供与$を計算する目的においては `0^v として扱うモノトスル — ~layoutを遂行するときは、 常に通常に解決される。 ◎ Percentages must be treated as 0 for the purpose of calculating intrinsic size contributions, but are always resolved normally when performing layout.
- 注記: これは要素を~overflowさせ得るので、 内在的~sizingと併用することが推奨される。 ◎ Note: This can lead to the element overflowing. It is not recommended to use percentage indents and intrinsic sizing together.
- `each-line@v
- 字下nは,各[ `塊~容器$の最初の行l, および `強制d行-分断$の直後にある行l ]に影響する (`自動折返し分断$の直後にある行lには影響しない)。 ◎ Indentation affects the first line of each block container and each line after a forced line break (but not lines after a soft wrap break).
- `hanging@v
- 影響される行lの~~集合を反転する。 ◎ Inverts which lines are affected.
右向き~textの下で, `text-align$p1 は `start$v1 に, `text-indent$p は `5em^v にされている場合 (浮動体は無いとする)、 ~textの最初の行lは,塊の始端から 5em の所から開始する: ◎ If text-align is start and text-indent is 5em in left-to-right text with no floats present, then first line of text will start 5em into the block:
`hanging$v ~keywordを追加した場合、 最初の行lが始端に接合される一方、 他の行lは 5em だけ字下げされることになる: ◎ If we add the hanging keyword, then the first line will start flush, but other lines will be indented 5em:
`text-indent$p ~propが影響するのは, “整形される最初の行l” に限られるので、 強制d分断の後にある行lは,字下げされない。 ◎ Since the text-indent property only affects the “first formatted line”, a line after a forced break will not be indented.
しかしながら,折返すほどに長くなる行lでは、 【折返した直後に】字下げするのが適切になることも,ときどきある(詩歌や~codeなど)。 次の例では、 `text-indent$p の値は `3em hanging each-line^v にされているとする。 その結果、 詩の 4 行l目,塊の右端~境界の自動折返しの所で、 字下げが吊下がる: ◎ However, sometimes (as in poetry or code), it is appropriate to indent each line that happens to be long enough to wrap. In the following example, text-indent is given a value of 3em hanging each-line, giving the third line of the poem a hanging indent where it soft-wraps at the block’s right boundary:
みじかいぎょうでは
おきません
ながいぎょう、 さればじどうで
おりかえし
注記:
`text-indent$p ~propは継承されるので、
塊~要素に指定されたときは,子孫の行内-塊~要素にも影響することになるのに注意。
この理由から、
`display$p: `inline-block^v
が指定された要素には
`text-indent$p: `0^v
も指定する方がうまくいくことが多い。
◎
Note: Since the text-indent property inherits, when specified on a block element, it will affect descendant inline-block elements. For this reason, it is often wise to specify text-indent: 0 on elements that are specified display: inline-block.
8.2. 吊下ng~glyph
行lの[ 始端や終端 ]辺にある~glyphが `吊下がる@ ときは†、 行lの内容を[ 収める/整列する/両端揃する ]ための測定には考慮されない。 その結果,行lの[ 整列/両端揃え ]に依存して、 約物は,`行l~box$の外側に置かれることもある。 ◎ When a glyph at the start or end edge of a line hangs, it is not considered when measuring the line’s contents for fit, alignment, or justification. Depending on the line’s alignment/justification, this can result in the mark being placed outside the line box.\
【†`吊下ng@https://ja.wikipedia.org/wiki/%E3%81%B6%E3%82%89%E4%B8%8B%E3%81%92%E7%B5%84%E3%81%BF$ ( `hanging^en ) 】【† もっと冗長に述べるなら、 “吊下-可能な~glyphを[ 通常通り~lay-outすると、 行lの終端~辺を~overflowするか,折返されて次の行lの始端~辺に来る ]ので,吊下がるものとして扱うときは…” 】
`吊下ng~glyph@ — `吊下がって$いる~glyph — は: ◎ ↓
- [ `内在的~size$(`最小-内容~size$/`最大-内容~size$), その~sizeから導出される~size ]を算出するときには織り込まれない。 (この測定と~kerningとの相互作用は、 現在は~UAにより定義される — ~CSS~WGは、 この点について助言を~~歓迎する( `2397$issue )。) ◎ The hanging glyph is also not taken into account when computing intrinsic sizes (min-content size and max-content size), and any sizes derived thereof. (The interaction of this measurement and kerning is currently UA-defined; the CSSWG welcomes advice on this point.)
- 依然として、 その親の行内~boxの内側に封入され,~text両端揃えには関与する — 単に、 次を決定するときには,その文字~送幅が測定されないだけである ⇒# 行l上に どれ程の内容が収まるか / 両端揃え用に 行lの内容を どれ程[延張する/圧縮する]必要があるか / ~text整列~用に `行l~box$の中に内容をどう位置するか ◎ A hanging glyph is still enclosed inside its parent inline box and still participates in text justification: its character advance is just not measured when determining how much content fits on the line, how much the line’s contents need to be expanded or compressed for justification, or how to position the content within the line box for text alignment.\
- その文字~送幅は、 実質的に,[ その親の`行内~box$の影響される辺に対する,追加的な負な~margin ]として解釈し直される — それ以外については、 行lは通例通り~lay-outされる。 ◎ Effectively, the hanging glyph character advance is re-interpreted as an additional negative margin on the affected edge of its parent inline box; the line is otherwise laid out as usual.\
- ~overflowするときは、 不必要な~scrollbarを作成するのを避けるため,概して`~ink~overflow$と見なされるベキであるが、 ~UAは,次に該当するときは`~scroll可能な~overflow$として扱ってもヨイ `CSS-OVERFLOW-3$r ⇒# 当の内容は編集-可能である/ 他の,そのように扱う方が利用者にとって有用になる状況下にある ◎ An overflowing hanging glyph should typically be considered ink overflow so as to avoid creating unnecessary scrollbars, but the UA may treat it as scrollable overflow when the content is editable or in other circumstances where treating it as scrollable overflow would be useful to the user. [CSS-OVERFLOW-3]
一部の事例では、 行lの終端にある~glyphは `条件付きで吊下がる@ こともある — すなわち、[ 両端揃えに先立って,吊下げなければ行lに収まらない場合 ]に限り,`吊下がる$。 それは,行lの内容を収めるための測定には考慮されないが、 その収まらない部分は,`吊下がる$ものと見なされる。 `条件付きで吊下がる$~glyphは、[ `最小-内容~size$, および その~sizeから導出される~size ]を算出するときには織り込まれない一方で,[ `最大-内容~size$, および その~sizeから導出される~size ]を算出するときには織り込まれる。 ◎ In some cases, a glyph at the end of a line can conditionally hang: it hangs only if it does not otherwise fit in the line prior to justification. It is not considered when measuring the line’s contents for fit; however, any part of it that does not fit is considered to hang. Glyphs that conditionally hang are not taken into account when computing min-content sizes and any sizes derived thereof, but they are taken into account for max-content sizes and any sizes derived thereof.
`吊下-$可能な~glyphと行lの辺の合間における行内-軸[ ~border/~padding ]が 0 でない場合、 ~glyphは吊下がらない。 例えば,終端~paddingを伴う行内~boxの終端にある終止符は、 行lの終端~辺では`吊下がら$ない。 ◎ Non-zero inline-axis borders or padding between a hangable glyph and the edge of the line prevent the glyph from hanging. For example, a period at the end of an inline box with end padding does not hang at the end edge of a line.
隣接な複数の~glyphは,一緒に吊下がり得るが、 吊下げれる個数には,特定の制限sが指定され得る/してもヨイ (例:行lの 1 辺に`吊下がって$もヨイ約物は 1 個までなど)。 ◎ Multiple adjacent glyphs can hang together, however specific limits on how many are allowed to hang may be specified (e.g. at most one punctuation character may hang at each edge of the line).
8.2.1. 吊下ng約物: `hanging-punctuation^p ~prop
◎名 `hanging-punctuation@p ◎値 `none$v | [ `first$v || [ `force-end$v | `allow-end$v ] || `last$v ] ◎初 `none^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 約物符が`吊下がる$かどうか,その場合に[ ~text行lの始端または終端の,`行l~box$の外側に (または字下げ【による空間】内に) ]に置かれてヨイかどうか を決定する。 ◎ This property determines whether a punctuation mark, if one is present, hangs and may be placed outside the line box (or in the indent) at the start or at the end of a line of text.
注記: `塊~容器$の~paddingが足りない場合、 `hanging-punctuation$p は~overflowを誘発し得ることに注意。 ◎ Note: If there is not sufficient padding on the block container, hanging-punctuation can trigger overflow.
各種 値の意味は: ◎ Values have the following meanings:
- `none@v
- 約物は、 `吊下がら$ない。 ◎ No punctuation character is made to hang.
- `first@v
-
要素の`整形される最初の行l$の始端にある開き[ 括弧/引用符 ]は、 `吊下がる$。 これは、 次に挙げる文字に適用される:
- `~Unicode字種$[ `Ps^uc / `Pf^uc / `Pi^uc ]に属するもの
- ~ASCII引用符 ⇒# `0027^gU `APOSTROPHE^cn, `0022^gU `QUOTATION MARK^cn
- `last@v
-
要素の 整形される最後の行lの末尾にある,閉じ[ 括弧/引用符 ]は、 `吊下がる$。 これは、 次に挙げる文字に適用される:
- `~Unicode字種$[ `Pe^uc / `Pf^uc / `Pi^uc ]に属するもの
- ~ASCII引用符 ⇒# `0027^gU `APOSTROPHE^cn, `0022^gU `QUOTATION MARK^cn
- `force-end@v
- 行lの末尾にある`句読点類$は、 `吊下がる$。 ◎ A stop or comma at the end of a line hangs.
- `allow-end@v
- 行lの末尾にある`句読点類$は、 `条件付きで吊下がる$。 ◎ A stop or comma at the end of a line conditionally hangs.
行lの[ 始端/終端 ]辺に`吊下がって$ヨイ約物は、 1 個までとする。 ◎ At most one punctuation character may hang at each edge of the line.
次に挙げる `句読点類@ は、 `吊下がる$ことが許容される: ◎ Stops and commas allowed to hang include:
- `002C^gU `COMMA^cn
- `002E^gU `FULL STOP^cn
- `060C^gU `ARABIC COMMA^cn
- `06D4^gU `ARABIC FULL STOP^cn
- `3001^gU `IDEOGRAPHIC COMMA^cn
- `3002^gU `IDEOGRAPHIC FULL STOP^cn
- `FF0C^gU `FULLWIDTH COMMA^cn
- `FF0E^gU `FULLWIDTH FULL STOP^cn
- `FE50^gU `SMALL COMMA^cn
- `FE51^gU `SMALL IDEOGRAPHIC COMMA^cn
- `FE52^gU `SMALL FULL STOP^cn
- `FF61^gU `HALFWIDTH IDEOGRAPHIC FULL STOP^cn
- `FF64^gU `HALFWIDTH IDEOGRAPHIC COMMA^cn
~UAは、 適宜,他の文字も含めてヨイ。 ◎ The UA may include other characters as appropriate.
注記: 他の文字を含ませた~UAは、 その旨を~CSS~WGへ 【!#sotd】 `伝えて@~CSSissue$もらえるとありがたい。 ◎ Note: The CSS Working Group would appreciate if UAs including other characters would inform the working group of such additions.
`allow-end$v, `force-end$v は、 東Asiaで利用される 2 種類の[ 約物~用の吊下ng ]である。 ◎ The allow-end and force-end are two variations of hanging punctuation used in East Asia.
p { text-align: justify; hanging-punctuation: allow-end; }
p { text-align: justify; hanging-punctuation: force-end; }
`allow-end$v に対しては、 最初の行lの末尾にある約物は,吊下がることなく収まるので吊下がらない。 しかしながら, `force-end$v が利用された場合、 吊下-が強制される。 両端揃えは,吊下ng約物を含めずに行lを測定するので、 約物は,行lが延張されるときに行lの外側へ押出される。 ◎ The punctuation at the end of the first line for allow-end does not hang, because it fits without hanging. However, if force-end is used, it is forced to hang. The justification measures the line without the hanging punctuation. Therefore when the line is expanded, the punctuation is pushed outside the line.
8.3. 双方向性と行l~box
`行l~box$の[ `始端$, `終端$ ]側は、 行l~boxの`行内~基底~方向$により決定される。 `行l~box$ %行l~box の`行内~基底~方向$は、 通例的には[ `包含塊$ / `双向~段落$ ]のそれと合致するが,それらは別物である。 前者は、[ `text-align-all$p / `text-align-last$p / `text-indent$p / `hanging-punctuation$p ] — すなわち %行l~box の内容に対する %行l~box の各~辺を基準にする位置と整列 — には影響するが, %行l~box の行内~内容の[ 整形/順序付け ]には影響しない ([ 整形/順序付け ]は、 `~Unicode双方向-~algo$citeにより — `CSS-WRITING-MODES-4$r により適用されるとおりに — 制御される)。 ◎ The start and end sides of a line box are determined by the inline base direction of the line box. Although they usually match, the inline base direction of a line box is distinct from the inline base direction of the containing block or the bidi paragraph. The line box’s inline base direction affects text-align-all, text-align-last, text-indent, and hanging-punctuation—i.e. the position and alignment of its contents with respect to its edges. It does not affect the formatting or ordering of inline content (which is controlled by the Unicode Bidirectional Algorithm as applied by CSS Writing Modes [UAX9] [CSS-WRITING-MODES-4]).
`行l~box$ %行l~box の`行内~基底~方向$は、 次の結果になる:
- %包含塊 ~LET %行l~box の`包含塊$
-
~IF[ %包含塊 の `unicode-bidi$p の算出d値 ~EQ `plaintext^v ]:
- ~IF[ %行l~box は空でない (`不可分な行内$, または改行文字~以外の文字がある) ]~AND[ %行l~box を成す ある文字 【の~Unicode`双方向-文字~種別@~UTR/tr9/#Bidirectional_Character_Types$】 は `Strong^uc である( `Weak^uc でも `Neutral^uc でもない) ] ⇒ ~RET %行l~box が属する`双向~段落$( %行l~box の内容を保持している`双向~段落$)の`行内~基底~方向$
- ~IF[ %包含塊 内で %行l~box の直前に別の行l~boxは在る ] ⇒# %行l~box ~SET その行l~box; ~GOTO 前~段
- ~RET %包含塊 の `direction$p の算出d値で与えられる`行内~基底~方向$
次の例における `block^e は、[
塊であり,
`pre^v により整形され,
`text-align$p1: `start$v1
を継承していて始端に整列される
]
( `display$p: `block^v; `white-space$p: `pre^v; `text-align$p: `start^v
)
と見做すならば、
他の【左端に整列される "français" 以外の】どの行lも右端に整列される:
◎
In the following example, assuming the <block> is a start-aligned preformatted block (display: block; white-space: pre; text-align: start), every other line is right-aligned:
<block style="unicode-bidi: plaintext"> français فارسی français فارسی français فارسی </block>
[
中立的( `Neutral^uc )な文字(約物など)/
隔離された連なり【`双向-隔離-$された`~text連なり$】
]は,
`素な~textが成す双向-段落の行内~基底~方向を見出す@~UTR/tr9/#P2$ときには飛ばされるので、
次の例における行l~boxは
— 最初の `Strong^uc な文字, "h" により規定されるとおり —
右向きになる
(したがって、
`text-align$p1: `start$v1
が与えらた下では,左端に整列される):
◎
Because neutral characters (such as punctuation) and isolated runs are skipped when finding the inline base direction of a plaintext bidi paragraph, the line box in the following example will be left-to-right (and thus left-aligned given text-align: start), as dictated by the first strong character, ‘h’:
<para style="display: block; direction: rtl; unicode-bidi:plaintext"> “<quote style="unicode-bidi:plaintext">~HebPeace!</quote>”, he said. </para>
<textarea style="direction: rtl; unicode-bidi:plaintext"> Hello! </textarea>
`unicode-bidi$p: `plaintext^v
があるので、
"Hello!" は~LTRに植字され(すなわち,感嘆符は右端~側に来る),左端に整列される
— 包含塊の `direction$p ( ~RTL )は無視して。
これは、
それに後続する空~行lも~LTRにするので、
その行l上の~caretは,左端~辺に現れるべきであることになる。
しかしながら,最初の行lが空である場合、
先行している行lは無いので
— その方向は、
包含塊のそれ(~RTL)と見做される結果 —
右端に整列される。
◎
Because of unicode-bidi: plaintext, the “Hello!” is typeset LTR (i.e. with the exclamation mark on the right side) and left-aligned, ignoring the containing block’s RTL direction. This makes the empty line following it LTR as well, which means that a caret on that line should appear at its left edge. The empty first line, however, is right-aligned: having no preceding line, it assumes the RTL direction of its containing block.
付録 A. 各種~text演算の処理~順序
`この付録は規範的である。^em ◎ This appendix is normative.
各種~text演算の順序は、 次の~listで定義される (実装は、 結果の~layoutが同じになる限り,この順序に束縛されない)。 ◎ The following list defines the order of text operations. (Implementations are not bound to this order as long as the resulting layout is the same.)
- `空白の縮約-法と変形n$ ◎ white space processing part I (pre-wrapping)
- `~text変形n$ ◎ text transformation
- `~textの字組み$ `CSS-WRITING-MODES-4$r ◎ text combination [CSS-WRITING-MODES-4]
- `~text方位$ `CSS-WRITING-MODES-4$r ◎ text orientation [CSS-WRITING-MODES-4]
-
~textの`折返ng$ — 各~行lごとに次を適用する: ◎ text wrapping while applying per line:
- `字下n@#text-indent-property$ ◎ indentation
- `双向性による並替ng$ `CSS2$r / `CSS-WRITING-MODES-4$r ◎ bidirectional reordering [CSS2] / [CSS-WRITING-MODES-4]
- `空白の削りと位置決め$ ◎ white space processing part II
- `~fontや~glyphの選定と位置決め@~CSSFONT$ `CSS-FONTS-3$r ◎ font/glyph selection and positioning [CSS-FONTS-3]
- `letter-spacing$p と `word-spacing$p ◎ letter-spacing and word-spacing
- `吊下ng約物@#hanging-punctuation-property$ ◎ hanging punctuation
- `両端揃え@#text-justify-property$ (~glyphの選定や, ~textの折返ngに影響し得るので、 そうなったときは,該当する段まで戻る) 【!結局、この段を,前段の最後に組み入れるのと同じことになる?】 ◎ justification (which may affect glyph selection and/or text wrapping, looping back into that step)
- `~text整列@#text-align-property$ ◎ text alignment
付録 B. 素な~textへの変換
この付録は、 素な~textを~copy-pasteする目的においては`規範的である^em。 ◎ This appendix is normative for the purpose of plaintext copy-paste operations.
~CSSで描画された文書を素な~text形式に変換するときには、 次が期待される: ◎ When a CSS-rendered document is converted to a plaintext format, it is expected that:
- `text-transform$p ~propは効果を発揮しない。 ◎ The text-transform property has no effect.
- `空白の縮約-法と変形n$は適用され、 `縮約-可能$な`空白$のうち[ `塊$の先頭/`強制d行-分断$の直後 ]にあるものは除去する。 ◎ § 4.1.1 Phase I: Collapsing and Transformation is applied and any sequence of collapsible white space at the beginning of a block or immediately following a forced line break is removed.
付録 C. 既定の~UA~stylesheet
この付録は`参考であり^em、 ~UA開発者が~HTML用の既定の~stylesheetを実装する補助になるものだが、 ~UA開発者が適宜,[ 無視する/改変する ]のも自由である。 ◎ This appendix is informative, and is to help UA developers to implement a default stylesheet for HTML, but UA developers are free to ignore or modify as appropriate.
/*
一連の `option^e 要素を互いに整列させる:
◎
make option elements align together
*/
option { text-align: match-parent; }
付録 D. 用字系と間隔法
`この付録は規範的である。^em ◎ This appendix is normative.
~typographicの挙動は,言語により いくぶん様々になるが、 書記~体系により大きく様変わりする。 この付録は、 ~Unicode 6.0 における 一部の共通的な`用字系$を,それらの両端揃えと間隔法の挙動に則って類別する。 字種の記述は、 ~~説明的( `descriptive^en )であり, ~~規範的( `prescriptive^en )ではない 【現実の挙動を反映するものであって,挙動を~~規定しようとするものではない】 — それを決定する要因は、 `両端揃え機会$の順位付けである。 ◎ Typographic behavior varies somewhat by language, but varies drastically by writing system. This appendix categorizes some common scripts in Unicode 6.0 according to their justification and spacing behavior. Category descriptions are descriptive, not prescriptive; the determining factor is the prioritization of justification opportunities.
- `~block用字系@
- ~CJK, および拡張によるすべての `Wide^en 【“幅広”】文字( `UAX11$r を見よ)。 次に挙げる`~Unicode用字系$が含まれる ⇒# ~Bopomofo, ~Han, ~Hangul, ~Hiragana, ~Katakana, ~Yi ◎ CJK and by extension all Wide characters (see East Asian Width [UAX11]). The following Unicode scripts are included: Bopomofo, Han, Hangul, Hiragana, Katakana, and Yi.\
- `東Asian字幅~prop$が[ `Wide^uc / `Fullwidth^uc ]である文字も含まれるが、 `Ambiguous^uc 文字については,`書記~体系$が[ `中国語$ws/`韓国語$ws/`日本語$ws ]の場合に限り含まれる。 ◎ Characters of the East Asian Width property Wide and Fullwidth are also included, but Ambiguous characters are included only if the writing system is Chinese, Korean, or Japanese.
- `~clustered用字系@
- ~clustered用字系においては、 離散的な単位により,分断は単語~境界の所に限られるが、 可視な`単語~分離子$を利用しない。 これらは,~spaceの伸張-法を順位付けるが、 両端揃えに対しては,文字↔間の間隔法を不自由なく容認する。 ~clustered用字系には,少なくとも次に挙げる`~Unicode用字系$が含まれる ⇒# ~Khmer, ~Lao, ~Myanmar, ~New-Tai-Lue, ~Tai-Le, ~Tai-Tham, ~Tai-Viet, ~Thai ◎ Clustered scripts have discrete units and break only at word boundaries, but do not use visible word separators. They prioritize stretching spaces, but comfortably admit inter-character spacing for justification. The clustered scripts include, but are not limited to, the following Unicode scripts: Khmer, Lao, Myanmar, New Tai Lue, Tai Le, Tai Tham, Tai Viet, Thai
- `筆記的~用字系@
- 筆記的~用字系においては、[ 両端揃え/ `letter-spacing$p ]における字l↔間の途切れは容認されない。 次に挙げる`~Unicode用字系$が含まれる ⇒# ~Arabic, ~Mandaic, ~Mongolian, ~N_Ko, ~Phags-Pa, ~Syriac ◎ Cursive scripts do not admit gaps between their letters for either justification or letter-spacing. The following Unicode scripts are included: Arabic, Mandaic, Mongolian, N’Ko, Phags Pa, Syriac
- 注記: 基底線が接続されるように描かれる~Indic用字系(~Devanagariや~Gujaratiなど)は、 `筆記的~用字系$とは`見なされない^emので,`~typographic文字~単位$↔間に そのような途切れを`容認する^em。 `ILREQ$r を見よ。 ◎ Note: Indic scripts with baseline connectors (such as Devanagari and Gujarati) are not considered cursive scripts, and do admit such gaps between typographic character units. See Indic Layout Requirements. [ILREQ]
~UAは、 自身による~Unicode~supportを更新するに伴い,この~listを更新するベキである。 ~Unicodeの将来~versionにて,まだ符号化されていない筆記的~用字系を取扱うために。 また、 それに則ってこの仕様を更新するよう~CSS~WGに依頼することが奨励される。 ◎ User agents should update this list as they update their Unicode support to handle as-yet-unencoded cursive scripts in future versions of Unicode, and are encouraged to ask the CSSWG to update this spec accordingly.
付録 E. 文字の~prop
`この付録は規範的である。^em ◎ This appendix is normative.
~CSS植字では、 ~Unicodeにて定義される,符号位置~levelの~propとして、 次に挙げる 4 種を参照する: ◎ Unicode defines four code point-level properties that are referenced in CSS typesetting:
- `東Asian字幅~prop@
- `East Asian Width property@~UTR/tr11/#Definitions$en
- `UAX11$r にて定義され, `~Unicode文字~database$citeにて `East_Asian_Width^uc ~propとして与えられる。 ◎ Defined in Unicode Standard Annex #11 [UAX11] and given as the East_Asian_Width property in the Unicode Character Database [UAX44].
- `~Unicode字種@ (略して “字種” )
- `general category@~UTR/tr44/#General_Category_Values$en
- `UAX44$r にて定義され, `~Unicode文字~database$citeにて `General_Category^uc ~propとして与えられる。 ◎ Defined in Unicode Standard Annex #44 [UAX44] and given as the General_Category property in the Unicode Character Database [UAX44].
- 【 ある文字が “字種 %X に属する” という句は、 その文字の `General_Category^uc ~prop値が %X であることを意味する。 】
- `用字系~prop@
- `script property@~UTR/tr24/#Values$en
- `UAX24$r にて定義され, `~Unicode文字~database$citeにて `Script^uc ~propとして与えられる。 (~UAは、 `ScriptExtensions.txt@~UNIDATA/ScriptExtensions.txt$ にてアテガわれているものを,この対応付けに含めるモノトスル。) ◎ Defined in Unicode Standard Annex #24 [UAX24] and given as the Script property in the Unicode Character Database [UAX44]. (UAs must include any ScriptExtensions.txt assignments in this mapping.)
- 【 “ %X 用字系に属する文字” (または “〜の文字” )という句は、 その文字の `Script^uc ~prop値が %X であることを意味する。 】
- `縦書き方位@ (縦書き時の~glyph方位)
- `Vertical Orientation@~UTR/tr50/$en
- `UAX50$r にて定義され, `~Unicode文字~database$citeにて `Vertical_Orientation^uc ~propとして与えられる。 ◎ Defined in Unicode Standard Annex #50 [UAX50] as the Vertical_Orientation property in the Unicode Character Database [UAX44].
- `~Unicode行-分断法~class@ 【この項は、この訳による補完。】
- `UAX14$r にて定義される `line breaking class@~UTR/tr14/#LD6$en 。 所与の文字(の前後)に許容される分断~機会がどう決定されるかの分類を表す (具体的には、 `LineBreak.txt@~UNIDATA/LineBreak.txt$ にて与えられる)。
~Unicodeは、 個々の符号位置に対し各種~propを定義しているが、 `~typographic文字~単位$に対し~propを決定することも,ときには必要とされる。 この~module【!CSS Text】の目的においては、 `~typographic文字~単位$の~propは,その最初の`書記素~cluster$の基底~文字により与えられる — 次に挙げる 2 つの事例を除いて: ◎ Unicode defines properties for individual code points, but sometimes it is necessary to determine the properties of a typographic character unit. For the purposes of CSS Text, the properties of a typographic character unit are given by the base character of its first grapheme cluster—except in two cases:
- `Common^uc 用字系の Enclosing Mark( `Me^uc )により形成される`書記素~cluster$は、 `Common^uc 用字系においては, Other Symbols( `So^uc )と見なされる。 それらは、 `FFFD^U `REPLACEMENT CHARACTER^cn と同じ~Unicode~propを持つものと見做される。 ◎ Grapheme clusters formed with an Enclosing Mark (Me) of the Common script are considered to be Other Symbols (So) in the Common script. They are assumed to have the same Unicode properties as the replacement character (U+FFFD).
- Space Separator ( `Zs^uc )を `base^en 【基底~文字 — `base character@https://www.unicode.org/glossary/#base_character$en ?】 として形成される書記素~clusterは、 Modifier Symbols ( `Sk^uc )と見なされる。 それらは、[ `東Asian字幅~prop$は, `base^en と同じである ]ものと見做されるが、 他の~propについては,並び内の最初の結合~文字から採る。 ◎ Grapheme clusters formed with a Space Separator (Zs) as the base are considered to be Modifier Symbols (Sk). They are assumed to have the same East Asian Width property as the base, but take their other properties from the first combining character in the sequence.
付録 F. 内容~書記~体系の識別-法
`この付録は規範的である。^em ◎ This appendix is normative.
ほとんどの言語には、 選好される書記~体系が — 一部には複数個 — あり,その中に筆写-( `transcribe^en )できる外来の書記~体系もいくつかある。 共通的な例として,ほとんどの言語には、 少なくとも~Latin筆写があり,~Latin書記~体系でも記せる。 筆写された~textは、 概して,その書記~体系の~typographic規約を採用する。 例えば,[ 日本語の “~romaji” / 中国語の拼音( `Pinyin^en ) ]は、 ~Latin[ 字l, 単語~間隔 ]を利用して,それに則って~Latin[ 行-分断法, 両端揃え ]の実施に従う。 別の例として、 歴史的な表語文字による韓国語( `ko-Hani^v )は、 単語~間隔を利用しないので — 現代の韓国語ではなく — 中国語と類似に植字されるベキである。 ◎ While most languages have a preferred writing system, some have multiple, and most can also be transcribed into one or more foreign writing systems. As a common example, most languages have at least one Latin transcription, and can thus be written in the Latin writing system. Transcribed texts typically adopt the typographic conventions of the writing system: for example Japanese “romaji” and Chinese Pinyin use Latin letters and word spaces, and follow Latin line-breaking and justification practices accordingly. As another example, historical ideographic Korean (ko-Hani) does not use word spaces, and should therefore be typeset similar to Chinese rather than modern Korean.
~HTMLも含め,[ 言語を識別するための `BCP47$r 言語~tagを利用して,`内容~言語$を宣言する`文書~言語$ ]においては、 作者は,[ 【宣言された内容~言語においては】代表的でない書記~体系の利用 ]を用字系~下位tagで[ 一義化できる/指示できる ]。 例えば,[ ~nativeには~Latin書記~体系を利用しない言語 ]用にそれの利用を指示するときは、 用字系~下位tagとして `-Latn^c を追加できる — 例:日本語~romaji用には `ja-Latn^c など。 他の書記~体系~用にも他の下位tagが存在する — `ISO15924$r `用字系~tag~registry@https://unicode.org/iso15924/iso15924-codes.html$ を見よ。 ◎ In HTML or any other document language using BCP47 tags for identifying languages to declare the content language, authors can disambiguate or indicate the use of an atypical writing system with script subtags. [BCP47] For example, to indicate use of the Latin writing system for languages which don’t natively use it, the -Latn script subtag can be added, e.g. ja-Latn for Japanese romaji. Other subtags exist for other writing systems, see ISO’s Code for the Representation of Names of Scripts and the ISO15924 script tag registry. [ISO15924]
用字系~下位tagを伴う `BCP47$r ~tagを利用している[ 共通的な例/歴史的な例 ]: ◎ Some common/historical examples of using BCP47 tags with script subtags:
- `zh-Latn^c
- ~Latin筆写で記される中国語。 ◎ Chinese, written in Latin transcription.
- `ko-Hani^c
- ~Hanja(中国語の表語-文字)で記される韓国語。 ◎ Korean, written in Hanja (Chinese ideographic characters).
- `tr-Arab^c
- ~Arabic用字系で記される~Turkish。 ◎ Turkish, written in Arabic script.
- `mn-Cyrl^c
- ~Cyrillicで記される~Mongolian。 ◎ Mongolian, written in Cyrillic.
- `mn-Mong^c
- 伝統的な~Mongolian用字系で記される~Mongolian。 ◎ Mongolian, written in traditional Mongolian script.
しかしながら, `BCP47$r 用字系~下位tagは、 単独の書記~体系に強く結付けられた言語には,概して利用されない (事実,忌避される) — 他が指定されていないときは、 それが暗黙の書記~体系になるものと期待される。 IANA は、 その `言語~下位tag~registry@~IANA-a/language-subtag-registry/language-subtag-registry$ にて,この目的~用に[ 様々な言語の最も共通的な書記~体系が成す~database ]を `Suppress-Script^c ~fieldを介して保守する。 ◎ However, BCP47 script subtags are not typically used (and are in fact discouraged) for languages strongly associated with a single writing system: instead that writing system is expected to be implied when no other is specified. [BCP47] IANA maintains a database of various languages’ most common writing system via the Suppress-Script field in its language subtag registry for this purpose.
注記: 言語~tag付けについての助言は、 `国際化~WG@~I18N/core/$ による `~HTML/~XMLにおける言語~tag@~I18N/articles/language-tags/$ ( “`Language tags in HTML and XML^en” ), `言語~tagの選び方@~I18N/questions/qa-choosing-language-tags$ ( “`Choosing a Language Tag^en” ) に見出せる。 ◎ Note: More advice on language tagging can be found in the Internationalization Working Group’s “Language tags in HTML and XML” and “Choosing a Language Tag”.
書記~体系が明示的に指示されていない下では、 ~UAは,[ 行-分断法や両端揃えなど,言語に敏感な~typographicの挙動 ]は[ 宣言された`内容~言語$に最も共通的な書記~体系 (1) ]に従うものと見做すベキである。 しかしながら,作者が異なるもの【書記~体系】を明示的に宣言した場合は、 そう見做さないモノトスル。 ~UAは、 特定0の[ `言語$, 書記~体系 ]の組合n【が宣言されていて、それ】に対し,言語に特有な知識を備えていない場合には、 宣言された書記~体系の~typographic規約を利用するモノトスル (必要とされるなら、 【宣言された内容~言語と】異なる言語の規約に従うと見做して) — (1) の書記~体系における宣言された言語の規約は、 宣言された書記~体系には不適切になろうから。 ◎ When no writing system is explicitly indicated, UAs should assume the most common writing system of the declared content language for language-sensitive typographic behaviors such as line-breaking or justification. However, UAs must not assume that writing system if the author has explicitly declared a different one. If the UA has no language-specific knowledge of a particular language and writing system combination, it must use the typographic conventions of the declared writing system (assuming the conventions of a different language if necessary), not the conventions of the declared language in an assumed writing system, which would be inappropriate to the declared writing system.
【 `内容~言語$とは別に,書記~体系も宣言できる — 具体的には、 `用字系~下位tag@#script-tagging$を指すと見受けられる。 】
所与の言語と それに最も共通的な書記~体系(たち)との間の全部的な対応関係は、 この文書の視野から外れる。 しかしながら,~UAは、 少なくとも次は成立すると見做すモノトスル: ◎ The full correspondence between languages and their most common writing systems is out of scope for this document. However, user agents must assume at least the following:
-
次のいずれかに該当する場合、 `書記~体系$は `中国語@ws になる:
- `内容~言語$は中国語, かつ`書記~体系$は未指定
- `内容~言語$は問わず,`書記~体系$は~ISO用字系~codeで次のいずれかとして指定されている ⇒ `Hant^c, `Hans^c, `Hani^c, `Hanb^c, `Bopo^c
-
次のいずれかに該当する場合、 `書記~体系$は `日本語@ws になる:
- `内容~言語$は日本語, かつ`書記~体系$は未指定
- `内容~言語$は問わず,`書記~体系$は~ISO用字系~codeで次のいずれかとして指定されている ⇒ `Jpan^c, `Hrkt^c, `Hira^c, `Kana^c
-
次のいずれかに該当する場合、 `書記~体系$は `韓国語@ws になる:
- `内容~言語$は韓国語, かつ`書記~体系$は未指定
- `内容~言語$は問わず,`書記~体系$は~ISO用字系~codeで次のいずれかとして指定されている ⇒ `Kore^c, `Hang^c, `Jamo^c
-
次に該当する場合、 `書記~体系$は `未知@ws であるものと見なされる ⇒ `内容~言語$は、 それ自体が未知であるか,未知な書記~体系であるものと明示的に指示している。 ◎ The writing system is only considered to be unknown if the content language itself is unknown, or if it explicitly indicates an unknown writing system.
注記: `内容~言語$が宣言されていて,`書記~体系$の情報が単に省略されているときは、 暗黙の`書記~体系$が在って,未知ではないことを意味する。 ◎ Note: Mere omission of the writing system information when the content language is declared means the that the writing system is implied, not unknown.
付録 G. 小書き~Kanaの対応付け
`この付録は規範的である。^em ◎ This appendix is normative.
`小書き~Kana@ ( `small Kana^en ) | `全部的~sizeの~Kana@ ( `full-size Kana^en ) |
---|---|
`3041^gU | `3042^gU |
`3043^gU | `3044^gU |
`3045^gU | `3046^gU |
`3047^gU | `3048^gU |
`3049^gU | `304A^gU |
`3095^gU | `304B^gU |
`3096^gU | `3051^gU |
`3063^gU | `3064^gU |
`3083^gU | `3084^gU |
`3085^gU | `3086^gU |
`3087^gU | `3088^gU |
`308E^gU | `308F^gU |
`30A1^gU | `30A2^gU |
`30A3^gU | `30A4^gU |
`30A5^gU | `30A6^gU |
`30A7^gU | `30A8^gU |
`30A9^gU | `30AA^gU |
`30F5^gU | `30AB^gU |
`31F0^gU | `30AF^gU |
`30F6^gU | `30B1^gU |
`31F1^gU | `30B7^gU |
`31F2^gU | `30B9^gU |
`30C3^gU | `30C4^gU |
`31F3^gU | `30C8^gU |
`31F4^gU | `30CC^gU |
`31F5^gU | `30CF^gU |
`31F6^gU | `30D2^gU |
`31F7^gU | `30D5^gU |
`31F8^gU | `30D8^gU |
`31F9^gU | `30DB^gU |
`31FA^gU | `30E0^gU |
`30E3^gU | `30E4^gU |
`30E5^gU | `30E6^gU |
`30E7^gU | `30E8^gU |
`31FB^gU | `30E9^gU |
`31FC^gU | `30EA^gU |
`31FD^gU | `30EB^gU |
`31FE^gU | `30EC^gU |
`31FF^gU | `30ED^gU |
`30EE^gU | `30EF^gU |
`FF67^gU | `FF71^gU |
`FF68^gU | `FF72^gU |
`FF69^gU | `FF73^gU |
`FF6A^gU | `FF74^gU |
`FF6B^gU | `FF75^gU |
`FF6F^gU | `FF82^gU |
`FF6C^gU | `FF94^gU |
`FF6D^gU | `FF95^gU |
`FF6E^gU | `FF96^gU |
~privacyの考慮点
この仕様は、 利用者にて~installされた[ ~hyphen化/行-分断法 ]辞書を漏洩させる。 ◎ This specification leaks the user’s installed hyphenation and line-breaking dictionaries.
~securityの考慮点
この仕様が導入する新たな~securityの考慮点は、 無い。 ◎ This specification introduces no new security considerations.
謝辞
この仕様は、 次の方々からの助力が無ければアリでなかったであろう: ◎ This specification would not have been possible without the help from:\
Addison Phillips, Aharon Lanin, Alan Stearns, Ambrose Li, Arnold Schrijver, Arye Gittelman, Ayman Aldahleh, Ben Errez, Bert Bos, Chris Lilley, Chris Pratley, Chris Thrasher, Chris Wilson, Dave Hyatt, David Baron, Emilio Cobos Álvarez, Eric LeVine, Etan Wexler, Frank Tang, Håkon Wium Lie, IM Mincheol, Ian Hickson, James Clark, Javier Fernandez, John Daggett, Jonathan Kew, Ken Lunde, Laurie Anna Edlund, Marcin Sawicki, Martin Dürst, Martin Heijdra, Masafumi Yabe, Masayasu Ishikawa, Michael Jochimsen, Michel Suignard, Mike Bemford, Myles Maxfield, Nat McCully, Paul Nelson, Rahul Sonnad, Richard Ishida, Shinyu Murakami, Stephen Deach, Steve Zilles, Takao Suzuki, Tantek Çelik, Xidorn Quan, Yaniv Feinberg.
変更点
【 変更-箇所の引用は省略する。 】
- `2020 年 12月 勧告候補@~TR/2020/CR-css-text-3-20201222/$ からの変更点 ◎ Recent Changes ◎ The following normative changes have been made since the December 2020 Candidate Recommendation.
- `text-justify$p1 用の値 `distribute$v1 は、 `inter-character$v1 と同じ挙動になるのみならず,算出d値もそうなるものと定義した。 `distribute^v を`旧来の別名~値$として実装することを許容した — 一部の~engineには,その方が容易であり、 互換性にも問題無いので。 ( `6156$issue, `7322$issue ) ◎ Define that distribute computes to inter-character, rather than merely behave the same; allowdistribute to be implemented as a legacy value alias, since this is easier for some engines and does not matter for compatibility. (Issue 6156, Issue 7322)
- 言語に特有な~hyphen化~規則は、 明示的な`~hyphen化~機会$にも適用されることを明確化した。 ( `5973$issue ) ◎ Clarify that language-specific hyphenation rules also apply to explicit hyphenation opportunities. (Issue 5973)
- `根~要素$に対する `text-align$p1 用の値 `match-parent$v1 は、 `首要な書字~mode$を~~基準に算出する代わりに, `start$v1 に算出するものと定義した。 ( `6542$issue ) ◎ Define match-parent on the root element to compute to start instead of computing against the principal writing mode. (Issue 6542)
- `text-transform$p に関する作者~向けの助言を規範的な推奨にした。 ( `8279$issue ) ◎ Make authoring advice regarding text-transform a normative recommendation. (Issue 8279) • Note: The text-transform property only affects the presentation layer; correct casing for semantic purposes is expected to be represented in the source document. • Advisement: Authors must not rely on text-transform for semantic purposes; rather the correct casing and semantics should be encoded in the source document text and markup.
- 編集上の小さな修正点 ◎ In addition there have been some minor editorial fixes.
- より以前の変更点 ◎ Older Changes
- `2020 年 12月 勧告候補の § 変更点@~TR/2020/CR-css-text-3-20201222/#changes$は、 その勧告候補に先立つ 2020年, 2019年の作業草案を受持つ。 ◎ See also earlier list of changes covering the 2020 and 2019 Working Drafts prior to that Candidate Recommendation and\
- `各~commentに対する処置集@https://w3c.github.io/csswg-drafts/css-text-3/issues-lc-2013$もある — これは、 2013年 〜 2020年に寄せられたすべての~commentを受持つ。 ◎ the Disposition of Comments covering all comments between 2013 and 2020.