1. 序論
この~moduleは、~CSSによる植字~制御について述べる — それは、[ ~source~textから,行lが折返され, 整形された~textへの転換 ]を制御する,各種~CSS特色機能である。 種々の~CSS~propが、次に対する制御を供する: [ 大小~変形, 空白の縮約-法, ~textの折返し, `行-分断規則$と~hyphen化, 整列と両端揃え, 間隔法, 字下げ ]。 ◎ 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選定については、 CSS Fonts Level 3 `CSS3-FONTS$r にて~~扱われる。 ◎ Font selection is covered in CSS Fonts Level 3 [CSS3-FONTS].
(以前は この~moduleの一部であった) 装飾線( `underline^en ), 圏点( `emphasis mark^en ), 影( `shadow^en ) などの,~textを装飾するための特色機能は、 CSS Text Decoration Level 3 `CSS3-TEXT-DECOR$r にて~~扱われる。 ◎ Features for decorating text, such as underlines, emphasis marks, and shadows, (previously part of this module) are covered in CSS Text Decoration Level 3 [CSS3-TEXT-DECOR].
`双方向的$/`縦書き$ の~textについては CSS Writing Modes Level 3 `CSS3-WRITING-MODES$r にて取組まれる。 ◎ Bidirectional and vertical text are addressed in CSS Writing Modes Level 3 [CSS3-WRITING-MODES].
世界各地の様々な言語と書記体系における植字~要件についての更なる情報は、 ~I18nWG による `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 Typography Index. [TYPOGRAPHY]
1.1. 各種~module間の相互作用
この~moduleは、 `CSS3-TEXT-DECOR$r とともに, `CSS21$r 16 章にて定義される~text~levelの特色機能を,置換し, 拡張する。 ◎ This module, together with [CSS3-TEXT-DECOR], replaces and extends the text-level features defined in [CSS21] chapter 16.
下に定義される各種~用語に加えて,この仕様にて利用される 他の各種用語/概念は、 `CSS21$r, `CSS3-WRITING-MODES$r にて定義される。 ◎ In addition to the terms defined below, other terminology and concepts used in this specification are defined in [CSS21] and [CSS3-WRITING-MODES].
1.2. ~CSS値
【 この節の内容は CSS 日本語訳 共通ページ に委譲 】
【この訳に固有の表記規約】
簡潔かつ明確にするため、この訳では,記号 "↔", "間" を次の意味で用いる:
- ~textを構成する,ある分類による単位(例えば “単語”, “文字”,その他 何らかの条件を満たす文字列の集合など) %W に対し、 “%W↔間” という表記(例えば、 “単語↔間” )は、論の対象の~textの中で互いに隣接する,任意の 2 つの[ %W に属する単位~instance ]の合間を意味する。
- %Z を別の単位とするとき、 “%W ↔ %Z 間” という表記は、~textの中で互いに隣接する,[ %W に属する任意の単位~instanceと, %Z に属する任意の単位~instance ](順不同)の合間を意味する。 (同順であることも要する場合は、その旨が記される)
“隣接する” の定義は、双方向性による並替えの前/後で変化することに注意(~layoutの文脈では、通例的に並替えの後になる)。
この仕様の語[ 始端/終端 ]は、特に断らない限り,`行内~基底~方向$のそれを意味する(塊~flow~方向ではなく)。
略語 “~CJK” は、 中国語/日本語/韓国語 の総称を表す。
1.3. 言語と植字
作者は、最良の結果を得るため,言語~tagを内容に正確aにあてがうべきである。 ◎ Authors should language-tag their content accurately for the best typographic behavior.
要素の `内容~言語@ とは、`文書~言語$の規則に則って,要素が属するものと宣言されている(人が話す)言語である。 `内容~言語$を決定するための規則は、例えば, ~HTMLのそれは `HTML$r にて定義される / ~XML要素のそれは `XML10$r にて定義される。 要素の`内容~言語$は,未知になる場合もあることに注意。 例:[ ~tag付けられてない内容や,言語~tag付けの便宜性が無い`文書~言語$x内の内容 ]の内容~言語は、未知と見なされる。 ◎ 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. For example, the rules for determining the content language of an HTML are defined in [HTML], and the rules for determining the content language of an XML element use are defined in [XML10]. 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.
注記: 作者は、次を利用して内容を~tag付けれる ⇒# ~HTMLにおいては 大域 `lang^a 属性 / ~XMLにおいては 普遍的 `xml:lang^a 属性 / ~HTTPで~serveされる内容~用には ~HTTP `Content-Language^h ~header ◎ Note: Authors can tag content using the global lang attribute in HTML, the universal xml:lang attribute in XML, and the HTTP Content-Language header for content served over HTTP.
言語と書記体系の規約は、 行-分断法, ~hyphen化, 両端揃え, ~glyph選定, その他,多くの~typographic効果に影響し得る。 ~CSSにおいては、言語~特有の~typographic誂えは、`内容~言語$が既知である(宣言されている)ときに限り適用される。 したがって,高~品質な~typographyを得るためには、作者には,文書~内の~textの正しい言語上の文脈を~UAに伝えることが要求される。 ◎ 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の利用 — についての情報は、 付録 E. 書記体系による内容の~tag付け に見出せる。 ◎ More information about language tags and their interpretation, particularly the use of script tags for atypical language + writing-system combinations, can be found in Appendix E. Tagging Content by Writing System.
1.4. 文字と字0
植字の基本的~単位は, `文字@ ( `character^en )である。 しかしながら、書記体系は,基本的な英語~alphabetほど単純とは限らないので、`文字$が実際に何であるかは,その用語が利用される文脈に依存する。 例えば,~Hangul(韓国語の書記体系)では、各[ 音節の方形~表現 ](例: `한^lt = Han )を,`文字$と見なせる。 しかしながら,方形~記号は、~~実際に,それぞれが音素を表現するような 複数の字0( `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の分野においても,関連する`文字$単位は演算に依存する。 例えば,`行-分断法$と, `字間隔法$とでは、[ `0E33^U THAI CHARACTER SARA AM が含まれる ~Thai文字の並び ]に対する区分の~~仕方が異なる。 また、~Devanagariのような用字系における連接子音の挙動は、利用~中の~fontに依存することがある。 このように,`~typographic文字$は、特定0の~typographic演算( `行-分断法$, (段落の)最初の字0( `first-letter^en )効果, `字間隔法$, 両端揃え, 縦書き時の配列, 等々 )に関して分割し得ないような,書記体系の単位を表現する — ~Latin~alphabetic字0(その発音区別符も含め), ~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 behaviour 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.).
~Unicode-Standard Annex #29: Text Segmentation は、 `書記素~cluster@ ( `grapheme cluster^en )と呼ばれる,`~typographic文字$を近似する単位を定義している。 ~UAは、自身の`~typographic文字~単位$の基礎として,[ `UAX29$r にて定義される,拡張された( `extended^en )書記素~cluster ]を利用し~MUST(旧来の( `legacy^en )書記素~cluster ではなく)。 しかしながら,~UAは、~typographic慣行からの要求に応じて,定義を誂えるべきである — 既定の規則は,必ずしも 適切/理想的 になるとは限らず、演算に依存して,必要に応じて異なるものに誂えるものと期待されているので。 ◎ Unicode Standard Annex #29: Text Segmentation defines a unit called the grapheme cluster which approximates the typographic character. 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の視野~外である。 ◎ 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$ `UAX29$r を含み得る。 ◎ 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 [UAX29] grapheme cluster.
-
~Thaiや~Laoなどの他の用字系においては、行-分断法に対しては,`~typographic文字$は,~Unicodeの既定の`書記素~cluster$に合致する一方、`字間隔法$に関連する単位は, `書記素~cluster$ `UAX29$r よりも細かいため,間隔法を挿入し得るようになる前に,分解形その他の代用を要することがある。 ◎ 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 [UAX29] grapheme cluster, and may require decomposition or other substitutions before spacing can be inserted.
具体例として、~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: นํ้ า.
- 縦書き植字 `CSS3-WRITING-MODES$r から要求される誂えもある。 例えば、 `upright$v ~textの植字にあたっては、~Tibetanの tsek, shad ~markは、独立する`~typographic文字~単位$として扱うのではなく,先行する`書記素~cluster$と~~一緒に保たれる。 ◎ Vertical typesetting [CSS3-WRITING-MODES] 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.
この仕様の目的における `~typographic字0単位@ ( `typographic letter unit^en )または,単に `字0@ ( `letter^en )とは、`~typographic文字~単位$のうち,`~Unicode字種$[ `Letter^uc または `Number^uc ]`UAX44$r に属するものである。 `~typographic文字~単位$の各種~Unicode~propを決定する方法については、 文字~prop を見よ。 ◎ 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 in Unicode. [UAX44] See Character Properties for how to determine the Unicode properties of a typographic character unit.
`~typographic文字~単位$が要素~境界で分割されているときの描画~特性は、未定義である: それは、境界の一方の側に属するように描画されることもあれば,何らかの近似で両者に属するよう描画されることもある。 作者には、`書記素~cluster$を要素~境界で分割すると, 一貫しない/欲されない 結果にもなり得ることを警告しておく。 ◎ The rendering characteristics of a typographic character unit divided by an element boundary is undefined: it 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 by element boundaries may give inconsistent or undesired results.
2. ~textの変形-法
2.1. 大小~変形-: `text-transform^p ~prop
◎名 `text-transform@p ◎値 `none$v | `capitalize$v | `uppercase$v | `lowercase$v | `full-width$v ◎初 `none^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、~textを~style付け目的で変形する(下層の内容には効果を持たない)。 各種 値の意味は: ◎ This property transforms text for styling purposes. (It has no effect on the underlying content.) Values have the following meanings:
- `none@v
- 効果なし。 ◎ No effects.
- `capitalize@v
- 各~単語の最初の`~typographic字0単位$を,小文字であれば題字~化する — 他の文字は影響されない。 ◎ Puts the first typographic letter unit of each word, if lowercase, in titlecase; other characters are unaffected.
- 【 “小文字であれば” — おそらく、この記述のみからは真意は伝わらないであろう — 詳細 】【 題字( `titlecase^en ) — 当の言語において,~~主要な単語の頭字を大文字~化するなどの慣習。 表題などによく用いられる。 】
- `uppercase@v
- すべての`字0$を,大文字~化する。 ◎ Puts all letters in uppercase.
- `lowercase@v
- すべての`字0$を,小文字~化する。 ◎ Puts all letters in lowercase.
- `full-width@v
- すべての`~typographic文字~単位$を,全角~形にする。 対応する全角~形を持たない文字は、そのままにされる。 この値は概して、~Latin[ 字0/数字 ]を それらが表語的文字であったかのように植字するために利用される。 ◎ Puts all typographic character units in fullwidth form. If a character does not have a corresponding fullwidth form, it is left as is. This value is typically used to typeset Latin letters and digits as if they were ideographic characters.
`capitalize$v に対し,何が “単語“ を成すかは~UAに依存する — そのような単語~境界を決定するにあたっては,(要求-はされないが) `UAX29$r が勧められる。 作者は、 `capitalize$v が言語~特有の題字~化~規約に従うこと(英語にて,冠詞は飛ばすなど)を期待するべきでない。 ◎ For capitalize, what constitutes a “word“ is UA-dependent; [UAX29] is suggested (but not required) for determining such word boundaries. Authors should not expect capitalize to follow language-specific titlecasing conventions (such as skipping articles in English).
[ 日本語~text内の略語( `abbr^e )に利用されている ASCII 文字 ]を、[ 全角~異体に変換させ, 表語文字の様に~lay-outさせ, 行-分断させる ]ようにする例: ◎ The following example converts the ASCII characters used in abbreviations in Japanese text to their fullwidth variants so that they lay out and line break like ideographs:
abbr:lang(ja) { text-transform: full-width; }
注記: 演算の~text処理~順序 にて定義されるように、~textの変形-法は,行-分断法と他の整形~演算に影響することに注意。 ◎ Note that, as defined in Text Processing Order of Operations, transforming text affects line-breaking and other formatting operations.
~UAは、~Unicode文字に対し,[ ~Unicode-Standard `UNICODE$r の Default Case Algorithm 節 にて定義される,全部的な大小対応 ]を利用し~MUST — 条件付き大小変換~規則があれば それも含め。 言語~特有の適切な規則があれば、[ `文書~言語$の規則に則って,要素の`内容~言語$が既知である ]とき, そのときに限り,それも適用され~MUST。 これらは,最低限であり、~Unicodeの SpecialCasing.txt による言語~特有の規則を含む。 ◎ The UA must use the full case mappings for Unicode characters, including any conditional casing rules, as defined in Default Case Algorithm 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 による大小対応は、[ 英語には存在しない,[ ~dotなし, ~dotあり ]それぞれに~~対応する 2 つの大小対応 ]に置換される。 この大小対応は、`内容~言語$が~Turkish(より~~一般的には,~Turkishの大小変換~規則を利用するような~Turkic)である場合に限り効果を~~発揮し~MUST — 他の言語の下では、通例の `I^lt ↔ `i^lt による大小対応が要求される。 よって,この規則は、~Unicodeの 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 undotted/dotted counterparts, which do not exist in English. This mapping must only take effect if the content language is Turkish (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.
全角/半角 形の定義は、 `UAX11$r にて見出せる。 全角~形への大小対応0は、 `UAX44$r による `Decomposition_Mapping^c 内の[ `wide^e / `narrow^e ]~tagを伴う符号位置を取り出すことで定義される。 この対応関係は:
- `narrow^e ~tagを伴う符号位置は、その分解形(から `narrow^e ~tagを除いたもの)に対応付けられる。
- `wide^e ~tagを伴う符号位置は、その分解形(から `wide^e ~tagを除いたもの)に戻すように対応付けられる。
`~text変形$は,`空白~処理$の後に起こるので、 `0020^U ~spaceのうち, `full-width$v により `3000^U へ変形されるものは、`保全済み$空白に限られる。 ◎ Text transformation happens after white space processing, which means that full-width only transforms U+0020 spaces to U+3000 within preserved white space.
注記: ~CSSの将来~levelでは、あまり共通的でない`~text変形$に対し,~custom大小対応0~tableを作成する能が導入されるかもしれない — `counter-style$at 規則 `CSS-COUNTER-STYLES-3$r に似たような, “`text-transform^at 規則” などにより。 ◎ A future level of CSS may introduce the ability to create custom mapping tables for less common text transforms, such as by an @text-transform rule similar to @counter-style from [CSS-COUNTER-STYLES-3].
3. 空白と折返し: `white-space^p ~prop
◎名 `white-space@p ◎値 `normal$v | `pre$v | `nowrap$v | `pre-wrap$v | `break-spaces$v | `pre-line$v ◎初 `normal^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、次の 2 つを指定する: ◎ This property specifies two things:
- 要素の内側にある`空白$を,縮約するかどうか/どう縮約するか。 ◎ whether and how white space inside the element is collapsed
- 各~行lを 非強制の`自動折返し機会$の所で`折返して$よいかどうか。 ◎ whether lines may wrap at unforced soft wrap opportunities
各種 値は,次の意味を持ち,[ `空白~処理~規則$, `行-分断規則$ ]に則って解釈され~MUST: ◎ Values have the following meanings, which must be interpreted according to the White Space Processing and Line Breaking rules:
- `normal@v
- この値は、[ 各 `空白$並びを 1 個の文字に( 一部の事例では 0 個の文字に)縮約する ]ことを,~UAに指図する。 各~行lは、`行内-軸$の~overflowを最小限にするために,[ 有効な行-分断規則により決定される,許容される`自動折返し機会$ ]の所で折返されてよい。 ◎ 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などの`区分~分断$は、`強制~行-分断$として保全される。 各~行lは、`強制~行-分断$の所でのみ分断する — `塊~容器$の中に収まらない内容は~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 同様,折返しは許容しない。 ◎ Like normal, this value collapses white space; but like pre, it does not allow wrapping.
- `pre-wrap@v
- `pre$v 同様,`空白$は保全させるが、 `normal$v 同様,折返しは許容する。 ◎ 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:
- `保全済み$`空白$が成す並びは、行lの末尾も含め,常に空間を占める。 ◎ Any sequence of preserved white space always takes up space, including at the end of the line.
- 各 保全済み空白~文字の後/合間には、行l分断法~機会が存在する。 ◎ A line breaking opportunity exists after every preserved white space character, including between white space characters.
保全済み~spaceは、空間を占め, かつ`吊下がら$ないので,~boxの内在的~size(`最小-内容~size$, `最大-内容~size$)に影響する。 ◎ As preserved spaces take up space and do not hang, they affect the box’s intrinsic sizes (min-content size and max-content size).
- 注記: この値は、~spaceに因る~overflowが決して生じないことは保証しない。 例えば,行lの長さが単独の~spaceが収まるに満たないほど短い場合、~overflowは避けれない。 ◎ This value does not guarantee that there will never be any overflow due to spaces: for example, if the line length is so short that even a single space does not fit, overflow is unavoidable.
- `pre-line@v
- `normal$v 同様,連続する~spaceは縮約させ, 折返しも許容するが、~source内の`区分~分断$は,`強制~行-分断$として保全させる。 ◎ Like normal, this value collapses consecutive spaces and allows wrapping, but preserves segment breaks in the source as forced line breaks.
次の一覧(参考)に、各種 `white-space$p 値の挙動を要約する: ◎ The following informative table summarizes the behavior of various white-space values:
改行文字 | ~spaceと~tab | ~textの折返し | 行末の~space | |
---|---|---|---|---|
`normal$v | 縮約する | 縮約する | 折返あり | 除去する |
`pre$v | 保全する | 保全する | 折返さない | 保全する |
`nowrap$v | 縮約する | 縮約する | 折返さない | 除去する |
`pre-wrap$v | 保全する | 保全する | 折返あり | 縮約するか吊下げる |
`break-spaces$v | 保全する | 保全する | 折返あり | 折返す |
`pre-line$v | 保全する | 縮約する | 折返あり | 除去する |
空白がどう縮約されるかの詳細は、`空白~処理~規則$を見よ。 以下に、縮約-法( `normal$v と `nowrap$v )を要約する(参考): ◎ See White Space Processing Rules for details on how white space collapses. An informative summary of collapsing (normal and nowrap) is presented below:
- [ 中国語 文字↔間 / 日本語 文字↔間 / ~Yi 文字↔間 ]にある,[ `区分~分断$や他の`空白$ ]並びは、無に縮約する。 ◎ A sequence of segment breaks and other white space between two Chinese, Japanese, or Yi characters collapses into nothing.
- `区分~分断$を包含している空白~並びの[ 前/後 ]にある零幅~spaceに対しては、`空白$並び全体を,零幅~spaceに縮約する。 ◎ A zero width space before or after a white space sequence containing a segment break causes the entire sequence of white space to collapse into a zero width space.
- 他の場合、連続する`空白$を 1 個の~spaceに縮約する。 ◎ Otherwise, consecutive white space collapses into a single space.
折返しの挙動の詳細は、`行-分断規則$を見よ。 ◎ See Line Breaking for details on wrapping behavior.
4. 空白~処理の詳細
文書の~source~textは、[ 最終的な描画には関連しない整形 ]を包含することが多い: 例えば,編集を容易にするため、 ~sourceを何~区分(行l)かに分断した上で,~tabや~spaceなどの空白~文字を追加して~source~codeを字下するなど。 ~CSSによる空白~処理は、作者がそのような整形の解釈を制御して,文書を描画するときに[ 保全する/取去る ]ことを~~可能にする。 ~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 interprets white space characters only for rendering: it has no effect on the underlying document data.
~CSSによる空白~処理は、 `white-space$p ~propにより制御される。 ◎ White space processing in CSS is controlled with the white-space property.
~CSSでは、文書【の~text】を区分するような規則は定義されない。 各~区分は,[ 特定0の改行文字~並び(~LFや ~CR~LF~pairなど) ]で分離されたり, [ SGML の `RECORD-START^c/`RECORD-END^c ~tokenなどの,何らかの他の仕組み ]により区切られ得る。 ~CSS処理においては、~text内の各 `区分~分断@ ( `segment break^en ) — すなわち、[ 文書~言語が定義するもの, ~LF( `000A^U ) ]の総称 — は、描画~時には `white-space$p ~propに指定されたとおりに解釈される。 ◎ CSS does not define document segmentation rules. 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. For CSS processing, each document language–defined segment break and 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.
注記: 文書の構文解析器は、`区分~分断$を正規化するのみならず,[ 他の~space文字も縮約したり,~markup規則に則って空白を処理する ]こともあることに注意。 ~CSS処理は,この構文解析の後に生じるので、~style付けのために これらの文字を戻すことは不可能である。 この規制の影響により、下に指定される挙動のうち一部は,~UAに依存することもある。 ◎ Note that 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.
注記: `縮約-可能$な`空白$のみからなる`匿名~塊$は、描画~木から除去されることに注意。 よって、`塊level$要素の周囲に そのような`空白$があれば,取去られる。 `CSS21$r 9.2.2.1 節 を見よ。 ◎ Note that 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 [CSS21] section 9.2.2.1
[ ~FF( `000C^U ) / ~CR( `000D^U ) ](これらは`区分~分断$でない)は、零幅~space( `200B^U )として描画される。 制御~文字( `~Unicode字種$ `Cc^uc )のうち,[ ~tab( `0009^U ), ~LF( `000A^U ), ~FF( `000C^U ), ~CR( `000D^U ) ]以外のものは、可視~glyphとして描画するか,あるいは他の[ `~Unicode字種$ Other Symbols( `So^uc )や, `Common^uc `用字系$ ]に属する文字と同じに扱われ~MUST — ~UAは、次のいずれかをしてよい ⇒# ~fontにて,特に制御~文字~用に供されている~glyphを利用する / Control Pictures 【~Unicode】~blockにて供される,対応する記号の~glyphで代用する / その符号位置~値の視覚的~表現を生成する / 何らかの他の~methodを利用して,適切な可視~glyphを供する ◎ Form feeds (U+000C) and carriage returns (U+000D) (that are not segment breaks) are rendered as a zero-width space (U+200B). Control characters (Unicode category Cc) other than tab (U+0009), line feed (U+000A), form feed (U+000C), and carriage return (U+000D) must be rendered as a visible glyph and 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 codepoint value, or use some other method to provide an appropriate visible glyph.\
`UNICODE$r から要求されるように、~supportされない `Default_ignorable^uc 文字は,描画においては無視され~MUST。 ◎ As required by [UNICODE], unsupported Default_ignorable characters must be ignored for rendering.
4.1. 空白~処理~規則
~CSSによる空白~処理は、 `文書~空白~文字@ — ~space( `0020^U ), ~tab( `0009^U ), `区分~分断$ — のみに影響する。 ◎ White space processing in CSS affects only the document white space characters: spaces (U+0020), tabs (U+0009), and segment breaks.
注記: `文書~空白$(文書~内容の一部)と見なされる文字の集合と, 構文上の空白(~CSS構文の一部)と見なされる文字の集合とが,一致するとは限らないことに注意。 しかしながら、両者とも[ ~space( `0020^U ), ~tab( `0009^U ), ~LF( `000A^U ), ~CR( `000D^U ) ]を含むので、殆どの作者は,その相違に気付かないであろう。 ◎ Note that the set of characters considered document white space (part of the document content) and that considered syntactic white space (part of the CSS syntax) are not necessarily identical. However, since both include spaces (U+0020), tabs (U+0009), line feeds (U+000A), and carriage returns (U+000D) most authors won’t notice any differences.
4.1.1. 空白の縮約-法と変形
行内~整形~文脈の中の 各 `行内$(`匿名~行内$も含む)における空白~文字は、 `white-space$p の値に応じて,次のように取扱われる — `双向性~整形~文字@ ( `Bidi_Control^uc ~propが伴われた文字 `UAX9$r 【 Directional Formatting Characters 】 )は,そこに無かったかのように無視して: ◎ For each inline (including anonymous inlines; see [CSS21] section 9.2.2.1) within an inline formatting context, white space characters are handled as follows, 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:
- `区分~分断$の[ 直前/直後 ]にある[ ~space, ~tab ]からなる並びは、すべて除去する。 ◎ All spaces and tabs immediately preceding or following a segment break are removed.
- `区分~分断$を描画するときは、 区分~分断の変形~規則 に則って変形する。 ◎ Segment breaks are transformed for rendering according to the segment break transformation rules.
- 各~tabは、 1 個の~space( `0020^U )に変換する。 ◎ Every tab is converted to a space (U+0020).
- `縮約-可能$な~space %S0 の直後に別の~space %S1 がある, かつ 両~spaceとも同じ行内~整形~文脈の中にある場合、 %S1 の送幅を 0 に縮約する(それは不可視になるが、それによる`自動折返し機会$は維持する) — %S1 が, %S0 を包含している`行内$の境界の外側にあったとしても。 ◎ Any 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並びとして扱うことにより,保全される。 ただし、この並びの末尾には,`自動折返し機会$が存在する。 ◎ 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, a soft wrap opportunity exists at the end of the sequence.
しかる~~後、塊~全体が描画される — `双向性による並替え$を織り込みつつ, `white-space$p ~propに指定されたとおりに`折返し$を入れながら、各 `行内$を~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.
次の例に、~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に則って順序付けられ、~~最終~結果は次のようになる: ◎ 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. 区分~分断の変形~規則
`区分~分断$は、 `white-space$p の値に応じて,次のように変形される: ◎ ↓
- `pre$v
- `pre-wrap$v
- `break-spaces$v
- `pre-line$v
- `区分~分断$は`縮約-可能$でない — 代わりに,`保全済み$ ~LF( `000A^U)に変形される。 ◎ 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
-
`区分~分断$は`縮約-可能$になる。 そのような`区分~分断$は、それらのうち連続するものは,~space同様に 1 個のそれに縮約した上で、前~後の文脈に依存して,それぞれが 1 個の~space( `0020^U)に変形されるか, または除去される: ◎ For other values of white-space, segment breaks are collapsible. As with spaces, any collapsible segment break immediately following another collapsible segment break is removed. Then the remaining segment breaks are either transformed into a space (U+0020) or removed depending on the context before and after the break:
-
区分~分断, その直~前の文字 %A , 直~後の文字 %B について,次のいずれかが満たされる場合、区分~分断は除去される:
- %A, %B どちらかは零幅~space文字( `200B^U )である(その零幅~spaceはそのまま残す) ◎ If the character immediately before or immediately after the segment break is the zero-width space character (U+200B), then the break is removed, leaving behind the zero-width space.
- %A, %B とも,次を満たす ⇒ [ `東Asian字幅~prop$ `UAX11$r は [ `F^uc / `W^uc / `H^uc ]である( `A^uc ではない) ]~AND[ ~Hangulでも~Emoji( ~Unicode~prop `Emoji^uc )でもない ] ◎ Otherwise, if the East Asian Width property [UAX11] of both the character before and after the segment break is F, W, or H (not A), and neither side is Hangul or Emoji (Unicode property Emoji), then the segment break is removed.
- [ 区分~分断【が属する要素】の`内容~言語$は[ 中国語/日本語/~Yi ]である ]~AND[ %A, %B のうち一方は 前項の条件を満たし,他方は次を満たす ] ⇒ [ 約物か記号(~Unicode一般~字種 `P*^uc / `S*^uc )である ]~AND[[ `東Asian字幅~prop$ `UAX11$r は `A^uc である ]~OR[ ~Emojiである ]] ◎ Otherwise, if the content language of the segment break is Chinese, Japanese, or Yi, and the character before or after the segment break is punctuation or a symbol (Unicode general category P* or S*) and has an East Asian Width property of A or is Emoji, and the character on the other side of the segment break is F, W, or H, and not Hangul or Emoji, then the segment break is removed.
- 他の場合、区分~分断は, 1 個の~space( `0020^U )に変換される。 ◎ Otherwise, the segment break is converted to a space (U+0020).
-
- 注記: これらの検査に入る前に、分断の後【直~前/直~後】の~tabや~spaceは,`空白~処理~規則$【前節】により すでに除去されていることに注意。 ◎ Note that the white space processing rules have already removed any tabs and spaces after the segment break before these checks take place.
実施において これがどう上手く働くかについての~commentをぜひ寄せられたし。 特に、~Thaiや それに類似する用字系の下で仕事をされている方々からの。 ~browser実装は、現在,これらの規則に従っていないことに注意( IE は一部の事例で分断を変形しているが)。 ◎ Comments on how well this would work in practice would be very much appreciated, particularly from people who work with Thai and similar scripts. Note that browser implementations do not currently follow these rules (although IE does in some cases transform the break).
4.1.3. 空白の切詰めと位置決め
各~行lを~lay-outしていくに伴い: ◎ As each line is laid out,
- 行lの先頭にある `縮約-可能$な~space並びは(並び内に挟まれた`行内~box$境界は無視して),除去する。 ◎ A sequence of collapsible spaces at the beginning of a line (ignoring any intervening inline box boundaries) is removed.
- ~sizeが 0 の~tabは描画されない。 他の各~tabに対し、次の~glyphの始端~辺が 次の`~tab停$に~~揃うように,横方向にズラして描画する。 `~tab停@ ( `tab stop^en ) 【行lの始端からの整列~位置】 たちの~~集合は、[ 塊の始端側の内容~辺 ]から~tab~size倍の地点からなる。 ~tab~sizeは、 `tab-size$p ~propで与えられる。 ◎ If the tab size is zero, tabs are not rendered. Otherwise, each tab is rendered as a horizontal shift that lines up the start edge of the next glyph with the next tab stop. Tab stops occur at points that are multiples of the tab size from the block’s starting content edge. The tab size is given by the tab-size property.
- 行lの末尾にある `縮約-可能$な~space並びは(並び内に挟まれた`行内~box$境界は無視して),除去する。 ◎ A sequence of collapsible spaces at the end of a line (ignoring any intervening inline box boundaries) is removed.
-
行lの末尾にある[ ~spaceや~tabからなる並び ]が`縮約-可能$でない場合、 `white-space$p に設定された値に応じて: ◎ If spaces or tabs at the end of a line are non-collapsible
-
`pre-wrap$v の場合 ⇒ ~UAは,それらの`空白$を[ `吊下げる$か, または 送幅を視覚的に縮約するか ]して、行lの空間を占めないようにし~MUST。 ◎ If white-space is set to pre-wrap, the UA must either hang the white space or visually collapse the character advance widths of any overflowing spaces such that they don’t take up space in the line.
注記: 空白を縮約させずに吊下げれば、利用者は,~textを選択したり編集するときに,それらを見れるようになる。 ◎ Note: Hanging the white space rather than collapsing it allows users to see the space when selecting or editing text.
- `break-spaces$v の場合 ⇒ 行lの末尾で~spaceを[ `吊下げる$/その送幅を縮約する ]ことは許容されない。 ◎ If white-space is set to break-spaces, hanging or collapsing the advance width of spaces at the end of the line is not allowed.
-
吊下がり空白の例と, 右寄せされる例と同じ例を追加する。 ◎ Add example of hanging white space + same example right-aligned.
空白~処理~手続きの間に 除去-/縮約- されなかった空白は、 `保全済み@ 空白と呼ばれる。 ◎ White space that was not removed or collapsed during the white space processing steps is called preserved white space.
4.2. ~tab文字~size: `tab-size^p ~prop
◎名 `tab-size@p ◎値 `number$t | `length$t ◎初 `8^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された実数,あるいは 指定された長さを絶対~化した結果 ◎ the specified integer or length made absolute ◎順 N/A ◎ア `長さとして$ / `実数として$ / ~calc 式として ◎ length, number, or calc ◎表終この~propは、`保全済み$ ~tab文字( `0009^U )を描画するときに利用される~tab~sizeを決定する。 `number$t は、[ ~space文字( `0020^U )の送幅 × その実数 ]による行内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 space character’s advance width (U+0020) 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, または単に分断†)と呼ばれる。 [ 明示的な行-分断法の制御, あるいは 塊の[ 開始/終了 ]]に因る行-分断は、 `強制~行-分断@ ( `forced line break^en )と呼ばれる。 行lが内容の `折返し@ ( `wrapping^en )に因り分断される(すなわち,~UAが内容を行内sizeに収めるために,非強制の行-分断を作成する)ことを `自動折返し分断@ という。 `行内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, 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.
【† 行-分断 — “改行” の方が馴染まれているであろうが、 “分断” それ自体が自立する用語の役割も担うため、用語とその用法の体系を保つ観点から,この訳では “行-分断” と記すことにする。 一般に、折返しは~layout上の効果, 分断は(そのような効果を生じさせるような)抽象的な区切りを表す。 】
折返しが遂行されるのは、許容される分断点に限られる — そのような分断点は `自動折返し機会@ ( `soft wrap opportunity^en )と呼ばれる。 折返しが可能化された下では( `white-space$p を見よ)、~UAは,内容が行lを~overflowする量を最小限にし~MUST — `自動折返し機会$が存在するならば,そこで行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処理も含め、文脈に応じて様々になるかもしれない。 同様に、~spaceについても、 `0020^U を指す所もあれば,それに類する文字も含めた総称を意味する所もあるかもしれない。 】
一部の書記体系においては、`自動折返し機会$は,単語~境界ではなく 正書法上の音節~境界に基づいている。 これらの体系のうち,~Javaneseや~Balineseなど一部は、~Thaiや~Laoと同様に 分断する機会を見出すために解析を要する。 中国語など(あるいは 日本語, ~Yi, ときには韓国語も),他の書記体系においては、各~音節は単独の`~typographic字0単位$に対応する傾向にあり,行-分断法~規約により[ 一定の組合せによる文字 ]↔間を除き,どこでも行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は,`自動折返し機会$が生じる所を全部的には定義しないが、共通的な種類を判別するための制御をいくつか供する。 ◎ CSS does not fully define where soft wrap opportunities occur; however some controls are provided to distinguish common variations.
行-分断法~規約についての更なる情報は、[ 日本語については `JLREQ$r, `JIS4051$r / 中国語については `ZHMARK$r / ~Unicodeのすべての用字系については `UAX14$r ]に見出せる。 ◎ Further information on line breaking conventions can be found in [JLREQ] and [JIS4051] for Japanese, [ZHMARK] for Chinese, and in [UAX14] for all scripts in Unicode.
ここに示すべき,適切な文献についての手引きがあれば、とてもありがたい。 ◎ Any guidance for appropriate references here would be much appreciated.
5.1. 行-分断法の詳細
`行-分断$を決定するときは: ◎ When determining line breaks:
- `white-space$p の値に関わらず、行lは常に,各 `保全済み$ 強制~分断~文字の所で分断される — `~Unicode行-分断法~class$[ `BK^uc, `CR^uc, `LF^uc, `CM^uc, `NL^uc, `SG^uc ]に対し定義される行-分断法の挙動は,尊守され~MUST。 ◎ Regardless of the white-space value, lines always break at each preserved forced break character: for all values, line-breaking behavior defined for the BK, CR, LF, CM, NL, and SG line breaking classes in [UAX14] must be honored.
- `white-space$p により折返しが許容される場合、`~Unicode行-分断法~class$[ `WJ^uc, `ZW^uc, `GL^uc ]に対し定義される行-分断法の挙動は,尊守され~MUST。 ◎ When white-space allows wrapping, line breaking behavior defined for the WJ, ZW, and GL line-breaking classes in [UAX14] must be honored.
- ~space以外の約物の所でも折返しを許容する~UAは、各 分断点に優先順位を与えるべきである。 例えば,[ ~slashの後の分断 ]に~spaceより低い順位が与えられた場合、並び "`check /etc^c" は, `/^lt ↔ `e^lt 間では,決して分断しないことになる。 そのような不自然な分断を避けるよう配慮される限り、~space以外の適切な約物の所でも分断を許容することは,推奨される — 特に行内sizeが狭小な下では、結果の~marginが より均等な見かけになるので。 ~UAは、順位をあてがう際に[ `包含塊$の`行内~size$ , ~textの言語, その他の要因 ]を利用してよい。 ◎ UAs that allow wrapping at punctuation other than spaces 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 spaces 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, and other factors in assigning priorities.
- `~flow外$の要素が、~flow内に[ `強制~行-分断$/`自動折返し機会$ ]を導入することはない。 【例えば、~flow内の内容に差し挟まれている~flow外の要素を,その内容から取り除いた “跡” の所など】 ◎ Out-of-flow elements do not introduce a forced line break or soft wrap opportunity in the flow.
- 置換~要素/他の`不可分な行内$における 行-分断法の挙動は、表語的文字( `~Unicode行-分断法~class$が `ID^uc のもの)と等価であり、加えて,Web 互換性のため[ 自身, 隣接する分断不可~space( `00A0^U )文字 ]↔間に`自動折返し機会$を導入する。 ◎ The line breaking behavior of a replaced element or other atomic inline is equivalent to an ideographic character (Unicode linebreaking class ID [UAX14]), and additionally, for Web-compatibility, introduces a soft wrap opportunity between itself and any adjacent U+00A0 NO-BREAK SPACE character.
- 行-分断の所で消える文字(例: `0020^U SPACE )により作成される`自動折返し機会$に対しては、その文字を直に包含している~box上の~propが,その機会における行-分断法を制御する。 文字↔間の境界により定義される`自動折返し機会$に対しては、その 2 個の文字に最も近い共通の先祖~上の~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. For soft wrap opportunities defined by the boundary between two characters, the properties on nearest common ancestor of the two characters controls breaking.
- ~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 `CSS3RUBY$r にて定義される。 ◎ Line breaking in/around Ruby is defined in CSS Ruby [CSS3RUBY].
5.2. 字0用の分断規則: `word-break^p ~prop
◎名 `word-break@p ◎値 `normal$v | `keep-all$v | `break-all$v ◎初 `normal^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、字0↔間の`自動折返し機会$ — すなわち,~text行lのどこが、分断を許可し得る “通常の所” なのか — を指定する。 特定的には、`~typographic字0単位$↔間(あるいは,`~Unicode行-分断法~class$ `UAX14$r[ `NU^uc / `AL^uc / `AI^uc / `ID^uc ]に属する他の`~typographic文字~単位$)に,`自動折返し機会$は存在するかどうかを制御する。 これは、[ ~spaceや約物により作成される`自動折返し機会$ ]を統治する規則には影響しない(約物に影響する制御については, `line-break$p を見よ)。 ◎ 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 exists between adjacent typographic letter units (or other typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes [UAX14]). It does not affect rules governing the soft wrap opportunities created by spaces and punctuation. (See line-break for controls affecting punctuation.)
例えば,~CJK植字では、~styleによっては、英語~単語は,[
~spaceの所/~hyphen化~地点
]のみならず,どの字0↔間でも分断が許容される
— これは
`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.
別の例として、韓国語の行-分断法には 2 種の~styleがある:
韓国語~音節↔間(
`word-break$p: `normal^v
), または英語と同様に
~~主に~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).
각 줄의 마지막에 한글이 올 때 줄 나눔 기/*
音節↔間の分断
◎
break between syllables
*/준을 “글자” 또는 “어절” 단위로 한다.
각 줄의 마지막에 한글이 올 때 줄 나눔/*
~spaceの所でのみ分断
◎
break only at spaces
*/기준을 “글자” 또는 “어절” 단위로 한다.
注記: ~overflowする場合に限り,追加の分断~機会を可能化するときは、 `overflow-wrap$p を見よ。 ◎ To enable additional break opportunities only in the case of overflow, see overflow-wrap.
各種 値の意味は: ◎ Values have the following meanings:
- `normal@v
- `行-分断規則$にて述べたように,単語を その慣例の規則に則って分断する。 異なる 2 種の共通的な挙動を露にする韓国語では、連続する どの[ ~Hangul, ~Hanja ]↔間でも分断が許容される。 ◎ 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.
- `break-all@v
-
`normal$v による`自動折返し機会$に加えて、 “単語” の中で分断することも許容される: 特定的には,行-分断法の目的においては、`~Unicode行-分断法~class$が次のいずれかに解決される`~typographic文字~単位$は、代わりに `ID^uc ( `ideographic character^en, 表語的文字)として扱われる:
- `NU^uc ( “`numeric^en” = 数的 )
- `AL^uc ( “`alphabetic^en” = ~alphabetic )
- `SA^uc ( “`Southeast Asian^en” = 東南Asian )
~hyphen化は適用されない。 この選択肢が利用されるのは、[ ~CJK文字が元々支配的で,非~CJK~textは 短い引用に限られる ]ような文脈の下で,~textを各~行lに より良好に分布させたいと欲されるときである。
◎ Breaking is allowed within “words”: in addition to normal soft wrap opportunities: specifically, any typographic character units resolving to the NU (“numeric”), AL (“alphabetic”), or SA (“Southeast Asian”) line breaking classes [UAX14] are instead treated as ID (“ideographic characters”) for the purpose of line-breaking. Hyphenation is not applied. This option is used mostly 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. - 注記: この値は、約物~文字~周りの`自動折返し機会$には影響しない。 分断をどこでも許容したければ, `line-break$p 用の値 `anywhere$v を見よ。 ◎ Note: This value does not affect whether there are soft wrap opportunities around punctuation characters. To allow breaks anywhere, see line-break: anywhere.
- `keep-all@v
- “単語” の中で分断することは、禁止される: `~typographic字0単位$(あるいは,`~Unicode行-分断法~class$ `UAX14$r[ `NU^uc / `AL^uc / `AI^uc / `ID^uc ]に属する他の`~typographic文字~単位$)↔間の,暗黙的な`自動折返し機会$は抑止される — すなわち,そのような文字↔間の分断は、辞書に基づく分断法に因り存在する機会を除いて,禁則される( `line-break$p の設定群に関わらず)。 他に関しては、 `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) 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に対しても有用になる。 ◎ 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の字種に属する字0と同じ仕方で行-分断する記号は、それらの字0と同じ仕方で影響される。 ◎ 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:
这是一些汉字, and some Latin, و کمی نوشتن عربی, และตัวอย่างการเขียนภาษาไทย.
分断点( ‘·’ で指示される)は、 `word-break$p 値に応じて,次のように決定される: ◎ The break-points are determined as follows (indicated by ‘·’):
- `normal^v
这·是·一·些·汉·字,·and·some·Latin,·و·کمی·نوشتن·عربی,·และ·ตัวอย่าง·การเขียน·ภาษาไทย.
- `break-all^v
这·是·一·些·汉·字,·a·n·d·s·o·m·e·L·a·t·i·n,·و·ﮐ·ﻤ·ﻰ·ﻧ·ﻮ·ﺷ·ﺘ·ﻦ·ﻋ·ﺮ·ﺑ·ﻰ,· แ·ล·ะ·ตั·ว·อ·ย่·า·ง·ก·า·ร·เ·ขี·ย·น·ภ·า·ษ·า·ไ·ท·ย.
- `keep-all^v
这是一些汉字,·and·some·Latin,·و·کمی·نوشتن·عربی,·และ·ตัวอย่าง·การเขียน·ภาษาไทย.
~Arabicなどの用字系を形状付ける際には、 `break-all$v に因り単語の中の分断が許容される文字は,その単語が分断されなかったかのように形状付けられ~MUST( 単語~内の分断をまたがる形状付け を見よ)。 ◎ 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 §6.3 Shaping Across Intra-word Breaks).
5.3. 行-分断規則: `line-break^p ~prop
◎名 `line-break@p ◎値 `auto$v | `loose$v | `normal$v | `strict$v | `anywhere$v ◎初 `auto^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、要素の中で適用される行-分断規則の`厳格さ$を指定する — 特に、`折返し$が 約物や記号 と どのように相互作用するかについて。 各種 値の意味は: ◎ This property specifies the strictness of line-breaking rules applied within an element: particularly 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
- 最も制約が緩い行-分断規則の集合を利用して~textを分断する。 概して、新聞など,行lが短いものに対し利用される。 ◎ Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.
- `normal@v
- 最も共通的な行-分断規則の集合を利用して~textを分断する。 ◎ Breaks text using the most common set of line-breaking rules.
- `strict@v
- 最も厳格な行-分断規則の集合を利用して~textを分断する。 ◎ Breaks text using the most stringent set of line-breaking rules.
- `anywhere@v
- `自動折返し機会$は、どの~typographic文字~単位の周りにもある — [ 約物~文字/保全済み空白/単語の途中 ]も含めて,および 文字~class[ `GL^uc / `WJ^uc / `ZWJ^uc ]に属する文字により導入される行-分断に抗する禁則(`UAX14$r を見よ)も無視rして。 異なる折返し機会が優先されては~MUST_NOT。 ~hyphen化は適用されない。 ◎ There is a soft wrap opportunity around every typographic character unit, including around any punctuation character or preserved spaces, or in the middle of words, disregarding any prohibition against line breaks introduced by characters with the GL, WJ, or ZWJ character class (see [UAX14]). The different wrapping opportunities must not be prioritized. Hyphenation is not applied.
- 注記: この値は、概して~terminalに見られる行-分断規則を誘発する。 ◎ Note: This value triggers the line breaking rules typically seen in terminals.
ここでの規則は、韓国語に対しては
KLREQ
による指針に従う
— それは、中国語/日本語 特有の分断を許容しない。
しかしながら,結果の挙動に何らかの考査-/~feedbackも利用できる
— 特に,韓国語にて “単語に基づく” 分断法が利用されるとき(
`word-break$p: `keep-all^v
)に,正しくなるようにするため。
◎
The rules here are following guidelines from KLREQ for Korean, which don’t allow the Chinese/Japanese-specific breaks. However, the resulting behavior could use some review and feedback to make sure they are correct, particularly when “word basis” breaking is used (word-break: keep-all) in Korean.
~CSSでは、~text折返し規則の `厳格さ@ が, 4 ~levelで判別される。 そのうち[ `loose^v / `normal^v / `strict^v ]~levelに対し有効な規則の集合が精確にどうなるかは、~UAに委ねられ,言語ごとの規約に従うべきである。 しかしながら,この仕様では、 【行-分断法 — `line-break^p の値に応じて,】 次については要求される: ◎ 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:
- 日本語の[ 小さい仮名( `small kana^en )/長音記号( `Katakana-Hiragana prolonged sound mark^en ) ]の前の分断 — すなわち ⇒ ~Unicode Line Break ~prop `CJ^uc を伴う文字( `UNICODE$r の LineBreak.txt を見よ)。 ◎ breaks before Japanese small kana or the Katakana-Hiragana prolonged sound mark: i.e. characters with the Unicode Line Break property CJ. (See LineBreak.txt in [UNICODE].)
-
次の分断は、`内容~言語$が 中国語または日本語である下では,行-分断法が `normal$v / `loose$v のときは許容され, 他のとき†は禁止される: ◎ The following breaks are allowed for normal and loose line breaking if the content language is Chinese or Japanese, and are otherwise forbidden:
- ~hyphenの前の分断 ⇒ `2010^gU, `2013^gU, `301C^gU, `30A0^gU ◎ breaks before hyphens: ‐ U+2010, – U+2013, 〜 U+301C, ゠ U+30A0
【† [ “他のとき” が `auto^v も明示的に含む ]のではないと思われるが、他の項目では,明示的な値で場合分けしていたりで 記され方が一貫しておらず、はっきりしない。 】
-
次の分断は、行-分断法が `normal$v / `strict$v のときは禁止され, `loose$v のときは許容される: ◎ The following breaks are forbidden for normal and strict line breaking and allowed in loose:
- 反復~markの前の分断 ⇒ `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
- [ `2025^gU, `2026^gU などの,分離-不能~文字 ]↔間の分断 — すなわち ⇒ ~Unicode Line Break ~prop `IN^uc を伴う文字( `UNICODE$r の LineBreak.txt を見よ)。 ◎ breaks between inseparable characters such as ‥ U+2025, … U+2026 i.e. characters with the Unicode Line Break property IN. (See LineBreak.txt in [UNICODE].)
-
次の分断は、`内容~言語$が中国語または日本語である下では,行-分断法が `loose$v のときは許容され, 他のとき†は禁止される: ◎ The following breaks are allowed for loose if the content language is Chinese or Japanese and are otherwise forbidden:
- 一定の centered【?】 約物符の前の分断 ⇒ `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 Line Break ~prop `PO^uc を伴う文字, および `東Asian字幅~prop$ `UAX11$r が[ `A^uc/`F^uc/`W^uc ]である文字。 ◎ breaks before suffixes: Characters with the Unicode Line Break property PO and the East Asian Width property [UAX11] A, F, or W.
- 接頭辞の後の分断 ⇒ ~Unicode Line Break ~prop `PR^uc を伴う文字, および `東Asian字幅~prop$ `UAX11$r が[ `A^uc/`F^uc/`W^uc ]である文字。 ◎ breaks after prefixes: Characters with the Unicode Line Break property PR and the East Asian Width property [UAX11] A, F, or W.
注記: 非~CJK~textにおいては、上に挙げた要件は,`厳格さ$の各~level間で区別されない: ~textが[ 中国語/日本語 ]であると~markされ【明示的に指示され】ない限り、~CJK符号位置のみが影響される。 ~markされている場合、一部の共通的な符号位置も影響される。 ◎ In the requirements listed above, no distinction is made among the levels of strictness in non-CJK text: only CJK codepoints are affected, unless the text is marked as Chinese or Japanese, in which case some additional common codepoints are affected.
~UAは、[ `strict$v, `normal$v, `loose$v ]の間にさらに区別を追加できる。 これらの値は、他の相違も露にし得る。 例えば,~Thai 言語~処理~用に十分高度な能を有する~UAは、これらの~keywordを~Thaiの行-分断法において異なる~levelの厳格さに対応付けることも選べる — 例: `strict$v の下では,複合語の中の分断(例: ตัวอย่างการเขียนภาษาไทย を ตัวอย่าง·การเขียน·ภาษาไทย として分断する)は許容しない一方で、 `loose$v の下では,より分断を許容するなど( ตัวอย่าง·การ·เขียน·ภาษา·ไทย として)。 ◎ As UAs can add additional distinctions between strict/normal/loose modes, these values can exhibit other differences 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 (ตัวอย่าง·การ·เขียน·ภาษา·ไทย).
注記: CSSWG は、この仕様の将来~版では、最高品質出版の要件を充足するためには,行-分断法に対するより精緻な制御が必要とされ得るものと認識している。 ◎ 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.
6. 単語の中の分断法
`~hyphen化@ は — 概して,単語を[ 音節的な部分/形態素 ]の境界で分割0し,それを視覚的に指示する(通例的に~hyphen `2010^gU を挿入する)ことにより — 単語の分割0法を制御して,段落の~layoutを改善できるようにする。 一部の事例では、~hyphen化は,単語の綴りも改めることもある。 にも関わらず、~hyphen化の効果は描画に限られる — 下層の文書~内容や, ~textの[ 選択/検索 ]に効果を及ぼしては~MUST_NOT。 ◎ Hyphenation allows the controlled splitting of words 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化は、妥当な `~hyphen化~機会@ で行-分断する際に生じる — すなわち、単語の中に`自動折返し機会$を作成する。 ~CSSにおいては、 `hyphens$p ~propにより制御される。 この仕様の~levelでは,~hyphen化~用の正確な規則は定義されないが、~UAには,行-分断法の実装を最適化して,良い分断点と適切な~hyphen化~地点を選ぶことが強く奨励される。 ~hyphen化~機会は、`最小-内容 内在的~size$を計算するときにも考慮される。 ◎ Hyphenation occurs when the line breaks at a valid hyphenation opportunity, which creates a soft wrap opportunity within the word. In CSS it is 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 line-breaking implementation to choose good break points and appropriate hyphenation points. Hyphenation opportunities are considered when calculating min-content intrinsic sizes.
~CSSでは、 `overflow-wrap$p ~propも供される — それは、さもなければ ~textが容器を~overflowするときに,単語の中を任意に分断できるようにする。 ◎ CSS also provides the overflow-wrap property, which can allow arbitrary breaking within words when the text would otherwise overflow its container.
6.1. ~hyphen化の制御: `hyphens^p ~prop
◎名 `hyphens@p ◎値 `none$v | `manual$v | `auto$v ◎初 `manual^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 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.
- `manual@v
-
単語が~hyphen化されるのは、内側の文字が明示的に`~hyphen化~機会$を示唆する所に限られる。 ◎ Words are only hyphenated where there are characters inside the word that explicitly suggest hyphenation opportunities.
~Unicodeでは、 `00AD^U は 条件付き “~soft-hyphen( `soft hyphen^en )” とされ, `2010^U は 無条件の~hyphenとされる。 ~Unicode-Standard Annex #14は、~Unicodeの行-分断法における ~soft-hyphenの役割 `UAX14$r について述べている。 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 )を包含する場合、それが~~選好される。 しかしながら,[ そのような機会で分断した後でも,依然として その単語のある部位が 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 within a word must be ignored if the word contains a conditional hyphen (­ or U+00AD), in favor of the conditional hyphen(s). However, if, even after breaking at such opportunities, a portion of that word is is still too long to fit on one line, an automatic hyphenation opportunity may be used.
正しい自動~hyphen化は、分断される~textの言語に適切な `~hyphen化~資源@ を要求する。 したがって,~UAは、[ `内容~言語$が既知である, かつ それに適切な~hyphen化~資源がある ]場合に限り,~textに自動的に~hyphen化し~MUST。 ◎ 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 属性 / ~HTTP `Content-Language^h ~header ]を利用して)。 ◎ Authors should correctly tag their content’s language (e.g. using the HTML lang attribute or the HTTP Content-Language header) in order to obtain correct automatic hyphenation.
~Arabicなどの用字系の下では、~hyphen化に因り単語の中で分断が許容される所の文字は,その単語が分断されなかったかのように形状付けられ~MUST( 単語~内の分断をまたがる形状付け を見よ)。 ◎ 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 §6.3 Shaping Across Intra-word Breaks).
例えば、~hyphen化された~Uyghurの単語 `#62F#627#645#64A#62F#649^lt は、次の図左のように現われることになる — 図右ではなく ⇒ `uyghur-hyphenate-joined^dgm / `uyghur-hyphenate-unjoined^dgm ◎ For example, if the Uyghur word “داميدى” were hyphenated, it would appear as [isolated DAL + isolated ALEF + initial MEEM + medial YEH + hyphen + line-break + final DAL + isolated ALEF MAKSURA] not as [isolated DAL + isolated ALEF + initial MEEM + final YEH + hyphen + line-break + isolated DAL + isolated ALEF MAKSURA]
6.2. ~overflow時の折返し: `overflow-wrap^p/`word-wrap^p ~prop
◎名 `overflow-wrap@p, `word-wrap@p ◎値 `normal$v | `break-word$v ◎初 `normal^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、他による分断が許容されない行lにおいても,次のいずれかに該当するときには、~overflowしないように,~UAが行lのどこかで分断してよいかどうかを指定する: ◎ This property specifies whether the UA may break at otherwise disallowed points within a line to prevent overflow,\
- [ 他による分断が不可にされている文字列 ]が`行l~box$に収まるには長過ぎるとき ◎ when an otherwise-unbreakable string is too long to fit within the line box, or\
- 保全済み空白~列が吊下がるとき ◎ when sequences of preserved white space would hang.\
これは、 `white-space$p が`折返し$を許容するときに限り,効果を及ぼす。 可能な値は: ◎ It only has an effect when white-space allows wrapping. Possible values:
この~propは、 `white-space$p ~propが`折返し$を許容しないときも適用することが提案されている — さもなければ行lが~overflowするときには、内在的~sizeの算出は変化させずに,どこかに分断を導入できるように。 ~CSSissue/1171#issuecomment-295522963 を見よ。 ◎ It has been proposed that this property could also apply when the white-space property does not allow wrapping, introducing a break anywhere the line would otherwise overflow, but without causing any change to intrinsic size computations. See https://github.com/w3c/csswg-drafts/issues/1171#issuecomment-295522963
- `normal@v
-
行lを分断してよい所は、許容される分断点に限られる。
しかしながら,[
`word-break$p: `keep-all^v
により導入される制約 ]は、行lの中に[ 受容-可能な分断点が他にない ]場合には,`word-break$p: `normal^v
に合致するように緩められてよい。 ◎ 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. - `break-word@v
- 他では分断-不能な`文字$並びは、行lの中で[ 受容-可能な分断点が他にない ]場合には,任意の地点で分断されてよい。 文字の形状付けにおいては、依然として,単語が分断されていなかったかのように形状付けられ、各 書記素~clusterは, 1 個の単位として一緒のままにされ~MUST。 分断点には,~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.
`overflow-wrap$p: `break-word^v
により導入される`自動折返し機会$は、`最小-内容 内在的~size$を計算する際にも,考慮される。
◎
Soft wrap opportunities introduced by overflow-wrap: break-word are considered when calculating min-content intrinsic sizes.
旧来の理由から、~UAは, `word-wrap$p を `overflow-wrap$p 用の`略式~prop$であるかのように, `overflow-wrap$p ~propの別名として扱わ~MUST。 ◎ For legacy reasons, UAs must treat word-wrap as an alternate name for the overflow-wrap property, as if it were a shorthand of overflow-wrap.
6.3. 単語~内の分断をまたがる形状付け
~Arabicなどの用字系†の単語に対しては、その中の非強制の`自動折返し機会$による`折返し$の所では( `word-break$p に対する `break-all^v, `line-break$p に対する `anywhere^v, `overflow-wrap$p に対する `break-word^v に因る分断,あるいは~hyphen化-時)、文字は,単語~全体のままであったかのように(繋がっている形で)形状付けられ~MUST。 ◎ 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, 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 内にあるかのように。
7. 整列と両端揃え
整列( `text-align-*^p )と両端揃え( `text-justify^p )は、`行内~内容$が`行l~box$の中でどう分布するかを制御する。 ◎ Alignment and justification controls how inline content is distributed within a line box.
7.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 ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 `match-parent$v に対しては,下に定義されるように算出される。 それ以外に対しては指定値。 ◎ specified value, except for match-parent which computes as defined below ◎順 N/A ◎ア 離散的 ◎表終この`略式~prop$は、 `text-align-all$p, `text-align-last$p ~propを設定し、塊の`行内level$の内容が,`行l~box$を完全に埋めない場合に,行内-軸~~方向に整列される方法について述べる。 各種 値の意味は: ◎ 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 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の`行-左端$に整列される。 (縦組では、`text-orientation$p に依存して,物理的な`上端$/`下端$になる) `CSS3-WRITING-MODES$r ◎ Inline-level content is aligned to the line left edge of the line box. (In vertical writing modes, this will be either the physical top or bottom, depending on text-orientation.) [CSS3-WRITING-MODES]
- `right@v
- 行内levelの内容は、行l~boxの`行-右端$に整列される。 (縦組では、`text-orientation$p に依存して,物理的な`上端$/`下端$になる) `CSS3-WRITING-MODES$r ◎ Inline-level content is aligned to the line right edge of the line box. (In vertical writing modes, this will be either the physical top or bottom, depending on text-orientation.) [CSS3-WRITING-MODES]
- `center@v
- 行内levelの内容は、行l~boxの中で中央寄せにされる。 ◎ Inline-level content is centered within the line box.
- `justify@v
- ~textは、行l~boxを正確に埋めるために, `text-justify$p ~propにより指定される~methodに則って両端揃される。 ただし,[ 強制~分断の~~直前の行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-last$p も `justify$v に設定され,最後の行lも両端揃するように強制する。 それ以外は `justify$v と同じ。 ◎ Same as justify, except text-align-last is also set to justify, forcing the last line to justify as well.
- `match-parent@v
- この値は、 `inherit$v と同じに挙動する(その親の算出値に算出される) — ただし, `start$v / `end$v ~keywordが継承された場合、その親の `direction$p 値に対し解釈され,結果の算出値は[ `left$v または `right$v ]になる。 ◎ This value behaves the same as inherit (computes to its parent’s computed value) except that an inherited start or end keyword is interpreted against its parent’s direction value and results in a computed value of either left or right.
`justify-all$v を除くすべての値は、 `text-align-last$p を `auto$v に再設定する。 ◎ All values except justify-all reset text-align-last to auto.
~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停$が揃い続けることを確保し~MUST。 ◎ 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 を見よ。 ◎ See Bidirectionality and line boxes for details on how to determine the start and end edges of a line box.
7.2. 既定の~text 整列: `text-align-all^p ~prop
◎名 `text-align-all@p ◎値 `start$va | `end$va | `left$va | `right$va | `center$va | `justify$va | `match-parent$va ◎初 `start^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終これは `text-align$p `略式~prop$の下位propであり、`塊~容器$における`行内~内容$の,すべての行lに渡る行内の整列を指定する — ただし,最後の行lについては、 `text-align-last$p の非 `auto$va 値により上書きされる。 各種 値の全部的な記述については `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.
7.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 ◎初 `auto^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、[ 塊の最後の行l / `強制~行-分断$の前の`行-右端$ ]を整列する方法について述べる。 ◎ 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 と同じく始端に整列される。 他のすべての値は、 `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.
7.4. 両端揃え~method: `text-justify^p ~prop
◎名 `text-justify@p ◎値 `auto$v | `none$v | `inter-word$v | `inter-character$v ◎初 `auto^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 N/A ◎ア 離散的 ◎表終この~propは、行lの整列が `justify$va ( `text-align$p を見よ)に設定されているときに利用される両端揃え~methodを選定する。 この~propは,`行内$に適用されるものであるが、`塊~容器$から[ 行内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 inlines, 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字0単位$↔間 ]]を延張し、副として[ 東南Asian `~typographic字0単位$↔間 ]を延張するような — を利用した上で、段落の`内容~言語$が既知である所では,より言語に誂えられた両端揃えの挙動を選ぶこともできる — 例えば、 日本語に対しては `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 [JLREQ] for Japanese, using cursive elongation for Arabic, using inter-word for German, etc.
- `none@v
- 両端揃えは不能化される: ~textの中に`両端揃え機会$はない。 ◎ Justification is disabled: there are no justification opportunities within the text.
- 注記: この値は、[ 可読性を改善する/ ~accessibilityを目的とする ]ような,利用者~stylesheetでの利用が意図されている。 ◎ This value is intended for use in user stylesheets to improve readability or for accessibility purposes.
- `inter-word@v
- 両端揃えでは、`単語分離子$の所でのみ間隔法を調整する(実質的に,行l上の `word-spacing$p の使用値を変えて)。 この挙動は、英語や韓国語の様な,~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.
- `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.
- 旧来の理由から、~UAは,正確に同じ意味を持ち, 同じ挙動になる,代替-~keyword `distribute@v も~supportし~MUST。 ◎ For legacy reasons, UAs must also support the alternate keyword distribute with the exact same meaning and behavior.
最適な両端揃えは,言語に敏感なので、最良の結果を得るためには,作者は 内容に正しく言語~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.
7.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 contents 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により定義される間隔法に対する 追加である。 そのような追加の間隔が`単語分離子$による`両端揃え機会$に配分されるときは、 `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 an justification opportunity between two typographic character units, it is applied under the same rules as for letter-spacing.
両端揃え~algoは、各 `両端揃え機会$を異なる優先順位~levelに仕分けしてよい。 同じ順位~levelに属する どの`両端揃え機会$も、その機会を どの`~typographic文字~単位$が作成したかに関わらず,同じように延張-/圧縮される。 例えば, [ 漢字↔間 , ~Latin字0↔間 ]の`両端揃え機会$が,同じ~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は、必須の合字を分断するなど,[ 複雑な用字系を正しく形状付けるために要求される特色機能 ]を不能化しては~MUST_NOT。 ◎ 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-align$p により全部的な両端揃えが指定されている場合、その行lは両端揃され~MUST。 ◎ If a justification opportunity exists within a line, and text-align specifies full justification for that line, it must be justified.
7.4.2. 記号と約物の取扱い
`両端揃え機会$たちを決定するとき、 `~Unicode字種$[ 各種 Symbol( `S*^uc )/ 各種 Punctuation ( `P*^uc ) 【 "*" は,ワイルドカードを表す】 ]に属する`~typographic文字~単位$は、一般に,同じ用字系(あるいは,文字の`用字系~prop$が `Common^uc である場合は、支配的な用字系)の`~typographic字0単位$と同じに扱われる。 ◎ 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 / `2015^gU Horizontal Bar / `2026^gU Horizontal Ellipsis/ `2025^gU Two Dot Leader ]文字↔間には、`両端揃え機会$は,伝統的にない `JLREQ$r — よって,~UAは、これらの文字に優先順位~level “never” 【決して両端揃え機会とされない】 をあてがうこともあろう。 別の例として、日本語では,一定の全角~約物~文字( `301A^gU Left White Square Bracket など)は、`両端揃え機会$を包含すると見なされる。 したがって,~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 fullwidth 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.
7.4.3. 延張-不能な~text
行lの`行内~内容$が,`行l~box$の`行内~size$全部まで伸長できない場合、 `text-align-last$p ~propに指定されたとおりに整列され~MUST。 ( `text-align-last$p が `justify$va にされている下では、 `center$va に対するときと同じに整列され~MUST。) ◎ 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.)
7.4.4. 筆記的な用字系
~Arabicなどの`筆記的~用字系$においては、両端揃する際に,繋がっている[ `筆記的~用字系$の`~typographic字0単位$の連なり ]の中のどの単位↔間にも途切れを導入しては~MUST_NOT — ~UAは: ◎ Justification must not introduce gaps between the joined typographic letter units of cursive scripts such as Arabic.\
- 可能なら、[ そのような連なりの中で,`両端揃え機会$に配分された間隔 ]を,その連なりに対する何らかの形の筆記的 引伸ばしに転換してよい。 ◎ 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字0単位$↔間にも,(それらが繋がっているかどうかに関わらず)`両端揃え機会$は存在しないものと見做され~MUST。 ◎ 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は、その規則を適正に取扱わ~MUST。 ~tatweel文字の正しい挿入~法は、[ 孕まれる字0の組合せ, 単語の中での所在, 行lの中での単語の所在 ]も含め,文脈に依存することに注意。 【† ~tatweel — 続字的に引伸する書法( `kashida^en )を表現する~glyph(または文字 Unicode `0640^U ARABIC TATWEEL ?)。 】 ◎ 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.
7.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用字系$に属する すべての`字0$は,同じに扱われ、すべての`~clustered用字系$に属する すべての`字0$は,同じに扱われる。 例えば,[ 漢字↔間 ], および[ 漢字↔~Hangul字0 間(この順序) ]の両端揃え機会は,区別されない。 ◎ 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 distiction 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.
両端揃えについての更なる情報は、 “Approaches to Full Justification” にて見出せる(また提出できる) — それは、書記体系と言語で~indexされ, W3C ~I18nWG により保守されている。 `JUSTIFY$r ◎ 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]
8. 間隔法
~CSSによる~textに対する間隔法の制御は、 `word-spacing$p, `letter-spacing$p ~propを介して提供される。 それらは順に,[ `単語分離子$の周り, `~typographic文字~単位$↔間 ]に,追加の間隔を指定する。 `word-spacing$p ~propは、今や百分率も指定でき,単語↔間の間隔法を例えば 2 倍にしたり取除くことも可能にする。 ◎ 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. The word-spacing property can now be specified in percentages, making it possible to, for example, double or eliminate word spacing.
単語↔間の間隔法は半分にされるが、~text両端揃えに必要なら,延張-もありにする例。 ◎ In the following example, word spacing is halved, but may expand if needed for text justification.
p { word-spacing: -50%; }
8.1. 単語↔間の間隔法: `word-spacing^p ~prop
◎名 `word-spacing@p ◎値 [ `normal$v | `length-percentage$t ] ◎初 `normal^v ◎適 `行内~box$ ◎継 される ◎百 影響される~glyphの幅を基準にする ◎ refers to width of the affected glyph ◎算 指定値 — ただし `length$t は絶対~化される ◎ as specified, with <length>s made absolute ◎順 N/A ◎ア `長さ/百分率/~calc 式として$ ◎表終
この~propは、 “単語” ↔間への追加の間隔法を指定する。
~~未指定の値は
`word-spacing$p: `normal^v
にされたものと見做される。
各種 値は,以下に定義されるように解釈される:
◎
This property specifies additional spacing between “words”. Missing values are assumed to be word-spacing:normal. Values are interpreted as defined below:
- `normal@v
- 追加の間隔法は適用されず, 0 に算出される。 ◎ No additional spacing is applied. Computes to zero.
- `length$t
- ~fontにより定義される内在的な単語↔間の間隔法に 加えて,余分の間隔法を指定する。 ◎ Specifies extra spacing in addition to the intrinsic inter-word spacing defined by the font.
- `percentage$t
- 追加の間隔法を,影響される文字の送幅に対する百分率として指定する。 ◎ Specifies the additional spacing as a percentage of the affected character’s advance width.
追加の間隔法は、`空白~処理~規則$が適用された後に,~text内に残された各`単語分離子$に適用され、~typographic慣行により規定されない限り,文字の各~側に半分ずつ適用されるべきである。 負の値もとり得るが、実装に依存する制限があり得る。 ◎ 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.
各~単語↔間の間隔を,~Arabicでは すべて零幅に,英語では すべて倍の幅に描画させる例: ◎ The following example will make all the spaces between words in Arabic be rendered as zero-width, and double the width of each space in English:
:lang(ar) { word-spacing: -100%; } :lang(en) { word-spacing: 100%; }
単語↔間の間隔に,[ ~glyph “0” の幅 `CSS-VALUES-3$r ]の半分を追加する例: ◎ The following example will add half the the width of the “0” glyph to word spacing character [CSS-VALUES-3]:
p { word-spacing: 0.5ch; }
`単語分離子~文字@ ( `word-separator character^en )とは、単語を分離することが その 目的/一般~用法 とされているような,`~typographic文字~単位$である。 `UNICODE$r では、これは次を含む: ~space( `0020^U ), 分断不可~space( `00A0^U ), ~Ethiopic 単語~space( `1361^U ), ~Aegean 単語分離子( `10100^U, `10101^U ), ~Ugaritic 単語~分割子( `1039F^U ), ~Phoenician Word Separator( `1091F^U )。 ◎ Word-separator characters are typographic character units whose purpose and general usage is to separate words. In [UNICODE] this includes 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).
単語分離子~文字が[ 無い, あるいは その送幅が 0 である(零幅~space `200B^U など) ]場合、~UAは,単語↔間に追加の間隔法を作成しては~MUST_NOT。 ◎ If there are no word-separator characters, or if a word-separating character has a zero advance width (such as the zero width space U+200B) then the user agent must not create an additional spacing between words.
一般~約物, および 固定幅~space( `3000^U, `2000^U 〜 `200A^U など)は、単語分離子~文字とは見なされない。 ◎ General punctuation and fixed-width spaces (such as U+3000 and U+2000 through U+200A) are not considered word-separator characters.
8.2. 字0↔間の間隔法: `letter-spacing^p ~prop
◎名 `letter-spacing@p ◎値 `normal$v | `length$vt ◎初 `normal^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 絶対~長さ ◎順 N/A ◎ア `長さとして$ ◎表終この~propは、`~typographic文字~単位$↔間への追加の間隔法 — `字間隔法@ ( `letter-spacing^en )†を指定する( “`tracking^en” とも共通的に呼ばれる)。 それは,`双向性による並替え$の後に適用され、 `word-spacing$p による間隔法もあるときは,それに対する追加になる。 有効な両端揃え規則に依存して,~UAは、 ~textを両端揃するために `~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 any word-spacing. 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文字~単位$↔間への 追加の間隔法を指定する。 負の値もとり得るが、実装に依存する制限があり得る。 ◎ Specifies additional spacing between typographic character units. Values may be negative, but there may be implementation-dependent limits.
旧来の理由 から、 `letter-spacing$p の算出値 `0^v に対する`解決値$( `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の 先頭/末尾 に適用されては~MUST_NOT。 ◎ Letter-spacing must not be applied at the beginning or at the end of a line.
`字間隔法$は,行lの先頭/末尾には適用されないので、~textは常に,塊の辺に接合するように収まる。 ◎ Because 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は,行lの末尾の辺に`字間隔法$を付加しては~MUST_NOT: ◎ UAs therefore must not append letter spacing to the right or trailing edge of a line:
`~typographic文字~単位$↔間の`間隔法$は、実質的に[ それらの文字~単位を包含する最内部の要素 ]に “属する”: すなわち、`~typographic文字~単位$↔間の(`双向性による並替え$の後の)間隔法、その文字~単位↔間の境界を 包含するような最内部の要素により指定され, その要素の中に描画される。 ◎ 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.
要素~上に指定される `letter-spacing$p 値が影響するのは、[ その要素に完全に包含されている文字 ]↔間のみである: ◎ A given value of letter-spacing only affects 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 also means 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>
行内~boxが含み得る`字間隔法$は、[ その要素に完全に包含されている文字 ]↔間に限られる: ◎ An inline box only includes letter spacing between characters completely contained within that element:
p { letter-spacing: 1em; } <p>a<span>bb</span>c</p>
すなわち、`字間隔法$を,要素の右端(末尾)の辺に含ませるのは、不正である: ◎ It is incorrect to include the letter spacing on the right or trailing edge of the element:
`字間隔法$が挿入されるのは、双方向性による並替えの後である。 例えば、次の `span^e に適用される字間隔法による効果は生じない — 並替えの後、 `c^lt は `~HebA^lt の隣に来ないので: ◎ Letter spacing is inserted after RTL reordering, so the letter spacing applied to the inner span below 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 ) ]は、並替えにより,逆順に表示される: ◎ abc followed by Hebrew letters alef (א), bet (ב) and gimel (ג) ◎ Reordering will display these in reverse order.
`字間隔法$においては、不可視の零幅~整形~文字(`~Unicode字種$ `Cf^uc に属するものなど)は無視される。 間隔法は、それらの文字が文書~内に存在しなかったかのように,追加され~MUST。 ◎ 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.
文字↔間の実質的な間隔法が(両端揃え や[ `letter-spacing$p に対する 0 でない値 ]に因り) 0 でないときは、~UAは,任意選択の合字を適用するべきでない。 ◎ 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.
例えば,単語 “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.
8.2.1. 筆記的~用字系
~UAは可能なら、`筆記的~用字系$に対し,余分の間隔の総量を転換して — すなわち、そのような字0の筆記的な繋がりを分断することなく,何らかの形で引伸して(または負の間隔法に対しては圧縮して) — 等価な総 延張(または圧縮)量が得られるように配分することにより,`字間隔法$を適用してもよい。 そのように延張できない場合、~UAは、その用字系の どの`~typographic字0単位$↔間にも,間隔法を適用しては~MUST_NOT(字間隔法の目的においては、実質的に,各~単語を単独の`~typographic字0単位$として扱うことになる)。 いずれにせよ、字0↔間の実質的な間隔法は 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
- (不良) 各~字0↔間に間隔を均等に配分する: ◎ BAD Even distribution of space between each letter.
- `arabic-stretch-spaced^dgm
- 筆記的な繋がりを分断してしまう! ◎ 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の長さは、上の間隔を均等に配分する例と同じ。 ◎ ↑
- (良) [ ~Arabicの字0 ]↔間の `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).
- (不良) [ 繋がってない字0 ]↔間にのみ, `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^U ARABIC TATWEEL などによる引伸ばし~glyph, その他の微小な~typography ]の利用を孕むこともある。 そのような効果に対する規則を定義することは、~CSSの視野~外である。 作者は、`筆記的~用字系$に対しては, `letter-spacing$p の適用-を避けるべきである — 相互運用可能でない結果でも受容されると判っているときは別として。 ◎ Note that 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.
8.3. 要素~境界をまたがる形状付け
`~typographic文字~単位$↔間を分離する行内~box境界を有するような~boxに対しては、次のいずれかが満たされるならば,その~textの形状付けは その境界で分断され~MUST: ◎ 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:
- `~typographic文字~単位$↔間を分離している,行内-軸~~方向の[ `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.
- `vertical-align$p 値は `baseline^v でない。 ◎ vertical-align is not baseline.
- 当の境界は、`双向隔離-$している。 ◎ The boundary is a bidi isolation boundary.
~textの形状付けは、整形が変更されない下では,行内~box境界で分断されては~MUST_NOT。 そうでなくとも、当の事例において適するかつ,与えられた~font技術の限界内で可能ならば、~textの形状付けは,行内~box境界で分断されるべきでない。 ◎ Text shaping must not be broken across inline box boundaries when there is no change in formatting. 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.
9. 行lの両端~辺における効果
`text-indent$p ~propは、塊~内の他の行lを基準に,行lの字下げを制御する。 `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).
9.1. 字下げ: `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 ◎算 指定値 — ただし,長さ成分については絶対~化される ◎ the percentage as specified or the absolute length, plus any keywords as specified ◎順 文法に従う ◎ア `長さ/百分率/~calc 式として$ — ただし、指定された~keywordが 互いに合致しない場合は不可。 ◎ length, percentage, or calc, but only if keywords match ◎表終この~propは、塊~内の`行内~内容$の各~行lに適用される字下げを指定する。 字下-は、`行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$に限られる。 例えば,`匿名~塊~box$の最初の行lは、その親~要素の最初の子であるときにのみ影響される。 ◎ Unless otherwise specified by the each-line and/or hanging keywords, only lines that are the first formatted line [CSS21] of an element are affected. 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
- 字下-量を,`包含塊$の論理~横幅 【すなわち,`行内~size$】 に対する百分率として与える。 ◎ Gives the amount of the indent as a percentage of the containing block’s logical width.
- `each-line@v
- 字下げは,各[ `塊~容器$の最初の行l, および `強制~行-分断$の直後の行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$p は `start$va に, `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” に限られるので、強制~分断の後の行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 that 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'.
9.2. 吊下がり約物: `hanging-punctuation^p ~prop
◎名 `hanging-punctuation@p ◎値 `none$v | [ `first$v || [ `force-end$v | `allow-end$v ] || `last$v ] ◎初 `none^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 指定値 ◎順 文法に従う ◎ア 離散的 ◎表終この~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 that if there is not sufficient padding on the block container, hanging-punctuation can trigger overflow.
行lの内容を[ 収める/整列する/両端揃する ]ための計量には、 `吊下がる@† 約物符は,考慮されない。 その結果,約物は、行lの[ 整列/両端揃え ]に依存して,`行l~box$の外側に置かれることもあり得る。 (この計量と~kerning【字間隔法】との相互作用は、現在は~UAにより定義される — CSSWG は、この点について 助言を~~歓迎する。) ◎ When a punctuation mark 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. (The interaction of this measurement and kerning is currently UA-defined; the CSSWG welcomes advice on this point.)
【† `吊下がり^_ ( `hanging^en ) 】
各種 値の意味は: ◎ Values have the following meanings:
- `none@v
- `吊下がる$文字はない。 ◎ No character hangs.
- `first@v
- 要素の`整形される最初の行l$の始端にある,開き[ 括弧/引用符 ]は、`吊下がる$。 これは、`~Unicode字種$[ `Ps^uc, `Pf^uc, `Pi^uc ]に属する すべての文字, および[ ASCII 引用符 `0027^gU, `0022^gU ]に適用される。 ◎ An opening bracket or quote at the start of the first formatted line of an element hangs. This applies to all characters in the Unicode categories Ps, Pf, Pi plus the ASCII quote marks “'” U+0027 and “"” U+0022.
- `last@v
- 要素の 整形される最後の行lの終端にある,閉じ[ 括弧/引用符 ]は、`吊下がる$。 これは、`~Unicode字種$[ `Pe^uc, `Pf^uc, `Pi^uc ]に属する すべての文字, および[ ASCII 引用符 `0027^gU, `0022^gU ]に適用される。 ◎ A closing bracket or quote at the end of the last formatted line of an element hangs. This applies to all characters in the Unicode categories Pe, Pf, Pi plus the ASCII quote marks “'” U+0027 and “"” U+0022.
- `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 hangs if it does not otherwise fit prior to justification.
[ `吊下$可能な~markと, 行lの辺 ]の合間において,`行内-軸$~~方向の[ ~border/~padding ]が 0 でない場合、~markは吊下がらなくなる。 例えば,終端~paddingを伴う行内~boxの終端にある終止符は、行lの終端~辺の所で`吊下がら$ない。 行lの各~辺の所で`吊下って$よい約物~文字の個数は、 1 個までである。 ◎ Non-zero inline-axis borders or padding between a hangable mark and the edge of the line prevent the mark 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. At most one punctuation character may hang at each edge of the line.
`吊下がり$約物符は、依然として[ その親の行内~boxの内側に封入され, `~scroll可能な~overflow領域$ `CSS-OVERFLOW-3]$r の一部を成すものとされ, ~text両端揃えに関与する ] — 単に,次を決定するときには、その文字~送幅が計量されないだけである ⇒# 行l上に どれ程の内容が収まるか / 両端揃え用に 行lの内容を どれ程 延張する/圧縮する 必要があるか / ~text整列~用に `行l~box$の中に内容をどう位置させるか ◎ A hanging punctuation mark is still enclosed inside its parent inline box, is still counted as part of the scrollable overflow region [CSS-OVERFLOW-3], 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 punctuation mark’s 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.
次に挙げる `句読点類@ は、`吊下$が許容される: ◎ Stops and commas allowed to hang include:
`002C^U | `,^lt | COMMA |
`002E^U | `.^lt | FULL STOP |
`060C^U | `،^lt | ARABIC COMMA |
`06D4^U | `۔^lt | ARABIC FULL STOP |
`3001^U | `、^lt | IDEOGRAPHIC COMMA |
`3002^U | `。^lt | IDEOGRAPHIC FULL STOP |
`FF0C^U | `,^lt | FULLWIDTH COMMA |
`FF0E^U | `.^lt | FULLWIDTH FULL STOP |
`FE50^U | `﹐^lt | SMALL COMMA |
`FE51^U | `﹑^lt | SMALL IDEOGRAPHIC COMMA |
`FE52^U | `﹒^lt | SMALL FULL STOP |
`FF61^U | `。^lt | HALFWIDTH IDEOGRAPHIC FULL STOP |
`FF64^U | `、^lt | HALFWIDTH IDEOGRAPHIC COMMA |
~UAは、適宜,他の文字も含めてよい。 ◎ The UA may include other characters as appropriate.
注記: 他の文字を含ませた~UAは、その旨を CSS Working Group まで 伝えてもらえるとありがたい。 ◎ 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 種類の吊下がり約物である。 ◎ 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 が利用された場合、吊下が強制される。 両端揃えは,吊下がり約物を含めずに行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.
9.3. 双方向性と行l~box
`行l~box$の[ `始端$, `終端$ ]辺は、行l~boxの`行内~基底~方向$により決定される。 殆どの事例では、これは 行l~boxの`包含塊$(以下,単に包含塊と記す)の `direction$p の算出値で与えられる。 ◎ The start and end edges of a line box are determined by the inline base direction of the line box. In most cases, this is given by its containing block’s computed direction.
しかしながら,包含塊の `unicode-bidi$p が `plaintext^v `CSS3-WRITING-MODES$r にされている場合、行l~boxの`行内~基底~方向$は、それが属する`双向~段落$ — すなわち、行l~boxが内容を保持している,`双向~段落$ — の`行内~基底~方向$により決定され~MUST。 ただし、行l~boxが空である場合(すなわち、`不可分な行内$も,行-分断法~文字 以外の文字も包含しない)、包含塊~内に,行l~boxに先行する他の【空でない】行l~boxが[ あれば その行l~box / なければ包含塊の `direction$p ~prop ]の`行内~基底~方向$になる。 ◎ However if its containing block has unicode-bidi: plaintext [CSS3-WRITING-MODES], the line box’s inline base direction must be determined by the inline base direction of the bidi paragraph to which it belongs: that is, the bidi paragraph for which the line box holds content. An empty line box (i.e. one that contains no atomic inlines or characters other than the line-breaking character, if any), takes its inline base direction from the preceding line box (if any), or, if this is the first line box in the containing block, then from the direction property of the containing block.
次の例で、
`block^e は,`pre^v により整形されている塊(
`display$p: `block^v; `white-space^p: `pre^v;
)であって,
`text-align$p: `start^v
を継承しているとするとき、他の【 "Latin" でない?】どの行lも右寄せされる:
◎
In the following example, assuming the <block> is a preformatted block (display: block; white-space: pre) inheriting text-align: start, every other line is right-aligned:
<block style="unicode-bidi: plaintext"> Latin و·کمی Latin و·کمی Latin و·کمی </block>
注記: ここで決定される行内~基底~方向は、その内容ではなく,`行l~box$自身に適用されることに注意。 それは[ `text-align$p, `text-align-last$p, `text-indent$p, `hanging-punctuation$p ] — すなわち,その内容の各~辺を基準にする位置や整列 — に影響する。 その内容の[ 整形や順序付け ]には,影響しない。 ◎ Note that the inline base direction determined here applies to the line box itself, and not to its contents. It affects text-align, 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 its content.
次の例では: ◎ In the following example:
<para style="display: block; direction: rtl; unicode-bidi:plaintext"> <quote style="unicode-bidi:plaintext">~HebPeace!</quote>, he said. </para>
結果は、次の様な見かけの左寄せされた行lになるべきである: ◎ The result should be a left-aligned line looking like this:
!~HebPeace, he said.
行lは(`包含塊$の `direction$p が `rtl^v にされていようが)左寄せされる — 包含塊( `para^e )の `unicode-bidi$p は `plaintext^v にされていて、`行l~box$は~LTRの`双向~段落$に属するので。 これは、[ `para^e に直に包含されている`双向~段落$(以下, P と記す) ]の最初の[ ~strong文字【それ自体に方向が備わる文字】である( `he^lt の ) `h^lt ]の方向性が,~LTRであることによる: `quote^e 内の[ ~RTLである `!~HebPeace^lt ]が `he^lt に先行しているが、それは[ `para^e に直に包含されていない,自前の`双向隔離-$された段落(以下, Q と記す) ]を成すので、`行l~box$の整列には 無関係である。 P の視点からは、 Q は,定義により単に[ 中立的な `FFFC^U 文字と~~同一視される ]ため、 P の方向性は,後続する `he^lt の方向性(~LTR)に従う。 ◎ The line is left-aligned (despite the containing block having direction: rtl) because the containing block (the <para>) has unicode-bidi:plaintext, and the line box belongs to a bidi paragraph that is LTR. This is because that paragraph’s first character with a strong direction is the LTR "h" from "he". The RTL "שלום!" does precede the "he", but it sits in its own bidi-isolated paragraph that is not immediately contained by the <para>, and is thus irrelevant to the line box’s alignment. From from the standpoint of the bidi paragraph immediately contained by the <para> containing block, the <quote>’s bidi-isolated paragraph inside it is, by definition, just a neutral U+FFFC character, so the immediately-contained paragraph becomes LTR by virtue of the "he" following it.
<fieldset style="direction: rtl"> <textarea style="unicode-bidi:plaintext"> Hello! </textarea> </fieldset>
予期されるように、 `Hello!^lt は,( `textarea^e の `direction^p が `rtl^v にされていようが,感嘆符は右端~終端に来るように)~LTRに表示された上で,左寄せされるべきである。 これにより、それに後続する空~行lも左寄せされるようになる — それは、その行l上の~caretも 左端~辺に現われるべきであることを意味する。 一方で,最初の空~行lは、それを包含する段落である `textarea^e の方向~RTLに因り,右寄せされるべきである。 ◎ As expected, the "Hello!" should be displayed LTR (i.e. with the exclamation mark on the right end, despite the <textarea>’s direction:rtl) and left-aligned. This makes the empty line following it left-aligned as well, which means that the caret on that line should appear at its left edge. The first empty line, on the other hand, should be right-aligned, due to the RTL direction of its containing paragraph, the <textarea>.
付録 A. 各種~text演算の処理~順序
各種~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.)
- 空白の縮約-法と変形 ◎ white space processing part I (pre-wrapping)
- `~text変形$ ◎ text transformation
- `~textの字組み$ ◎ text combination
- `~text方位$ `CSS3-WRITING-MODES$r ◎ text orientation [CSS3-WRITING-MODES]
-
~textの`折返し$ — 各~行lごとに次を適用する: ◎ text wrapping while applying per line:
- 字下げ ◎ indentation
- `双向性による並替え$ `CSS21$r / `CSS3-WRITING-MODES$r ◎ bidirectional reordering [CSS21] / [CSS3-WRITING-MODES]
- 空白の切詰めと位置決め ◎ white space processing part II
- ~fontや~glyphの選定と位置決め `CSS21$r / `CSS3-FONTS$r ◎ font/glyph selection and positioning [CSS21] / [CSS3-FONTS]
- `letter-spacing$p と `word-spacing$p ◎ letter-spacing and word-spacing
- 吊下がり約物 ◎ hanging punctuation
- 両端揃え (~glyphの選定や, ~textの折返しに影響し得るので、そうなったときは,該当する段まで戻る ) ◎ justification (which may affect glyph selection and/or text wrapping, looping back into that step)
- ~text整列 ◎ text alignment
付録 B. 既定の~UA~stylesheet
この付録は参考であり、~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.
/*
一連の[
~list項目/ `option^e 要素
]を整列させる:
◎
make list items and option elements align together
*/
li, option { text-align: match-parent; }
課題 / 追加すべき推奨 / 正すべきもの が見出されたときは、件名に [css-text] を添えて www-style@w3.org まで情報を送信されたし。 ◎ If you find any issues, recommendations to add, or corrections, please send the information to www-style@w3.org with [css-text] in the subject line.
付録 C. 用字系と間隔法
この付録は参考である。 ◎ 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 (“幅広”)文字( `UAX11$r を見よ)。 次の`~Unicode用字系$が含まれる: ~Bopomofo, ~Han, ~Hangul, ~Hiragana, ~Katakana, ~Yi。 `東Asian字幅~prop$が[ `W^uc/`F^uc ]である文字も含まれるが、 `A^uc 文字については,`内容~言語$が[ 中国語/韓国語/日本語 ]の場合にのみ含まれる。 ◎ CJK and by extension all Wide characters (see [UAX11].) The following Unicode scripts are included: Bopomofo, Han, Hangul, Hiragana, Katakana, and Yi. Characters of the East Asian Width property W and F are also included, but A characters are included only if the content language 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 ]において、字0↔間の途切れは容認されない。 次の `~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
~UAは、自身による~Unicode~supportを更新するに伴い,この~listを更新するべきである。 ~Unicodeの将来~versionにて,まだ符号化されていない筆記的~用字系を取扱うために。 また、それに則ってこの仕様を更新するよう CSSWG に~~要請することが奨励される。 ◎ 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.
~block用字系と~cluster用字系は併合されるべきか? それらは,~spaceの両端揃えと, 文字↔間の両端揃えとの間で許容度が異なるが、両者とも両者を容認する。 ◎ Should block and cluster scripts be merged? They have different tolerances for space-justification vs inter-character justification, but both admit both.
付録 D. 文字の~prop
~CSS植字では、~Unicodeにて定義される,符号位置~levelの~propとして、次の 4 種を参照する: ◎ Unicode defines four codepoint-level properties that are referenced in CSS typesetting:
- `東Asian字幅~prop@ ( `East Asian Width property^en )
- `UAX11$r にて定義され, Unicode Character Database `UAX44$r にて `East_Asian_Width^uc ~propとして与えられる。 ◎ Defined in [UAX11] and given as the East_Asian_Width property in the Unicode Character Database [UAX44].
- `一般~字種@ ( `general category^en, または 単に “~Unicode字種” )
- `UAX44$r にて定義され, Unicode Character Database `UAX44$r にて `General_Category^uc ~propとして与えられる。 ◎ Defined in [UAX44] and given as the General_Category property in the Unicode Character Database [UAX44].
- 【 ある文字が “字種 %X に属する” という句は、その文字の `General_Category^uc ~prop値が %X であることを意味する。 】
- `用字系~prop@ ( `Script property^en )
- `UAX24$r にて定義され, Unicode Character Database `UAX44$r にて `Script^uc ~propとして与えられる。 (~UAは、 ScriptExtensions.txt による割当てがあれば,この~mappingに含め~MUST。) ◎ Defined in [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 であることを意味する。 】【 ScriptExtensions.txt? 】
- Vertical Orientation(縦書き時の~glyph方位)
- `UTR50$r にて `Vertical_Orientation^uc ~propとして定義され, UTR50 ~data~fileにて与えられる。 ◎ Defined in [UTR50] as the Vertical_Orientation property and given in the UTR50 data file.
- `~Unicode行-分断法~class@ 【この項目は、この訳による補完。】
- `UAX14$r により定義される Line Breaking Class — 所与の文字に許容される分断~機会がどう決定されるかの分類。
~Unicodeは、個々の符号位置に対し各種~propを定義しているが、`~typographic文字~単位$に対し~propを決定することも,ときには必要とされる。 CSS Text の目的においては、`~typographic文字~単位$の~propは、その最初の `書記素~cluster$の基底~文字により与えられる — 次の 2 つの事例を除いて: ◎ Unicode defines properties for individual codepoints, 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 )と見なされる。 それらは、 Replacement Character `FFFD^U と同じ~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 【基底~文字 — base character ?】 として 形成される書記素~clusterは、 Modifier Symbols ( `Sk^uc )であると見なされる。 それらは、[ `東Asian字幅~prop$は, base と同じである ]ものと見做されるが、他の~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.
付録 E. 書記体系による内容の~tag付け
ほとんどの言語には,選好される書記体系があるが、多くの言語は,異なる書記体系の中へも筆写-( `transcribe^en )できる。 共通的な例として、ほとんどの言語には 1 つ以上は~Latin筆写があり,したがって~Latin書記体系でも書ける。 これらの事例においては、文書は概して,~Latin書記体系の~typographic規約を採用する。 例えば[ 日本語 “~romaji”/ 中国語の拼音 ]は、~Latin字0と単語~間隔を利用して,それに則って ~Latin行-分断法と両端揃えの実施に従う。 別の例として、歴史的~表語文字による韓国語( `ko-Hani^c )は、単語~間隔を利用しないので,中国語と同様に植字されるべきである。 ◎ While most languages have a preferred writing system, many can also be transcribed into a different writing system. As a common example, most languages have at least one Latin transcription, and can thus be written in the Latin writing system. In these cases the document typically adopts the typographic conventions of the Latin 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 as for Chinese.
作者は、用字系~下位tagで代表的でない書記体系の利用を指示できる。 例えば,[ ~nativeには~Latin書記体系を利用しない言語 ]用にそれの利用を指示するときは、用字系~下位tagとして `-Latn^c を追加できる — 例:日本語~romaji用には `ja-Latn^c など。 他の書記体系~用にも他の下位tagは存在する — `BCP47$r, `ISO15924$r, ISO15924 script tag registry を見よ。 ◎ Authors can indicate the use of an atypical writing system with script subtags. 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 [BCP47], [ISO15924], and the ISO15924 script tag registry.\
共通的な/歴史的な例を,以下にいくつか挙げる: ◎ Some common/historical examples follow:
- `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.
~UAは,行-分断法や両端揃え策などの ~typographic用の挙動を選ぶときには、指定された`内容~言語$に最も共通的な書記体系と見做すべきであるが、作者が異なるそれを明示的に指示した場合には,そう見做しては~MUST_NOT。 ~UAは、特定0の[ 言語と書記体系の組合せ ]について,言語~特有の知識を備えていない場合には、指定された書記体系の~typographic規約を利用し~MUST(必要とされるなら、規約も異なる言語のそれと見做した上で)。 他の書記体系における当の言語の規約ではなく — それは、この事例で利用される書記体系には不適切になる。 ◎ UAs should assume the most common writing system of the specified content language when choosing typographic behaviors such as line-breaking or justification strategies, but must not assume that writing system if the author has explicitly indicated 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 specified writing system (assuming the conventions of a different language if necessary), not the conventions of that language in a different writing system, which would be inappropriate to the writing system used in this case.
言語~tag付けについての助言情報は、 ~I18nWG による ~HTML/~XMLにおける言語~tag ( “`Language tags in HTML and XML^en” ), 言語~tagの選び方 ( “`Choosing a Language Tag^en” ) に見出せる。 ◎ 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”.
~privacyと保安上の考慮点
この仕様により,新たな保安上の考慮点が導入されることはない。 ◎ This specification introduces no new security considerations.
この仕様は、利用者にて~installされている[ ~hyphen化/行-分断法 ]辞書を漏洩させる。 ◎ This specification leaks the user’s installed hyphenation and line-breaking dictionaries.
謝辞
この仕様は、次の方々からの助力が無ければ可能でなかったであろう:
This specification would not have been possible without the help from: Ayman Aldahleh, Bert Bos, Tantek Çelik, James Clark, Stephen Deach, John Daggett, Martin Dürst, Laurie Anna Edlund, Ben Errez, Yaniv Feinberg, Arye Gittelman, Ian Hickson, Martin Heijdra, Richard Ishida, Masayasu Ishikawa, Michael Jochimsen, Eric LeVine, Ambrose Li, Håkon Wium Lie, Chris Lilley, Ken Lunde, Nat McCully, IM Mincheol, Shinyu Murakami, Paul Nelson, Chris Pratley, Xidorn Quan, Marcin Sawicki, Arnold Schrijver, Rahul Sonnad, Alan Stearns, Michel Suignard, Takao Suzuki, Frank Tang, Chris Thrasher, Etan Wexler, Chris Wilson, Masafumi Yabe and Steve Zilles.
変更点
2013 年 10 月付 最終 作業草案 からの変更点
- `tab-size$p は、~animate可能にするため, `number$t を利用するよう切り替えた。 加えて, `letter-spacing$p, `word-spacing$p も織り込むように定義した。 ◎ Switched tab-size to use <number> so that it is animatable, and defined it to also account for letter-spacing and word-spacing.
- `text-align$p は、[ `text-align-last$p, および新たに~~導入された `text-align-all$p ]~propに対する略式~propにされた。 ◎ Made text-align a shorthand of text-align-last and the new text-align-all property.
-
`text-align-last$p の
`text-align$p: `justify^v
への依存性は除去された — それが解く問題は、今や,上の略式~propによる関係性により解かれたので。 ◎ Removed dependence of text-align-last on text-align: justify, since the problem it solves is now solved by the shorthanding relationship. - `text-transform$p 用の `capitalize^v により題字~化されるのは,小文字に限られ、大文字は影響されないようにした。 ◎ Qualified that only lowercase letters are titlecased for text-transform: capitalize; uppercase letters remain unaffected.
- `word-break$p 用の `break-all^v 値の記述は、 UAX14 による “字0” の概念0に切替えられた — その方が記号をより良く取扱えるので。 ◎ For word-break: break-all, switched to UAX14 notion of “letters”, since that handles symbols better.
- `line-break$p 用に値 `anywhere^v を追加した。 ◎ Added line-break: anywhere.
- 区分~分断の変形~規則 における多義的な文字の取扱いを,言語~文脈に応じるように~~調整した。 ◎ Tweaked handling of Ambiguous characters during segment break transformation to respond to language context.
- `overflow-wrap$p に対する `break-word$v は、最小-内容 内在的~sizeに影響するよう変更した。 ◎ Changed overflow-wrap: break-word to affect min-content intrinsic sizes.