1. 序論
この~moduleは、 ~CSSによる植字~制御について述べる — それは、[ ~source~textから,行lが折返され, 整形された~textへの転換 ]を制御する,各種~CSS特能である。 種々の~CSS~propが、 次に対する制御を供する ⇒# `大小~変形n@#transforming$, `空白の縮約-法@#white-space-processing$, `~textの折返ng@#white-space-property$, `行-分断ng規則@#line-breaking$と`~hyphen化@#hyphenation$, `整列と両端揃え@#justification$, `間隔法@#spacing$, `字下n@#edge-effects$ ◎ This module describes the typesetting controls of CSS; that is, the features of CSS that control the translation of source text to formatted, line-wrapped text. Various CSS properties provide control over case transformation, white space collapsing, text wrapping, line breaking rules and hyphenation, alignment and justification, spacing, and indentation.\
`~level 3$ からの追加は、 `~level 3 からの追加@#changes-L3$を見よ。 ◎ See Additions Since Level 3 for additions since Level 3.
注記: `~font選定@~CSSFONT#font-matching-algorithm$については、 `CSS-FONTS-3$r が受持つ。 ◎ Note: Font selection is covered in the CSS Fonts Module. [CSS-FONTS-3]
(以前は、 この~moduleの一部を成していた) `行l装飾@~CSSTEXTDECOR#line-decoration$( `underline^en ), `圏点@~CSSTEXTDECOR#emphasis-marks$( `emphasis mark^en ), `影@~CSSTEXTDECOR#text-shadow-property$( `shadow^en ) などの,~textを装飾するための特能は、 `CSS-TEXT-DECOR-3$r が受持つ。 ◎ Features for decorating text, such as underlines, emphasis marks, and shadows, (previously part of this module) are covered in the CSS Text Decoration Module. [CSS-TEXT-DECOR-3]
[ `双方向-$/`縦書き$ ]な~textについては、 `CSS-WRITING-MODES-4$r にて取組まれる。 ◎ Bidirectional and vertical text are addressed in the CSS Writing Modes Module. [CSS-WRITING-MODES-4].
世界各地の様々な言語と書記~体系における植字~要件についての更なる情報は、 `国際化~WG@~I18N/core/$ による `TYPOGRAPHY$r にて見出せる。 ◎ Further information about the typesetting requirements of various languages and writing systems around the world can be found in the Internationalization Working Group’s Language Enablement Index. [TYPOGRAPHY]
1.1. 各種~module間の相互作用
この~moduleは、 `CSS-TEXT-DECOR-3$r とともに, `CSS2$r `§ 16@~CSS22/text.html$ にて定義される~text~levelの特能を置換して拡張する。 ◎ This module, together with the CSS Text Decoration Module, replaces and extends the text-level features defined in Cascading Style Sheets Level 2 chapter 16. [CSS-TEXT-DECOR-3] [CSS2]
以下に定義される各種~用語に加えて、 この仕様にて利用される他の[ 各種用語/概念 ]は, `CSS2$r, `CSS-WRITING-MODES-4$r にて定義される。 ◎ In addition to the terms defined below, other terminology and concepts used in this specification are defined in Cascading Style Sheets Level 2 and the CSS Writing Modes Module. [CSS2] and [CSS-WRITING-MODES-4].
1.2. 値~定義
【 この節の内容は `~CSS日本語訳 共通~page@~CSScommon#values$に移譲。 】
【この訳に特有な表記規約】
簡潔かつ明確にするため、 この訳では,記号 "↔", "間" を次の意味で用いる:
- ~textを~~構成する,ある分類による単位 (例えば “単語”, “文字”,その他 何らかの条件を満たす文字列たちが成す集合など) %W に対し、 “%W↔間” という表記(例:“単語↔間” )は、 論の対象の~textの中で互いに隣接な,任意の 2 個の[ %W に属する単位~instance ]の合間を意味する。
- %Z を別の単位とするとき、 “%W ↔ %Z 間” という表記は、 ~textの中で互いに隣接な,[ %W に属する任意の単位~instanceと, %Z に属する任意の単位~instance ](順不同)の合間を意味する。 (同順であることも要する場合は、 その旨が記される)
“隣接な” の定義は、 双方向性による並替ngの前/後で変化することに注意(~layoutの文脈では、 通例的に並替ngの後になる)。
この仕様の語[ 始端/終端 ]は、 特に断らない限り,`行内~基底~方向$のそれを意味する(塊~flow~方向ではなく)。
略語 “~CJK” は、[ 中国語, 日本語, 韓国語 ]の総称を表す。
一部の共通的に利用される符号位置は、 次の表tに示す略称で参照される(`~space$, `~tab$は、 原文では他所で定義されるが,ここに集約する):
略称(英語名) | 符号位置 |
---|---|
`~CR@ ( `carriage return^en ) | `000D^U `CARRIAGE RETURN^cn |
`~LF@ ( `line feed^en ) | `000A^U `LINE FEED^cn |
`~space@ | `0020^U `SPACE^cn |
`~tab@ | `0009^U `CHARACTER TABULATION^cn |
1.3. 言語と植字
作者は、 ~typographicの挙動が最良になるよう, 自身の内容に言語~tagを正確aにあてがうベキである ◎ Authors should accurately language-tag their content for the best typographic behavior.
多くの~typographic効果は、 言語上の文脈に応じて変わる。 言語と書記~体系の規約は、[ 行-分断法, ~hyphen化, 両端揃え, ~glyph選定 ], その他,多くの~typographic効果に影響し得る。 ~CSSにおいては、 言語に特有な~typographicな誂えは, `内容~言語$が既知である(宣言されている)ときに限り適用される。 したがって,作者には — 高~品質な~typographyを得るためには — 文書~内の~textが成す正しい言語上の文脈を~UAに伝えることが要求される。 ◎ Many typographic effects vary by linguistic context. Language and writing system conventions can affect line breaking, hyphenation, justification, glyph selection, and many other typographic effects. In CSS, language-specific typographic tailorings are only applied when the content language is known (declared). Therefore, higher quality typography requires authors to communicate to the UA the correct linguistic context of the text in the document.
要素の `内容~言語@ とは、 `文書~言語$の規則に則って,要素が属するものと宣言されている(ヒトが話す)言語である。 要素の`内容~言語$は,未知もアリなことに注意。 例:[ ~tag付けられてない内容/言語~tag付けの便宜性が無い`文書~言語$内の内容 ]の内容~言語は、 未知と見なされる。 ◎ The content language of an element is the (human) language the element is declared to be in, according to the rules of the document language. Note that it is possible for the content language of an element to be unknown—e.g. untagged content, or content in a document language that does not have a language-tagging facility, is considered to have an unknown content language.
注記: 作者は、[ ~HTMLにおいては大域的な `lang^a 属性/ ~XMLにおいては普遍的な `xml:lang^a 属性 ]を利用して`内容~言語$を宣言できる。 [ ~HTML/~XML ]要素の`内容~言語$を決定するための規則は、[ `~HTML要素のそれ@~HTMLdom#language$ `HTML$r / `~XML要素のそれ@~TR/xml/#sec-lang-tag$ `XML10$r ]を見よ。 ◎ Note: Authors can declare the content language using the global lang attribute in HTML or the universal xml:lang attribute in XML. See the rules for determining the content language of an HTML element in HTML, and the rules for determining the content language of an XML element in XML 1.0. [HTML] [XML10]
要素に宣言された`内容~言語$は、 要素に利用されている `内容~書記~体系@ ( `content writing system^en ) — すなわち、 利用されている言語に特有な書記法( `written form^en ) — を識別する。 この情報は、 `文書~言語$による[ `内容~言語$の識別-用の便宜性 ]に依存して,明示的に与えられることも, 暗黙なものになることもある。 規範的な付録 `§ 内容~書記~体系の識別-法@#script-tagging$ を見よ。 ◎ The content language an element is declared to be in also identifies the specific written form of that language used in that element, known as the content writing system. Depending on the document language’s facilities for identifying the content language, this information can be explicit or implied. See the normative Appendix F: Identifying the Content Writing System.
注記: 一部の言語には,複数の書記~体系が伝統的にある。 また、 ある言語が外来な書記~体系の中に翻字-( `transliterate^en )される事例もある。 そのような事例では、 作者は,~UAが適切に順応できるよう `用字系~下位tag@#script-tagging$を与えるベキである。 ◎ Note: Some languages have more than one writing system tradition; in other cases a language can be transliterated into a foreign writing system. Authors should subtag such cases so that the UA can adapt appropriately.
【 以下に現れる~code( `BCP47$r 言語~tag)のうち~hyphenが接頭されたものが,用字系~下位tagを表す。 】
例えば,韓国語( `ko^c )は、 ~Hangul( `-Hang^c )でも~Hanja( `-Hani^c )でも,この両者の組合n( `-Kore^c )でも記され得る。 歴史的な文書は、 もっぱら~Hanjaで記され,単語↔間の間隔を利用しない — それらは、 現代の韓国語より現代の中国語の様に整形される。 言い換えれば,~typographicの目的においては、 `ko-Hani^c は, `ko^c ( `ko-Kore^c )より `zh-Hant^c の様に挙動する。 ◎ For example, Korean (ko) can be written in Hangul (-Hang), Hanja (-Hani), or a combination (-Kore). Historical documents written solely in Hanja do not use word spaces and are formatted more like modern Chinese than modern Korean. In other words, for typographic purposes ko-Hani behaves more like zh-Hant than ko (ko-Kore).
別の例として,日本語( `ja^c )は、 概して,[ ~Hiragana( `-Hira^c ), ~Katakana( `-Kana^c ), ~Kanji( `-Hani^c ) ]の組合n( `-Japn^c )で記される。 しかしながら,言語~学習教本の様な特別な目的においては,~Latin( `-Latn^c )に “~romanize” されることもあり、 その事例では,日本語より~Englishの様に整形されるべきである。 ◎ As another example Japanese (ja) is typically written in a combination (-Japn) of Hiragana (-Hira), Katakana (-Kana), and Kanji (-Hani). However, it can also be “romanized” into Latin (-Latn) for special purposes like language-learning textbooks, in which case it should be formatted more like English than Japanese.
また別の例として,現今の~Mongolianは、 2 種の用字系 — ~Cyrillic( `-Cyrl^c ), ~Mongolian( `-Mong^c ) — で記される(~Mongoliaでは,前者が公式的に利用され、 中国の一部を成す内Mongoliaでは,後者の方が共通的にある)。 この 2 つの整形~要件は、 ごく異なる — ~Cyrillicは,~Latinや~Greekと類似に挙動する一方で、 ~Mongolianの書記~規約は,~Arabic, 中国語の両者から導出される。 ◎ As a third example contemporary Mongolian is written in two scripts: Cyrillic (-Cyrl, officially used in Mongolia) and Mongolian (-Mong, more common in Inner Mongolia, part of China). These have very different formatting requirements, with Cyrillic behaving similar to Latin and Greek, and Mongolian deriving from both Arabic and Chinese writing conventions.
1.4. 文字と字l
植字の基本的~単位は, `文字@ ( `character^en )である。 しかしながら,書記~体系は基本的な~English~alphabetほど単純とは限らないので、 `文字$が実際に何であるかは,その用語が利用される文脈に依存する。 例えば,~Hangul(韓国語の書記~体系)では、 各[ 音節の方形~表現 ] (例: `한^lt = Han ) を`文字$と見なせる。 しかしながら,方形~記号は、 本当は,各自が音素を表現するような複数個の字l( `letter^en )から構成されており (例: `ㅎ^lt = h, `ㅏ^lt = a, `ㄴ^lt = n ), それら各~字lも`文字$と見なせる。 ◎ The basic unit of typesetting is the character. However, because writing systems are not always as simple as the basic English alphabet, what a character actually is depends on the context in which the term is used. For example, in Hangul (the Korean writing system), each square representation of a syllable (e.g. 한=Han) can be considered a character. However, the square symbol is really composed of multiple letters each representing a phoneme (e.g. ㅎ=h, ㅏ=a, ㄴ=n) and these also could each be considered a character.
~computerにおける~text符号化法の基本的~単位も,`文字$と呼ばれる — その符号化法における単独の`文字$は、 符号化法に依存して,[ 予め構成-済みな音節的な`文字$全体 (例: `한^lt ), 個々の音素的な`文字$ (例: `ㅎ^lt ), 基底~字形などの より小さな単位 (例: `ㅇ^lt ) ]いずれに対応することもある。 更には、 結合~markも,それを様々にさせる (例: 有気音を表現する余分な描線)。 ◎ A basic unit of computer text encoding, for any given encoding, is also called a character, and depending on the encoding, a single encoding character might correspond to the entire pre-composed syllabic character (e.g. 한), to the individual phonemic character (e.g. ㅎ), or to smaller units such as a base letterform (e.g. ㅇ) and any combining marks that vary it (e.g. extra strokes that represent aspiration).
その一方,符号化法の単独の`文字$は、 ~data~stream内では 1 個以上の~byteとして表現され得る。 また,~programming環境でも、 ときには 1 個の~byteを`文字$と呼ぶことがある。 ◎ In turn, a single encoding character can be represented in the data stream as one or more bytes; and in programming environments one byte is sometimes also called a character.
したがって、 用語 `文字$は,技術的な精度が要求される所では多義的になる。 ◎ Therefore the term character is fairly ambiguous where technical precision is required.
~text~layoutにおいては、 `~typographic文字~単位@ ( `typographic character unit^en ) 【 “植字した結果の,~~見かけの~~形に基づく文字~単位” 】 が,~textを成す基本的な単位になる。 ~text~layoutの領分であっても、 関連な`文字$単位は,演算に依存する。 例えば,~Thai文字~並びは、 `0E33^U `#0E33^lt `THAI CHARACTER SARA AM^cn を含む場合,[ `行-分断法$, `字間隔法$ ]においては区分される。 また,~Devanagariなどの用字系における連接子音の挙動は、 利用-中にある~fontに依存することがある。 このように,`~typographic文字$は、 特定0の~typographic演算( `行-分断法$, (段落の)最初の字l( `first-letter^en )効果, `字間隔法$, 両端揃え, 縦書き時の配列法, 等々 )に関して分割0不能な,書記~体系の単位を表現する — 例えば ⇒# ~Latinにおける~alphabetic字l(その発音区別符も含む), ~Hangulにおける音節, 中国語における表語-文字, ~Myanmarにおける音節~cluster, 等々 ◎ For text layout, we will refer to the typographic character unit as the basic unit of text. Even within the realm of text layout, the relevant character unit depends on the operation. For example, line-breaking and letter-spacing will segment a sequence of Thai characters that include U+0E33 ำ THAI CHARACTER SARA AM differently; or the behavior of a conjunct consonant in a script such as Devanagari may depend on the font in use. So the typographic character represents a unit of the writing system—such as a Latin alphabetic letter (including its diacritics), Hangul syllable, Chinese ideographic character, Myanmar syllable cluster—that is indivisible with respect to a particular typographic operation (line-breaking, first-letter effects, tracking, justification, vertical arrangement, etc.).
`UAX29$r は、 `書記素~cluster@ ( `grapheme cluster^en )と呼ばれる,`~typographic文字$を近似する単位を定義している。 ~UAは、 自身の`~typographic文字~単位$の基礎として, `UAX29$r にて定義される `拡張d書記素~cluster^em( `extended grapheme cluster^en ) を利用するモノトスル( `旧来の書記素~cluster^em( `legacy grapheme cluster^en ) ではなく)。 しかしながら,~UAは、 ~typographic慣習からの要求に応じて,定義を誂えるベキである — 既定の規則は、 必ずしも[ 適切/理想的 ]とは限らず,必要に応じて[ 演算に依存して,異なるものに誂える ]ものと期待されているので。 ◎ Unicode Standard Annex #29: Text Segmentation defines a unit called the grapheme cluster which approximates the typographic character. [UAX29] A UA must use the extended grapheme cluster (not legacy grapheme cluster), as defined in UAX29, as the basis for its typographic character unit. However, the UA should tailor the definitions as required by typographic tradition since the default rules are not always appropriate or ideal—and is expected to tailor them differently depending on the operation as needed.
注記: そのような誂え用の規則は、 ~CSSの視野から外れる。 ◎ Note: The rules for such tailorings are out of scope for CSS.
標準な植字の実施に要求される,`~typographic文字~単位$の誂え例を以下に挙げる: ◎ The following are some examples of typographic character unit tailorings required by standard typesetting practice:
- ~Myanmarや~Devanagariなど,一部の用字系においては、[ 両端揃え, 行-分断法 ]どちらも,それ用の`~typographic文字~単位$は 1 個の音節~全体であり、 複数個の`書記素~cluster$を含み得る。 ◎ In some scripts such as Myanmar or Devanagari, the typographic character unit for both justification and line-breaking is an entire syllable, which can include more than one Unicode grapheme cluster. [UAX29]
-
~Thaiや~Laoなどの他の用字系においては、 行-分断法~用の`~typographic文字$は, ~Unicodeの既定の`書記素~cluster$に合致する一方で、 `字間隔法$に関連な単位は,`書記素~cluster$`よりも細かい^emので、 間隔法を挿入し得るようになる前に, 分解形その他の代用を要することがある。 ◎ In other scripts such as Thai or Lao, even though for line-breaking the typographic character matches Unicode’s default grapheme clusters, for letter-spacing the relevant unit is less than a Unicode grapheme cluster, and may require decomposition or other substitutions before spacing can be inserted. [UAX29]
一例として, ~Thaiの単語 `#0E04#0E33^lt ( `0E04^U + `0E33^U ) 内に適正な字間隔を入れるためには、 `0E33^U を[ `0E4D^U + `0E32^U ]に分解する必要があり,それから `0E32^gU の前に余分な字間隔が挿入される: `#0E04#0E4D #0E32^lt ◎ For instance, to properly letter-space the Thai word คำ (U+0E04 + U+0E33), the U+0E33 needs to be decomposed into U+0E4D + U+0E32, and then the extra letter-space inserted before the U+0E32: คํ า.
もう少し複階的な例として、 `#0E19#0E49#0E33^lt ( `0E19^U + `0E49^U + `0E33^U ) がある。 この事例における ~Thaiに対する通常の形状付けでは、 まず `0E33^U を[ `0E4D^U + `0E32^U ]に分解してから,[ `0E4D^U と `0E49^U ]を入替えて[ `0E19^U + `0E4D^U + `0E49^U + `0E32^U ]を与える。 次に、 先に~~述べたとおり,余分な字間隔が `0E32^gU の前に挿入される: `#0E19#0E4D#0E49 #0E32^lt ◎ A slightly more complex example is น้ำ (U+0E19 + U+0E49 + U+0E33). In this case, normal Thai shaping will first decompose the U+0E33 into U+0E4D + U+0E32 and then swap the U+0E4D with the U+0E49, giving U+0E19 + U+0E4D + U+0E49 + U+0E32. As before the extra letter-space is then inserted before the U+0E32: นํ้ า.
- 縦書き植字 `CSS-WRITING-MODES-4$r から要求される誂えもある。 例えば, `upright$v ~textを植字するときは、 ~Tibetanの[ tsek / shad ]~markは — 独立な`~typographic文字~単位$として扱うことなく — 先行する`書記素~cluster$と~~一緒に保たれる。 ◎ Vertical typesetting can also require tailoring. For example, when typesetting upright text, Tibetan tsek and shad marks are kept with the preceding grapheme cluster, rather than treated as an independent typographic character unit. [CSS-WRITING-MODES-4]
`~typographic字l単位@ ( `typographic letter unit^en ), (または,この仕様の目的においては)略して `字l@ ( `letter^en )とは、 `~typographic文字~単位$のうち,`~Unicode字種$[ `Letter^uc / `Number^uc ]に属するものを指す。 `~typographic文字~単位$の各種~Unicode~propを決定する方法については、 `§ 文字の~prop@#character-properties$ を見よ。 ◎ A typographic letter unit (or letter for the purpose of this specification) is a typographic character unit belonging to one of the Letter or Number general categories. See Appendix E: Characters and Properties for how to determine the Unicode properties of a typographic character unit.
`~typographic文字~単位$が要素~境界で分割0されている場合、 その描画~特性は定義されない。 理想的には,各~成分は、[ 一体としての`~typographic文字~単位$の正しい形状付けと位置決め ]を保守しながら,[ それぞれが属する要素の各~propによる整形~要件 ]に則って描画されるベキである。 しかしながら,これは、 常にアリになるとは限らず,[ 各~部における整形の相違の資質, 利用-中にある~font技術の能力 ]に依存する。 したがって,そのような`~typographic文字~単位$は、 境界の一方の側に属するように描画されることも,何らかの近似で両者に属するように描画されることもある。 作者には、 `書記素~cluster$や合字を要素~境界で分割0すると[ 一貫しない/欲されない ]結果になり得ることを警告しておく。 ◎ The rendering characteristics of a typographic character unit divided by an element boundary is undefined. Ideally each component should be rendered according to the formatting requirements of its respective element’s properties while maintaining correct shaping and positioning of the typographic character unit as a whole. However, depending on the nature of the formatting differences between its parts and the capabilities of the font technology in use, this is not always possible. Therefore such a typographic character unit may be rendered as belonging to either side of the boundary, or as some approximation of belonging to both. Authors are forewarned that dividing grapheme clusters or ligatures by element boundaries may give inconsistent or undesired results.
1.5. ~text処理
~CSSは`~Unicode$citeの上に築かれている。 ~Unicodeを~supportする~UAは、 ~CSSにより明示的に上書きされた所を除き,~Unicodeの中核~標準を成すすべての規範的な要件を固守するモノトスル。 ~Unicode以外の~text符号化法~modelに基づいて実装されている~UAであっても、[ 適切な対応付け, 相似的な挙動 ]があると見做す下で,同じ~text取扱い要件を充足することが期待される。 ◎ CSS is built on Unicode. [UNICODE] UAs that support Unicode must adhere to all normative requirements of the Unicode Core Standard, except where explicitly overridden by CSS. UAs implemented on the basis of a non-Unicode text encoding model are still expected to fulfill the same text handling requirements by assuming an appropriate mapping and analogous behavior.
~text処理(空白~処理, ~text変形n, 行-分断法, 等々)用に文字の隣接性を決定する目的においては — したがって、 一般に,この仕様の中では — [ 文字~並びに挟まれた`行内~box$の境界/`~flow外$にある要素 ]は,無視するモノトスル。 ただし,~text形状付けに関しては、 `§ 要素~境界をまたがる形状付け@#boundary-shaping$ を見よ。 ◎ For the purpose of determining adjacency for text processing (such as white space processing, text transformation, line-breaking, etc.), and thus in general within this specification, intervening inline box boundaries and out-of-flow elements must be ignored. With respect to text shaping, however, see § 8.7 Shaping Across Element Boundaries.
2. ~textの変形-法
2.1. 大小~変形: `text-transform^p ~prop
◎名 `text-transform@p ◎値 `none$v | [ `capitalize$v | `uppercase$v | `lowercase$v ] || `full-width$v || `full-size-kana$v | `math-auto$v ◎初 `none^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 ~textを~style付け目的で変形する。 これは、[ 下層の内容に対する効果は無い/ ~copy-pasteされる素な~textの内容には影響しない ]モノトスル。 ◎ This property transforms text for styling purposes. It has no effect on the underlying content, and must not affect the content of a plain text copy & paste operation.
作者は、 意味論上の目的において, `text-transform$p に依拠してはナラナイ — 正しい[ 大小変換/意味論 ]は、 ~source文書の[ ~text/~markup ]内に符号化されるベキである。 ◎ Authors must not rely on text-transform for semantic purposes; rather the correct casing and semantics should be encoded in the source document text and markup.
各種 値の意味は: ◎ Values have the following meanings:
- `none@v
- 効果なし。 ◎ No effects.
- `capitalize@v
- 各~単語に対し, 最初の`~typographic字l単位$を — それが小文字であるならば — 題字~化する。 他の文字は影響されない。 ◎ Puts the first typographic letter unit of each word, if lowercase, in titlecase; other characters are unaffected.
- 【 “小文字である” : おそらく、 この記述のみからは真意は伝わらないであろう — `詳細@https://lists.w3.org/Archives/Public/www-style/2015Mar/0144.html$ 】【 題字( `titlecase^en ): 当の言語において,~~主要な単語の頭字を大文字~化するなどの~~慣習。 表題などによく用いられる。 】
- `uppercase@v
- すべての`字l$を大文字~化する。 ◎ Puts all letters in uppercase.
- `lowercase@v
- すべての`字l$を小文字~化する。 ◎ Puts all letters in lowercase.
- `full-width@v
- すべての`~typographic文字~単位$を — それに対応する`全角~形$があるならば — 全角~形にする。 ◎ Puts all typographic character units in full-width form. If a character does not have a corresponding full-width form, it is left as is.\
- この値は、 概して,~Latin[ 字l/数字 ]を[ それが表語-文字であったかのように植字する ]ために利用される。 ◎ This value is typically used to typeset Latin letters and digits as if they were ideographic characters.
- `full-size-kana@v
- すべての`小書き~Kana$文字を等価な`全部的~sizeの~Kana$へ変換する。 ◎ Converts all small Kana characters to the equivalent full-size Kana.\
- この値は、 概して,`~ruby注釈$を成す~text用に利用される — ~ruby内に小さい~font~sizeが利用されて判読し難くなるのを補うため、 作者は,小書き~Kanaをすべて大きい~Kanaに描かせたいと求めることもある。 ◎ This value is typically used for ruby annotation text, where authors may want all small Kana to be drawn as large Kana to compensate for legibility issues at the small font sizes typically used in ruby.
- `math-auto@v
- `MATHML-CORE$r § 新たな `text-transform^p 値 を見よ。 ◎ See MathML Core § 4.2 New text-transform value.
日本語~text内の略語( `abbr^e )に利用されている~ASCII文字を、 全角~異体に変換して, 表語文字の様に~lay-outして, 行l分断する例: ◎ The following example converts the ASCII characters used in abbreviations in Japanese text to their full-width variants so that they lay out and line break like ideographs:
abbr:lang(ja) { text-transform: full-width; }
注記: `text-transform$p の目的は、 文書の意味論に影響することなく,大小変換による変形nを呈示において許容することにある。 特に, `text-transform$p による大小変換~演算は、 情報欠損を伴うので,~textの意味を歪めることもあることに注意。 ~accessibility~UIは,[ 描画される~textの見かけ上の大小変換 ]を利用者に伝達するよう望むこともあろうが、[ 変形された~textに依拠して,文書の下層の意味を正確aに表現する ]ことはできない。 ◎ Note: The purpose of text-transform is to allow for presentational casing transformations without affecting the semantics of the document. Note in particular that text-transform casing operations are lossy, and can distort the meaning of a text. While accessibility interfaces may wish to convey the apparent casing of the rendered text to the user, the transformed text cannot be relied on to accurately represent the underlying meaning of the document.
この例では、 ~textの最初の行lは,視覚-効果として大字~化される。 ◎ In this example, the first line of text is capitalized as a visual effect.
section > p:first-of-type::first-line { text-transform: uppercase; }
行l分断の位置は~layoutに依存するので、 この効果は,~source文書の中には記せない。 のみならず,この大字~化は、 意味論上の区別を反映しておらず,段落の読みに影響することは意図されない — したがって,それは呈示~層に属する。 ◎ This effect cannot be written into the source document because the position of the line break depends on layout. But also, the capitalization is not reflecting a semantic distinction and is not intended to affect the paragraph’s reading; therefore it belongs in the presentation layer.
`~ruby注釈$を成す~textの~sizeは,対応する`~ruby基底$を成す~textの半分になるが、 この例では,`小書き~Kana$に代えて`全部的~sizeの~Kana$を利用するように変形される。 ◎ In this example, the ruby annotations, which are half the size of the main paragraph text, are transformed to use regular-size kana in place of small kana.
rt { font-size: 50%; text-transform: full-size-kana; }
:is(h1, h2, h3, h4) rt { text-transform: none; /*
大きい~text用には未設定にする
◎
unset for large text
*/ }
この変形nは、[ 活字~sizeが小さいときでも,そのような字lを見易くする ]が,~textを歪めることに注意。 読者は、 適切な箇所で,それらを脳内で`小書き~Kana$に読み替える必要がある — ~Latinにおいて[ 文字 “U” がすべて “V” の様な見かけで刻まれた語 ]を読むときと似たようなものである。 ◎ Note that while this makes such letters easier to see at small type sizes, the transformation distorts the text: the reader needs to mentally substitute small kana in the appropriate places—not unlike reading a Latin inscription where all “U”s look like “V”s.
例えば,次の~sourceに
`text-transform$p: `full-size-kana$v
が適用された場合、
注釈された “~~十” の正しい読みと意味を与える注釈は,
`ten^en を意味する “じゅう” ではなく
`liberty^en を意味する “じゆう” と読まれることになる。
◎
For example, if text-transform: full-size-kana were applied to the following source, the annotation would read “じゆう” (jiyū), which means “liberty”, instead of “じゅう” (jū), which means “ten”, the correct reading and meaning for the annotated “十”.
<ruby>~~十<rt>じゅう</ruby>
2.1.1. 対応付け規則
`capitalize$v に対し,何が “単語” を成すかは~UAに依存する — そのような単語~境界の決定-法には、 `UAX29$r が示唆される(要求されてはいないが)。 [ 行内~要素の境界/`~flow外$にある要素 ]は、[ `text-transform$p に単語~境界を導入しない ]かつ[ そのような単語~境界を決定するときには無視する ]モノトスル。 ◎ For capitalize, what constitutes a “word“ is UA-dependent; [UAX29] is suggested (but not required) for determining such word boundaries. Out-of-flow elements and inline element boundaries must not introduce a text-transform word boundary and must be ignored when determining such word boundaries.
注記: 作者は、 `capitalize$v が言語に特有な題字~化~規約に従うこと (~Englishにおいては冠詞は飛ばすなど) には依存できない。 ◎ Note: Authors cannot depend on capitalize to follow language-specific titlecasing conventions (such as skipping articles in English).
~UAは、 ~Unicode文字に対し,[ `~Unicode$cite標準 § `Default Case Algorithms^en(既定の文字大小~algo) にて定義される,全部的な大小~対応付け ]を利用するモノトスル — 条件付き大小変換~規則が在れば それも含め。 言語に特有な適切な規則が在れば、[ `文書~言語$の規則に則って,要素の`内容~言語$が既知である ]とき, そのときに限り,それも適用するモノトスル。 これらは、 必要最小限であり,~Unicodeの `SpecialCasing.txt@~UNIDATA/SpecialCasing.txt$ による言語に特有な規則を含む。 ◎ The UA must use the full case mappings for Unicode characters, including any conditional casing rules, as defined in the Default Case Algorithms section of The Unicode Standard. [UNICODE] If (and only if) the content language of the element is, according to the rules of the document language, known, then any appropriate language-specific rules must be applied as well. These minimally include, but are not limited to, the language-specific rules in Unicode’s SpecialCasing.txt.
例えば~Turkishには、 ~dot付きの “i” ( `İ^lt / `i^lt )と, そうでない “i” ( `I^lt / `ı^lt )がある。 よって,通例の `I^lt 対 `i^lt による大小~対応付けは、[ ~Englishには存在しない,[ ~dotなし, ~dotあり ]それぞれに~~対応する 2 つの対応付け ]に置換される。 この対応付けは、 `内容~言語$が[ 現代の~Latinに基づく`書記~体系$で記された~Turkish(より~~一般には、 ~Turkicのうち,~Turkishの大小変換~規則を利用するもの) ]である場合に限り,効果を発揮するモノトスル — 他の言語の下では、 通例の `I^lt 対 `i^lt による対応付けが要求される。 よって,この規則は、 ~Unicodeの `SpecialCasing.txt@~UNIDATA/SpecialCasing.txt$ ~fileでは,条件付きとして定義される。 ◎ For example, in Turkish there are two “i”s, one with a dot—“İ” and “i”—and one without—“I” and “ı”. Thus the usual case mappings between “I” and “i” are replaced with a different set of mappings to their respective dotless/dotted counterparts, which do not exist in English. This mapping must only take effect if the content language is Turkish written in its modern Latin-based writing system (or another Turkic language that uses Turkish casing rules); in other languages, the usual mapping of “I” and “i” is required. This rule is thus conditionally defined in Unicode’s SpecialCasing.txt file.
[ `全角~形@ ( `full-width form^en )/ `半角~形@ ( `half-width form^en ) ]の定義は、 `UAX11$r にて見出せる。 `全角~形$への対応付けは、 `~Unicode文字~database$citeにおける `Decomposition_Mapping^c 内の[ `wide^e / `narrow^e ]~tagを伴う符号位置を取り出すことで定義される。 この対応付けは: ◎ The definition of full-width and half-width forms can be found in Unicode Standard Annex #11: East Asian Width. [UAX11] The mapping to full-width form is defined by taking code points with the <wide> or the <narrow> tag in their Decomposition_Mapping in Unicode Standard Annex #44: Unicode Character Database. [UAX44]\
- `narrow^e ~tagを伴う符号位置は、 その分解形(から `narrow^e ~tagを除いたもの)に対応付けられる。 ◎ For the <narrow> tag, the mapping is from the code point to the decomposition (minus <narrow> tag), and\
- `wide^e ~tagを伴う符号位置は、 その分解形(から `wide^e ~tagを除いたもの)に戻すように対応付けられる。 ◎ for the <wide> tag, the mapping is from the decomposition (minus the <wide> tag) back to the original code point.
`小書き~Kana$から`全部的~sizeの~Kana$への対応付けは、 `§ 小書き~Kanaの対応付け@#small-kana$ にて定義される。 ◎ The mappings for small Kana to full-size Kana are defined in Appendix G: Small Kana Mappings.
2.2. 単語↔間の延張-法: `word-space-transform^p ~prop
◎名 `word-space-transform@p ◎値 `none$v | [ `space$v | `ideographic-space$v ] && `auto-phrase$v? ◎初 `none$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎順 文法に従う ◎ア 離散的 ◎表終一部の[ 言語/書記~体系 ]には、 単語を区切る代替な仕方がある — 異なる分離-用の文字や,ときには まったく可視でない文字を利用して。 この~propは、[ ~markupを変更する必要なく,描画を別の~styleへ変更する ]ことを作者に許容する。 ◎ Some languages and writing systems have alternative ways of delimiting words, either using different separating characters, or sometimes no visible character at all. This property allows authors to change the rendering from one style to another without needing to change the markup.
- `none@v
- この~propによる効果は無い。 ◎ This property has no effect.
- `space@v
- この要素の子を成す`~text連列$の中の各`延張-可能な分離子$は、 `0020^U `SPACE^cn に置換される。 ◎ Expandable separators within the child text of this element are replaced by U+0020 SPACE.
- `ideographic-space@v
- この要素の子を成す`~text連列$の中の各`延張-可能な分離子$は、 `3000^U `IDEOGRAPHIC SPACE^cn に置換される。 ◎ Expandable separators within the child text of this element are replaced by U+3000 IDEOGRAPHIC SPACE.
- `auto-phrase@v
-
~AND↓ が満たされる場合…
- この値は省略されていない
- この要素の`内容~言語$は既知である
- ~UAは、 前項の言語~用の言語上の分析を~supportする
…場合、 ~UAは,次に従うモノトスル ⇒ `句~境界を検出-$する — 検出された境界に,すでに[ `単語~分離子$, `その他の~space分離子$, `200B^U `ZERO WIDTH SPACE^cn ]が生じていない場合、 そこに,`~virtualな延張-可能な分離子$を挿入する。
他の場合、 `~virtualな延張-可能な分離子$は無い。
◎ If the content language is known and the user agent supports linguistic analysis for this language, the user agent must detect phrase boundaries. If a word-separator character, other space separator, or U+200B ZERO WIDTH SPACE character does not already occur at that boundary, then the UA must insert a virtual expandable separator. ◎ If this value is omitted, or if the content language is unknown, or if the user agent does not support detecting phrase boundaries for that language, there are no virtual expandable separator.
この~propの目的においては、 次に挙げるものが `延張-可能な分離子@ とされる: ◎ For the purpose of this property, expandable separators are any of:
- `200B^U `ZERO WIDTH SPACE^cn ◎ U+200B ZERO WIDTH SPACE characters
- `wbr$e 要素 ◎ wbr elements
- `~virtualな延張-可能な分離子$ ◎ virtual expandable separators
`~virtualな延張-可能な分離子@ とは、 ~UAが検出した構文上の境界であって, 当の~text内で[ 他では~source文書~内に生じない`延張-可能な分離子$ ]を表現するものである — その効果は、 この~prop以外には無い。 ◎ A virtual expandable separator is a UA-detected syntactic boundary in the text that represents an expandable separator not otherwise occuring in the source document. It has no effect other than for this property.
~UAは、 `強制d行l分断$の[ 直前/直後 ]†にある`延張-可能な分離子$を置換しないモノトスル。 († そこに挟まれた行内~box境界, 行内~boxの[ `margin$p / `border$p / `padding$p ]は無視する。) ◎ The user agent must not replace expandable separators immediately preceding or following a forced line break (ignoring any intervening inline box boundaries, and associated margin/border/padding).
注記: `~virtualな延張-可能な分離子$ %分離子 が 1 個以上の行内~box境界と~~一致している場合、 %分離子 は,それらのうち`最も外縁な~box@#boundary-outermost$ %~box の境界に配置される。 したがって, %~box の親~boxの `word-space-transform$p1 の`使用~値$が `none$v1 になる場合、 %分離子 は親~box内に配置され,延張されない。 ◎ Note: Because virtual expandable separators are placed in the outermost element that participates in an inline box boundary, if one would coincide with boundary of an inline box whose parent box has a used value of word-space-transform: none, that particular virtual expandable separator is not expanded, since it would be placed in the parent box.
この~propは、 `text-transform$p 同様に,~style付け目的に限り~textを変形する。 これは、[ 下層の内容に対する効果は無い/ ~copy-pasteされる素な~textの内容には影響しない ]モノトスル。 ◎ Like text-transform, this property transforms text for styling purposes only. It has no effect on the underlying content, and must not affect the content of a plain text copy & paste operation.
年少者~向けの日本語~本は, 大人~向けのそれと違って、 読みを手助けするため,文節↔間に~spaceを~~入れることが多い。 失読症を~~抱える人々も, この~styleで読む方が容易と見出す傾向にある。 ◎ Unlike books for adults, Japanese books for young children often feature spaces between sentence segments, to facilitate reading. People with dyslexia also tend to find this style easier to read.
特定0の~style付けは無い下では、 次の文は,下に図画化されるとおりに描画されよう。 ◎ Absent any particular styling, the following sentence would be rendered as depicted below.
<p>むかしむかし、<wbr>あるところに、<wbr>おじいさんと<wbr>おばあさんが<wbr>すんでいました。
むかしむかし、~wbrあるところに、~wbrおじいさ んと~wbrおばあさんが~wbrすんでいました。【! lang="ja"】
【 縦棒は `wbr^e を指示する。 以下も同様。 】
句に基づく間隔法は、 次の~CSSで達成できる: ◎ Phrase-based spacing can be achieved with the following css:
p { word-space-transform: ideographic-space; }
むかしむかし、 ~wbrあるところに、 ~wbrおじ いさんと ~wbrおばあさんが ~wbrすんでいまし た。【! lang="ja"】
別の共通的な変種は、 許容-可能な行l分断をこれらの句~境界に限るよう,追加的に制約する。 上と同じ~markupを利用するとき、 これは,次の~CSSで容易に達成できる: ◎ Another common variant additionally restricts the allowable line breaks to these phrase boundaries. Using the same markup, this is easily achieved with the following css:
p { word-break: keep-all; word-space-transform: ideographic-space; }
むかしむかし、 ~wbrあるところに、 ~wbrおじいさんと ~wbrおばあさんが ~wbrすんでいました。 【! lang="ja"】
~markupにおいて `200B^U ではなく `wbr$e を利用することは、 ~source~codeをもっと可読にすることに加えて, 区切子たちを異なる~groupに~class化することも作者に許容する。 ◎ In addition to making the source code more readable, using wbr rather than U+200B in the markup also allow authors to classify the delimiters into different groups.
次の例では、 `wbr$e 要素は,[ 単語を区切る所では~markされない/ 句も区切る所では~class `p^css で~markされる ]。 ◎ In the following example, wbr elements are either unmarked when they delimit a word, or marked with class p when they also delimit a phrase.
<p>らいしゅう<wbr>の<wbr>じゅぎょう<wbr>に<wbr class=p >たいこ<wbr>と<wbr>ばち<wbr>を<wbr class=p >もって<wbr>きて<wbr>ください。
これを利用すれば、[ 共通的な,句に基づく間隔法を可能化する ]のみならず[ 失読症を~~抱える人々に選好される見込みが高い, 多義性を抑制するための単語ごとの間隔法 ]や他の変種 — [ 句に基づく間隔法と単語に基づく折返ng ]の組合nなど — もアリになる。 ◎ Using this, it is possible not only to enable the rather common phrase-based spacing, but also word-by-word spacing that is likely to be preferred by people with dyslexia to reduce ambiguities, or other variants such as a combination of phrase-based spacing and of word-based wrapping.
2.3. 演算の順序
複数の変形nを適用する必要がある場合、 次の順序で適用される: ◎ When multiple transformations need to be applied, they are applied in the following order:
- `word-space-transform$p ◎ word-space-transform
-
`text-transform$p1 :
- `capitalize$v1 / `uppercase$v1 / `lowercase$v1
- `full-width$v1
- `full-size-kana$v1
[ 単語~間隔の変形n, `~text変形n$ ]が起こるのは、[ `空白の縮約-法と変形n$より後 ]かつ[ `空白の削りと位置決め$より前 ]である。 このことは、 一例として[ `~space$のうち, `full-width$v により `3000^U `IDEOGRAPHIC SPACE^cn へ変形されるもの ]は,`保全d空白$に限られることを意味する。 ◎ Word space transformation and text transformation happen after § 4.3.1 Phase I: Collapsing and Transformation but before § 4.3.2 Phase II: Trimming and Positioning. This means for instance that full-width only transforms spaces (U+0020) to U+3000 IDEOGRAPHIC SPACE within preserved white space.
注記: `§ ~text演算の処理~順序@#order$ にて定義されるとおり、 変形-法は,行-分断法と他の整形~演算に影響することに注意。 ◎ Note: As defined in Appendix A: Text Processing Order of Operations, transforming affects line-breaking and other formatting operations.
3. 空白と折返ng: `white-space^p ~prop
◎名 `white-space@p ◎値 `normal$v | `pre$v | `pre-wrap$v | `pre-line$v | `white-space-collapse$tp || `text-wrap-mode$tp || `white-space-trim$tp ◎初 `normal^v ◎適 ~text ◎継 個々の~propを見よ ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、[ `white-space-collapse$p, `text-wrap-mode$p, `white-space-trim$p ]用の略式であり, 次の 2 つを指定する: ◎ This property is a shorthand for white-space-collapse, text-wrap-mode, and white-space-trim. It specifies two things:
- `空白$を縮約するかどうか, どう縮約するか — `§ 空白~処理@#white-space-processing$を見よ。 ◎ whether and how white space is collapsed; see White Space Processing
- 各~行lを非強制な`自動折返し機会$の所で`折返して$もヨイかどうか — `§ ~textの折返n法@#text-wrapping$, `§ 行-分断法@#line-breaking$ を見よ。 ◎ whether lines may wrap at unforced soft wrap opportunities; see § 5 Text Wrapping and Line Breakin
注記: この略式は、 継承-可能な~propと継承-不能な~propを組合せる。 これが問題になる場合、 ~CSS~WGに伝えられたし。 ◎ Note: This shorthand combines both inheritable and non-inheritable properties. If this is a problem, please inform the CSSWG.
他が指定されない限り、 省略された`下位prop$は,各自の`初期~値$に設定される。 ◎ Unless otherwise specified, any omitted longhand is set to its initial value.
次の表tに,この`略式~prop$用の特別な値から各`下位prop$用の等価な値への規範的な対応付けを与える: ◎ The following table gives the normative mapping of the values of the shorthand’s special keywords to their equivalent longhand values.
`white-space$p1 | `white-space-collapse$p | `text-wrap-mode$p | `white-space-trim$p |
---|---|---|---|
`normal@v | `collapse^v | `wrap^v | `none^v |
`pre@v | `preserve^v | `nowrap^v | `none^v |
`pre-wrap@v | `preserve^v | `wrap^v | `none^v |
`pre-line@v | `preserve-breaks^v | `wrap^v | `none^v |
注記: 行lの末尾にある[ `保全d空白$/`その他の~space分離子$ ]は、 一部の事例では`吊下がる$こともあり,[ `内在的~sizing$のために測定されるかどうか ]に影響し得る。 ◎ Note: In some cases, preserved white space and other space separators can hang when at the end of the line; this can affect whether they are measured for intrinsic sizing.
各種 `white-space$p 値の挙動を, 次の規範的でない表tに要約する: ◎ The following informative table summarizes the behavior of various white-space values:
改行文字 | ~spaceと~tab | ~textの折返ng | 行末にある~space | 行末にある`その他の~space分離子$ | |
---|---|---|---|---|---|
`normal$v | 縮約する | 縮約する | 折返n可 | 除去する | 吊下げる |
`pre$v | 保全する | 保全する | 折返n不可 | 保全する | 折返さない |
`nowrap^v † | 縮約する | 縮約する | 折返n不可 | 除去する | 吊下げる |
`pre-wrap$v | 保全する | 保全する | 折返n可 | 吊下げる | 吊下げる |
`break-spaces^v † | 保全する | 保全する | 折返n可 | 折返す | 折返す |
`pre-line$v | 保全する | 縮約する | 折返n可 | 除去する | 吊下げる |
【† 下位prop[ `text-wrap-mode$p1 用の値 `nowrap$v1, `white-space-collapse$p1 用の値 `break-spaces$v1 ]が この表tに挙げられているのは、 これらの下位propが無かった`~level 3$ までは, この~prop用の値として定義されていたことによる。 】
◎ |New Lines|Spaces and Tabs|Text Wrapping|End-of-line spaces|End-of-line other space separators normal|Collapse|Collapse|Wrap|Remove|Hang pre|Preserve|Preserve|No wrap|Preserve|No wrap nowrap|Collapse|Collapse|No wrap|Remove|Hang pre-wrap|Preserve|Preserve|Wrap|Hang|Hang break-spaces|Preserve|Preserve|Wrap|Wrap|Wrap pre-line|Preserve|Collapse|Wrap|Remove|Hang4. 空白~処理と制御~文字
文書の~source~textは、[ 最終的な描画には関連しない整形 ]を包含することが多い — 例えば,編集を容易にするため、 `~sourceを何~区分(行l)かに分断し@https://rhodesmill.org/brandon/2012/one-sentence-per-line/$た上で, `~tab$や`~space$などの`空白$を追加して~source~codeを字下げするなど。 ~CSSによる空白~処理は (それは、[ `white-space-collapse$p, `white-space-trim$p ]~propで制御される)、 作者がそのような整形の解釈を制御して,文書を描画するときに[ 保全する/取去る ]ことを~~可能にする。 ~CSSによる空白~処理が`空白$を解釈するのは、 描画~用に限られる — 下層の文書~dataに効果が及ぶことはない。 ◎ The source text of a document often contains formatting that is not relevant to the final rendering: for example, breaking the source into segments (lines) for ease of editing or adding white space characters such as tabs and spaces to indent the source code. CSS white space processing allows the author to control interpretation of such formatting: to preserve or collapse it away when rendering the document. White space processing in CSS (which is controlled with the white-space-collapse and white-space-trim properties) interprets white space characters only for rendering: it has no effect on the underlying document data.
注記: ~textを成す各~区分は、 文書~言語に依存して,[ 特定0の改行文字~並び (`~LF$や[ `~CR$, `~LF$ ]並びなど) により分離される ]ことも[ 何らかの他の仕組み ( SGML の[ `RECORD-START^c/`RECORD-END^c ]~tokenなど) により区切られる ]こともある。 ◎ Note: Depending on the document language, segments can be separated by a particular newline sequence (such as a line feed or CRLF pair), or delimited by some other mechanism, such as the SGML RECORD-START and RECORD-END tokens.
~CSS処理においては、 ~text内の各[ 文書~言語が定義する “区分~分断” や “改行文字” / あるいは何も定義されていない場合は`~LF$ ]は, `区分~分断@ ( `segment break^en )として扱われる — それらは、 描画~時には `white-space$p ~propに指定されたとおりに解釈される。 ◎ For CSS processing, each document language–defined “segment break” or “newline sequence”—or if none are defined, each line feed (U+000A)—in the text is treated as a segment break, which is then interpreted for rendering as specified by the white-space property.
~HTMLの事例では、 各 `改行文字@~HTMLwriting#syntax-newlines$は, ~DOM内の表現~用には 1 個の`~LF$に`正規化される@~INFRA#normalize-newlines$ので、 ~HTML文書が~DOM~treeとして表現されるとき,各`~LF$は`区分~分断$として扱われる。 `HTML$r `DOM$r ◎ In the case of HTML, newlines are normalized to line feed characters (U+000A) for representation in the DOM, so when an HTML document is represented as a DOM tree each line feed (U+000A) is treated as a segment break. [HTML] [DOM]
注記: ほとんどの共通的な~CSS実装においては、 ~HTMLは,直に~styleされない — 代わりに~DOM~treeの中に処理されてから,~styleが適用される。 ~HTMLと違って、 ~DOMは`~CR$に特定0の意味を与えないので,それらは`区分~分断$として扱われない。 `~CR$が~HTML構文解析~以外の手段により~DOMの中へ挿入された場合、 それらは以下に定義されるとおりに扱われるようになる。 ◎ Note: In most common CSS implementations, HTML does not get styled directly. Instead, it is processed into a DOM tree, which is then styled. Unlike HTML, the DOM does not give any particular meaning to carriage returns (U+000D), so they are not treated as segment breaks. If carriage returns (U+000D) are inserted into the DOM by means other than HTML parsing, they then get treated as defined below.
注記: 文書の構文解析器は、 `区分~分断$を正規化するのみならず,[ 他の~space文字も縮約したり,~markup規則に則って空白を処理する ]こともあることに注意。 ~CSS処理は,この構文解析より`後に生じる^emので、 ~style付けのために これらの文字を戻すことはアリでない。 この制限の影響により、 下に指定される挙動のうち一部は,~UAに依存することもある。 ◎ Note: A document parser might not only normalize any segment breaks, but also collapse other space characters or otherwise process white space according to markup rules. Because CSS processing occurs after the parsing stage, it is not possible to restore these characters for styling. Therefore, some of the behavior specified below can be affected by these limitations and may be user agent dependent.
注記: `縮約-可能$な`空白$のみからなる`匿名$な`塊$は、 描画~treeから除去されることに注意。 よって、 `塊~level$の要素の周囲に そのような`空白$が在れば,取去られる。 `CSS2$r `§ 匿名~塊~box@~CSS2J#anonymous-block-level$【!#anonymous】 を見よ。 ◎ Note: Anonymous blocks consisting entirely of collapsible white space are removed from the rendering tree. Thus any such white space surrounding a block-level element is collapsed away. See CSS 2.1 § 9.2.2.1 Anonymous inline boxes. [CSS2]
制御~文字( `~Unicode字種$ `Cc^uc )のうち[ `~tab$, `~LF$, `~CR$, `区分~分断$を形成する並び ]以外のものに対しては、 ~UAは,次を行うモノトスル: ◎ Control characters (Unicode category Cc)—other than tabs (U+0009), line feeds (U+000A), carriage returns (U+000D) and sequences that form a segment break—\
- 可視な~glyphとして描画する — ~font内に見出された~glyphは可視でない場合には、 それを合成した上で。 ◎ must be rendered as a visible glyph which the UA must synthesize if the glyphs found in the font are not visible,\
-
他に関しては、[ `~Unicode字種$ `Other Symbols^uc( `So^uc )や, `Common^uc `用字系$ ]に属する文字と同じに扱う — ~UAは、 次に挙げるどれを行ってもヨイ:
- ~fontにて,当の制御~文字~用に特定的に供されている~glyphを利用する
- `Control Pictures^en ~block 【 `2400^U 〜 `243F^U 】 にて供される,対応する記号を成す~glyphで代用する
- その符号位置~値の視覚的な表現を生成する
- 何らかの他の~methodを利用して,適切な可視な~glyphを供する
`~Unicode$citeから要求されるとおり、 ~supportしない `Default_ignorable^uc 文字は,~text描画~用には無視するモノトスル。 ◎ As required by Unicode, unsupported Default_ignorable characters must be ignored for text rendering. [UNICODE]
`~CR$は、 すべてに関し,`~space$と同じに扱われる。 ◎ Carriage returns (U+000D) are treated identically to spaces (U+0020) in all respects.
注記: ~HTML文書~用には、 ~source~code内に在る`~CR$は, `構文解析~段階@~HTMLparsing#preprocessing-the-input-stream$ `HTML$r にて`~LF$に`変換される@~INFRA#normalize-newlines$ `INFRA$r ので、 ~CSSにおいては`~CR$として現れることはない。 しかしながら,当の文字が~escape列( `
^c )を利用して符号化されたときは、 `保全され^em,上の規則は観測-可能になる。 ◎ Note: For HTML documents, carriage returns present in the source code are converted to line feeds at the parsing stage (see HTML § 13.2.3.5 Preprocessing the input stream and the definition of normalize newlines in Infra and therefore do no appear as U+000D CARRIAGE RETURN to CSS. [HTML] [INFRA]) However, the character is preserved—and the above rule observable—when encoded using an escape sequence (
).
4.1. 空白の縮約-法: `white-space-collapse^p ~prop
この節は、 まだ論の最中にあり, 将来の草案において変更され得る。 ◎ This section is still under discussion and may change in future drafts.
◎名 `white-space-collapse@p ◎値 `collapse$v | `discard$v | `preserve$v | `preserve-breaks$v | `preserve-spaces$v | `break-spaces$v ◎初 `collapse$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 `空白$が`縮約されるかどうか@#white-space-processing, どう縮約されるか$を指定する — ~UAは、 以下に挙げる各種~値に指図される意味を`空白~処理~規則$に則って解釈するモノトスル: ◎ This property specifies whether and how white space is collapsed. Values have the following meanings, which must be interpreted according to the White Space Processing Rules:
- `collapse@v
- `空白$並びを 1 個 (あるいは、`一部の事例@#line-break-transform$では 0 個) の文字に縮約する。 ◎ This value directs user agents to collapse sequences of white space into a single character (or in some cases, no character).
- `preserve@v
- `空白$並びを縮約しない。 `~LF$などの`区分~分断$は、 `強制d行l分断$として保全する。 ◎ This value prevents user agents from collapsing sequences of white space. Segment breaks such as line feeds are preserved as forced line breaks.
- `preserve-breaks@v
- `collapse$v と同様に連続な`空白$並びを縮約するが、 ~source内の`区分~分断$は,`強制d行l分断$として保全する。 ◎ Like collapse, this value collapses consecutive white space characters, but preserves segment breaks in the source as forced line breaks.
- `preserve-spaces@v
- `空白$並びを縮約しないことに加え、[ `~tab$/`区分~分断$ ]を`~space$に変換する。 (この値は、 ~SVGにおける `xml:space="preserve"^c の挙動を表現することが意図される。) ◎ This value prevents user agents from collapsing sequences of white space, and converts tabs and segment breaks to spaces. (This value is intended to represent the behavior of xml:space="preserve" in SVG.)
- `break-spaces@v
-
次に該当する場合を除き、 `preserve$v の挙動に一致する: ◎ The behavior is identical to that of preserve, except that:
- [ `保全d空白$/`その他の~space分離子$ ]並びは、 行lの末尾も含め,常に空間を占める。 ◎ Any sequence of preserved white space or other space separators always takes up space, including at the end of the line.
- 各[ `保全d空白$/`その他の~space分離子$ ]の後には (直後に別のそれがあっても)、 `自動折返し機会$が存在する。 ◎ A soft wrap opportunity exists after every preserved white space character and after every other space separator (including between adjacent spaces).
- 注記: この値は、 `空白$に因る~overflowが決して生じないことは保証しない。 例えば,行lの長さが 1 個の`空白$が収まるに満たないほど短い場合、 ~overflowは避けれない。 ◎ Note: This value does not guarantee that there will never be any overflow due to white space: for example, if the line length is so short that even a single white space character does not fit, overflow is unavoidable.
- `discard@v
- この値は、 要素~内の すべての空白を “破棄する”。 ◎ This value directs user agents to “discard” all white space in the element.
- これは、 行l分断-機会を保全するか否か? 別個な `hide^v 値が必要か? 行l分断-機会を保全する場合、 それは, `word-space-transform$p 用の値で置換されるべきであろう。 ◎ Does this preserve line break opportunities or no? Do we need a distinct "hide" value? If it preserves line break opportunities, maybe it should be replaced with a word-space-transform value?
空白~処理に因り[ 除去-/縮約- ]されなかった`空白$は、 `保全d空白@ と呼ばれる。 ◎ White space that was not removed or collapsed due to white space processing is called preserved white space.
次の~style規則は、 ~MathMLの空白~処理を実装する: ◎ The following style rules implement MathML’s white space processing:
@namespace m "http://www.w3.org/1998/Math/MathML"; m|* { white-space-collapse: discard; } m|mi, m|mn, m|mo, m|ms, m|mtext { white-space-trim: discard-inner; }
4.2. 空白の削り: `white-space-trim^p ~prop
◎名 `white-space-trim@p ◎値 `none$v | ` discard-before$v || `discard-after$v || `discard-inner$v ◎初 `none$v ◎適 `行内~box$/`塊~容器$ ◎継 されない ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 作者が[ ~boxの[ 始端, 終端 ]における削りの挙動を指定する ]ことを許容する。 各種~値は、 ~UAに対し,次を指図することを意味する: ◎ This property allows authors to specify trimming behavior at the beginning and end of a box. Values have the following meanings:
- `discard-before@v
- [ 要素の始端の直前にある,`縮約-可能$な空白 ]すべてを縮約する。 ◎ This value directs the UA to collapse all collapsible whitespace immediately before the start of the element.
- `discard-after@v
- [ 要素の終端の直後にある,`縮約-可能$な空白 ]すべてを縮約する。 ◎ This value directs the UA to collapse all collapsible whitespace immediately after the end of the element.
- `discard-inner@v
-
`塊~容器$の場合、 次に該当する箇所にあるすべての空白を破棄する: ◎ For block containers this value directs UAs to discard all whitespace at\
- 当の要素の始端から[ 当の要素~内の最初の非-空白~文字より前にある最後の`区分~分断$ ]までにあるもの。 ◎ the beginning of the element up to and including the last segment break before the first non-white-space character in the element\
- [ 当の要素~内の最後の非-空白~文字より後にある最初の`区分~分断$ ]から当の要素の終端までにあるもの。 ◎ as well as to discard all white space at the end of the element starting with the first segment break after the last non-white-space character in the element.\
- `行内~box$の場合、 当の要素の[ 始端にある空白~列, 終端にある空白~列 ]をすべて破棄する。 ◎ For other elements this value directs UAs to discard all whitespace at the beginning and end of the element.
注記: `white-space-trim$p を利用して`文書~空白$を破棄すると、 当の~text内で`自動折返し機会$がどこで生じるかも変化し得る。 ◎ Note: Discarding document white space using white-space-trim can change where soft wrap opportunities occur in the text.
次の~style規則は、 `dt^e 要素を[ ~commaで分離された~list ]として具現化する — それらが~source文書の別々な行lたちに~code化された場合でも: ◎ The following style rules render DT elements as a comma-separated list, even if they are coded on separate lines of the source document:
dt { display: inline; } dt + dt:before { content: ", "; white-space-trim: discard-before; }
次の~style規則は、 予め整形-済みな~blockの[ 開き~tag/閉じ~tag ]に隣接な~source整形~用の空白を除去するが, 要素の実際の内容に適用される[ 字下n用の空白/差挟まれた空白 ]は除去しない: ◎ The following style rule removes source-formatting white space adjacent to the opening/closing tags of a preformatted block, but not any indentation or interleaved white space applied to the actual contents of the element:
pre { white-space: pre; white-space-trim: discard-inner; }
その結果、 次の 2 つの~source~code片は: ◎ This results in the following two source-code snippets:
<pre> some preformatted text </pre>
<pre> some preformatted text</pre>
次と一致する描画になる: ◎ rendering identically as:
some preformatted text
代わりに, 行内~要素に適用した場合: ◎ If instead we apply it to an inline element:
span { white-space: normal; white-space-trim: discard-inner; }
次の 2 つの~source~code片は:
start[<span> some inline text </span>]end
start[<span> some inline text</span>]end
当の要素の実際の内容の【!before】[ 頭部/尾部 ]を成す空白を`すべて^em破棄するよう~UAに指図する。 ◎ this directs the UA to discard all of the leading/trailing white space before the actual contents of the element:
start[some inline text]end
【
差挟まれた空白も縮約されているのは、
`white-space^p: `normal^v
による。
】
`white-space-trim$p 用の空白~処理は、 `空白の縮約-法と変形n$より前に行われる。 ◎ White space processing for white-space-trim takes place before § 4.3.1 Phase I: Collapsing and Transformation.
4.3. 空白~処理~規則
他が指定されない限り、 ~CSSによる空白~処理は,`文書~空白$のみに影響する。 次に挙げるものが, `文書~空白@ ( `document white space character^en )とされる ⇒# `~space$, `~tab$, `区分~分断$ ◎ Except where specified otherwise, white space processing in CSS affects only the document white space characters: spaces (U+0020), tabs (U+0009), and segment breaks.
【 単に “空白” とも称される (他の定義による空白と区別する必要がない所では)。 “空白” は、 原文では[ `white space^en または `white space character^en ]と記されているが、 この訳では “`character^en” は省略して,一律に “空白” と記す。 】
注記: [ `文書~空白$(文書~内容の一部)と見なされる文字たちが成す集合 ]と[ 構文-空白(~CSS構文の一部)と見なされる文字たちが成す集合 ]は、 一致するとは限らないことに注意。 しかしながら、 どちらも[ `~space$, `~tab$, `~LF$ ]を含むので、 ほとんどの作者は,その相違に気付かないであろう。 ◎ Note: The set of characters considered document white space (part of the document content) and those considered syntactic white space (part of the CSS syntax) are not necessarily identical. However, since both include spaces (U+0020), tabs (U+0009), and line feeds (U+000A) most authors won’t notice any differences.
`~Unicode$citeは、[ `~space$, `00A0^U `NO-BREAK SPACE^cn ]の他にも,追加的な~space分離子~文字をいくつか定義している。 この仕様においては、 `~Unicode字種$ `Zs^uc に属する文字のうち[ `~space$, `00A0^U `NO-BREAK SPACE^cn ]以外のものは, `その他の~space分離子@ と総称される。 ◎ Besides space (U+0020) and no-break space (U+00A0), Unicode defines a number of additional space separator characters. [UNICODE] In this specification all characters in the Unicode general category Zs except space (U+0020) and no-break space (U+00A0) are collectively referred to as other space separators.
4.3.1. 空白の縮約-法と変形n
注記: `white-space-trim$p は、 この節に先立って織り込まれる。 ◎ Note: white-space-trim is taken into account prior to this phase.
行内~整形~文脈の中の各 `行内$(`匿名$な`行内~box$も含む)における`空白$は、 `行-分断法$, `双向性による並替ng$に先立って,以下に従って処理される — `双向-整形~文字@ ( `Bidi_Control^uc ~propが伴われた文字 `UAX9$r 【 `Directional Formatting Characters@~UTR/tr9/#Directional_Formatting_Codes$en 】) は,そこに無かったかのように無視する下で、 `white-space-collapse$p1 の値に応じて: ◎ For each inline (including anonymous inlines; see CSS 2.1 § 9.2.2.1 Anonymous inline boxes [CSS2]) within an inline formatting context, white space characters are processed as follows prior to line breaking and bidi reordering, ignoring bidi formatting characters (characters with the Bidi_Control property [UAX9]) as if they were not there:
- `collapse$v1 ◎ If white-space-collapse is set to collapse\
- `preserve-breaks$v1 ◎ or preserve-breaks,\
-
`空白$は `縮約-可能@ であると見なされ,次の手続きで処理される: ◎ white space characters are considered collapsible and are processed by performing the following steps:
- `区分~分断$の周りにある`縮約-可能$な[ 文字 ~IN { `~space$, `~tab$ } ]並びは、 どれも除去する。 ◎ Any sequence of collapsible spaces and tabs immediately preceding or following a segment break is removed.
- `縮約-可能$な`区分~分断$を描画するときは、 `区分~分断の変形n規則$に則って変形する。 ◎ Collapsible segment breaks are transformed for rendering according to the segment break transformation rules.
- `縮約-可能$な各`~tab$は、 `縮約-可能$な 1 個の`~space$に変換する。 ◎ Every collapsible tab is converted to a collapsible space (U+0020).
- `縮約-可能$な`~space$ %S0 の直後に別の縮約-可能な`~space$ %S1 がある, かつ 両~spaceとも同じ行内~整形~文脈の中にある場合、 %S1 の送幅を 0 に縮約する (それは不可視になるが、 それによる`自動折返し機会$は維持する) — %S1 が, %S0 を包含している`行内$の境界の外側にあったとしても。 ◎ Any collapsible space immediately following another collapsible space—even one outside the boundary of the inline containing that space, provided both spaces are within the same inline formatting context—is collapsed to have zero advance width. (It is invisible, but retains its soft wrap opportunity, if any.)
- `preserve-spaces$v1 ◎ If white-space-collapse is set to preserve-spaces,\
- 各[ `~tab$/`区分~分断$ ]は、 1 個の`~space$に変換される。 ◎ each tab and segment break is converted to a space.
- `preserve$v1 ◎ If white-space-collapse is set to preserve\
- `break-spaces$v1【!`preserve-spaces$v1】 ◎ or preserve-spaces,
- どの~space並びも分断されない~space並びとして扱われる。 ただし、 `preserve$v1 に対しては,各~最大限な[ 文字 ~IN { `~space$, `~tab$ } ]並びの終端に`自動折返し機会$が存在する。 `break-spaces$v1 に対しては,各[ `~space$/`~tab$ ]の後に`自動折返し機会$が存在する。 ◎ any sequence of spaces is treated as a sequence of non-breaking spaces except that a soft wrap opportunity exists at the end of each maximal sequence of spaces and/or tabs. For break-spaces, a soft wrap opportunity exists after every space and every tab.
次の例に、 `~space$について特別に注意すべき,空白の縮約-法と双方向性との相互作用を示す。 次の~markup断片を考える (各~spaceは、[ 色/背景/~border ]で~~区別される): ◎ The following example illustrates the interaction of white-space collapsing and bidirectionality. Consider the following markup fragment, taking special note of spaces (with varied backgrounds and borders for emphasis and identification):
<ltr>A <rtl> B </rtl> C</ltr>
ここで、 `ltr^e 要素は 右向き埋込みを表現し, `rtl^e 要素は 左向き埋込みを表現する。 `white-space$p ~propが `normal$v に設定されている場合、 空白~処理~modelの結果は,次のようになる: ◎ where the <ltr> element represents a left-to-right embedding and the <rtl> element represents a right-to-left embedding. If the white-space property is set to normal, the white-space processing model will result in the following:
- `B^lt の前にある`~space$ ( )と, `A^lt の後にある`~space$ ( )とが,縮約される。 ◎ The space before the B ( ) will collapse with the space after the A ( ).
- `C^lt の前にある`~space$ ( )と, `B^lt の後にある`~space$ ( )とが,縮約される。 ◎ The space before the C ( ) will collapse with the space after the B ( ).
これは、 2 個の`~space$を残す — `A^lt の後にある右向き埋込み~level内のものと, `B^lt の後にある左向き埋込み~level内のもの。 それから,~textは`~Unicode双方向-~algo$citeに則って順序付けられ、 ~~最終~結果は次のようになる: ◎ This will leave two spaces, one after the A in the left-to-right embedding level, and one after the B in the right-to-left embedding level. The text will then be ordered according to the Unicode bidirectional algorithm, with the end result being:
A BC
`~space$は、 `A^lt ↔ `B^lt 間に 2 個, `B^lt ↔ `C^lt 間は 0 個 になることに注意。 これを避ける最善~~策は、[ 各`~space$を 開き/閉じ ~tagのすぐ内側に~~置かず,要素の外側に~~置く ]こと, および[ 実用的になる所では,明示的な埋込み~levelの代わりに暗黙的な双方向性に依拠する ]ことである。 ◎ Note that there will be two spaces between A and B, and none between B and C. This is best avoided by putting spaces outside the element instead of just inside the opening and closing tags and, where practical, by relying on implicit bidirectionality instead of explicit embedding levels.
4.3.2. 空白の削りと位置決め
塊~全体は、 `空白の縮約-法と変形n$の後に描画される — 各 `行内$は、 `双向性による並替ng$を織り込みつつ,[ `text-wrap-mode$p, `text-wrap-style$p ]~propに指定されたとおりに`折返ng$を入れながら~lay-outされる。 各~行lを~lay-outしていくに伴い: ◎ Then, the entire block is rendered. Inlines are laid out, taking bidi reordering into account, and wrapping as specified by the text-wrap-mode and text-wrap-style property. As each line is laid out,
- 行lの先頭にある`縮約-可能$な`~space$並びは,除去する。 ◎ A sequence of collapsible spaces at the beginning of a line is removed.
-
`保全され$た`~tab$たちは、 `~tab~size$が 0 の場合は描画されない。 他の場合,それらの各~tabは、[ 直後の~glyphが、 横方向【`行内~基底~方向$】にズラされ,その始端~辺が 次の`~tab停$に~~揃う ]ような間隔として描画される。 ただし,ズラす距離が `0.5ch^v 未満になる場合、 その次の`~tab停$が代わりに利用される。 `~tab停@ ( `tab stop^en ) 【行lの始端からの整列~位置】 たちが成す~~集合は、[ それらの`~tab$に最も近い[ `塊~容器$である先祖 ]の`内容~box$の始端~辺 ]から`~tab~size$の整数倍の地点からなる。 `~tab~size$は、 `tab-size$p ~propで与えられる。 ◎ If the tab size is zero, preserved tabs are not rendered. Otherwise, each preserved tab is rendered as a horizontal shift that lines up the start edge of the next glyph with the next tab stop. If this distance is less than 0.5ch, then the subsequent tab stop is used instead. Tab stops occur at points that are multiples of the tab size from the starting content edge of the preserved tab’s nearest block container ancestor. The tab size is given by the tab-size property.
注記: `~tab$が双向性とどう相互作用するかについては、 `~Unicode双方向-~algo$citeの `規則 L1@~UTR/tr9/#L1$ を見よ。 ◎ Note: See the Unicode rules on how tabulation (U+0009) interacts with bidi. [UAX9]
-
行lの末尾にある`縮約-可能$な`~space$並びは、 除去する。 行lの末尾の `1680^U `OGHAM SPACE MARK^cn も、 その `white-space-collapse$p1 ~propが[ `collapse$v1 / `preserve-breaks$v1 ]ならば,除去する。 ◎ A sequence of collapsible spaces at the end of a line is removed, as well as any trailing U+1680 OGHAM SPACE MARK whose white-space-collapse property is collapse or preserve-breaks.
注記: `~Unicode双方向-~algo$citeの `規則 L1@~UTR/tr9/#L1$ に因り、 `双向性による並替ng$ `CSS-WRITING-MODES-4$r の前に行lの末尾に在った`縮約-可能$な`~space$並びは,並替ngの後にも行lの末尾にあり続けることになる。 ◎ Note: Due to Unicode Bidirectional Algorithm rule L1, a sequence of collapsible spaces located at the end of the line prior to bidi reordering will also be at the end of the line after reordering. [UAX9] [CSS-WRITING-MODES-4]
-
(`双向性による並替ng$の後において)行lの末尾に[ 文字 ~IN { `空白$, `その他の~space分離子$, `保全され$た`~tab$ } ]並びがまだある場合、 `white-space-collapse$p に設定された値に応じて: ◎ If there remains any sequence of white space, other space separators, and/or preserved tabs at the end of a line (after bidi reordering [CSS-WRITING-MODES-4]):
- `collapse$v1 ◎ If white-space-collapse is collapse\
- `preserve-breaks$v1 ◎ or preserve-breaks,\
- ~UAは、 その並びを`吊下げる$モノトスル(無条件に) ◎ the UA must hang this sequence (unconditionally).
- `preserve$v1 ◎ If white-space-collapse is preserve and text-wrap-mode is not nowrap,\
- `text-wrap-mode$p は `nowrap^v【!#valdef-text-wrap-mode-nowrap】 以外ならば、 ~UAは、 その並びがある行lに[ `強制d行l分断$が後続している場合は`条件付きで吊下げる$/ ~ELSE_(無条件に)`吊下げる$ ]モノトスル。 また,その並びが~overflowするときには、 並びを成す各~文字の送幅を視覚的に縮約してもヨイ。 ◎ the UA must (unconditionally) hang this sequence, unless the sequence is followed by a forced line break, in which case it must conditionally hang the sequence instead. It may also visually collapse the character advance widths of any that would otherwise overflow.
- 注記: 空白を縮約せずに吊下げれば、 利用者は,~textを選択したり編集するときに それらを見れるようになる。 ◎ Note: Hanging the white space rather than collapsing it allows users to see the space when selecting or editing text.
- `break-spaces$v1 ◎ If white-space-collapse is set to break-spaces,\
-
[ `~space$/`~tab$/`その他の~space分離子$ ]は、 他の可視な文字と同じに扱われる。 それらは、 `吊下げる$ことも, 送幅を縮約することもできない。 ◎ spaces, tabs, and other space separators are treated the same as other visible characters: they cannot hang nor have their advance width collapsed.
注記: したがって、 そのような文字は空間を占める — その結果、[ 可用な空間/適用-可能な行l分断法の制御 ]に依存して,~overflowするか行lを折返させることになる。 ◎ Note: Such characters therefore take up space, and depending on the available space and applicable line breaking controls will either overflow or cause the line to wrap.
- `preserve-spaces$v1 ◎ ↓
- この場合、 何が起こるべきか? ◎ What should happen here for white-space-collapse: preserve-spaces?
この例は、 行lの末尾にて,強制d分断を伴う空白が`条件付きで吊下がる$とき,行lの両端が対称になる様子を示す。 ◎ This example shows that conditionally hanging white space at the end of lines with forced breaks provides symmetry with the start of the line.\
各~spaceは、 可視化する都合により `005F^gU で表される。 ◎ An underline is added to help visualize the spaces.
p { white-space: pre-wrap; width: 5ch; border: solid 1px; font-family: monospace; text-align: center; }
<p>_0_</p>
上の見本は、 次のように描画されることになる: ◎ The sample above would be rendered as follows:
最後にある`~space$は、 `強制d行l分断$の前にあり,~overflowしないので、 吊下がらない — 中央~寄せは期待されるとおりに働く。 ◎ Since the final space is before a forced line break and does not overflow, it does not hang, and centering works as expected.
この例は、 行lの末尾にある`~space$が,[ 強制d分断が~~後続しているため`吊下がる$場合, 強制d分断が~~後続しないため`条件付きで吊下がる$場合 ]の相違を示す。 ◎ This example illustrates the difference between hanging spaces at the end of lines without forced breaks, and conditionally hanging them at the end of lines with forced breaks.\
各~spaceは、 可視化する都合により `005F^gU で表される。 ◎ An underline is added to help visualize the spaces.
p { white-space: pre-wrap; width: 3ch; border: solid 1px; font-family: monospace; }
<p>_0_0_0_0_</p>
上の見本は、 次のように描画されることになる: ◎ The sample above would be rendered as follows:
`p { text-align: right; }^css が追加された場合、 結果は次のようになる: ◎ If p { text-align: right; } was added, the result would be as follows:
行lの末尾にある`保全され$た`~space$は、 `強制d行l分断$が~~後続するかどうかに応じて: ◎ ↓
- ~~後続しない場合、 `吊下がら$なければナラナイので,~text整列の間に行lを成す残りを配置するときには考慮されない。 そのような`~space$は~overflowするので、 行lを成す残りの内容は,終端へ向けて整列される場合には行lの終端~辺に接合されることになる。 ◎ As the preserved spaces at the end of lines without a forced break must hang, they are not considered when placing the rest of the line during text alignment. When aligning towards the end, this means any such spaces will overflow, and will not prevent the rest of the line’s content from being flush with the edge of the line.\
- `~~後続する場合^em、 `条件付きで吊下がる$。 この例における最後の行lの末尾にある~spaceは、 ~overflowしないので,`吊下がら$ない — したがって,~text整列の間に考慮される。 ◎ On the other hand, preserved spaces at the end of a line with a forced break conditionally hang. Since the space at the end of the last line would not overflow in this example, it does not hang and therefore is considered during text alignment.
次の例では,行lの末尾にある~spaceは、 どの行lにおいても,収まるに十分な部屋がないため`吊下がる$ — 強制d分断が~~後続する行lでは,そうすることが要求され、 ~~後続しない行lでは,`条件付きで吊下がる$結果 ~overflowするので。 ◎ In the following example, there is not enough room on any line to fit the end-of-line spaces, so they hang on all lines: the one on the line without a forced break because it must, as well as the one on the line with a forced break, because it conditionally hangs and overflows.\
各~spaceは、 可視化する都合により `005F^gU で表される。 ◎ An underline is added to help visualize the spaces.
p { white-space: pre-wrap; width: 3ch; border: solid 1px; font-family: monospace; }
<p>0_0_0_0_</p>
最後の行lは、 最後の `0030^gU の前では折返されない — `条件付きで吊下がる$文字は、 行lの内容が収まるかどうか測定するときには考慮されないので。 ◎ The last line is not wrapped before the last 0 because characters that conditionally hang are not considered when measuring the line’s contents for fit.
4.3.3. 区分~分断の変形n規則
`区分~分断$は、 `white-space-collapse$p1 の値に応じて,次のように変形される: ◎ ↓
- `discard$v1
- `preserve$v1
- `preserve-breaks$v1
- `break-spaces$v1
- `区分~分断$は`縮約-可能$でない — それらは、 `保全され$る`~LF$に変形される。 ◎ When white-space-collapse is not collapse, segment breaks are not collapsible. For values other than collapse or preserve-spaces (which transforms them into spaces), segment breaks are instead transformed into a preserved line feed (U+000A).
- `preserve-spaces$v1
- `区分~分断$は`縮約-可能$でない — それらは、 `~space$に変形される。 ◎ ↑
- `collapse$v1
-
`区分~分断$は`縮約-可能$である — それらは、 次に従って縮約される: ◎ When white-space-collapse is collapse, segment breaks are collapsible, and are collapsed as follows:
- `区分~分断$のうち,直前に別の区分~分断が在るものは、 除去する。 ◎ First, any collapsible segment break immediately following another collapsible segment break is removed.
-
残りの`区分~分断$は、 当の分断の前後の文脈に依存して, 1 個の`~space$に変形するか除去する — この演算~用の規則は、 この~levelでは,~UAにより定義される。 ◎ Then any remaining segment break is either transformed into a space (U+0020) or removed depending on the context before and after the break. The rules for this operation are UA-defined in this level.
~level 4 用にこれを定義するべきか? ◎ Should we define this for Level 4?
注記: この文脈が評価される前に、 分断の[ 直前/直後 ]にある`~tab$や`~space$は,空白~処理~規則により すでに除去されていることに注意。 ◎ Note: The white space processing rules have already removed any tabs and spaces around the segment break before this context is evaluated.
区分~分断の変形n規則(より一般には空白の縮約-法)の目的は、 文書の~source~code内の `いくつかの区分に分断された~text@#white-space-processing$ を “未分断にして” 作業し易くすることである。 ~Englishや韓国語などの単語~分離子を利用する言語において,行lを “未分断にする” ときは、 2 つの行lを 1 個の`~space$【に等価な間隔】で繋げることが要求される。 ◎ The purpose of the segment break transformation rules (and white space collapsing in general) is to “unbreak” text that has been broken into segments to make the document source code easier to work with. In languages that use word separators, such as English and Korean, “unbreaking” a line requires joining the two lines with a space.
中国語などの単語~分離子が無い言語において,行lを “未分断にする” ときは、 2 つの行lを~spaceを挟まずに繋げることが要求される。 ◎ In languages that have no word separators, such as Chinese, “unbreaking” a line requires joining the two lines with no intervening space.
区分~分断の変形n規則では、 区分~分断を 1 個の~spaceに変形するか, まるごと排するときに,隣接な文脈を利用し得る。 ◎ The segment break transformation rules can use adjacent context to either transform the segment break into a space or eliminate it entirely.
注記: 歴史的に,~HTML/~CSSは、 `区分~分断$を無条件に`~space$に変換していた。 それは、 中国語などの言語で著作される内容において,~sourceを~~改行できなくしていた。 ~UAの経験則は、 そのような言語~用の~supportを改善しようと図るときでも,どこで`区分~分断$を破棄するかについては保守的になる必要がある。 ◎ Note: Historically, HTML and CSS have unconditionally converted segment breaks to spaces, which has prevented content authored in languages such as Chinese from being able to break lines within the source. Thus UA heuristics need to be conservative about where they discard segment breaks even as they strive to improve support for such languages.
4.4. ~tab文字~size: `tab-size^p ~prop
◎名 `tab-size@p ◎値 `number [0,∞]$t | `length [0,∞]$t ◎初 `8^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された実数/絶対~長さ ◎ the specified number or absolute length ◎順 n/a ◎ア 算出d値の型による ◎表終この~propは、 `保全され$た`~tab$を描画するときに利用される `~tab~size@ を決定する。 `number$t は、[ その実数 ~MUL [ 当の`~tab$に最も近い[ `塊~容器$である先祖 ]における,`~space$の送幅 ]]による行内~sizeを表現する — この送幅には、 それに結付けられた[ `letter-spacing$p, `word-spacing$p ]も含まれる。 負な値は許容されない。 ◎ This property determines the tab size used to render preserved tab characters (U+0009). A <number> represents the measure as a multiple of the advance width of the space character (U+0020) of the nearest block container ancestor of the preserved tab, including its associated letter-spacing and word-spacing. Negative values are not allowed.
5. ~textの折返n法
`行内~level$の内容は、 行lたちに~lay-outされるときに,いくつかの`行l~box$に渡って分断( `break^en, “改行” )される。 そのような各~分断は、 `行l分断@ ( `line break^en, または単に分断)と呼ばれる†。 [ 明示的な行-分断法の制御(`保全され$た改行文字など), あるいは塊の[ 開始/終了 ]]に因る行l分断は、 `強制d行l分断@ ( `forced line break^en )と呼ばれる。 行lが内容の `折返ng@ ( `wrapping^en )に因り分断される (すなわち,~UAが内容を行内~sizeに収めるために,非強制な行l分断を作成する) ことを `自動折返し分断@ ( `soft wrap break^en )という。 `行内~level$の内容を何~行lかに分断する処理-は、 `行-分断法@ ( `line-breaking^en )と呼ばれる。 ◎ When inline-level content is laid out into lines, it is broken across line boxes. Such a break is called a line break. When a line is broken due to explicit line-breaking controls (such as a preserved newline character), or due to the start or end of a block, it is a forced line break. When a line is broken due to content wrapping (i.e. when the UA creates unforced line breaks in order to fit the content within the measure), it is a soft wrap break. The process of breaking inline-level content into lines is called line breaking.
【† 行l分断 — “改行” の方が馴染まれているであろうが、 “分断” それ自体が自立する用語の役割も担うため、 用語とその用法の体系を保つ観点から,この訳では “行l分断” と記すことにする。 一般に、 折返ngは~layout上の効果, 分断は(そのような効果を生じさせるような)抽象的な~~区切りを表す。 】
折返ngが遂行されるのは、 許容される分断点に限られる — そのような分断点は `自動折返し機会@ ( `soft wrap opportunity^en )と呼ばれる。 折返ngが可能化された下では( `white-space$p を見よ)、 ~UAは,内容が行lを~overflowする量を最小~化するモノトスル — `自動折返し機会$が存在するならば,そこで行lを折返すことにより。 ◎ Wrapping is only performed at an allowed break point, called a soft wrap opportunity. When wrapping is enabled (see white-space), the UA must minimize the amount of content overflowing a line by wrapping the line at a soft wrap opportunity, if one exists.
~textを どこで折返すことが許容されるかは、 `§ 行-分断法と単語~境界@#line-breaking$ 【にて定義される~propたち】により制御される。 [ 折返すことは許容される`かどうか^em ]および[ 行lの中の複数の`自動折返し機会$をどう順位付けるか ]は、 次に挙げる~propにより制御される ⇒# `text-wrap-mode$p, `text-wrap-style$p, `wrap-before$p, `wrap-after$p, `wrap-inside$p ◎ Where text is allowed to wrap is controlled by the line-breaking rules and controls; whether it is allowed to wrap and how multiple soft wrap opportunities within a line are prioritized is controlled by the text-wrap-mode, text-wrap-style, wrap-before, wrap-after, and wrap-inside properties.
5.1. 折返すかどうかの裁定-法: `text-wrap-mode^p ~prop
◎名 `text-wrap-mode@p ◎値 `wrap$v | `nowrap$v ◎初 `wrap$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propの名前は、 ~~仮のものであり, ~CSS~WGが もっと良い名前を見出すことが待たれる。 ◎ The name of this property is a placeholder, pending the CSSWG finding a better name.
注記: この~propは、[ `white-space$p, `text-wrap$p ]両者の`下位prop$である。 ◎ Note: This property is a longhand of both white-space and text-wrap.
この~propは、 各~行lを非強制な`自動折返し機会$にて`折返して$もヨイかどうかを指定する。 アリな値は: ◎ This property specifies whether lines may wrap at unforced soft wrap opportunities. Possible values:
- `wrap@v
- `行内-軸$の~overflowを最小~化するためとして、 許容される`自動折返し機会$にて — 効果中な行-分断ng規則により決定されるとおり — 何~行lかに分断してもヨイ。 ◎ Content may break across lines at allowed soft wrap opportunities, as determined by the line-breaking rules in effect, in order to minimize inline-axis overflow.
- 注記: `自動折返し機会$に対する規則と拘束【!constrains】についてのさらなる情報は、 `§ 行-分断法の詳細@#line-break-details$ を見よ。 ◎ Note: See § 5.6 Line Breaking Details for more information about rules and constrains on soft wrap opportunities.
- `nowrap@v
- 行内~levelの内容は、 何~行lかに分断しない — 塊~容器の中に収まらない内容は、 それを~overflowする。 ◎ Inline-level content does not break across lines; content that does not fit within the block container overflows it.
次に挙げるものは、 `text-wrap-mode$p の値を問わず,`強制d行l分断$として扱うモノトスル:
- `保全され$た`区分~分断$
- 次に挙げる`~Unicode行-分断法~class$に属する~Unicode文字 ⇒ `BK^uc, `CR^uc, `LF^uc, `NL^uc
注記: そのような`強制d行l分断$に対する双向性による含意は、 `~Unicode双方向-~algo$citeにて定義される。 ◎ Note: The bidi implications of such forced line breaks are defined by the Unicode Bidirectional Algorithm. [UAX9]
5.2. ~boxの中の分断の制御-法: `wrap-inside^p ~prop
◎名 `wrap-inside@p ◎値 `auto$v | `avoid$v ◎初 `auto$v ◎適 `行内~box$ ◎継 されない ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終- `auto@v
- 当の~boxの中の許容される各~分断点にて — 効果中な行-分断ng規則により決定されるとおりに — 行lを分断してもヨイ。 ◎ Lines may break at allowed break points within the box, as determined by the line-breaking rules in effect.
- `avoid@v
- 当の~boxの中で行lを分断することは抑止される — ~UAが分断してもヨイのは、 当の~boxの中に妥当な分断点が他に無い場合に限られる。 ~textを分断する場合、 `auto$v と同じく,行-分断ng制約は尊守される。 ◎ Line breaking is suppressed within the box: the UA may only break within the box if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto.
- `avoid$v を伴う~boxが もう一つのそれを入子にしていて, ~UAは[ これらの~boxの中のどこか ]で分断しなければならない場合、 アリな分断点のうち,入子にされた~boxの外にある方を先に利用するモノトスル。 ◎ If boxes with avoid are nested and the UA must break within these boxes, a break in an outer box must be used before a break within an inner box may be used.
5.2.1. `footer^e を呈示する際に `wrap-inside^p に `avoid^v を利用する例
分断点たちの優先順位は、 意図される[ ~textの~group化 ]を反映するように設定できる。 ◎ The priority of breakpoints can be set to reflect the intended grouping of text.
次の規則と: ◎ Given the rules
footer { wrap-inside: avoid; } venue { wrap-inside: avoid; } date { wrap-inside: avoid; } place { wrap-inside: avoid; }
次の~markupが与えられたなら: ◎ and the following markup:
<footer> <venue>27th Internationalization and Unicode Conference</venue> • <date>April 7, 2005</date> • <place>Berlin, Germany</place> </footer>
~UIwindowが狭いとき、 `footer^e は,次のようにも分断し得る: ◎ In a narrow window the footer could be broken as
27th Internationalization and Unicode Conference • April 7, 2005 • Berlin, Germany
~UIwindowが もっと狭いときは、 次のようにも: ◎ or in a narrower window as
27th Internationalization and Unicode Conference • April 7, 2005 • Berlin, Germany
が、 次のようにはならない: ◎ but not as
27th Internationalization and Unicode Conference • April 7, 2005 • Berlin, Germany
5.3. ~box↔間における分断の制御-法: `wrap-before^p / `wrap-after^p ~prop
◎名 `wrap-before@p, `wrap-after@p ◎値 `auto$v | `avoid$v | `avoid-line$v | `avoid-flex$v | `line$v | `flex$v ◎初 `auto$v ◎適 `行内~level$の~box/`~flex駒$ ◎継 されない ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終これらの~propは、 行l(および`~flex行l$ `CSS3-FLEXBOX$r )を分断する際の分断~機会に対する改変を指定する。 アリな値は: ◎ These properties specify modifications to break opportunities in line breaking (and flex line breaking [CSS3-FLEXBOX]). Possible values:
- `auto@v
- 当の~boxの[ 前, 後 ]にて許容される分断点にて — 効果中な行-分断ng規則により決定されるとおりに — 行lを分断してもヨイ。 ◎ Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.
- `avoid@v
- 当の~boxの[ 直前/直後 ]で行lを分断することは抑止される — ~UAが分断してもヨイのは、 当の行lに妥当な分断点が他に無い場合に限られる。 ~textを分断する場合、 `auto$v と同じく,行-分断ngの制約を尊守するとする。 ◎ Line breaking is suppressed immediately before/after the box: the UA may only break there if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto.
- `avoid-line@v
- 行lの分断-用に限り, `avoid$v と同じになる。 ◎ Same as avoid, but only for line breaks.
- `avoid-flex@v
- ~flex行lの分断-用に限り, `avoid$v と同じになる。 ◎ Same as avoid, but only for flex line breaks.
- `line@v
- 当の~boxが`行内~level$の~boxである場合、 その[ 直前/直後 ]にて行l分断を強制する。 ◎ Force a line break immediately before/after the box if the box is an inline-level box.
- `flex@v
- 当の~boxが`複-行f$な`~flex容器$内の`~flex駒$である場合、 その[ 直前/直後 ]にて`~flex行l$の分断を強制する。 ◎ Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.
`行内~level$の~box上の`強制d行l分断$は、 親 `行内~box$を通して上方へ伝播する — `塊~level$の~box上の強制d分断が,同じ`断片化~文脈$内の親 `塊~box$を通して上方へ伝播するのと同じ仕方で。 `CSS3-BREAK$r ◎ Forced line breaks on inline-level boxes propagate upward through any parent inline boxes the same way forced breaks on block-level boxes propagate upward through any parent block boxes in the same fragmentation context. [CSS3-BREAK]
5.4. 折返す方法の選定-法: `text-wrap-style^p ~prop
◎名 `text-wrap-style@p ◎値 `auto$v | `balance$v | `stable$v | `pretty$v | `avoid-orphans$v ◎初 `auto$v ◎適 `塊~容器$のうち`行内~整形~文脈$を確立するもの ◎ block containers hat establish an inline formatting context ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終行lを折返すための~approachには、[ 速さ, ~layoutの品質と~style, 【他所における折返ngに影響されない】安定性 ]のうちどれを~~重視するかに応じて,いくつかある。 この~propは、 折返ngが許容されるとき( `text-wrap-mode$p を見よ), ~UAが どの~approachを選定するかを指定する。 これは、 `自動折返し機会$が どこに存在するかは変更しない。 ◎ When wrapping is allowed (see text-wrap-mode), this property selects between several approaches for wrapping lines, trading off between speed, quality and style of layout, or stability. It does not change which soft wrap opportunity exist, but changes how the user agent selects among them. Possible values:
- `auto@v
- どの`自動折返し機会$で分断するか選定するための正確な~algoは、 ~UAにより定義される。 ~algoは、 分断の裁定を為すときに複数の行lを考慮しても`ヨイ^em。 ~UAは、 最良な~layoutより速さへ偏っても`ヨイ^em。 ~UAは、 すべての行l(最後の行lも含む)を `balance$v と同じく均等化しようと試みない`モノトスル^em。 この値は、 ~UAが選好する(最も~Web互換な)折返ng~algoを選定する。 ◎ The exact algorithm for selecting which soft wrap opportunity to break at is UA-defined. The algorithm may consider multiple lines when making break decisions. The UA may bias for speed over best layout. The UA must not attempt to even out all lines (including the last) as for balance. This value selects the UA’s preferred (or most Web-compatible) wrapping algorithm.
- `balance@v
-
行l分断は、 次を満たすように選ばれる:
- 当の塊が包含することになる行l~boxの個数は、 `auto$v であった場合と同じになるベキであり, 5 以下である場合は同じになるモノトスル。
- 各~行l~box内に残り続ける空間(~textで占められない空間)をなるべく均等化する — `auto$v であった場合~以上に良くなるよう 【すなわち、以下に述べる標準~偏差が, `auto^v の場合のそれ以下になるよう】。
注記: ある行l~boxに一緒に現れる内容が変化したとしても、 当の行lの縦幅を変更する必要はない。
◎ Line breaks are chosen to balance the remaining (empty) space in each line box, if better balance than auto is possible. This should avoid changing—and in the case of 5 or fewer lines must not change—the number of line boxes the block would contain if text-wrap were set to auto. ◎ The height of the line boxes may nevertheless change, due to changes in which content appears together on one line. - 残り続ける空間として考慮されるのは、[ `浮動体$と行内~内容を配置した後 ]かつ[ ~text両端揃えに因る調整の前 ]の時点におけるそれになる。 [ 当の塊が包含する各~行l~box(強制d分断で終端する行lも含む)に残り続ける空間の`行内~size$の平均 ]からの標準~偏差が抑制されるほど,より均等化されたものとみなされる。 ◎ The remaining space to consider is that which remains after placing floats and inline content, but before any adjustments due to text justification. Line boxes are balanced when the standard deviation from the average inline-size of the remaining space in each line box is reduced over the block (including lines that end in a forced break).
- `強制d行l分断$により分離された各[ 行lたちが成す~group ]は、 別々に処理される。 ◎ Groups of lines separated by a forced line break are processed separately.\
- 当の要素が `line-clamp$p により影響される場合、 それによる切詰ng効果が適用されてから,残った行lたちが均等化される。 ◎ If the element is affected by line-clamp, the clamping effect is applied first, then the remaining lines are balanced.
- 正確な~algoは、 ~UAにより定義される。 ◎ The exact algorithm is UA-defined.
-
~UAは、 均等化する行l~数†が 10 を超える場合は, この値を `auto$v として扱ってもヨイ。
【† 言い換えれば、 `auto$v であった場合に,当の塊が包含することになる行l~boxの個数。 強制d行l分断が在る場合に,この行l~数が分離された各~groupごとに基づくのかどうかは (その場合、 `auto^v として扱うか否かも,~groupごとに異なり得ることになる)、 はっきりしない。 】
◎ UAs may treat this value as auto if there are more than ten lines to balance. - `stable@v
- 分断の裁定を為すときには、 後続な行lの内容を考慮する`ベキでない^emものと指定する — ~text編集-時に,~cursorより前にある内容が安定的であり続けるよう。 他に関しては、 `auto$v と等価になる。 ◎ Specifies that content on subsequent lines should not be considered when making break decisions so that when editing text any content before the cursor remains stable; otherwise equivalent to auto,
- `pretty@v
- ~UAは、 速さより~layoutを良くする方へ偏る`ベキである^emものと指定する — 分断の裁定を為すときは、 複数の行lを考慮することが期待される。 他に関しては、 `auto$v と等価になる。 ◎ Specifies the UA should bias for better layout over speed, and is expected to consider multiple lines when making break decisions. Otherwise equivalent to auto.
-
~UAは、 最後の行lが過度に短くなることを — `avoid-orphans$v と類似に — 特に避けるよう試みてもヨイが, ~layoutも追加的な仕方で改善するベキである。 各種~改善が成す精確な集合は,~UAに依存するが、 次に挙げるものなどが含まれよう: ◎ The user agent may among other things attempt to avoid excessively short last lines, similarly to avoid-orphans, but it should also improve the layout in additional ways. The precise set of improvements is user agent dependent, and may include things such as:\
- 各~行lの長さにおける変動を抑制する ◎ reducing the variation in length between lines;\
- `~typographicな川@https://en.wikipedia.org/wiki/River_(typography)$を避ける ◎ avoiding typographic rivers;\
- [ `自動折返し機会$/`~hyphen化~機会$/`両端揃え機会$ ]たちが成す各種~classを順位付ける ◎ prioritizing different classes of soft wrap opportunities, hyphenation opportunities, or justification opportunities;\
- ~hyphen化が多過ぎる連続な行lたちにわたることを避ける ◎ avoiding hyphenation on too many consecutive lines…
とりわけ,長大な~textに適用されるときには、 必要yな算出は高価になり得る。 `text-wrap-style$p に `pretty$v を利用している作者には、 それによる処理能に対する影響iを査定して, 場合によっては選択的に — 最も問われる所に限り — それを利用することが奨励される。 ◎ The necessary computations may be expensive, especially when applied to large amounts of text. Authors are encouraged to assess the impact on performance when using text-wrap-style: pretty, and possibly use it selectively where it matters most.
- `avoid-orphans@v
- ~UAは[ 最後の行lが過度に短くなること ]を避ける`ベキ^emであることを指定する。 ~UAには、 分断の裁定を為すときには,複数の行lを考慮することも期待される (例えば、[ ~orphanを “修正する” ために直前の行lを短くし過ぎる ]ことを避ける)。 ~UAは、 最後の行lを改善すると~~先行する何~行lかが ひどく不均等になるときには, 改善しないものと裁定してもヨイ。 ~UAは、[ ~layoutを成す他の側面を `auto$v によるものを超えて改善する ]よう試みるベキでない — そのような改善に有意な処理能~costがついて来る場合には。 ◎ Specifies the UA should avoid excessively short last lines, and is expected to consider more than one line when making break decisions (for example, to avoid "fixing" an orphan by making the previous line too short). The user agent may decide against improving the last line when it would make some prior line(s) substantially unbalanced. The user agent should not attempt to improve other aspects of the layout beyond what auto if those improvements come at a significant performance cost.
- 注記: 西洋の~typographyにおいては、 “~orphan” は,段落を成す最後の行l上の単独の単語を参照rし得る。 しかしながら,すべての[ 言語/書記~体系 ]が行lを単語~境界にて折返すとは限らず、 そうする言語であっても,最後の行lが少数のごく短い単語からなることは — とりわけ,可用な行内~空間が長い場合には — 望ましくないことがある。 したがって,この仕様は、 行lが短か過ぎであることを[ 厳密に,単独の単語で構成されるときに限られる ]ものとは定義しない — [ 何を以って過度に短いとされるか ]を~UAが判定できるようにする。 ◎ Note: In western typography, an “orphan” can refer to a single word on the last line of a paragraph. However, not all languages or writing systems wrap lines at word boundaries, and even in languages that do, a few very short words on the last line may still be undesirable, especially if the available inline space is long. This specification does not therefore strictly define lines to be too short only when they are composed a single word, and lets the user agent be the judge of what is excessively short.
- 注記: 断片化に対する制御, および “~orphan” を成す他の~typographicな意味については、 `orphans$p ~propも見よ。 ◎ Note: See also the orphans property for control over fragmentation and the other typographic meaning of “orphans”.
-
一例として、 所与の行l長さの下で次を~testしたとき,最後の行lが単独の単語からなるよう折返されたなら、 それは短か過ぎるものと判定することもできる。 ◎ For instance, with the given line length, the following test would be wrapped with a single word on the last line, which could be judged too short.
ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν.
`text-wrap-style$p: `avoid-orphans$v
を適用することで、 次の様な,より快適な何かを得ることもできる: ◎ Applying text-wrap-style: avoid-orphans could yield something like this instead, which is arguably more pleasing:ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν.
-
しかしながら、 次の断片は,もっと~~面倒になる: ◎ However, the following fragment is more vexing:
Circumnavigating the Mississippi river
直前の行lを早めに折返すことにより,最後の行lが短くならないよう試みたときの結果は、 次の様になる: ◎ An attempt to make the last line less short by wrapping the previous line earlier would result in the following:
Circumnavigating the Mississippi river
最後の行lは もはや短くないが、 直前の行lが~~見苦しくなる。 そのような事例では、 `text-wrap-style$p に `avoid-orphans$v が設定されていようが, ~UAには最初の描画を選好することが期待される。 ◎ While the last line would indeed no longer be short, the penultimate line would be unsightly. In such cases, user agents are expected to prefer the first rendering despite text-wrap-style: avoid-orphans being set.
注記: 値 `auto$v は、 概して, ~Web~browserによる旧来の速い行l分断ngへ対応付けられることになる — それは、 これまで,最適とは言えない結果を与えることが多かった[ `first-fit/greedy^en 【各~行lを最初から順に処理する】~algo ]に利用されてきた。 ~UAは、 この既定の値に対し,もっと良い行l分断ng~algoを実験できるが、 最適な結果を得るためには,より時間がかかることが多いので、 それを任意で~~選べるよう, `pretty$v と `avoid-orphans$v が提供された。 どちらの値も本文~text用に意図される — そこでは,最後の行lが平均より少し短くなることが期待されるが、 `avoid-orphans$v は,最後の行lが過度に短くなることを — 処理能に~~響かない程度に — 避けることを目指す一方で、 `pretty$v は,より良い~layoutを — 速さを犠牲にし得るが — 追求する。 `balance$v は、 ~titleや~caption用に意図される — そこでは、 各~行lの長さが等しくなることが選好される傾向にある。 `stable$v は、[ 編集-可能か,そうなるよう~toggleされると見込まれる一節 ]用に意図される。 ◎ Note: The auto value will typically map to Web browsers’ speedy legacy line breaking, which has so far used first-fit/greedy algorithms that can often give sub-optimal results. UAs can experiment with better line breaking algorithms with this default value, but as optimal results often take more time, pretty and avoid-orphans are offered as opt-ins to take more time for better results. Both values are intended for body text, where the last line is expected to be a bit shorter than the average line, but avoid-orphans aims to avoid excessively short last lines while staying performant, while pretty can sacrifice more speed in pursuit of even better layout; the balance value is intended for titles and captions, where equal-length lines of text tend to be preferred; and the stable is intended for sections that are, or are likely become toggled as, editable.
各~行lに最小な長さを要求するか? `thread@https://lists.w3.org/Archives/Public/www-style/2015Jan/0012.html$ を見よ。 共通的な測度として見受けられるのは: ◎ See thread. Issue is about requiring a minimum length for lines. Common measures seem to be
- `text-indent$p 以上に長くする。 ◎ At least as long as the text-indent.
- ある文字~数~以上。 ◎ At least X characters.
- 百分率に基づく。 ◎ Percentage-based.
値~空間として,
`match-indent^v | `length$t | `percentage$t
が示唆される
(文字~数の利用事例を明瞭にするには,例えば `ch^u 単位による長さを与える)。
代替として, `integer$t で実際に文字を数えることもできる。
◎
Suggestion for value space is match-indent | <length> | <percentage> (with Xch given as an example to make that use case clear). Alternately <integer> could actually count the characters.
これが上における~textの均等化~法とどう相互作用するかは、 明瞭でない — 同じ~propが それらをとり得るようにする提案もあった ( `100%^v が全部的に均等化することを意味する)。 ◎ It’s unclear how this would interact with text balancing (above); one earlier proposal had them be the same property (with 100% meaning full balancing).
単語~数に基づいて制限することも要請されたが、 本当に単語の長さに依存するので,文字~数に基づく方が良い。 ◎ People have requested word-based limits, but since this is really dependent on the length of the word, character-based is better.
5.5. ~~共同~折返ng制御: `text-wrap^p 略式~prop
◎名 `text-wrap@p ◎値 `text-wrap-mode$tp || `text-wrap-style$tp ◎初 `wrap^v ◎適 個々の~propを見よ ◎継 個々の~propを見よ ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎順 文法に従う ◎ア 個々の~propを見よ ◎表終この~propは、[ `text-wrap-mode$p, `text-wrap-style$p ]~prop用の略式である。 省略された`下位prop$は、 各自の`初期~値$に設定される。 ◎ This property is a shorthand for the text-wrap-mode and text-wrap-style properties. Any omitted longhand is set to its initial value.
5.6. 行-分断法の詳細
`行l分断$を決定するときは: ◎ When determining line breaks:
-
`行-分断法$と双方向-~textとの相互作用は、 次により定義される:
- `CSS-WRITING-MODES-4$r `§ 双方向-並替ng~algoの適用-法@~CSSWM#bidi-algo$
- `~Unicode双方向-~algo$cite — 特に,その `§ 解決された~levelたちの並替ng@~UTR/tr9/#Reordering_Resolved_Levels$
-
明示的に他が定義された所
(例:
`line-break$p1: `anywhere$v1
/`overflow-wrap$p1: `anywhere$v1
) を除き、 `~Unicode行-分断法~class$[ `CM^uc, `SG^uc, `WJ^uc, `ZW^uc, `GL^uc, `ZWJ^uc ]用に定義される行-分断法の挙動は,尊守するモノトスル。 ◎ Except where explicitly defined otherwise (e.g. for line-break: anywhere or overflow-wrap: anywhere) line breaking behavior defined for the CM, and SG, WJ, ZW, GL, and ZWJ Unicode line breaking classes must be honored. [UAX14] -
[
`単語~分離子$以外の,`書記~体系$に利用される約物
]の所でも折返ngを許容する~UAは、
それらによる分断点に優先順位を与えるベキである
(例えば,[
~slashの後にある分断
]に~spaceより低い順位が与えられた場合、
並び
"`check /etc^c"
は,
`/^lt ↔ `e^lt
間では,決して分断しないことになる)。
そのような不自然な分断は避けるよう~careされる限り、
単語~分離子~以外の適切な約物の所でも分断を許容することは,推奨される
— 特に行内~sizeが狭い下では、
結果の~marginの見かけは,より均等になるので。
~UAは、
順位をアテガう際に[
`包含塊$の横幅【`論理-横幅$】,
~textの言語,
`line-break$p 値,
その他の要因
]を利用してもヨイ
— ~CSSは、
`自動折返し機会$の順位付けを定義しない。
しかしながら,`単語~分離子$の順位付けは、
`word-break$p1: `break-all$v1
が指定されている場合は期待されない (この値は、 行-分断法の挙動が単語~分離子における行-分断法に基づかないことを明示的に要求するので) ことに加え,`line-break$p1: `anywhere$v1
の下では禁止される。 ◎ UAs that allow wrapping at punctuation other than word separators in writing systems that use them should prioritize breakpoints. (For example, if breaks after slashes are given a lower priority than spaces, the sequence “check /etc” will never break between the "/" and the "e".) As long as care is taken to avoid such awkward breaks, allowing breaks at appropriate punctuation other than word separators is recommended, as it results in more even-looking margins, particularly in narrow measures. The UA may use the width of the containing block, the text’s language, the line-break value, and other factors in assigning priorities: CSS does not define prioritization of soft wrap opportunities. Prioritization of word separators is not expected, however, if word-break: break-all is specified (since this value explicitly requests line breaking behavior not based on breaking at word separators)—and is forbidden under line-break: anywhere. - [ 行内~要素の境界/`~flow外$にある要素 ]が、 ~flow内に[ `強制d行l分断$/`自動折返し機会$ ](順不同)を導入することはない。 【例:~flow外にある要素を~flow内にある内容から外した “跡” の所など】 ◎ Out-of-flow elements and inline element boundaries do not introduce a forced line break or soft wrap opportunity in the flow.
- ~Web互換性を得るため、 各[ `置換d要素$/他の`不可分な行内$ ]の[ 前, 後 ]には,`自動折返し機会$がある。 隣接な文字 — `00A0^U `NO-BREAK SPACE^cn を含む — が、 通常は それらを抑止する場合でも。 しかしながら、[ `不可分な行内$ ↔ それに隣接な文字 ]間には[ 当の文字が次を満たす場合には,`自動折返し機会$は無い ]モノトスル ⇒ [ `00A0^U `NO-BREAK SPACE^cn でない ]~AND[ `~Unicode行-分断法~class$[ `GL^uc / `WJ^uc / `ZWJ^uc ]に属する ] ◎ For Web-compatibility there is a soft wrap opportunity before and after each replaced element or other atomic inline, even when adjacent to a character that would normally suppress them, including U+00A0 NO-BREAK SPACE. However, with the exception of U+00A0 NO-BREAK SPACE, there must be no soft wrap opportunity between atomic inlines and adjacent characters belonging to the Unicode GL, WJ, or ZWJ line breaking classes. [UAX14]
- 行l分断の所で消える文字(例: `~space$)により作成される`自動折返し機会$に対しては、 その文字を直に包含している~box上の~propが,その機会における行-分断法を制御する。 ◎ For soft wrap opportunities created by characters that disappear at the line break (e.g. U+0020 SPACE), properties on the box directly containing that character control the line breaking at that opportunity.\
- [ 文字↔間/`不可分な行内$↔間 ]の境界により定義される`自動折返し機会$に対しては、 当の[ 2 個のそれ ]に最も近い共通な先祖~上の `white-space$p ~propが分断法を制御する — そのような境界が`自動折返し機会$になるかどうかの決定は、 要素の[ `line-break$p, `word-break$p, `overflow-wrap$p ]~propが制御するが,この~levelにおいては定義されない。 ◎ For soft wrap opportunities defined by the boundary between two characters or atomic inlines, the white-space property on the nearest common ancestor of the two characters controls breaking; which elements’ line-break, word-break, and overflow-wrap properties control the determination of soft wrap opportunities at such boundaries is undefined in this level.
- ~boxの[ 最初の文字の前/最後の文字の後 ]の`自動折返し機会$に対しては、 分断は,~boxの[ 直前/直後 ](の~margin辺の所)に生じる — ~boxを その[ 内容~辺 ↔ 内容 ]間で分断するのではなく。 ◎ For soft wrap opportunities before the first or after the last character of a box, the break occurs immediately before/after the box (at its margin edge) rather than breaking the box between its content edge and the content.
- `~ruby$の[ 中/周り ]における行-分断法は、 `CSS-RUBY-1$r `§ 複数~行lへの分断-法@~CSSRUBY#line-breaks$ にて定義される。 ◎ Line breaking in/around Ruby is defined in CSS Ruby Annotation Layout 1 § 3.4 Breaking Across Lines. [CSS-RUBY-1]
-
~Arabicなどの用字系の単語に対しては、 その中の非強制な`自動折返し機会$†による`折返ng$の所では、 文字は,単語~全体のままであったかのように(繋がっている形で)形状付けるモノトスル (†
`word-break$p1: `break-all$v1
/`line-break$p1: `anywhere$v1
/`overflow-wrap$p1: `break-word$v1
/`overflow-wrap$p1: `anywhere$v1
に因る,あるいは~hyphen化などに因る分断)。 ◎ When shaping scripts such as Arabic wrap at unforced soft wrap opportunities within words (such as when breaking due to word-break: break-all, line-break: anywhere, overflow-wrap: break-word, overflow-wrap: anywhere, or when hyphenating) the characters must still be shaped (their joining forms chosen) as if the word were still whole.例えば、 単語 `#646#648#634#62A#646^lt が `#634^lt ↔ `#62A^lt 間で分断される場合でも,依然として:
- `#634^lt は、 その語頭形( `initial form^en, `#FEB7^lt )をとる — `#646#648#634^lt ではなく, `#FEE7#FEEE#FEB7^lt 内にあるかのように。
- `#62A^lt は、 その語中形( `medial form^en, `#FE98^lt )をとる — `#62A#646^lt ではなく, `#FE98#FEE6^lt 内にあるかのように。
6. 行-分断法と単語~境界
ほとんどの書記~体系では、 `自動折返し機会$が生じる所は,単語~境界に限られる (`~hyphen化$が無い下では)。 そのような体系の多くが、 `~space$や約物†を利用して単語を明示的に分離させており,`自動折返し機会$はこれらの文字で識別できる。 ◎ 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.
しかしながら, ~Thai, ~Lao, ~Khmer, などの用字系では、 単語を分離するような`~space$や約物を利用しない。 これらの用字系においては、 明示的な単語~区切子として 零幅~space( `200B^U )を利用できるが,この実施は共通的なものではない。 その結果、 そのような~textにおいて`自動折返し機会$を正しく識別するための,字句-資源が必要になる。 ◎ Scripts such as Thai, Lao, and Khmer, however, do not use spaces or punctuation to separate words. Although the zero width space (U+200B) can be used as an explicit word delimiter in these scripts, this practice is not common. As a result, a lexical resource is needed to correctly identify soft wrap opportunities in such texts.
【† 具体的にどの文字が約物( `punctuation mark^en, または単に `punctuation^en )と見なされるかは、 用字系のみならず,各種~layout処理も含め、 文脈に応じて様々になるかもしれない。 】
一部の書記~体系では、 `自動折返し機会$は — 単語~境界ではなく — 正書法~上の音節~境界に基づいている。 これらの体系のうち一部 — 特に,~Javaneseや~Balineseなどの~Brahmic用字系 — は、 ~Thaiや~Laoと類似に,分断する機会を見出すために分析を要する。 `~Unicode行-分断法~class$ `SA^uc に属する文字を利用する言語と違って、 この分析は,[ `内容~言語$に依存しない/ (言語に特有な)`単語~境界の検出$や字句-資源を要求しない ]。 ◎ In some other writing systems, soft wrap opportunities are based on orthographic syllable boundaries, not word boundaries. Some of these systems, notably Brahmic scripts such as Javanese and Balinese, require analysis of the text to find breaking opportunities. Unlike languages that use characters from the SA line breaking class, this analysis does not depend on the content language nor requires (language specific) word boundary detection or a lexical resource.
中国語など(あるいは 日本語, ~Yi, ときには韓国語も),他の書記~体系においては、 各~音節は単独の`~typographic字l単位$に対応する傾向にあり,行-分断法~規約により[ ある種の組合nによる文字 ]↔間を`除き^em,どこでも行lを分断することが許容される。 加えて、 これらの制約における`厳密さ$の~levelは,植字~styleにより様々になり得る。 ◎ In others such as Chinese (as well as Japanese, Yi, and sometimes also Korean), each syllable tends to correspond to a single typographic letter unit, and thus line breaking conventions allow the line to break anywhere except between certain character combinations. Additionally the level of strictness in these restrictions varies with the typesetting style.
~CSSは,`自動折返し機会$が生じる所を全部的には定義しないが、 共通的な多様さを判別するための制御をいくつか供する。 ◎ While CSS does not fully define where soft wrap opportunities occur, some controls are provided to distinguish common variations:
- `line-break$p ~propは、 行l分断法の制約~用に様々な~levelの “厳密さ” を選べるようにする。 それは、 どの型の字lどうしが一まとめにされ,分断-不能な “単語” を形成するかを制御する — それに伴い ⇒# ~CJK文字を非~CJK~textの様に, あるいはその逆に挙動させる/ 東南Asian言語において単語~検出に対する制御を可能化する/ 単語たちが句へ~group化されるのを許容する/ …等々 ◎ The line-break property allows choosing various levels of “strictness” for line breaking restrictions. ◎ The word-break property controls what types of letters are glommed together to form unbreakable “words”,\ causing CJK characters to behave like non-CJK text or vice versa,\ enabling control over word detection in South East Asian Languages,\ or allowing words to be grouped into phrases…
- `hyphens$p ~propは、 ~hyphen化するような用字系において,単語を分断する自動的な~hyphen化を許容するかどうかを制御する。 ◎ The hyphens property controls whether automatic hyphenation is allowed to break words in scripts that hyphenate.
- `overflow-wrap$p ~propは、[ 他では分断-不能で~overflowすることになる文字列 ]内のどこでも分断-可能にすることを,~UAに許容する。 ◎ The overflow-wrap property allows the UA to take a break anywhere in otherwise-unbreakable strings that would otherwise overflow.
注記: `UAX14$r は、 ~Unicode内のすべての用字系に対し,行-分断法のための基底線の挙動を定義する — それらは、 さらに誂えられるものと期待されている。 行-分断法~規約の情報は、[ 日本語については `JLREQ$r, `JIS4051$r / 中国語については `CLREQ$r, `ZHMARK$r ]にもっと見出せる。 他の言語についての情報は、 `国際化~WG@~I18N/$による `TYPOGRAPHY$r `§ 行lと段落@~TR/typography/#blocks_paragraphs$ に含まれている。 ここに示すべき,適切な文献について追加的な指導があれば、 とてもありがたい。 ◎ Note: Unicode Standard Annex #14: Unicode Line Breaking Algorithm defines a baseline behavior for line breaking for all scripts in Unicode, which is expected to be further tailored. [UAX14] More information on line breaking conventions can be found in Requirements for Japanese Text Layout [JLREQ] and Formatting Rules for Japanese Documents [JIS4051] for Japanese, Requirements for Chinese Text Layout [CLREQ] and General Rules for Punctuation [ZHMARK] for Chinese. See also the Internationalization Working Group’s Language Enablement Index which includes more information on additional languages. [TYPOGRAPHY] Any guidance on additional appropriate references would be much appreciated.
6.1. 字l用の分断ng規則: `word-break^p ~prop
◎名 `word-break@p ◎値 `normal$v | `break-all$v | `keep-all$v | `manual$v | `auto-phrase$v | `break-word$v ◎初 `normal^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終`word-break$p ~propは、[ 単語↔間, 単語の中 ]の`自動折返し機会$ — すなわち、 ~text行lのどこが,分断を許可-可能な “通常の所” とされるか — を指定する。 これは、 字l↔間の分断に~focusするが: ◎ This property specifies soft wrap opportunities between and within “words”, i.e. where it is “normal” and permissible to break lines of text. It focuses on breaks between letters,\
-
次に挙げる箇所に`自動折返し機会$が[ 作成されるかどうか,どう作成されるか ]は、 定義しない:
- `空白$や`その他の~space分離子$ ( `auto-phrase$v は一部を抑止し得るが)
- 約物の周り (約物や`小書き~Kana$に影響する制御については、 `line-break$p を見よ)
- 特に,`~typographic字l単位$↔間に[ `自動折返し機会$は,一般に存在するかどうか ]を制御する — ただし,この目的に限り、 `~Unicode行-分断法~class$[ `NU^uc / `AL^uc / `AI^uc / `ID^uc ]に属する(`字l$でない)`~typographic文字~単位$も`~typographic字l単位$として扱う。 ◎ In particular, word-break controls whether a soft wrap opportunity generally exists between adjacent typographic letter units, treating non-letter typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes as typographic letter units for this purpose (only). [UAX14]
例えば,~CJK植字では、
~styleによっては、
~English単語は,[
~spaceの所/~hyphen化~地点
]のみならず,どの字l↔間でも分断が許容される
— これは
`word-break$p: `break-all$v
で可能化できる。
◎
For example, in some styles of CJK typesetting, English words are allowed to break between any two letters, rather than only at spaces or hyphenation points; this can be enabled with word-break:break-all.
別の例として、
韓国語の行-分断法には 2 種の~styleがある
— 韓国語~音節↔間
( `word-break$p: `normal$v
),
または~Englishと同様に~~主に~spaceの所で
( `word-break$p: `keep-all$v
):
◎
As another example, Korean has two styles of line-breaking: between any two Korean syllables (word-break: normal) or, like English, mainly at spaces (word-break: keep-all).
각 줄의 마지막에 한글이 올 때 줄 나눔 기
준을 “글자” 또는 “어절” 단위로 한다.
각 줄의 마지막에 한글이 올 때 줄 나눔
기준을 “글자” 또는 “어절” 단위로 한다.
~Ethiopicの行-分断法にも同様に 2 種の~styleがある
— `単語~分離子$の所に限り分断するか
( `word-break$p: `normal$v
),
単語の中の各~字l↔間にも分断を許容する
( `word-break$p: `break-all$v
):
◎
Ethiopic similarly has two styles of line-breaking, either only breaking at word separators (word-break: normal), or also allowing breaks between letters within a word (word-break: break-all).
ተወልዱ፡ኵሉ፡ሰብእ፡ግዑዛን፡ወዕሩያን፡
በማዕረግ፡ወብሕግ።ቦሙ፡ኅሊና፡ወዐቅል፡
ወይትጌበሩ፡አሐዱ፡ምስለ፡አሀዱ፡
በመንፈሰ፡እኍና።
ተወልዱ፡ኵሉ፡ሰብእ፡ግዑዛን፡ወዕሩያን፡በማ
ዕረግ፡ወብሕግ።ቦሙ፡ኅሊና፡ወዐቅል፡ወይትጌ
በሩ፡አሐዱ፡ምስለ፡አሀዱ፡በመንፈሰ፡እኍና።
各種 値の意味は: ◎ Values have the following meanings:
- `normal@v
- `§ 行-分断法と単語~境界@#line-breaking$にて述べたとおり,単語たちを それらの【言語において】慣習的な規則に則って分断する。 異なる 2 種の共通的な挙動を呈する韓国語では、 連続な どの[ ~Hangul, ~Hanja ]↔間でも分断が許容される。 同じく 2 種の挙動を呈する~Ethiopicでは、 そのような分断は単語の中では許容されない。 ◎ Words break according to their customary rules, as described above. Korean, which commonly exhibits two different behaviors, allows breaks between any two consecutive Hangul/Hanja. For Ethiopic, which also exhibits two different behaviors, such breaks within words are not allowed.
- 一部の書記~体系には、 慣習的に期待される`自動折返し機会$を得するため,特有な処理が要求される — `§ 分析的な単語~分断法@#analytical-word-breaking$ にて述べられるとおり。 ◎ Some writing systems require specific processing to obtain the customarily expected soft wrap opportunities, as described in § 6.1.1 Analytical Word Breaking.
- `break-all@v
-
`normal$v による`自動折返し機会$に加えて、 “単語” の中で分断することも許容される。 特定的には,行-分断法の目的においては、 次に挙げるものは,代わりに `ID^uc ( `ideographic character^en, 表語-文字)に属するものとして扱われる:
- `~typographic字l単位$
- `~typographic文字~単位$のうち,その`~Unicode行-分断法~class$が 次のいずれかに解決されるもの ⇒# `NU^uc ( “`numeric^en” = 数量- ) `AL^uc ( “`alphabetic^en” = ~alphabetic ) `SA^uc ( “`Southeast Asian^en” = 東南Asian )
- ~hyphen化は適用されない。 ◎ Hyphenation is not applied.
- 注記:
この値は、
約物~周りの`自動折返し機会$には影響しない。
分断をどこでも許容したければ,
`line-break$p1: `anywhere$v1
を見よ。 ◎ Note: This value does not affect whether there are soft wrap opportunities around punctuation characters. To allow breaks anywhere, see line-break: anywhere. - 注記: この~optionは、 ~Ethiopic用に,他の共通的な挙動を可能化する。 また、[ ~CJK文字が元々支配的で,非~CJK~textは 短い引用に限られる文脈 ]の下で[ ~textを各~行lに,もっと良く分布させたいと欲されるとき ]に利用されることも多い。 ◎ Note: This option enables the other common behavior for Ethiopic. It is also often used in a context where the text consists predominantly of CJK characters with only short non-CJK excerpts, and it is desired that the text be better distributed on each line.
- `keep-all@v
- “単語” の中で分断することは、 禁止される: `~typographic字l単位$ (あるいは,`~Unicode行-分断法~class$[ `NU^uc / `AL^uc / `AI^uc / `ID^uc ]に属する他の`~typographic文字~単位$) ↔間の,暗黙的な`自動折返し機会$は抑止される — すなわち,そのような文字↔間の分断は、 `§ 字句-単語~分断法@#lexical-breaking$ に基づく分断法に因り存在する機会を除いて,禁則される ( `line-break$p1 に対する `anywhere$v1 以外の設定に関わらず)。 他に関しては、 `normal$v と等価になる。 この~styleにおいては、 ~CJK文字~並びは分断しない。 ◎ Breaking is forbidden within “words”: implicit soft wrap opportunities between typographic letter units (or other typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes [UAX14]) are suppressed, i.e. breaks are prohibited between pairs of such characters (regardless of line-break settings other than anywhere) except where opportunities exist due to § 6.1.1.1 Lexical Word Breaking. Otherwise this option is equivalent to normal. In this style, sequences of CJK characters do not break.
- 注記: これは、 韓国語における もう一つの共通的な挙動(単語↔間に`~space$を利用する)である。 また、[ `~space$を分離に利用するような別の言語の中に,~CJK片が混在している ]ような,混在用字系~textに対しても有用になる。 ◎ Note: This is the other common behavior for Korean (which uses spaces between words), and is also useful for mixed-script text where CJK snippets are mixed into another language that uses spaces for separation.
- `manual@v
- `normal$v と同じに挙動する — `§ 字句-単語~分断法@#lexical-breaking$ は,`遂行しない^emモノトスルことを除いて。 特定的に, `~Unicode行-分断法~class$ `SA^uc に属する`~typographic文字~単位$は、 ~class `AL^uc であったかのように扱うモノトスル (すなわち, `line-break$p1 は `anywhere$v1 以外の値をとると見做すなら、 そのような文字↔間には`自動折返し機会$は無い)。 ◎ Behaves the same as normal, except that § 6.1.1.1 Lexical Word Breaking must not be performed. Specifically, typographic character units with class SA in [UAX14] must be treated as if they had class AL (i.e. assuming a value of line-break other than anywhere, there is no soft wrap opportunity between pairs of such characters).
- 注記: この値は、 ~Balineseなどの言語における[ 単語の中の,音節に基づく`自動折返し機会$ ]には影響しない (そのような書記~体系に関する論点は、 `§ 正書法~上の分断法@#orthographic-breaking$ を見よ)。 ◎ Note: This value does not affect syllable-based soft wrap opportunities within words in languages such as Balinese. (See § 6.1.1.2 Orthographic Breaking for some discussion of such writing systems.)
- 代替として、 この値は, `normal$v ではなく `keep-all$v に基づくようにすることもできた。 他にも, `keep-all^v とこの挙動を併合する別の変種もある。 ◎ alternatively, this value could be based on keep-all rather than normal. Yet another variant is to merge this behavior with keep-all.
-
注記: 一部の東南Asian言語は、 ~UAにより共通的に誤-検出される。 それらは、 `normal$v の下では,不適切な[ 言語に特有な~logic ]を適用して見出される折返ng機会たちを不適切に配置することになる。 ◎ Note: Some Southeast Asian languages are commonly misdetected by user agents. With word-break: normal, they would then apply inappropriate language-specific logic to find wrapping opportunities, and place them inappropriately.
一例として, ~Thai以外の多くの言語が,~Thai用字系を利用して記される — それらを~Thaiであったかのように行-分断すると、 一般に,必要十分でない — 場合によっては紛らわしい — 結果を生産することになる。 ◎ For instance, many languages other than Thai are written using the Thai script, and line-breaking them as if they were Thai will generally produce inadequate—and possibly confusing—results.
この値は、 これが生じるときに[ ~UAの中に築かれた `normal$v 用の単語~境界~検出 ]をオフにすることを作者に可能化する — 作者が[ ~textを手動で~mark-upして,折返ng機会を指示する ]ことにより、 イミを成し得る結果を得せるよう。 ◎ When this occurs, this value enables authors to turn off the word boundary detection built into user agents for word-break: normal, so that they can manually mark up the text to indicate wrapping opportunities and obtain sensible results.
この値を利用している作者は、 東南Asian言語~用には,[ `wbr$e / `200B^U ]を利用して単語~境界を手動で指示することが期待される。 さもなければ、 `自動折返し機会$は無いので,~textは~overflowし得る。 ◎ Authors using this value are expected to manually indicate word boundaries for Southeast Asian languages, using wbr or U+200B. Otherwise, there will be no soft wrap opportunity and the text may overflow.
- `auto-phrase@v
- 次を指図することを除いて, `normal$v と同じに挙動する ⇒ ~UAは、 (複数の単語が成す)自然な句を一緒に保つことを優先するよう,言語に特有な内容~分析を遂行する。 ◎ Behaves the same as normal, except that this value directs the user agent to perform language-specific content analysis to prioritize keeping natural phrases (of multiple words) together.
- この値は、 要素の`内容~言語$が[ 未知な場合/ ~UAは,それ用に`句~境界を検出-$する方法を知らない場合 ]には, `normal$v として挙動するモノトスル。 他の場合、 ~UAは,[ `句~境界を検出-$して,各~句の中の`自動折返し機会$を抑止する ]ベキである。 ◎ If the content language of the element is unknown, or if the user agent does not know how to detect phrase boundaries for that particular language, this value must behave as normal. Otherwise, the user agent should detect phrase boundaries and suppress soft wrap opportunities within each phrase.
- `~hyphen化~機会$は、[ `内容~言語$, `句~境界の検出$用の~support有無 ]に関わらず,[ `hyphens$p1 に `none$v1 が指定されていた ]かのように抑止される。 ◎ Regardless of the content language and support for phrase boundary detection, hyphenation opportunities are suppressed as if hyphens: none had been specified.
- 注記: [ ある言語~用に設計された単語~境界~検出~system ]が[ その言語を成す各~方言~用に相応しいかどうか ]は,いくぶん主観的であり、 この仕様は,それを~UAの裁量に委ねる。 検出~systemが[ 特定0の方言を成す,すべての意味合いに対処可能でない場合 ]でも、[ 当の検出が,ほとんどの回で単語~境界を正しく認識する場合 ]には,~supportを主張しても適理であろう。 しかしながら、 ~UAが,所与の言語に対し[ ほとんどの単語~境界で検出することに失敗するか, ~~高確率で誤った単語~境界を検出する所 ]でも[ 当の言語~用の~supportを主張した場合 ]には、 作者や利用者にとって~~不利益になろう。 ◎ Note: Whether a word boundary detection system designed for one language is suitable for some or all dialects of that language is somewhat subjective, and this specifications leaves it at the discretion of the user agent. Even if a detection system is not able to cope with all nuances of a particular dialect, it may be reasonable to claim support if the detection correctly recognizes word boundaries most of the time. However, the user agent would do a disservice to authors and users if it claimed support for languages where it fails to detect most word boundaries or has a high error rate.
-
~UAが[ 広東語~用の単語~境界の検出~system ]を備えていて,それは[ より~~広範な,中国語の言語たちが成す集合には相応しくない ]場合、 `auto-phrase$v は,内容に~markされた `lang^a 属性の値が[ `yue^v / `zh-yue^v / `zh-HK^v ]ならば効果を及ぼし,[ `zh^v / `zh-Hant^v ]ならば効果を及ぼさないベキである。 ◎ If a user agent has a word-boundary detection system for Cantonese that is not suitable for the broader set of Chinese languages, auto-phrase should have an effect on content marked as lang=yue, lang=zh-yue, or lang=zh-HK, but not lang=zh or lang=zh-Hant.
しかしながら,~UAが[ 一般において中国語に相応しい,汎用な単語~境界の検出~system ]を~supportする場合、 `auto-phrase$v は,内容に~markされた `lang^a 属性の値が より~~広範な `zh^v の場合でも — より特定な[ `zh-yue^v / `zh-Hant-HK^v / `zh-Hans-SG^v / `zh-hak^v ]などに加えて — 効果を及ぼすベキである。 ◎ However, if the user agent supports a generic word-boundary detection system that is suitable for Chinese in general, auto-phrase should have an effect on content marked with the broad lang=zh characterization, as well as any more specific ones, such as lang=zh-yue, lang=zh-Hant-HK, lang=zh-Hans-SG, or lang=zh-hak.
特定0の字種に属する字lと同じ仕方で行-分断する記号は、 それらの字lと同じ仕方で影響される。 ◎ Symbols that line-break the same way as letters of a particular category are affected the same way as those letters.
~UAは、 この~propの値が何であれ,次に挙げる`自動折返し機会$は抑止しないモノトスル: ◎ User agents must not, in response to any value of this property, suppress soft wrap opportunities which are:
- [ ~HTMLの `wbr$e 要素/ `200B^U `ZERO WIDTH SPACE^cn ]により導入されるもの ◎ introduced by the wbr HTML element or U+200B ZERO WIDTH SPACE
- `line-break$p ~propにより要求されるもの ◎ required by the line-break property
- `前後にある不可分な行内@#atomic-compat-wrap$ ◎ surrounding atomic inlines
注記: ~overflowする事例に限り可用になる,追加的な分断~機会を制御するためには、 `overflow-wrap$p を見よ。 ◎ Note: To control additional break opportunities available only in the case of overflow, see overflow-wrap.
`word-break$p の効果は、 `内在的~size$を算出するときに織り込まれる。 ◎ The effects of word-break are taken into account when computing intrinsic sizes.
混在用字系~textの見本: ◎ Here’s a mixed-script sample text:
分断点( ‘·’ で指示される)は、 `word-break$p 値に応じて,次のように決定される: ◎ The break-points are determined as follows (indicated by ‘·’):
- `normal$v
- `这·是·一·些·汉·字·and·some·Latin^lt·`#648·#6A9#645#6CC·#62E#637·#639#631#628#6CC^lt·`และ·ตัวอย่าง·การเขียน·ภาษาไทย·በጽሑፍ፡·ማራዘሙን፡·አንዳንድ፡^lt
- `break-all$v
- `这·是·一·些·汉·字·a·n·d·s·o·m·e·L·a·t·i·n^lt·`#648·#FB90·#FEE4·#FEF0·#FEA7·#FEC1·#FECB·#FEAE·#FE91·#FEF0^lt·`แ·ล·ะ·ตั·ว·อ·ย่·า·ง·ก·า·ร·เ·ขี·ย·น·ภ·า·ษ·า·ไ·ท·ย·በ·ጽ·ሑ·ፍ፡·ማ·ራ·ዘ·ሙ·ን፡·አ·ን·ዳ·ን·ድ፡^lt
- `keep-all$v
- `这是一些汉字·and·some·Latin^lt·`#648·#6A9#645#6CC·#62E#637·#639#631#628#6CC^lt·`และ·ตัวอย่าง·การเขียน·ภาษาไทย·በጽሑፍ፡·ማራዘሙን፡·አንዳንድ፡^lt
~Arabicなどの用字系を形状付ける際には、 `break-all$v に因り単語の中の分断が許容される文字は,その単語が`分断されなかった@#word-break-shaping$かのように形状付けるモノトスル。 ◎ 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.
旧来の内容との互換性を得るため、
`word-break$p ~propは,非推奨にされた~keyword
`break-word@v
も~supportする。
指定されたときは、[
`word-break$p1: `normal$v1
,
`overflow-wrap$p1: `anywhere$v1
]にされたときと同じ効果になるとする
— `overflow-wrap^p ~propの実際の値に関わらず。
◎
For compatibility with legacy content, the word-break property also supports a deprecated break-word keyword. When specified, this has the same effect as word-break: normal and overflow-wrap: anywhere, regardless of the actual value of the overflow-wrap property.
6.1.1. 分析的な単語~分断法
6.1.1.1. 字句-単語~分断法
東南Asian言語~用に期待される `normal$v の挙動を供するため、 `~Unicode行-分断法~class$ `SA^uc に属する`~typographic文字$は、 ~class `AL^uc に属するかのように扱うモノトスル。 しかしながら,~UAは、[ `単語~境界を検出-$して,各~境界を`自動折返し機会$として扱う ]ためとして[ そのような文字たちが成す連なりの内容を追加的に分析する ]モノトスル。 ◎ To provide the expected normal behavior for Southeast Asian languages, typographic character units with line breaking class SA in [UAX14] must be treated as if they had class AL. However, the user agent must additionally analyze the content of a run of such characters to detect word boundaries and treat each boundary as a soft wrap opportunities.
様々な言語が~class `SA^uc に属する文字を利用する用字系で記され得るので、 ~UAは,[ `内容~言語$が既知な場合には、 この情報を利用して その分析を誂える ]ベキである。 ◎ As various languages can be written in scripts which use the characters with class SA, if the content language is known, the user agent should use this information to tailor its analysis.
6.1.1.2. 正書法~上の分断法
正書法~上の音節に基づく行l分断法を利用する用字系(~Balineseなど)に対しては、 ~UAは,内容を分析して`自動折返し機会$を挿入する正しい地点を見出すモノトスル。 ◎ For scripts (such as Balinese) that use line breaking based on orthographic syllables, the UA must analyze the content to find the correct points to insert soft wrap opportunities.
注記: これを書いている時点では、 ~Unicodeは,この分析を遂行する方法を定義しておらず, これらの書記~体系に属するすべての文字を`~Unicode行-分断法~class$ `AL^uc に属するものと扱う。 しかしながら,その課題を解くための`提案@https://www.unicode.org/L2/L2022/22080r-line-break-ortho-bnd.pdf$も為された。 それは、 最終的でないとしても,参考として諮れるものにはなる。 `L2-22-080R$r ◎ Note: At the time of writing, Unicode does not define how to perform this analysis, and treats all characters in these writing systems as having line breaking class AL. However, a proposal has been made to solve that issue. Even though it is not final, it can be informative to consult. [L2-22-080R]
6.1.1.3. ~fallback分断法
[ 期待されない~overflowを避けるよう,行lを分断する ]ためには,`内容~言語$に必須な[ 字句-分析/正書法~上の分析 ]が要求されるが、 それが遂行-不能な~UAは (例えば,~class `SA^uc に属する文字で記された言語~用の辞書を欠くことに因り),[ 該当する書記~体系における~typographic字l単位↔間には、 `自動折返し機会$がある ]と見做すモノトスル。 ◎ In order to avoid unexpected overflow, if the user agent is unable to perform the requisite lexical or orthographic analysis for line breaking any content language that requires it—for example due to lacking a dictionary for languages written in characters with class SA—it must assume a soft wrap opportunity between pairs of typographic letter units in that writing system.
注記: この条項は、 単に[ ~UAが,特定0の~text連なり内で単語~境界を見出すことに失敗した ]だけでは誘発されない — 当の~text連なりは、 分断-不能な単独の単語を成すこともよくある。 それは、 例えば,[ ~text連なりが~Khmer文字( `1780^U 〜 `17FF^U )から構成されていて、 ~UAは~Khmerにおいて単語~境界を決定する方法を知らない場合 ]に適用される。 ◎ Note: This provision is not triggered merely when the UA fails to find a word boundary in a particular text run; the text run may well be a single unbreakable word. It applies for example when a text run is composed of Khmer characters (U+1780 to U+17FF) if the user agent does not know how to determine word boundaries in Khmer.
6.1.2. 句に基づく行l分断法のための利用者~選好の表出-法
~UAは、 利用者~選好に呼応して, `auto-phrase$v にて述べられる言語に特有な内容~分析を作動化してもヨイ。 この挙動を伴う~UAは、[ `利用者~出自$における `word-break$p の`宣言d値$を `auto-phrase^v に設定する ]ことにより,これを行うモノトスル。 ◎ User agents may activate language-specific content analysis described in auto-phrase in response to user preferences. User agents with this behavior must do this by setting the declared value of word-break to auto-phrase in the user origin.
注記: これは、[ この特能が可能化されたかどうか検出する ]ことを作者に許容する — [ `getComputedStyle()$c を~callする/ `作者~出自$における適切な所で それを上書きする ]ことにより。 ◎ Note: This allows authors to detect whether or not this feature is enabled by calling getComputedStyle(), or to override it in the author origin where appropriate.
6.2. 行-分断法の厳密さ: `line-break^p ~prop
◎名 `line-break@p ◎値 `auto$v | `loose$v | `normal$v | `strict$v | `anywhere$v ◎初 `auto^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 要素の中で適用される行-分断ng規則の`厳密さ$を指定する — とりわけ、 `折返ng$が 約物や記号 と どう相互作用するかについて。 各種 値の意味は: ◎ This property specifies the strictness of line-breaking rules applied within an element: especially how wrapping interacts with punctuation and symbols. Values have the following meanings:
- `auto@v
- ~UAが、 行-分断法を制約するために利用する規則たちが成す集合を決定する。 制約は、 行lの長さに基づいて様々になり得る — 例えば短い行lに対しては、 より制約が緩い規則たちが成す集合を利用するなど。 ◎ The UA determines the set of line-breaking restrictions to use, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.
- `loose@v
- 最も制約が緩い行-分断ng規則たちが成す集合を利用して~textを分断する。 概して、 新聞など,行lが短いものに対し利用される。 ◎ Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.
- `normal@v
- 最も共通的な行-分断ng規則たちが成す集合を利用して~textを分断する。 ◎ Breaks text using the most common set of line-breaking rules.
- `strict@v
- 最も厳格な行-分断ng規則たちが成す集合を利用して~textを分断する。 ◎ Breaks text using the most stringent set of line-breaking rules.
- `anywhere@v
-
`自動折返し機会$は、 どの`~typographic文字~単位$の周りにもある:
- これには、[ 約物/`保全d空白$/単語の途中 ]も含まれる。
- 行l分断に抗する禁則は、 無視rする — `~Unicode行-分断法~class$[ `GL^uc / `WJ^uc / `ZWJ^uc ]に属する文字により導入されるものや, `word-break$p ~propにより義務付けられるものであっても。
- 異なる折返ng機会は優先しないモノトスル。 ~hyphen化は適用されない。 ◎ The different wrapping opportunities must not be prioritized. Hyphenation is not applied.
- 注記: この値は、 概して~terminalに見られる行-分断ng規則を誘発する。 ◎ Note: This value triggers the line breaking rules typically seen in terminals.
- 注記: この値が作成する`自動折返し機会$は、 `~typographic文字~単位$↔間に限られる — それらの中ではなく。 その帰結として、 `~Unicode行-分断法~class$[ `CM^uc, `SG^uc ]は,尊守されなければならない。 `UAX14$r ◎ Note: This values only creates soft wrap opportunities between typographic character units, not within them. Consequently, the CM and SG Unicode line breaking classes must be honored. [UAX14]
-
注記: `anywhere$v は、 `white-space$p1 が `break-spaces$v1 に設定されているときに限り, 行lの末尾にある`保全d空白$を次の行lに折返すことを許容する — 他の事例では、 次により許容されない: ◎ Note: anywhere only allows preserved white spaces at the end of the line to be wrapped to the next line when white-space is set to break-spaces, because in other cases:
- `normal$v1 / `pre-line$v1 の場合 ⇒ 行lの終端や始端にある`保全d空白$は、 破棄されるので。 ◎ preserved white space at the end/start of the line is discarded (normal, pre-line)
- `nowrap$v1 / `pre$v1 の場合 ⇒ 折返ngは、 総じて禁止されるので。 ◎ wrapping is forbidden altogether (nowrap, pre)
- `pre-wrap$v1 の場合 ⇒ `保全d空白$は、 `吊下がる$ので。 ◎ the preserved white space hang (pre-wrap).
`break-spaces$v1 による,そのような効果による分断ngは、 `保全d空白$の並びを成す最初の~spaceの前にて許容される。
`white-space$p: `break-spaces^v
だけで許容されることはない。 ◎ When it does have an effect on preserved white space, with white-space: break-spaces, it allows breaking before the first space of a sequence, which break-spaces on its own does not.
~CSSでは、 ~text折返ng規則の `厳密さ@ が, 4 ~level 【すなわち、 `line-break^p 用の `auto^v 以外の値】 で判別される。 それらのうち[ `loose^v / `normal^v / `strict^v ]~levelに対し効果中な規則たちが成す集合が精確にどうなるかは、 ~UAに委ねられ,言語ごとの規約に従うベキである。 しかしながら,この仕様では、 これら 3 つの~keyword用には,次が要求される: ◎ 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, for these three keywords, this specification does require that:
-
次に挙げる分断は、 行-分断法が `strict$v のときは禁止され,[ `normal$v / `loose$v ]のときは許容される: ◎ The following breaks are forbidden in strict line breaking and allowed in normal and loose:
- 次に挙げる日本語の文字 — すなわち,`~Unicode行-分断法~class$ `CJ^uc に属する文字 — の前にある分断 ⇒# `小書き~Kana$ / 長音符 `30FC^gU `KATAKANA-HIRAGANA PROLONGED SOUND MARK^cn / 長音符 `FF70^gU `HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK^cn ◎ breaks before Japanese small kana or the Katakana-Hiragana prolonged sound mark, i.e. characters from the Unicode line breaking class CJ. [UAX14]
-
次に挙げる分断は、 `書記~体系$が[ `中国語$wsまたは`日本語$ws ]である下では,行-分断法が[ `normal$v / `loose$v ]のときは許容され, `strict$v のとき【!otherwise】は禁止される: ◎ The following breaks are allowed for normal and loose line breaking if the writing system is Chinese or Japanese, and are otherwise forbidden:
- 次に挙げる[ ~CJKにおける,~hyphenの様な文字 ]の前にある分断 ⇒# `301C^gU, `30A0^gU ◎ breaks before certain CJK hyphen-like characters: 〜 U+301C, ゠ U+30A0
-
次に挙げる分断は、 行-分断法が `loose$v かつ[ 先行する文字が`~Unicode行-分断法~class$ `ID^uc に属する ]ときは許容され (
`word-break$p: `break-all^v
に因り, 先行する文字が `ID^uc として扱われる場合も含む), 他のときは禁止される: ◎ The following breaks are allowed for loose line breaking if the preceding character belongs to the Unicode line breaking class ID [UAX14] (including when the preceding character is treated as ID due to word-break: break-all), and are otherwise forbidden:- 次に挙げる~hyphenの前にある分断 ⇒# `2010^gU, `2013^gU ◎ breaks before hyphens: ‐ U+2010, – U+2013
-
次に挙げる分断は、 行-分断法が[ `normal$v / `strict$v ]のときは禁止され, `loose$v のときは許容される: ◎ The following breaks are forbidden for normal and strict line breaking and allowed in loose:
- 次に挙げる反復符の前にある分断 ⇒# `3005^gU, `303B^gU, `309D^gU, `309E^gU, `30FD^gU, `30FE^gU ◎ breaks before iteration marks: 々 U+3005, 〻 U+303B, ゝ U+309D, ゞ U+309E, ヽ U+30FD, ヾ U+30FE
- 次に挙げる分離-不能~文字↔間の分断 ⇒ `~Unicode行-分断法~class$ `IN^uc に属する文字 ( `2025^gU, `2026^gU など)。 ◎ breaks between inseparable characters (such as ‥ U+2025, … U+2026) i.e. characters from the Unicode line breaking class IN. [UAX14]
-
次に挙げる分断は、 `書記~体系$が[ `中国語$wsまたは`日本語$ws ]である下では,行-分断法が `loose$v のときは許容され,[ `normal$v / `strict$v ]のとき【!otherwise】は禁止される: ◎ The following breaks are allowed for loose if the writing system is Chinese or Japanese and are otherwise forbidden:
- 次に挙げる `centered^en 約物符の前にある分断 ⇒# `30FB^gU, `FF1A^gU, `FF1B^gU, `FF65^gU, `203C^gU, `2047^gU, `2048^gU, `2049^gU, `FF01^gU, `FF1F^gU ◎ breaks before certain centered punctuation marks: ・ U+30FB, : U+FF1A, ; U+FF1B, ・ U+FF65, ‼ U+203C, ⁇ U+2047, ⁈ U+2048, ⁉ U+2049, ! U+FF01, ? U+FF1F
- 次を満たす文字の前にある分断 ⇒ `~Unicode行-分断法~class$ `PO^uc に属する接尾辞のうち, `東Asian字幅~prop$ `UAX11$r は[ `Ambiguous^uc / `Fullwidth^uc / `Wide^uc ]に分類されるもの ◎ breaks before suffixes: Characters with the Unicode line breaking class PO [UAX14] and the East Asian Width property [UAX11] Ambiguous, Fullwidth, or Wide.
- 次を満たす文字の後にある分断 ⇒ `~Unicode行-分断法~class$ `PR^uc に属する接頭辞のうち, `東Asian字幅~prop$ `UAX11$r は[ `Ambiguous^uc / `Fullwidth^uc / `Wide^uc ]に分類されるもの ◎ breaks after prefixes: Characters with the Unicode line breaking class PR [UAX14] and the East Asian Width property [UAX11] Ambiguous, Fullwidth, or Wide.
注記: 上に挙げた要件により~~差異が生じるのは、 ~CJK~textに限られる。 上の規則のみに合致し,追加的な規則は無い実装においては、 `line-break$p が影響するのは~CJK符号位置に限られる — 当の書記~体系が[ `中国語$ws/`日本語$ws ]であると~tag付けられていない限り。 この仕様の将来~levelでは、 他の書記~体系や言語~用にも — 要件が既知になるに伴い — それらに特有な規則を追加し得る。 ◎ Note: The requirements listed above only create distinctions in CJK text. In an implementation that matches only the rules above, and no additional rules, line-break would only affect CJK code points unless the writing system is tagged as Chinese or Japanese. Future levels may add additional specific rules for other writing systems and languages as their requirements become known.
~UAは、[ `strict$v, `normal$v, `loose$v ]の間にさらに~~差異を追加できる。 これらの値は、 他の書記~体系においても相違を露にし得る。 例えば,~Thai 言語~処理~用に十分高度な能を有する~UAは、 これらの~keywordを~Thaiの行-分断法において異なる~levelの`厳密さ$に対応付けることも選べる — 例: `strict$v の下では,複合語の中の分断は許容しない (例: `ตัวอย่างการเขียนภาษาไทย^lt を `ตัวอย่าง·การเขียน·ภาษาไทย^lt として分断する) 一方で、 `loose$v の下では,もっと分断を許容する ( `ตัวอย่าง·การ·เขียน·ภาษา·ไทย^lt として分断する) など。 ◎ As UAs can add additional distinctions between strict/normal/loose modes, these values can exhibit differences in other writing systems as well. For example, a UA with sufficiently-advanced Thai language processing ability could choose to map different levels of strictness in Thai line-breaking to these keywords, e.g. disallowing breaks within compound words in strict mode (e.g. breaking ตัวอย่างการเขียนภาษาไทย as ตัวอย่าง·การเขียน·ภาษาไทย) while allowing more breaks in loose (ตัวอย่าง·การ·เขียน·ภาษา·ไทย).
注記: ~UAは,行-分断法の実装~用の出発点として `UAX14$r を参照rできるが、 既存の実装との相互運用能を最大にするためには,次に挙げる逸脱が望ましいこともある: ◎ Note: While user agents can refer to [UAX14] as a starting point for their line-breaking implementation, the following deviations could be desirable for maximum interoperability with existing implementations:
- `0021^gU ↔ 字l(`~Unicode字種$ `L^uc )間には、 行l分断-機会を導入しない。 これは、 文字列 `!important^lt 内の分断を防止する。 ◎ Not introducing a line break opportunity between U+0021 (Exclamation Mark, !) and a letter (Unicode general category L). This prevents a break in the string “!important”.
- `002F^gU ↔ 字l(`~Unicode字種$ `L^uc )間には、 行l分断-機会を導入しない。 これは、 日付(例: `23/Jan/2024^lt )内の分断を防止する。 ◎ Not introducing a line break opportunity between U+002F (Solidus, /) and a letter (Unicode general category L). This prevents a break in dates such as “23/Jan/2024”.
- `007C^gU ↔ 字l(`~Unicode字種$ `L^uc )間には、 行l分断-機会を導入しない。 ◎ Not introducing a line break opportunity between U+007C (Vertical Line, |) and a letter (Unicode general category L).
- `002D^gU ↔ 数字(`~Unicode字種$ `Nd^uc )間には、 ~hyphenの直前にある符号位置が[ 字l(`~Unicode字種$ `L^uc )/数字(`~Unicode字種$ `Nd^uc ) ]でない場合には,行l分断-機会を導入しない。 これは、 負符号を伴う数(例: `-13^lt )が符号の直後で分断されるのを防止する一方で†,[ 例えば長い~URLに現れ得る `ABCD-1234^lt や `1234-5678^lt ]内の~hyphenの直後にある分断を許容する。 【† 正符号 `002B^gU や~hyphenでない負符号 `2212^gU でも同様になるべきであろう。】 ◎ Not introducing a line break opportunity between U+002D (Hyphen-Minus `-`) and a digit (Unicode general category Nd) if the codepoint prior to the hyphen was _not_ a letter or digit (Unicode general category L or Nd). This prevents breaking after the minus sign before a number such as in “-13” whilst allowing breaks after the hyphen in “ABCD-1234” and “1234-5678” which may appear in long URLs, for example.
注記: ~CSS~WGは、 この仕様の将来~版では、 最高品質出版の要件を満たすためには,行-分断法に対するより精緻な制御が必要yあり得るものと認識している。 ◎ Note: The CSSWG recognizes that in a future edition of the specification finer control over line breaking may be necessary to satisfy high-end publishing requirements.
6.3. ~hyphen化: 単語の中の形態論的な分断-法
6.3.1. ~hyphen化の制御:`hyphens^p ~prop
`~hyphen化@ ( `hyphenation^en / `hyphenate^en )は、[ 通例的には分断が許容されない所で段落の~layoutを改善する ]ためにある,制御された単語の分割-法であり、 概して、 単語を[ 音節的な部分/形態素 ]の境界で分割して,それを視覚的に指示することが多い (通例的に~hyphen `2010^gU を挿入する)。 一部の事例では、 ~hyphen化は,単語の綴りも改めることがある。 にも関わらず、 ~hyphen化の効果は描画に限られる — 下層の文書~内容や, ~textの[ 選択/探索処理 ]には、 効果を発揮しないモノトスル。 ◎ Hyphenation is the controlled splitting of words where they usually would not be allowed to break to improve the layout of paragraphs, typically splitting words at syllabic or morphemic boundaries and often 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を行l分断より前のみならず後(あるいは前後両方)に挿入する/ ~hyphenとして `2010^U とは異なる文字を挿入する/ 当の単語の綴りを変更する ◎ Hyphenation practices vary across languages, and can involve not just inserting a hyphen before the line break, but inserting a hyphen after the break (or both), inserting a different character than U+2010, or changing the spelling of the word.
言語 | 未分断 | 前 | 後 |
---|---|---|---|
~English | `Unbroken^lt | `Un‐^lt | `broken^lt |
~Dutch | `cafeetje^lt | `café‐^lt | `tje^lt |
~Hungarian | `Összeg^lt | `Ösz‐^lt | `szeg^lt |
~Mandarin | `tú’àn^lt | `tú‐^lt | `àn^lt |
`àizēng‐fēnmíng^lt | `àizēng‐^lt | `‐fēnmíng^lt | |
~Uyghur | `#62F#627#645#64A#62F#649^lt【!uyghur-unbroken.svg】 | `#62F#627#645#64A#200D#640^lt【!uyghur-hyphenate-joined-before.svg】 | `#200D#62F#649^lt【!uyghur-hyphenate-joined-after.svg】 |
~Cree | `ᑲᓯᑕᓂᐘᓂᓂᐠ^lt【!cree.svg】 | `ᑲᓯᑕᓂ᐀^lt【!cree-before.svg】 | `ᐘᓂᓂᐠ^lt【!cree-after.svg】 |
~hyphen化は、 妥当な `~hyphen化~機会@ で行-分断する際に生じる — それは、 ~hyphen化が許容される単語の中に存在する,`自動折返し機会$の一種である。 ~CSSにおいては、 `~hyphen化~機会$は `hyphens$p ~propにより制御される。 この仕様の~levelでは,~hyphen化~用の正確な規則は定義されないが、 ~UAには,[ 言語に適切な~hyphen化~地点を選ぶよう,自身が選ぶ分断点を最適化する ]ことが強く奨励される。 ◎ Hyphenation occurs when the line breaks at a valid hyphenation opportunity, which is a type of soft wrap opportunity that exists within a word where hyphenation is allowed. In CSS hyphenation opportunities are controlled with the hyphens property. CSS Text Level 3 does not define the exact rules for hyphenation; however UAs are strongly encouraged to optimize their choice of break points and to chose language-appropriate hyphenation points.
注記: [ `002D^gU `HYPHEN-MINUS^cn / `2010^gU `HYPHEN^cn ]により導入される`自動折返し機会$は、 `~hyphen化~機会$ではない — 折返されたとしても,分割-の視覚的な指示は`作成されない^em。 これらの文字は、 そこで行lが折返されるかどうかを問わず,可視になる。 ◎ Note: The soft wrap opportunity introduced by the U+002D - HYPHEN-MINUS character or the U+2010 ‐ HYPHEN character is not a hyphenation opportunity, as no visual indication of the split is created when wrapping: these characters are visible whether the line is wrapped at that point or not.
`~hyphen化~機会$は、 `最小-内容 内在的~size$を計算するときには,`考慮される^em。 ◎ Hyphenation opportunities are considered when calculating min-content intrinsic sizes.
注記: これは、 包含塊を~overflowしないよう,~tableの内容を~hyphen化することを許容する — それは、 ~Germanの様な単語が長い言語にとって特に重要になる。 ◎ Note: This allows tables to hyphenate their contents instead of overflowing their containing block, which is particularly important in long-word languages like German.
◎名 `hyphens@p ◎値 `none$v | `manual$v | `auto$v ◎初 `manual^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、 ~text行lの中で,[ `自動折返し機会$を作成するような`~hyphen化$ ]を更に許容するかどうかを制御する。 各種 値の意味は: ◎ This property controls whether hyphenation is allowed to create more soft wrap opportunities within a line of text. Values have the following meanings:
- `none@v
- 単語は、 内側の文字が明示的に`~hyphen化~機会$を定義していても,~hyphen化されない。 ◎ Words are not hyphenated, even if characters inside the word explicitly define hyphenation opportunities.
- 注記: これは、[ 文字[ `002D^gU `HYPHEN-MINUS^cn / `2010^gU `HYPHEN^cn ]などの常に可視な文字 ]により導入される既存の`自動折返し機会$は,抑止しない。 ◎ Note: This does not suppress the existing soft wrap opportunities introduced by always visible characters such as U+002D - HYPHEN-MINUS or U+2010 ‐ HYPHEN.
- `manual@v
-
単語が~hyphen化されるのは、 内側の文字が明示的に`~hyphen化~機会$を示唆する所に限られる。 ~UAは: ◎ Words are only hyphenated where there are characters inside the word that explicitly suggest hyphenation opportunities. The UA\
- 言語に特有な適切な~hyphen化~文字(たち)を利用するモノトスル。 ◎ must use the appropriate language-specific hyphenation character(s) and\
- 適切に綴りを変更するベキである — 同じ地点における自動的な~hyphen化と同じに。 ◎ should apply any appropriate spelling changes just as for automatic hyphenation at the same point.
~Unicodeでは、 `00AD^U は 条件付き “~soft-hyphen( `soft hyphen^en )” とされ, `2010^U は 無条件な~hyphenとされる。 `UAX14$r は、 ~Unicodeの行-分断法における `~soft-hyphenの役割@~UTR/tr14/#SoftHyphen$ を述べている。 ~HTMLにおいては、 `­^c 【 Soft HYphen 】が~soft-hyphen文字を表現し,~hyphen化~機会を示唆する。 ◎ In Unicode, U+00AD is a conditional "soft hyphen" and U+2010 is an unconditional hyphen. Unicode Standard Annex #14 describes the role of soft hyphens in Unicode line breaking. [UAX14] In HTML, ­ represents the soft hyphen character, which suggests a hyphenation opportunity.
ex­ample
- `auto@v
- 単語は、[ 条件付き~hyphenにより明示的に指示されるもの ]に加えて,[ 言語に適切な`~hyphen化~資源$により自動的に決定される,`~hyphen化~機会$ ]の所でも分断されてヨイ。 単語が条件付き~hyphen — `­^c ( `00AD^U `SOFT HYPHEN^cn ) — を包含する場合、 それが~~選好され, 当の単語の中の他所における自動的な~hyphen化~機会は無視するモノトスル。 しかしながら,[ そのような機会で分断した後でも、 その単語のある部位が 1 行lに収まるには,まだ長過ぎる ]場合には、 自動的な~hyphen化~機会も利用してヨイ。 ◎ Words may be broken at hyphenation opportunities determined automatically by a language-appropriate hyphenation resource in addition to those indicated explicitly by a conditional hyphen. Automatic hyphenation opportunities elsewhere within a word must be ignored if the word contains a conditional hyphen (­ or U+00AD SOFT HYPHEN), in favor of the conditional hyphen(s). However, if, even after breaking at such opportunities, a portion of that word is still too long to fit on one line, an automatic hyphenation opportunity may be used.
正しい自動的な~hyphen化は、 分断される~textの言語に適切な `~hyphen化~資源@ を要求する。 したがって,~UAは、[ `内容~言語$が既知である, かつ それに適切な~hyphen化~資源がある ]場合に限り,~textを自動的に~hyphen化するモノトスル。 ◎ Correct automatic hyphenation requires a hyphenation resource appropriate to the language of the text being broken. The UA must therefore only automatically hyphenate text for which the content language is known and for which it has an appropriate hyphenation resource.
正しい自動的な~hyphen化を得するためには、 作者は,内容の`言語$に正しい~tagをあてがうベキである (例:[ ~HTML内では `lang^a 属性 / ~XML内では `xml:lang^a 属性 ]を利用して)。 ◎ Authors should correctly tag their content’s language (e.g. using the HTML lang attribute or XML xml:lang attribute) in order to obtain correct automatic hyphenation.
~UAは、 言語に誂えられた経験則を利用して,自動的な~hyphen化から ある種の単語を除外してもヨイ。 例えば~UAは、 固有名詞においては,ある種の[ 大字~化/約物 ]~patternに合致している単語を除外することにより,~hyphen化を避けようと試行するかもしれない。 この仕様は、 そのような経験則は定義しない。 (そのような経験則は、 言語に応じて変える必要があることに注意: 例えば、 ~Englishと~Germanにおける大字~化~規約は,かなり異なる。) ◎ The UA may use language-tailored heuristics to exclude certain words from automatic hyphenation. For example, a UA might try to avoid hyphenation in proper nouns by excluding words matching certain capitalization and punctuation patterns. Such heuristics are not defined by this specification. (Note that such heuristics will need to vary by language: English and German, for example, have very different capitalization conventions.)
`hyphens$p ~propの目的においては、 何が “単語“ を成すかは~UAに依存する。 しかしながら,単語~境界を決定するときには、[ 行内【`行内~level$の】要素の境界/`~flow外$にある要素 ]は無視するモノトスル。 ◎ For the purpose of the hyphens property, what constitutes a “word” is UA-dependent. However, inline element boundaries and out-of-flow elements must be ignored when determining word boundaries.
条件付き~hyphen文字( `00AD^U `SOFT HYPHEN^cn など)により作成される`~hyphen化~機会$の所で,~hyphen化に因り示される~glyphたちは、 その文字で表現され,それに適用される各種~propに則って~styleされる。 ◎ Any glyphs shown due to hyphenation at a hyphenation opportunity created by a conditional hyphen character (such as U+00AD SOFT HYPHEN) are represented by that character and are styled according to the properties applied to it.
~Arabicなどの用字系の下では、 ~hyphen化に因り単語の中で分断が許容される所の文字は,その単語が`分断されなかった@#word-break-shaping$かのように形状付けるモノトスル。 ◎ 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.
例えば,~hyphen化された~Uyghurの単語 `#62F#627#645#64A#62F#649^lt は、 次の最初の図のように現われることになる — その次の図ではなく: ◎ For example, if the Uyghur word “داميدى” were hyphenated, it would appear as
順に: 単独形 DAL, 単独形 ALEF, 語頭形 MEEM, 語中形 YEH, ~hyphen, 行l分断, 語末形 DAL, 単独形 ALEF MAKSURA ◎ [isolated DAL + isolated ALEF + initial MEEM + medial YEH + hyphen + line-break + final DAL + isolated ALEF MAKSURA]
順に: 単独形 DAL, 単独形 ALEF, 語頭形 MEEM, 語尾形 YEH, hyphen, 行l分断, 単独形 DAL, 単独形 ALEF MAKSURA ◎ not as ◎ [isolated DAL + isolated ALEF + initial MEEM + final YEH + hyphen + line-break + isolated DAL + isolated ALEF MAKSURA]
6.3.2. ~hyphen: `hyphenate-character^p ~prop
◎名 `hyphenate-character@p ◎値 `auto$v | `string$t ◎初 `auto$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 ~hyphen化された単語を成す各部↔間に示される文字列を指定する。 各種 値の意味は: ◎ This property specifies the string that is shown between parts of hyphenated words. Values have the following meanings:
- `auto@v
- ~UAは、 `内容~言語$の~typographic規約に基づく適切な文字列を — 場合によっては、 ~hyphen化~辞書と同じ~sourceから — 見出すベキであることを指定する。 ◎ Specifies that the user agent should find an appropriate string based on the content language’s typographic conventions, possibly from the same source as the hyphenation dictionary.
- `string$t
- ~hyphen化するとき[ ~hyphen化~分断に現れる文字列 ]を指定する。 【!The position of this string is not affected:】 ~UAは、 `内容~言語$の~typographic規約に則って決定される位置 — 既定では~hyphen化~分断の直前 — に,当の文字列を挿入するモノトスル。 ~UAは、[ `使用~値$を成す`~typographic文字~単位$の個数 ]をある上限~以下に切落しても`ヨイ^emが,[ `~typographic文字~単位$を一部だけ残す ]ようには切落さないモノトスル。 ◎ Specifies the string that appears at the hyphenation break when hyphenating. (The position of this string is not affected: the UA must insert the string according to the typographic conventions of the content language, defaulting to immediately before the hyphenation break.) The UA may truncate the used value to a limited number of typographic character units; it must not truncate only part of a typographic character unit.
- 注記: 空~文字列を指定しても妥当である — その場合、 `~hyphen化~機会$にて分断される所には,可視な~hyphen化~文字は挿入されなくなる。 ◎ Note: Specifying the empty string "" is valid, and causes the UA to break at hyphenation opportunities without inserting a visible hyphenation character.
単語が分割されたことを指示するために利用される最も代表的な文字は, ~hyphen文字( `2010^U )であるが、 必要yなら, `hyphenate-character$p を利用して異なる種別の~hyphenを指定できる。 ◎ The hyphen character (U+2010) is most typically used to indicate that a word has been split. However, hyphenate-character can be used to specify a different type of hyphen when necessary.
[lang]:lang(ojs) { hyphenate-character: "᐀" /*
`1400^U `CANADIAN SYLLABICS HYPHEN^cn
◎
CANADIAN SYLLABICS HYPHEN (U+1400)
*/ }
注記: ~hyphenは、[ 自動的な~hyphen化, ~soft-hyphen ]どちらにより誘発されようが, `hyphenate-character$p に則って描画される。 ◎ Note: Both hyphens triggered by automatic hyphenation and hyphens triggered by soft hyphens are rendered according to hyphenate-character.
6.3.3. ~hyphen化の~size制限s: `hyphenate-limit-zone^p ~prop
◎名 `hyphenate-limit-zone@p ◎値 `length-percentage$t ◎初 `0^v ◎適 `塊~容器$ ◎継 される ◎百 行l~boxの長さを基準にする ◎算 算出d `length-percentage$t 値 ◎順 文法に従う ◎ア 算出d値の型による ◎表終`hyphenate-limit-zone$p は,良い名前なのか? 何か~commentや示唆は? ◎ Is hyphenate-limit-zone a good name? Comments/suggestions?
この~propは、[ ~hyphen化することなく,行lを埋めずに残してもよい空間 ]の最大な量を指定する。 すなわち,[ ~hyphen化しない場合に,(両端揃えより前において)行l~boxに残される空間 ]が指定された量を超える場合、 その次の行lから単語を成す一部を引き戻すよう,~hyphen化が誘発される。 ◎ This property specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.
6.3.4. ~hyphen化の文字~数~制限s: `hyphenate-limit-chars^p ~prop
◎名 `hyphenate-limit-chars@p ◎値 [ `auto$v | `integer$t ]{1,3} ◎初 `auto$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 それぞれが[ `auto$v ~keyword/整数 ]をとる, 3 個の値 ◎順 文法に従う ◎ア 算出d値の型による ◎表終この~propは、 単語を~hyphen化するために要求される最小な文字~数を[ 全体/~hyphenより前/~hyphenより後 ]それぞれについて指定する。 単語が~hyphen化されるとき,これらの最小を満たせない場合、 当の単語は,~hyphen化しないモノトスル。 この最小においては、[ `nonspacing^en 【 “空間を占めない” 】結合~mark(`~Unicode字種$ `Mn^uc) `intra-word^en 【 “単語~内の(単語の一部を成す)” 】約物(`~Unicode字種$ `P*^uc ) ]は数えないとする。 ◎ This property specifies the minimum number of characters in a hyphenated word. If the word does not meet the required minimum number of characters in the word / before the hyphen / after the hyphen, then the word must not be hyphenated. Nonspacing combining marks (Unicode General Category Mn) and intra-word punctuation (Unicode General Category P*) do not count towards the minimum.
3 個の値が指定された場合、 順に[ 単語を成す総~文字~数, ~hyphen化~地点より前にある文字~数, ~hyphen化~地点より後にある文字~数 ]として要求される最小を与える。 3 個目の値が欠落な場合、 2 個目と同じになる。 2 個目の値が欠落な場合、 `auto$v になる。 値 `auto@v は、 ~UAが,現在の~layoutに順応する値を選ぶことを意味する。 ◎ If three values are specified, the first value is the required minimum for the total characters in a word, the second value is the minimum for characters before the hyphenation point, and the third value is the minimum for characters after the hyphenation point. If the third value is missing, it is the same as the second. If the second value is missing, then it is auto. The auto value means that the UA chooses a value that adapts to the current layout.
注記: ~UAには、 `auto$v が意味する値を — より良い値を計算-可能でない場合は — [ 前/後 ]用には 2, 総数~用には 5 ]にすることが示唆される。 ◎ Note: Unless the UA is able to calculate a better value, it is suggested that auto means 2 for before and after, and 5 for the word total.
次の例では、 ~hyphen化される単語の最小~sizeは,~UAに委ねられるが (すなわち、[ 言語, 行lの長さ, その他の要因 ]に依存して変わり得る)、 ~hyphen化~地点より[ 前/後 ]にある最小な文字~数は 3 に設定される。 ◎ In the example below, the minimum size of a hyphenated word is left to the UA (which means it may vary depending on the language, the length of the line, or other factors), but the minimum number of characters before and after the hyphenation point is set to 3.
p { hyphenate-limit-chars: auto 3; }
6.3.5. ~hyphen化の行l数の制限s: `hyphenate-limit-lines^p, `hyphenate-limit-last^p ~prop
◎名 `hyphenate-limit-lines@p ◎値 `no-limit$v | `integer$t ◎初 `no-limit$v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された~keyword/整数 ◎順 文法に従う ◎ア 算出d値の型による ◎表終この~propは、 要素~内で~~連続して生じ得る~hyphen化された行lの最大~数を指示する。 値 `no-limit@v は、 上限が無いことを意味する。 ◎ This property indicates the maximum number of successive hyphenated lines in an element. The no-limit value means that there is no limit.
指定された `integer$t 値を~UAが尊守-可能にならない事例もある ( `overflow-wrap$p を見よ)。 そのような非常時の分断ngにより導入された~hyphen化が, 近くの~hyphen化~地点に波及するかどうかは、 定義されない。 ◎ In some cases, user agents may not be able to honor the specified value. (See overflow-wrap.) It is not defined whether hyphenation introduced by such emergency breaking influences nearby hyphenation points.
◎名 `hyphenate-limit-last@p ◎値 `none$v | `always$v | `column$v | `page$v | `spread$v ◎初 `none$v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、[ 要素/柱/~page/見開き ]の終端における~hyphen化の挙動を指示する (見開きとは、 読者が同時に可視になる 2 個の~pageが成す集合である)。 各種 値の意味は: ◎ This property indicates hyphenation behavior at the end of elements, column, pages, and spreads. A spread is a set of two pages that are visible to the reader at the same time. Values have the following meanings:
- `none@v
- 課される制約は無い。 ◎ No restrictions imposed.
- `always@v
- 要素の内容を成す最後の行l【!full line】は, ~hyphen化されるベキでない。 要素の内側にある どの[ 柱/~page/見開き ]分断に対しても、 その直前にある行lは,~hyphen化されるベキでない。 ◎ The last full line of the element, or the last line before any column, page, or spread break inside the element should not be hyphenated.
- `column@v
- 要素の内側にある どの[ 柱/~page/見開き ]分断に対しても、 その直前にある行lは,~hyphen化されるベキでない。 ◎ The last line before any column, page, or spread break inside the element should not be hyphenated.
- `page@v
- 要素の内側にある どの[ ~page/見開き ]分断に対しても、 その直前にある行lは,~hyphen化されるベキでない。 ◎ The last line before page or spread break inside the element should not be hyphenated.
- `spread@v
- 要素の内側にある どの見開き分断に対しても、 その直前にある行lは,~hyphen化されるベキでない。 ◎ The last line before any spread break inside the element should not be hyphenated.
p { hyphenate-limit-last: always } div.chapter { hyphenate-limit-last: spread }
`hyphenate-limit-last$p が `none$v に設定された下では、 段落は,次の様に整形されるであろう: ◎ A paragraph may be formatted like this when hyphenate-limit-last: none is set:
This is just a simple example to show Antarc- tica.
`always$v の下では、 次の様になろう: ◎ With 'hyphenate-limit-last: always' one would get:
This is just a simple example to show Antarctica.
6.4. ~overflow時の折返ng: `overflow-wrap^p ~prop
◎名 `overflow-wrap@p (別名 `word-wrap$p ) ◎値 `normal$v | `break-word$v | `anywhere$v ◎初 `normal^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword ◎順 n/a ◎ア 離散的 ◎表終この~propは、[ 他による分断が許容されない行l ]においても[ 他では分断-不能な文字列が,`行l~box$に収まるには長過ぎるとき ]に~overflowしないよう,[ ~UAが,行lのどこかで分断してもヨイかどうか ]を指定する。 これは、[ `white-space$p が`折返ng$を許容するとき ]に限り,効果を発揮する。 アリな値は: ◎ This property specifies whether the UA may break at otherwise disallowed points within a line to prevent overflow, when an otherwise-unbreakable string is too long to fit within the line box. It only has an effect when white-space allows wrapping. Possible values:
- `normal@v
-
行lを分断してもヨイ所は、
許容される分断点に限られる。
しかしながら,[
`word-break$p1: `keep-all$v1
により導入される制約 ]は、[ 当の行lには,他により受容-可能になる分断点が無い場合 ]には,`word-break$p1: `normal$v1
に合致するよう緩められてもヨイ。 ◎ Lines may break only at allowed break points. However, the restrictions introduced by word-break: keep-all may be relaxed to match word-break: normal if there are no otherwise-acceptable break points in the line. -
加えて,[
`word-break$p1: `auto-phrase$v1
により導入される制約 ]は、[ 当の行lには,他により受容-可能になる分断点が無い場合 ]には緩められる: ◎ Also, the restrictions introduced by word-break: auto-phrase are relaxed if there are no otherwise-acceptable break points in the line:- 特定0の句 %句 の中で`自動折返し機会$を抑止すると, 空な行lに %句 を配置したとしても~overflowすることになる場合、 ~UAは、 %句 の中では `normal$v1 と同じ`自動折返し機会$に~fall-backするモノトスル。 ◎ If suppressing soft wrap opportunities within a particular phrase would cause that phrase to overflow even when placed on an otherwise empty line, the user agent must fall back to the same soft wrap opportunities as normal within that phrase.
- 前項だけでは,~overflowを防止するには十分でない場合、 ~overflowする各~行lの中では, `~hyphen化~機会$の抑止も放棄するモノトスル。 ◎ If that is not enough to prevent overflow, suppression of hyphenation opportunities must also be abandoned within each line that would overflow.
- 中間的な措置として、 ~UAは,複数~levelの句を短いものから長いものまで検出して、 長い句が~overflowへ至らす場合, より短い句を(場合によっては,個々の単語までをも)選んでもヨイ。 ◎ As an intermediary measure, user agents may also detect multiple levels of phrases, choosing to shorter ones (possibly down to individual words) when longer ones would lead to overflow.
-
[
`word-break$p1: `keep-all$v1
/`word-break$p1: `auto-phrase$v1
]により導入される制約を緩めることにより得される`自動折返し機会$は、 `最小-内容~size$を計算するときには,`考慮されない^em。 ◎ The soft wrap opportunities obtained by relaxing the restrictions introduced by word-break: keep-all and word-break: auto-phrase are not considered when calculating min-content intrinsic sizes. - `anywhere@v
- 他では分断-不能な`文字$並びは、 行lの中で[ 受容-可能な分断点が他にない ]場合には,任意な地点で分断されてもヨイ。 文字の形状付けにおいては、 依然として,単語が分断されていなかったかのように形状付けられ、 各 書記素~clusterは, 1 個の単位として一緒のままにされるモノトスル。 分断点には,~hyphen化~文字は挿入されない。 ◎ An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line. Shaping characters are still shaped as if the word were not broken, and grapheme clusters must stay together as one unit. No hyphenation character is inserted at the break point.\
- この値により導入された`自動折返し機会$は、 `最小-内容 内在的~size$を計算するときにも`考慮される^em。 ◎ Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes.
-
`word-break$p1: `auto-phrase$v1
の事例では、 これらの追加的な`自動折返し機会$は,次の場合に限り導入される ⇒`word-break$p1: `auto-phrase$v1
により導入される制約を `normal$v にて述べられるとおり緩めた場合でも,~overflowを防止するには不足である。 ◎ In the case of word-break: auto-phrase, these additional soft wrap opportunities are only introduced if relaxing the restrictions introduced by word-break: auto-phrase as described in overflow-wrap: normal is insufficient to prevent overflow. - `break-word@v
- `anywhere$v と同じにふるまうが、 この値により導入された`自動折返し機会$は,`最小-内容 内在的~size$を計算するときには`考慮されない^em。 ◎ As for anywhere except that soft wrap opportunities introduced by break-word are not considered when calculating min-content intrinsic sizes.
`overflow-wrap$p 用に,次を任意で外すための値 `none^v を追加する必要はあるか?
⇒
[
`word-break$p1: `keep-all$v1
/
`word-break$p1: `auto-phrase$v1
]により導入される制約を `normal$v により許容されるとおりに緩める
◎
Do we need to add a none value to overflow-wrap to opt out of relaxing the keep-all' and auto-phrase'' restrictions as allowed by overflow-wrap: normal?
旧来の理由から、 ~UAは, `word-wrap@p ~propを `overflow-wrap$p ~propの`旧来の別名n$として扱うモノトスル。 ◎ For legacy reasons, UAs must treat word-wrap as a legacy name alias of the overflow-wrap property.
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 | `string$t | `justify$v | `match-parent$v | `justify-all$v ◎初 `start^v ◎適 `塊~容器$ ◎継 される ◎百 個々の~propを見よ ◎算 個々の~propを見よ ◎順 n/a ◎ア 離散的 ◎表終この`略式~prop$は、[ `text-align-all$p, `text-align-last$p ]~propを設定し、 塊の`行内~level$の内容が,`行l~box$を完全に埋めない場合に,行内-軸~~方向に整列される方法について述べる。 [ `justify-all$v, `match-parent$v ]以外の値は、 `text-align-all^p にアテガわれ, `text-align-last^p を `auto$v に設定し直す。 ◎ This shorthand property sets the text-align-all and text-align-last properties and describes how the inline-level content of a block is aligned along the inline axis if the content does not completely fill the line box. Values other than justify-all or match-parent are assigned to text-align-all and reset text-align-last to auto.
各種 値の意味は: ◎ Values have the following meanings:
- `start@v
- 行内~levelの内容は、 行l~boxの`始端$辺に整列される。 ◎ Inline-level content is aligned to the start edge of the line box.
- `end@v
- 行内~levelの内容は、 行l~boxの`終端$辺に整列される。 ◎ Inline-level content is aligned to the end edge of the line box.
- `left@v
- 行内~levelの内容は、 行l~boxの`行-左端$に整列される。 (縦組みにおいては、 `writing-mode$p に依存して,物理的な[ `上端$, `下端$ ]どちらにもなり得る。) `CSS-WRITING-MODES-4$r ◎ Inline-level content is aligned to the line-left edge of the line box. (In vertical writing modes, this can be either the physical top or bottom, depending on writing-mode.) [CSS-WRITING-MODES-4]
- `right@v
- 行内~levelの内容は、 行l~boxの`行-右端$に整列される。 (縦組みにおいては、 `writing-mode$p に依存して,物理的な[ `上端$, `下端$ ]どちらにもなり得る。) `CSS-WRITING-MODES-4$r ◎ Inline-level content is aligned to the line-right edge of the line box. (In vertical writing modes, this can be either the physical top or bottom, depending on writing-mode.) [CSS-WRITING-MODES-4]
- `center@v
- 行内~levelの内容は、 行l~boxの中で中央に寄せられる。 ◎ Inline-level content is centered within the line box.
- `string$t
- 文字列は、 1 個の文字でなければナラナイ — さもなければ、 当の宣言は無効になり,`無視-$されるモノトスル。 ~table~cellに適用されたときは、 `整列~文字@ を指定する — ~cellの内容は、 その周りに整列されることになる。 [ 更なる詳細,この値が~keywordとどう組合されるか ]は、 `下@#character-alignment$を見よ。 ◎ The string must be a single character; otherwise the declaration is invalid and must be ignored. When applied to a table cell, specifies the alignment character around which the cell’s contents will align. See below for further details and how this value combines with keywords.
- `justify@v
- ~textは、 行l~boxを正確に埋めるために, `text-justify$p ~propにより指定される~methodに則って両端揃される。 ただし,[ 強制d分断の直前にある行l, および 塊の最終~行l ]では、 `text-align-last$p により 他が指定されない限り, `start$v と同じく始端に整列される。 ◎ Text is justified according to the method specified by the text-justify property, in order to exactly fill the line box. Unless otherwise specified by text-align-last, the last line before a forced break or the end of the block is start-aligned.
- `justify-all@v
- [ `text-align-all$p, `text-align-last$p ]とも `justify$v に設定して、 最後の行lも両端揃するよう強制する。 ◎ Sets both text-align-all and text-align-last to justify, forcing the last line to justify as well.
- `match-parent@v
- この値は、 `inherit$v と同じに挙動する(親の算出d値に算出される) — ただし,`継承d値$が[ `start$v / `end$v ]の場合、 親の `direction$p 値を~~基準に解釈され,結果の算出d値は[ `left$v または `right$v ]になる。 `根~要素$に指定された場合、 算出d値は `start$v になる。 ◎ This value behaves the same as inherit (computes to its parent’s computed value) except that an inherited value of start or end is interpreted against the parent’s direction value and results in a computed value of either left or right. Computes to start when specified on the root element.
- `text-align$p 略式に指定されたときは、[ `text-align-all$p, `text-align-last$p ]どちらも `match-parent$v に設定する。 ◎ When specified on the text-align shorthand, sets both text-align-all and text-align-last to match-parent.
~textが成す塊は、 `行l~box$たちが成す堆積である。 この~propは、 各 行l~boxの中の`行内~level$の~boxたちを,行l~boxの[ 始端, 終端 ]側を基準に整列する方法を指定する。 整列は`表示域$や`包含塊$を基準にはしない。 ◎ A block of text is a stack of line boxes. This property specifies how the inline-level boxes within each line box align with respect to the start and end sides of the line box. Alignment is not with respect to the viewport or containing block.
`justify$v の事例では、 ~UAは、 各 `行内~level$の~boxに対し,その~textを調整することにより,伸張-/縮短してもヨイ ( `text-justify$p を見よ)。 要素の`空白$が`縮約-可能$でない場合、 両端揃えの目的においては,その~textを調整することは要求されない — ~UAは、 ~textを`両端揃え機会$を持たないものと扱ってもヨイ。 ~UAは、 ~textを調整することを選ぶならば、 `空白~処理~規則$から要求されるとおり,各 `~tab停$が揃い続けることを確保するモノトスル。 ◎ In the case of justify, the UA may stretch or shrink any inline boxes by adjusting their text. (See text-justify.) If an element’s white space is not collapsible, then the UA is not required to adjust its text for the purpose of justification and may instead treat the text as having no justification opportunities. If the UA chooses to adjust the text, then it must ensure that tab stops continue to line up as required by the white space processing rules.
(両端揃えがあればその後で)`行内~内容$が`行l~box$に収まるには長過ぎる場合、 内容は,`始端$に整列される — 収まらない内容は、 行l~boxの`終端$辺を~overflowする。 ◎ If (after justification, if any) the inline contents of a line box are too long to fit within it, then the contents are start-aligned: any content that doesn’t fit overflows the line box’s end edge.
`行l~box$の[ `始端$, `終端$ ]辺を決定する方法の詳細は、 `§ 双方向性と行l~box@#bidi-linebox$ を見よ。 ◎ See § 9.3 Bidirectionality and Line Boxes for details on how to determine the start and end edges of a line box.
7.2. ~table~colにおける文字に基づく整列
【 この節の内容は未訳。 】
7.3. 既定の~text整列: `text-align-all^p ~prop
◎名 `text-align-all@p ◎値 `start$v | `end$v | `left$v | `right$v | `center$v | `string$t | `justify$v | `match-parent$v ◎初 `start^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された~keyword — ただし、 `match-parent$v は,上で定義されたとおりに算出される。 ◎ keyword as specified, except for match-parent which computes as defined above ◎順 n/a ◎ア 離散的 ◎表終これは `text-align$p1 `略式~prop$の下位propであり、 `塊~容器$における`行内~内容$の,すべての行lに渡る行内の整列を指定する — ただし,最後の行lについては、 `text-align-last$p の非 `auto$v 値により上書きされる。 各種 値の全部的な記述については `text-align$p を見よ。 ◎ This longhand of the text-align shorthand property specifies the inline alignment of all lines of inline content in the block container, except for last lines overridden by a non-auto value of text-align-last. See text-align for a full description of values.
作者は、 この~propの代わりに `text-align$p 略式~propを利用するベキである。 ◎ Authors should use the text-align shorthand instead of this property.
7.4. 最後の行l整列: `text-align-last^p ~prop
◎名 `text-align-last@p ◎値 `auto$v | `start$v | `end$v | `left$v | `right$v | `center$v | `justify$v | `match-parent$v ◎初 `auto^v ◎適 `塊~容器$ ◎継 される ◎百 受容しない ◎算 指定された~keyword — ただし、 `match-parent$v は,上で定義されたとおりに算出される。 ◎ keyword as specified, except for match-parent which computes as defined above ◎順 n/a ◎ア 離散的 ◎表終この~propは、[ 塊の最後の行l / `強制d行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 と同じく始端に整列される【!`start$v-aligned】。 他のすべての値は、 `text-align$p に述べるように解釈される。 ◎ If auto is specified, content on the affected line is aligned per text-align-all unless text-align-all is set to justify, in which case it is start-aligned. All other values are interpreted as described for text-align.
7.5. 両端揃え~method: `text-justify^p ~prop
◎名 `text-justify@p ◎値 [ `auto$v | `none$v | `inter-word$v | `inter-character$v | `ruby$v ] || `no-compress$v ◎初 `auto^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword (旧来の値 `distribute$v は除く) ◎ specified keyword (except for the distribute legacy value) ◎順 n/a ◎ア 離散的 ◎表終この~propは、 行lの整列( `text-align$p を見よ)が `justify$v1 に設定されているときに利用される両端揃え~methodを選定する。 この~propは,~textに適用されるが、 `塊~容器$から[ 行内~levelの内容を包含している根~行内~box ]へ継承される。 これは、 次に挙げる値をとり得る: ◎ This property selects the justification method used when a line’s alignment is set to justify (see text-align). The property applies to text, but is inherited from block containers to the root inline box containing their inline-level contents. It takes the following values:
- `auto@v
- ~UAは、 自身が従う両端揃え~algoを,処理能と呈示~品質との兼合いに基づいて,決定する。 両端揃え規則は,`書記~体系$と`言語$により様々になるので、 ~UAは,アリな所では、 ~textに適切な両端揃え~algoを利用するベキである。 ◎ The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality. Since justification rules vary by writing system and language, UAs should, where possible, use a justification algorithm appropriate to the text.
- 例えば~UAは、 まず,どの書記~体系に対しても,既定では[ 単純な,普遍的で折衷的な両端揃え~method ] — 主として[ `単語~分離子$/[ ~CJK `~typographic字l単位$↔間 ]]を延張し、 副として[ 東南Asian`~typographic字l単位$↔間 ]を延張するような — を利用した上で、 段落の`内容~言語$が既知である所では,より言語に誂えられた両端揃えの挙動を選ぶこともできる — 例えば ⇒# 日本語に対しては `JLREQ$r に従う, ~Arabicに対しては 筆記的な引伸ばしを利用する, ~Germanに対しては `inter-word$v を利用する, 等々 ◎ For example, the UA could use by default a justification method that is a simple universal compromise for all writing systems—such as primarily expanding word separators and between CJK typographic letter units along with secondarily expanding between Southeast Asian typographic letter units. Then, in cases where the content language of the paragraph is known, it could choose a more language-tailored justification behavior e.g. following the Requirements for Japanese Text Layout for Japanese [JLREQ], using cursive elongation for Arabic, using inter-word for German, etc.
- `none@v
- 両端揃えは不能化される: ~textの中に`両端揃え機会$はない。 ◎ Justification is disabled: there are no justification opportunities within the text.
- 注記: この値は、[ 可読性を改善する/ ~accessibilityを目的とする ]ような,利用者~stylesheetでの利用が意図されている。 ◎ Note: This value is intended for use in user stylesheets to improve readability or for accessibility purposes.
- `inter-word@v
- 両端揃えでは、 `単語~分離子$の所でのみ間隔法を調整する (実質的に,行l上の `word-spacing$p の使用~値を変えて)。 この挙動は、 ~Englishや韓国語の様な,~spaceを利用して単語を分離する言語に典型的なものである。 ◎ Justification adjusts spacing at word separators only (effectively varying the used word-spacing on the line). This behavior is typical for languages that separate words using spaces, like English or Korean.
- `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するモノトスル — それは、 `inter-character$v に算出され,正確に同じ意味かつ同じ挙動になるモノトスル。 ~UAは、 これを`旧来の別名~値$として扱ってもヨイ。 ◎ For legacy reasons, UAs must also support the alternate keyword distribute which must compute to inter-character, thus having the exact same meaning and behavior. UAs may treat this as a legacy value alias.
- `ruby@v
-
両端揃えでは、 `auto$v と同じに間隔法を調整する — 次に挙げる箇所では`両端揃え機会$は不能化されることを`除いて^em: ◎ Justification adjusts spacing as for auto except:
- `単語~分離子$ ◎ Justification opportunities are disabled at word separators.
- `~Bopomofo文字$ ↔間 ◎ Justification opportunities are disabled between Bopomofo characters
注記: この値は、 `~ruby注釈$内の利用-用に意図され, 適理な既定の整列を供する。 `CSS-RUBY-1$r を見よ。 ◎ Note: This value is intended for use in ruby annotations, providing a reasonable default alignment. See [CSS-RUBY-1].
- `no-compress@v
- 両端揃えは[ `text-spacing-trim$p / `text-autospace$p ]により制御される間隔法を圧縮しないモノトスル。 (この値が指定されなかった場合、 両端揃え処理nは,そのような間隔法を — それが当の行lの[ 始端/終端 ]にあるときを除いて — 抑制してもヨイ)。 ◎ Justification must not compress spacing controlled by text-spacing-trim or text-autospace. (If this value is not specified, the justification process may reduce such spacing except when the spacing is at the start or end of the line.)
- 注記: 日本語~用の圧縮~規則の例は、 `JLREQ$r `§ 行lの調整@https://w3c.github.io/jlreq/#line_adjustment$ ( `Line Adjustment^en ) て与えられる。 ◎ Note: An example of compression rules is given for Japanese in 3.8 Line Adjustment in [JLREQ].
- この~keywordは、 `text-spacing$p の一部に利用されることになる。 それは,今や ここにあるので、 より特定な何かに改称する必要があるかもしれない — それは、 例えば `0020^U は圧縮し得ないことを含意するので。 `7079$issue ◎ This keyword used to be part of text-spacing; it might need renaming to be more specific now that it’s here, as it implies that e.g. U+0020 cannot be compressed. [Issue #7079]
最適な両端揃えは,`言語$に敏感なので、 最良な結果を得るためには,作者は内容に正しく言語~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.5.1. ~textの延張-法と圧縮-法
~UAは,~textを両端揃するとき、 内容が`行l~box$を正確に埋めるように,[[ 行lの内容の両端 ]と[ `行l~box$の両端~辺 ]の合間に残された間隔 ]を その内容~全体にわたって分配する。 ~UAは、 代替として,行l上に[ 通常の間隔法~条件の下で収まるものより多い内容 ]を~~置いて,負な間隔を分配してもヨイ。 ◎ When justifying text, the user agent takes the remaining space between the ends of a line’s contents and the edges of its line box, and distributes that space throughout its content so that the contents exactly fill the line box. The user agent may alternatively distribute negative space, putting more content on the line than would otherwise fit under normal spacing conditions.
`両端揃え機会@ ( `justification opportunity^en )とは、 両端揃え~algoが~textの中の間隔法を改めてもヨイとされる地点である。 両端揃え機会は、[ 1 個の`~typographic文字~単位$(`単語~分離子$など), または 2 個の `~typographic文字~単位$の並置 ]により,供され得る。 `自動折返し機会$に対する制御と同じく,`~typographic文字~単位$が`両端揃え機会$を供するかどうかは、 その親の `text-justify$p 値により制御される。 同様に,連続な 2 個の`~typographic文字~単位$の合間に`両端揃え機会$が存在するかどうかは、 その 2 個の文字に最も近い共通な先祖の `text-justify$p 値により決定される。 ◎ A justification opportunity is a point where the justification algorithm may alter spacing within the text. A justification opportunity can be provided by a single typographic character unit (such as a word separator), or by the juxtaposition of two typographic character units. As with controls for soft wrap opportunities, whether a typographic character unit provides a justification opportunity is controlled by the text-justify value of its parent; similarly, whether a justification opportunity exists between two consecutive typographic character units is determined by the text-justify value of their nearest common ancestor.
両端揃えにより分配される間隔は、[ `letter-spacing$p, `word-spacing$p ]~propにより定義される間隔法に対する `追加^emである。 そのような追加的な間隔が`単語~分離子$による`両端揃え機会$に分配されるときは、 `word-spacing$p に対するときと同じ規則の下で適用される。 同様に、 `~typographic文字~単位$↔間の`両端揃え機会$に間隔が分配されるときは、 `letter-spacing$p に対するときと同じ規則の下で適用されるベキである。 ◎ Space distributed by justification is in addition to the spacing defined by the letter-spacing or word-spacing properties. When such additional space is distributed to a word separator justification opportunity, it is applied under the same rules as for word-spacing. Similarly, when space is distributed to a justification opportunity between two typographic character units, should be applied under the same rules as for letter-spacing.
両端揃え~algoは、 各 `両端揃え機会$を異なる優先順位~levelに仕分けしてもヨイ。 同じ順位~levelに属する どの`両端揃え機会$も、 その機会を どの`~typographic文字~単位$が作成したかに関わらず,同じように延張-/圧縮される。 例えば, [ 漢字↔間 , ~Latin字l↔間 ]の`両端揃え機会$が,同じ~levelにあると定義された場合、 それらは( `inter-character$v 両端揃え~styleの下では),異なるように扱われない — それらは異なる`~typographic文字~単位$を出自にするので【?】。 他の要因 (~font~size, 字間隔法, ~glyphの形状付け, 行lの中での位置, 等々) が、[ 行lの中の`両端揃え機会$に対する間隔の分配 ]に波及し得るかどうか, および その方法については、 この【仕様の】~levelでは,定義されない。 ◎ A justification algorithm may divide justification opportunities into different priority levels. All justification opportunities within a given level are expanded or compressed at the same priority, regardless of which typographic character units created that opportunity. For example, if justification opportunities between two Han characters and between two Latin letters are defined to be at the same level (as they are in the inter-character justification style), they are not treated differently because they originate from different typographic character units. It is not defined in this level whether or how other factors (such as font size, letter-spacing, glyph shape, position within the line, etc.) may influence the distribution of space to justification opportunities within the line.
~UAは、 どの~methodの下でも,~textの両端揃えを補助するためとして、 任意選択な合字を可能化したり分断するか, あるいは[ 代替-~glyphや~glyph圧縮などの他の~font特能 ]を利用してもヨイ。 この挙動は、 この~levelの~CSSでは制御されない。 しかしながら,~UAは、 必須の合字を分断するなど,[ 複階的な用字系を正しく形状付けるために要求される特能 ]を不能化しては`ナラナイ^em。 ◎ The UA may enable or break optional ligatures or use other font features such as alternate glyphs or glyph compression to help justify the text under any method. This behavior is not controlled by this level of CSS. However, UAs must not break required ligatures or otherwise disable features required to correctly shape complex scripts.
中に`両端揃え機会$が存在する行lに対し, `~text整列@#text-align-property$により 全部的な両端揃え( `text-align^p1 `justify$v1 )が指定されている場合、 その行lは両端揃するモノトスル。 ◎ If a justification opportunity exists within a line, and text alignment specifies full justification (justify) for that line, it must be justified.
7.5.2. 記号と約物の取扱い
`両端揃え機会$たちを決定するとき、 `~Unicode字種$[ 各種 Symbol( `S*^uc )/ 各種 Punctuation ( `P*^uc ) 【 "*" は,ワイルドカードを表す】 ]に属する`~typographic文字~単位$は、 一般に,同じ用字系 (あるいは,文字の`用字系~prop$が `Common^uc である場合は、 支配的な用字系) の`~typographic字l単位$と同じに扱われる。 ◎ When determining justification opportunities, a typographic character unit from the Unicode Symbols (S*) and Punctuation (P*) classes is generally treated the same as a typographic letter unit of the same script (or, if the character’s script property is Common, then as a typographic letter unit of the dominant script).
しかしながら、 ~typographic慣習には,[ 記号や約物の両端揃えを制御する,追加的な規則 ]を備えるものもある。 したがって,~UAは、 記号や約物を孕むような`両端揃え機会$を取扱うときには、 特定の文字に対し【優先順位~levelを】あてがい直したり,順位付けに追加的な~levelを導入してもヨイ。 ◎ However, by typographic tradition there may be additional rules controlling the justification of symbols and punctuation. Therefore, the UA may reassign specific characters or introduce additional levels of prioritization to handle justification opportunities involving symbols and punctuation.
例えば、 連続な同じ[ `2014^gU `EM DASH^cn / `2015^gU `HORIZONTAL BAR^cn / `2026^gU `HORIZONTAL ELLIPSIS^cn / `2025^gU `TWO DOT LEADER^cn ]文字↔間には、 `両端揃え機会$は,伝統的にない `JLREQ$r — よって,~UAは、 これらの文字に優先順位~level “never” 【決して両端揃え機会とされない】 をアテガうこともあろう。 別の例として、 日本語では,ある種の全角~約物 ( `301A^gU `LEFT WHITE SQUARE BRACKET^cn など) は、 `両端揃え機会$を包含すると見なされる。 したがって,~UAは、 これらの文字に,表語-文字↔間の機会より高い優先順位~levelをアテガうこともあろう。 ◎ For example, there are traditionally no justification opportunities between consecutive U+2014 — EM DASH, U+2015 ― HORIZONTAL BAR, U+2026 … HORIZONTAL ELLIPSIS, or U+2025 ‥ TWO DOT LEADER characters [JLREQ]; thus a UA might assign these characters to a “never” prioritization level. As another example, certain full-width punctuation characters (such as U+301A 〚 LEFT WHITE SQUARE BRACKET) are considered to contain a justification opportunity in Japanese. The UA might therefore assign these characters to a higher prioritization level than the opportunities between ideographic characters.
7.5.3. 延張-不能な~text
行lの`行内~内容$が,`行l~box$の全部的な横幅【`論理-横幅$】まで伸張できない場合、 `text-align-last$p ~propに指定されたとおりに整列するモノトスル。 ( `text-align^p1 `text-align-last$p が `justify$v1 にされている下では、 `center$v1 に対するときと同じに整列するモノトスル。) ◎ If the inline contents of a line cannot be stretched to the full width of the line box, then they must be aligned as specified by the text-align-last property. (If text-align-last is justify, then they must be aligned as for center.)
7.5.4. 筆記的な用字系
~Arabicなどの`筆記的~用字系$においては、 両端揃する際に,繋がっている[ `筆記的~用字系$の`~typographic字l単位$たちが成す連なり ]の中の どの単位↔間にも途切れを`導入しない^emモノトスル — ~UAは: ◎ Justification must not introduce gaps between the joined typographic letter units of cursive scripts such as Arabic.\
- 可能なら、[ そのような連なりの中で,`両端揃え機会$に分配された間隔 ]を,その連なりに対する何らかの形の筆記的 引伸ばしに`転換してもヨイ^em。 ◎ If it is able, the UA may translate space distributed to justification opportunities within a run of such typographic letter units into some form of cursive elongation for that run.\
- 可能でなければ、 どの`~typographic字l単位$↔間にも,(それらが繋がっているかどうかに関わらず)`両端揃え機会$は`存在しないと見做すモノトスル^em。 ◎ It otherwise must assume that no justification opportunity exists between any pair of typographic letter units in cursive script (regardless of whether they join).
受容-可能でない両端揃えの例: ◎ The following are examples of unacceptable justification:
両端揃えに,~tatweel文字†を利用できるように~designされた~fontもある。 ~tatweelに基づく両端揃えを遂行する~UAは、 その規則を適正に取扱うモノトスル。 ~tatweel文字の正しい挿入~法は、[ 孕まれる字lの組合n, 単語の中での所在, 行lの中での単語の所在 ]も含め,文脈に依存することに注意。 【† ~tatweel — 続字的に引伸する書法 ( `kashida^en ) を表現する~glyph (または、 特に文字 `0640^U `ARABIC TATWEEL^cn を指す?)。 】 ◎ Some font designs allow for the use of the tatweel character for justification. A UA that performs tatweel-based justification must properly handle the rules for its use. Note that correct insertion of tatweel characters depends on context, including the letter-combinations involved, location within the word, and location of the word within the line.
7.5.5. `auto^v による両端揃えに課される最小限な要件
`auto$v による両端揃えに対しては、 この仕様は,`両端揃え機会$について[ そのすべての~~集合は何であるか / それらが順位付けられる方法 / 各~levelの間で いつどのように相互作用するか ]は、 定義しない。 しかしながら、 次が要求される: ◎ For auto justification, this specification does not define what all of the justification opportunities are, how they are prioritized, or when and how multiple levels of justification opportunities interact. However, it does require that:
-
[ `内容~言語$の, または 隣接な[ 記号/約物 ]に対する ]~typographic慣習により禁則0されない限り、 次に挙げるそれぞれが,`両端揃え機会$を供する: ◎ Unless contraindicated by the typographic traditions of the content language or adjacent symbols/punctuation, each of the following provides a justification opportunity:
- `単語~分離子$ ◎ Word separators
- [ `~block用字系$の`~typographic文字~単位$ ↔ 他の`~typographic文字~単位$ ]間の境界 ◎ The boundary between a typographic character unit of any block scripts and any other typographic character unit
- [ `~clustered用字系$の`~typographic文字~単位$ ↔ 他の`~typographic文字~単位$ ]間の境界 ◎ The boundary between a typographic character unit of any clustered scripts and any other typographic character unit
- すべての`~block用字系$に属する すべての`字l$は,同じに扱われ、 すべての`~clustered用字系$に属する すべての`字l$は,同じに扱われる。 例えば、 次の 2 つの両端揃え機会は区別されない ⇒# 漢字↔間 / 漢字↔~Hangul字l 間(この順序) ◎ All letters belonging to all block scripts are treated the same, and all letters belonging to all clustered scripts are treated the same. For example, no distinction is made between the justification opportunity between a Han letter followed by another Han letter, vs. the justification opportunity between a Han letter followed by a Hangul letter.
両端揃えについての更なる情報は、 `JUSTIFY$r にて見出せる(また,提出できる) — それは、 書記~体系と言語で~indexされ,W3C `国際化~WG@~I18N/$ により保守されている。 ◎ Further information on text justification can be found in (or submitted to) “Approaches to Full Justification”, which indexes by writing system and language, and is maintained by the W3C Internationalization Working Group. [JUSTIFY]
7.6. 容器の中での~text~blockの整列-法: `text-group-align^p ~prop
◎名 `text-group-align@p ◎値 `none$v | `start$v | `end$v | `left$v | `right$v | `center$v ◎初 `none$v ◎適 `塊~容器$ ◎継 されない ◎百 受容しない ◎算 指定された~keyword ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 行l~boxたちの内容を~groupとして — それらの~text整列を保守しながら — 整列する。 ◎ This property aligns the contents of the line boxes as a group while maintaining their text alignment.
`~group整列@ は、 残りの空間が最短な行l~boxを見出して, その空間の量を行l~boxの[ 片~側または両~側 ]に~paddingとして追加することにより遂行される — その結果、 内容に可用な空間の量は抑制される。 `~text整列@#text-align-property$は、 残りの空間【抑制した結果の可用な空間?】の中で内容に適用される。 [ 最短な残りの空間を探索するとき, ~paddingを追加するとき ]どちらにおいても、[ 同じ`塊~整形~文脈$ ]の中の子孫のうち[ `~flow内$にある行l~boxすべて ]が考慮され,[ `独立な整形~文脈$を確立するもの ]の内容は飛ばされる。 ◎ Group alignment is performed by finding the line box with the shortest remaining space and adding that amount of space as padding to one or both sides of the line box, reducing the amount of space available for its contents; text alignment is then applied to its contents within the remaining space. All descendant in-flow line boxes within the same block formatting context are considered both when searching for the shortest remaining space and when adding the padding; the contents of descendants that establish independent formatting contexts are skipped.
この~propには、 塊~容器の直な子である行l~boxに限り影響するよう,[ 継承される ]かつ[ 各~塊~容器に対し個別に適用される ]とする変種もある。 これは,有用さには劣るが、 おそらく,実装は より容易になる。 ◎ A variant of this property is inherited, and applies on each block container individually, only affecting the line boxes that are direct children of that block. This is less useful, but probably easier to implement.
同じ塊~容器に属する`浮動体$たちも, どうにかして同じ量だけ移動すれば、 もっと良好に揃うようになる — とりわけ、 ~CJK~layoutにおいて価値があろう。 それが[ 正確にどう働くか ]および[ 先祖~要素から侵入している浮動体とどう相互作用するか ]は、 読者への宿題として残される。 ◎ Somehow also moving the floats that originate in the same block container by the same amount would make things line up more nicely, which would be especially valuable in CJK layout. Exactly how that works, and how it interacts with intruding floats from ancestor elements is left as an exercise for the reader.
各種 値の意味は: ◎ Values have the following meanings:
- `none@v
- `~group整列$は遂行されず, `~text整列@#text-align-property$は,通常に起こる。 ◎ Text alignment happens normally: group alignment is not performed.
- `start@v
- `end@v
- `left@v
- `right@v
- 行内~levelの内容は、 各~行l~boxの[ `行内-始端$/`行内-終端$/`行-左端$/`行-右端$ ]側(同順)に~paddingを追加することにより, その側へ`~group整列$される。 ◎ Inline-level content is group-aligned to the inline start side, by padding the inline end side of each line box. ◎ Inline-level content is group-aligned to the inline end side, by padding the inline start side of each line box. ◎ Inline-level content is group-aligned to the line-left side, by padding the line-right side of each line box. ◎ Inline-level content is group-aligned to the line-right side, by padding the line-left side of each line box.
- `center@v
- 行内~levelの内容は、 各~行l~boxの両~側に半分ずつ~paddingを追加することにより, 中央へ`~group整列$される。 ◎ Inline-level content is group-aligned to the center, by padding both sides of each line box, half the spacing to each side.
8. 間隔法
~CSSは、 次に挙げる~propを介して,~textに対する間隔法の制御を提供する: ◎ CSS offers control over\
- [ `word-spacing$p, `letter-spacing$p, `line-padding$p ]~prop(定例の制御) ⇒ 順に,[ `単語~分離子$の周り, `~typographic文字~単位$↔間, 行lの始端/終端 ]に追加的な間隔を指定する。 ◎ regular text spacing via the word-spacing, letter-spacing, and line-padding properties, which specify additional space around word separators between typographic character units, or at the start/end of the line, respectively.\
- `text-spacing-trim$p ~prop ⇒ 文脈に応じた間隔法の制御 — ~CJK約物~用に,文脈に応じて全角か半角どちらに組むかを許容する ◎ It also provides contextual control over spacing via the text-spacing-trim property, which allows for contextual fullwidth vs halfwidth setting of CJK punctuation;\
- `text-autospace$p ~prop ⇒ [ 用字系が変化する所/約物の周り ]に余分な間隔を自動的に挿入することを許容する。 ◎ and the text-autospace property, which allows automatic insertion of extra space at script changes or around punctuation.
8.1. 単語↔間の間隔法: `word-spacing^p ~prop
◎名 `word-spacing@p ◎値 `normal$v | `length-percentage$t ◎初 `normal^v ◎適 ~text ◎継 される ◎百 `font-size$p の算出d値(すなわち `1em^v )に相対的 ◎ relative to computed font-size, i.e. 1em ◎算 絶対~長さ/百分率 ◎順 n/a ◎ア 算出d値の型による ◎表終この~propは、 “単語” ↔間に対する追加的な間隔法を指定する。 各種 値は、 以下に定義するとおりに解釈される: ◎ This property specifies additional spacing between “words”. Values are interpreted as defined below:
- `normal@v
- 追加的な間隔法は適用されず, 0 に算出される。 ◎ No additional spacing is applied. Computes to zero.
- `length-percentage$t
- ~fontにより定義される内在的な単語↔間の間隔法に`加えて^em,余分な間隔法を指定する。 ◎ Specifies extra spacing in addition to the intrinsic inter-word spacing defined by the font.
- 注記: 百分率は、 欠損なく継承され,現在の要素の `font-size$p の算出d値 — 絶対~長さとしてのそれ — を基準に解決される (したがって、[ この~propが適用される~textの~size ]に相対的な~sizeを表現する) — `em$u 単位と違って ( `em^u は、 継承した要素(親)の `font-size$p の算出d値を基準に解決される)。 ◎ Note: Percentages inherit intact, and are resolved against the computed font-size of the current element (and thus represent a size relative to the size of the text to which they apply), unlike em units which are resolved against the computed font-size of the element from which they inherit, as an absolute length.
追加的な間隔法は、 `空白~処理~規則$が適用された後に, ~text内に残された各`単語~分離子$に適用される — ~typographic慣習により規定されない限り, 文字の各~側に半分ずつ適用されるベキである。 負な値もとり得るが、 実装に依存する制限sがあり得る。 ◎ Additional spacing is applied to each word separator left in the text after the white space processing rules have been applied, and should be applied half on each side of the character unless otherwise dictated by typographic tradition. Values may be negative, but there may be implementation-dependent limits.
`単語~分離子@ ( `word-separator character^en, 略して `word separator^en )とは、 `~typographic文字~単位$のうち,単語を分離することが その[ 首な目的/一般~用法 ]とされているものを指す。 `~Unicode$citeでは、 これは次に挙げるものを含む (が、網羅的に定義されてはいない) ⇒# `~space$, 分断不可~space( `00A0^U ), ~Ethiopic `word space^en( `1361^U ), ~Aegean `word separator^en( `10100^U, `10101^U ), ~Ugaritic `word divider^en ( `1039F^U ), ~Phoenician `word separator^en( `1091F^U ) ◎ Word-separator characters are typographic character units whose primary purpose and general usage is to separate words. In Unicode this includes (but is not exhaustively defined as) the space (U+0020), the no-break space (U+00A0), the Ethiopic word space (U+1361), the Aegean word separators (U+10100,U+10101), the Ugaritic word divider (U+1039F), and the Phoenician word separator (U+1091F). [UNICODE]
注記: 一般に約物は, および固定幅~space( `3000^U, `2000^U 〜 `200A^U など)は、 `単語~分離子$とは見なされない — それらが大概は単語を分離するかのように~~現れるとしても、 それらの首な目的は,単語を分離することではないので。 ◎ Note: Neither punctuation in general, nor fixed-width spaces (such as U+3000 and U+2000 through U+200A), are considered word-separator characters, because even though they frequently happen to separate words, their primary purpose is not to separate words.
`単語~分離子$が無い, あるいは その送幅は 0 の場合 ( `200B^U `ZERO WIDTH SPACE^cn など)、 ~UAは,単語↔間に追加的な間隔法を作成しないモノトスル。 ◎ If there are no word-separator characters, or if a word-separating character has a zero advance width (such as U+200B ZERO WIDTH SPACE) then the user agent must not create an additional spacing between words.
8.2. 字l↔間の間隔法: `letter-spacing^p ~prop
◎名 `letter-spacing@p ◎値 `normal$v | `length-percentage$vt ◎初 `normal^v ◎適 `行内~box$/~text ◎継 される ◎百 `font-size$p の算出d値(すなわち `1em^v )に相対的 ◎ relative to computed font-size, i.e. 1em ◎算 絶対~長さ/百分率 ◎順 n/a ◎ア 算出d値の型による ◎表終この~propは、 `~typographic文字~単位$↔間に対する追加的な間隔法 — `字間隔法@ ( `letter-spacing^en )†を指定する ( “`tracking^en” とも共通的に呼ばれる)。 【!字l↔間の一律な間隔法】 それは,`双向性による並替ng$ `CSS-WRITING-MODES-4$r の後に適用され、[ `字詰め$ `CSS-FONTS-3$r / `word-spacing$p ]による間隔法もあるときは,それに対する追加になる。 効果中な両端揃え規則に依存して,~UAは、 `~textを両端揃する@#text-justify-property$ために `~typographic文字~単位$↔間の間隔を更に増減してもヨイ。 ◎ This property specifies additional spacing (commonly called tracking) between adjacent typographic character units. Letter-spacing is applied after bidi reordering and is in addition to kerning and word-spacing. [CSS-WRITING-MODES-4] [CSS-FONTS-3] Depending on the justification rules in effect, user agents may further increase or decrease the space between typographic character units in order to justify text.
【† 単語↔間の間隔の概念がない日本語の組版~用語では、 “~~字詰め” と称されることが多い。 】
各種 値の意味は: ◎ Values have the following meanings:
- `normal@v
- 追加的な間隔法は適用されず, 0 に算出される。 ◎ No additional spacing is applied. Computes to zero.
- `length-percentage$t
- `~typographic文字~単位$↔間に対する`追加的な^em間隔法を指定する。 負な値もとり得るが、 実装に依存する制限sがあり得る。 ◎ Specifies additional spacing between typographic character units. Values may be negative, but there may be implementation-dependent limits.
- 注記: 百分率は、 欠損なく継承され,現在の要素の `font-size$p の算出d値 — 絶対~長さとしてのそれ — を基準に解決される (したがって、[ この~propが適用される~textの~size ]に相対的な~sizeを表現する) — `em$u 単位と違って ( `em^u は、 継承した要素(親)の `font-size$p の算出d値を基準に解決される)。 ◎ Note: Percentages inherit intact, and are resolved against the computed font-size of the current element (and thus represent a size relative to the size of the text to which they apply), unlike em units which are resolved against the computed font-size of the element from which they inherit, as an absolute length.
旧来の理由( `1484$issue )から、 `letter-spacing$p の算出d値 `0^v に対する`解決d値$( `getComputedStyle()$c が返す値)は、 `normal$v になるとする。 ◎ For legacy reasons, a computed letter-spacing of zero yields a resolved value (getComputedStyle() return value) of normal.
`letter-spacing$p の目的においては、 各[ `不可分な行内$たち(画像や`行内~塊$など)が成す連続な連なり ]は、 単独の`~typographic文字~単位$として扱われる。 ◎ For the purpose of letter-spacing, each consecutive run of atomic inlines (such as images and inline blocks) is treated as a single typographic character unit.
`字間隔法$は、 行lの先頭には適用しないモノトスル — 行lの末尾に適用するかどうかは、 この~levelの仕様では未定義である。 ◎ Letter-spacing must not be applied at the beginning of a line. Whether letter-spacing is applied at the end of a line is undefined in this level.
`字間隔法$は,行lの先頭/末尾には適用されないときは、 ~textは常に,塊の辺に接合するように収まる。 ◎ When letter-spacing is not applied at the beginning or end of a line, text always fits flush with the edge of the block.
p { letter-spacing: 1em; }
<p>abc</p>
したがって~UAは、 `本当は^em,行lの末尾の辺に`字間隔法$を付加する`ベキでない^em `RFC6919$r ( `really should not^en ): ◎ UAs therefore really should not [RFC6919] append letter spacing to the right or trailing edge of a line:
`~typographic文字~単位$↔間の`間隔法$は、 実質的に, それらの文字~単位を包含する要素のうち,最も内縁な %要素 に “属する” — すなわち、 `~typographic文字~単位$↔間の(`双向性による並替ng$の後の)間隔法は、 %要素 により指定され, %要素 の中に描画される。 しかしながら,~UAは、[ 要素~境界に接する,どちらか一方の`~typographic文字~単位$ ]にも 【言い換えれば、各 ~typographic文字~単位の前後どちらかに一律に】 字間隔法を付してもヨイ — %要素 に~~付随している `letter-spacing$p の値を利用して†。 ◎ Letter spacing between two typographic character units effectively “belongs” to the innermost element that contains the two typographic character units: the total letter spacing between two adjacent typographic character units (after bidi reordering) is specified by and rendered within the innermost element that contains the boundary between the two typographic character units. However, the UA may instead attach letter-spacing at element boundaries to one or the other typographic character unit using the letter-spacing value pertaining to its containing element.
注記†: この副次的な挙動は、 ~Web互換性の懸念に因り,この~levelにおいては許可される。 ◎ Note: This secondary behavior is permitted in this level due to Web-compat concerns.
行内~boxは、[ 当の要素の中に完全に包含された文字たち ]を成す各~文字↔間に限り,字間隔法を含むものと期待される — したがって、 要素の末尾の辺における字間隔法は,除外される: ◎ An inline box is expected to only include letter spacing between characters completely contained within that element, thus excluding letter spacing on the right or trailing edge of the element:
p { letter-spacing: 1em; }
<p>a<span>bb</span>c</p>
その帰結として, `letter-spacing$p の値が影響するのは、[ それが指定された要素に完全に包含されている文字 ]↔間に限られるものと期待される: ◎ Consequently a given value of letter-spacing is expected to only affect the spacing between characters completely contained within the element for which it is specified:
p { letter-spacing: 1em; } span { letter-spacing: 2em; }
<p>a<span>bb</span>c</p>
要素が包含する文字が 1 個以下の場合、 このことは, `letter-spacing$p による効果は描画~結果に現れないことも含意する: ◎ This further implies that applying letter-spacing to an element containing only a single character has no effect on the rendered result:
p { letter-spacing: 1em; } span { letter-spacing: 2em; }
<p>a<span>b</span>c</p>
`字間隔法$が挿入されるのは,双方向性【!RTL 】による並替ngより後なので、 例えば次の `span^e に適用される字間隔法による効果は,同様に生じない — 並替ngの後、 `c^lt は `~HebA^lt の隣に来ないので: ◎ Since letter spacing is inserted after RTL reordering, the letter spacing applied to the inner span below likewise has no effect, since after reordering the "c" doesn’t end up next to "א":
p { letter-spacing: 1em; } span { letter-spacing: 2em; }
<p>ab<span>c~HebA</span>~HebB~HebC</p>
`abc^lt に後続する~Hebrewの “abc” — `~HebA^lt ( `alef^en ), `~HebB^lt ( `bet^en ), `~HebC^lt ( `gimel^en ) — は、 並替ngにより,逆順に表示される: ◎ <!-- abc followed by Hebrew letters alef (א), bet (ב) and gimel (ג) --> <!-- Reordering will display these in reverse order. -->
`字間隔法$においては、 不可視な零幅~整形~文字(`~Unicode字種$ `Cf^uc に属するものなど)は無視される。 間隔法は、[ そのような文字は、 文書~内に存在しなかった ]かのように追加するモノトスル。 ◎ Letter spacing ignores invisible zero-width formatting characters (such as those from the Unicode Cf category). Spacing must be added as if those characters did not exist in the document.
例えば, `A​B^c に適用される `letter-spacing$p は、 要素~境界がどこに来ようが, `AB^c に対するときと一致する。 ◎ For example, letter-spacing applied to A​B is identical to AB, regardless of where any element boundaries might fall.
文字↔間の実質的な間隔法が (`両端揃え@#text-justify-property$ や[ `letter-spacing$p に対する 0 でない値 ]に因り) 0 でないときは、 ~UAは,任意選択な合字 — すなわち、 ~glyphの正しい形状付けに基礎的に要求されるものと定義されるもの — を適用するベキでない。 しかしながら,[ 低~levelな `font-feature-settings$p ~propを介して指定される,合字~その他の~font特能 ]は、 この規則より~~優先される。 `CSS-FONTS-3$r の `§ 特能の~~優先度@~CSSFONT#feature-precedence$ を見よ。 ◎ When the effective spacing between two characters is not zero (due to either justification or a non-zero value of letter-spacing), user agents should not apply optional ligatures, i.e. those that are not defined as required for fundamentally correct glyph shaping. However, ligatures and other font features specified via the low-level font-feature-settings property take precedence over this rule. See CSS Fonts Module Level 3 § feature-precedence.
例えば,単語 “filial” 内に字間隔を入れるときは、 “fi” 合字は 利用されるベキでない — そうすると、 ~textの間隔法は均等でなくなるので。 ◎ For example, if the word “filial” is letter-spaced, an “fi” ligature should not be used as it will prevent even spacing of the text.
注記: ~OpenTypeにおいては、 必須の合字は, `rlig^c 特能に結付けられるものと期待される。 したがって,他のすべての合字は、 任意選択と見なされる。 しかしながら,~UAや~platformは、 一部の壊れた~fontの事例を取扱うため,経験則により追加的な合字を適用することもある。 この仕様は、 そのような例外的な取扱いを[ 定義する/上書きする ]ことはない。 ◎ Note: In OpenType, required ligatures are expected to be associated to the rlig feature. All other ligatures are therefore considered optional. In some cases, however, UA or platform heuristics apply additional ligatures in order to handle broken fonts; this specification does not define or override such exceptional handling.
8.2.1. 筆記的~用字系
~UAは可能なら、 `筆記的~用字系$に対し,余分な間隔の総量を転換して — すなわち、 そのような字lの筆記的な接続を分断することなく,何らかの形で引伸して (または負な間隔法【! tracking 】に対しては圧縮して) — 等価な総 延張(または圧縮)量が得られるように分配することにより,`字間隔法$を適用しても`ヨイ^em。 そのように延張できない場合、 ~UAは、 その用字系の どの`~typographic字l単位$↔間にも,間隔法は`適用しない^emモノトスル (字間隔法の目的においては、 実質的に,各~単語を単独の`~typographic字l単位$として扱うことになる)。 いずれにせよ、 字l↔間の実質的な間隔法は 0 になるが、 引伸ばしは,~textを伸張する趣旨を保全することになる。 ◎ If it is able, the UA may apply letter spacing to cursive scripts by translating the total extra space to be distributed to a run of such letters into some form of cursive elongation (or compression, for negative tracking values) for that run that results in an equivalent total expansion (or compression) of the run. Otherwise, if the UA cannot expand text from a cursive script without breaking its cursive connections, it must not apply spacing between any pair of that script’s typographic letter units at all (effectively treating each word as a single typographic letter unit for the purpose of letter-spacing). Both cases will result in an effective spacing of zero between such letters; however the former will preserve the sense of stretching out the text.
~Arabic~textに間隔を加える,いくつかの適切な/不適切な例: ◎ Below are some appropriate and inappropriate examples of spacing out Arabic text.
- 元の~text: ◎ Original text
- `arabic-stretch-original^dgm
- (不良) 各~字l↔間に間隔を均等に分配する: ◎ BAD Even distribution of space between each letter.
- `arabic-stretch-spaced^dgm
- `筆記的な繋がりを分断してしまう!^em ◎ Notice this breaks cursive joins!
- (良) ~typographicに適切な筆記的な引伸ばしにより,字間隔の~~総和を分配する: ◎ OK Distributing ∑letter-spacing by typographically-appropriate cursive elongation. The resulting text is as long as the previous evenly-spaced example.
- `arabic-stretch-kashida^dgm
- `結果の~textの長さは、 上の間隔を均等に分配する例と同じ。^em ◎ ↑
- (良) [ ~Arabicの字l ]↔間の `letter-spacing$p を抑止する: ◎ OK Suppressing letter-spacing between Arabic letters.
- `arabic-stretch-suppressed^dgm
- `letter-spacing$p は,(`~space$の様な)~Arabicでない文字にも適用されないことに~~注意。 ◎ Notice letter-spacing is nonetheless applied to non-Arabic characters (like spaces).
- (不良) [ 繋がってない字l ]↔間に限り, `letter-spacing$p を適用する: ◎ BAD Applying letter-spacing only between non-joined letters.
- `arabic-stretch-unjoined^dgm
- これは、 均質さ( `typographic color^en )を歪める上,単語~境界を曖昧にしてしまう。 ◎ This distorts typographic color and obfuscates word boundaries.
注記: 筆記的~textに対する適正な引伸ばしや圧縮は、[ 用字系, 書体, 言語, 単語の中での所在, 行lの中での所在, 実装の複階性, ~font能力, 続字的~選好 ]に依存して,変わり得ることに注意。 また、 ある種の事例ではまったくアリでないこともある。 それは[ 合字の短縮/ ~swash異体/ 文脈に応じた形/ `0640^gU `ARABIC TATWEEL^cn などによる引伸ばし~glyph/ その他の微細な~typography ]の利用を孕むこともある。 そのような効果~用の規則を定義することは、 ~CSSの視野から外れる。 作者は、 `筆記的~用字系$に対しては, `letter-spacing$p を適用するのを避けるベキである — 相互運用可能でない結果でも受容されると判っているときは別として。 ◎ Note: Proper cursive elongation or compression of a text can vary depending on the script, typeface, language, location within a word, location within a line, implementation complexity, font capabilities, and calligraphic preferences, and may not be possible in certain cases at all. It may involve the use of shortening ligatures, swash variants, contextual forms, elongation glyphs such as U+0640 ـ ARABIC TATWEEL, or other microtypography. It is outside the scope of CSS to define rules for these effects. Authors should avoid applying letter-spacing to cursive scripts unless they are prepared to accept non-interoperable results.
8.3. 行lの始端, 終端における~padding: `line-padding^p ~prop
◎名 `line-padding@p ◎値 `length$t ◎初 `0^v ◎適 `行内~box$ ◎継 される ◎百 受容しない ◎算 絶対~長さ ◎順 文法に従う ◎ア 算出d値の型による ◎表終`letter-spacing$p (それは,`~typographic文字~単位$↔間の間隔法を調整する) は,行lの[ 始端, 終端 ]には適用されない一方で、 この~propは,行lの[ 始端, 終端 ]に限って間隔法を調整する。 この余分な間隔法は、 行l~boxの[ 始端/終端 ]において`最も内縁^emな`行内~box$ %~box に限り適用され, %~box の内容~辺と %~box に隣接な`行内~level$の内容 (`~text連列$のみならず,`不可分な行内$も含む) の合間に挿入される。 この余分な間隔は、 `両端揃え機会$ではない。 ◎ Whereas letter-spacing adjusts spacing between typographic character units and does not apply at the start or end of a line, this property adjusts spacing only at the start/end of a line. The extra spacing is applied only by the innermost inline box at the start/end of the line box, and is inserted between that inline box’s content edge and the adjacent inline-level content (text or atomic inline). This extra space is not a justification opportunity.
次の~CSSと~HTMLが与えられたとする: ◎ Given the following HTML and CSS:
p { line-padding: 0.5em; text-align: center } span { background: black; color: white; } em { background: green; color: white; }
<p><span>Here is <em>some text</em></span>
`line-padding$p による行-~paddingは、 各~行lの各~側に余分な[ ~~幅 `0.5em^v の行内~背景 ]が可視になるよう,挿入されることになる。 上の~HTMLが[ “some” ↔ “text” 間に分断が在る ]ように描画される場合、 行-~paddingは, 1 行l目では[ 左端は `black^v /右端は `green^v ]になり, 2 行l目では両~側で `green^v になる: ◎ Line-padding will be inserted such that an extra 0.5em of inline background will be visible on each side of each line. If it renders such that there is a break between “some” and “text”, the additional padding will be: on the first line, black on the left and green on the right, and on the second line, green on both sides.
`line-padding-property-1^dgm8.4. 文脈に応じた自動的な間隔法: `text-autospace^p ~prop
◎名 `text-autospace@p ◎値 `normal$v | `autospace$t | `auto$v ◎初 `normal$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終同じ`行内~整形~文脈$の中の[ 同じ行l~box内にある文字↔間の間隔法 ]を[ 文字~classに基づく規則たちが成す集合 ]を利用して制御する — それにより、[ 異なる用字系どうしの合間における間隔法に対する自動的な制御 ]および[ 約物~周りの間隔法 ]を許容する。 ◎ Controls spacing between adjacent characters on the same line within the same inline formatting context using a set of character-class-based rules, allowing for automatic control over inter-script spacing and for spacing around punctuation.
値たちは、 次に従って定義される: ◎ Values are defined as follows:
`autospace@t = `no-autospace$v | [ `ideograph-alpha$v || `ideograph-numeric$v || `punctuation$v ] || [ `insert$v | `replace$v ]
- `normal@v
- `ideograph-alpha ideograph-numeric^v が指定されたときと同じに挙動する。 ◎ Same behavior as ideograph-alpha ideograph-numeric.
- `no-autospace@v
- 挿入される自動的な間隔は無い。 ◎ No automatic space is inserted.
- `insert@v
- ~space類 — `~Unicode字種$ `Z^uc 属する文字 — がすでに在る箇所を除き, 指定された間隔法が自動的に挿入される。 ◎ The specified spacing is automatically inserted if there are no space characters of any kind (Unicode general category Z) already there.
- [ `insert$v, `replace$v ]どちらも指定されなかった場合、 `insert^v と同じ挙動になる。 ◎ If neither insert nor replace are specified, the behavior is the same as insert.
- `replace@v
- 次を除き, `insert$v と同じに挙動する ⇒ `~space$がある箇所にも,指定された間隔法が自動的に挿入され、 当の~spaceは除去される。 ◎ The specified spacing is automatically inserted even if there is already a space (U+0020) at that point; additionally, the space (U+0020) is removed. Other types of space characters (Unicode general category Z) suppress automatic spacing, as for insert.
- 注記: これは、 適正な間隔法の代わりに打ち込み易い`~space$を利用している~textを正すためにある。 ◎ Note: This is for correcting text which is using the easy-to-type U+0020 instead of proper spacing.
- `ideograph-alpha@v
- [ `表語文字$たちが成す連なり ↔ `非-表語-字l$たちが成す連なり ]間に間隔を挿入する — `§ 用字系↔間の間隔法@#inter-script-spacing$ を見よ。 ◎ Creates extra spacing between runs of ideographs and non-ideographic letters, see § 8.4.1 Inter-script Spacing.
- `ideograph-numeric@v
- [ `表語文字$たちが成す連なり ↔ `非-表語-数字l$たちが成す連なり ]間に間隔を挿入する — `§ 用字系↔間の間隔法@#inter-script-spacing$ を見よ。 ◎ Creates extra spacing between runs of ideographs and non-ideographic numerals, see § 8.4.1 Inter-script Spacing.
- `punctuation@v
- 約物の周りに分断されない間隔を挿入する — 言語に特有な~typographic規約から要求されるとおりに。 ◎ Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions.
- この~levelにおいては、 当の要素の内容~言語が~Frenchである場合には, `~French~typographic指針@https://web.archive.org/web/20201112013601/http://unicode.org/udhr/n/notes_fra.html$ により要求される箇所に[ `202F^U `NARROW NO-BREAK SPACE^cn, `00A0^U `NO-BREAK SPACE^cn ]が挿入される。 他の場合,この値には効果は無いが、 将来の仕様は,他の言語~用に自動的な間隔法の挙動を追加し得る。 ◎ In this level, if the element’s content language is French, narrow no-break space (U+202F) and no-break space (U+00A0) is inserted where required by French typographic guidelines. Otherwise this value has no effect. However future specifications may add automatic spacing behavior for other languages.
- `auto@v
- ~UAが[ ~typographic的に高-品質な間隔法を得るための値たちが成す集合 ]を選ぶ。 この集合は、 ~UA, および~UAが稼働する~platformに応じて異なり得る。 ◎ The user agent chooses a set of typographically high quality spacing values. Different user agents running on different platforms may pick different values.
- 注記: この集合による結果は、 ~OS~platform規約に合致するとは限らない。 ◎ Note: These spacing values may or may not match OS platform conventions.
`text-autospace$p ~propと[ `word-spacing$p / `letter-spacing$p ]~propによる間隔法は、 加法的である — すなわち、 前者により作成される間隔法には, 後者の設定が寄与する間隔法(もしあれば)の量が加算される。 ◎ This property is additive with the word-spacing and letter-spacing properties. That is, the amount of spacing contributed by the letter-spacing setting (if any) is added to the spacing created by text-autospace. The same applies to word-spacing.
要素~境界にて文字↔間に導入される余分な間隔法の量は、 当の境界を包含する最も内縁な要素により決定され,その中で描画される。 ◎ At element boundaries, the amount of extra spacing introduced between characters is determined by and rendered within the innermost element that contains the boundary.
8.4.1. 用字系↔間の間隔法
値[ `ideograph-alpha$v, `ideograph-numeric$v ]は、[ 特定0の異なる~classに属する文字どうし ]が行l上で直に連接しているとき — すなわち、 0 でない[ `~margin$/`~border$/`~padding$ ]や文字(引用符や~spaceなど)は,そこに挟まれていないとき — に,それらの境界に間隔法を導入する。 これらの~keywordにより導入される間隔の量は、 ~CJK送幅 ~DIV 8 — すなわち `0.125ic^v — になる。 ◎ The ideograph-alpha and ideograph-numeric values introduce spacing at the boundary between particular classes of characters when they are directly adjoining on a line, i.e. without any intervening non-zero margin, border, or padding or intervening characters (such as a quotation mark or a space). The amount of space introduced by these keywords is 1/8 of the CJK advance measure, i.e 0.125ic.
注記: 間隔法の規約は文脈に応じて変わるが、 間隔の量は,概して `1ic^v ~DIV 4 以下かつ `1ic^v ~DIV 8 以上になる — 歴史的な文脈においては, 金属~活字の制限に因り `1ic^v ~DIV 4 の方が共通的にあり、 均衡幅な植字においては `1ic^v ~DIV 6 以下の方が共通的にある。 これらの間隔は, (初期~値 `normal$v を通して) 既定で挿入されるので、 ~CSSは,その干渉を保守的にするために `1ic^v ~DIV 8 を利用する。 この~moduleの将来~levelは、 間隔法の量に対する制御を導入し得る。 ◎ Note: Spacing conventions vary, but values typically range from 1/4ic to as low as 1/8ic, with 1/4ic being more common in historical contexts due to metal type limitations and 1/6ic or thinner being more common in proportional typesetting. Because these spaces are inserted by default (through the initial value, normal), CSS uses 1/8ic in order to be conservative in its interference. A future level of this module may introduce control over the amount of spacing.
8.5. ~CJK約物の間隔法: `text-spacing-trim^p ~prop
◎名 `text-spacing-trim@p ◎値 `spacing-trim$t | `auto^v ◎初 `normal$v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終同じ`行内~整形~文脈$の中の[ 同じ行lにある~CJK約物~文字の周りにおける間隔法 ]を[ 文字~classに基づく規則たちが成す集合 ]を利用して制御することにより、 それらを[ 行lの中の各自の位置, 前後にあるもの ]に基づいて[ 半角または全角に組むこと ]を許容する。 ◎ Controls spacing around CJK punctuation characters on the same line within the same inline formatting context using a set of character-class-based rules, allowing them to be set halfwidth or fullwidth based on their position and neighbors within the line.
値たちは、 次に従って定義される: ◎ Values are defined as follows:
`spacing-trim@t = `space-all$v | `normal$v | `space-first$v | `trim-start$v | `trim-both$v | `trim-all$v
- `space-all@v
- すべての全角~約物~文字を全角に(間隔を残して)組む。 ◎ All fullwidth punctuation characters are set with full-width glyphs (spaced).
- `normal@v
- 各~行lの始端にある`全角~開き約物$を全角に組む。 ◎ Set fullwidth opening punctuation with full-width glyphs (spaced) at the start of each line;\
- 各~行lの終端にある`全角~閉じ約物$を — 両端揃えに先立って — 全角に組むとき、 それが当の行lに[ 収まらない場合は半角に(終端に接合して)組む/ 収まる場合は全角に組む ]。 ◎ set fullwidth closing punctuation with half-width glyphs (flush) at the end of each line if it does not otherwise fit prior to justification, else set the punctuation with full-width glyphs;\
- 約物~glyph↔間の間隔法を `§ 全角~約物の縮約-法@#fullwidth-collapsing$ にて述べるとおり縮約する。 ◎ and collapse spacing between punctuation glyphs as described below.
- `trim-both@v
- 各~行lの[ 始端にある`全角~開き約物$/終端にある`全角~閉じ約物$ ]を半角に(接合して)組む。 ◎ Set fullwidth opening punctuation with half-width glyphs (flush) at the start of each line;\
- 約物~glyph↔間の間隔法を `§ 全角~約物の縮約-法@#fullwidth-collapsing$ にて述べるとおりに縮約する。 ◎ set fullwidth closing punctuation with half-width glyphs (flush) at the end of each line; and collapse spacing between punctuation glyphs as described below.
- `space-first@v
- 次を除き, `normal$v と同じに挙動する ⇒ `全角~開き約物$が[ `塊~容器$の最初の行l/ `強制d行l分断$の直後にある各~行l ]【の始端】にある場合は、 それを全角に(間隔を残して)組む。 ◎ Set fullwidth opening punctuation with full-width glyphs (spaced) on the first line of the block container and each line after a forced line break. Otherwise as normal.
-
この値が存在するのは、 互換性~要件による。 ◎ This value exists for compat requirements.
この値は、 既存の一部の[ 中国語/日本語 ]内容 — 最初の行lにおいては `space-all$v と同じに組まれることを期待して記されたことを除けば、 `trim-both$v が~typographic的に適切になるような内容 — の整形を管理するために存在する。 ◎ This value exists to manage formatting of some existing Chinese and Japanese content, for which trim-both would have been appropriate typographically, except that they are already written to expect the first line to be set as for space-all.
特定的に,既存の内容(とりわけ~ePub内容)は、 各~UAにまたがる[ 依拠-可能な `hanging-punctuation$p の~support ]が欠如することに因り, `text-indent$p に代えて `3000^gU 表語-~spaceを利用するが、 段落が約物で始まるときには,それを省略する — 吊下ng約物~効果を作成するために,字下げ内に`吊下げる$ことが欲されるので。 最初の行lにも `trim-both$v を利用すると、 そのような内容における字下げを実質的に削ることになり, 新たな段落を成す最初の行lであることが判らなくなる。 ◎ Specifically, due to the lack of reliable hanging-punctuation support across UAs, existing content (especially ePub content) uses U+3000 ideographic space in place of text-indent, but omits it when the paragraph begins with punctuation that is desired to hang in the indent in order to create the hanging punctuation effect. Using trim-both on the first line would thus trim away the effective indent in such content and thus obscure that line’s distinction as the first line of a new paragraph.
この(常にではないが,ときどきある)実施 — 表語-~spaceを字下n用に利用する植字 — は、 ~HTMLと~CSSが提供する内容と~styleの分離に反することに注意。 文書を成す~text内容を手直しするのではなく,[ `hanging-punctuation$p, `text-indent$p ]を利用して段落~整形を制御する方が、 文書~source内の~textの真な意味論を保全することに加え,様々な[ 間隔法/字下n ]~styleを — 内容を改める必要なく — 自由に切替えることを~stylesheet設計者に許容する。 例えば、 `§ ~CSSにおける日本語の段落~始端の規約@#japanese-start-edges$ を見よ。 ◎ Note that this typesetting practice of using ideographic spaces for indentation (sometimes and not always) is contrary to the separation of content and style offered by HTML and CSS. Using hanging-punctuation and text-indent to control paragraph formatting rather than tweaking the text content of the document preserves the text’s true semantics in the document source and allows the style sheet designer to freely switch among the various spacing/indentation styles without needing to alter the content. See § 8.5.3 Japanese Paragraph-start Conventions in CSS for examples.
加えて,行lの終端における挙動は、 `trim-both$v ではなく, `normal$v や `trim-start$v に揃えられる。 そこでは、 両端揃えに先立って,他では行lに収まらない場合に限り~glyphを削る。 ~typographyが改善される事例は減るが、 旧来の `space-all$v の挙動に近くなり,互換性の懸念を抑制する。 ◎ Additionally, the behavior at the end of lines is aligned with the normal and trim-start values rather than trim-both, in that it only trims the glyphs if they do not otherwise fit prior to justification. While improving the typography in fewer cases, it is closer to the legacy behavior of space-all which reduces compatibility concerns.
- `trim-start@v
- 次を除き, `normal$v と同じに挙動する ⇒ 各~行lの始端にある`全角~開き約物$を半角に(始端に接合して)組む。 ◎ Set fullwidth opening punctuation with half-width glyphs (flush) at the start of each line. Otherwise as normal.
- `trim-all@v
- [ `全角~開き約物$/`全角~閉じ約物$/`全角~中黒~約物$ ]を半角に組む — 当の行lの中での その位置も,それに隣接な文字も問わず。 ◎ Set fullwidth opening punctuation, fullwidth closing punctuation, and fullwidth middle dot punctuation with half-width glyphs, without regards for the position within the line nor for adjacent characters.
- `auto@v
- ~UAが[ ~typographic的に高-品質な間隔法を得るための値たちが成す集合 ]を選ぶ。 この集合は、 ~UA, および~UAが稼働する~platformに応じて異なり得る。 ◎ The user agent chooses a set of typographically high quality spacing values. Different user agents running on different platforms may pick different values.
- 注記: この集合による結果は、 ~OS~platform規約に合致するとは限らない。 ◎ Note: These spacing values may or may not match OS platform conventions.
- `auto$v は必要なのか? 作者にとっては、 最初の行lの始端にて~platformに依存する挙動を選ぶのは不気味であろうから, 代わりに `trim-both$v を利用するはずなので。 ◎ Do we need auto? It would be weird for the author to choose platform-dependent behavior at the start of the first line, and it should otherwise use trim-both.
注記: 各種~値が何を行うかについて,非正式な要約をここに挙げる: ◎ Here is an informal summary of what the various values do:
値 | 行lの始端にて削るか | 行lの終端にて削るか | 隣接な約物↔間で削るか | どこでも削るか |
---|---|---|---|---|
`space-all$v | いいえ | |||
`normal$v | いいえ | 行lに収まらない場合に限り,はい | はい | いいえ |
`space-first$v | 最初の行lを除き,はい | |||
`trim-start$v | はい | |||
`trim-both$v | はい | はい | ||
`trim-all$v | はい | |||
`auto$v | ~UAに特有/~platformに依存する |
8.5.1. 全角~約物の縮約-法
全角~文字~用の~glyphは、 概して,標準な漢字の送幅(例: `6C34^gU のそれ)を伴う。 しかしながら、 多くの全角~約物~glyphは,全角~design空間を全部的には占めない。 したがって、 そのような約物は,全角に組まれるとは限らない。 `text-spacing-trim$p 用のいくつかの値は、 そのような文字が[ 半角(概して,表語文字の字幅の半分), 全角 ]どちらに組まれるか制御することを作者に許容する。 ◎ Typically, fullwidth characters have glyphs with the same advance width as a standard Han character (e.g. 水 U+6C34). However, many fullwidth punctuation glyphs only take up part of the fullwidth design space. Thus such punctuation are not always set fullwidth. Several values of text-spacing allow the author to control when such characters are set half-width (typically half the width of an ideograph) and when they are set full-width.
~textを指定されたとおりに組むためには、 ~UAは,次を行う必要がある: ◎ In order to set the text as specified, the UA will need to either
- 全角として与えられた~glyphに対し,半角に組むよう要求された場合には、 それを成す空域を削る(字詰する)。 ◎ trim (kern) the blank half of the glyphs, if they are given full-width and must be set half-width, or
- 半角として与えられた~glyphに対し,全角に組むよう要求された場合には、 ~glyphに間隔を追加する ◎ add space to the glyphs, if they are given half-width and must be set full-width.
~UAは、 所与の~glyphに対し,~OpenType[ `halt^c / `vhal^c ]特能が当の~fontにより実装された場合には、 それを利用して,当の~glyphに必須な削りを遂行しても`ヨイ^em。 ~UAは、[ `hwid^c 特能を利用しない/半角~形で代用しない ]`モノトスル^em — 半角~glyphに切替えると~glyph図形が変化し得るが、 それは,ここでは受容-可能でないので。 ◎ The UA may use the OpenType halt and vhal features if implemented by a font in order to perform the requisite trimming of a particular glyph. The UA must not use the hwid feature or otherwise substitute halfwidth forms as switching to halfwidth glyphs can change the glyph shape which is not acceptable here.
~fontには、 全角~約物~文字~用に均衡幅な~glyphを利用するものもある。 ~glyph図形が全角か半角か(例:~font特能を通して)判別するための~supportが~font内に無い場合、 そのような均衡幅な~glyph用には,所与の送幅が全角と半角に対し同時に考慮される — ~UAは、 これらの~glyphには間隔を[ 追加しない/除去しない ]モノトスル。 ◎ Some fonts use proportional glyphs for fullwidth punctuation characters. If there is no support in the font for distinguishing fullwidth vs halfwidth glyph shapes (e.g. through font features), then for such proportional glyphs, the given advance width is considered simultaneously full-width and half-width: the UA must not add or remove space to these glyphs.
注記: 標準な漢字の送幅は、 次のいずれかにより決定できる: ◎ Note: The advance width of a standard Han character can be determined either\
- ~font計量 — 反対の【送幅の軸と直交する】書字~mode用の~OpenType[ `ideo^c, `idtp^c ]基底線など — から (反対の書字~modeを利用しなければならないのは、 一部の~fontが,文字が正方形にならないように圧縮されることによる)。
- 漢字 — `6C34^gU など — の送幅からとる
~OpenType計量についての情報は `~OpenType仕様@https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags#ideoembox$内に見出せる。 [[ `6C34^gU, `535C^gU , `4E00^gU ]の送幅がすべて同じ ]ではない場合、 当の~fontの表語文字は均衡幅であり, ~glyphたちを測定するだけでは全角~送幅を依拠-可能に決定し得ないことに注意。 ◎ More information on OpenType metrics can be found in the OpenType spec. Note that if 水 U+6C34, 卜 U+535C, and 一 U+4E00 do not all have the same advance width, the font has proportional ideographs and the fullwidth advance width cannot be reliably determined by measuring glyphs.
~fontによっては、 削る(字詰する)には空域が狭過ぎる全角~約物がある。 ~UAは、 削り(字詰め)が[ ~glyph限界~box/~glyph計量/~font特能 ]を通して~glyphの[ 切落/衝突/過度な字詰め ](順不同)を生じさせ得るものと決定したときには, 削らない(字詰しない)ことを選んでもヨイ。 ◎ Some fonts have fullwidth punctuation characters whose blank are too small to trim (kern.) UA may choose not to trim (kern) when the UA determined the trimming (kerning) may cause glyph cut-offs, collisions, or excessive kerning through glyph bounding box, glyph metrics, or font features.
~UAは, `text-spacing-trim$p1 が `space-all$v1 以外に設定された下では、[ 当の~fontにおいて均衡幅でない全角~約物~glyphに概して結付けられる間隔 ]を[ `trim-all$v1 設定された下では,当の約物が現れる文脈に関わらず/ 他の場合は,当の約物が以下に挙げるいずれかに該当するならば ]縮約する【すなわち,半角に組む】モノトスル: ◎ If text-spacing-trim is trim-all, the UA must collapse the space typically associated with such full width glyphs regardless of the context in which they appear.\ Otherwise, unless text-spacing-trim is set to space-all (or the font has proportional fullwidth punctuation glyphs), the UA must collapse the space typically associated with such full width glyphs when placed adjacently on a line as follows:
-
`全角~開き約物$は、 直前の文字が次に挙げるいずれかならば半角に組む: ◎ Set fullwidth opening punctuation half-width if the previous character is any of:
- `全角~開き約物$ ◎ a fullwidth opening punctuation
- `全角~中黒~約物$ ◎ a fullwidth middle dot punctuation
- `3000^gU(表語-~space) ◎ an ideographic space (U+3000)
- `全角~閉じ約物$のうち, その `font-size$p は当の約物のそれ以上であるもの ◎ a fullwidth closing punctuation of an equivalent or larger font-size
- `~Unicode字種$ `Ps^uc に属する文字 ◎ a character belonging to Unicode general category Ps
他の場合、 全角に組む。 ◎ Otherwise set it full-width.
-
`全角~閉じ約物$は、 直後の文字が次に挙げるいずれかならば半角に組む: ◎ Set fullwidth closing punctuation half-width if the next character is any of:
- `全角~閉じ約物$ ◎ a fullwidth closing punctuation
- `全角~中黒~約物$ ◎ a fullwidth middle dot punctuation
- `3000^gU(表語-~space) ◎ an ideographic space (U+3000)
- `全角~開き約物$のうち, その `font-size$p は当の約物のそれ以下でないもの ◎ a fullwidth opening punctuation of a larger font-size
- `~Unicode字種$ `Pe^uc に属する文字 ◎ a character belonging to Unicode general category Pe
他の場合、 全角に組む。 ◎ Otherwise set it full-width.
次の表tに,上により影響される隣接な約物~pairを挙げる。 【表tの “見かけ” 列においては、】 削り効果を近似するため,等価な半角~glyphが利用される。 ◎ The following example table lists the punctuation pairs affected by adjancent-pairs trimming. It uses halfwidth equivalents to approximate the trimming effect.
組合n | 見本~pair | 見かけ |
---|---|---|
開き + 開き | `3014^gU + `FF08^gU | `〔(^lt |
中黒 + 開き | `30FB^gU + `FF08^gU | `・(^lt |
閉じ + 開き | `3015^gU + `FF08^gU | `〕(^lt |
表語-~space + 開き | `3000^gU + `FF08^gU | ` (^lt |
閉じ + 閉じ | `FF09^gU + `3015^gU | `)〕^lt |
閉じ + 中黒 | `FF09^gU + `30FB^gU | `)・^lt |
閉じ + 表語-~space | `FF09^gU + `3000^gU | `) ^lt |
8.5.2. ~text間隔法~文字~class
この~propの文脈においては、 次に挙げる定義が適用される: ◎ In the context of this property the following definitions apply:
[ ~class/~Unicode符号位置 ]たちは,考査の下にあり、 ~Unicodeに対する より近過去な追加を収容するため, 少なくとも何らかの変更が必要である。 [`9503$issue] ◎ Classes and Unicode code points are under review, and at least some changes are needed to accommodate more recent additions to Unicode. [Issue #9503]
- `表語文字@ ( `ideograph^en ) ◎ ideographs
-
`~typographic文字~単位$のうち, 基底~文字が次に挙げるいずれかであるものを含む: ◎ Includes all typographic character units [CSS-TEXT-3] whose base character is listed below:
- `3041^U 〜 `30FF^U — ただし,次を除く ⇒ `~Unicode字種$ `P*^uc に属する文字 ( `~Unicode約物^i ( `Unicode Punctuation^en )) ◎ All characters in the range of U+3041 to U+30FF, except those that belong to Unicode Punctuation [P*] general category.
- `31C0^U 〜 `31EF^U ( `~CJK字画^i ( `CJK Strokes^en )) ◎ CJK Strokes (U+31C0 to U+31EF).
- `31F0^U 〜 `31FF^U ( `~Katakana音標~拡張^i ( `Katakana Phonetic Extensions^en )) ◎ Katakana Phonetic Extensions (U+31F0 to U+31FF).
- `用字系~prop$ `Han^uc に属する文字(すべての漢字) ◎ All characters that have the Han script property.
- `非-表語-字l@ ( `non-ideographic letter^en ) ◎ non-ideographic letters
-
`~typographic文字~単位$のうち, `~Unicode字種$[ `L*^uc ( `~Unicode字l^i ( `Unicode Letter^en ))/ `M*^uc ( `Mark^en ) ]に属するものを含む — ただし,次に挙げるものを除く: ◎ Includes all typographic character units that belong to Unicode Letters [L*] and Mark [M*] general category, except when any of the following conditions are met:
- `表語文字$ ◎ is defined as ideograph.
- `東Asian字幅~prop$が `Fullwidth^uc ( `F^uc )に分類されるもの ◎ is categorized as East Asian Fullwidth (F) by [UAX11].
- 縦書き~text~flowにおいて[ `text-orientation$p / `text-combine-upright$p ]いずれかの~propを利用して正立になるもの ◎ is upright in vertical text flow using the text-orientation property or the text-combine-upright property.
- `非-表語-数字l@ ( `non-ideographic numeral^en ) ◎ non-ideographic numerals
-
`~typographic文字~単位$のうち, `~Unicode字種$ `Nd^uc に属するもの ( `~Unicode十進数字^i ( `Unicode Decimal Digit Number^en )) を含む — ただし,次に挙げるものを除く: ◎ Includes all typographic character units that belong to the Unicode Decimal Digit Number [Nd] general category, except when any of the following conditions are met:
- `東Asian字幅~prop$が `Fullwidth^uc( `F^uc )に分類されるもの ◎ is categorized as East Asian Fullwidth (F) by [UAX11].
- 縦書き~text~flowにおいて[ `text-orientation$p / `text-combine-upright$p ]いずれかの~propを利用して正立になるもの ◎ is upright in vertical text flow using the text-orientation property or the text-combine-upright property.
- `全角~開き約物@ ( `fullwidth opening punctuation^en ) ◎ fullwidth opening punctuation
- `~Unicode字種$ `Ps^uc に属する文字(開き約物)のうち,次に挙げるものを含む ⇒# `3000^U 〜 `303F^U ( `~CJK記号と約物^i ( `CJK Symbols and Punctuation^en )~blockに属するもの)/ `東Asian字幅~prop$が `Fullwidth^uc( `F^uc )に分類されるもの ◎ Includes any opening punctuation character (Unicode category Ps) that belongs to the CJK Symbols and Punctuation block (U+3000–U+303F) or is categorized as East Asian Fullwidth (F) by [UAX11].\
- 次に挙げるものも含む ⇒# `2018^U `LEFT SINGLE QUOTATION MARK^cn, `201C^U `LEFT DOUBLE QUOTATION MARK^cn ◎ Also includes LEFT SINGLE QUOTATION MARK (U+2018) and LEFT DOUBLE QUOTATION MARK (U+201C).\
- 削られるときは、[ 横書き/縦書き ]~text用には[ 左~半分†/上~半分 ]が字詰される。 【†右~横書きならば右~半分になろう(以下同様)。】 ◎ When trimmed, the left (for horizontal text) or top (for vertical text) half is kerned.
- `全角~閉じ約物@ ( `fullwidth closing punctuation^en ) ◎ fullwidth closing punctuation
- `~Unicode字種$ `Pe^uc に属する文字(閉じ約物)のうち,次に挙げるものを含む ⇒# `3000^U 〜 `303F^U ( `~CJK記号と約物^i ( `CJK Symbols and Punctuation^en ) ~blockに属するもの)/ `東Asian字幅~prop$が `Fullwidth^uc( `F^uc )であるもの ◎ Includes any closing punctuation character (Unicode category Pe) that belongs to the CJK Symbols and Punctuation block (U+3000–U+303F) or is categorized as East Asian Fullwidth (F) by [UAX11].\
- 次に挙げるものを含む ⇒# `2019^U `RIGHT SINGLE QUOTATION MARK^cn, `201D^U `RIGHT DOUBLE QUOTATION MARK^cn ◎ Also includes RIGHT SINGLE QUOTATION MARK (U+2019) and RIGHT DOUBLE QUOTATION MARK (U+201D).\
- 次に挙げるものも含み得る (`下を見よ@#fullwidth-ambiguous$) ⇒# `全角~colon約物$ / `全角~dot約物$ ◎ May also include fullwidth colon punctuation and/or fullwidth dot punctuation (see below).\
- 削られるときは、[ 横書き/縦書き ]~text用には[ 右~半分/下~半分 ]が字詰される。 ◎ When trimmed, the right (for horizontal text) or bottom (for vertical text) half is kerned.
- `全角~中黒~約物@ ( `fullwidth middle dot punctuation^en ) ◎ fullwidth middle dot punctuation
- 次に挙げるものを含む ⇒# `00B7^U `MIDDLE DOT^cn, `2027^U `HYPHENATION POINT^cn, `30FB^U `KATAKANA MIDDLE DOT^cn ◎ Includes MIDDLE DOT (U+00B7), HYPHENATION POINT (U+2027), and KATAKANA MIDDLE DOT (U+30FB).\
- 次に挙げるものも含み得る (`下を見よ@#fullwidth-ambiguous$) ⇒# `全角~colon約物$/ `全角~dot約物$ ◎ May also include fullwidth colon punctuation and/or fullwidth dot punctuation (see below).
- `全角~colon約物@ ( `fullwidth colon punctuation^en ) ◎ fullwidth colon punctuation
- 次に挙げるものを含む ⇒# `FF1A^U `FULLWIDTH COLON^cn, `FF1B^U `FULLWIDTH SEMICOLON^cn。 ◎ Includes FULLWIDTH COLON (U+FF1A) and FULLWIDTH SEMICOLON (U+FF1B).
- `全角~dot約物@ ( `fullwidth dot punctuation^en ) ◎ fullwidth dot punctuation
- 次に挙げるものを含む ⇒# `3001^U `IDEOGRAPHIC COMMA^cn, `3002^U `IDEOGRAPHIC FULL STOP^cn, `FF0C^U `FULLWIDTH COMMA^cn, `FF0E^U `FULLWIDTH FULL STOP^cn ◎ Includes IDEOGRAPHIC COMMA (U+3001), IDEOGRAPHIC FULL STOP (U+3002), FULLWIDTH COMMA (U+FF0C), FULLWIDTH FULL STOP (U+FF0E).
[ `全角~colon約物$/`全角~dot約物$ ]が[ `全角~閉じ約物$, `全角~中黒~約物$ ]どちらに見なされるベキかは、 当の約物が~glyphの~box内のどこに描かれるかに依存する: ◎ Whether fullwidth colon punctuation and fullwidth dot punctuation should be considered fullwidth closing punctuation or fullwidth middle dot punctuation depends on where in the glyph’s box the punctuation is drawn.\
- 中央に寄せられる場合、 中黒~約物に見なされるベキである。 ◎ If the punctuation is centered, then it should be considered middle dot punctuation.\
- 一方の側 — [ 横書き/縦書き ]~textにおいて[ 左端/上端 ] — に描かれ,~~逆側が空域になる場合、 閉じ約物と見なされ,それに則って削られるベキである。 ◎ If the punctuation is drawn to one side (left in horizontal text, top in vertical text) and the other half is therefore blank then the punctuation should be considered closing punctuation and trimmed accordingly.
~UAは、[ `全角~colon約物$/`全角~dot約物$ ]を[ `全角~閉じ約物$, `全角~中黒~約物$ ]どちらの`~Unicode字種$の下におくか,適切に~class分けするモノトスル。 ~UAは、 この分類法を決定するにあたって,[ 言語~規約/ 書字~mode(横書きか縦書きか)/ ~font情報 ]に依拠してもヨイ。 ~UAは、 各`~Unicode字種$に追加的な文字を適切に追加してもヨイ。 ◎ The UA must classify fullwidth colon punctuation and fullwidth dot punctuation under either the fullwidth closing punctuation category or the fullwidth middle dot punctuation category as appropriate. The UA may rely on language conventions and the writing mode (horizontal vs. vertical), and/or font information to determine this categorization. The UA may also add additional characters to any category as appropriate.
注記: 次の規範的でない表tに,[ `全角~colon約物$/`全角~dot約物$ ]を~class分けするための言語~規約を要約する: ◎ The following informative table summarizes language conventions for classifying fullwidth colon and dot punctuation:
~colon約物 | ~dot約物 | |
---|---|---|
簡体~中国語(横書き) | 閉じ | 閉じ |
簡体~中国語(縦書き) | 閉じ | 閉じ |
繁体~中国語 | 中黒 | 中黒 |
韓国語 | 中黒 | 閉じ |
日本語 | 中黒 | 閉じ |
作者は、[ 少なくとも,中国語~fontには、 標準な規約に従わないものが多い ]ことが観測されることに注意。 ◎ Note that for Chinese fonts at least, the author observes that the standard convention is often not followed.
8.5.3. ~CSSにおける日本語の段落~始端の規約
日本語には, 3 種の共通的な始端~辺における植字~schemeがある — それらは、 開き括弧の取扱いにより判別される。 ◎ Japanese has three common start-edge typesetting schemes, which are distinguished by their handling of opening brackets.
~UA~stylesheetに `p { margin: 1em 0; }^css が在ると見做すなら【これは何のため?】、 次の~CSS規則で日本語の植字~styleを達成できる: ◎ Assuming a UA style sheet of p { margin: 1em 0; }, CSS can achieve the Japanese typesetting styles with the following rules:
-
括弧を[ 字下げ/他の行l ]に接合する ( 1 種目の~scheme): ◎ Brackets flush with indent, flush with other lines (first scheme):
p { /* 接合-整列 ◎ Flush alignment */ margin: 0; text-indent: 1em; text-spacing-trim: trim-both; }
-
どの行lでも,括弧に対し全角な間隔法を保全する ( 2 種目の~scheme): ◎ Brackets preserve fullwidth spacing on all lines (second scheme):
p { /* 全角~整列 ◎ Fullwidth alignment */ margin: 0; text-indent: 1em; text-spacing-trim: space-all; }
-
括弧を字下げ内に吊下げる/他の行lでは接合する ( 3 種目の~scheme): ◎ Brackets hang in indent, flush with other lines (third scheme):
p { /* 吊下ng整列 ◎ Hanging alignment */ margin: 0; text-indent: 1em; text-spacing-trim: trim-both; hanging-punctuation: first; }
8.6. 文字~classに基づく間隔法: `text-spacing^p 略式~prop
◎名 `text-spacing@p ◎値 `none$v | `auto$v | `spacing-trim$t || `autospace$t ◎初 個々の~propを見よ ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終この略式~propは、 単独の宣言で[ `text-spacing-trim$p, `text-autospace$p ]を設定する。 値たちは、 次に従って定義される: ◎ This property is a shorthand for setting text-spacing-trim and text-autospace in a single declaration. Values are defined as follows:
- `none@v
- ~text間隔法~用の特能をすべてオフにする:[ `text-spacing-trim$p1 を `space-all$v1 / `text-autospace$p1 を `no-autospace$v1 ]に設定する。 ◎ Turns off all text-spacing features: sets text-spacing-trim to space-all and text-autospace to no-autospace.
- `auto@v
- [ `text-spacing-trim$p1 を `auto$v1 / `text-autospace$p1 を `auto$v1 ]に設定する。 ◎ Sets both text-spacing-trim and text-autospace to auto.
- `spacing-trim$t
- `text-spacing-trim$p を指定された値に設定する。 `autospace$t 値が与えられなかった場合、 `text-autospace$p は`初期~値$に設定される。 ◎ Sets text-spacing-trim to the specified value. If no <autospace> value is given, text-autospace is set to its initial value.
- `autospace$t
- `text-autospace$p を指定された値に設定する。 `spacing-trim$t 値が与えられなかった場合、 `text-spacing-trim$p は`初期~値$に設定される。 ◎ Sets text-autospace to the specified value. If no <spacing-trim> value is given, text-spacing-trim is set to its initial value.
注記: `normal^v は[ `text-spacing-trim$p, `text-autospace$p ]両者の初期~値なので、 `text-spacing$p に指定した場合,この両者を各自の初期~値に設定し直すことになる。 ◎ Note: As normal is the initial value of both text-spacing-trim and text-autospace, text-spacing: normal resets both to their initial values.
8.7. 要素~境界をまたがる形状付け
`行内~box$の境界が~textの`~typographic文字~単位$↔間を分離していて, ~OR↓ が満たされる場合、 ~textの形状付けは,その境界で分断する`モノトスル^em: ◎ Text shaping must be broken at inline box boundaries when any of the following are true for any box whose boundary separates the two typographic character units:
- 境界における~boxの行内-軸[ `margin$p, `border$p, `padding$p ]いずれかの値は 0 でない。 ◎ Any of margin/border/padding separating the two typographic character units in the inline axis is non-zero.
- ~boxの `vertical-align$p 値は `baseline$v でない。 ◎ vertical-align is not baseline.
- 境界は、 `双向-隔離-$している。 ◎ The boundary is a bidi isolation boundary.
~textの形状付けは、 整形が実質的に変化しないか, 変化しても~glyphには影響しないときは (`~text装飾@~CSSTEXTDECOR#line-decoration$を適用するときなど),行内~box境界を`分断しないモノトスル^em。 ◎ Text shaping must not be broken across inline box boundaries when there is no effective change in formatting, or if the only formatting changes do not affect the glyphs (as in applying text decoration).
そうでなくとも、 当の事例において適理かつ,与えられた~font技術の制限の下でアリならば、 ~textの形状付けは,行内~box境界で`分断されるベキでない^em。 ◎ Text shaping should not be broken across inline box boundaries otherwise, if it is reasonable and possible for that case given the limitations of the font technology.
境界をまたがる形状付けが適理かつアリな例として、 ~Arabicに対する形状付けが挙げられる。 多くの~systemでは、 これは,~font~engineにより遂行される — [ 【所与の文字に対応する~glyphとして】[ とても洗練された,文脈に応じた形状付け ]を伴い得るような,何種かの異体~glyphを供する ]ことを~fontに許容する下で。 ~fontが変化する箇所では、 一般に,この~systemに依拠することは — 当の~font~engineが文脈を供する~APIを備えていない限り — アリでないが、 ~engineにとってはこの制限に対処するのは単直なので,~~普通に適理になる: 例えば、 2 種の零幅~文字[ `200D^U `ZERO WIDTH JOINER^cn / `200C^U `ZERO WIDTH NON-JOINER^cn ]を利用して,[ 語頭形/語中形/語尾形/単独形( `initial/medial/final/isolated^en ) ]の~glyphを正しく選ぶよう適切に請求するなどにより。 ◎ An example of reasonable and possible shaping across boundaries is Arabic shaping: in many systems this is performed by the font engine, allowing the font to provide variant glyphs with potentially very sophisticated contextual shaping. It’s not generally possible to rely on this system across a font change unless the font engine has an API to provide context, but it is straightforward and therefore quite reasonable for an engine to work around this limitation by, for example, using the zero-width-joiner (U+200D) or zero-width-non-joiner (U+200C) as appropriate to solicit the correct choice of initial/medial/final/isolated glyph.
境界をまたがる形状付けはアリであるが適理ではない例として、[ ある文字列の どちらかの端において どの~glyphを選ぶかが,文字列の前`および後^emにある計 20 個くらいの文字(行内~境界で整形が変化するものも含む)が成す文脈に敏感である ]ような~fontの取扱いが挙げられる。 それは複雑であり、 ~UAは,そのような事例を`取扱うこともできる^emが要求されてはいない — それらは代表的でないか,現代の どの書記~体系からも基礎的には要求されていないので。 ◎ An example of possible but not reasonable shaping across boundaries is handling a font that is sensitive to 20 characters of context on either side to choose its glyphs: passing all the text before and after the string in question, even through multiple inline boundaries with formatting changes, is complicated. The UA could handle such cases, but is not required to, as they are not typical or fundamentally required by any modern writing system.
境界をまたがる形状付けが不可能な例として、 ある~fontにおいて[ ある単語(例: “`and^en” )を成す字lすべてが,ある合字(例: `0026^gU ~glyph)に置換されることになる ]下での,単語の途中における~font~weightの変化が挙げられる。 ◎ An example of impossible shaping across boundaries is a change in font weight partway through the word “and” in a font where a ligature would replace all three letters of the word “and” with an ampersand glyph (“&”).
9. 行lの両端~辺における効果
`text-indent$p ~propは、 塊~内の他の行lを基準に,行lの字下nを制御する。 `hanging-punctuation$p ~propは、 行lの[ 始端, 終端 ]辺の所で内容が測定される方法【禁則処理】を制御する。 ◎ Edge effects control the indentation of lines with respect to other lines in the block (text-indent) and how content is measured at the start and end edges of a line (hanging-punctuation).
9.1. 字下n: `text-indent^p ~prop
◎名 `text-indent@p ◎値 [ `length-percentage$t ] && `hanging$v? && `each-line$v? ◎初 `0^v ◎適 `塊~容器$ ◎継 される ◎百 `塊~容器$の自前の`行内-軸$`内縁~size$を基準にする ◎ refers to block container’s own inline-axis inner size ◎算 算出された `length-percentage$t 値と指定された~keyword(たち) ◎ computed <length-percentage> value, plus any specified keywords ◎順 文法に従う ◎ア 算出d値の型による ◎表終この~propは、 塊~内の`行内~内容$の各~行lに適用される字下nを指定する。 字下げは、 `行l~box$の`始端$辺に適用される~marginとして扱われる。 ◎ This property specifies the indentation applied to lines of inline content in a block. The indent is treated as a margin applied to the start edge of the line box.
影響されるのは、 ~keyword[ `each-line$v / `hanging$v ]により 他が指定されない限り,要素の`整形される最初の行l$ `CSS-PSEUDO-4$r に限られる。 例えば,`匿名$な`塊~box$の最初の行lは、 その親~要素の最初の子であるときに限り影響される。 ◎ Unless otherwise specified by the each-line and/or hanging keywords, only lines that are the first formatted line of an element are affected. [CSS-PSEUDO-4] For example, the first line of an anonymous block box is only affected if it is the first child of its parent element.
各種 値の意味は: ◎ Values have the following meanings:
- `length$t
- 字下げ量を,絶対~長さとして与える。 ◎ Gives the amount of the indent as an absolute length.
- `percentage$t
- 字下げ量を,`塊~容器$の自前の`論理-横幅$に対する百分率として与える。 【 “自前の” :すなわち、包含塊のそれではなく( `2394$issue )。】 ◎ Gives the amount of the indent as a percentage of the block container’s own logical width.
- 百分率は、 `内在的~size供与$を計算する目的においては `0^v として扱うモノトスル — ~layoutを遂行するときは、 常に通常に解決される。 ◎ Percentages must be treated as 0 for the purpose of calculating intrinsic size contributions, but are always resolved normally when performing layout.
- 注記: これは要素を~overflowさせ得るので、 内在的~sizingと併用することが推奨される。 ◎ Note: This can lead to the element overflowing. It is not recommended to use percentage indents and intrinsic sizing together.
- `each-line@v
- 字下nは,各[ `塊~容器$の最初の行l, および `強制d行l分断$の直後にある行l ]に影響する (`自動折返し分断$の直後にある行lには影響しない)。 ◎ Indentation affects the first line of each block container and each line after a forced line break (but not lines after a soft wrap break).
- `hanging@v
- 影響される行lの~~集合を反転する。 ◎ Inverts which lines are affected.
右向き~textの下で, `text-align$p1 は `start$v1 に, `text-indent$p は `5em^v にされている場合 (浮動体は無いとする)、 ~textの最初の行lは,塊の始端から 5em の所から開始する: ◎ If text-align is start and text-indent is 5em in left-to-right text with no floats present, then first line of text will start 5em into the block:
`hanging$v ~keywordを追加した場合、 最初の行lが始端に接合される一方、 他の行lは 5em だけ字下げされることになる: ◎ If we add the hanging keyword, then the first line will start flush, but other lines will be indented 5em:
`text-indent$p ~propが影響するのは, “整形される最初の行l” に限られるので、 強制d分断の直後にある行lは,字下げされない。 ◎ Since the text-indent property only affects the “first formatted line”, a line after a forced break will not be indented.
しかしながら,折返すほどに長くなる行lでは、 【折返した直後に】字下げするのが適切になることも,ときどきある(詩歌や~codeなど)。 次の例では、 `text-indent$p の値は `3em hanging each-line^v にされているとする。 その結果、 詩の 4 行l目,塊の右端~境界の自動折返しの所で、 字下げが吊下がる: ◎ However, sometimes (as in poetry or code), it is appropriate to indent each line that happens to be long enough to wrap. In the following example, text-indent is given a value of 3em hanging each-line, giving the third line of the poem a hanging indent where it soft-wraps at the block’s right boundary:
みじかいぎょうでは
おきません
ながいぎょう、 さればじどうで
おりかえし
注記:
`text-indent$p ~propは継承されるので、
塊~要素に指定されたときは,子孫の行内-塊~要素にも影響することになるのに注意。
この理由から、
`display$p: `inline-block^v
が指定された要素には
`text-indent$p: `0^v
も指定する方がうまくいくことが多い。
◎
Note: Since the text-indent property inherits, when specified on a block element, it will affect descendant inline-block elements. For this reason, it is often wise to specify text-indent: 0 on elements that are specified display: inline-block.
9.2. 吊下ng~glyph
行lの[ 始端や終端 ]辺にある~glyphが `吊下がる@ ( `hang^en する)ときは†、 行lの内容を[ 収める/整列する/両端揃する ]ための測定には考慮されない。 その結果,行lの[ 整列/両端揃え ]に依存して、 約物は,`行l~box$の外側に置かれることもある。 ◎ When a glyph at the start or end edge of a line hangs, it is not considered when measuring the line’s contents for fit, alignment, or justification. Depending on the line’s alignment/justification, this can result in the mark being placed outside the line box.\
【† `Wikipedia による吊下ngの説明@https://ja.wikipedia.org/wiki/%E3%81%B6%E3%82%89%E4%B8%8B%E3%81%92%E7%B5%84%E3%81%BF$ 。 ただし,この仕様においては、 句読点類に限らず,括弧などの約物も対象になる (加えて、 その~pageにある “追い込み” は,この仕様においては両端揃えに該当する)。 また、 行末のみならず,行頭の字下げ内に “吊下がる” 場合もある。 】【† (当の~glyphが終端にある場合を) もっと冗長に述べるなら、 “吊下-可能な~glyphを[ 通常通り~lay-outすると、 行lの終端~辺を~overflowするか,折返されて次の行lの始端~辺に来る ]ので,吊下がるものとして扱うときは…” 】
`吊下ng~glyph@ — `吊下がって$いる~glyph — は: ◎ ↓
- [ `内在的~size$(`最小-内容~size$/`最大-内容~size$), その~sizeから導出される~size ]を算出するときには織り込まれない。 (この測定と字詰めとの相互作用は、 現在は~UAにより定義される — ~CSS~WGは、 この点について助言を~~歓迎する( `2397$issue )。) ◎ The hanging glyph is also not taken into account when computing intrinsic sizes (min-content size and max-content size), and any sizes derived thereof. (The interaction of this measurement and kerning is currently UA-defined; the CSSWG welcomes advice on this point.)
- 依然として、 その親の行内~boxの内側に封入され,~text両端揃えには関与する — 単に、 次を決定するときには,その文字~送幅が測定されないだけである ⇒# 行l上に どれ程の内容が収まるか / 両端揃え用に 行lの内容を どれ程[延張する/圧縮する]必要があるか / ~text整列~用に `行l~box$の中に内容をどう位置するか ◎ A hanging glyph is still enclosed inside its parent inline box and still participates in text justification: its character advance is just not measured when determining how much content fits on the line, how much the line’s contents need to be expanded or compressed for justification, or how to position the content within the line box for text alignment.\
- その文字~送幅は、 実質的に,[ その親の`行内~box$の影響される辺に対する,追加的な負な~margin ]として解釈し直される — それ以外については、 行lは通例通り~lay-outされる。 ◎ Effectively, the hanging glyph character advance is re-interpreted as an additional negative margin on the affected edge of its parent inline box; the line is otherwise laid out as usual.\
- ~overflowするときは、 不必要な~scrollbarを作成するのを避けるため,概して`~ink~overflow$と見なされるベキであるが、 ~UAは,次に該当するときは`~scroll可能な~overflow$として扱ってもヨイ `CSS-OVERFLOW-3$r ⇒# 当の内容は編集-可能である/ 他の,そのように扱う方が利用者にとって有用になる状況下にある ◎ An overflowing hanging glyph should typically be considered ink overflow so as to avoid creating unnecessary scrollbars, but the UA may treat it as scrollable overflow when the content is editable or in other circumstances where treating it as scrollable overflow would be useful to the user. [CSS-OVERFLOW-3]
一部の事例では、 行lの終端にある~glyphは `条件付きで吊下がる@ こともある — すなわち、[ 両端揃えに先立って,吊下げなければ行lに収まらない場合 ]に限り,`吊下がる$。 それは,行lの内容を収めるための測定には考慮されないが、 その収まらない部分は,`吊下がる$ものと見なされる。 `条件付きで吊下がる$~glyphは、[ `最小-内容~size$, および その~sizeから導出される~size ]を算出するときには織り込まれない一方で,[ `最大-内容~size$, および その~sizeから導出される~size ]を算出するときには織り込まれる。 ◎ In some cases, a glyph at the end of a line can conditionally hang: it hangs only if it does not otherwise fit in the line prior to justification. It is not considered when measuring the line’s contents for fit; however, any part of it that does not fit is considered to hang. Glyphs that conditionally hang are not taken into account when computing min-content sizes and any sizes derived thereof, but they are taken into account for max-content sizes and any sizes derived thereof.
`吊下-$可能な~glyphと行lの辺の合間における行内-軸[ ~border/~padding ]が 0 でない場合、 ~glyphは吊下がらない。 例えば,終端~paddingを伴う行内~boxの終端にある終止符は、 行lの終端~辺では`吊下がら$ない。 ◎ Non-zero inline-axis borders or padding between a hangable glyph and the edge of the line prevent the glyph from hanging. For example, a period at the end of an inline box with end padding does not hang at the end edge of a line.
隣接な複数の~glyphは,一緒に吊下がり得るが、 吊下げれる個数には,特定の制限sが指定され得る/してもヨイ (例:行lの 1 辺に`吊下がって$もヨイ約物は 1 個までなど)。 ◎ Multiple adjacent glyphs can hang together, however specific limits on how many are allowed to hang may be specified (e.g. at most one punctuation character may hang at each edge of the line).
9.2.1. 吊下ng約物: `hanging-punctuation^p ~prop
◎名 `hanging-punctuation@p ◎値 `none$v | [ `first$v || [ `force-end$v | `allow-end$v ] || `last$v ] ◎初 `none^v ◎適 ~text ◎継 される ◎百 受容しない ◎算 指定された~keyword(たち) ◎順 文法に従う ◎ア 離散的 ◎表終この~propは、 約物符が`吊下がる$かどうか,その場合に[ ~text行lの始端または終端の,`行l~box$の外側に (または字下げ【による空間】内に) ]に置かれてヨイかどうか を決定する。 ◎ This property determines whether a punctuation mark, if one is present, hangs and may be placed outside the line box (or in the indent) at the start or at the end of a line of text.
注記: `塊~容器$の~paddingが足りない場合、 `hanging-punctuation$p は~overflowを誘発し得ることに注意。 ◎ Note: If there is not sufficient padding on the block container, hanging-punctuation can trigger overflow.
各種 値の意味は: ◎ Values have the following meanings:
- `none@v
- 約物は、 `吊下がら$ない。 ◎ No punctuation character is made to hang.
- `first@v
-
要素の`整形される最初の行l$の始端にある[ 開き括弧/引用符/表語-~space ]は、 `吊下がる$。 これは、 次に挙げる文字に適用される:
- `~Unicode字種$[ `Ps^uc / `Pf^uc / `Pi^uc ]に属するもの
- ~ASCII引用符 ⇒# `0027^gU `APOSTROPHE^cn, `0022^gU `QUOTATION MARK^cn
- `3000^gU `IDEOGRAPHIC SPACE^cn
- `last@v
-
要素の 整形される最後の行lの末尾にある,閉じ[ 括弧/引用符 ]は、 `吊下がる$。 これは、 次に挙げる文字に適用される:
- `~Unicode字種$[ `Pe^uc / `Pf^uc / `Pi^uc ]に属するもの
- ~ASCII引用符 ⇒# `0027^gU `APOSTROPHE^cn, `0022^gU `QUOTATION MARK^cn
- `force-end@v
- 行lの末尾にある`句読点類$は、 `吊下がる$。 ◎ A stop or comma at the end of a line hangs.
- `allow-end@v
- 行lの末尾にある`句読点類$は、 `条件付きで吊下がる$。 ◎ A stop or comma at the end of a line conditionally hangs.
行lの[ 始端/終端 ]辺に`吊下がって$ヨイ約物は、 1 個までとする。 ◎ At most one punctuation character may hang at each edge of the line.
次に挙げる `句読点類@ は、 `吊下がる$ことが許容される: ◎ Stops and commas allowed to hang include:
- `002C^gU `COMMA^cn
- `002E^gU `FULL STOP^cn
- `060C^gU `ARABIC COMMA^cn
- `06D4^gU `ARABIC FULL STOP^cn
- `3001^gU `IDEOGRAPHIC COMMA^cn
- `3002^gU `IDEOGRAPHIC FULL STOP^cn
- `FF0C^gU `FULLWIDTH COMMA^cn
- `FF0E^gU `FULLWIDTH FULL STOP^cn
- `FE50^gU `SMALL COMMA^cn
- `FE51^gU `SMALL IDEOGRAPHIC COMMA^cn
- `FE52^gU `SMALL FULL STOP^cn
- `FF61^gU `HALFWIDTH IDEOGRAPHIC FULL STOP^cn
- `FF64^gU `HALFWIDTH IDEOGRAPHIC COMMA^cn
~UAは、 適宜,他の文字も含めてヨイ。 ◎ The UA may include other characters as appropriate.
注記: 他の文字を含ませた~UAは、 その旨を~CSS~WGへ 【!#sotd】 `伝えて@~CSSissue$もらえるとありがたい。 ◎ Note: The CSS Working Group would appreciate if UAs including other characters would inform the working group of such additions.
`allow-end$v, `force-end$v は、 東Asiaで利用される 2 種類の[ 約物~用の吊下ng ]である。 ◎ The allow-end and force-end are two variations of hanging punctuation used in East Asia.
p { text-align: justify; hanging-punctuation: allow-end; }
p { text-align: justify; hanging-punctuation: force-end; }
`allow-end$v に対しては、 最初の行lの末尾にある約物は,吊下がることなく収まるので吊下がらない。 しかしながら, `force-end$v が利用された場合、 吊下-が強制される。 両端揃えは,吊下ng約物を含めずに行lを測定するので、 約物は,行lが延張されるときに行lの外側へ押出される。 ◎ The punctuation at the end of the first line for allow-end does not hang, because it fits without hanging. However, if force-end is used, it is forced to hang. The justification measures the line without the hanging punctuation. Therefore when the line is expanded, the punctuation is pushed outside the line.
9.3. 双方向性と行l~box
`行l~box$の[ `始端$, `終端$ ]側は、 行l~boxの`行内~基底~方向$により決定される。 `行l~box$ %行l~box の`行内~基底~方向$は、 通例的には[ `包含塊$ / `双向~段落$ ]のそれと合致するが,それらは別物である。 前者は、[ `text-align-all$p / `text-align-last$p / `text-indent$p / `hanging-punctuation$p ] — すなわち %行l~box の内容に対する %行l~box の各~辺を基準にする位置と整列 — には影響するが, %行l~box の行内~内容の[ 整形/順序付け ]には影響しない ([ 整形/順序付け ]は、 `~Unicode双方向-~algo$citeにより — `CSS-WRITING-MODES-4$r により適用されるとおりに — 制御される)。 ◎ The start and end sides of a line box are determined by the inline base direction of the line box. Although they usually match, the inline base direction of a line box is distinct from the inline base direction of the containing block or the bidi paragraph. The line box’s inline base direction affects text-align-all, text-align-last, text-indent, and hanging-punctuation—i.e. the position and alignment of its contents with respect to its edges. It does not affect the formatting or ordering of inline content (which is controlled by the Unicode Bidirectional Algorithm as applied by CSS Writing Modes [UAX9] [CSS-WRITING-MODES-4]).
`行l~box$ %行l~box の`行内~基底~方向$は、 次の結果になる:
- %包含塊 ~LET %行l~box の`包含塊$
-
~IF[ %包含塊 の `unicode-bidi$p の算出d値 ~EQ `plaintext^v ]:
- ~IF[ %行l~box は空でない (`不可分な行内$, または改行文字~以外の文字がある) ]~AND[ %行l~box を成す ある文字 【の~Unicode`双方向-文字~種別@~UTR/tr9/#Bidirectional_Character_Types$】 は `Strong^uc である( `Weak^uc でも `Neutral^uc でもない) ] ⇒ ~RET %行l~box が属する`双向~段落$( %行l~box の内容を保持している`双向~段落$)の`行内~基底~方向$
- ~IF[ %包含塊 内で %行l~box の直前に別の行l~boxは在る ] ⇒# %行l~box ~SET その行l~box; ~GOTO 前~段
- ~RET %包含塊 の `direction$p の算出d値で与えられる`行内~基底~方向$
次の例における `block^e は、[
塊であり,
`pre^v により整形され,
`text-align$p1: `start$v1
を継承していて始端に整列される
]
( `display$p: `block^v; `white-space$p: `pre^v; `text-align$p: `start^v
)
と見做すならば、
他の【左端に整列される "français" 以外の】どの行lも右端に整列される:
◎
In the following example, assuming the <block> is a start-aligned preformatted block (display: block; white-space: pre; text-align: start), every other line is right-aligned:
<block style="unicode-bidi: plaintext"> français فارسی français فارسی français فارسی </block>
[
中立的( `Neutral^uc )な文字(約物など)/
隔離された連なり【`双向-隔離-$された`~text連列$】
]は,
`素な~textが成す双向-段落の行内~基底~方向を見出す@~UTR/tr9/#P2$ときには飛ばされるので、
次の例における行l~boxは
— 最初の `Strong^uc な文字, "h" により規定されるとおり —
右向きになる
(したがって、
`text-align$p1: `start$v1
が与えらた下では,左端に整列される):
◎
Because neutral characters (such as punctuation) and isolated runs are skipped when finding the inline base direction of a plaintext bidi paragraph, the line box in the following example will be left-to-right (and thus left-aligned given text-align: start), as dictated by the first strong character, ‘h’:
<para style="display: block; direction: rtl; unicode-bidi:plaintext"> “<quote style="unicode-bidi:plaintext">~HebPeace!</quote>”, they said. </para>
<textarea style="direction: rtl; unicode-bidi:plaintext"> Hello! </textarea>
`unicode-bidi$p: `plaintext^v
があるので、
"Hello!" は~LTRに植字され(すなわち,感嘆符は右端~側に来る),左端に整列される
— 包含塊の `direction$p ( ~RTL )は無視して。
これは、
それに後続する空~行lも~LTRにするので、
その行l上の~caretは,左端~辺に現れるべきであることになる。
しかしながら,最初の行lが空である場合、
先行している行lは無いので
— その方向は、
包含塊のそれ(~RTL)と見做される結果 —
右端に整列される。
◎
Because of unicode-bidi: plaintext, the “Hello!” is typeset LTR (i.e. with the exclamation mark on the right side) and left-aligned, ignoring the containing block’s RTL direction. This makes the empty line following it LTR as well, which means that a caret on that line should appear at its left edge. The empty first line, however, is right-aligned: having no preceding line, it assumes the RTL direction of its containing block.
付録 A. 各種~text演算の処理~順序
`この付録は規範的である。^em ◎ This appendix is normative.
各種~text演算の順序は、 次の~listで定義される (実装は、 結果の~layoutが同じになる限り,この順序に束縛されない)。 ◎ The following list defines the order of text operations. (Implementations are not bound to this order as long as the resulting layout is the same.)
- `空白の削り@#white-space-trim$ ◎ § 4.2 White Space Trimming: the white-space-trim property
- `空白の縮約-法と変形n$ ◎ white space processing part I (pre-wrapping)
- ~text変形n: `単語↔間の延張@#word-space-transform$, `大小~変形@#text-transform-property$ ◎ § 2.2 Expanding Between Words: the word-space-transform property and text transformation
- `~textの字組み@~CSSWM#text-combine-upright$ `CSS-WRITING-MODES-4$r ◎ text combination [CSS-WRITING-MODES-4]
- `~text方位@~CSSWM#text-orientation$ `CSS-WRITING-MODES-4$r ◎ text orientation [CSS-WRITING-MODES-4]
-
~textの`折返ng$ — 各~行lごとに次を適用する: ◎ text wrapping while applying per line:
- `字下n@#text-indent-property$ ◎ indentation
- `双向性による並替ng$ `CSS2$r / `CSS-WRITING-MODES-4$r ◎ bidirectional reordering [CSS2] / [CSS-WRITING-MODES-4]
- `空白の削りと位置決め$ ◎ white space processing part II
- `~fontや~glyphの選定と位置決め@~CSSFONT$ `CSS-FONTS-3$r ◎ font/glyph selection and positioning [CSS-FONTS-3]
- `letter-spacing$p, `word-spacing$p, `text-spacing$p, `line-padding$p ◎ letter-spacing, word-spacing, text-spacing, and line-padding
- `吊下ng約物@#hanging-punctuation-property$ ◎ hanging punctuation
- `両端揃え@#text-justify-property$ (~glyphの選定や, ~textの折返ngに影響し得るので、 そうなったときは,該当する段まで戻る) 【!結局、この段を,前段の最後に組み入れるのと同じことになる?】 ◎ justification (which may affect glyph selection and/or text wrapping, looping back into that step)
- `~text整列@#text-align-property$ ◎ text alignment
- `~text~group整列@#text-group-align-property$ ◎ text group alignment
付録 B. 素な~textへの変換
この付録は、 素な~textを~copy-pasteする目的においては`規範的である^em。 ◎ This appendix is normative for the purpose of plaintext copy-paste operations.
~CSSで描画された文書を素な~text形式に変換するときには、 次が期待される: ◎ When a CSS-rendered document is converted to a plaintext format, it is expected that:
- `text-transform$p ~propは効果を発揮しない。 ◎ The text-transform property has no effect.
- [ `white-space-trim$p, `空白の縮約-法と変形n$ ]は適用され、 `縮約-可能$な`空白$のうち[ `塊$の先頭/`強制d行l分断$の直後 ]にあるものは除去する。 ◎ white-space-trim and § 4.3.1 Phase I: Collapsing and Transformation is applied and any sequence of collapsible white space at the beginning of a block or immediately following a forced line break is removed.
付録 C. 既定の~UA~stylesheet
この付録は`参考であり^em、 ~UA開発者が~HTML用の既定の~stylesheetを実装する補助になるものだが、 ~UA開発者が適宜,[ 無視する/改変する ]のも自由である。 ◎ This appendix is informative, and is to help UA developers to implement a default stylesheet for HTML, but UA developers are free to ignore or modify as appropriate.
/* 一連の `option^e 要素を互いに整列させる: ◎ make option elements align together */ option { text-align: match-parent; } /* `textarea$e 内では、 空白を縮約するのは許容しない: ◎ do not allow white space to collapse in textarea */ textarea { white-space-collapse: preserve !important; } /* 予め整形-済みな~text内の文字~格子を保全する: ◎ preserve character grid in preformatted text */ pre, code, kbd, samp, tt { text-spacing: none; } /* 吊下ng約物が予め整形-済みな~blockの中へ継承されないようにする: ◎ Avoid hanging punctuation inheriting into preformatted blocks */ pre { hanging-punctuation: none; }
付録 D. 用字系と間隔法
`この付録は規範的である。^em ◎ This appendix is normative.
~typographicの挙動は,言語により いくぶん様々になるが、 書記~体系により大きく様変わりする。 この付録は、 ~Unicode 6.0 における 一部の共通的な`用字系$を,それらの両端揃えと間隔法の挙動に則って分類する。 字種の記述は、 ~~説明的( `descriptive^en )であり, ~~規範的( `prescriptive^en )ではない 【現実の挙動を反映するものであって,挙動を~~規定しようとするものではない】 — それを決定する要因は、 `両端揃え機会$の順位付けである。 ◎ Typographic behavior varies somewhat by language, but varies drastically by writing system. This appendix categorizes some common scripts in Unicode 6.0 according to their justification and spacing behavior. Category descriptions are descriptive, not prescriptive; the determining factor is the prioritization of justification opportunities.
- `~block用字系@
- ~CJK, および拡張によるすべての `Wide^en 【“幅広”】文字( `UAX11$r を見よ)。 次に挙げる`~Unicode用字系$が含まれる ⇒# ~Bopomofo, ~Han, ~Hangul, ~Hiragana, ~Katakana, ~Yi ◎ CJK and by extension all Wide characters (see East Asian Width [UAX11]). The following Unicode scripts are included: Bopomofo, Han, Hangul, Hiragana, Katakana, and Yi.\
- `東Asian字幅~prop$が[ `Wide^uc / `Fullwidth^uc ]である文字も含まれるが、 `Ambiguous^uc 文字については,`書記~体系$が[ `中国語$ws/`韓国語$ws/`日本語$ws ]の場合に限り含まれる。 ◎ Characters of the East Asian Width property Wide and Fullwidth are also included, but Ambiguous characters are included only if the writing system is Chinese, Korean, or Japanese.
- `~clustered用字系@
- ~clustered用字系においては、 離散的な単位により,分断は単語~境界の所に限られるが、 可視な`単語~分離子$を利用しない。 これらは,~spaceの伸張-法を順位付けるが、 両端揃えに対しては,文字↔間の間隔法を不自由なく容認する。 ~clustered用字系には,少なくとも次に挙げる`~Unicode用字系$が含まれる ⇒# ~Khmer, ~Lao, ~Myanmar, ~New-Tai-Lue, ~Tai-Le, ~Tai-Tham, ~Tai-Viet, ~Thai ◎ Clustered scripts have discrete units and break only at word boundaries, but do not use visible word separators. They prioritize stretching spaces, but comfortably admit inter-character spacing for justification. The clustered scripts include, but are not limited to, the following Unicode scripts: Khmer, Lao, Myanmar, New Tai Lue, Tai Le, Tai Tham, Tai Viet, Thai
- `筆記的~用字系@
- 筆記的~用字系においては、[ 両端揃え/ `letter-spacing$p ]における字l↔間の途切れは容認されない。 次に挙げる`~Unicode用字系$が含まれる ⇒# ~Arabic, ~Hanifi-Rohingya, ~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, Hanifi Rohingya, Mandaic, Mongolian, N’Ko, Phags Pa, Syriac
- 注記: 基底線が接続されるように描かれる~Indic用字系(~Devanagariや~Gujaratiなど)は、 `筆記的~用字系$とは`見なされない^emので,`~typographic文字~単位$↔間に そのような途切れを`容認する^em。 `ILREQ$r を見よ。 ◎ Note: Indic scripts with baseline connectors (such as Devanagari and Gujarati) are not considered cursive scripts, and do admit such gaps between typographic character units. See Indic Layout Requirements. [ILREQ]
~UAは、 自身による~Unicode~supportを更新するに伴い,この~listを更新するベキである。 ~Unicodeの将来~versionにて,まだ符号化されていない筆記的~用字系を取扱うために。 また、 それに則ってこの仕様を更新するよう~CSS~WGに依頼することが奨励される。 ◎ User agents should update this list as they update their Unicode support to handle as-yet-unencoded cursive scripts in future versions of Unicode, and are encouraged to ask the CSSWG to update this spec accordingly.
付録 E. 文字の~prop
`この付録は規範的である。^em ◎ This appendix is normative.
~CSS植字では、 ~Unicodeにて定義される,符号位置~levelの~propとして、 次に挙げる 4 種を参照する: ◎ Unicode defines four code point-level properties that are referenced in CSS typesetting:
- `東Asian字幅~prop@
- `East Asian Width property@~UTR/tr11/#Definitions$en
- `UAX11$r にて定義され, `~Unicode文字~database$citeにて `East_Asian_Width^uc ~propとして与えられる。 ◎ Defined in Unicode Standard Annex #11 [UAX11] and given as the East_Asian_Width property in the Unicode Character Database [UAX44].
- `~Unicode字種@ (略して “字種” )
- `general category@~UTR/tr44/#General_Category_Values$en
- `UAX44$r にて定義され, `~Unicode文字~database$citeにて `General_Category^uc ~propとして与えられる。 ◎ Defined in Unicode Standard Annex #44 [UAX44] and given as the General_Category property in the Unicode Character Database [UAX44].
- 【 ある文字が “字種 %X に属する” という句は、 その文字の `General_Category^uc ~prop値が %X であることを意味する。 】
- `用字系~prop@
- `script property@~UTR/tr24/#Values$en
- `UAX24$r にて定義され, `~Unicode文字~database$citeにて `Script^uc ~propとして与えられる。 (~UAは、 `ScriptExtensions.txt@~UNIDATA/ScriptExtensions.txt$ にてアテガわれているものを,この対応付けに含めるモノトスル。) ◎ Defined in Unicode Standard Annex #24 [UAX24] and given as the Script property in the Unicode Character Database [UAX44]. (UAs must include any ScriptExtensions.txt assignments in this mapping.)
- 【 “ %X 用字系に属する文字” (または “〜の文字” )という句は、 その文字の `Script^uc ~prop値が %X であることを意味する。 】
- `縦書き方位@ (縦書き時の~glyph方位)
- `Vertical Orientation@~UTR/tr50/$en
- `UAX50$r にて定義され, `~Unicode文字~database$citeにて `Vertical_Orientation^uc ~propとして与えられる。 ◎ Defined in Unicode Standard Annex #50 [UAX50] as the Vertical_Orientation property in the Unicode Character Database [UAX44].
- `~Unicode行-分断法~class@ 【この項は、この訳による補完。】
- `UAX14$r にて定義される `line breaking class@~UTR/tr14/#LD6$en 。 所与の文字(の前後)に許容される分断~機会がどう決定されるかの分類を表す (具体的には、 `LineBreak.txt@~UNIDATA/LineBreak.txt$ にて与えられる)。
~Unicodeは、 個々の符号位置に対し各種~propを定義しているが、 `~typographic文字~単位$に対し~propを決定することも,ときには必要yである。 この~module【!CSS Text】の目的においては、 `~typographic文字~単位$の~propは,その最初の`書記素~cluster$の基底~文字により与えられる — 次に挙げる 2 つの事例を除いて: ◎ Unicode defines properties for individual code points, but sometimes it is necessary to determine the properties of a typographic character unit. For the purposes of CSS Text, the properties of a typographic character unit are given by the base character of its first grapheme cluster—except in two cases:
- `Common^uc 用字系の Enclosing Mark( `Me^uc )により形成される`書記素~cluster$は、 `Common^uc 用字系においては, Other Symbols( `So^uc )と見なされる。 それらは、 `FFFD^U `REPLACEMENT CHARACTER^cn と同じ~Unicode~propを持つものと見做される。 ◎ Grapheme clusters formed with an Enclosing Mark (Me) of the Common script are considered to be Other Symbols (So) in the Common script. They are assumed to have the same Unicode properties as the replacement character (U+FFFD).
- Space Separator ( `Zs^uc )を `base^en 【基底~文字 — `base character@https://www.unicode.org/glossary/#base_character$en ?】 として形成される書記素~clusterは、 Modifier Symbols ( `Sk^uc )と見なされる。 それらは、[ `東Asian字幅~prop$は, `base^en と同じである ]ものと見做されるが、 他の~propについては,並び内の最初の結合~文字から採る。 ◎ Grapheme clusters formed with a Space Separator (Zs) as the base are considered to be Modifier Symbols (Sk). They are assumed to have the same East Asian Width property as the base, but take their other properties from the first combining character in the sequence.
付録 F. 内容~書記~体系の識別-法
`この付録は規範的である。^em ◎ This appendix is normative.
ほとんどの言語には、 選好される書記~体系が — 一部には複数個 — あり,その中に筆写-( `transcribe^en )できる外来な書記~体系もいくつかある。 共通的な例として,ほとんどの言語には、 少なくとも~Latin筆写があり,~Latin書記~体系でも記せる。 筆写された~textは、 概して,その書記~体系の~typographic規約を採用する。 例えば,[ 日本語の “~romaji” / 中国語の拼音( `Pinyin^en ) ]は、 ~Latin[ 字l, 単語~間隔 ]を利用して,それに則って~Latin[ 行-分断法, 両端揃え ]の実施に従う。 別の例として、 歴史的な表語文字による韓国語( `ko-Hani^v )は、 単語~間隔を利用しないので — 現代の韓国語ではなく — 中国語と類似に植字されるベキである。 ◎ While most languages have a preferred writing system, some have multiple, and most can also be transcribed into one or more foreign writing systems. As a common example, most languages have at least one Latin transcription, and can thus be written in the Latin writing system. Transcribed texts typically adopt the typographic conventions of the writing system: for example Japanese “romaji” and Chinese Pinyin use Latin letters and word spaces, and follow Latin line-breaking and justification practices accordingly. As another example, historical ideographic Korean (ko-Hani) does not use word spaces, and should therefore be typeset similar to Chinese rather than modern Korean.
~HTMLも含め,[ 言語を識別するための `BCP47$r 言語~tagを利用して,`内容~言語$を宣言する`文書~言語$ ]においては、 作者は,[ 【宣言された内容~言語においては】代表的でない書記~体系の利用 ]を用字系~下位tagで[ 一義化できる/指示できる ]。 例えば,[ ~nativeには~Latin書記~体系を利用しない言語 ]用にそれの利用を指示するときは、 用字系~下位tagとして `-Latn^c を追加できる — 例:日本語~romaji用には `ja-Latn^c など。 他の書記~体系~用にも他の下位tagが存在する — `ISO15924$r `用字系~tag~registry@https://unicode.org/iso15924/iso15924-codes.html$ を見よ。 ◎ In HTML or any other document language using BCP47 tags for identifying languages to declare the content language, authors can disambiguate or indicate the use of an atypical writing system with script subtags. [BCP47] For example, to indicate use of the Latin writing system for languages which don’t natively use it, the -Latn script subtag can be added, e.g. ja-Latn for Japanese romaji. Other subtags exist for other writing systems, see ISO’s Code for the Representation of Names of Scripts and the ISO15924 script tag registry. [ISO15924]
用字系~下位tagを伴う `BCP47$r ~tagを利用している[ 共通的な例/歴史的な例 ]: ◎ Some common/historical examples of using BCP47 tags with script subtags:
- `zh-Latn^c
- ~Latin筆写で記される中国語。 ◎ Chinese, written in Latin transcription.
- `ko-Hani^c
- ~Hanja(中国語の表語-文字)で記される韓国語。 ◎ Korean, written in Hanja (Chinese ideographic characters).
- `tr-Arab^c
- ~Arabic用字系で記される~Turkish。 ◎ Turkish, written in Arabic script.
- `mn-Cyrl^c
- ~Cyrillicで記される~Mongolian。 ◎ Mongolian, written in Cyrillic.
- `mn-Mong^c
- 伝統的な~Mongolian用字系で記される~Mongolian。 ◎ Mongolian, written in traditional Mongolian script.
しかしながら, `BCP47$r 用字系~下位tagは、 単独の書記~体系に強く結付けられた言語には,概して利用されない (事実,忌避される) — 他が指定されていないときは、 それが暗黙な書記~体系になるものと期待される。 IANA は、 その `言語~下位tag~registry@~IANA-a/language-subtag-registry/language-subtag-registry$ にて,この目的~用に[ 様々な言語の最も共通的な書記~体系が成す~database ]を `Suppress-Script^c ~fieldを介して保守する。 ◎ However, BCP47 script subtags are not typically used (and are in fact discouraged) for languages strongly associated with a single writing system: instead that writing system is expected to be implied when no other is specified. [BCP47] IANA maintains a database of various languages’ most common writing system via the Suppress-Script field in its language subtag registry for this purpose.
注記: 言語~tag付けについての助言は、 `国際化~WG@~I18N/core/$ による `~HTML/~XMLにおける言語~tag@~I18N/articles/language-tags/$ ( “`Language tags in HTML and XML^en” ), `言語~tagの選び方@~I18N/questions/qa-choosing-language-tags$ ( “`Choosing a Language Tag^en” ) に見出せる。 ◎ Note: More advice on language tagging can be found in the Internationalization Working Group’s “Language tags in HTML and XML” and “Choosing a Language Tag”.
書記~体系が明示的に指示されていない下では、 ~UAは,[ 行-分断法や両端揃えなど,言語に敏感な~typographicの挙動 ]は[ 宣言された`内容~言語$に最も共通的な書記~体系 (1) ]に従うものと見做すベキである。 しかしながら,作者が異なるもの【書記~体系】を【上述した用字系~下位tagにより】明示的に宣言した場合は、 そう見做さないモノトスル。 ~UAは、 【宣言された】特定0の[ `言語$, 書記~体系 ]の組合nに対し,言語に特有な知識を備えていない場合には、 宣言された書記~体系の~typographic規約を利用するモノトスル (必要yなら、 【宣言された内容~言語とは】異なる言語の規約に従うと見做して) — (1) の書記~体系における宣言された言語の規約は、 宣言された書記~体系には不適切になろうから。 ◎ When no writing system is explicitly indicated, UAs should assume the most common writing system of the declared content language for language-sensitive typographic behaviors such as line-breaking or justification. However, UAs must not assume that writing system if the author has explicitly declared a different one. If the UA has no language-specific knowledge of a particular language and writing system combination, it must use the typographic conventions of the declared writing system (assuming the conventions of a different language if necessary), not the conventions of the declared language in an assumed writing system, which would be inappropriate to the declared writing system.
所与の言語と それに最も共通的な書記~体系(たち)との間の全部的な対応関係は、 この文書の視野から外れる。 しかしながら,~UAは、 少なくとも次は成立すると見做すモノトスル: ◎ The full correspondence between languages and their most common writing systems is out of scope for this document. However, user agents must assume at least the following:
-
次のいずれかに該当する場合、 `書記~体系$は `中国語@ws になる:
- `内容~言語$は中国語, かつ`書記~体系$は未指定
- `内容~言語$は問わず,`書記~体系$は~ISO用字系~codeで次のいずれかとして指定されている ⇒ `Hant^c, `Hans^c, `Hani^c, `Hanb^c, `Bopo^c
-
次のいずれかに該当する場合、 `書記~体系$は `日本語@ws になる:
- `内容~言語$は日本語, かつ`書記~体系$は未指定
- `内容~言語$は問わず,`書記~体系$は~ISO用字系~codeで次のいずれかとして指定されている ⇒ `Jpan^c, `Hrkt^c, `Hira^c, `Kana^c
-
次のいずれかに該当する場合、 `書記~体系$は `韓国語@ws になる:
- `内容~言語$は韓国語, かつ`書記~体系$は未指定
- `内容~言語$は問わず,`書記~体系$は~ISO用字系~codeで次のいずれかとして指定されている ⇒ `Kore^c, `Hang^c, `Jamo^c
-
次に該当する場合、 `書記~体系$は `未知@ws であるものと見なされる ⇒ `内容~言語$は、 それ自体が未知であるか,未知な書記~体系であるものと明示的に指示している。 ◎ The writing system is only considered to be unknown if the content language itself is unknown, or if it explicitly indicates an unknown writing system.
注記: `内容~言語$が宣言されていて,`書記~体系$の情報が単に省略されているときは、 暗黙な`書記~体系$が在って,未知ではないことを意味する。 ◎ Note: Mere omission of the writing system information when the content language is declared means the that the writing system is implied, not unknown.
付録 G. 小書き~Kanaの対応付け
`この付録は規範的である。^em ◎ This appendix is normative.
`小書き~Kana@ ( `small Kana^en ) | `全部的~sizeの~Kana@ ( `full-size Kana^en ) |
---|---|
`3041^gU | `3042^gU |
`3043^gU | `3044^gU |
`3045^gU | `3046^gU |
`3047^gU | `3048^gU |
`3049^gU | `304A^gU |
`3095^gU | `304B^gU |
`3096^gU | `3051^gU |
`1B132^gU | `3053^gU |
`3063^gU | `3064^gU |
`3083^gU | `3084^gU |
`3085^gU | `3086^gU |
`3087^gU | `3088^gU |
`308E^gU | `308F^gU |
`1B150^gU | `3090^gU |
`1B151^gU | `3091^gU |
`1B152^gU | `3092^gU |
`30A1^gU | `30A2^gU |
`30A3^gU | `30A4^gU |
`30A5^gU | `30A6^gU |
`30A7^gU | `30A8^gU |
`30A9^gU | `30AA^gU |
`30F5^gU | `30AB^gU |
`31F0^gU | `30AF^gU |
`30F6^gU | `30B1^gU |
`1B155^gU | `30B3^gU |
`31F1^gU | `30B7^gU |
`31F2^gU | `30B9^gU |
`30C3^gU | `30C4^gU |
`31F3^gU | `30C8^gU |
`31F4^gU | `30CC^gU |
`31F5^gU | `30CF^gU |
`31F6^gU | `30D2^gU |
`31F7^gU | `30D5^gU |
`31F8^gU | `30D8^gU |
`31F9^gU | `30DB^gU |
`31FA^gU | `30E0^gU |
`30E3^gU | `30E4^gU |
`30E5^gU | `30E6^gU |
`30E7^gU | `30E8^gU |
`31FB^gU | `30E9^gU |
`31FC^gU | `30EA^gU |
`31FD^gU | `30EB^gU |
`31FE^gU | `30EC^gU |
`31FF^gU | `30ED^gU |
`30EE^gU | `30EF^gU |
`1B164^gU | `30F0^gU |
`1B165^gU | `30F1^gU |
`1B166^gU | `30F2^gU |
`1B167^gU | `30F3^gU |
`FF67^gU | `FF71^gU |
`FF68^gU | `FF72^gU |
`FF69^gU | `FF73^gU |
`FF6A^gU | `FF74^gU |
`FF6B^gU | `FF75^gU |
`FF6F^gU | `FF82^gU |
`FF6C^gU | `FF94^gU |
`FF6D^gU | `FF95^gU |
`FF6E^gU | `FF96^gU |
付録 H. 単語~検出と句~検出
`この付録は規範的である。^em ◎ This appendix is normative.
この仕様における少数の演算は、 自動化された `単語~境界の検出@ / `句~境界の検出@ に依存する。 ◎ A few operations in this specification depend on automated word boundary detection or phrase boundary detection.
両~演算は、 類似する: ~UAは、 言語に特有な[ 文字たちが成す有意義な連列 ]たちを識別するため,~textに対し言語上の分析を遂行する。 それらは、 ~textを成す単位として[ 単語/句 ]どちらを~targetにするかにおいてのみ相違する。 ◎ Both operations are similar: the user agent performs linguistic analysis of the text to identify language-specific meaningful sequences of characters. They differ only targetting different units of text: either words or phrases.
[ 単語の概念, 句の概念 ]は,~~広いイミでは容易に理解されようが、 どちらも — とりわけ、複数の言語にまたがって働くような仕方では — 精確に定義することは困難である。 いずれにせよ、 この文脈においては: ◎ While easily understood in a broad sense, both concepts of word and phrase are difficult to precisely define, especially in a way that works accross multiple languages. Nonetheless, in this context:
-
単語( `word^en )は、 認識-可能な意味論上の単位であり, 1 個~以上の文字や音節からなり得る。 ◎ A word is a recognizable semantic unit which may comprise one or more characters or syllables.
注記: この概念に関する いくつかの論点は、 `単語とは何か?@https://www.w3.org/International/articles/typography/linebreak.en#whatisword$ を見よ。 ◎ Note: See What is a word? for some discussion of this concept.
-
句( `phrase^en )は、[ 概念的な/文法~上の ]単位として一緒に~group化される 1 個以上の単語からなり, ある~~項目や文を成す短い成分を形成する。 ◎ A phrase is a short grouping of one or several words standing together as a conceptual or grammatical unit, forming a component of a clause or sentence.
注記: これを ~Frenchの単語 phrase と混同しないように — それは、 ここで利用される~Englishにおけるイミによる句( `phrase^en )ではなく, 文( `sentence^en )を意味する。 日本語においては、 これは,~~文節の概念に対応する。 ◎ Note: This is not to be confused with the French word phrase which means sentence rather than phrase in the English sense used here. In Japanese, this corresponds to the concept of 文節.
句に該当するものとしては、[ 冠詞と[前置詞/後置詞]を伴う名詞, 句l動詞, 複合-動詞~時制, … ]などが挙げられる。 ◎ A phrase could be a noun with its article and prepositions or postpositions, a phrasal verb, a compound verb tense…
検出された各[ 単語/句 ]の[ 始端, 終端 ]位置は、[ `単語~境界@ / `句~境界@ ]と呼ばれる。 これらの境界は,それ自体は観測-可能でないが、[ `word-space-transform$p や `word-break$p ]の様な~propは,それらの位置に可視な効果をもたらし得る。 ◎ The start and end position of each detected word or phrase is called a word boundary or phrase boundary. By themselves, word and phrase boundaries are not observable, but properties like word-space-transform or word-break can cause visible effects at those positions.
[ 単語/句 ]を検出して,それらの境界を配置するための特有な~algoは、 ~UAに依存する — それには、 次に挙げるものなど,様々な要因や~approachが織り込まれ得る ⇒# 辞書に基づく字句-分析, 約物の識別, 他の区切り文字, 形態論的な分析, 機械学習~method … ◎ The specific algorithm to detect word or phrases and to place their boundaries is UA-dependent, and may take into account a variety of factors or approaches, such as dictionary-based lexical analysis, identification of punctuation or other delimiting characters, morphological analysis, machine learning methods…
いずれにせよ、 ~UAは,次に挙げる拘束を尊重するモノトスル: ◎ The following constraints must nevertheless be respected:
- 単独の`~typographic文字$を構成する文字↔間には、[ 単語/句 ]境界を配置しないモノトスル。 ◎ The user agent must not place a word or phrase boundary between characters that compose a single typographic character unit.
- `~Unicode行-分断法~class$[ `GL^uc / `WJ^uc / `ZWJ^uc ]に属する文字に隣接な所には,[ 単語/句 ]境界を配置しないモノトスル。 2 個の[ 単語/句 ]になるものが,そのような文字により分離される場合、 それらを 1 個の[ 単語/句 ]として扱うモノトスル。 ◎ The user agent must not place a word or phrase boundary adjacent to any characters with the line breaking class GL, WJ, or ZWJ; when two would-be words or phrases are separated by such characters, they must be treated as a single one. [UAX14]
-
ある[ 単語/句 ]に直後に次に挙げるいずれかの文字が 1 個以上連なる場合、 それらは当の[ 単語/句 ]の一部を成すと見なすモノトスル: ◎ If a word or phrase is immediately followed by one or more of the following characters, the user agent must consider them to be part of the preceeding word or phrase:
- `単語~分離子$ ◎ word-separator characters
- `その他の~space分離子$ ◎ other space separators
- `200B^U `ZERO WIDTH SPACE^cn ◎ U+200B ZERO WIDTH SPACE characters
-
約物は,それ自体は句でないが、 それに隣接な言語上の[ 単語/句 ]の関連な側に付されるべきである。 例えば: ◎ Punctuation is not a phrase by itself: it should to be attached to the relevant side of an adjacent linguistic word or phrase. For example,\
- 他を封入している約物 — 括弧や引用符など — は、 それらが封入している句の一部を成す。 ◎ enclosing punctuation such as brackets and quotes are part of the phrase they enclose;\
- ~commaや~semicolonは先行している句に接尾される。 ◎ commas and semicolons are suffixed to the preceding phrase;\
- `00BF^U `INVERTED QUESTION MARK^cn は、 後続な単語に付される。 ◎ U+00BF INVERTED QUESTION MARK is attached to the subsequent word; etc.
しかしながら,約物の慣例的でない利用 — `~~顔文字@https://en.wikipedia.org/wiki/Emoticon$, ~~正規表現など— に対しては、 ~UAは,この原則から逸脱する必要があろう。 ◎ However, unconventional use of punctuation, such as smileys, kaomoji, or Perl snippets, may cause the user agent to need to deviate from this principle.
-
[ `単語~境界$/`句~境界$ ]を決定するときは、[ 行内~box境界, `~flow外$にある要素 ]を無視するモノトスル。 しかしながら、 同じ位置に 1 個以上の行内~box境界が重なっていて,そこに[ `単語~境界$/`句~境界$ ]が見出された場合、 それを[ この境界に関与する最も外縁な要素 ]の外側†に挿入するモノトスル。 【†原文の記述は内側, 外側どちらなのか不明瞭だが、下の例から外側と推定される。】 ◎ Inline box boundaries and out-of-flow elements must be ignored when determining word or phrase boundaries. However, if a word or phrase boundary is found at the same position as one or more inline box boundaries, the word or phrase boundary must be inserted in the outermost element that participates in this inline box boundary.
以下の例における "|" は、 `単語~境界を検出-$した~UAが,それらを配置する位置として適理なものを指示する: ◎ In the following example, the red “|” indicates reasonable positions for a user agent detecting word boundaries to place them:
กรุงเทพ|คือ|สวยงาม
この文が,何らかの行内~markupを包含していた場合、 次の例が,単語~境界を配置する位置として正しいものを示す: ◎ If that sentence had contained some inline markup, the following example shows the correct position to place the word boundaries:
กรุงเทพ|คือ|<em>สวยงาม</em>
次の例は、 `不正^emな位置を示す: ◎ The following example shows incorrect positions:
กรุงเทพ|คือ<em>|สวยงาม</em>
次の例は、 より作為的な状況における正しい位置を示す: ◎ The following shows the correct positions in a more contrived situation:
กรุงเทพ|<b><u>คือ</u>|<em>สวยงาม</em></b>
~securityの考慮点
この仕様により導入される新たな~securityの考慮点は,無い。 ◎ This specification introduces no new security considerations.
~privacyの考慮点
この仕様は、 利用者にて~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:\
Addison Phillips, Aharon Lanin, Alan Stearns, Ambrose Li, Arnold Schrijver, Arye Gittelman, Ayman Aldahleh, Ben Errez, Bert Bos, Chris Lilley, Chris Pratley, Chris Thrasher, Chris Wilson, Dave Hyatt, David Baron, Emilio Cobos Álvarez, Eric LeVine, Etan Wexler, Frank Tang, Håkon Wium Lie, IM Mincheol, Ian Hickson, James Clark, Javier Fernandez, John Daggett, Jonathan Kew, Ken Lunde, Laurie Anna Edlund, Marcin Sawicki, Martin Dürst, Martin Heijdra, Masafumi Yabe, Masayasu Ishikawa, Michael Jochimsen, Michel Suignard, Mike Bemford, Myles Maxfield, Nat McCully, Paul Nelson, Pierre-Anthony Lemieux, Rahul Sonnad, Randy Edmunds, Richard Ishida, Shinyu Murakami, Stephen Deach, Steve Zilles, Takao Suzuki, Tantek Çelik, Xidorn Quan, Yaniv Feinberg.
変更点
この草案は、 `~level 3$ と同期cに保たれる — その `§ 変更点@~CSSWG/css-text-3/#changes$ を見よ。 【その多くは、この節にも挙げられているが。】 ◎ This draft is kept in sync with [CSS-TEXT-3], see CSS Text 3 § Changes.\
~level 4 に特有な変更点は、 以下に挙げられる。 ◎ Changes specific to Level 4 are listed below.
- `2024年 5月 29日 作業草案@~TR/2024/WD-css-text-4-20240529/$ からの有意な変更点 ◎ Significant changes since the 29 May 2024 Working Draft include:
- (まだ無い。) ◎ None yet.
- `2024年 2月 19日 作業草案@~TR/2024/WD-css-text-4-20240219/$ からの有意な変更点 ◎ Significant changes since the 19 February 2024 Working Draft include:
- `text-spacing-trim$p1 用の値 `trim-auto^v を `trim-both$v1 に改称した。 ( `10161$issue ) ◎ Renamed the text-spacing-trim value trim-auto to trim-both. (Issue 10161)
- `text-wrap-style$p1 用の値 `balance$v1 用の要件 — 行l数を変更しないこと — を行l~数が多い事例~用には~~緩めた。 ( `10186$issue ) ◎ Loosened requirement about not changing lines for text-wrap-style: balance for cases with large numbers of lines. (Issue 10186)
- `text-wrap-style$p1 用の値 `balance$v1 と `line-clamp$p との相互作用を定義した。 ( `9310$issue ) ◎ Define interraction between text-wrap-style: balance and line-clamp (Issue 9310)
- `text-transform$p1 用の値 `math-auto$v1 を追加した。 ( `5386$issue ) ◎ Add the math-auto value for text-transform. (Issue 5386)
- `2023年 10月 20日 作業草案@~TR/2023/WD-css-text-4-20230329/$ からの有意な変更点 ◎ Significant changes since the 20 October 2023 Working Draft include:
- `text-spacing-trim$p1 用の値 `space-first$v1 の定義から不用意に削除された “`強制d行l分断$の直後にある各~行l” を復旧した。 ( `9532$issue ) ◎ Restored accidentally deleted “and each line after a forced line break” from definition of text-spacing-trim: space-first. (Issue 9532)
- `text-spacing-trim$p の初期~値を `normal$v1 にした。 ( `9511$issue ) ◎ Make normal the initial value of text-spacing-trim. (Issue 9511)
- 行lの終端における `space-first$v1 の挙動を変更した。 ( `9736$issue ) ◎ Change the end-of-line behavior of space-first. (Issue 9736)
- `space-first$v1 を行l分断の直後にて適用するようにした。 ( `9532$issue ) ◎ space-first applies after line-breaks. (Issue 9532)
- 全角~約物の縮約-法の詳細を明確化した。 ( `9225$issue ) ◎ Clarify details of fullwidth punctuation collapsing. (Issue 9225)
- `pre^e が `hanging-punctuation$p を既定で継承していたのを~UA~style規則により防止した。 ( `9689$issue ) ◎ Prevent pre from inheriting hanging-punctuation by default with a user-agent style rule. (Issue 9689)
- `2023年 3月 29日 作業草案@~TR/2023/WD-css-text-4-20230329/$ からの有意な変更点 ◎ Significant changes since the 29 March 2023 Working Draft include:
- `text-wrap$p ~propを 2 つの新たな~prop[ `text-wrap-mode$p, `text-wrap-style$p ]の略式として配役し直した。 それに伴い, `text-wrap^p に代えて `text-wrap-mode^p を `white-space$p ~propの下位propにした。 ◎ Recast the text-wrap property as a shorthand of two new properties, text-wrap-mode and text-wrap-style, and making text-wrap-mode rather than text-wrap a longhand of the white-space property.
- `§ 小書き~Kanaの対応付け@#small-kana$ を~Unicode 15.0 に更新した。 ( `8442$issue ) ◎ Updated Appendix G: Small Kana Mappings to Unicode 15.0. (Issue 8442)
- `word-break$p 用の[ `auto-phrase^v, `manual^v ]特能を (以前の,自立的な `word-boundary-detection^p ~propとしての試みから) 設計し直した。 それに伴い `word-space-transform$p1 用に値 `auto-phrase$v1 を追加して (それは,もはや `word-boundary-detection^p に依存し得ないので), ~support用の関係する機構を更新した。 ◎ Redesign of the word-break: auto-phrase word-break: manual features (from an earlier attempt as a standalone word-boundary-detection property), and add an auto-phrase value to word-space-transform (since it can no longer depend on word-boundary-detection). and update supporting related mechanics.
- `word-boundary-expansion^p を `word-space-transform$p に改称した。 ◎ Rename word-boundary-expansion to word-space-transform
- `text-spacing-trim$p1 に `trim-all$v1 を追加した。 ( `8482$issue ) ◎ Add trim-all to text-spacing-trim. (Issue 8482)
- `00A0^U `NO-BREAK SPACE^cn 以外の[ 誂-不能な~Unicode行-分断法~制御~文字 ]は、 `不可分な行内$についての規則より~~優先されるようにした。 ( `8972$issue ) ◎ Non-tailorable Unicode line breaking controls other than NBSP take precedence over our rule about atomic inlines. (Issue 8972)
- `2023年 3月 1日 作業草案@~TR/2023/WD-css-text-4-20230301/$ からの有意な変更点 ◎ Significant changes since the 1 March 2023 Working Draft include:
-
略式~propになった `white-space$p から各~下位propへの翻訳を完了した — 次により: ◎ Completed the translation of white-space to multiple longhands by
- この略式~prop用のすべての値を下位prop内で表現できるよう, `white-space-collapse$p1 に `break-spaces$v1 を追加した。 ( `8256$issue ) ◎ adding break-spaces to white-space-collapse so that all shorthand values can be represented in the longhands (Issue 8256)
- 下位prop用のすべての~keywordを この略式~propの中へ統合した。 ◎ integrating all longhand keywords into the white-space shorthand
- 以上に則って注釈文を更新した。 ◎ updating prose accordingly
- `text-space-collapse^p を `white-space-collapse$p に改称した。 `text-space-trim^p を `white-space-trim$p に改称した。 ( `8273$issue ) ◎ Renamed text-space-collapse and text-space-trim to white-space-collapse and white-space-trim. (Issue 8273)
- `2022年 12月 31日 作業草案@~TR/2022/WD-css-text-4-20221231/$ からの有意な変更点 ◎ Significant changes since the 31 December 2022 Working Draft include:
-
`text-spacing$p1 を設計し直した — 次により: ◎ Redesigned text-spacing by:
- 有用でない[ ~keywordの組合n ]を除去した。 ( `4246$issue, `8288$issue ) ◎ Removing non-useful keyword combinations (Issues 4246, 8288)
- 初期~値を `space-first$v1 にした ( `2462$issue ) ◎ Making space-first the initial value (Issue 2462)
- 下位propたちに分割した。 ( `4246$issue, `7183$issue, `8288$issue ) ◎ Splitting into longhands (Issues 4246, 7183, 8288)
- 各~特能を “オフに” する能を確保した。 ( `6950$issue, `8288$issue ) ◎ Ensuring the ability to turn each feature “off”. (Issues 6950, 8288)
- ~source内の不正な~space文字を置換することを許容するための~keywordを追加した ( `318$issue, `7183$issue, `8263$issue ) ◎ Add keywords to allow replacing incorrect space characters in the source. (Issues 318, 7183, 8263)
- `hanging-punctuation$p1 【用の値 `first$v1 】は, 行頭にある表語-~spaceが吊下がることを許容した — 素な~textから導出される~source~textに対する実施を補うため。 ( `2462$issue ) ◎ Allow hanging-punctuation to hang leading ideographic spaces to compensate for plaintext-derived source text practices. (Issue 2462)
- 値 `no-compress^v を `text-justify$p へを移動した — それは、 間隔法よりも両端揃えを制御するので。 ( `7079$issue ) ◎ Move no-compress to text-justify since it controls justification more than spacing. (Issue 7079)
- `text-spacing$p において文脈に応じて評価される文字を`~Unicode字種$ `Pe^uc, `Ps^uc に属する文字も含むよう拡張した。 ( `6091$issue ) ◎ Extended contextual characters evaluated in text-spacing to include characters from the Pe and Ps categories. (Issue 6091)
- `text-space-collapse^p を `white-space-collapse$p に戻すよう改称した。 ( `8273$issue ) ◎ Renamed text-space-collapse back to white-space-collapse. (Issue 8273)
- `2022年 5月 5日 作業草案@~TR/2022/WD-css-text-4-20220505/$ からの有意な変更点 ◎ Significant changes since the 5 May 2022 Working Draft include:
- `text-justify$p1 用に値 `ruby$v1 を追加した。 ( `771$issue, `779$issue ) ◎ Added ruby value to text-justify. (Issue 771 Issue 779)
- `text-spacing$p1 用の値 `normal$v1 は、 `allow-end^v に代えて `trim-end^v を利用するよう切替えた。 ( `7055$issue ) 【この記述は、現在の仕様には合致しない( `allow-end^v, `trim-end^v は廃された)。】 ◎ Switched text-spacing: normal to use trim-end instead of allow-end. (Issue 7055)
-
`text-spacing$p 用の値 `normal$v1 は、[ `ideograph-alpha^v, `ideograph-numeric^v ]も適用するよう切替えた。 ( `6950$issue ) それに伴い:
- `monospace^en 文脈からこれらを除外するよう, ~UAの既定の~stylesheetを更新した。
- 0 でない[ ~margin/~border/~padding ]は、 間隔~挿入を妨げるものと指定した。
- 挿入される間隔の量を `0.125ic^v として定義した。
- 実装を単純~化するため、 `text-align$p1 用の値 `match-parent$v1 は, `根~要素$上では `start$v1 に算出されるものと定義した。 ( `6542$issue ) ◎ Defined text-align: match-parent to compute to start on the root element for simplicity of implementation. (Issue 6542)
- `text-justify$p1 用の~keyword `distribute$v1 は、[ `旧来の別名~値$になること, 単純に `inter-character$v1 に算出されること ]どちらも許容した。 これは、 より容易な方を行うことを~UAに許容する — どちらでも,後方-互換性は問われないので。 ( `7322$issue ) ◎ Allow distribute keyword to be a legacy value alias or to simply compute to inter-character; this allows UAs to do whichever is easier, since the distinction does not matter for backwards-compatibility. (Issue 7322)
- `white-space-trim$p1 用の値 `trim-inner^v を `discard-inner$v1 に改称した — 他の値との一貫性を得るため。 ( `448$issue ) ◎ Renamed trim-inner value of white-space-trim to discard-inner for consistency with other values. (Issue 448)
- `2019年 作業草案@~TR/2019/WD-css-text-4-20191113/$ からの有意な変更点 ◎ Significant changes since the 2019 Working Draft include:
- `~level 3$ から全部的な~textを統合した。 ◎ Integrating the full text of [CSS-TEXT-3].
- [ `word-spacing$p, `letter-spacing$p ]用に,現在の `font-size$p に相対的な~sizeを表現する百分率を追加した ( `2165$issue ) ◎ Adding percentages to word-spacing and letter-spacing to represent sizes relative to the current font-size. (Issue 2165)
- `textarea$e 内の~spaceが縮約されないようにする~UA規則を示唆した。 ( `6309$issue ) ◎ Suggesting a UA rule to prevent spaces in textarea from collapsing. (Issue 6309)
~level 3 からの追加
~level 4 における新たな特能は: ◎ New features in Level 4:
- `word-break$p1 用の値 `auto-phrase$v1 — 行lを分断する間,一緒に保つ句を自動的に決定するための ◎ word-break: auto-phrase, for automaticly determining phrases to keep together while line breaking
- `word-space-transform$p — 単語~分離子を変形するための ◎ word-space-transform, for transforming word separators
-
`white-space$p ~propを複数の下位propにバラした ◎ breaking up of the white-space property into multiple longhands:
- `white-space-collapse$p1, それ用の値 `preserve-spaces$v1, `discard$v1 ◎ white-space-collapse and its preserve-spaces and discard values
- `white-space-trim$p — 要素の境界にある過剰な空白を削るための ◎ white-space-trim, for trimming excess white space at the boundaries of an element
- `text-wrap-mode$p — 折返ngが生じるか否かを制御するための ◎ text-wrap-mode to control whether wrapping occurs or not
- `text-wrap-style$p1, それ用の値 `balance$v1, `stable$v1, `pretty$v1 ◎ text-wrap-style and its balance, stable, and pretty values
- `wrap-before$p, `wrap-after$p, `wrap-inside$p — 折返ngを[ 避ける/強制する ]ための (~page割り用の各種 `break-*^p ~propと類似な) ◎ wrap-before, wrap-after, and wrap-inside, to avoid or force wrapping (similar to the break-* properties for pagination)
- `hyphenate-character$p — ~hyphen化~文字を明示的に制御するための ◎ hyphenate-character, to explicitly control the hyphenation character
- `hyphenate-limit-zone$p, `hyphenate-limit-chars$p, `hyphenate-limit-lines$p, `hyphenate-limit-last$p — 自動的な~hyphen化を もっと良く制御するための ◎ hyphenate-limit-zone, hyphenate-limit-chars, hyphenate-limit-lines, hyphenate-limit-last, for better control over automatic hyphenation
- `text-align$p 用の `string$t 値 — そこで(例:小数点で)整列させるための ◎ <string> values for text-align for aligning on, e.g., a decimal point
- `text-group-align$p — [ 内容が `text-align$p により整列される行l~box ]たちが成す集合を~groupとして整列するための ◎ text-group-align for group-aligning a set of line boxes whose contents are aligned by text-align
- `line-padding$p — 行内~boxの中で,行lの[ 始端/終端 ]に間隔を挿入するための ◎ line-padding for inserting spaces within the inline box at the start/end of lines
- `text-spacing$p — [ 約物の周り, 用字系が変化する所 ]における自動的な間隔法 ◎ text-spacing for automatic spacing around punctuation and script changes