W3C

CSS フォントモジュール Level 3

2016 年 1 月 19 日付 W3C 編集者草案

このバージョン
最新の編集者草案
https://drafts.csswg.org/css-fonts-3/
変更ログ
最新発行バージョン
https://www.w3.org/TR/css-fonts-3/
以前のバージョン
https://www.w3.org/TR/2013/WD-css-fonts-3-20130711/
課題一覧
Tracker
Bugzilla
テスト一式
https://test.csswg.org/suites/css3-fonts/nightly-unstable/
最新の課題
GitHub
編集
John Daggett (Invited Expert)
Myles C. Maxfield (Apple Inc.)
Copyright © 2016 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and document use rules apply.

要約

この CSS3 ~moduleは、~font~propを指定する方法, および ~font資源を動的に読込む方法について述べる。 この仕様の内容は、以前までは,2つの~module CSS3 Fonts および CSS3 Web Fonts に分割されていた内容を,統合したものである。 ~fontの load ~eventに関する記述は、 CSS Font Loading Module に移動された。 This CSS3 module describes how font properties are specified and how font resources are loaded dynamically. The contents of this specification are a consolidation of content previously divided into CSS3 Fonts and CSS3 Web Fonts modules. The description of font load events was moved into the CSS3 Font Load Events module.

CSS は、( HTML や XML などの)構造を備える文書から, ~screen, 紙, ~speech, 等々 の媒体への具現化法を記述するための言語である。 ◎ CSS is a language for describing the rendering of structured documents (such as HTML and XML) on screen, on paper, in speech, etc.

この文書の位置付け

この節では、発行時点における… 【 以下、この節の他の内容は CSS 日本語訳 共通ページ に委譲 】

次の特色機能は ~at-risk にあり、勧告候補の期間に,取下げらる可能性があります: The following features are at-risk, and may be dropped during the CR period:

1. 序論

~fontは,文字の視覚的な表現を包含している資源を提供する。 最も単純な~levelでは、それは,文字~codeから[ それらの文字を表現する(~glyphと呼ばれる)形状 ]へ対応付ける情報を包含する。 同じ~design~styleを共有する~fontは、[[ 標準~font~propの集合 ]に基づいて分類される,~font族 ]として共通的に~group化される。 同じ族~内における[ 所与の文字に対し表示される形状 ]は、種々の~propの中でも~~特に[ 描線( stroke )の~weight, 傾き, 相対~字幅 ]により,変わり得る。 個々の~font書体は、これらの~propからなる一意な組合せにより,記述される。 一連の~CSS~font~propが、所与の範囲の~textを描画するために用いられる[ ~font族とその族~内の特定の~font書体 ]を選定するために利用される。 簡単な例として、 `Helvetica^F の~bold形を用いるときは,次を利用できる: ◎ A font provides a resource containing the visual representation of characters. At the simplest level it contains information that maps character codes to shapes (called glyphs) that represent these characters. Fonts sharing a common design style are commonly grouped into font families classified by a set of standard font properties. Within a family, the shape displayed for a given character can vary by stroke weight, slant or relative width, among others. An individual font face is described by a unique combination of these properties. For a given range of text, CSS font properties are used to select a font family and a specific font face within that family to be used when rendering that text. As a simple example, to use the bold form of Helvetica one could use:

body {
    font-family: Helvetica;
    font-weight: bold;
}

~font資源は、[[ ~UAを走らせている~system ]に~localに~installされているもの ]か, あるいは[ ~download可能なもの ]になり得る。 ~local~font資源に対しては、~font資源から直接的に その記述的~情報を取得し得る。 ~downloadable~font資源(~web~fontとも呼ばれる)に対しては、この記述的~情報は,その~font資源への参照に伴って含められる。 ◎ Font resources may be installed locally on the system on which a user agent is running or downloadable. For local font resources descriptive information can be obtained directly from the font resource. For downloadable font resources (sometimes referred to as web fonts), the descriptive information is included with the reference to the font resource.

~fontの族は、概して,[ 一連の~font~propがとり得る,ある~variation ]に対応する書体 一つだけを包含することはない。 ~CSS~font選定の仕組みは、[ 所与の~CSS~font~propの集合 ]を[ 単独の~font書体 ]に合致させる方法を記述する。 ◎ Families of fonts typically don’t contain a single face for each possible variation of font properties. The CSS font selection mechanism describes how to match a given set of CSS font properties to a single font face.

【 ~~書体 — 原文では、(おそらく,より抽象的な含みも込めて) “typeface” ではなく, “face” ( “〜体” )と記されている(この訳の中の大部分の “~~書体” は “face” を意味する)。 】

2. ~typographyの背景

~INFORMATIVE

~typographic伝統様式は,世界に渡り様々なので、言語や文化に渡るすべての~fontを分類するための,一意な~方法は存在しない。 共通的な~Latin普通字ですら、~~幅広い~variationがあり得る: ◎ Typographic traditions vary across the globe, so there is no unique way to classify all fonts across languages and cultures. For even common Latin letters, wide variations are possible:

【 言語 — この仕様の中の “言語” は、ごく一部を除き,(人が話す)自然言語を意味する。 】【 “~Latin” は、 “~Latin用字系” の略語と考えればよいであろう。 “〜~~語” (~Turkishなど)や, “〜~~文字”(~Cyrillicなど),等についても、同様。 】【 普通字( letter ) — 概念的には、約物や記号~類を除く, “普通の” 字(~alphabet, かな, 漢字, 等々)を意味すると見られる。 】

`aaaaaa^png
1 個の文字, 多数の~glyph~variation ◎ One character, many glyph variations

字形( letterform )の細部における相違は、~fontを判別する方法の一つである。 ~Latin~fontにおいては、文字の[ メイン描線や~serif ]の末端の~flourish【つる状, 跳ね, 等の装飾】の有無により,~fontを判別し得る。 同様の比較は,非~Latin~fontにおいても[ 描線が途中で細まるもの( taperd ) ]と[ 主に一様な描線を用いるもの ]との間に存在する: ◎ Differences in the anatomy of letterforms is one way to distinguish fonts. For Latin fonts, flourishes at the ends of a character’s main strokes, or serifs, can distinguish a font from those without. Similar comparisons exist in non-Latin fonts between fonts with tapered strokes and those using primarily uniform strokes:

`serifvssansserif^png
~serifを伴う字形と伴わない字形 ◎ Letterforms with and without serifs
`minchovsgothic^png
~Japanese~typefaceに対する同様の~group分け ◎ Similar groupings for Japanese typefaces

~fontは、一連の字形と, [ それぞれの文字をこれらの字形に対応付けるために必要な~data ]を包含する。 これは,単純な一対一の対応付けになることも多いが、より複雑な対応付けもあり得る。 結合~発音区別符の利用は、下層の字形に対する多数の~variationを創出する: ◎ Fonts contain letterforms and the data needed to map characters to these letterforms. Often this may be a simple one-to-one mapping, but more complex mappings are also possible. The use of combining diacritic marks creates many variations for an underlying letterform:

`aaaaaa-diacritics^png
発音区別符を伴う~variation ◎ Variations with diacritic marks

合字(リガチャ)として知られる単独の~glyphが、複数の文字からなる連列を表現することもある: ◎ A sequence of characters can be represented by a single glyph known as a ligature:

`final-ligature^png
合字の例 ◎ Ligature example

~textual文脈に基づく視覚的な変形は、~European言語においては,大抵は~stylistic~optionであるが、~Arabicのような言語を正しく描画するためには,必須とされている — 下の2つの文字[ ~lamと~alef ]は、それらが並んで位置するときは,結合され~MUST: ◎ Visual transformations based on textual context are often stylistic option in European languages. They are required to correctly render languages like Arabic, the lam and alef characters below must be combined when they exist in sequence:

`lamaleflig^png
必須とされる~Arabic合字 ◎ Required Arabic ligature

これらの[ 形状付け変形 ]は相対的に複雑であり,~font内に追加の~dataを要する。 ◎ The relative complexity of these shaping transformations requires additional data within the font.

種々の~stylistic~variationが伴われた[ ~font書体の集合 ]は、よく一緒にされて~font族に~group化される。 最も単純な事例では,~regular書体に伴なって[ ~boldや~italic ]の書体も増補されるが、ずっと~~広範な~group分けも可能である。 [ 字形の描線の太さ — `~weight@ ( weight )], [ 字形の全体的な均衡 — `字幅@ ( width ) ] における~variationは、最も共通的にある。 下の例では、各~普通字が[ `Univers^F ~font族~内の異なる~font書体 ]を用いている — それらの字幅は 上段から下段にかけて増大され,~weightは 左から右にかけて増大されている: ◎ Sets of font faces with various stylistic variations are often grouped together into font families. In the simplest case a regular face is supplemented with bold and italic faces, but much more extensive groupings are possible. Variations in the thickness of letterform strokes, the weight, and the overall proportions of the letterform, the width, are most common. In the example below, each letter uses a different font face within the Univers font family. The width used increases from top to bottom and the weight increases from left to right:

`weightwidthvariations^png
単独の~font族~内における~weightと字幅の~variation ◎ Weight and width variations within a single font family

複数の用字系を~supportするような~fontの創出は、困難な仕事である。 ~designer達は、異なる用字系に渡る書体tの利用を,それを取り巻く文化的な伝統様式を理解した上で、何らかの~~形で同じテーマを共有するような,字形の集合を作り上げる必要がある。 多くの言語は,しばしば同じ用字系を共有し、それぞれの言語が,目を引く~stylistic相違を持ち得る。 例えば,~Arabic用字系では、~Persianと~Urduに用いられる際に,重大かつ体系的な字形の相違を露にする。 ~Serbianや~Russianなどの言語で用いられる~Cyrillicでも同様である。 ◎ Creating fonts that support multiple scripts is a difficult task; designers need to understand the cultural traditions surrounding the use of type in different scripts and come up with letterforms that somehow share a common theme. Many languages often share a common script and each of these languages may have noticeable stylistic differences. For example, the Arabic script, when used for Persian and Urdu, exhibits significant and systematic differences in letterforms, as does Cyrillic when used with languages such as Serbian and Russian.

~fontの`文字map$は、その~fontのための[ 文字から~glyphへの対応付け ]を定義する。 文書に[[[ 所与の[ ~font族の~list ]に包含される~font ]の`文字map$ ]からは~supportされない文字 ]が包含されている場合、~UAは,[ それを~supportする適切な~font ]を見つけるために,`~system~font~fallback$手順を用いても~MAY。 適切な~fontが見出されなかった場合、何らかの形の “~missing~glyph” 文字が,~UAにより描画されることになる。 ~system~fallbackは、指定された[ ~font族の~list ]が,[[ 所与の文字 ]を~supportする~font ]を含んでいないときに生じ得る。 ◎ The character map of a font defines the mapping of characters to glyphs for that font. If a document contains characters not supported by the character maps of the fonts contained in a font family list, a user agent may use a system font fallback procedure to locate an appropriate font that does. If no appropriate font can be found, some form of "missing glyph" character will be rendered by the user agent. System fallback can occur when the specified list of font families does not include a font that supports a given character.

~fontの`文字map$は,所与の文字を[ その文字のための~glyph ]へ対応付けるが、~OpenTypeや AAT ( Apple Advanced Typography )などの現代の~font技術は,各種~特能( feature, 特色機能)の設定群に基づいて,種々の仕方で[ 文字から 異なる~glyphへの対応付け ]を提供する。 これらの形式による~fontでは、それらの特能を ~appから制御できるように,~font自身に埋込むことが許容されている。 この方法で指定し得る,共通的な~typographic特能のごく一部には[ 合字, ~swash 【参考】, 文脈依存~代替, [ 均衡幅/一定幅 ]の数字f, 自動的~分数【 "1/3" → ⅓ 等々】 ]などが挙げられる。 ~OpenType 特能についての視覚的な概観は `OPENTYPE-FONT-GUIDE$r にて見られる。 ◎ Although the character map of a font maps a given character to a glyph for that character, modern font technologies such as OpenType and AAT (Apple Advanced Typography) provide ways of mapping a character to different glyphs based upon feature settings. Fonts in these formats allow these features to be embedded in the font itself and controlled by applications. Common typographic features which can be specified this way include ligatures, swashes, contextual alternates, proportional and tabular figures, and automatic fractions, to list just a few. For a visual overview of OpenType features, see the [OPENTYPE-FONT-GUIDE].

3. 基本的な~font~prop

文字を描画するために用いられる,特定0の~font書体は、[ その文字を内容に含む要素 ]に適用される ~font族や他の各種~font~propにより,決定される。 この構造により、これらの設定群の中の個々の設定は,互いに独立に変わり得るようになる。 ◎ The particular font face used to render a character is determined by the font family and other font properties that apply to a given element. This structure allows settings to be varied independent of each other.

3.1. ~font族: `font-family^p ~prop

`●名^ `font-family@p `●値^ [ `family-name$t | `generic-family$t ]# `●初^ ~UAに依存する◎depends on user agent `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

この~propは、いくつかの[ ~font族~名や総称~族~名 ]からなる,優先順位付けられた~listを指定する。 ~font族は、様々な[ ~weight, 字幅, 斜傾度 ]を備える書体の集合を定義する。 ~CSSは、個々の書体を選定するために,族~名と他の一連の~style属性の組合せを用いる。 ~design~appにおいて よく行われる様な[ ~style名を介する書体の選定法 ]ではなく,この選定の仕組みにより、~fallbackが生じた際でも,ある程度 規則正しい~textual表示を得られるようになる。 ◎ This property specifies a prioritized list of font family names or generic family names. A font family defines a set of faces that vary in weight, width or slope. CSS uses the combination of a family name with other style attributes to select an individual face. Using this selection mechanism, rather than selecting a face via the style name as is often done in design applications, allows some degree of regularity in textual display when fallback occurs.

注記: ~designer達は、~CSSによる[ 選定に用いられる~font属性 ]の定義が、明示的に,[ ~fontの分類法を定義することを目的としていない ]ことを心に留めておくべきである。 書体t~designerによる族のアイデアは、しばしば,標準~の[ ~weight, 字幅, 斜傾度 ]の軸のみならず, 他の軸にも沿って変わり得るような,書体の集合まで拡張する。 族は、~serif書体の集合と~sans-serif書体の集合の両者を含むように, あるいは その族に固有の軸に沿って変わり得るように,拡張し得る。 ~CSSにおける~font選定の仕組みは、単に,代用が必要とされるときに “最も近い” 代用-を決定するための,一つの方法を提供するものに過ぎない。 ◎ Note: Designers should note that the CSS definition of font attributes used for selection are explicitly not intended to define a font taxonomy. A type designer’s idea of a family may often extend to a set of faces that vary along axes other than just the standard axes of weight, width and slope. A family may extend to include both a set of serif faces and a set of sans-serif faces or vary along axes that are unique to that family. The CSS font selection mechanism merely provides a way to determine the “closest” substitute when substitution is necessary.

他の~CSS~propと異なり,~listの成分~値は~commaで区切られる。 それらは、一連の代替候補を指示する。 ~UAは、[[ 描画される文字のための~glyph ]を包含するような,可用な~font ]に合致するまで、族~名の~listを走査する。 これにより、[ ~platformに渡る,可用な~fontの相違 ], および[ 個々の~fontから~supportされる文字~範囲の相違 ]が,許容されるようになる。 ◎ Unlike other CSS properties, component values are a comma-separated list indicating alternatives. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered. This allows for differences in available fonts across platforms and for differences in the range of characters supported by individual fonts.

~font族~名は、[ ~font書体の集合に付与されている名前 ]のみを指定するものであり,個々の書体は指定しない。 例えば,次に挙げる~fontが可用である下では、 `Futura^F は合致することになるが,`Futura_Medium^F は合致しない: ◎ A font family name only specifies a name given to a set of font faces, it does not specify an individual face. For example, given the availability of the fonts below, Futura would match but Futura Medium would not:

`familyvsfacename^png
族と個々の書体~名 ◎ Family and individual face names

次の例を考える: ◎ Consider the example below:

body {
    font-family: Helvetica, Verdana, sans-serif;
}

`Helvetica^F が可用ならば、それが描画-時に用いられることになる。 `Helvetica^F も `Verdana^F も無い場合、~UA 定義dの~sans-serif~fontが用いられることになる。 ◎ If Helvetica is available it will be used when rendering. If neither Helvetica nor Verdana is present, then the user-agent-defined sans serif font will be used.

~font族~名は,次の2種類に分けられる: ◎ There are two types of font family names:

`generic-family$t
次に定義される,総称~族~keyword: `serif$v, `sans-serif$v, `cursive$v, `fantasy$v, `monospace$v ◎ ↓
これらの~keywordは、作者が欲する~font候補が可用でないときの,一般~fallbackの仕組みとして利用し得るものである。 ~keywordなので、引用符で括られてはならない。 作者には、頑健性を向上するため,最後の代替候補として総称~font族を付加しておくことが奨励される。 ◎ The following generic family keywords are defined: serif, sans-serif, cursive, fantasy, and monospace. These keywords can be used as a general fallback mechanism when an author’s desired font choices are not available. As keywords, they must not be quoted. Authors are encouraged to append a generic font family as a last alternative for improved robustness.
`family-name@t
上の例の `Helvetica^F や `Verdana^F など,候補とされる~font族の名前 ◎ The name of a font family of choice such as Helvetica or Verdana in the previous example.
これらの~font族~名は、`~CSS文字列$として,引用符で括った上で与えるか、または[ 1 個以上の`~CSS識別子$の連列 ]として,引用符で括らずに与えなければならない。 従って,引用符で括らない場合、各~tokenの先頭に位置する[ 約物の大部分/数字d ]は,~escapeされなければならない。 ◎ Font family names other than generic families must either be given quoted as strings, or unquoted as a sequence of one or more identifiers. This means most punctuation characters and digits at the start of each token must be escaped in unquoted font family names.

例えば,次に示す宣言は、どれも無効である: ◎ To illustrate this, the following declarations are invalid:

font-family: Red/Black, sans-serif;
font-family: "Lucida" Grande, sans-serif;
font-family: Ahem!, sans-serif;
font-family: test@foo, sans-serif;
font-family: #POUND, sans-serif;
font-family: Hawaii 5-0, sans-serif;

~font族~名として識別子の連列が与えられた場合、その算出値は,連列の中の各~識別子を単独の~spaceで区切って順に連結することにより 文字列に変換した結果の名前になる。 ◎ If a sequence of identifiers is given as a font family name, the computed value is the name converted to a string by joining all the identifiers in the sequence by single spaces.

~escapeの誤記を避けるため、[ 空白/数字d/~hyphen以外の約物 ]を包含するような~font族~名は,引用符で括ることが推奨される: ◎ To avoid mistakes in escaping, it is recommended to quote font family names that contain white space, digits, or punctuation characters other than hyphens:

body { font-family: "New Century Schoolbook", serif }

<BODY STYLE="font-family: '21st Century', fantasy">

~keyword値( `~CSS全域~keyword$, `generic-family$t )とたまたま同じになる~font族 は、~keywordと混同されないように,引用符で括られ~MUST。 ~keyword[ `initial^v, `default^v ]も,将来~利用のために予約済みであり、~font名として用いるときは,引用符で括られ~MUST。 ~UA は、これらの~keywordを[ `family-name$t 型に合致している ]と見なしては~MUST_NOT。 ◎ Font family names that happen to be the same as a keyword value (inherit, serif, sans-serif, monospace, fantasy, and cursive) must be quoted to prevent confusion with the keywords with the same names. The keywords initial and default are reserved for future use and must also be quoted when used as font names. UAs must not consider these keywords as matching the <family-name> type.

~fontの集合をいくつかの~font族に~group化する精確な~方法は、~platformの~font管理 API に依存して様々である。 Windows GDI API においては,~groupに許容される書体~数は一つの族につき 4 個までである一方、 DirectWrite API や OSX 他の~platform上の API では,種々の[ ~weight, 字幅, 斜傾度 ]を伴う~font族が~supportされる(詳細は 付録 A に見られる)。 ◎ The precise way a set of fonts are grouped into font families varies depending upon the platform font management API’s. The Windows GDI API only allows four faces to be grouped into a family while the DirectWrite API and API’s on OSX and other platforms support font families with a variety of weights, widths and slopes (see Appendix A for more details).

一部の~font形式では、~fontによる複数の[ 族~名の地域化版 ]の保持が許容されている。 ~UAは、それを認識した上で,[ 下層の~platformによる地域化名, 利用する~system API, 文書の符号化方式 ]から独立に,これらの名前すべてを正しく合致させ~MUST: ◎ Some font formats allow fonts to carry multiple localizations of the family name. User agents must recognize and correctly match all of these names independent of the underlying platform localization, system API used or document encoding:

族~名(左列)の地域化版(右列) ◎ Localized family names
GulimChe 굴림체
Hiragino Kaku Gothic Pro ヒラギノ角ゴ Pro
Meiryo メイリオ
MingLiu 細明體
MS Mincho MS 明朝
Raanana רעננה

[ 地域化された~font族~名の照合 ]と, それに呼応する[ 文字大小区別についての課題 ]についての詳細は、後述の ~font照合 節にて述べられる。 ◎ The details of localized font family name matching and the corresponding issues of case sensitivity are described below in the font matching section.

3.1.1. 総称~font族

5 つの総称~font族( `generic-family$t )すべてが,すべての~CSS実装において存在するものと定義される(それらが実際に, 5 つの別個の~fontに対応付けられるとは限らない)。 ~UAは、総称~font族のための既定の候補として,[ 下層~の技術的制約から許される~~範囲で可能な限り,それぞれの族の特徴を~~表現する ]ような,~~妥当なものをいくつか提供するべきである。 ~UAには、利用者が[ 総称~fontのための代替候補 ]を選定できるようにすることが奨励される。 ◎ All five generic font families are defined to exist in all CSS implementations (they need not necessarily map to five distinct actual fonts). User agents should provide reasonable default choices for the generic font families, which express the characteristics of each family as well as possible within the limits allowed by the underlying technology. User agents are encouraged to allow users to select alternative choices for the generic fonts.

`generic-family@t の構文は: ◎ The syntax of <generic-family> is:

`generic-family^t = `serif$v | `sans-serif$v | `cursive$v | `fantasy$v | `monospace$v
`serif@v
~serif~fontは、用字系における公式的用途の~text~styleを表現する。 【~serif — 描線~先端の小さな飾り】 これは,大抵[[ 終筆( finishing stroke )や, 末広がり/先細りの末端 ], あるいは[ 実際に~serif化された末端仕上げ( ~slab~serifも含む) ]]を備えるような~glyphを意味するが,それらに限られない。 ~serif~fontは、概して,均衡字幅にされている。 それらは大抵、 `sans-serif$v 総称~font族の~fontよりも,描線の太さの変動幅が大きく表示される。 ~CSSにおける語 `serif$v は、どの用字系の~fontにも適用されるものとして,用いられる — [ `Mincho^F (~Japanese), `Sung^F, `Song^F, `Kai^F (~Chinese), `Batang^F (~Korean) ]など、特定0の用字系においては,他の名前の方がより馴染まれているが。 ~Arabicの~Naskh~styleに対しては、その実際の~design~styleでなく,その~typographic上の役割の理由から、より `serif$v に対応することになるであろう。 上述の様な~fontが,総称 `serif$v 族を表現するために利用され得る。 ◎ Serif fonts represent the formal text style for a script. This often means but is not limited to glyphs that have finishing strokes, flared or tapering ends, or have actual serifed endings (including slab serifs). Serif fonts are typically proportionately-spaced. They often display a greater variation between thick and thin strokes than fonts from the sans-serif generic font family. CSS uses the term serif to apply to a font for any script, although other names may be more familiar for particular scripts, such as Mincho (Japanese), Sung, Song or Kai (Chinese), Batang (Korean). For Arabic, the Naskh style would correspond to serif more due to its typographic role rather than its actual design style. Any font that is so described may be used to represent the generic serif family.
`serifexamples^png
~serif~fontの見本 ◎ Sample serif fonts
`sans-serif@v
~CSS用語としての,~sans-serif【 “~serifの~~無い” 】~fontの~glyphは、一般に,縦横の画線の太さが概ね一様で, 質素な — すなわち [ ~flaring, 画線を横切る細い線【 cross stroke — “t” の横線など】, その他の装飾様式 ]を伴わない — 描線の末端仕上げを備える。 ~sans-serif~fontは、概して,均衡字幅にされている。 それらは大抵、`serif$v 族の~fontより,描線の太さの変動幅が小さい。 ~CSSにおける語 `sans-serif$v は、どの用字系の~fontにも適用されるものとして,用いられる — 特定0の用字系においては,他の名前 — 例えば[ `Gothic^F (~Japanese), `Hei^F (~Chinese), `Gulim^F (~Korean) ]などの方がより馴染まれているが。 上述の様な~fontが,総称 `sans-serif$v 族を表現するために利用され得る。 ◎ Glyphs in sans-serif fonts, as the term is used in CSS, are generally low contrast (vertical and horizontal stems have the close to the same thickness) and have stroke endings that are plain -- without any flaring, cross stroke, or other ornamentation. Sans-serif fonts are typically proportionately-spaced. They often have little variation between thick and thin strokes, compared to fonts from the serif family. CSS uses the term sans-serif to apply to a font for any script, although other names may be more familiar for particular scripts, such as Gothic (Japanese), Hei (Chinese), or Gulim (Korean). Any font that is so described may be used to represent the generic sans-serif family.
`sansserifexamples^png
~sans-serif~fontの見本 ◎ Sample sans-serif fonts
`cursive@v
cursive(~~筆記的)~fontの~glyphは、一般に,より非公式的な用字系~styleを利用し,その結果は、印刷物よりも,~penや絵筆で手書きされた様に見える。 ~CSSにおける語 `cursive$v は、どの用字系の~fontにも適用されるものとして,用いられる — [ `Chancery^F, `Brush^F, `Swing^F, `Script^F ]などの他の名前も ~font名に用いられるが。 ◎ Glyphs in cursive fonts generally use a more informal script style, and the result looks more like handwritten pen or brush writing than printed letterwork. CSS uses the term cursive to apply to a font for any script, although other names such as Chancery, Brush, Swing and Script are also used in font names.
`cursiveexamples^png
筆記的~fontの見本 ◎ Sample cursive fonts
`fantasy@v
~fantasy~fontは、装飾や表情の豊かさを主とする~fontであり,文字の装飾的な, あるいは表情豊かな表現を包含する。 [ `Pi^F, `Picture^F ]などの,実際の文字を表現しない~fontは、これらには含まれない。 ◎ Fantasy fonts are primarily decorative or expressive fonts that contain decorative or expressive representations of characters. These do not include Pi or Picture fonts which do not represent actual characters.
`fantasyexamples^png
~fantasy~fontの見本 ◎ Sample fantasy fonts
`monospace@v
monospace (等幅)~fontとされるための,唯一の判定基準は、すべての~glyphが同じ固定幅を持つことである。 これは、~computer~codeの見本を描画する際に,よく用いられる。 ◎ The sole criterion of a monospace font is that all glyphs have the same fixed width. This is often used to render samples of computer code.
`monospaceexamples^png
~monospace~fontの見本 ◎ Sample monospace fonts

3.2. ~font~weight: `font-weight^p ~prop

`●名^ `font-weight@p `●値^ `normal$v1 | `bold$v | `bolder$v | `lighter$v | `100$v | `200$v | `300$v | `400$v | `500$v | `600$v | `700$v | `800$v | `900$v `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 数値による字幅(記述を見よ)◎numeric weight value (see description) `●ア^ `font-weight^p 値として◎as font weight `●表終^

`font-weight$p ~propは、~font内の一連の~glyphの~weight,すなわち それらの 黒っぽさ/描線の太さ の程度を指定する。 ◎ The font-weight property specifies the weight of glyphs in the font, their degree of blackness or stroke thickness.

各種~値の意味は,次で与えられる: ◎ Values have the following meanings:

`100@v, `200@v, `300@v, `400@v, `500@v, `600@v, `700@v, `800@v, `900@v
これらの値の各数が指示する~weightは、大きいもの程,少なくともより小さいもの以上の濃さを表す。 これらは概ね、下に示す,共通的に用いられる~weight名に対応する: ◎ These values form an ordered sequence, where each number indicates a weight that is at least as dark as its predecessor. These roughly correspond to the commonly used weight names below:
  • `100^v — Thin 【最も細い/薄い/軽い】
  • `200^v — Extra Light (Ultra Light)
  • `300^v — Light (細字)
  • `400^v — Normal (通常)
  • `500^v — Medium
  • `600^v — Semi Bold (Demi Bold)
  • `700^v — Bold (太字)
  • `800^v — Extra Bold (Ultra Bold)
  • `900^v — Black (Heavy) 【最も太い/濃い/重い】
`normal@v1
`400^v と同じ。 ◎ Same as 400.
`bold@v
`700^v と同じ。 ◎ Same as 700.
`bolder@v
継承値より~boldな~weightを指定する。 ◎ Specifies a bolder weight than the inherited value.
`lighter@v
継承値より~lightな~weightを指定する。 ◎ Specifies a lighter weight than the inherited value.

9 段階でない 等級 を用いる~font形式は、その等級を[ 400 が概ね[ `Regular^F, `Book^F, `Roman^F ]に~labelされる書体に対応し, 700 が概ね[ `Bold^F ]に~labelされる書体に合致する ]ように,~CSSの等級へ対応付けるべきである。 あるいは、~style名から,前述の等級に概ね対応する~weightが推定されてもよい。 等級は相対的であり、より大きな~weight値を伴う書体が,より~lightに現れては~MUST_NOT。 ~weightの推定-に,~style名が用いられる場合、[ ~localeに渡る,~style名の~variation ]の取扱いに注意を払うべきである。 ◎ Font formats that use a scale other than a nine-step scale should map their scale onto the CSS scale so that 400 roughly corresponds with a face that would be labeled as Regular, Book, Roman and 700 roughly matches a face that would be labeled as Bold. Or weights may be inferred from the style names, ones that correspond roughly with the scale above. The scale is relative, so a face with a larger weight value must never appear lighter. If style names are used to infer weights, care should be taken to handle variations in style names across locales.

特定0の~font族に対し,限られた少数の~weightしか可用でないことは、ごく普通にあり得る。 存在しない書体に対する~weightが指定されたときは、それに近い~weightによる書体が利用される。 一般に、~bold~weightのものは より重い~weightの書体に,~light~weightのものは より軽い~weightの書体に対応付けられる(精確な定義については,下の ~font照合~algo 節にて見られる)。 次の例に、それぞれの~weightにどの書体が用いられるかを図解する — 灰色のものは、~weightに対応する書体が存在せず,それに近い~weightによる書体が用いられることを指示する: ◎ Quite often there are only a few weights available for a particular font family. When a weight is specified for which no face exists, a face with a nearby weight is used. In general, bold weights map to faces with heavier weights and light weights map to faces with lighter weights (see §5 Font Matching Algorithm for a precise definition). The examples here illustrate which face is used for different weights, grey indicates a face for that weight does not exist so a face with a nearby weight is used:

`optimaweights^png
~weight 400, 700, 900 の書体が伴われた~font族に対する,~weightの対応付け ◎ Weight mappings for a font family with 400, 700 and 900 weight faces
`hiraginoweights^png
~weight 300, 600 の書体が伴われた~font族に対する,~weightの対応付け ◎ Weight mappings for a font family with 300 and 600 weight faces

~typographer達からは あまり好まれていない慣行だが、~bold書体は,実際の~bold書体を欠く書体のために,~UAにより合成されることが多い。 ~style照合の目的0においては、これらの書体は,それらが族~内に存在しているかのように扱われ~MUST。 作者は、 `font-synthesis$p ~propを用いて,この挙動を明示的に避けることもできる。 ◎ Although the practice is not well-loved by typographers, bold faces are often synthesized by user agents for faces that lack actual bold faces. For the purposes of style matching, these faces must be treated as if they exist within the family. Authors can explicitly avoid this behavior by using the font-synthesis property.

[ `bolder$v / `lighter$v ]による指定値は、親~要素の~weightに相対的な~weightを指示する。 ~weightの算出値は、下の表を用いて, `font-weight$p の継承値に基づいて計算される: ◎ Specified values of bolder and lighter indicate weights relative to the weight of the parent element. The computed weight is calculated based on the inherited font-weight value using the chart below.

継承値 `bolder^v `lighter^v
100400100
200400100
300400100
400700100
500700100
600900400
700900400
800900700
900900700

上の一覧は、 ~normal, ~bold に加えて ~thin, ~heavy の書体も包含している~font族が与えられている下での,相対的に次に ~bold/~light な書体の選定法に、等価である。 作者は、要素に用いられる正確xな~weight値についての,より精緻な制御を欲するなら、相対~weightの代わりに,数による値を用いてもよい。 ◎ The table above is equivalent to selecting the next relative bolder or lighter face, given a font family containing normal and bold faces along with a thin and a heavy face. Authors who desire finer control over the exact weight values used for a given element may use numerical values instead of relative weights.

3.3. ~fontの字幅: `font-stretch^p ~prop

`●名^ `font-stretch@p `●値^ `normal$v1 | `ultra-condensed$v | `extra-condensed$v | `condensed$v | `semi-condensed$v | `semi-expanded$v | `expanded$v | `extra-expanded$v | `ultra-expanded$v `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ `font-stretch^p 値として◎as font stretch `●表終^

`font-stretch$p ~propは、~font族から[ `normal$v1, …`-condensed^v, …`-expanded^v ]の書体を選定する。 最も幅狭なものから最も幅広なものまで,順に、次の絶対的~keyword値をとり得る: ◎ The font-stretch property selects a normal, condensed, or expanded face from a font family. Absolute keyword values have the following ordering, from narrowest to widest:

  • `ultra-condensed@v
  • `extra-condensed@v
  • `condensed@v
  • `semi-condensed@v
  • `normal@v1
  • `semi-expanded@v
  • `expanded@v
  • `extra-expanded@v
  • `ultra-expanded@v

所与の字幅に対する書体が存在しない下では:[ `normal$v1/`*-condensed^v 値は より幅狭な書体 ]に, [ 他の値は より幅広な書体 ]に対応付けられる。 逆に言えば:[ `*-expanded^v 値は より幅広な書体 ]に, [ 他の値は より幅狭な書体 ]に対応付けられる。 下の図に、種々の字幅を包含している~font族に対し, 9 種の `font-stretch$p ~prop設定のそれぞれが~fontの選定に与える影響を示す — 灰色のものは、字幅に対応する書体が存在せず,異なる字幅で代用されることを指示する: ◎ When a face does not exist for a given width, normal or condensed values map to a narrower face, otherwise a wider face. Conversely, expanded values map to a wider face, otherwise a narrower face. The figure below shows how the nine font-stretch property settings affect font selection for font family containing a variety of widths, grey indicates a width for which no face exists and a different width is substituted:

`universwidths^png
`condensed$v, `normal$v1, `expanded$v の字幅の書体を伴う~font族に対する字幅の対応付け ◎ Width mappings for a font family with condensed, normal and expanded width faces

`~font~stretchの~animation@ は,離散的なステップにより補間される。 補間は、順序付けられた一連の値が 等間隔に並ぶ実数であるかのように行われる。 補間の結果は、最も近い値に丸められる — 隣り合う 2 つの値のちょうど中間の値は,上の~listの中で より後に示されている値に向けて丸められる。 ◎ Animation of font stretch: Font stretch is interpolated in discrete steps. The interpolation happens as though the ordered values are equally spaced real numbers. The interpolation result is rounded to the nearest value, with values exactly halfway between two values rounded towards the later value in the list above.

3.4. ~font~style: `font-style^p ~prop

`●名^ `font-style@p `●値^ `normal$v1 | `italic$v | `oblique$v `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

`font-style$p ~propは,[ ~italicや~oblique ]の書体の選定を可能にする。 一般に、~italic形は生来的に筆記的である一方,~oblique書体は 概して~regular書体の斜傾~versionである。 ~oblique書体は、~regular書体の~glyphを人工的に傾けて模造されることもある。 ◎ The font-style property allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face. Oblique faces can be simulated by artificially sloping the glyphs of the regular face. Compare the artificially sloped renderings of Palatino "a" and Baskerville "N" in grey with the actual italic versions:

人工的に斜傾にされた[ `Palatino^F `a^c と `Baskerville^F `N^c ](灰色で示される)と, 実際の~italic~versionとの,描画の比較:

`realvsfakeitalics^png
人工的な斜傾と本物の~italicの比較対照 ◎ Artificial sloping versus real italics

各種~値の意味は,次で与えられる: ◎ Values have the following meanings:

`normal@v1
~italic, ~obliqueのいずれでもない,~normal(“通常”)書体に分類される書体を選定する。 ◎ selects a face that is classified as a normal face, one that is neither italic or obliqued
`italic@v
~italic書体として~labelされている~fontを, それが~~無いときは~oblique書体を,選定する。 ◎ selects a font that is labeled as an italic face, or an oblique face if one is not
`oblique@v
~oblique書体(斜字体/斜体)として~labelされている~fontを, それが~~無いときは~italic書体を,選定する。 ◎ selects a font that is labeled as an oblique face, or an italic face if one is not

~italicと~obliqueのいずれの書体も可用でない場合、~oblique書体は,[ 非~oblique書体を用いた,人工的な~oblique化~演算を伴う描画 ]により合成され得る。 これらの人工的な~oblique化~書体の利用は、 `font-synthesis$p ~propにより不能化できる。 ~oblique化~演算についての詳細は、明示的に定義されない。 ◎ If no italic or oblique face is available, oblique faces can be synthesized by rendering non-obliqued faces with an artificial obliquing operation. The use of these artificially obliqued faces can be disabled using the font-synthesis property. The details of the obliquing operation are not explicitly defined.

注記: 作者は、~Cyrillicのような用字系においては、合成-による~~近似が形状として~italic形と著しく異なり,相応しくない場合もあることを意識しておくべきである。 合成的な~versionに依拠するよりも,実際の~italic~fontを用いる方が、常により良いものになる。 ◎ Note: Authors should also be aware that synthesized approaches may not be suitable for scripts like Cyrillic, where italic forms are very different in shape. It is always better to use an actual italic font rather than rely on a synthetic version.

多くの用字系では、~normal書体で描画される~text内に筆記的~形を混在させる慣習がない。 ~Chinese/~Japanese/~Korean の~fontは、ほとんど常に,~italicや~obliqueの書体を欠いている。 また、用字系の混在を~supportする~fontでは、~italic書体の中で~supportされる~glyphの集合から,~Arabicなどの特定の用字系が省略されることがある。 ~UAは、`~system~font~fallback$を実装する際には,書体に渡る`文字map$についての前提の置き方について注意深くあるべきである。 ◎ Many scripts lack the tradition of mixing a cursive form within text rendered with a normal face. Chinese, Japanese and Korean fonts almost always lack italic or oblique faces. Fonts that support a mixture of scripts will sometimes omit specific scripts such as Arabic from the set of glyphs supported in the italic face. User agents should be careful about making character map assumptions across faces when implementing support for system font fallback.

3.5. ~font~size: `font-size^p ~prop

`●名^ `font-size@p `●値^ `absolute-size$t | `relative-size$t | `length$vt | `percentage$vt `●初^ `medium$v `●適^ すべての要素 `●継^ される `●百^ 親~要素の~font~sizeに相対的◎refer to parent element’s font size `●媒^ 視覚的 `●算^ 絶対的~長さ `●ア^ `length^t 値として◎as length `●表終^

この~propは、~fontの~glyphの,欲される高さを指示する。 ~scalableな~fontに対しては、`font-size^p は,~fontの EM 単位に適用される拡縮率になる。 (ある種の~glyphは,その EM ~boxから外側にはみ出し得ることに注意。) ~scalableでない~fontに対しては、`font-size^p は,絶対的~単位に変換された上で[ ~fontにおいて宣言されている~font-size ]に対する照合-が~~試みられる — 両者の値に同じ絶対的な座標系が用いられる下で。 各種~値の意味は,次で与えられる: ◎ This property indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values. Values have the following meanings:

`absolute-size@t

一連の `absolute-size^t ~keywordは、[ ~UAにより算出され, 保たれる[ 一連の~font~sizeからなる一覧 — 以下, `~size表@ と記す ]]の中の,ある~entryを指す。 次の値をとり得る: ◎ An <absolute-size> keyword refers to an entry in a table of font sizes computed and kept by the user agent. Possible values are:

`xx-small$v | `x-small$v | `small$v | `medium$v | `large$v | `x-large$v | `xx-large$v
`relative-size@t

`relative-size^t による~keywordは、[ `~size表$と, 親~要素の `font-size$p の算出値 ]に相対的に解釈される。 次の値をとり得る: ◎ A <relative-size> keyword is interpreted relative to the table of font sizes and the computed font-size of the parent element. Possible values are:

`larger@v | `smaller@v
例えば,親~要素の~font~sizeが `medium^v の場合、値 `larger^v は、現在の要素の~font~sizeを `large^v に設定することになる。 親~要素の~sizeが,`~size表$の~entryに近い値でない場合、~UAは,`~size表$の各~entryの合間を補間するか, または 最も近いものへ丸めるか,いずれを選んでもよい。 ~UAは、数による値が~keywordを超えるときには,`~size表$に値を外挿する必要が生じ得る。 ◎ For example, if the parent element has a font size of medium, a value of larger will make the font size of the current element be large. If the parent element’s size is not close to a table entry, the user agent is free to interpolate between table entries or round off to the closest one. The user agent may have to extrapolate table values if the numerical value goes beyond the keywords.
`length$t
長さ値は,(`~size表$に依存しない)絶対的~font~sizeを指定する。 負の長さは無効。 ◎ A length value specifies an absolute font size (independent of the user agent’s font table). Negative lengths are invalid.
`percentage$t
百分率~値は、親~要素の~font~sizeに相対的な,絶対的~font~sizeを指定する。 [ 百分率や `em^u ]による値の利用は、~stylesheetを,より頑健で~cascade可能なものにする。 負の百分率は無効。 ◎ A percentage value specifies an absolute font size relative to the parent element’s font size. Use of percentage values, or values in ‘em’s, leads to more robust and cascadable style sheets. Negative percentages are invalid.

次の一覧に、絶対的~sizeの拡縮率を[ HTML ~heading / 絶対的~font-size ]に対応付けるための,~UAへの指針を提供する。 値 `medium^v は,基準になる中央~値として用いられる。 ~UAは、異なる~fontや異なる種類の表示~機器のそれぞれに対し,これらの値をより精緻に~~調整しても~MAY。 ◎ The following table provides user agent guidelines for the absolute-size scaling factor and their mapping to HTML heading and absolute font-sizes. The medium value is used as the reference middle value. The user agent may fine-tune these values for different fonts or different types of display devices.

`absolute-size$t `xx-small@v `x-small@v `small@v `medium@v `large@v `x-large@v `xx-large@v  
拡縮率◎scaling factor 3/53/48/916/53/22/13/1
HTML ~heading◎HTML headings h6 h5h4h3h2h1 
HTML ~font~size◎HTML font sizes 1 234567

注記: 可読性を保つため、~UAは、この指針を適用する下でも,~computer表示~上で[ EM 単位あたり 9 機器~画素 ]を下回るような~font-sizeは、創出しないようにするべきである。 ◎ Note: To preserve readability, an UA applying these guidelines should nevertheless avoid creating font-size resulting in less than 9 device pixels per EM unit on a computer display.

注記: CSS1 においては、隣の~sizeに~~相対的な拡縮率には 1.5 が示唆されていたが,利用者体験から,大き過ぎるものと判明した。 CSS2 においては、~computer~screenのために示唆される,隣の~sizeに~~相対的な拡縮率は 1.2 であったが、依然として,小さい~sizeにおいて問題があった。 新たな拡縮率は、可読性をより良くするため,各~sizeの合間ごとに変わり得る。 ◎ Note: In CSS1, the suggested scaling factor between adjacent indexes was 1.5 which user experience proved to be too large. In CSS2, the suggested scaling factor for computer screen between adjacent indexes was 1.2 which still created issues for the small sizes. The new scaling factor varies between each index to provide a better readability.

この~propの実効値は、[ `font-size-adjust$p 上の[ 数による値 ]と, 可用でない~font~sizeの~~存在 ]により,算出値から異なり得る。 ◎ The actual value of this property may differ from the computed value due a numerical value on font-size-adjust and the unavailability of certain font sizes.

子~要素は `font-size$p の算出値を継承する(さもなければ、 `font-size-adjust$p による効果は~~複雑になるであろう)。 ◎ Child elements inherit the computed font-size value (otherwise, the effect of font-size-adjust would compound).

p { font-size: 12pt; }
blockquote { font-size: larger }
em { font-size: 150% }
em { font-size: 1.5em }

3.6. 相対的~sizing: `font-size-adjust^p ~prop

`●名^ `font-size-adjust@p `●値^ `none$v1 | `number$vt `●初^ `none$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ `number^t 値として◎as number `●表終^

所与のどの~font~sizeに対しても、[ 見かけ上の~size ]と[ ~textの判読し易さ ]は,~font間に渡り様々である。 ~Latinや~Cyrillicなどの,大小文字を区別する用字系においては、小文字の,対応する大文字に相対的な高さが、判読し易さを決定する要因の一つになる。 この比率は、一般に `~aspect値@ と呼ばれている。 精確には、~fontの~x-heightを~font~sizeで割算した結果として定義される。 ◎ For any given font size, the apparent size and legibility of text varies across fonts. For scripts such as Latin or Cyrillic that distinguish between upper and lowercase letters, the relative height of lowercase letters compared to their uppercase counterparts is a determining factor of legibility. This is commonly referred to as the aspect value. Precisely defined, it is equal to the x-height of a font divided by the font size.

~font~fallbackが生じる状況~下では、~fallback~fontが,欲された~font族と同じ`~aspect値$を共有しないかもしれず、従って,読み難くなることもある。 `font-size-adjust$p ~propは、~font~fallbackが生じたときでも ~textの可読性を保たせる方法を与える。 これは、~font-sizeを[ その~x-heightが,用いられる~fontに関わらず同じになる ]ように調整することにより行われる。 ◎ In situations where font fallback occurs, fallback fonts may not share the same aspect value as the desired font family and will thus appear less readable. The font-size-adjust property is a way to preserve the readability of text when font fallback occurs. It does this by adjusting the font-size so that the x-height is the same regardless of the font used.

下に定義される~styleは,欲される~font族として `Verdana^F を定義するが、それが可用でない場合は,`Futura^F または `Times^F が用いられることになる: ◎ The style defined below defines Verdana as the desired font family, but if Verdana is not available Futura or Times will be used.

p {
    font-family: Verdana, Futura, Times;
}

<p>Lorem ipsum dolor sit amet, ...</p>

`Verdana^F の`~aspect値$は比較的~高く,小文字は大文字に比して背が高いので、小~sizeの~textは より判読し易く現れる。 `Times^F の`~aspect値$はより低いので、~fallbackが生じた場合,小~sizeの~textは `Verdana^F より判読し難くなる。 ◎ Verdana has a relatively high aspect value, lowercase letters are relatively tall compared to uppercase letters, so at small sizes text appears legible. Times has a lower aspect value and so if fallback occurs, the text will be less legible at small sizes than Verdana.

これらの~fontによる~text描画を比較した様子を下に示す。 各~縦列の~textは,左から順に `Verdana^F, `Futura^F, `Times^F により描画されている。 `font-size^p 値は,各段ごとに一定であるが、下半分においては,各~縦列に渡る~x-heightを保つために[ 実際の~font~sizeを調整する `font-size-adjust$p ~prop ]も設定されている。 最上段と最下段には ~x-heightの相違を示す,赤線が引かれている。 下半分では、どの列の小さい~textも,判読し易さが比較的 保たれている点に注目。 ◎ How text rendered in each of these fonts compares is shown below, the columns show text rendered in Verdana, Futura and Times. The same font-size value is used across cells within each row and red lines are included to show the differences in x-height. In the upper half each row is rendered in the same font-size value. The same is true for the lower half but in this half the font-size-adjust property is also set so that the actual font size is adjusted to preserve the x-height across each row. Note how small text remains relatively legible across each row in the lower half.

`fontsizeadjust^png
`font-size-adjust$p の利用を伴わない~text(上半分)と伴う~text(下半分) ◎ Text with and without the use of font-size-adjust

この~propは、作者が,要素における`~aspect値$を指定できるようにする。 それは、代用されたかどうかに関係なく,第一~候補の~fontの~x-heightを実質的に保たせる。 各種~値の意味は,次で与えられる: ◎ This property allows authors to specify an aspect value for an element that will effectively preserve the x-height of the first choice font, whether it is substituted or not. Values have the following meanings:

`none@v1
~fontの~x-heightは保たれない ◎ Do not preserve the font’s x-height.
`number$t

`~aspect値$を指定する — それは、調整~済み~font~sizeの計算~公式に用いられる: ◎ Specifies the aspect value used in the calculation below to calculate the adjusted font size:

`c^var = ( `a^var ÷ `A^var ) × `s^var

ここで:

  • `s^var = `font-size$p の値
  • `a^var = `font-size-adjust$p ~propに指定された`~aspect値$
  • `A^var = ~fontの実際の`~aspect値$
  • `c^var = `font-size$p の調整~後の使用値
c  =  ( a / a' ) s
where:
s  =  font-size value
a  =  aspect value as specified by the 'font-size-adjust' property
a' =  aspect value of actual font
c  =  adjusted font-size to use
負の値は無効。 ◎ Negative values are invalid.
この値は,選定されたどの~fontにも適用されるが、典型的な用法においては,[ ~font族~名~listの中の最初の~fontの`~aspect値$ ]に基づくべきである。 これが正確aに指定された下では、上の公式の中の項 ( `a^var ÷ `A^var ) は,最初の~fontに対しては 1 になり,調整は実質的に生じない。 値が正確aに指定されていない場合、[ `font-size-adjust$p を~supportしない 古い~UA ]においては,[ 族~listの最初の~fontを用いて描画される~text ]の表示が異なってくる。 ◎ This value applies to any font that is selected but in typical usage it should be based on the aspect value of the first font in the font-family list. If this is specified accurately, the (a/a') term in the formula above is effectively 1 for the first font and no adjustment occurs. If the value is specified inaccurately, text rendered using the first font in the family list will display differently in older user agents that don’t support font-size-adjust.

`font-size-adjust$p の値は, `font-size$p の使用値に影響するが、算出値には影響しない。 それは、[ `ex^u や `ch^u ]などの[ `可用な最初の~font$の~font計量に基づく,相対~単位 ]の~sizeに影響するが,`em^u 単位の~sizeには影響しない。 数値による `line-height$p は, `font-size$p の算出値を参照rするので、 `font-size-adjust$p は,`line-height$p の使用値には影響しない。 ◎ The value of font-size-adjust affects the used value of font-size but does not affect the computed value. It affects the size of relative units that are based on font metrics of the first available font such as ex and ch but does not affect the size of em units. Since numeric values of line-height refer to the computed size of font-size, font-size-adjust does not affect the used value of line-height.

注記: ~CSSにおいては、作者は `line-height$p を `font-size$p の倍数として指定することが多い。 `font-size-adjust$p ~propは, `font-size$p の使用値に影響するので、作者は, `font-size-adjust$p を用いるときは 行高の設定にも注意を払うべきである。 この状況~下では、行高の設定を狭小にし過ぎると,~text行が互いに重なり合うおそれがある。 ◎ Note: In CSS, authors often specify line-height as a multiple of the font-size. Since the font-size-adjust property affects the used value of font-size, authors should take care setting the line height when font-size-adjust is used. Setting the line height too tightly can result in overlapping lines of text in this situation.

作者は、[ 同じ内容, かつ `font-size-adjust$p ~propが異なる ]ような2つの区間を比較することにより,所与の~fontに対する`~aspect値$を計算できる。 同じ `font-size^p が用いられた下での,2つの区間は、その~fontに対する `font-size-adjust$p 値が正確aであるときに,合致することになる。 ◎ Authors can calculate the aspect value for a given font by comparing spans with the same content but different font-size-adjust properties. If the same font-size is used, the spans will match when the font-size-adjust value is accurate for the given font.

~fontの`~aspect値$を決定するために,境界を伴う 2 つの区間を用いる例。 両~区間( `span^e )に対し, `font-size$p は同じであるが、右側の `span^e には `font-size-adjust$p ~propも指定されている。 値 0.5 から始めて、2つの普通字を囲む境界が揃うまで,`~aspect値$を調整する: ◎ Two spans with borders are used to determine the aspect value of a font. The font-size is the same for both spans but the font-size-adjust property is specified only for the right span. Starting with a value of 0.5, the aspect value can be adjusted until the borders around the two letters line up.

p {
    font-family: Futura;
    font-size: 500px;
}

span {
    border: solid 1px red;
}

.adjust {
    font-size-adjust: 0.5;
}

<p><span>b</span><span class="adjust">b</span></p>
`beforefontsizeadjust^png
`Futura^F, `~aspect値$ 0.5 ◎ Futura with an aspect value of 0.5

図右の~boxは,図左のものより少しばかり大きいので、この~fontの`~aspect値$は, 0.5 より幾分~小さい。 2つの~boxが揃うまで値を調整すれば~~正確な値が得られる。 ◎ The box on the right is a bit bigger than the one on the left, so the aspect value of this font is something less than 0.5. Adjust the value until the boxes align.

3.7. ~font略式: `font^p ~prop

`●名^ `font@p `●値^ [ [ <‘`font-style$p’> || `font-variant-css21$t || <‘`font-weight$p’> || <‘`font-stretch$p’> ]? <‘`font-size$p’> [ / <‘`line-height$p’> ]? <‘`font-family$p’> ] | `caption$v | `icon$v | `menu$v | `message-box$v | `small-caption$v | `status-bar$v `●初^ 個々の~propを見よ `●適^ 個々の~propを見よ `●継^ 個々の~propを見よ `●百^ 個々の~propを見よ `●媒^ 個々の~propを見よ `●算^ 個々の~propを見よ `●ア^ 個々の~propを見よ `●表終^

`font$p ~propは、下に述べるものを除く,~stylesheetの中の同じ場所における[ `font-style$p, `font-variant$p, `font-weight$p, `font-stretch$p, `font-size$p, `line-height$p, `font-family$p ]に対する設定のための,略式~propである。 ただし, `font-variant$p ~propに対する値は、 CSS 2.1 にて~supportされるものに限られる — この仕様にて追加されている[ `font-variant$p のどの値 ]も, `font$p 略式~propにおいては利用できない: ◎ The font property is, except as described below, a shorthand property for setting font-style, font-variant, font-weight, font-stretch, font-size, line-height, and font-family at the same place in the stylesheet. Values for the font-variant property may also be included, but only those supported in CSS 2.1; none of the font-variant values added in this specification can be used in the font shorthand:

`font-variant-css21@t
      = [ `font-variant-caps^p0`normal$v1 | `small-caps$v ]

加えて、それは `font-size-adjust$p, `font-kerning$p, `font-language-override$p に対する略式~propでもある一方で,構文の中では これらの値を指定できないので、これらは単に,それぞれの初期値に再設定される。 ◎ Additionally, it is a shorthand for font-size-adjust, font-kerning, and font-language-override, but as these cannot be specified in the syntax, it merely resets these to their initial values.

この~propの構文は、~fontに関係する複数の~propを設定するための,伝統的~typographic上の略式~記法に基づく。 ◎ The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.

p { font: 12pt/14pt sans-serif }
p { font: 80% sans-serif }
p { font: x-large/110% "new century schoolbook", serif }
p { font: bold italic large Palatino, serif }
p { font: normal small-caps 120%/120% fantasy }
p { font: condensed oblique 12pt "Helvetica Neue", serif; }

2 番目の規則における~font~size百分率~値( `80%^v )は、親~要素の `font-size$p の算出値を参照rする。 3 番目の規則における行高~百分率( `110%^v )は、要素~自身の~font~sizeを参照rする。 ◎ In the second rule, the font size percentage value (80%) refers to the computed font-size of the parent element. In the third rule, the line height percentage (110%) refers to the font size of the element itself.

最初の 3 個の規則は[ `font-variant$p と `font-weight$p ]を明示的に指定しないので、これらの~propは,それらの初期値( `normal^v )を受取る。 ~font族~名 `"new century schoolbook"^v は~spaceを包含しているので、引用符で括られていることに注意。 4 番目の規則は,[ `font-weight$p を `bold$v, `font-style$p を `italic$v ]に設定し, `font-variant$p を暗黙的に `font-variant^p0`normal$v1 に設定する ◎ The first three rules do not specify the font-variant and font-weight explicitly, so these properties receive their initial values (normal). Notice that the font family name "new century schoolbook", which contains spaces, is enclosed in quotes. The fourth rule sets the font-weight to bold, the font-style to italic, and implicitly sets font-variant to normal.

5 番目の規則は[ `font-variant$p ( `small-caps$v ), `font-size$p (親の~font~sizeの 120% ), `line-height$p (~font~sizeの 120% ), `font-family$p ( `fantasy$v ) ]を設定する。 従って,~keyword `normal^v は残りの 2 つの~prop[ `font-style$p, `font-weight$p ]に適用される。 ◎ The fifth rule sets the font-variant (small-caps), the font-size (120% of the parent’s font size), the line-height (120% of the font size) and the font-family (fantasy). It follows that the keyword normal applies to the two remaining properties: font-style and font-weight.

6 番目の規則は[ `font-style$p, `font-stretch$p, `font-size$p, `font-family$p ]を設定し,他の~font~propは それぞれの初期値に設定させておく。 ◎ The sixth rule sets the font-style, font-stretch, font-size, and font-family, the other font properties being set to their initial values.

`font-stretch$p ~propは CSS 2.1 では定義されていないので、作者は, `font$p 規則~内で `font-stretch$p 値を用いる際には,古い~UAとも互換な予備の~versionを含めるべきである: ◎ Since the font-stretch property was not defined in CSS 2.1, when using font-stretch values within font rules, authors should include an extra version compatible with older user agents:

p {
  font: 80% sans-serif;   /* 古い~UA用
◎
for older user agents
 */
  font: condensed 80% sans-serif;
}

次の値は~system~fontを参照rする: ◎ The following values refer to system fonts:

`caption@v
~caption付きの~control(例えば,~button, ~drop-down, 等々)のために用いられる~font ◎ The font used for captioned controls (e.g., buttons, drop-downs, etc.).
【 利用中のブラウザでは、このように呈示される。 】
`icon@v
~iconに~labelを貼るために用いられる~font ◎ The font used to label icons.
【 利用中のブラウザでは、このように呈示される。 】
`menu@v
~menu(例えば~drop-down~menuや~menu~list)に用いられる~font ◎ The font used in menus (e.g., dropdown menus and menu lists).
【 利用中のブラウザでは、このように呈示される。 】
`message-box@v
~dialog-boxに用いられる~font ◎ The font used in dialog boxes.
【 利用中のブラウザでは、このように呈示される。 】
`small-caption@v
小さな~controlに~labelを貼るために用いられる~font ◎ The font used for labeling small controls.
【 利用中のブラウザでは、このように呈示される。 】
`status-bar@v
~windowの~status-barに用いられる~font ◎ The font used in window status bars.
【 利用中のブラウザでは、このように呈示される。 】

~system~fontは一体としてのみ設定し得る。 すなわち,[ ~font族, ~size, ~weight, ~style, 等々 ]は、すべて同時に設定される。 しかる後,欲されるならば、これらの値は個々に改められ得る。 指示された特徴を備える~fontが,所与の~platform上に存在しない場合、~UAは,適当に代用するか(例えば `small-caption$v ~fontに対しては, `caption$v ~fontの より小さい~versionを用いるなど),または ~UAによる既定の~fontで代用するべきである。 ~regular~fontに対しては、~system~fontであるならば、個々の~propのうち,[ OS にて可用な利用者~選好 ]の一部でないものについては,それぞれの初期値に設定されるべきである。 ◎ System fonts may only be set as a whole; that is, the font family, size, weight, style, etc. are all set at the same time. These values may then be altered individually if desired. If no font with the indicated characteristics exists on a given platform, the user agent should either intelligently substitute (e.g., a smaller version of the caption font might be used for the small-caption font), or substitute a user agent default font. As for regular fonts, if, for a system font, any of the individual properties are not part of the operating system’s available user preferences, those properties should be set to their initial values.

これが、この~propが “ほぼ” 略式~propとされている理由である: ~system~fontは、`font-family$p 自身ではなく,この~propを通してのみ指定し得るので、作者は `font$p により[ その一連の下位propの総和 ]より多くのことを行える。 一方で、 `font-weight$p などの個々の~propには,依然として~system~fontから採られる値が与えられ、独立に変わり得る。 ◎ That is why this property is "almost" a shorthand property: system fonts can only be specified with this property, not with font-family itself, so font allows authors to do more than the sum of its subproperties. However, the individual properties such as font-weight are still given values taken from the system font, which can be independently varied.

上に挙げられた~system~font用の~keywordは,最初に現れるときにのみ~keywordとして扱われ、他の所に位置している場合は,~font族~名の一部として扱われることに注意: ◎ Note that the keywords used for the system fonts listed above are only treated as keywords when they occur in the initial position, in other positions the same string is treated as part of the font family name:

  font: menu;        /* ~system~menuのための~font設定群を利用
◎
use the font settings for system menus
 */
  font: large menu;  /* "menu" という名前の~font族を利用
◎
use a font family named "menu"
 */
button { font: 300 italic 1.3em/1.7em "FB Armada", sans-serif }
button p { font: menu }
button p em { font-weight: bolder }

例えば、特定0の~system上に[ ~drop-down~menuのために用いられる~font ]が居合わせていて,それが[ 9-point `Charcoal^F, ~weight 600 ]を伴うものであったとするなら、 `button^e 要素の子孫の `p^e 要素は、次の規則が~~有効であったかのように表示されることになる: ◎ If the font used for dropdown menus on a particular system happened to be, for example, 9-point Charcoal, with a weight of 600, then P elements that were descendants of BUTTON would be displayed as if this rule were in effect:

button p { font: 600 9pt Charcoal }

`font$p 略式~propは,明示的に与えられていない どの~propの値も,その初期値に再設定するので、これは,次の宣言と同じ効果になる: ◎ Because the font shorthand resets to its initial value any property not explicitly given a value, this has the same effect as this declaration:

button p {
  font-style: normal;
  font-variant: normal;
  font-weight: 600;
  font-size: 9pt;
  line-height: normal;
  font-family: Charcoal
}

3.8. 書体の合成を制御する: `font-synthesis^p ~prop

`●名^ `font-synthesis@p `●値^ `none$v1 | [ `weight$v || `style$v ] `●初^ `weight$v `style$v `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

この~propは、~font族が~bold/~italicの書体を欠いているときに,[ ~UAによる合成的な~bold/~oblique書体 ]を許容するかどうかを制御する: ◎ This property controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.

`weight@v
~font族が包含しない `font-weight$p が要請された場合、~UAは,~font族~内に存在する~weightから要請された~weightを合成して~MAY。 ◎ If a font-weight is requested that the font family does not contain, the user agent may synthesize the requested weight from the weights that do exist in the font family.
これが指定されていない場合、~UAは,~missing~weightを合成しては~MUST_NOT。 ◎ If this is not specified, the user agent must not synthesize missing weights.
`style@v
~font族が包含しない `font-style$p が要請された場合、~UAは,~font~族~内の `normal^v 書体から要請された~styleを合成して~MAY。 ◎ If a font-style is requested that the font family does not contain, the user agent may synthesize the requested style from the normal face in the font family.
これが指定されていない場合、~UAは,~missing~styleを合成しては~MUST_NOT。 ◎ If this is not specified, the user agent must not synthesize missing styles.
`none@v1
~UAは、~missing書体を合成しては~MUST_NOT。 ◎ The user agent must not synthesize any missing faces.

注記: 書体が~missingの(かつ合成されていない)ときは、~font~fallbackが生じる。 ◎ Note: When a face is missing (and not synthesized), font fallback occurs.

次の~style規則は、合成的に~oblique化された~Arabic~書体の利用を不能化する: ◎ The style rule below disables the use of synthetically obliqued Arabic:

*:lang(ar) { font-synthesis: none; }

4. ~font資源

4.1. `font-face^at 規則

`font-face@at 規則は、[ 必要時に自動的に~fetchされた上で作動化される ]ような~fontに向けて,~linkを張れるようにする。 これにより,作者は、~fontの候補を[ 所与の~platform上で可用な~fontの集合 ]に限ることなく,[ 頁のための~design目標に近く合致する~font ]を選定できるようになる。 [ この規則が与える,一連の~font記述子からなる集合 ]は、個々の書体の~style特徴に沿うような,~localの または外部の~font資源の所在を定義する。 複数の `font-face$at 規則を用いて,[ 種々の書体を備える~font族 ]を構築することもできる。 ~UAは、[ ~CSS~font照合~規則 ]の利用を通して,[ 所与の~text断片に必要な書体 ]のみを,選択的に~downloadできるようになる。 ◎ The @font-face rule allows for linking to fonts that are automatically fetched and activated when needed. This allows authors to select a font that closely matches the design goals for a given page rather than limiting the font choice to a set of fonts available on a given platform. A set of font descriptors define the location of a font resource, either locally or externally, along with the style characteristics of an individual face. Multiple @font-face rules can be used to construct font families with a variety of faces. Using CSS font matching rules, a user agent can selectively download only those faces that are needed for a given piece of text.

`font-face$at 規則は[ `font-face$at at-~keyword, 記述子~宣言の~block ]の並びからなる。 文法においては、この仕様は,次の生成規則を定義する: ◎ The @font-face rule consists of the @font-face at-keyword followed by a block of descriptor declarations. In terms of the grammar, this specification defines the following productions:

`font_face_rule@g
  : `FONT_FACE_SYM$g `S^g* '{' `S^g* `descriptor_declaration$g? [ ';' `S^g* `descriptor_declaration$g? ]* '}' `S^g*
  ;

`descriptor_declaration@g
  : `property^g ':' `S^g* `expr^g
  ;

`S^g および `property^g, `expr^g は、 `CSS21$r の ~scanner および 文法 にて定義される。

次の新たな定義が【~scannerに】導入される: ◎ The following new definitions are introduced:

-    -|\\0{0,4}2d(\r\n|[ \t\r\n\f])?
F    f|\\0{0,4}(46|66)(\r\n|[ \t\r\n\f])?

次の新たな~tokenが導入される: ◎ The following new token is introduced:

@{F}{O}{N}{T}{-}{F}{A}{C}{E} {return `FONT_FACE_SYM@g;}

`font-face$at 規則は、すべての~font記述子に対し,それぞれの値を[ 暗黙的に, または明示的に ]指定する。 規則の中で値が明示的に与えられていないものについては、[ この仕様の中で,それぞれの記述子の定義に挙げられている初期値 ]を値にとる。 これらの記述子は、もっぱら,[ それが定義される `font-face$at 規則の文脈 ]の下でのみ適用され,文書~言語の要素に【直接的に】適用されるものではない。 記述子がどの要素に適用されるかや,値が子~要素に継承されるかどうかの観念は存在しない。 所与の `font-face$at 規則の中に,同じ名前の記述子が複数回~現れたときは、最後の記述子~宣言のみが用いられ,その記述子より前に現れている宣言は すべて無視される。 ◎ Each @font-face rule specifies a value for every font descriptor, either implicitly or explicitly. Those not given explicit values in the rule take the initial value listed with each descriptor in this specification. These descriptors apply solely within the context of the @font-face rule in which they are defined, and do not apply to document language elements. There is no notion of which elements the descriptors apply to or whether the values are inherited by child elements. When a given descriptor occurs multiple times in a given @font-face rule, only the last descriptor declaration is used and all prior declarations for that descriptor are ignored.

`Gentium^F と称される~downloadable~fontを用いるためには: ◎ To use a downloadable font called Gentium:

@font-face {
  font-family: Gentium;
  src: url(http://example.com/fonts/Gentium.woff);
}

p { font-family: Gentium, serif; }

~UAは、 `Gentium^F を~downloadした上で,[ `p^e 要素~内の~text ]の描画-時に,それを用いることになる。 何らかの理由で~fontを給する~siteが可用でない場合、既定の~serif~fontが用いられることになる。 ◎ The user agent will download Gentium and use it when rendering text within paragraph elements. If for some reason the site serving the font is unavailable, the default serif font will be used.

所与の `font-face$at 規則の集合が,[ これらの規則を包含する文書において可用な~fontの集合 ]を定義する。 ~font照合を終えたときは、これらの規則を用いて定義される~fontが,[ ~system上の他の可用な~font ]の前に考慮される。 ◎ A given set of @font-face rules define a set of fonts available for use within the documents that contain these rules. When font matching is done, fonts defined using these rules are considered before other available fonts on a system.

~downloadされた~fontは、それらを参照する文書においてのみ可用である。 これらの~fontを作動化させる処理は、それらを[ 同じ~fontへ直接的に~linkしていない他の~appや文書 ]からも可用にしては~MUST_NOT。 ~UAの実装者は、[ ~downloadされた~fontを[ `~system~font~fallback$手順の下で,可用な~fontが他に存在しない ]ような他の文書 ]内の文字の描画-時に用いること ]が簡便であると考えるかもしれないが、ある頁の内容が他の頁に影響できることになれば,攻撃者から何らかの攻撃手段に利用され得ることになり、~securityに穴を開けかねない。 これらの制約は,~cachingの挙動には影響しない — ~fontは、他の~web資源が~cacheされるのと同じ仕方で~cacheされる。 ◎ Downloaded fonts are only available to documents that reference them. The process of activating these fonts must not make them available to other applications or to documents that don’t directly link to the same font. User agent implementers might consider it convenient to use downloaded fonts when rendering characters in other documents for which no other available font exists as part of the system font fallback procedure. However, this would cause a security leak since the contents of one page would be able to affect other pages, something an attacker could use as an attack vector. These restrictions do not affect caching behavior, fonts are cached the same way other web resources are cached.

この~at-ruleは、~CSSの前方互換 構文解析規則に従う。 宣言~block内の~propと同様、~UAは,自身が~supportしない どの記述子に対しても,その宣言を無視し~MUST。 `font-face$at 規則は、[ `font-family$d, および `src$d ]記述子を要求する — これらのいずれかが見当たらない `font-face$at 規則は無効であり,全体として無視され~MUST。 ◎ This at-rule follows the forward-compatible parsing rules of CSS. Like properties in a declaration block, declarations of any descriptors that are not supported by the user agent must be ignored. @font-face rules require a font-family and src descriptor; if either of these are missing, the @font-face rule is invalid and must be ignored entirely.

~UAの~platform資源が限られているか,もしくは ~UAが~downloadable~font資源を不能化する能を実装している下では、 `font-face$at 規則は,単純に無視され~MUST。 すなわち,この仕様にて定義される[ 個々の記述子の挙動 ]は、改められるべきではない。 ◎ In cases where user agents have limited platform resources or implement the ability to disable downloadable font resources, @font-face rules must simply be ignored; the behavior of individual descriptors as defined in this specification should not be altered.

4.2. ~font族: `font-family^d 記述子

`●述^ `font-family@d `●対^ `font-face$at `●値^ `family-name$t `●初^ なし(必須) `●表終^

この記述子は、すべての[ ~CSS~font族~名の照合 ]に用いられることになる,~font族~名を定義する。 `font-face$at 規則が妥当になるためには,これが要求される。 それは,下層の~font~dataに包含されている~font族~名を上書きする。 すなわち、~font族~名が,[ 利用者~環境にて可用な~font族 ]の名前と同じである場合、これは,その下層の~font — この記述子が記されている~stylesheetを用いる文書に対する,下層の~font — を実質的に隠蔽する。 これにより,~web作者は、[ 利用者~環境に在る~font族~名 ]との競合-を気にせずに,自由に~font族~名を選べるようになる。 同様の意味で、所与の~font族~名に対し[ ~platform代用 ]が用いられては~MUST_NOT。 ◎ This descriptor defines the font family name that will be used in all CSS font family name matching. It is required for the @font-face rule to be valid. It overrides the font family names contained in the underlying font data. If the font family name is the same as a font family available in a given user’s environment, it effectively hides the underlying font for documents that use the stylesheet. This permits a web author to freely choose font-family names without worrying about conflicts with font family names present in a given user’s environment. Likewise, platform substitutions for a given font family name must not be used.

4.3. ~font参照: `src^d 記述子

`●述^ `src@d `●対^ `font-face$at `●値^ [ `url$t [format(`string$t#)]? | local(`font-face-name$t) ]# `●初^ なし(必須) `●表終^

【 原文による,値の構文には "`local( … )^v" の括りが無いが、本文の記述から推定して補完している。 】

この記述子は、~font~dataを包含している資源を指定する。 `font-face$at 規則が妥当になるためには,これが要求される。 その値は,~commaで区切られた~listであり、優先順位付けられた,一連の[ 外部~参照または[ ~localに~installされた~font書体~名 ]]からなる。 ~UAは,~fontが必要になったときに、~listされている参照の集合を走査した上で,成功裡に作動化できる最初のものを用いる。 無効な~dataを包含している~fontや, ~local~font書体が見出されないものは,無視され、~UAは~listの中の次の~fontを読込む。 ◎ This descriptor specifies the resource containing font data. It is required for the @font-face rule to be valid. Its value is a prioritized, comma-separated list of external references or locally-installed font face names. When a font is needed the user agent iterates over the set of references listed, using the first one it can successfully activate. Fonts containing invalid data or local font faces that are not found are ignored and the user agent loads the next font in the list.

~CSSにおける他の URL と同様に,URL は相対的でもよく、その場合は,[ `font-face$at 規則を包含している~stylesheet ]の所在から相対的に解決される。 SVG ~fontの場合、URL は[ SVG ~font定義を包含している文書 ]内の要素を指す — 要素~参照が省略されている場合は[ 定義されている~fontのうちの,最初のもの ]への参照が黙示される。 同様に,~font容器~形式が複数の~fontを包含し得る場合も、所与の 1 個の `font-face$at 規則に対し 読込まれる~fontは,きっかり 1 個で~MUST。 素片~識別子は、どの~fontを読込むかを指示するために用いられる。 容器~形式が素片~識別子の枠組みを定義していない場合、実装は,単純な[ 1 からの付番(例えば,最初の~fontに対しては "font-collection#1", 2 番目の~fontに対しては "font-collection#2", …等々) ]を用いるべきである。 ◎ As with other URLs in CSS, the URL may be relative, in which case it is resolved relative to the location of the style sheet containing the @font-face rule. In the case of SVG fonts, the URL points to an element within a document containing SVG font definitions. If the element reference is omitted, a reference to the first defined font is implied. Similarly, font container formats that can contain more than one font must load one and only one of the fonts for a given @font-face rule. Fragment identifiers are used to indicate which font to load. If a container format lacks a defined fragment identifier scheme, implementations should use a simple 1-based indexing scheme (e.g. "font-collection#1" for the first font, "font-collection#2" for the second font).

src: url(fonts/simple.woff);   /* ~stylesheetの所在から相対的な simple.woff を読込む
◎
load simple.woff relative to stylesheet location
 */
src: url(/fonts/simple.woff);  /* 絶対的な所在から simple.woff を読込む
◎
load simple.woff from absolute location
 */
src: url(fonts.svg#simple);    /* `id^c に simple が付与された SVG ~fontを読込む
◎
load SVG font with id "simple"
 */

外部~参照は、[ 1 個の URL, および 任意選択の形式~hint ]の並びからなる。 形式~hintは、 URL が参照する~font資源の形式について記述するものであり、いくつかの[[ 周知の~font形式 ]を~~表示する形式~文字列 ]からなる,~commaで区切られた~list( ~func-format の引数)を包含する。 適合的~UAは、その形式~hintが[ 未~support, または未知 ]の~font形式のみを指示している場合には、その~font資源の~download処理を飛ばさ~MUST。 形式~hintが供されていない場合、その~font資源を~downloadするべきである。 ◎ External references consist of a URL, followed by an optional hint describing the format of the font resource referenced by that URL. The format hint contains a comma-separated list of format strings that denote well-known font formats. Conformant user agents must skip downloading a font resource if the format hints indicate only unsupported or unknown font formats. If no format hints are supplied, the user agent should download the font resource.

/* 可能なら WOFF ~fontを読込んで,他の場合は~OpenType~fontを用いる
◎
load WOFF font if possible, otherwise use OpenType font
 */
@font-face {
  font-family: bodytext;
  src: url(ideal-sans-serif.woff) format("woff"),
       url(basic-sans-serif.ttf) format("opentype");
}

この仕様にて定義される形式~文字列: ◎ Format strings defined by this specification:

文字列◎String ~font形式◎Font Format 共通的な拡張子◎Common extensions
"`woff^v"WOFF (Web Open Font Format).woff
"`truetype^v"TrueType.ttf
"`opentype^v"OpenType.ttf, .otf
"`embedded-opentype^v"Embedded OpenType.eot
"`svg^v"SVG Font.svg, .svgz

~TrueTypeと~OpenTypeの間では共通的な用法が重複しているので、形式~hint[ `truetype^v と `opentype^v ]は,同義と見なされ~MUST — 形式~hint `opentype^v は、~fontが[ ~Postscript CFF ~style~glyph~data あるいは ~OpenType ~layout情報 ]を包含することを含意するわけではない(これについての より深い背景は 付録 A に)。 ◎ Given the overlap in common usage between TrueType and OpenType, the format hints "truetype" and "opentype" must be considered as synonymous; a format hint of "opentype" does not imply that the font contains Postscript CFF style glyph data or that it contains OpenType layout information (see Appendix A for more background on this).

作者が,所与の~fontに対し[ ~localに可用な複製が在ればそれを利用し, 無ければ~downloadする ]ことを選好する場合には、 `~func-local@ を利用できる。 ~func-local がとる引数 `font-face-name@t は、~localに~installされた,より大きな族~内で単独の~font書体を一意に識別するような,形式~特有の文字列を与える。 `font-face-name$t の構文は "`local(^css" , "`)^css" で括られた~font族~名である。 名前は、任意選択で引用符で括ることもできる。 括られていない場合、引用符で括られない族~名に対する処理ing規約に従って,名前は、`空白$で区切られた識別子の連列で~MUST — それは、識別子たちを単独の~spaceで区切って順に連結することにより,文字列に変換される。 ◎ When authors would prefer to use a locally available copy of a given font and download it if it's not, local() can be used. The locally-installed <font-face-name> argument to local() is a format-specific string that uniquely identifies a single font face within a larger family. The syntax for a <font-face-name> is a unique font face name enclosed by "local(" and ")". The name can optionally be enclosed in quotes. If unquoted, the unquoted font family name processing conventions apply; the name must be a sequence of identifiers separated by whitespace which is converted to a string by joining the identifiers together separated by a single space.

/* `Gentium^F の~regular書体
◎
regular face of Gentium
 */
@font-face {
  font-family: MyGentium;
  src: local(Gentium),    /* `Gentium^F が~localに可用なら,それを利用
◎
use locally available Gentium
 */
       url(Gentium.woff); /* 他の場合は~download
◎
otherwise, download it
 */
}

~OpenType および~TrueTypeの~fontに対しては、この文字列が合致する対象は[ ~localに可用な~fontの[ name table ]の中の[ ~Postscript名, 全部的~font名 ]]のみに限られる。 どちらの種類の名前が用いられるかは、~platformと~fontにより様々なので、作者は,~platform間に渡る適正な照合を確保するためには,これらの名前の両者を含めるべきである。 所与の~font名に対し,~platform代用が用いられては~MUST_NOT。 ◎ For OpenType and TrueType fonts, this string is used to match only the Postscript name or the full font name in the name table of locally available fonts. Which type of name is used varies by platform and font, so authors should include both of these names to assure proper matching across platforms. Platform substitutions for a given font name must not be used.

/* `Gentium^F の~bold書体 
◎
bold face of Gentium
 */
@font-face {
  font-family: MyGentium;
  src: local(Gentium Bold),    /* 全部的~font名
◎
full font name
 */
       local(Gentium-Bold),    /* ~Postscript名
◎
Postscript name
 */
       url(GentiumBold.woff);  /* 上のいずれも利用できないときは,~download
◎
otherwise, download it
 */
  font-weight: bold;
}

`font-face$at 規則が[ 1 個の族~内の単独の~font ]の特徴を指定するのとちょうど同じ様に, `~func-local$ を通して用いられる一意な名前は、~font族~全体ではなく,単独の~fontを指定する。 ~OpenType~font~dataの用語で述べるなら、~Postscript名は,[ ~fontの name table ]の中の [ nameID = 6 の name record ]の中から見出される(詳細は `OPENTYPE$r に)。 ~Postscript名が、[ OSX 上ではすべての~font, Windows 上では Postscript CFF ~font ]に対し,共通的に用いられる~keyである。 全部的~font名( nameID = 4 )は、 Windows 上では~TrueType~glyphを伴う~fontに対する一意な~keyとして用いられる。 ◎ Just as a @font-face rule specifies the characteristics of a single font within a family, the unique name used with local() specifies a single font, not an entire font family. Defined in terms of OpenType font data, the Postscript name is found in the font’s name table, in the name record with nameID = 6 (see [OPENTYPE] for more details). The Postscript name is the commonly used key for all fonts on OSX and for Postscript CFF fonts under Windows. The full font name (nameID = 4) is used as a unique key for fonts with TrueType glyphs on Windows.

複数個の[ 全部的~font名の地域化版 ]を伴うような~OpenType~fontに対しては、[ ~US~English版( Windows 上では ~langID = 0x409, Macintosh 上では ~langID = 0 )]か,あるいは~US~Englishの全部的~font名が可用でないときは[ 最初の地域化名 ]が用いられる( ~OpenType仕様では どの~fontにも最小限~US~English名は含める ことが推奨されている)。 他の全部的~font名 にも 合致させる~UA ( 例えば,現在の~system~localeが~Dutchに設定されている下での,~Dutch名への照合 )は、不適合と見なされる。 これは、[ ~Englishを選好しない, かつ[[ ~fontの~versionや OS による地域化名 ]の相違による,照合の不一致を避ける ]]ように,行われる — ~font~style名(例えば, "Bold" )は,多くの言語にて常習的に地域化されており、可用な地域化された名前からなる集合は,[ 多岐に渡る,~platformや~fontの~version ]間で様々なので。 [ 族~名( nameID = 1 )と~style名 ( nameID = 2 ) ]の連結に合致させる~UAも,不適合と見なされる。 ◎ For OpenType fonts with multiple localizations of the full font name, the US English version is used (language ID = 0x409 for Windows and language ID = 0 for Macintosh) or the first localization when a US English full font name is not available (the OpenType specification recommends that all fonts minimally include US English names). User agents that also match other full font names, e.g. matching the Dutch name when the current system locale is set to Dutch, are considered non-conformant. This is done not to prefer English but to avoid matching inconsistencies across font versions and OS localizations, since font style names (e.g. "Bold") are frequently localized into many languages and the set of localizations available varies widely across platform and font version. User agents that match a concatenation of family name (nameID = 1) with style name (nameID = 2) are considered non-conformant.

また,これにより、他の方法では参照し得ない様な,[ より大きな族に属する書体 ]への【直接的な】参照ingも可能になる。 ◎ This also allows for referencing faces that belong to larger families that cannot otherwise be referenced.

~local~fontを用いる, または 別の文書の中の SVG ~fontを参照する: ◎ Use a local font or reference an SVG font in another document:

@font-face {
  font-family: Headline;
  src: local(Futura-Medium),
       url(fonts.svg#MyGeometricModern) format("svg");
}

異なる~platform上に渡る,~local~Japanese~fontに対する別名を作成する: ◎ Create an alias for local Japanese fonts on different platforms:

@font-face {
  font-family: jpgothic;
  src: local(HiraKakuPro-W3), local(Meiryo), local(IPAPGothic);
}

より大きな族~内では合致され得ない 1 個の~font書体を参照する: ◎ Reference a font face that cannot be matched within a larger family:

@font-face {
  font-family: Hoefler Text Ornaments;
  /* は、 Hoefler Text Regular と同じ~font~propを備える【ので,従来の方法では選定できない(ような例として挙げられている?)】
◎
has the same font properties as Hoefler Text Regular
 */
  src: local(HoeflerText-Ornaments);
}

地域化された全部名は,決して合致しないので、下の~heading用~style規則を伴う文書は、特定0の~system~locale~parameterが~Finnishに設定されているかどうかに関わらず,常に既定の~serif~fontを用いて描画される: ◎ Since localized fullnames never match, a document with the header style rules below would always render using the default serif font, regardless whether a particular system locale parameter is set to Finnish or not:

@font-face {
  font-family: SectionHeader;
  src: local("Arial Lihavoitu");  /* `Arial_Bold^F に対する~Finnishの全部名は失敗するべき
◎
Finnish fullname for Arial Bold, should fail
 */
  font-weight: bold;
}

h2 { font-family: SectionHeader, serif; }

適合的~UAは、下の例の中の~font `gentium.eot^css を決して読込まないことになる — それは `src$d 記述子の最初の定義に含まれており,同じ `font-face$at 規則の中の 2 番目の定義により上書きされるので: ◎ A conformant user agent would never load the font 'gentium.eot' in the example below, since it is included in the first definition of the src descriptor which is overridden by the second definition in the same @font-face rule:

@font-face {
  font-family: MainText;
  src: url(gentium.eot);                     /* 古い~UA用
◎
for use with older user agents
 */
  src: local("Gentium"), url(gentium.woff);  /* `src^d 定義を上書きする
◎
Overrides src definition
 */
}

4.4. ~font~prop記述子: `font-style^d , `font-weight^d , `font-stretch^d 記述子

`●述^ `font-style@d `●対^ `font-face$at `●値^ `normal$v1 | `italic$v | `oblique$v `●初^ `normal$v1 `●表終^ `●述^ `font-weight@d `●対^ `font-face$at `●値^ `normal$v1 | `bold$v | `100$v | `200$v | `300$v | `400$v | `500$v | `600$v | `700$v | `800$v | `900$v `●初^ `normal$v1 `●表終^ `●述^ `font-stretch@d `●対^ `font-face$at `●値^ `normal$v1 | `ultra-condensed$v | `extra-condensed$v | `condensed$v | `semi-condensed$v | `semi-expanded$v | `expanded$v | `extra-expanded$v | `ultra-expanded$v `●初^ `normal$v1 `●表終^

これらの記述子は、~font書体の特徴を定義し,~styleを特定の書体へ合致させる処理に用いられる。 いくつかの `font-face$at 規則により定義される~font族に対しては、 ~UAは、[ 族の中の書体をすべて~downloadする ]か, または[ これらの記述子を用いて,[[ 文書の中で用いられる実際の~style ]に合致する~font書体 ]を選択的に~downloadする ]ことができる。 これらの記述子がとり得る値は、相対~keyword[ `bolder$v, `lighter$v ]が許容されないことを除いて,対応する~font~propがとり得る値と同じである。 省略された記述子については、初期値をとるものと見做される。 ◎ These descriptors define the characteristics of a font face and are used in the process of matching styles to specific faces. For a font family defined with several @font-face rules, user agents can either download all faces in the family or use these descriptors to selectively download font faces that match actual styles used in document. The values for these descriptors are the same as those for the corresponding font properties except that relative keywords are not allowed, bolder and lighter. If these descriptors are omitted, initial values are assumed.

これらの~font書体~style属性にあてがわれる値は、下層の~font~dataにより黙示される~styleに代わって用いられる。 これにより,作者は、元々の~font~dataが異なる~~形に編成されている状況~下でも,いくつかの書体を柔軟に組合せることが可能になる。 合成的な[ ~bold化/~oblique化 ]を実装する~UAは、[ ~font~dataにより黙示される~style属性 ]に基づいてではなく,~font記述子から必要と黙示された所でのみ、合成的な~stylingを適用し~MUST。 ◎ The value for these font face style attributes is used in place of the style implied by the underlying font data. This allows authors to combine faces in flexible combinations, even in situations where the original font data was arranged differently. User agents that implement synthetic bolding and obliquing must only apply synthetic styling in cases where the font descriptors imply this is needed, rather than based on the style attributes implied by the font data.

この節にて定義される~font記述子は、[ 所与の族に対し `font-face$at 規則により定義された,~fontの集合 ]から,~fontを選定するときに利用される。 ◎ The font descriptors defined in this section are used for selecting a font from within the set of fonts defined by @font-face rules for a given family.

単独の~regular書体のみを包含している族を考える: ◎ Consider a family containing a single, regular face:

@font-face {
  font-family: BaskervilleSimple;
  src: url(baskerville-regular.woff);
}

~style付けされていない~textは, `font-face$at 規則の中で定義された~regular書体を利用して表示されることになる: ◎ Unstyled text would display using the regular face defined in the @font-face rule:

`fiddlesticks-regular^png

しかしながら、~italic~textについては,別々に定義された~italic書体はないので、大多数の~UAは,~regular書体からの~glyphを 合成的に~oblique化して表示することになる: ◎ However, italic text would display in most user agents using synthetically obliqued glyphs from the regular face, since a separate italic face is not defined:

`fiddlesticks-synitalics^png

次に、実際に~italic書体が定義されている族を考える: ◎ Now consider a family for which an actual italic face is defined:

@font-face {
  font-family: BaskervilleFull;
  src: url(baskerville-regular.woff);
}

@font-face {
  font-family: BaskervilleFull;
  src: url(baskerville-italic.woff);
  font-style: italic;
}

2 番目の `font-face$at 規則は、~style属性に[ ~italic -style, ~normal -weight, ~normal -stretch ]を持つ~font資源 baskerville-italic.woff を定義する。 ~italic~textを表示するときは、~UAは,~italic~textに最も近く合致する この~fontを用いることになる。 従って、~regular書体からの~glyphを合成的に~oblique化するのではなく,書体t~designerにより~designされた~glyphを利用して、~textが表示される: ◎ The second @font-face rule defines the font resource baskerville-italic.woff to have style attributes of normal weight, normal stretch and italic style. When displaying italic text, the user agent will use this font, since it’s the closest match for italic text. Thus, the text will display using glyphs designed by a type designer rather than using synthetically obliqued glyphs from the regular face:

`fiddlesticks-italics^png

~font族の中から特定0の書体を選定するための処理についての,より完全な詳細は、 ~font~styleの照合 節に。 ◎ See §5.2 Matching font styles for more complete details of the process used to select a particular face within a font family.

4.5. 文字~範囲: `unicode-range^d 記述子

`●述^ `unicode-range@d `●対^ `font-face$at `●値^ `urange$t# `●初^ `U+0-10FFFF^v `●表終^

この記述子は、それが宣言された~font書体が~supportし得る~Unicode符号位置からなる集合を定義する。 記述子は、一連の~Unicode範囲( `urange@t )からなる,~comma区切りの~listを値にとる。 これらの範囲の和集合が、~UAが[ 所与の~textrunのために~font資源を~downloadするかどうか ]を決める際の~hintを給する,[ 符号位置の集合 ]を定義する。 ◎ This descriptor defines the set of Unicode codepoints that may be supported by the font face for which it is declared. The descriptor value is a comma-delimited list of Unicode range (<unicode-range>) values. The union of these ranges defines the set of codepoints that serves as a hint for user agents when deciding whether or not to download a font resource for a given text run.

`unicode-range$d 記述子の宣言に含まれる~Unicode範囲~listにおいては,複数の範囲が互いに重複しても~MAY。 これらの範囲の和集合が,対応している~fontから利用され得る[ 符号位置の集合 ]を定義する。 ~UAは、この集合に入らない符号位置に対し,当該の~fontを[ ~downloadしたり, あるいは用いて ]は~MUST_NOT。 ~UAは、範囲の~listを,同じ[ 符号位置の集合 ]を表現する,異なる~listに正規化しても~MAY。 ◎ Within the comma-delimited list of Unicode ranges in a unicode-range descriptor declaration, ranges may overlap. The union of these ranges defines the set of codepoints for which the corresponding font may be used. User agents must not download or use the font for codepoints outside this set. User agents may normalize the list of ranges into a list that is different but represents the same set of codepoints.

当該の~fontは[ `unicode-range$d 記述子が定義する[ 符号位置の集合 ]]の一部に対し,対応する~glyphを包含しないかもしれない。 ~fontが用いられるときの `有効~文字map@ とは、[ `unicode-range$d により定義される[ 符号位置の集合 ]]と[ ~fontの`文字map$ ]との共通部分(積集合)として,定義される。 これにより,作者は、下層の~fontが~supportする符号位置の精確な範囲について気にせずに,~supportされる範囲を おおまかな範囲で定義-できるようになる。 ◎ The associated font might not contain glyphs for the entire set of codepoints defined by the unicode-range descriptor. When the font is used, the effective character map is the intersection of the codepoints defined by unicode-range with the font’s character map. This allows authors to define supported ranges in terms of broad ranges without worrying about the precise codepoint ranges supported by the underlying font.

4.6. 混成~fontを定義するための文字~範囲の用法

同じ[ 族と[ 一連の~style記述子の値 ]]に対し,異なる `unicode-range$d を伴うような、複数の `font-face$at 規則を用いて、[ 異なる用字系のための異なる~font ]からの~glyphを混合する[ 混成~font ]を創出できる。 これを,いくつかの[[ 単独の用字系(例えば, ~Latin, ~Greek, ~Cyrillic )のための~glyph ]のみを包含する~font ]を組合せる目的に利用できる。 あるいは,作者はこれを、~fontを[ 共通的に用いられる文字のための~font ]と[ 頻出しない文字のための~font ]に区分する方法として利用できる。 ~UAは,必要な~fontのみを取り寄せることになるので、頁~帯域幅の節約にもなる。 ◎ Multiple @font-face rules with different unicode ranges for the same family and style descriptor values can be used to create composite fonts that mix the glyphs from different fonts for different scripts. This can be used to combine fonts that only contain glyphs for a single script (e.g. Latin, Greek, Cyrillic) or it can be used by authors as a way of segmenting a font into fonts for commonly used characters and less frequently used characters. Since the user agent will only pull down the fonts it needs this helps reduce page bandwidth.

同じ[ 族と[ 一連の~style記述子の値 ]]を伴う 複数の `font-face$at 規則 において, `unicode-range$d が重複している場合、それらの規則が検査される順序は,それらが定義された順序の逆順になる。 したがって、最後に定義されている規則が,所与の文字に対し最初に検査される。 ◎ If the unicode ranges overlap for a set of @font-face rules with the same family and style descriptor values, the rules are ordered in the reverse order they were defined; the last rule defined is the first to be checked for a given character.

特定の[ 言語や文字 ]に対する範囲の例: ◎ Example ranges for specific languages or characters:

`unicode-range^d: `U+A5^v;
単独の符号位置:[円/元]通貨記号 ◎ a single code point, the yen/yuan symbol
`unicode-range^d: `U+0-7F^v;
基本 ASCII文字の符号範囲 ◎ code range for basic ASCII characters
`unicode-range^d: `U+590-5ff^v;
~Hebrew文字の符号範囲 ◎ code range for Hebrew characters
`unicode-range^d: U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F;
~Japanese[ 漢字, 平仮名, 片仮名 ]文字, および[円/元]通貨記号の符号範囲 ◎ code range for Japanese kanji, hiragana and katakana characters plus yen/yuan symbol

BBC はニュースサービスを様々な言語で提供しているが、その多くは,すべての~platformに渡り十分に~supportされているとは限らない。 `font-face$at 規則を用いて、 BBC は,これらのどの言語のための~fontも[ 手動による~font~downloadにより すでに行われていた ]かのように,提供できるようになるであろう。 ◎ The BBC provides news services in a wide variety of languages, many that are not well supported across all platforms. Using an @font-face rule, the BBC could provide a font for any of these languages, as it already does via a manual font download.

@font-face {
  font-family: BBCBengali;
  src: url(fonts/BBCBengali.woff) format("woff");
  unicode-range: U+00-FF, U+980-9FF;
}

技術文書では、多岐に渡る記号を要することが多い。 STIX ~font~projectは、[ 標準化された~方法で,多岐に渡る技術用~植字を~supportするための~font ]を提供しようと目指している~projectの一つである。 下の例に,[ ~Unicode内の[ 多数の 数学用/技術用 記号 ]範囲のための~glyph ]を提供する~fontの利用を示す: ◎ Technical documents often require a wide range of symbols. The STIX Fonts project is one project aimed at providing fonts to support a wide range of technical typesetting in a standardized way. The example below shows the use of a font that provides glyphs for many of the mathematical and technical symbol ranges within Unicode:

@font-face {
  font-family: STIXGeneral;
  src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf);
  unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF;
}

次の例は、作者が,[ ~Japanese~fontの中で用いられる~Latin文字 ]の~glyphを,異なる~fontからの~glyphで上書きする方法を示している。 最初の規則は,範囲を指定していないので、既定で全範囲になる。 [ 2 番目の規則の中で指定される範囲 ]は重複することになるが、より後の方で定義されているので,より優先される。 ◎ This example shows how an author can override the glyphs used for Latin characters in a Japanese font with glyphs from a different font. The first rule specifies no range so it defaults to the entire range. The range specified in the second rule overlaps but takes precedence because it is defined later.

@font-face {
  font-family: JapaneseWithGentium;
  src: local(MSMincho);
  /* 範囲は指定されていないので、既定で全範囲になる。
◎
no range specified, defaults to entire range
 */
}

@font-face {
  font-family: JapaneseWithGentium;
  src: url(../fonts/Gentium.woff);
  unicode-range: U+0-2FF;
}

帯域幅を最適化するために、[ ~Latin, ~Japanese, その他 ]の文字を,それぞれ異なる~font~fileに分離することにより構築される、族を考える: ◎ Consider a family constructed to optimize bandwidth by separating out Latin, Japanese and other characters into different font files:

/* ~fallback~font — ~size: 4.5MB
◎
fallback font - size: 4.5MB
 */
@font-face {
  font-family: DroidSans;
  src: url(DroidSansFallback.woff);
  /* 範囲は指定されていないので、既定で全範囲になる。
◎
no range specified, defaults to entire range
 */
}

/* ~Japanese~glyph — ~size: 1.2MB
◎
Japanese glyphs - size: 1.2MB
 */
@font-face {
  font-family: DroidSans;
  src: url(DroidSansJapanese.woff);
  unicode-range: U+3000-9FFF, U+ff??;
}

/* いくつかの約物と記号も伴われた
~Latin, ~Greek, ~Cyrillic
— ~size: 190KB
◎
Latin, Greek, Cyrillic along with some punctuation and symbols - size: 190KB
 */
@font-face {
  font-family: DroidSans;
  src: url(DroidSans.woff);
  unicode-range: U+000-5FF, U+1e00-1fff, U+2000-2300;
}

単純な~Latin~textに対しては、~Latin文字のための~fontのみが~downloadされる: ◎ For simple Latin text, only the font for Latin characters is downloaded:

body { font-family: DroidSans; }

<p>This is that</p>

この場合、~UAはまず,[ ~Latin文字を包含している~font( DroidSans.woff ) ]に対する `unicode-range$d を検査する。 上の文字はすべて,範囲 U+0-5FF に入るので、~UAは,その~fontを~downloadした上で,~textをその~fontにより描画する。 ◎ In this case the user agent first checks the unicode-range for the font containing Latin characters (DroidSans.woff). Since all the characters above are in the range U+0-5FF, the user agent downloads the font and renders the text with that font.

次に,矢印~文字( ⇨ )を用いる~textを考える: ◎ Next, consider text that makes use of an arrow character (⇨):

<p>This &#x21e8; that<p>

ここでも~UAは,最初に[ ~Latin文字を包含している~font ]の `unicode-range$d を検査する。 矢印の符号位置( U+21E8 )は,範囲 `U+2000-2300^v に入るので、~UAは,その~fontを~downloadする。 しかしながら,~Latin~fontは,この文字に対し合致ing~glyphを持たないので、この符号位置は[ ~font照合のために用いられる有効 `unicode-range^d ]から除外される。 次に,~UAは~Japanese~fontを評価する。 ~Japanese~fontに対する `unicode-range^d は[ `U+3000-9FFF^v, および `U+ff??^v ]であり, U+21E8 は含まれていないので、~UAは,その~Japanese~fontを~downloadしない。 次に,~fallback~fontが考慮される。 ~fallback~fontのための `font-face$at 規則は, `unicode-range^d を定義していないので、その値は,既定で[ すべての~Unicode符号位置からなる集合 ]になる。 ~fallback~fontが,矢印~文字を描画するために~downloadされて用いられる。 ◎ The user agent again first checks the unicode-range of the font containing Latin characters. Since U+2000-2300 includes the arrow code point (U+21E8), the user agent downloads the font. For this character however the Latin font does not have a matching glyph, so the effective unicode-range used for font matching excludes this code point. Next, the user agent evaluates the Japanese font. The unicode-range for the Japanese font, U+3000-9FFF and U+ff??, does not include U+21E8, so the user agent does not download the Japanese font. Next the fallback font is considered. The @font-face rule for the fallback font does not define unicode-range so its value defaults to the range of all Unicode code points. The fallback font is downloaded and used to render the arrow character.

4.7. ~font特能: `font-variant^d, `font-feature-settings^d 記述子

`●述^ `font-variant@d `●対^ `font-face$at `●値^ `normal$v1 | `none$v1 | [ `common-lig-values$t || `discretionary-lig-values$t || `historical-lig-values$t || `contextual-alt-values$t || `stylistic$v(`feature-value-name$t) || `historical-forms$v || `styleset$v(`feature-value-name$t#) || `character-variant$v(`feature-value-name$t#) || `swash$v(`feature-value-name$t) || `ornaments$v(`feature-value-name$t) || `annotation$v(`feature-value-name$t) || [ `small-caps$v | `all-small-caps$v | `petite-caps$v | `all-petite-caps$v | `unicase$v | `titling-caps$v ] || `numeric-figure-values$t || `numeric-spacing-values$t || `numeric-fraction-values$t || `ordinal$v || `slashed-zero$v || `east-asian-variant-values$t || `east-asian-width-values$t || `ruby$v || [ `sub$v | `super$v ] ] `●初^ `normal$v1 `●表終^ `●述^ `font-feature-settings@d `●対^ `font-face$at `●値^ `normal^v | `feature-tag-value$t# `●初^ `normal$v1 `●表終^

これらの記述子は、[[ `font-face$at 規則により定義される~font ]が描画されるとき ]に適用される,初期~設定群を定義する。 これらは~fontの選定には影響しない。 各種一連の値は、対応する[ `font-variant$p, `font-feature-settings$p ]~propにて定義されるものに一致する。 複数の[ ~font特能[ 記述子/~prop ]]が用いられるときの,[ ~text描画における累積的な効果 ]については、 ~font特能~解決 節にて詳細が述べられる。 [ 一連の特定の値 ]が,[[ ある `font-variant$p 下位prop ]に対し合成される~fallback ]を定義している場合、合成された同じ~fallbackが,[ それらの値の中で用いられる【?】が `font-variant$d 記述子と伴用されたとき ]にも適用される。 ◎ These descriptors define initial settings that apply when the font defined by an @font-face rule is rendered. They do not affect font selection. Values are identical to those defined for the corresponding font-variant and font-feature-settings properties. When multiple font feature descriptors or properties are used, the cumulative effect on text rendering is detailed in §7 Font Feature Resolution . In cases where specific values define synthesized fallback for certain font-variant subproperties, the same synthesized fallback applies when used within those values are used with the font-variant descriptor.

4.8. ~font読込みの指針

`font-face$at 規則は、[[ ~font資源が,文書~内で用いられるときにのみ~downloadされる ]ようにする,遅延~読込み ]を許容するように設計されている。 ~stylesheetには、[[ 選定された集合のみを用いるような[ ~fontの~library ]]のための, `font-face$at 規則 ]を含ませることができる。 ~UAは、[ ~style規則~内から参照rされている~font ]のうち,[ 所与の頁に適用し得るもの ]のみを~downloadし~MUST。 [ それらの~fontが頁~内で~~実際に用いられるかどうか ]について考慮せずに,[ `font-face$at 規則にて定義される~font ]すべてを~downloadする~UAは、不適合と見なされる。 [ 文字~fallbackが生じる場合に~fontが~downloadされ得る ]下では、 ~UAは[[[ 所与の~textrunに対する `font-family$p ]の算出値 ]に包含されている~font ]を~downloadしても~MAY。 ◎ The @font-face rule is designed to allow lazy loading of font resources that are only downloaded when used within a document. A stylesheet can include @font-face rules for a library of fonts of which only a select set are used; user agents must only download those fonts that are referred to within the style rules applicable to a given page. User agents that download all fonts defined in @font-face rules without considering whether those fonts are in fact used within a page are considered non-conformant. In cases where a font might be downloaded in character fallback cases, user agents may download a font if it’s contained within the computed value of font-family for a given text run.

@font-face {
  font-family: GeometricModern;
  src: url(font.woff);
}

p {
  /* ~fontは、`p^e 要素を伴う頁に対しては~downloadされることになる
◎
font will be downloaded for pages with p elements
 */
  font-family: GeometricModern, sans-serif;
}

h2 {
  /* `h2^e 要素を伴う頁に対しては、`Futura^F が~localに可用であっても,~fontが~downloadされ得る
◎
font may be downloaded for pages with h2 elements, even if Futura is available locally
 */
  font-family: Futura, GeometricModern, sans-serif;
}

~downloadable~fontが可用になる前に,~textual内容が読込まれた所では、~UAは,~textを[[ ~downloadable~font資源が可用でないときに描画されることになる ]ような~~形 ]に描画するか,あるいは、 ~fallback~fontの利用による~textの明滅 【 ~downloadが完了する前に~fallback~fontによる~textが一瞬~表示される現象 — “FOUT” 】 を避けるために,~fallback~fontによる~textを 一時的に透明に描画しても~MAY。 ~UAは、~fontの~downloadに失敗した所では,~textを表示し~MUST — 単純に~textを透明なまま放置することは,不適合な挙動と見なされる。 作者には,巨大~頁の~reflowを避けるため、可能な所では,~fallback~fontには[ ~font~listの中の,~downloadable~fontの計量に近く合致するもの ]を利用することを強く勧める。 ◎ In cases where textual content is loaded before downloadable fonts are available, user agents may render text as it would be rendered if downloadable font resources are not available or they may render text transparently with fallback fonts to avoid a flash of text using a fallback font. In cases where the font download fails user agents must display text, simply leaving transparent text is considered non-conformant behavior. Authors are advised to use fallback fonts in their font lists that closely match the metrics of the downloadable fonts to avoid large page reflows where possible.

4.9. ~font~fetchingに課される要件

~UAは、 `font-face$at 規則~内で定義される URL に対する~fontの読込みには,[ `CORS もあり得る~fetch$ `HTML5$r ]を利用し~MUST。 その入力には[ [ mode : "Anonymous" ], [ referrer source: ~stylesheetの URL ], [ origin : 包含している文書の URL ] ]を利用し~MUST。 ◎ For font loads, user agents must use the potentially CORS-enabled fetch method defined by the [HTML5] specification for URL’s defined within @font-face rules. When fetching, user agents must use "Anonymous" mode, set the referrer source to the stylesheet’s URL and set the origin to the URL of the containing document.

注記: 作者にとってこれが意味する所は、作者がそれを許可する手続きを特に踏まない限り,非同一生成元からの~fontは,概ね読込まれなくなることである。 ~siteは `Access-Control-Allow-Origin^c HTTP ~headerの利用により,~siteをまたがる~font~dataの読込みを明示的に許容できる。 他の【 HTTP(S) 以外の 】~schemeに対しては、 `CORS もあり得る~fetch$により許可されるものを超えて[ 定義される または要求される ]ような,[ 非同一生成元からの読込みを許容する明示的な仕組み ]は存在しない。 ◎ Note: The implications of this for authors are that fonts will typically not be loaded cross-origin unless authors specifically takes steps to permit cross-origin loads. Sites can explicitly allow cross-site loading of font data using the Access-Control-Allow-Origin HTTP header. For other schemes, no explicit mechanism to allow cross-origin loading, beyond what is permitted by the potentially CORS-enabled fetch method, is defined or required.

下に与える例では、文書の所在が https://example.com/page.html であり, かつ すべての URL の~linkは[ ~UAから~supportされる妥当な~font資源 ]を指しているとする。 下の[ 各種 `src$d 記述子 の値 ]により定義される~fontは,読込まれることになる: ◎ For the examples given below, assume that a document is located at https://example.com/page.html and all URL’s link to valid font resources supported by the user agent. Fonts defined with the src descriptor values below will be loaded:

/* 同一生成元(すなわち,[ ~domain, ~scheme, ~port ]が文書のそれに合致する)
◎
same origin (i.e. domain, scheme, port match document)
 */
src: url(fonts/simple.woff);

/* ~redirectを伴わない data: URL は,同一生成元として扱われる
◎
data url’s with no redirects are treated as same origin
 */
src: url("data:application/font-woff;base64,...");

/* 非同一生成元 — ~domainが異なる
◎
cross origin, different domain
 */
/* が, `Access-Control-Allow-Origin^c 応答~headerは '*' に設定されているとする
◎
Access-Control-Allow-Origin response header set to '*'
 */
src: url(http://another.example.com/fonts/simple.woff);

下の[ 各種 `src$d 記述子の値 ]により定義される~fontの読込みは,失敗することになる(いずれも,応答の中に `Access-Control-…^c ~headerは~~無いとする): ◎ Fonts defined with the src descriptor values below will fail to load:

/* 非同一生成元 — ~schemeが異なる
◎
cross origin, different scheme
◎
no Access-Control-xxx headers in response
 */
src: url(https://example.com/fonts/simple.woff);

/* 非同一生成元 — ~domainが異なる
◎
cross origin, different domain
◎
no Access-Control-xxx headers in response
 */
src: url(http://another.example.com/fonts/simple.woff);

5. ~font照合~algo

個々の~textrunが,どのようにして~fontに結付けられるかは、以下の~algoに述べられる。 ~textrunの中の各~文字ごとに,[ その文字のための~glyphを包含している~font族 ]が選ばれ,特定0の~font書体が選定される。 ◎ The algorithm below describes how fonts are associated with individual runs of text. For each character in the run a font family is chosen and a particular font face is selected containing a glyph for that character.

5.1. ~font族~名の文字大小区別

以下に要旨を~~述べる~font照合~algoの一部として、~UAは,~style規則の中で用いられている一連の~font族~名と[[ 所与の環境の中で可用な~fontに包含されている実際の~font族~名 ]または[ `font-face$at 規則の中で定義される~font族~名 ]]とを照合し~MUST。 ~UAは、これらの名前を, Unicode 仕様 `UNICODE$r にて要旨が述べられている[ “Default Caseless Matching” ~algo ]を用いて,文字大小無視の下で照合し~MUST。 この~algoの詳細は、その仕様の[ 3.13 “Default Case Algorithms” ]の節に示されている。 特に,この~algoは[ 文字列を正規化することなく, かつ いかなる言語~特有の誂えも適用することなく ]適用され~MUST。 この~algoにより指定される[ 大文字正規化~method ]は、[ Unicode Character Database の~file "CaseFolding.txt" ]の中の,[ "status" ~fieldに[ "C" または "F" ]が伴われた[ 文字大小 対応付け ]]を用いる。 ◎ As part of the font matching algorithm outlined below, user agents must match font family names used in style rules with actual font family names contained in fonts available in a given environment or with font family names defined in @font-face rules. User agents must match these names case insensitively, using the "Default Caseless Matching" algorithm outlined in the Unicode specification [UNICODE]. This algorithm is detailed in section 3.13 entitled "Default Case Algorithms". Specifically, the algorithm must be applied without normalizing the strings involved and without applying any language-specific tailorings. The case folding method specified by this algorithm uses the case mappings with status field "C" or "F" in the CaseFolding.txt file of the Unicode Character Database.

注記: 作者にとっては、これは次を意味する: ~font族~名は、それらの名前が[ ~platform~fontの中に, または[ ~stylesheetに包含されている `font-face$at 規則 ]の中に ]存在するかどうかに応じて,文字大小無視の下で照合される。 作者は、~~特に,[ 発音区別符などの結合文字 ]を用いているときは、名前が確実に[ 実際の~font族~名に整合な文字~連列 ]になるように,注意を払うべきである。 例えば、[[ 大文字の "A" ( U+0041 ), COMBINING RING ABOVE ( U+030A ) ]の並び ]を包含する族~名は,その結合文字~連列の代わりに[ 合成済みの[ 小文字の ring 文字 ( U+00E5, "å" ) ]]を用いる名前と,見かけ上は【文字大小無視の下で】一致するが、合致しないことになる。 ◎ Note: For authors this means that font family names are matched case insensitively, whether those names exist in a platform font or in the @font-face rules contained in a stylesheet. Authors should take care to ensure that names use a character sequence consistent with the actual font family name, particularly when using combining characters such as diacritical marks. For example, a family name that contains an uppercase A (U+0041) followed by a combining ring (U+030A) will not match a name that looks identical but which uses the precomposed lowercase a-ring character (U+00E5) instead of the combining sequence.

注記: 実装者は、[ 所与の[ ~caseless文字列~比較の実装 ]が,この精確な~algoを用いているかどうか ]を検証し,[ 所与の[ ~platformの文字列~照合~routine ]が,それに従っている ]ものと見做さないように、注意を払うべきである — これらの多くが、~locale特有の挙動を備えていたり, あるいは 何らかの~levelの文字列~正規化を用いているので。 ◎ Note: Implementors should take care to verify that a given caseless string comparison implementation uses this precise algorithm and not assume that a given platform string matching routine follows it, as many of these have locale-specific behavior or use some level of string normalization.

5.2. ~font~styleの照合

~textrunの中の所与の文字に対し,~fontを選ぶ際の手順は、次から構成される:

  • `font-family$p ~propにより名前が与えられている,一連の~font族の走査。
  • [ 他の各種~font~prop ]に基づく適切な~styleを伴うような,~font書体の選定法。
  • 所与の文字のための~glyphが存在するかどうかの決定法。 これは、~fontの `文字map@ — すなわち,文字をその文字のための既定の~glyphに対応付ける~data — を用いて行われる。

~fontは、次が成立するとき,所与の文字を `~support@ するものと見なされる:

  • その文字は~fontの`文字map$に包含されている, かつ
  • その文字を包含している用字系から要求されている場合は,その文字のための形状付け情報が【~fontにて】可用である。
◎ The procedure for choosing a font for a given character in a run of text consists of iterating over the font families named by the font-family property, selecting a font face with the appropriate style based on other font properties and then determining whether a glyph exists for the given character. This is done using the character map of the font, data which maps characters to the default glyph for that character. A font is considered to support a given character if (1) the character is contained in the font’s character map and (2) if required by the containing script, shaping information is available for that character.

旧来の~fontには、所与の文字を`文字map$の中に含みつつ,[ その文字を包含している~textrun ]を正しく描画するために必要とされる,形状付け情報(例えば, OpenType layout tablesGraphite tables )を欠いているものもある。 ◎ Some legacy fonts may include a given character in the character map but lack the shaping information (e.g. OpenType layout tables or Graphite tables) necessary for correctly rendering text runs containing that character.

[ 基底文字, [ 結合文字~連列 ]]の並びからなる[ 符号位置の連列 ]の扱いは,少しばかり異なる — それについては, ~cluster照合 節にて見られる。 ◎ Codepoint sequences consisting of a base character followed by a sequence of combining characters are treated slightly differently, see §5.3 Cluster matching.

この手順における[ 所与の~font族に対する `既定の書体@ ]とは、[[ すべての~font~style~propが,それぞれの初期値に設定されている ]としたときに,選定される書体 ]として定義される。 ◎ For this procedure, the default face for a given font family is defined to be the face that would be selected if all font style properties were set to their initial value.

  1. ~UAは,所与の要素に対する[ ~font~propの算出値 ]を用いて,[ `font-family$p ~propに指定されている最初の族~名 ]から走査-を開始する。 ◎ Using the computed font property values for a given element, the user agent starts with the first family name specified by the font-family property.
  2. 族~名が総称~族~keywordである場合: ~UAは,用いられることになる適切な~font族~名を表引きする。 ~UAは、利用する総称~font族を[[ 包含している要素の言語 ]や, [ その文字の~Unicode範囲 ]]に基づいて,選んで~MAY。 ◎ If the family name is a generic family keyword, the user agent looks up the appropriate font family name to be used. User agents may choose the generic font family to use based on the language of the containing element or the Unicode range of the character.
  3. 他の場合(他の族~名に対しては): ~UAは,[ `font-face$at 規則を介して定義される一連の~font ]の中から,族~名を見出した上で、上の節で要旨を~~述べたように[ 可用な~system~font ]の中から, 文字大小無視による比較 により名前の照合を試みる:

    • ~systemに,複数の[ 地域化された~font族~名 ]を包含する~fontがある下では、~UAは,これらのどの名前に対する照合も,[ 利用している下層の[ ~system~localeや~platform API ]]からは独立に行わ~MUST。
    • [ `font-face$at 規則の中で与えられた書体 ]のために定義されている~font資源が,[ 可用でない, または 無効な~font~dataを包含している ]場合: その書体は,[ その族の中に無い ]ものと扱われるべきである。
    • [ `font-face$at 規則を介して定義される族 ]に対する書体が無い場合: その族は~missingと扱われるべきであり,同じ名前の~platform~fontとの合致が生じては~MUST_NOT。
    ◎ For other family names, the user agent attempts to find the family name among fonts defined via @font-face rules and then among available system fonts, matching names with a case-insensitive comparison as outlined in the section above. On systems containing fonts with multiple localized font family names, user agents must match any of these names independent of the underlying system locale or platform API used. If the font resources defined for a given face in an @font-face rule are either not available or contain invalid font data, then the face should be treated as not present in the family. If no faces are present for a family defined via @font-face rules, the family should be treated as missing; matching a platform font with the same name must not occur in this case.
  4. ~font族との合致が生じた場合: ~UAは、その族の中の~font書体の集合(以下, “照合~集合” と記される)を組上げた上で,その集合から[ 下に与える順に,他の~font~propを用いて ]単独の書体に絞り込む。 `font-face$at 規則を介して定義される[ ~font記述子~値には一致しつつ, `unicode-range$d 値は異なる ]ような[ 書体の~group ]は、この段のためには,[ 単独の `混成~書体@ ]をなすものと見なされる: ◎ If a font family match occurs, the user agent assembles the set of font faces in that family and then narrows the set to a single face using other font properties in the order given below. A group of faces defined via @font-face rules with identical font descriptor values but differing unicode-range values are considered to be a single composite face for this step:

    1. 最初に, `font-stretch$p について試行される:

      • 照合~集合が[ `font-stretch$p 値に合致している字幅~値 ]を伴う書体を包含している場合: [[ 他の字幅~値 ]を伴う書体 ]は照合~集合から除去する。
      • 他の場合(字幅~値に正確xに合致する書体が~~無い場合)、代わりに最も近い字幅を用いる:

        • `font-stretch$p の値が[ `normal^v, または いずれかの …`-condensed^v 値 ]である場合: 各 字幅~値を,幅狭なものから幅広なものへ順に検査していく。
        • `font-stretch$p の値がいずれかの …`-expanded^v 値である場合: 各 字幅~値を,幅広なものから幅狭なものへ順に検査していく。

        この処理により[ 最も近く合致する字幅 ]が決定されたなら、[ 他の字幅を伴う書体 ]は,照合~集合から除去する

      ◎ font-stretch is tried first. If the matching set contains faces with width values matching the font-stretch value, faces with other width values are removed from the matching set. If there is no face that exactly matches the width value the nearest width is used instead. If the value of font-stretch is normal or one of the condensed values, narrower width values are checked first, then wider values. If the value of font-stretch is one of the expanded values, wider values are checked first, followed by narrower values. Once the closest matching width has been determined by this process, faces with other widths are removed from the matching set.
    2. 次に, `font-style$p について試行される:

      • `font-style$p の値に応じて,対応する項目に示された順で 書体を検査する:

        `italic$v
        ~italic → ~oblique → ~normal
        `oblique$v
        ~oblique → ~italic → ~normal
        `normal^v

        ~normal → ~oblique → ~italic

        [ 他の~style値 ]を伴う書体は,照合~集合から除外する。

      • ~UAには[ ~platform~font族 ]内の[ ~italicと~oblique ]書体の判別-が許可されるが,これは要求されないので、 すべての[ ~italic/~oblique ]書体は,~italic書体として扱われても~MAY。 しかしながら, [ `font-face$at 規則を介して定義される~font族 ]内では、[ ~italicと~oblique ]書体は,[ `font-style$d 記述子の値 ]を用いて判別され~MUST。
      • [ ~italic/~oblique ]書体を欠くどの族に対しても、~UAは,[ `font-synthesis$p ~propの値 ]により許可されるのであれば,[ 人工的な~oblique書体 ]を創出しても~MAY。
      ◎ font-style is tried next. If the value of font-style is italic, italic faces are checked first, then oblique, then normal faces. If the value is oblique, oblique faces are checked first, then italic faces and then normal faces. If the value is normal, normal faces are checked first, then oblique faces, then italic faces. Faces with other style values are excluded from the matching set. User agents are permitted to distinguish between italic and oblique faces within platform font families but this is not required, so all italic or oblique faces may be treated as italic faces. However, within font families defined via @font-face rules, italic and oblique faces must be distinguished using the value of the font-style descriptor. For families that lack any italic or oblique faces, users agents may create artificial oblique faces, if this is permitted by the value of the font-synthesis property.
    3. 最後に `font-weight$p が照合される — これにより,照合~集合は常に単独の~font書体に絞り込まれるようになる: ◎ font-weight is matched next, so it will always reduce the matching set to a single font face. If bolder/lighter relative weights are used, the effective weight is calculated based on the inherited weight value, as described in the definition of the font-weight property. Given the desired weight and the weights of faces in the matching set after the steps above, if the desired weight is available that face matches. Otherwise, a weight is chosen using the rules below:

      1. 相対~weight[ `bolder^v/`lighter^v ]が用いられている場合: 実質的な~weightは、`font-weight$p ~propの定義に従って,~weightの継承値に基づいて計算される。 ◎ ↑
      2. 照合~集合の一連の書体の~weightの中に,欲された~weight(以下 `w^var と記す)として可用なものがある場合: その書体が合致する。 ◎ ↑
      3. 他の場合: ~weightは、`w^var に応じて,以下の~~規則を用いて選ばれる: ◎ ↑

        `w^var ~LT 400 の場合
        合致が見出されるまで,まず `w^var より下の~weightを降順に検査し,それから `w^var より上の~weightを昇順に検査する。 ◎ If the desired weight is less than 400, weights below the desired weight are checked in descending order followed by weights above the desired weight in ascending order until a match is found.
        `w^var ~GT 500 の場合
        合致が見出されるまで,まず `w^var より上の~weightを昇順に検査し,それから `w^var より下の~weightを降順に検査する。 ◎ If the desired weight is greater than 500, weights above the desired weight are checked in ascending order followed by weights below the desired weight in descending order until a match is found.
        `w^var ~EQ 400 の場合
        最初に 500 を検査した上で, `w^var ~LT 400 に対する規則を用いる。 ◎ If the desired weight is 400, 500 is checked first and then the rule for desired weights less than 400 is used.
        `w^var ~EQ 500 の場合
        最初に 400 を検査した上で, `w^var ~LT 400 に対する規則を用いる。 ◎ If the desired weight is 500, 400 is checked first and then the rule for desired weights less than 400 is used.
    4. `font-size$p は、~UAに依存する[ 許容差マージン ]内で合致され~MUST。 (概して、~scalableな~fontに対する~sizeは,[ ~pixelの整数倍に最も近い~size ]に丸められる一方, ~bitmap化された~fontに対する許容差は 20% くらいの大きさにされる。) 更なる~~計算, 例えば[ 他の~propの中の `em^u 値によるもの ]は、 `font-size$p の指定値ではなく,使用値に基づく。 ◎ font-size must be matched within a UA-dependent margin of tolerance. (Typically, sizes for scalable fonts are rounded to the nearest whole pixel, while the tolerance for bitmapped fonts could be as large as 20%.) Further computations, e.g., by em values in other properties, are based on the font-size value that is used, not the one that is specified.
  5. 合致した書体が `font-face$at 規則を介して定義されている場合: ~UAは、単独の~fontを選定するために,次の手順を利用し~MUST: ◎ If the matched face is defined via @font-face rules, user agents must use the procedure below to select a single font:

    1. [ ~font資源がまだ読込まれていない ], かつ[ `unicode-range$d 記述子の値により定義される文字~範囲に 当の文字が含まれている ]場合: その~fontを読込む。 ◎ If the font resource has not been loaded and the range of characters defined by the unicode-range descriptor value includes the character in question, load the font.
    2. ~downloadの後,その`有効~文字map$が当の文字を~supportする場合: その~fontを選定する。 ◎ After downloading, if the effective character map supports the character in question, select that font.

    合致した書体が`混成~書体$であるときは、~UAは,`混成~書体$の中の各 ~書体に対し,[ `font-face$at 規則~定義の逆順 ]で,上の手順を利用し~MUST。 ◎ When the matched face is a composite face, user agents must use the procedure above on each of the faces in the composite face in reverse order of @font-face rule definition.

    ~downloadの間、~UAは,[ ~fontが~downloadされるまで待機する ]か, または[ いったん,代用-による~font計量の下で描画した上で、~download後にもう一度~描画する ]のいずれを選んでも~MAY。 ◎ While the download occurs, user agents may either wait until the font is downloaded or render once with substituted font metrics and render again once the font is downloaded.

  6. [ 合致ing書体が存在しない ], または[ 合致した書体が[ 描画される文字のための~glyph ]を包含しない ]場合: 次の族~名が選定され,[ 前の 3 個の段 ]が繰返される。 族の中の他の書体からの~glyphは、考慮されない — ただし、[ その書体が所与の~glyphを~supportする ], かつ[ `font-synthesis$p ~propの値により,これらの書体の合成が許可されている ]場合は、~UAは,任意選択で[ `既定の書体$を合成的に~oblique化した~version ]で代用しても~MAY。 例えば,~italic書体が[ ~Arabicのための~glyph ]を~supportしない場合には、[ ~regular書体の合成的な~italic~version ]が利用されても~MAY。 ◎ If no matching face exists or the matched face does not contain a glyph for the character to be rendered, the next family name is selected and the previous three steps repeated. Glyphs from other faces in the family are not considered. The only exception is that user agents may optionally substitute a synthetically obliqued version of the default face if that face supports a given glyph and synthesis of these faces is permitted by the value of the font-synthesis property. For example, a synthetic italic version of the regular face may be used if the italic face doesn’t support glyphs for Arabic.
  7. [ 評価される~font族が尽きた ], かつ[ 合致ing書体が見出されなかった ]場合: ~UAは、[[ 描画される文字 ]に最も釣り合う書体 ]を見出すために,[ `~system~font~fallback@ 手順 ]を遂行する。 この手順の結果は、~UA間に渡り変わり得る。 【すなわち、この手順の~~内容は[ ~UA/実装 ]に依存する — この仕様の中では~~規定されていない。】 ◎ If there are no more font families to be evaluated and no matching face has been found, then the user agent performs a system font fallback procedure to find the best match for the character to be rendered. The result of this procedure may vary across user agents.
  8. 特定0の文字が,どの~fontを用いても表示できない場合: ~UAは、次のいずれかを行うべきである:

    • 何らかの手段により,[ ~missing~glyphの象徴的な表現 ]を表示する(例えば, Last Resort Font を用いて)
    • 既定の~fontからの~missing文字~glyphを用いて,文字が表示されていないことを指示する
    ◎ If a particular character cannot be displayed using any font, the user agent should indicate by some means that a character is not being displayed, displaying either a symbolic representation of the missing glyph (e.g. using a Last Resort Font) or using the missing character glyph from a default font.

この処理の最適化は、実装が~algoに正確xに従ったかのように挙動する限り,許容される。 同じ[[ 可用な~fontの集合と, 描画~技術 ]の組合せ ]の下で現れる結果を、~UA間に渡り,可能な限り一致させるため、照合は~well-definedな順序で生じる【照合の順序が,この~algoと矛盾しないようにするものとする?】。 ◎ Optimizations of this process are allowed provided that an implementation behaves as if the algorithm had been followed exactly. Matching occurs in a well-defined order to ensure that the results are as consistent as possible across user agents, given an identical set of available fonts and rendering technology.

[ `ex^u や `ch^u などの,`~fontに相対的な長さ$ ]の定義に利用されている `可用な最初の~font@ とは、[ 所与の `font-family^p ~list ]の中の~font族のうち,[[ 所与の どの文字にも【?】合致する ]ような可用~font ]のうちの最初のもの(あるいは その中に可用なものが~~無い場合は~UA の既定の~font)として定義される。 【原文は英文的に変?】 ◎ The first available font, used in the definition of font-relative lengths such as ex and ch, is defined to be the first available font that would match any character given font families in the font-family list (or a user agent’s default font if none are available).

5.3. ~cluster照合

~textが結合markなどの文字を包含するとき、理想的には,[ 基底文字が,その~markと同じ~fontを用いて描画される ]べきである。 これにより,~markの適正な配置が確保される。 この理由から、[ ~clusterのための~font照合~algo ]は,一般の場合の[ 単独の文字~自身による照合 ]よりも特化されている。 [[ 所与の文字に用いる精確な~glyph ]を指示する異体字選択子 【参考】 ]を包含している連列に対しては、~UAは常に,[ 基底文字の既定の~glyph ]を用いる前に,適切な~glyphを見出すため、`~system~font~fallback$を試みる。 ◎ When text contains characters such as combining marks, ideally the base character should be rendered using the same font as the mark, this assures proper placement of the mark. For this reason, the font matching algorithm for clusters is more specialized than the general case of matching a single character by itself. For sequences containing variation selectors, which indicate the precise glyph to be used for a given character, user agents always attempt system font fallback to find the appropriate glyph before using the default glyph of the base character.

[ 結合markや[ 他の modifier【 Unicode Modifier Letter (修飾字)?】 ]]を包含している[ 符号位置の連列 ]は、書記素~clusterと呼ばれる(より完全な記述は `CSS3TEXT$r に)。 [[ 基底文字 `b^var, および 結合文字~連列 `c^var =[ `c1^var, `c2^var, … ]]の並びからなる,所与の~cluster ]に対する照合には、次の手続きが用いられる: ◎ A sequence of codepoints containing combining mark or other modifiers is termed a grapheme cluster (see [CSS3TEXT] for a more complete description). For a given cluster containing a base character, b and a sequence of combining characters c1, c2…, the entire cluster is matched using these steps:

  1. ~font~listの中の各~族に対し,順に[ 前~節にて定義される,一連の~style選定~規則 ]を用いて,1 個の書体を選ぶ: ◎ For each family in the font list, a face is chosen using the style selection rules defined in the previous section.

    1. 連列[ `b^var + `c^var ]の中のすべての文字が,~fontにより完全に~supportされている場合: その連列に対しては,この~fontを選定する ◎ If all characters in the sequence b + c1 + c2 … are completely supported by the font, select this font for the sequence.
    2. 他の場合,[[[ 複数個の符号位置 ]の連列【すなわち,~cluster ?】 ]が単独の文字 `x^var と正準等価である ], かつ[ ~font が `x^var を`~support$する ] ならば: その連列に対しては,この~fontを選定した上で, `x^var に結付けられている~glyphを利用する。 ◎ If a sequence of multiple codepoints is canonically equivalent to a single character and the font supports that character, select this font for the sequence and use the glyph associated with the canonically equiavlent character for the entire cluster.
  2. 前~段の~font~listの中から条件を満たす~fontが見出されなかった場合: ◎ If no font was found in the font list in step 1:

    1. `c1^var が異体字選択子である場合:

      1. 連列に複数個の異体字選択子が伴われている場合: 符号化方式~errorとして扱った上で,尾部の選択子は無視され~MUST。 `UNICODE$r
      2. 他の場合(従って, `c^var = `c1^var ):

        • 連列[ `b^var + `c1^var ]を`~support$する~fontを見出すために,`~system~font~fallback$が利用され~MUST。
        • ~system上のどの~fontも,その連列を`~support$しない場合: [ 単独の文字の照合のための通常の手順 ]を用いて,[ 単独の文字 `b^var ]を合致させ,異体字選択子は無視する。
      ◎ If c1 is a variation selector, system fallback must be used to find a font that supports the full sequence of b + c1. If no font on the system supports the full sequence, match the single character b using the normal procedure for matching single characters and ignore the variation selector. Note: a sequence with more than one variation selector must be treated as an encoding error and the trailing selectors must be ignored. [UNICODE]
    2. 他の場合: ~UAは、任意選択で,`~system~font~fallback$を用いて[ ~cluster 全体を`~support$するような~font ]に合致させても~MAY。 ◎ Otherwise, the user agent may optionally use system font fallback to match a font that supports the entire cluster.
  3. 前~段にて~fontが見出されなかった場合:

    1. [ 最初の段による合致ing連列 ]を用いて,~font~listの中で[[ 1 つの~font ]から完全に`~support$される,最も長い連列 ]を決定する。
    2. [ 単独の文字に対する規則 ]を用いて、残りの結合文字を,別々に合致させることを試みる。
    ◎ If no font is found in step 2, use the matching sequence from step 1 to determine the longest sequence that is completely supported by a font in the font list and attempt to match the remaining combining characters separately using the rules for single characters.

5.4. 文字の取扱いの問題

~CSS~font照合は、常に,[ ~Unicode文字を包含している~textrun ]上で遂行されるので、旧来の符号化方式を用いている文書は、~font照合の前に符号変換されているものと見做される。 ~Unicodeに加えて 旧来の符号化方式についても `文字map$を包含している~fontに対しては、[ その旧来の符号化方式による`文字map$ ]の内容が,[ ~font照合~処理の結果 ]に影響しては~MUST_NOT。 ◎ CSS font matching is always performed on text runs containing Unicode characters, so documents using legacy encodings are assumed to have been transcoded before matching fonts. For fonts containing character maps for both legacy encodings and Unicode, the contents of the legacy encoding character map must have no effect on the results of the font matching process.

~font照合~処理は、~textrunが正規化形であるとも, その逆の形にされているとも,見做さない(詳細は `CHARMOD-NORM$r に)。 ~fontは[ 基底文字, 結合markたち ]からなる連列に分解された形を~supportせずに,合成済みの形のみを~supportしても~MAY。 作者は常に,内容の文字~streamが[ 正規化形, またはその逆 ]のいずれになるかも~~考慮した上で、~fontの候補を誂えるべきである。 ◎ The font matching process does not assume that text runs are in either normalized or denormalized form (see [CHARMOD-NORM] for more details). Fonts may only support precomposed forms and not the decomposed sequence of base character plus combining marks. Authors should always tailor their choice of fonts to their content, including whether that content contains normalized or denormalized character streams.

所与の文字の符号位置が,~Unicode私用領域に属する場合:

  • ~UAは[ `font-family^p ~listの中で名前が与えられた,[ 総称~族でない~font族 ]]のみに合致させ~MUST。
  • `font-family^p ~listの中で名前が与えられたどの族も,その符号位置のための~glyphを包含していない場合: ~UAは、[ その符号位置に対する`~system~font~fallback$ ]を試みることなく,その文字に対し[ 何らかの形の~missing~glyph記号 ]を表示し~MUST。

置換文字 U+FFFD に対する照合に際しては、~UAは,~font照合~処理を飛ばして[ 何らかの形の~missing~glyph記号 ]を即時に表示して~MAY。 それらについては、[ ~font照合~処理により選定されることになる~font ]からの~glyphを表示することは要求されない。

◎ If a given character is a Private-Use Area Unicode codepoint, user agents must only match font families named in the font-family list that are not generic families. If none of the families named in the font-family list contain a glyph for that codepoint, user agents must display some form of missing glyph symbol for that character rather than attempting system font fallback for that codepoint. When matching the replacement character U+FFFD, user agents may skip the font matching process and immediately display some form of missing glyph symbol, they are not required to display the glyph from the font that would be selected by the font matching process.

一般には、所与のある族のための 一連の~fontは,すべて同じまたは同様の `文字map$を持つことになる。 ここに要旨を~~述べる処理は、~font族が~~多様な`文字map$を伴う書体を包含しているときでも,取扱えるように設計されている。 しかしながら、その種の族の利用が 予期されない結果を導き得ることも,作者に忠告しておく。 ◎ In general, the fonts for a given family will all have the same or similar character maps. The process outlined here is designed to handle even font families containing faces with widely variant character maps. However, authors are cautioned that the use of such families can lead to unexpected results.

5.5. ~font照合に関する CSS 2.1 からの変更点

上の~algoは、いくつかの~~重要な点で, CSS 2.1 によるものと異なる。 これらの変更は、[ ~UA間の実装に渡る,実際の~font照合の挙動 ]をより良く反映するために,加えられた。 ◎ The algorithm above is different from CSS 2.1 in a number of key places. These changes were made to better reflect actual font matching behavior across user agent implementations.

CSS 2.1 による~font照合~algoとの相違は: ◎ Differences compared to the font matching algorithm in CSS 2.1:

  • この~algoには、 `font-stretch^p の照合も含まれている。 ◎ The algorithm includes font-stretch matching.
  • 可能なすべての `font-style$p 照合~~事例が想定されている。 ◎ All possible font-style matching scenarios are delineated.
  • `small-caps^v ~fontは、~font照合~処理の一部として合致されることはない。 それらは今や~font特能を介して取扱われる。 ◎ Small-caps fonts are not matched as part of the font matching process, they are now handled via font features.
  • ~Unicode異体字選択子の照合が要求される。 ◎ Unicode variation selector matching is required.
  • ~clusterは 1 個の単位として合致させられる。 ◎ Cluster sequences are matched as a unit.

5.6. ~font照合の例

~CSS選択子~構文を,[ 言語に応じて切り替わる~typography ]の創出に利用し得ることも、知っておくと有用であろう。 例えば,一部の~Chinese/~Japaneseの文字は、両~言語における抽象~glyphは同じでないにもかかわらず,同じ~Unicode符号位置に統一されているが、例えば次の~CSSは: ◎ It’s useful to note that the CSS selector syntax may be used to create language-sensitive typography. For example, some Chinese and Japanese characters are unified to have the same Unicode code point, although the abstract glyphs are not the same in the two languages.

:lang(ja) { font: 900 14pt/16pt "Heisei Mincho W9", serif; }
*:lang(zh-Hant-TW) { font: 800 14pt/16.5pt "Li Sung", serif; }

所与の言語 — ここでは(台湾で用いられる)~Japaneseおよび~Traditional~Chinese — を備えるすべての要素を選択して,それらに適切な~fontが用いられるようにする。 ◎ This selects any element that has the given language—Japanese or Traditional Chinese as used in Taiwan—and uses the appropriate font.

6. ~font特能~prop

現代の~font技術は、種々の[ 先進的~typographicや,言語~特有の~font特能 ]を~supportする。 これらの特能を用いて,単独の~fontが[ 多岐に渡る合字, 文脈依存~stylistic代替, [ 一定幅/~old-style ]の数字f, 小頭字【“小さく” された大文字】, 自動的~分数, ~swash, 所与の言語~特有の代替 ]のための~glyphを提供できる。 作者がこれらの~font能力を制御できるようにするため、 CSS3 のために `font-variant^p ~propが拡張0された。 それは今や,[[ ~fontの各種~stylistic特能 ]に対する制御を提供する[ ~propの集合 ]]のための略式~propとして機能する。 ◎ Modern font technologies support a variety of advanced typographic and language-specific font features. Using these features, a single font can provide glyphs for a wide range of ligatures, contextual and stylistic alternates, tabular and old-style figures, small capitals, automatic fractions, swashes, and alternates specific to a given language. To allow authors control over these font capabilities, the font-variant property has been expanded for CSS3. It now functions as a shorthand for a set of properties that provide control over stylistic font features.

6.1. ~glyphの選定と位置決め

~Latin~textの表示に利用される単純な~fontは、ごく基本的な処理ing~modelを利用する。 ~fontは、各~文字をその文字のための~glyphに対応付ける,`文字map$を包含する。 後続の文字のための~glyphは、単純に,~textrunに沿って他の文字の後に置かれる。 ~OpenTypeや AAT ( Apple Advanced Typography )などの,現代の~font形式は、より多彩な処理ing~modelを用いる。 所与の文字のための~glyphは、文字~自身の符号位置のみならず,[ 隣接の文字や[ 言語, 用字系, ~textに対し可能化された各種 特能 ]]に基づいて[ 選ばれ, 位置も補正され ]得る。 ~font特能は、特定の用字系のために要求されることもあれば,既定で可能化されるよう推奨されることもあれば,作者による制御~用として~~意図された ~stylistic特能のこともある。 ◎ Simple fonts used for displaying Latin text use a very basic processing model. Fonts contain a character map which maps each character to a glyph for that character. Glyphs for subsequent characters are simply placed one after the other along a run of text. Modern font formats such as OpenType and AAT (Apple Advanced Typography) use a richer processing model. The glyph for a given character can be chosen and positioned not just based on the codepoint of the character itself, but also on adjacent characters as well as the language, script, and features enabled for the text. Font features may be required for specific scripts, or recommended as enabled by default or they might be stylistic features meant to be used under author control.

これらの特能の有益な視覚的~概観は `OPENTYPE-FONT-GUIDE$r に見られる。 ~OpenType~fontのための~glyph処理ingの詳細な記述については、 `WINDOWS-GLYPH-PROC$r に見られる。 ◎ For a good visual overview of these features, see the [OPENTYPE-FONT-GUIDE]. For a detailed description of glyph processing for OpenType fonts, see [WINDOWS-GLYPH-PROC].

~fontの~stylistic特能は、大きく2つに分類できる: 一つは[ ~kerning, 合字 ]特能などの,[ ~glyphの形状と, 周囲の文脈との調和 ]に影響するもの、もう一つは[ 小頭字s, 下上付, 代替 ]特能などの,形状の~選定に影響するものである。 ◎ Stylistic font features can be classified into two broad categories: ones that affect the harmonization of glyph shapes with the surrounding context, such as kerning and ligature features, and ones such as the small-caps, subscript/superscript and alternate features that affect shape selection.

下に挙げられる[ `font-variant$p の下位prop ]が、これらの[ ~fontの~stylistic特能 ]を制御するために用いられる。 それらは、 ~Arabicや~Indicの言語~textを表示する際に用いられる 各種~OpenType特能など,ある種の用字系の表示に要求される特能は制御しない。 それらは、~glyphの[ 選定と位置決め ]に影響するが,~font照合~節にて述べられている~font選定には影響しない(ただし, CSS 2.1 との互換性のために要求される場合は除く)。 ◎ The subproperties of font-variant listed below are used to control these stylistic font features. They do not control features that are required for displaying certain scripts, such as the OpenType features used when displaying Arabic or Indic language text. They affect glyph selection and positioning, but do not affect font selection as described in the font matching section (except in cases required for compatibility with CSS 2.1).

~UA間に渡る挙動の一貫性を確保するため、個々の~propに対し,等価な[ ~OpenType~prop設定群 ]が挙げられ,規定とされる。 他の~font形式の利用に際しては、これらは,各種[ ~CSS~font特能~prop値 ]を特定の~font特能へ対応付けるための指針として、用いられるべきである。 ◎ To assure consistent behavior across user agents, the equivalent OpenType property settings are listed for individual properties and are normative. When using other font formats these should be used as a guideline to map CSS font feature property values to specific font features.

6.2. 言語~特有の表示

~OpenTypeは、[ 言語が課す,特定の[ 表示の挙動 ]]に従って,~textを正しく表示できるようにするために、言語~特有の,~glyphの[ 選定と位置決め ]も~supportする。 多くの言語が同じ用字系を共有するが、ある種の普通字の形状は,言語~間に渡り変わり得る。 例えば,ある種の~Cyrillic普通字の形状は、~Russian~textと~Bulgarian~textとでは互いに異なる。 ~Latin~textにおいては、 "fi" は[ 小文字 "i" の上の~dotを欠く明示的な fi-合字 ]で共通的に描画される。 しかしながら、 ~dot付き "i" と~dotなし "i" の両者を用いる~Turkishなどの言語においては、 この合字を用いないか, あるいは[ "i" の上に~dotを包含する,特化された~versionの合字 ]を用いることが重要になる。 下の例に[ ~Spanish, ~Italian, ~French ]の正書法にて見出される,[ ~stylistic伝統様式に基づく,言語~特有の~variation ]を示す: ◎ OpenType also supports language-specific glyph selection and positioning, so that text can be displayed correctly in cases where the language dictates a specific display behavior. Many languages share a common script, but the shape of certain letters can vary across those languages. For example, certain Cyrillic letters have different shapes in Russian text than in Bulgarian. In Latin text, it’s common to render "fi" with an explicit fi-ligature that lacks a dot on the "i". However, in languages such as Turkish which uses both a dotted-i and a dotless-i, it’s important to not use this ligature or use a specialized version that contains a dot over the "i". The example below shows language-specific variations based on stylistic traditions found in Spanish, Italian and French orthography:

`locl-1^png
`locl-2^png
`locl-3^png

要素の内容~言語が 文書~言語 の規則に則って既知である場合、~UAには,内容~言語から~OpenType言語機構を推定した上で、 ~OpenType~fontを利用する~glyphの[ 選定法と位置決め ]に,その言語機構を用いることが要求される。 ◎ If the content language of the element is known according to the rules of the document language, user agents are required to infer the OpenType language system from the content language and use that when selecting and positioning glyphs using an OpenType font.

~OpenType~fontに対しては、利用する~OpenType言語の明示的な宣言が必要とされる場合がある — 例えば,[ 別の言語の~typographic規約を用いる~textを,所与の言語で表示させる ]ときや、[ ~fontが所与の言語を明示的に~supportしていないが,同じ~typographic規約を共有する言語は~supportする ]ときなど。 `font-language-override$p ~propが,この目的0に用いられる。 ◎ For OpenType fonts, in some cases it may be necessary to explicitly declare the OpenType language to be used, for example when displaying text in a given language that uses the typographic conventions of another language or when the font does not explicitly support a given language but supports a language that shares common typographic conventions. The font-language-override property is used for this purpose.

6.3. ~kerning: `font-kerning^p ~prop

`●名^ `font-kerning@p `●値^ `auto$v1 | `normal$v1 | `none$v1 `●初^ `auto$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

~kerningとは、文脈依存,~glyph間の間隔調整【アキ組】である。 この~propは、計量~kerning — ~fontに包含されている調整用の~dataを~~用いる~kerning — を制御する。 ◎ Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.

`auto@v1
~kerningの適用は,~UAの裁量に任せることを指定する。 ◎ Specifies that kerning is applied at the discretion of the user agent
`normal@v1
~kerningは適用することを指定する。 ◎ Specifies that kerning is applied
`none@v1
~kerningは適用しないことを指定する。 ◎ Specifies that kerning is not applied

~kerning~dataが含まれない~fontに対しては、この~propによる可視~効果はないことになる。 ~OpenType~fontによる描画の下では、 `OPENTYPE$r 仕様から,~kerningは既定で可能化されるものと示唆されている。 ~kerningが可能化されている下では、 ~OpenType `kern^tag 特能が可能化される(縦書きの~textrunに対しては `vkrn^tag 特能が代わりに可能化される)。 ~UAは、 ~OpenType仕様に詳細が述べられているように,[[ `kern^tag ~font~tableに包含されている~data ]を介してのみ,~kerningを~supportするような~font ]も,~supportし~MUST。 `letter-spacing^p ~propが定義されている場合、~kerningは,既定の間隔調整の一部と見なされ、普通字の間隔調整は,~kerningの適用~後に行われる。 ◎ For fonts that do not include kerning data this property will have no visible effect. When rendering with OpenType fonts, the [OPENTYPE] specification suggests that kerning be enabled by default. When kerning is enabled, the OpenType kern feature is enabled (for vertical text runs the vkrn feature is enabled instead). User agents must also support fonts that only support kerning via data contained in a kern font table, as detailed in the OpenType specification. If the letter-spacing property is defined, kerning adjustments are considered part of the default spacing and letter spacing adjustments are made after kerning has been applied.

`kerning-auto^v に設定されているときは、 ~UAは,~kerningを適用するかどうかを[ ~text~size, 用字系, ~text処理ingの速度に波及する他の要因 ]に基づいて決定できる。 適正な~kerningを求める作者は、~kerningを明示的に可能化するために, `normal$v1 を用いるべきである。 反対に、精確な外観より処理能が重要な状況では,~kerningの不能化-を選好する作者もいるかもしれない。 しかしながら,現代の~~高度に設計された実装の下では、~kerningの利用が~text描画の速度に大きく響くことはない。 ◎ When set to auto, user agents can determine whether to apply kerning or not based on a number of factors: text size, script, or other factors that influence text processing speed. Authors who want proper kerning should use normal to explicitly enable kerning. Likewise, some authors may prefer to disable kerning in situations where performance is more important than precise appearance. However, in well-designed modern implementations the use of kerning generally does not have a large impact on text rendering speed.

6.4. 合字: `font-variant-ligatures^p ~prop

`●名^ `font-variant-ligatures@p `●値^ `normal$v1 | `none$v1 | `common-lig-values$t | `discretionary-lig-values$t | `historical-lig-values$t | `contextual-alt-values$t `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

合字と[ 文脈依存~形 ]は、より調和した形を生産するために,~glyphを結合する~方法である。 ◎ Ligatures and contextual forms are ways of combining glyphs to produce more harmonized forms.

`common-lig-values@t
      = `common-ligatures$v | `no-common-ligatures$v

`discretionary-lig-values@t
      = `discretionary-ligatures$v | `no-discretionary-ligatures$v

`historical-lig-values@t
      = `historical-ligatures$v | `no-historical-ligatures$v

`contextual-alt-values@t
      = `contextual$v | `no-contextual$v

各種~値の意味は,次で与えられる: ◎ Individual values have the following meanings:

`normal@v1
~font特能~解決 節に従って,共通的な既定の特能を可能化させることを指定する。 ~OpenType~fontに対しては、共通合字と[ 文脈依存~形 ]]は既定で可能化され,随意合字と歴史的合字はそうでない。 ◎ Specifies that common default features are enabled, as described in §7 Font Feature Resolution . For OpenType fonts, common ligatures and contextual forms are on by default, discretionary and historical ligatures are not.
`none@v1
この~propが受持つすべての種類の[ 合字と[ 文脈依存~形 ]]を、明示的に不能化させることを指定する。 合字を考慮する~必要がない状況では、これにより~text描画の速度が向上し得る。 ◎ Specifies that all types of ligatures and contextual forms covered by this property are explicitly disabled. In situations where ligatures are not considered necessary, this may improve the speed of text rendering.
`common-ligatures@v
共通合字( ~OpenType特能: `liga^tag, `clig^tag )による表示を可能化する。 ~OpenType~fontに対しては、共通合字は,既定で可能化される。 ◎ Enables display of common ligatures (OpenType features: liga, clig). For OpenType fonts, common ligatures are enabled by default.
`liga^png
`no-common-ligatures@v
共通合字( ~OpenType特能: `liga^tag, `clig^tag )による表示を不能化する。 ◎ Disables display of common ligatures (OpenType features: liga, clig).
`discretionary-ligatures@v
随意合字( ~OpenType特能: `dlig^tag )による表示を可能化する。 どの合字が[ 随意または任意選択【 discretionary or optional — 同じ意味?】 ]かは,書体t~designerが決めるので、作者は,どの合字が随意と見なされているかを理解するために,所与の~fontについての文献を参照rする必要があることになる。 ◎ Enables display of discretionary ligatures (OpenType feature: dlig). Which ligatures are discretionary or optional is decided by the type designer, so authors will need to refer to the documentation of a given font to understand which ligatures are considered discretionary.
`dlig^png
`no-discretionary-ligatures@v
随意合字( ~OpenType特能: `dlig^tag )による表示を不能化する。 ◎ Disables display of discretionary ligatures (OpenType feature: dlig).
`historical-ligatures@v
歴史的合字( ~OpenType特能: `hlig^tag )による表示を可能化する。 ◎ Enables display of historical ligatures (OpenType feature: hlig).
`hlig^png
`no-historical-ligatures@v
歴史的合字( ~OpenType特能: `hlig^tag )による表示を不能化する。 ◎ Disables display of historical ligatures (OpenType feature: hlig).
`contextual@v
文脈依存~代替( ~OpenType特能: `calt^tag )による表示を可能化する。 厳密には合字 特能ではないが、合字と同様に,この特能は ~glyphの形状と周囲の文脈を調和させるために用いられる点で共通する。 ~OpenType~fontに対しては、この特能は既定でオンである。 ◎ Enables display of contextual alternates (OpenType feature: calt). Although not strictly a ligature feature, like ligatures this feature is commonly used to harmonize the shapes of glyphs with the surrounding context. For OpenType fonts, this feature is on by default.
`calt^png
`no-contextual@v
文脈依存~代替( ~OpenType特能: `calt^tag )による表示を不能化する。 ◎ Disables display of contextual alternates (OpenType feature: calt).

複雑な用字系を正しく描画するために必要とされる,必須 合字( ~OpenType特能: `rlig^tag )は、 `none$v1 も含め,上の設定群からは影響されない。 ◎ Required ligatures, needed for correctly rendering complex scripts, are not affected by the settings above, including none (OpenType feature: rlig).

6.5. 下上付~形: `font-variant-position^p ~prop

`●名^ `font-variant-position@p `●値^ `normal$v1 | `sub$v | `super$v `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

この~propは、~typographic下上付~glyphを可能化するために用いられる。 これらは,既定の~glyphと同じ em-box 内で~designされた代替~glyphであり、個別の[ ~sizingや基底線の位置決め ]は用いずに,既定の~glyphと同じ基底線~上に~layoutさせる用途に意図されている。 これらは、行高への影響を伴わずに,周囲の~textと釣り合うように, かつ より読み易くなるように、明示的に~designされたものである。 ◎ This property is used to enable typographic subscript and superscript glyphs. These are alternate glyphs designed within the same em-box as default glyphs and are intended to be laid out on the same baseline as the default glyphs, with no resizing or repositioning of the baseline. They are explicitly designed to match the surrounding text and to be more readable without affecting the line height.

`realsubscripts^png
下付~glyph(上段)と,典型的な合成された下付(下段)の比較対照 ◎ Subscript glyphs (top) vs. typical synthesized subscripts (bottom)

各種~値の意味は,次で与えられる: ◎ Individual values have the following meanings:

`normal@v1
下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
`sub@v
下付~異体( ~OpenType特能: `subs^tag )による表示を可能化する。 ◎ Enables display of subscript variants (OpenType feature: subs).
`super@v
上付~異体( ~OpenType特能: `sups^tag )による表示を可能化する。 ◎ Enables display of superscript variants (OpenType feature: sups).

下上付の意味論上の性質から,所与の~textrunに対する値が `sub$v / `super$v であるとき、その~textrunの中に,[ 異体~glyphが可用でない文字 ]が一つでもある場合、すべての文字に対し,[ この特能が適用されなかったとするときに用いられる~glyph ]に還元された形を用いて、模造による~glyphが合成され~MUST。 これは、[ 異体~glyphと合成されたものとの混在 — その場合,正しく揃わないことになる ]を避けるため,~textrunごとに行われるとする。 所与の文字のための下上付~glyphを欠いた~OpenType~fontの場合、~UAは,適切な下上付~glyphを合成し~MUST。 ◎ Because of the semantic nature of subscripts and superscripts, when the value is either ‘sub’ or ‘super’ for a given contiguous run of text, if a variant glyph is not available for all the characters in the run, simulated glyphs must be synthesized for all characters using reduced forms of the glyphs that would be used without this feature applied. This is done per run to avoid a mixture of variant glyphs and synthesized ones that would not align correctly. In the case of OpenType fonts that lack subscript or superscript glyphs for a given character, user agents must synthesize appropriate subscript and superscript glyphs.

`superscript-alt-synth^png
上付による代替~glyph(図左), 合成された上付~glyph(図中央), この2つの不正な混在(図右) ◎ Superscript alternate glyph (left), synthesized superscript glyphs (middle), and incorrect mixture of the two (right)

~text装飾が[ 下上付~glyphを包含している~textrun ]のみに適用される状況【?】においては、装飾の配置に伴う問題を避けるために,合成された~glyphが利用され~MUST。 ◎ In situations where text decorations are only applied to runs of text containing superscript or subscript glyphs, the synthesized glyphs must be used to avoid problems with the placement of decorations.

過去においては、~UAは, `sub^e / `sup^e 要素のための下上付を模造するために, `font-size^p と `vertical-align^p を用いていた。 下上付の定義法に後方互換性が保たれるようにするため、作者には,[ 古い~UAが,依然として古い仕組みを介して下上付を描画することになる ]ように,条件付き規則 `CSS3-CONDITIONAL$r を用いることが推奨される。 ◎ In the past, user agents have used font-size and vertical-align to simulate subscripts and superscripts for the sub and sup elements. To allow a backwards compatible way of defining subscripts and superscripts, it is recommended that authors use conditional rules [CSS3-CONDITIONAL] so that older user agents will still render subscripts and superscripts via the older mechanism.

これらの要素には `font-size$p: `smaller^v が利用されることが多いので、下上付に適用される実質的な拡縮率は,~sizeに依存して変わる — 要素の~text~sizeが大きいときは,約 3 分の 1 削減されることが多い一方で、~sizeが小さいときの削減量は,下上付を読み易くするため,ずっと少ない。 ~UAは、下上付~glyphを合成する方法を決めるときに,これを考慮するべきである。 ◎ Because font-size: smaller is often used for these elements, the effective scaling factor applied to subscript and superscript text varies depending upon the size. For larger text, the font size is often reduced by a third but for smaller text sizes, the reduction can be much less. This allows subscripts and superscripts to remain readable even within elements using small text sizes. User agents should consider this when deciding how to synthesize subscript and superscript glyphs.

OpenType ~font形式は,下上付の計量を OS/2 ~table `OPENTYPE$r にて定義しているが、実施においては常に正確aとは限らないので,下上付を合成するときには依拠できない。 ◎ The OpenType font format defines subscript and superscript metrics in the OS/2 table [OPENTYPE] but these are not always accurate in practice and so cannot be relied upon when synthesizing subscript and superscript glyphs.

作者は、~fontから提供される[ 下上付のための~glyph ]は,概して[ ~fontから~supportされる文字 ]の一部分に限られることに,留意するべきである。 例えば,下上付~glyphは、~Latin数字に対しては大抵は可用である一方、約物や普通字~文字のための~glyphが提供されることは,さほど多くはない。 この~propのために定義される[ 合成的な~fallback規則 ]により,下上付が常に現れるようになることは確保されるが、利用される~fontが,下上付に包含されている文字のうち,どれか一つでも適切な代替~glyphを提供していない場合の外観は、作者の期待に沿わなくなるかもしれない。 ◎ Authors should note that fonts typically only provide subscript and superscript glyphs for a subset of all characters supported by the font. For example, while subscript and superscript glyphs are often available for Latin numbers, glyphs for punctuation and letter characters are less frequently provided. The synthetic fallback rules defined for this property assure that subscripts and superscripts will always appear but the appearance may not match author expectations if the font used does not provide the appropriate alternate glyph for all characters contained in a subscript or superscript.

この~propは累積的でない。 下上付~内の要素に対する,この~propの適用により、下上付~glyphの配置が入子にされることはない。 この~propの値が[ `sub$v や `super$v ]にされている下で,~textrun内に包含されるイメージは、値が `normal$v1 であったとするときと同じに描かれることになる。 ◎ This property is not cumulative. Applying it to elements within a subscript or superscript won’t nest the placement of a subscript or superscript glyph. Images contained within text runs where the value of this property is sub or super will be drawn just as they would if the value was normal.

これらの制限のため、~UA~stylesheet用途には, `font-variant-position$p は推奨されない。 作者は、下上付を,それらが[ 指定された~fontから~supportされる文字 ]による狭い範囲のみを包含することになる所に限って,利用するべきである。 ◎ Because of these limitations, font-variant-position is not recommended for use in user agent stylesheets. Authors should use it in cases where subscripts or superscripts will only contain the narrow range of characters supported by the fonts specified.

注記: 異体~glyphは、既定の~glyphと同じ基底線を利用する。 配置の際に,基底線による~shiftは生じないので、異体~glyphの利用により,行内~boxの高さが影響されたり, 行boxの高さが改められることはない。 したがって,下上付~異体は、複柱~layoutなど,行間が一定に~~揃うことが重要になる状況においては,理想的なものになる。 ◎ Note: The variant glyphs use the same baseline as the default glyphs would use. There is no shift in the placement along the baseline, so the use of variant glyphs doesn’t affect the height of the inline box or alter the height of the linebox. This makes superscript and subscript variants ideal for situations where it’s important that leading remain constant, such as in multi-column layout.

`sub^e 要素のための,代表的な[ ~UA既定の~style ]: ◎ A typical user agent default style for the sub element:

sub {
  vertical-align: `sub$v;
  font-size: smaller;
  line-height: normal;
}

古い~UAにおいても依然として下付が示されるように,~typographic下付を指定するための、 `font-variant-position$p の用法: ◎ Using font-variant-position to specify typographic subscripts in a way that will still show subscripts in older user agents:

@supports ( font-variant-position: sub ) {

  sub {
    vertical-align: baseline;
    font-size: 100%;
    line-height: inherit;
    font-variant-position: sub;
  }

}

`font-variant-position$p ~propを~supportする~UAは、下付~異体~glyphを選定して,基底線や~font-sizeの調整ingを伴わずに それを描画することになる。 より古い~UAは、 `font-variant-position$p ~prop定義を無視して,下付のための標準の~既定を用いることになる。 ◎ User agents that support the font-variant-position property will select a subscript variant glyph and render this without adjusting the baseline or font-size. Older user agents will ignore the font-variant-position property definition and use the standard defaults for subscripts.

6.6. 頭字化: `font-variant-caps^p ~prop

`●名^ `font-variant-caps@p `●値^ `normal$v1 | `small-caps$v | `all-small-caps$v | `petite-caps$v | `all-petite-caps$v | `unicase$v | `titling-caps$v `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

この~propは,[[ 小頭字や極小~頭字, あるいは題字用 ]のために用いられる代替~glyph ]の選定を可能にする。 これらの~glyphは、周囲の通常の~glyphに自然に溶け込むように,特に~designされている — ~weight, および[ この目的0に合わせるために~textが単純に~resizeされたとするときに損なわれる,可読性 ]]を維持するために。 ◎ This property allows the selection of alternate glyphs used for small or petite capitals or for titling. These glyphs are specifically designed to blend well with the surrounding normal glyphs, to maintain the weight and readability which suffers when text is simply resized to fit this purpose.

各種~値の意味は,次で与えられる: ◎ Individual values have the following meanings:

`normal@v1
下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
`small-caps@v
小頭字( ~OpenType特能: `smcp^tag )による表示を可能化する。 小頭字s~glyphには,概して大文字の形が用いられるが、その~sizeは小文字に抑えられる。 ◎ Enables display of small capitals (OpenType feature: smcp). Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.
`smcp^png
`all-small-caps@v
大小文字の両者に対し,小頭字( ~OpenType特能: `c2sc^tag, `smcp^tag )による表示を可能化する。 ◎ Enables display of small capitals for both upper and lowercase letters (OpenType features: c2sc, smcp).
`petite-caps@v
極小~頭字( ~OpenType特能: `pcap^tag )による表示を可能化する。 ◎ Enables display of petite capitals (OpenType feature: pcap).
`all-petite-caps@v
大小文字の両者に対し,極小~頭字( ~OpenType特能: `c2pc^tag, `pcap^tag )による表示を可能化する。 ◎ Enables display of petite capitals for both upper and lowercase letters (OpenType features: c2pc, pcap).
`unicase@v
[[ 大文字に対する小頭字 ]と通常の小文字 ]の混在( ~OpenType特能: `unic^tag )による表示を可能化する。 【大小~alphabetの一部は大文字の,残りは小文字の形に “~~統一” した上で(その結果,見かけ上の大小の区別が無くなる)、それらの大きさが一定に~~揃えられた書体】 ◎ Enables display of mixture of small capitals for uppercase letters with normal lowercase letters (OpenType feature: unic).
`titling-caps@v
題字用~頭字( ~OpenType特能: `titl^tag )による表示を可能化する。 大文字~glyphは大抵,小文字と併用されるように~designされている。 それらが大文字ばかりの題字【タイトルバックなど】に用いられた場合、~~強く現れ過ぎになることがある。 題字用~頭字は、この状況のために特に~designされている。 ◎ Enables display of titling capitals (OpenType feature: titl). Uppercase letter glyphs are often designed for use with lowercase letters. When used in all uppercase titling sequences they can appear too strong. Titling capitals are designed specifically for this situation.

これらの~glyphの可用性は、当該の特能が,~fontの特能~listの中に定義されているかどうかに基づく。 ~UAは,任意選択で用字系ごとにこれを決められるが、文字ごとには,明示的に決めるべきでない。 ◎ The availability of these glyphs is based on whether a given feature is defined or not in the feature list of the font. User agents can optionally decide this on a per-script basis but should explicitly not decide this on a per-character basis.

一部の~fontには、この~propに述べられた特能のうち,一部分のみを~supportする, あるいは全く~supportしないものもある。 CSS 2.1 との後方互換性のため、[ `small-caps$v / `all-small-caps$v ]が指定されつつ,所与の~fontのための小頭字s~glyphが可用でない場合、~UAは, 小頭字s~fontを模造するべきである — 例えば、通常の~fontから,大文字~用の~glyphを取り出して、その縮小~versionにより,小文字~glyphを( `all-small-caps$v の場合は,大文字の~glyphも)置換するなど。 ◎ Some fonts may only support a subset or none of the features described for this property. For backwards compatibility with CSS 2.1, if small-caps or all-small-caps is specified but small-caps glyphs are not available for a given font, user agents should simulate a small-caps font, for example by taking a normal font and replacing the glyphs for lowercase letters with scaled versions of the glyphs for uppercase characters (replacing the glyphs for both upper and lowercase letters in the case of all-small-caps).

`synthetic-vs-real-small-caps^png
合成的なものと,本物の小頭字sの比較対照 ◎ Synthetic vs. real small-caps

周囲の~textと釣り合うようにするため、~fontは,これらの特能が可能化されたときに[ ~caseless文字のための代替~glyph ]を提供することがあるが、~UAが小頭字を模造するときは、[ ~caselessと見なされている符号位置のための代替 ]の模造を試みては~MUST_NOT。 ◎ To match the surrounding text, a font may provide alternate glyphs for caseless characters when these features are enabled but when a user agent simulates small capitals, it must not attempt to simulate alternates for codepoints which are considered caseless.

`small-capitals-variations^png
通常の表示(上半分/下半分の上段)と,[ small-caps (同, 中段), all-small-caps (同, 下段) ]が可能化された~caseless文字 ◎ Caseless characters with small-caps, all-small-caps enabled

これらの特能を~supportしない~fontに対し,[ `petite-caps$v / `all-petite-caps$v ]が指定された場合、 この~propは、[ `small-caps$v / `all-small-caps$v ](同順)が指定されていたかのように挙動する。 その特能を~supportしない~fontに対し `unicase$v が指定された場合、この~propは, `small-caps$v が[ “小文字~化された”大文字 ]にのみ適用されていたかのように挙動する 【どの大文字が “小文字~化された”ものと見なされる?(次の~~段落に従う?)】 。 この特能を~supportしない~fontに `titling-caps$v が指定された場合、この~propによる可視~効果はない。 模造による小頭字~glyphが用いられる下では、大小文字を欠く用字系に対しては,[ `small-caps$v, `all-small-caps$v, `petite-caps$v, `all-petite-caps$v, `unicase$v ]による可視~効果はない。 ◎ If either petite-caps or all-petite-caps is specified for a font that doesn’t support these features, the property behaves as if small-caps or all-small-caps, respectively, had been specified. If unicase is specified for a font that doesn’t support that feature, the property behaves as if small-caps was applied only to lowercased uppercase letters. If titling-caps is specified with a font that does not support this feature, this property has no visible effect. When simulated small capital glyphs are used, for scripts that lack uppercase and lowercase letters, small-caps, all-small-caps, petite-caps, all-petite-caps and unicase have no visible effect.

小頭字を模造するために大小変換が用いられる際には、その大小変換は, `text-transform$p ~propで用いられるものに合致し~MUST。 ◎ When casing transforms are used to simulate small capitals, the casing transformations must match those used for the text-transform property.

最終的な結果として,~normal~fontの中の縮小された大文字~glyphが、~textがすべて大文字として現れるように,小頭字s~fontの中の~glyphを置換し得る。 ◎ As a last resort, unscaled uppercase letter glyphs in a normal font may replace glyphs in a small-caps font so that the text appears in all uppercase letters.

`acronym-laden-text^png
頭字語が頻出する~textの可読性を向上させるための,小頭字の利用 ◎ Using small capitals to improve readability in acronym-laden text

~italic化されて描画される引用文は、最初の行では,小頭字sにもされる: ◎ Quotes rendered italicised, with small-caps on the first line:

blockquote            { font-style: italic; }
blockquote:first-line { font-variant: small-caps; }

<blockquote>I’ll be honor-bound to slap them like a haddock.</blockquote>

6.7. 数の整形: `font-variant-numeric^p ~prop

`●名^ `font-variant-numeric@p `●値^ `normal$v1 | [ `numeric-figure-values$t || `numeric-spacing-values$t || `numeric-fraction-values$t || `ordinal$v || `slashed-zero$v ] `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

数の形に対する制御を指定する。 下の例に、これらの値のいくつかを組合せて,[ これらの特能を~supportする~fontによる,~table状の~dataの描画 ]に波及させる方法を示す。 通常の段落~text内では,均衡幅の数字が用いられる一方で、一連の[ 数字の縦列 ]を適正に整列するように,一定幅の数字が用いられる: ◎ Specifies control over numerical forms. The example below shows how some of these values can be combined to influence the rendering of tabular data with fonts that support these features. Within normal paragraph text, proportional numbers are used while tabular numbers are used so that columns of numbers line up properly:

`numberstyles^png
数字~styleの用例 ◎ Using number styles

可能な組合せは: ◎ Possible combinations:

`numeric-figure-values@t
      = `lining-nums$v | `oldstyle-nums$v

`numeric-spacing-values@t
      = `proportional-nums$v | `tabular-nums$v

`numeric-fraction-values@t
      = `diagonal-fractions$v | `stacked-fractions$v

各種~値の意味は,次で与えられる: ◎ Individual values have the following meanings:

`normal@v1
下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
`lining-nums@v
~lining命数法( ~OpenType特能: `lnum^tag )による表示を可能化する。 ◎ Enables display of lining numerals (OpenType feature: lnum).
`oldstyle-nums@v
~old-style命数法( ~OpenType特能: `onum^tag )による表示を可能化する。 ◎ Enables display of old-style numerals (OpenType feature: onum).
`proportional-nums@v
均衡幅の命数法( ~OpenType特能: `pnum^tag )による表示を可能化する。 ◎ Enables display of proportional numerals (OpenType feature: pnum).
`tabular-nums@v
一定幅~命数法( ~OpenType特能: `tnum^tag )による表示を可能化する。 ◎ Enables display of tabular numerals (OpenType feature: tnum).
`diagonal-fractions@v
斜括線の分数( ~OpenType特能: `frac^tag )による表示を可能化する。 ◎ Enables display of lining diagonal fractions (OpenType feature: frac).
`frac^png
`stacked-fractions@v
水平括線の分数( ~OpenType特能: `afrc^tag )による表示を可能化する。 ◎ Enables display of lining stacked fractions (OpenType feature: afrc).
`afrc^png
`ordinal@v
序数を伴なう普通字~形( ~OpenType特能: `ordn^tag )による表示を可能化する。 ◎ Enables display of letter forms used with ordinal numbers (OpenType feature: ordn).
`ordinals^png
`slashed-zero@v
~slash付きのゼロ( ~OpenType特能: `zero^tag )による表示を可能化する。 ◎ Enables display of slashed zeros (OpenType feature: zero).
`zero^png

`ordinal$v においては、序数~形が上付~形と同じになることが多いが、それらの~markupは異なる。 上付に対しては、異体~propは,その上付を包含している下位~要素にのみ適用される。 ◎ In the case of ordinal, although ordinal forms are often the same as superscript forms, they are marked up differently. For superscripts, the variant property is only applied to the sub-element containing the superscript:

sup { font-variant-position: super; }
x<sup>2</sup>

序数に対しては、異体~propは,接尾辞のみならず,序数~全体(または包含している段落)に適用される: ◎ For ordinals, the variant property is applied to the entire ordinal number rather than just to the suffix (or to the containing paragraph):

.ordinal { font-variant-numeric: ordinal; }
<span class="ordinal">17th</span>

この事例では、 "th" のみが序数~形で現れることになり,数字dは不変のままにされる。 所与の言語に用いられている~typographic伝統様式に依存して、序数~形は,上付~形から異なり得る。 例えば,~Italianにおいては、序数~形の~designに下線が含められることがある。 ◎ In this case only the "th" will appear in ordinal form, the digits will remain unchanged. Depending upon the typographic traditions used in a given language, ordinal forms may differ from superscript forms. In Italian, for example, ordinal forms sometimes include an underline in the ordinal design.

自動的な分数と~old-style命数法により描画される,簡単なレシピ: ◎ A simple flank steak marinade recipe, rendered with automatic fractions and old-style numerals:

.amount { font-variant-numeric: oldstyle-nums diagonal-fractions; }

<h4>脇腹肉のステーキマリネ:</h4>
<ul>
  <li><span class="amount">2</span> tbsp. オリーブ油</li>
  <li><span class="amount">1</span> tbsp. レモン汁</li>
  <li><span class="amount">1</span> tbsp. しょうゆ</li>
  <li><span class="amount">1 1/2</span> tbsp. タマネギのみじん切り</li>
  <li><span class="amount">2 1/2</span> tsp. イタリア系~香草類</li>
  <li>塩, こしょう</li>
</ul>

<p>肉とマリネードを混ぜ,覆いを掛けて冷蔵庫に数時間か一晩程~置く。</p>

分数の特能は,段落~全体でない所にのみ適用されることに注意。 ~fontは大抵,この特能を~slash( / )文字の利用に基づく文脈依存~規則を用いて実装する。 そのようなわけで、それは,段落~levelの~style用途には相応しくない。 ◎ Note that the fraction feature is only applied to values not the entire paragraph. Fonts often implement this feature using contextual rules based on the use of the slash ('/') character. As such, it’s not suitable for use as a paragraph-level style.

6.8. 代替と~swash: `font-variant-alternates^p ~prop

`●名^ `font-variant-alternates@p `●値^ `normal$v1 | [ `stylistic$v(`feature-value-name$t) || `historical-forms$v || `styleset$v(`feature-value-name$t#) || `character-variant$v(`feature-value-name$t#) || `swash$v(`feature-value-name$t) || `ornaments$v(`feature-value-name$t) || `annotation$v(`feature-value-name$t) ] `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

~fontは、所与のどの文字に対しても,その文字のための既定の~glyphに加えて,種々の代替~glyphを提供し得る。 この~propは、これらの代替~glyphの選定に対する制御を提供する。 ◎ For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.

下に挙げられる~prop値の多くに対し,いくつかの異なる代替~glyphが可用になる。 可用な代替の[ 個数と, それらが表現するもの ]は,~font特有なので、これらはそれぞれ,下の各種 ~値~定義の中で `~font特有@ と記される。 これらの代替は,生来的に~font特有なので、【作者は】特定の[ ~font族またはその集合 ]に対し,`font-feature-values$at 規則を利用して[[ ~font特有の,数による `feature-index$t ]と[ ~custom `feature-value-name$t ]との結び付け ]をいくつか定義した上で、それらの~custom名を,この~propにおける特定の代替を選定するために用いる: ◎ For many of the property values listed below, several different alternate glyphs are available. How many alternates are available and what they represent is font-specific, so these are each marked font specific in the value definitions below. Because the nature of these alternates is font-specific, the @font-feature-values rule is used to define values for a specific font family or set of families that associate a font-specific numeric <feature-index> with a custom <feature-value-name>, which is then used in this property to select specific alternates:

@font-feature-values Noble Script { @swash { swishy: 1; flowing: 2; } }

p {
  font-family: Noble Script;
  font-variant-alternates: swash(flowing); /* ~swashの 2 番目の代替を利用
◎
use swash alternate #2
 */
}

特定0の `feature-value-name$t が[ 所与の族, あるいは 特定0の種類の特能 ]に対し 定義されていないときの, `font-variant-alternates$p の算出値は、それが定義されたとするときの算出値と同じで~MUST。 しかしながら~UAは、~glyphを選ぶ際には,これらの[ 未定義の `feature-value-name$t 識別子 ]を包含する~prop値を無視し~MUST。 ◎ When a particular <feature-value-name> has not been defined for a given family or for a particular feature type, the computed value must be the same as if it had been defined. However, property values that contain these undefined <feature-value-name> identifiers must be ignored when choosing glyphs.

/* 次の2つの~style規則は、実質的に同じ:
◎
these two style rules are effectively the same
 */
p { font-variant-alternates: swash(unknown-value); } /* 定義された値でないので,無視される
◎
not a defined value, ignored
 */
p { font-variant-alternates: normal; }

これにより、値は,所与の~font族の集合に対しては定義されて用いられる一方、~fallbackが生じたときには,~font族~名が異なるので無視されるようになる。 所与の値が,所与の~fontから~supportされる範囲に入らない場合、その値は無視される。 これらの値は、総称~font族には決して適用されない。 ◎ This allows values to be defined and used for a given set of font families but ignored if fallback occurs, since the font family name would be different. If a given value is outside the range supported by a given font, the value is ignored. These values never apply to generic font families.

各種~値の意味は,次で与えられる: ◎ Individual values have the following meanings:

`normal@v1
下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
`historical-forms@v
歴史的~形( ~OpenType特能: `hist^tag )による表示を可能化する。 ◎ Enables display of historical forms (OpenType feature: hist).
`hist^png
`stylistic@v(`feature-value-name$t)
~stylistic代替( `~font特有$, ~OpenType特能: `salt^tag `feature-index$t )による表示を可能化する。 ◎ Enables display of stylistic alternates (font specific, OpenType feature: salt <feature-index>).
`salt^png
`styleset@v(`feature-value-name$t#)
~stylistic~~設定( “stylistic sets” )( `~font特有$, ~OpenType特能: `ss^tag `feature-index$t )による表示を可能化する(~OpenType は現在 `ss01^tag から `ss20^tag までを定義している)。 ◎ Enables display with stylistic sets (font specific, OpenType feature: ss<feature-index> OpenType currently defines ss01 through ss20).
`ssnn^png
`character-variant@v(`feature-value-name$t#)
特定の文字異体( `~font特有$, ~OpenType特能: `cv^tag `feature-index$t )による表示を可能化する( ~OpenType は現在 `cv01^tag から `cv99^tag までを定義している)。 ◎ Enables display of specific character variants (font specific, OpenType feature: cv<feature-index> OpenType currently defines cv01 through cv99).
`swash@v(`feature-value-name$t)
~swash~glyph( `~font特有$, ~OpenType特能: `swsh^tag `feature-index$t, `cswh^tag `feature-index$t )による表示を可能化する。 ◎ Enables display of swash glyphs (font specific, OpenType feature: swsh <feature-index>, cswh <feature-index>).
`swsh^png
`ornaments@v(`feature-value-name$t)
~fontにて提供されているならば、既定の~glyphに対する,装飾体による置換を可能化する( `~font特有$, ~OpenType特能: `ornm^tag `feature-index$t )。 ~fontには、広範の文字に対し,代替として装飾体~glyphを提供0するものもある。 しかしながら、専横的な範囲の文字(例えば,英数字)を装飾体として表示させることは、~dataの意味論を歪めるので,拙い実践である。 ~font~designerには、作者が `ornaments$v を用いて 欲する~glyphを選定できるように,すべての装飾体(~Unicode ~Dingbats~block【 U+2700-27BF 】の中で明示的に符号化されたもの, 等々を除く)を[ ~bullet文字 ( U+2022 )のための代替 ]として符号化しておくことが奨励される。 ◎ Enables replacement of default glyphs with ornaments, if provided in the font (font specific, OpenType feature: ornm <feature-index>). Some fonts may offer ornament glyphs as alternates for a wide collection of characters; however, displaying arbitrary characters (e.g., alphanumerics) as ornaments is poor practice as it distorts the semantics of the data. Font designers are encouraged to encode all ornaments (except those explicitly encoded in the Unicode Dingbats blocks, etc.) as alternates for the bullet character (U+2022) to allow authors to select the desired glyph using ornaments.
`ornm^png
`annotation@v(`feature-value-name$t)
代替~annotation形( `~font特有$, ~OpenType特能: `nalt^tag `feature-index$t )による表示を可能化する。 ◎ Enables display of alternate annotation forms (font specific, OpenType feature: nalt <feature-index>).
`nalt^png

6.9. ~font特有の代替の定義法: `font-feature-values^at 規則

上に挙げられた[ `font-variant-alternates$p に可能な値 ]のいくつかは、`~font特有$とされている。 これらの特能に対しては、~fontは,単独の~glyphのみならず,[ 代替~glyphの集合 ]を[ それぞれの代替を選定するための~index ]も伴わせて,定義することもある。 これらは,~font族~特有なので、所与の族に対し,これらの~indexを命名する値 — `特能~値~名@ — を定義するために、 【すなわち、利用する代替~glyphを,~indexではなく,名前を通して選定できるようにするために、】 `font-feature-values@at 規則が利用される。 ◎ Several of the possible values of font-variant-alternates listed above are labeled as font specific. For these features fonts may define not just a single glyph but a set of alternate glyphs with an index to select a given alternate. Since these are font family specific, the @font-feature-values rule is used to define named values for these indices for a given family.

注記: これらの規則を CSS Object Model を介して改変するために利用される~interfaceについての記述は、 `CSSFontFeatureValuesRule^I ~interface 節にて見られる。 ◎ Note: See §8.2 The CSSFontFeatureValuesRule interface for a description of the interfaces used to modify these rules via the CSS Object Model.

前~節に示された `swash$v "Q" の事例では、 ~swashは,次の~style規則を用いて指定できる: ◎ In the case of the swash Q in the example shown above, the swash could be specified using these style rules:

@font-feature-values Jupiter Sans {
  @swash {
    delicate: 1;
    `flowing^css: 2;
  }
}

h2 { font-family: Jupiter Sans, sans-serif; }

/* h2 ~headingの中では, 2 番目の(~index 2 の)~swash異体が示されるようにする
◎
show the second swash variant in h2 headings
 */
h2:first-letter { font-variant-alternates: swash(`flowing^v); }

<h2>Quick</h2>

`Jupiter_Sans^F が在るときは, 2 番目の~swash代替が表示され、無いときは,どの~swash文字も示されないことになる — `特能~値~名$ "`flowing^v" は、 `Jupiter_Sans^F 族に対してのみ,~~特に定義されているので。 "@" ~markは,`特能~値~名$を引数にとる~prop値の名前を指示し、 "`flowing^css" が,作者から選ばれる名前である。 各~代替を表現する~indexは、当の~fontの~data内にて定義される。 ◎ When Jupiter Sans is present, the second alternate swash alternate will be displayed. When not present, no swash character will be shown, since the specific named value "flowing" is only defined for the Jupiter Sans family. The @-mark indicates the name of the property value for which a named value can be used. The name "flowing" is chosen by the author. The index that represents each alternate is defined within a given font’s data.

6.9.1. 基本的~構文

`font-feature-values$at 規則( `font_feature_values_rule$g )は、次の並びで構成される:

  1. `~font族~名~list$
  2. 一連の[ ~at-ruleの形をとる,個々の`特能~値~block$ ]からなる~block

各 `特能~値~block@ ( `feature_value_block$g )は、一連の[ `特能~値 定義$ — ~listに所与の~font族たちを利用する下での,特定の~font特能に対応する一連の`特能~値~名$ ]からなる集合を定義する。 この集合は、実質的に, ⟨族, 特能, ident⟩ から ⟨values⟩ への対応付けを定義する。 ここで ⟨values⟩ は、[ 所与の~fontに対し定義される特定の特能 ]に用いられている,一連の[ 数による~index ]である。 【 ident は~CSS識別子の構文に従う意味での,特能~値~名を表す】

◎ An @font-feature-values rule is composed of a list of font families followed by a block containing individual feature value blocks that take the form of @-rules. Each block defines a set of named values for a specific font feature when a given set of font families is used. Effectively, they define a mapping of ⟨family, feature, ident⟩ → ⟨values⟩ where ⟨values⟩ are the numeric indices used for specific features defined for a given font.

文法においては、この仕様は,次の生成規則を定義する: ◎ In terms of the grammar, this specification defines the following productions:

`font_feature_values_rule@g
  : `FONT_FEATURE_VALUES_SYM$g `S^g* `font_family_name_list$g `S^g*
    '{' `S^g* `feature_value_block$g? [ `S^g* `feature_value_block$g? ]* '}' `S^g*
  ;

`font_family_name_list@g
  : `font_family_name$g [ `S^g* ',' `S^g* `font_family_name$g ]*
  ;

`font_family_name@g
  : `STRING^g | [ `IDENT^g [ `S^g* `IDENT^g ]* ]
  ;

`feature_value_block@g
  : `feature_type$g `S^g*
    '{' `S^g* `feature_value_definition$g? [ `S^g* ';' `S^g* `feature_value_definition$g? ]* '}' `S^g*
  ;

`feature_type@g:
  `ATKEYWORD^g
  ;

`feature_value_definition@g
  : `IDENT^g `S^g* ':' `S^g* `NUMBER^g [ `S^g* `NUMBER^g ]*
  ;

`S^g および `STRING^g, `IDENT^g, `ATKEYWORD^g, `NUMBER^g は `CSS21$r の ~scanner および ~token化 にて定義される。

次の新たな~tokenが導入される: ◎ The following new token is introduced:

@{F}{O}{N}{T}{-}{F}{E}{A}{T}{U}{R}{E}{-}{V}{A}{L}{U}{E}{S}   {return `FONT_FEATURE_VALUES_SYM@g;}

各 `特能~値~block$は、【構文解析においては】 ~at-rule として取扱われ,[ 次の[ ~blockまたは~semi-colon ]のうち,最初に来る方 ]までのすべてからなる。 ◎ Feature value blocks are handled as at-rules, they consist of everything up to the next block or semi-colon, whichever comes first.

`~font族~名~list@ ( `font_family_name_list$g )は、一連の~font族~名( `font_family_name$g )からなる,~comma区切りの~listであって、各~font族~名は[ `font-family$p ~propに対する `family-name$t の定義 ]に合致するものである。 これは、名前を持つ~font族のみが許容されることを意味する — ~listの中に[ 総称~名や~system~font~名 ]を含む規則は,構文~errorである。 しかしながら,~UAが総称~fontを[ 特定の名前を持つ~font(例えば `Helvetica^F ) ]であるものと定義する場合、[ その族~名に結付けられている設定群 ]が,用いられることになる。 `~font族~名~list$内に構文~errorがある場合、規則~全体が無視され~MUST。 ◎ The font family list is a comma-delimited list of font family names that match the definition of <family-name> for the font-family property. This means that only named font families are allowed, rules that include generic or system fonts in the list of font families are syntax errors. However, if a user agent defines a generic font to be a specific named font (e.g. Helvetica), the settings associated with that family name will be used. If syntax errors occur within the font family list, the entire rule must be ignored.

`特能~値~block$内の `特能~種別@ ( `feature_type$g )は,[ 文字 @, および[ `font-variant-alternates$p の[ `~font特有$の各種~prop値 ]のうちのいずれか一つの名前(例えば `swash$v ) ]]の並びである。 `特能~値 定義@ ( `feature_value_definition$g )内の識別子( `IDENT^g )が、`特能~値~名$( `feature-value-name^t )を定義する。 この識別子の文字大小は、~CSS利用者~識別子の規則に従い,区別される。 それらは、所与の[ ~font族と`特能~種別$ ]の組に対してのみ一意であり、同じ識別子は,`特能~種別$ごとに別個の値として扱われる。 所与の[ ~font族と`特能~種別$ ]の組に対し,同じ識別子が複数回 定義されている場合、それらのうち最後の値が用いられる。 所与の識別子に結付けられる値 `feature-index@t たちは, 0 以上の整数~値に限られる。 ◎ Within feature value blocks, the feature type is "@"" followed by the name of one of the font specific property values of font-variant-alternates (e.g. swash). The identifiers used within feature value definitions define <feature-value-name>s and follow the rules of CSS user identifiers and are case-sensitive. They are unique only for a given set of font families and feature type. The same identifier used with a different feature type is treated as a separate and distinct value. If the same identifier is defined mulitple times for a given feature type and font family, the last defined value is used. Values associated with a given identifier are <feature-index>es and are limited to integer values 0 or greater.

無効な[ 識別子や値 ]など,`特能~値 定義$ 内に構文~errorがあるときは、~style宣言における構文~errorの取扱いと同様に,`特能~値 定義$ 全体が~~除外され~MUST。 `特能~種別$が無効であるときは、当の`特能~値~block$全体が無視され~MUST。 ◎ When syntax errors occur within a feature value definition, such as invalid identifiers or values, the entire feature value definition must be omitted, just as syntax errors in style declarations are handled. When the feature type is invalid, the entire associated feature value block must be ignored.

構文~errorが含まれている規則: ◎ Rules that are equivalent given syntax error handling:

@font-feature-values Bongo {
  @swash { ornate: 1; }
  annotation { boxed: 4; } /* @annotation とされるべき!
◎
should be @annotation!
 */
  @swash { double-loops: 1; flowing: -1; } /* 値が負
◎
negative value
 */
  @ornaments ; /* 不完全な定義
◎
incomplete definition
 */
  @styleset { double-W: 14; sharp-terminals: 16 1 } /* ~semi-colon( ";" )が抜けている
◎
missing ;
 */
  redrum  /* でたらめな編集上の誤り
◎
random editing mistake
 */
}

上の例は次と等価になる: ◎ The example above is equivalent to:

@font-feature-values Bongo {
  @swash { ornate: 1; }
  @swash { double-loops: 1; }
  @styleset { double-W: 14; sharp-terminals: 16 1; }
}

所与の族に対し,複数の `font-feature-values$at 規則が定義されている場合、結果の[ 値~定義 ]は、これらの規則に包含されている一連の定義の和集合になる。 これにより、[ 所与の~font族に対する`特能~値~名$の集合 ]を,[ ~siteのための大域的なもの ]と[ 頁~別の特定の追加 ]に分けて定義-できるようになる。 ◎ If multiple @font-feature-values rules are defined for a given family, the resulting values definitions are the union of the definitions contained within these rules. This allows a set of named values to be defined for a given font family globally for a site and specific additions made per-page.

~site全体, および 頁ごと,における特能~値の利用: ◎ Using both site-wide and per-page feature values:

site.css:

  @font-feature-values Mercury Serif {
    @styleset {
      stacked-g: 3; /* "g", "a" の“二階建て” ~version
◎
"two-storey" versions of g, a
 */
      stacked-a: 4;
    }
  }

page.css:

  @font-feature-values Mercury Serif {
    @styleset {
      geometric-m: 7; /* "m" の代替~version
◎
alternate version of m
 */
    }
  }

  body {
    font-family: Mercury Serif, serif;

    /* 
stacked "g" と代替 "m" の両者の利用を可能化する:
◎
enable both the use of stacked g and alternate m
 */
    font-variant-alternates: styleset(stacked-g, geometric-m);
  }

各~fontに共通の`特能~値~名$を利用することにより、作者は,~fontごとに下層の異体字選択子が異なるときでも,それを単独の~style規則に受持たすことが~~可能になる。 下の例における いずれかの~fontが見出されたなら、丸付き数字~glyphが用いられることになる: ◎ Using a commonly named value allows authors to use a single style rule to cover a set of fonts for which the underlying selector is different for each font. If either font in the example below is found, a circled number glyph will be used:

@font-feature-values Taisho Gothic {
  @annotation { boxed: 1; circled: 4; }
}

@font-feature-values Otaru Kisa {
  @annotation { circled: 1; black-boxed: 3; }
}

h3.title {
  /* 両者の~fontに対し定義される丸付き形
◎
circled form defined for both fonts
 */
  font-family: Taisho Gothic, Otaru Kisa;
  font-variant: annotation(circled);
}

6.9.2. ~multi-valued特能~値 ~定義

`~font特有$の `font-variant-alternates$p ~propの大部分は, 1 個の値を引数にとる(例えば,`swash$vf )が、~prop値 `character-variant$vf は, 2 個の値をとれ、 `styleset$vf は,何個でも値をとれる。 ◎ Most font specific font-variant-alternates property values take a single value (e.g. swash()). The character-variant() property value allows two values and styleset() allows an unlimited number.

~prop値 `styleset$vf に対する複数の値は、可能化される一連の[ ~style集合 ]を指示する。 1 から 99 までの値は,[ `ss01^tag から `ss99^tag まで ]の ~OpenType特能を可能化する。 ただし,~OpenType標準が~~公式に定義するのは[ `ss01^tag から `ss20^tag まで ]である。 ~OpenType~fontに対しては、値が[ 0 である, または 99 より大きい ]場合でも,構文解析の際に構文~errorは生成されないが、いかなる ~OpenType特能も可能化されない。 ◎ For the styleset property value, multiple values indicate the style sets to be enabled. Values between 1 and 99 enable OpenType features ss01 through ss99. However, the OpenType standard only officially defines ss01 through ss20. For OpenType fonts, values greater than 99 or equal to 0 do not generate a syntax error when parsed but enable no OpenType features.

@font-feature-values Mars Serif {
  @styleset {
    alt-g: 1;        /*  `ss01^tag = 1 を含意する
◎
implies ss01 = 1
 */
    curly-quotes: 3; /*  `ss03^tag = 1 を含意する
◎
implies ss03 = 1
 */
    code: 4 5;       /*  `ss04^tag = 1, `ss05^tag = 1 を含意する
◎
implies ss04 = 1, ss05 = 1
 */
  }

  @styleset {
    dumb: 125;       /* 99 を超えるので無視される
◎
>99, ignored
 */
  }

  @swash {
    swishy: 3 5;     /* ~swashに対する複数個の値は,構文~error
◎
more than 1 value for swash, syntax error
 */
  }
}

p.codeblock {
  /*  `ss03^tag = 1, `ss04^tag = 1, `ss05^tag = 1 を含意する
◎
implies ss03 = 1, ss04 = 1, ss05 = 1
 */
  font-variant-alternates: styleset(curly-quotes, code);
}

`character-variant$v に対する[ 1 から 99 まで ]の単独の値は,対応する[ `cv01^tag から `cv99^tag まで ]の ~OpenType特能の可能化を指示する。 ~OpenType~fontに対しては、[ 0 である, または 99 より大きい ]値は無視され,構文解析の際に構文~errorは生成されないが、いかなる~OpenType特能も可能化されない。 2 個の値が与えられたときは,最初の値が利用される特能を指示し, 2 番目のものが その特能に渡される値になる。 所与の名前に対し 2 個より多い値があてがわれた場合、構文~errorが生じ,`特能~値 定義$ 全体が無視される。 ◎ For character-variant, a single value between 1 and 99 indicates the enabling of OpenType feature cv01 through cv99. For OpenType fonts, values greater than 99 or equal to 0 are ignored but do not generate a syntax error when parsed but enable no OpenType features. When two values are listed, the first value indicates the feature used and the second the value passed for that feature. If more than two values are assigned to a given name, a syntax error occurs and the entire feature value definition is ignored.

@font-feature-values MM Greek {
  @character-variant { alpha-2: 1 2;   } /* `cv01^tag = 2 を含意する
◎
implies cv01 = 2
 */
  @character-variant { beta-3 : 2 3;   } /* `cv02^tag = 3 を含意する
◎
implies cv02 = 3
 */
  @character-variant { epsilon: 5 3 6; } /* 3 個の値, 構文~error, 定義は無視される
◎
more than 2 values, syntax error, definition ignored
 */
  @character-variant { gamma  : 12;    } /* `cv12^tag = 1 を含意する
◎
implies cv12 = 1
 */
  @character-variant { zeta   : 20 3;  } /* `cv20^tag = 3 を含意する
◎
implies cv20 = 3
 */
  @character-variant { zeta-2 : 20 2;  } /* `cv20^tag = 2 を含意する
◎
implies cv20 = 2
 */
  @character-variant { silly  : 105;   } /* 99 を超えるので無視される
◎
>99, ignored
 */
  @character-variant { dumb   : 323 3; } /* 99 を超えるので無視される
◎
>99, ignored
 */
}

#title {
  /* 3 番目の代替 beta, 最初の代替 gamma を利用
◎
use the third alternate beta, first alternate gamma
 */
  font-variant-alternates: character-variant(beta-3, gamma);
}

p {
  /* zeta-2, zeta の並び, `cv20^tag = 2 を含意する
◎
zeta-2 follows zeta, implies cv20 = 2
  */
  font-variant-alternates: character-variant(zeta, zeta-2);
}

.special {
  /* zeta, zeta-2 の並び `cv20^tag = 3 を含意する
◎
zeta follows zeta-2, implies cv20 = 3
  */
  font-variant-alternates: character-variant(zeta-2, zeta);
}
`byzantineseal^png
文字異体により表示される Byzantine seal (ビザンティンの封印)~text ◎ Byzantine seal text displayed with character variants

上の図の赤色の~textは,[[[[ A.D 8 世紀の Byzantine seal ]上に見出される文字~形 ]を模倣する文字異体 ]を包含している~font ]を用いて描画されたものである。 その下の黒色の 2 行は、同じ~textを異体を伴わない~fontで表示したものである。 seal 上では, "U" と "N" に対する 2 個の異体が用いられていることに注意。 ◎ In the figure above, the text in red is rendered using a font containing character variants that mimic the character forms found on a Byzantine seal from the 8th century A.D. Two lines below is the same text displayed in a font without variants. Note the two variants for U and N used on the seal.

@font-feature-values Athena Ruby {
  @character-variant {
    leo-B: 2 1;
    leo-M: 13 3;
    leo-alt-N: 14 1;
    leo-N: 14 2;
    leo-T: 20 1;
    leo-U: 21 2;
    leo-alt-U: 21 4;
  }
}

p {
  font-variant: discretionary-ligatures,
                character-variant(leo-B, leo-M, leo-N, leo-T, leo-U);
}

span.alt-N {
  font-variant-alternates: character-variant(leo-alt-N);
}

span.alt-U {
  font-variant-alternates: character-variant(leo-alt-U);
}

<p>ENO....UP͞RSTU<span class="alt-U">U</span>͞<span class="alt-U">U</span>ΚΑΙTỤẠG̣IUPNS</p>

<p>LEON|ΚΑΙCONSTA|NTI<span class="alt-N">N</span>OS..|STOIBAṢ.|LIṢROM|AIO<span class="alt-N">N</span></p>

6.10. ~East-Asian~textの描画: `font-variant-east-asian^p ~prop

`●名^ `font-variant-east-asian@p `●値^ `normal$v1 | [ `east-asian-variant-values$t || `east-asian-width-values$t || `ruby$v ] `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

~East-Asian~textにおける~glyphの[ 代用と~sizing ]の制御を可能にする。 ◎ Allows control of glyph substitution and sizing in East Asian text.

`east-asian-variant-values@t
      = `jis78$v | `jis83$v | `jis90$v | `jis04$v | `simplified$v | `traditional$v

`east-asian-width-values@t
      = `full-width$v | `proportional-width$v

各種~値の意味は,次で与えられる: ◎ Individual values have the following meanings:

`normal@v1
下に挙げられるどの特能も,可能化されない。 ◎ None of the features listed below are enabled.
`jis78@v
JIS78 形( ~OpenType特能: `jp78^tag )の描画を可能化する。 ◎ Enables rendering of JIS78 forms (OpenType feature: jp78).
`jp78^png
`jis83@v
JIS83 形( ~OpenType特能: `jp83^tag )の描画を可能化する。 ◎ Enables rendering of JIS83 forms (OpenType feature: jp83).
`jis90@v
JIS90 形( ~OpenType特能: `jp90^tag )の描画を可能化する。 ◎ Enables rendering of JIS90 forms (OpenType feature: jp90).
`jis04@v
JIS2004 形( ~OpenType特能: `jp04^tag )の描画を可能化する。 ◎ Enables rendering of JIS2004 forms (OpenType feature: jp04).
各種 ~Japaneseの国家標準にて定義される~glyph形が,~種々の JIS 異体に反映される。 ~fontは一般に,最新の国家標準により定義される~glyphを含むが、例えば,サイネージに合致させるために、より古い異体の利用が必要とされることもある。 ◎ The various JIS variants reflect the glyph forms defined in different Japanese national standards. Fonts generally include glyphs defined by the most recent national standard but it’s sometimes necessary to use older variants, to match signage for example.
`simplified@v
簡略化~形( ~OpenType特能: `smpl^tag )の描画を可能化する。 ◎ Enables rendering of simplified forms (OpenType feature: smpl).
`traditional@v
伝統的~形( ~OpenType特能: `trad^tag )の描画を可能化する。 ◎ Enables rendering of traditional forms (OpenType feature: trad).

値 `simplified$v と `traditional$v は,[[[ 年月に渡り簡略化されてきた形であるが,一部の文脈においては,より古い伝統的な形も依然として利用されている ]ような文字 ]のための~glyph形 ]に対する制御を可能にする。 [ 文字と~glyph形 ]の正確xな集合は、所与の~fontが~designされた文脈により,ある程度~変わり得ることになる。 ◎ The simplified and traditional values allow control over the glyph forms for characters which have been simplified over time but for which the older, traditional form is still used in some contexts. The exact set of characters and glyph forms will vary to some degree by context for which a given font was designed.

`trad^png
`full-width@v
全角~異体( ~OpenType特能: `fwid^tag )の描画を可能化する。 ◎ Enables rendering of full-width variants (OpenType feature: fwid).
`proportional-width@v
均衡幅の異体( ~OpenType特能: `pwid^tag )の描画を可能化する。 ◎ Enables rendering of proportionally-spaced variants (OpenType feature: pwid).
`pwid^png
`ruby@v
~ruby異体~glyph( ~OpenType特能: `ruby^tag )による表示を可能化する。 ~ruby~textは一般に,結付けられている本文~textより小さいので、~font~designerは,~ruby用途の,[ 既定の~glyphの縮小~version ]より読み易い,特別な~glyphを~designすることがある。 ~glyph選定のみが影響され、[ 結付けられている~fontの拡縮 ]や[ ~text行の~layoutに影響するような他の変化 ]は生じない。 下の赤色の~ruby~textに,既定の~glyphによるもの(上段)と, ~ruby異体~glyphによるもの(下段)を示す。 描線の太さに若干の相違があることに注意。 ◎ Enables display of ruby variant glyphs (OpenType feature: ruby). Since ruby text is generally smaller than the associated body text, font designers can design special glyphs for use with ruby that are more readable than scaled down versions of the default glyphs. Only glyph selection is affected, there is no associated font scaling or other change that affects line layout. The red ruby text below is shown with default glyphs (top) and with ruby variant glyphs (bottom). Note the slight difference in stroke thickness.
`rubyshinkansen^png

6.11. ~font描画のための全般的な略式: `font-variant^p ~prop

`●名^ `font-variant@p `●値^ `normal$v1 | `none$v1 | [ `common-lig-values$t || `discretionary-lig-values$t || `historical-lig-values$t || `contextual-alt-values$t || `stylistic$v(`feature-value-name$t) || `historical-forms$v || `styleset$v(`feature-value-name$t#) || `character-variant$v(`feature-value-name$t#) || `swash$v(`feature-value-name$t) || `ornaments$v(`feature-value-name$t) || `annotation$v(`feature-value-name$t) || [ `small-caps$v | `all-small-caps$v | `petite-caps$v | `all-petite-caps$v | `unicase$v | `titling-caps$v ] || `numeric-figure-values$t || `numeric-spacing-values$t || `numeric-fraction-values$t || `ordinal$v || `slashed-zero$v || `east-asian-variant-values$t || `east-asian-width-values$t || `ruby$v || [ `sub$v | `super$v ] ] `●初^ `normal$v1 `●適^ 個々の~propを見よ `●継^ 個々の~propを見よ `●百^ 個々の~propを見よ `●媒^ 個々の~propを見よ `●算^ 個々の~propを見よ `●ア^ 個々の~propを見よ `●表終^

`font-variant$p ~propは、すべての `font-variant-*^p 下位propに対する略式~propである。 値 `normal@v1 は、 `font-variant$p のすべての下位propを,それぞれの初期値に再設定する。 値 `none@v1 は、 `font-variant-ligatures$p を `none$v1 に設定し,他のすべての~font特能~propを それぞれの初期値に再設定する。 他の略式~propと同様、 `font-variant$pの利用により,未指定の `font-variant$p 下位propは,それぞれの初期値に再設定される。 それは、[ `font-language-override$p や `font-feature-settings$p ]の値を再設定しない。 ◎ The font-variant property is a shorthand for all font-variant-* subproperties. The value normal resets all subproperties of font-variant to their inital value. The none value sets font-variant-ligatures to none and resets all other font feature properties to their initial value. Like other shorthands, using font-variant resets unspecified font-variant subproperties to their initial values. It does not reset the values of either font-language-override or font-feature-settings.

6.12. 低次の~font特能~設定群の制御: `font-feature-settings^p ~prop

`●名^ `font-feature-settings@p `●値^ `normal$v1 | `feature-tag-value$t# `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

この~propは、~OpenType~font特能に対する低次の制御を提供する。 これには、[[[[[ 広範には利用されてはいないが,特定0の利用事例には必要になる ]ような~font特能 ]に対する~access ]を提供する ]ための用途 ]が意図されている。 ◎ This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.

作者は、一般に,可能な所では[ `font-variant$p とその各種 下位prop ]を利用し、[[ たまにしか利用されない,特定0の~font特能 ]に~accessする手段が,他にない ]ような特別な場合に限って,この~propを用いるべきである。 ◎ Authors should generally use font-variant and its related subproperties whenever possible and only use this property for special cases where its use is the only way of accessing a particular infrequently used font feature.

/* 小頭字sを可能化して,2 番目の~swash代替を用いる
◎
enable small caps and use second swash alternate
 */
font-feature-settings: "smcp", "swsh" 2;

値 `normal@v1 は、この~propにより,~glyph選定や位置決めが変わることはないことを意味する。 ◎ A value of normal means that no change in glyph selection or positioning occurs due to this property.

特能~tag値の構文は次で与えられる: ◎ Feature tag values have the following syntax:

`feature-tag-value@t
      = `string$t [ `integer$t | `on^v | `off^v ]?

`string$t は~OpenType特能~tagであり,文字大小は区別される。 ~OpenType仕様による指定に従い,特能~tagは 4 個の ASCII文字を包含する。 [ ~~長さが 4 文字に一致しない ], あるいは[ 符号位置の範囲 U+20–7E に入らない文字を包含している ]~tag文字列は、無効である。 特能~tagは,[ ~fontの中で定義される特能~tag ]に合致させるのみで十分なので、それらは[ 明示的に登録されている ~OpenType特能 ]に制限されない。 ~custom特能~tagを定義する~fontは、 ~OpenType仕様 `OPENTYPE-FEATURES$r に定義される ~tag名~規則 に従うべきである。 ◎ The <string> is a case-sensitive OpenType feature tag. As specified in the OpenType specification, feature tags contain four ASCII characters. Tag strings longer or shorter than four characters, or containing characters outside the U+20–7E codepoint range are invalid. Feature tags need only match a feature tag defined in the font, so they are not limited to explicitly registered OpenType features. Fonts defining custom feature tags should follow the tag name rules defined in the OpenType specification [OPENTYPE-FEATURES].

~font内に無い特能~tagは,無視される — ~UAは、[ そのような特能~tagに基づく,~fallbackの挙動 ]を合成しようと試みては~MUST_NOT。 唯一の例外として,~UAは、[[ `kern^tag ~tableの~~形で~kerning~dataを包含するが, `GPOS^c ~tableの中では `kern^tag 特能の~supportを欠いている ]ような~font ]による `kern^tag 特能を,合成的に~supportしても~MAY。 ◎ Feature tags not present in the font are ignored; a user agent must not attempt to synthesize fallback behavior based on these feature tags. The one exception is that user agents may synthetically support the kern feature with fonts that contain kerning data in the form of a "kern" table but lack kern feature support in the "GPOS" table.

注記: 一般に,~kerningを明示的に可能化-/不能化するためには、作者は `font-kerning$p ~propを用いるべきである。 この~propは常に,いずれの種類の~kerning~dataを伴う~fontにも影響するので。 ◎ Note: In general, authors should use the font-kerning property to explicitly enable or disable kerning since this property always affects fonts with either type of kerning data.

特能~tagが~font内に在るならば、 `integer$t 値は,~glyph選定のために用いられる~indexを指示する。 値は 0 以上で~MUST。 値 `0^v は,特能を不能化することを指示する。 真偽値の特能に対する値 `1^v は、その特能を可能化する。 真偽値でない特能に対する 1 以上の値は、その特能を可能化すると同時に,その特能~選定~indexを指示する。 値 `on^v は `1^v と同義であり, `off^v は `0^v と同義である。 省略された場合の値は, `1^v と見做される。 ◎ If present, a value indicates an index used for glyph selection. An <integer> value must be 0 or greater. A value of 0 indicates that the feature is disabled. For boolean features, a value of 1 enables the feature. For non-boolean features, a value of 1 or greater enables the feature and indicates the feature selection index. A value of on is synonymous with 1 and off is synonymous with 0. If the value is omitted, a value of 1 is assumed.

font-feature-settings: "dlig" 1;
    /* 
`dlig^tag=1 は随意合字を可能化する
◎
dlig=1 enable discretionary ligatures
 */
font-feature-settings: "smcp" on;
    /* 
`smcp^tag=1 は小頭字sを可能化する
◎
smcp=1 enable small caps
 */
font-feature-settings: "c2sc";
    /* 
`c2sc^tag=1 は頭字→小頭字( caps to small caps )を可能化する
◎
c2sc=1 enable caps to small caps
 */
font-feature-settings: "liga" off;
    /* 
`liga^tag=0 は共通合字を不要とする
◎
liga=0 no common ligatures
 */
font-feature-settings: "tnum", "hist";
    /* 
`tnum^tag=1, `hist^tag=1 は 一定幅~数字, および歴史的~形を可能化する
◎
tnum=1, hist=1 enable tabular numbers and historical forms
 */
font-feature-settings: "tnum" "hist";
    /* 
無効 — ~comma区切りの~listにする必要がある
◎
invalid, need a comma-delimited list
 */
font-feature-settings: "silly" off;
    /* 
無効 — ~tagが長過ぎる
◎
invalid, tag too long
 */
font-feature-settings: "PKRN";
    /* 
`PKRN^tag=1 は~custom特能を可能化する
◎
PKRN=1 enable custom feature
 */
font-feature-settings: dlig;
    /* 
無効 — ~tagは【識別子ではなく,】文字列で~MUST
◎
invalid, tag must be a string
 */

[ ~fontから~supportされる範囲 ]より大きい値が指定されているときの挙動は、明示的に未定義になる。 真偽値の特能に対しては、これらは一般に,その特能を可能化することになる。 真偽値でない特能に対しては、範囲~外の値は,一般に値 0 と等価になる。 しかしながら,いずれの場合も、正確xな挙動は,~fontがどのように~designされているかに(特に,特能が どの種別の表引きを用いて定義されているかに)依存することになる。 ◎ When values greater than the range supported by the font are specified, the behavior is explicitly undefined. For boolean features, in general these will enable the feature. For non-boolean features, out of range values will in general be equivalent to a 0 value. However, in both cases the exact behavior will depend upon the way the font is designed (specifically, which type of lookup is used to define the feature).

特能~tagは,特に~OpenType特能~tagのために定義されているが、将来においては,[ ~font特能を~supportする他の現代の~font形式のための,特能~tag ]が追加され得る。 可能な所では,他の~font形式のために定義される特能は、登録された ~OpenType~tagの~patternに従うよう試みられるべきである。 ◎ Although specifically defined for OpenType feature tags, feature tags for other modern font formats that support font features may be added in the future. Where possible, features defined for other font formats should attempt to follow the pattern of registered OpenType tags.

下の~Japanese~textは、半角カナ文字により描画されることになる: ◎ The Japanese text below will be rendered with half-width kana characters:

body { font-feature-settings: "hwid"; /* 半角~OpenType特能
◎
Half-width OpenType feature
 */ }

<p>毎日カレー食べてるのに、飽きない</p>

6.13. ~font言語の上書き: `font-language-override^p ~prop

`●名^ `font-language-override@p `●値^ `normal$v1 | `string$vt `●初^ `normal$v1 `●適^ すべての要素 `●継^ される `●百^ 利用不可 `●媒^ 視覚的 `●算^ 指定値 `●ア^ 離散的 `●表終^

言語~特有の表示 節で述べたように、作者は,通常は[ 要素の内容~言語 ]の設定を通して,[ 言語~特有の[ ~glyph代用と位置決め ]]の利用を制御できる: ◎ Normally, authors can control the use of language-specific glyph substitutions and positioning by setting the content language of an element, as described in §6.2 Language-specific display:

<!-- 
S’gaw Karen 【カレン諸語の一つ,スゴウ=ブゲ諸語】に固有の特能を用いて~textを表示
◎
Display text using S'gaw Karen specific features -->
<p lang="ksw">...</p>

一部の場合には、作者は,内容~言語と異なる言語機構を指定する必要が生じ得る — 例えば,別の言語の~typographic伝統様式を模倣するために。 `font-language-override$p ~propは、作者が[ 内容~言語により黙示される言語機構 ]を上書きして,~fontの言語機構を明示的に指定できるようにする。 ◎ In some cases, authors may need to specify a language system that differs from the content language, for example due to the need to mimic another language’s typographic traditions. The font-language-override property allows authors to explicitly specify the language system of the font, overriding the language system implied by the content language.

各種~値の意味は,次で与えられる: ◎ Values have the following meanings:

`normal@v1
~OpenType~fontによる描画の際の,~OpenType言語機構の推定-に、要素の内容~言語を用いるものと指定する。 ◎ specifies that when rendering with OpenType fonts, the content language of the element is used to infer the OpenType language system
`string$t
1 個の[ 文字大小が区別され, 3 字で記される[ ~OpenType 言語機構~tag ]]であって、[ 要素の言語により黙示される言語機構 ]の代わりに用いる,~OpenType言語機構を指定する。 ◎ single three-letter case-sensitive OpenType language system tag, specifies the OpenType language system to be used instead of the language system implied by the language of the element

無効な~OpenType言語機構~tagの利用は、構文解析~errorを生成しては~MUST_NOTが,~glyphの[ 選定と配置 ]に際しては無視され~MUST。 ◎ Use of invalid OpenType language system tags must not generate a parse error but must be ignored when doing glyph selection and placement.

世界人権宣言 は、様々な言語に翻訳されている。 ~Turkishでは、この文書の第 9 条は,次の様に~markupされるであろう: ◎ The Universal Declaration of Human Rights has been translated into a wide variety of languages. In Turkish, Article 9 of this document might be marked up as below:

<body lang="tr">

<h4>Madde 9</h4>
<p>Hiç kimse keyfi olarak tutuklanamaz,
alıkonulanamaz veya sürülemez.</p>

ここでは、~UAは,~textの描画-時に `lang^a 属性の値を利用し, fi の合字は使わずに,この~textを適切に描画する。 `font-language-override$p ~propを用いる必要はない。 ◎ Here the user agent uses the value of the lang attribute when rendering text and appropriately renders this text without "fi" ligatures. There is no need to use the font-language-override property.

しかしながら、所与の~fontが,特定の言語のための~supportを欠いていることもある。 この状況~下では、作者は,[ その~fontから~supportされている言語 ]に関係する~typographic規約を用いる必要があり得る。 ◎ However, a given font may lack support for a specific language. In this situation authors may need to use the typographic conventions of a related language that are supported by that font:

<body lang="mk">     <!-- ~Macedonianの言語( lang )~code◎Macedonian lang code -->

body { font-language-override: "SRB"; /* ~Serbian~OpenType言語~tag
◎
Serbian OpenType language tag
 */ }

<h4>Члeн 9</h4>
<p>Никoj чoвeк нeмa дa бидe пoдлoжeн нa прoизвoлнo aпсeњe,
притвoр или прoгoнувaњe.</p>

この~Macedonian~textは、[ 指定された~fontが~Serbianを~supportする ]前提の下で,~Serbian~typographic規約を用いて描画されることになる。 ◎ The Macedonian text here will be rendered using Serbian typographic conventions, with the assumption that the font specified supports Serbian.

7. ~font特能~解決

前~節にて述べた様に、~font特能は,[ ~style規則の中, あるいは`font-face$at 規則~内 ]における[ `font-variant$p や `font-feature-settings$p ]の利用を介して,種々の~方法で可能化され得る。 [ これらの設定の和集合 ]に対する解決の順序は、以下にて定義される。 ~CSS~propを介して定義される各種 特能は、~layout~engineの既定の特能の上層で適用される。 ◎ As described in the previous section, font features can be enabled in a variety of ways, either via the use of font-variant or font-feature-settings in a style rule or within an @font-face rule. The resolution order for the union of these settings is defined below. Features defined via CSS properties are applied on top of layout engine default features.

7.1. 既定の特能

~OpenType~fontに対しては、~UAは,[ ~OpenType の文献にて,[ 所与の[ 用字系, および書字mode ]]に対し定義されている既定の特能 ]を可能化し~MUST。 要求される[ 合字, 共通合字, 文脈依存~形( ~OpenType特能: `rlig^tag, `liga^tag, `clig^tag, `calt^tag )]は、[ 地域化された形( ~OpenType特能: `locl^tag )], および[[ 組にされた[ 文字や~mark( ~OpenType特能: `ccmp^tag, `mark^tag, `mkmk^tag )]の適正な表示 ]のために要求される特能 ]に沿うように,既定で可能化され~MUST。 これらの特能は、[ `font-variant$p, `font-feature-settings$p ]~propの値が `normal^v のときでも,常に可能化され~MUST。 個々の特能は、[ `font-variant-ligatures$p が `no-common-ligatures$v に設定されたとき ]など,作者から明示的に上書きされているときにのみ,不能化される。 [ Arabic, Mongolian, Devanagari ]などの複雑な用字系を取扱うためには、追加の特能が要求される。 縦書きの~textrun内の正立~textのためには、縦書きの代替( ~OpenType特能: `vert^tag )が可能化され~MUST。 【 正立( upright ) — 例えば括弧類は横書きのものと異ならせる必要がある。】 ◎ For OpenType fonts, user agents must enable the default features defined in the OpenType documentation for a given script and writing mode. Required ligatures, common ligatures and contextual forms must be enabled by default (OpenType features: rlig, liga, clig, calt), along with localized forms (OpenType feature: locl), and features required for proper display of composed characters and marks (OpenType features: ccmp, mark, mkmk). These features must always be enabled, even when the value of the font-variant and font-feature-settings properties is normal. Individual features are only disabled when explicitly overridden by the author, as when font-variant-ligatures is set to no-common-ligatures. For handling complex scripts such as Arabic, Mongolian or Devanagari additional features are required. For upright text within vertical text runs, vertical alternates (OpenType feature: vert) must be enabled.

7.2. 特能の優先度

一般の/`~font特有$の[ ~font特能~prop設定群 ]は、下に与える順序による,後のもの程~高い優先度の下で、解決される。 この順序付けは、所与の~textrunに影響するような[ 一連の~font特能からなる,一つに組み合わされた~list ]を構築するために用いられる。 ◎ General and font specific font feature property settings are resolved in the order below, in ascending order of precedence. This ordering is used to construct a combined list of font features that affect a given text run.

  1. ~font特能は、[ 所与の用字系のために要求される特能 ]も含め,既定で可能化される ◎ Font features enabled by default, including features required for a given script.
  2. ~fontが `font-face$at 規則を介して定義される場合、その~font特能は,[ `font-face$at 規則の中の `font-variant$d 記述子 ]により黙示される。 ◎ If the font is defined via an @font-face rule, the font features implied by the font-variant descriptor in the @font-face rule.
  3. ~fontが `font-face$at 規則を介して定義される場合、その~font特能は,[ `font-face$at 規則の中の `font-feature-settings$d 記述子 ]により黙示される。 ◎ If the font is defined via an @font-face rule, the font features implied by the font-feature-settings descriptor in the @font-face rule.
  4. ~font特能は、[[ `font-variant$p ~propとその各種 下位prop ], および[ OpenType特能を用いる(例えば,`font-kerning$p ~prop)他の~CSS~prop ]]の値により黙示される。 ◎ Font features implied by the value of the font-variant property, the related font-variant subproperties and any other CSS property that uses OpenType features (e.g. the font-kerning property).
  5. [ `font-variant$p や `font-feature-settings$p ]以外の~propにより決定される特能~設定群。 例えば, `letter-spacing^p ~propに対し非~既定の値を設定することにより、共通合字は不能化される。 ◎ Feature settings determined by properties other than font-variant or font-feature-settings. For example, setting a non-default value for the letter-spacing property disables common ligatures.
  6. `font-feature-settings$p ~propの値により黙示される~font特能。 ◎ Font features implied by the value of font-feature-settings property.

この順序付けにより、作者は,[ `font-face$at 規則~内の~fontのための,一般の既定~~設定の集合 ]を与えた上で、特定の要素に対しては,~prop設定群により それらを上書きできるようになる。 一般~prop設定群は, `font-face$at 規則の中の設定群を上書きし、低次の~font特能~設定群は, `font-variant$p ~prop設定群を上書きする。 ◎ This ordering allows authors to set up a general set of defaults for fonts within their @font-face rules, then override them with property settings for specific elements. General property settings override the settings in @font-face rules and low-level font feature settings override font-variant property settings.

[ 一連の~font特能からなる,一つに組み合わされた~list ]が,同じ特能に対し複数の値を包含するような状況~下では、その最後の値が用いられる。 ~fontが[ 所与の下層の~font特能 ]のための~supportを欠いているときは、 ~textは、単純に,その~font特能が可能化されなかったかのように,描画される — 特定の~propのために明示的に定義されている所を除き,~font~fallbackは生じず, 特能の合成-は試みられない。 ◎ For situations where the combined list of font feature settings contains more than one value for the same feature, the last value is used. When a font lacks support for a given underlying font feature, text is simply rendered as if that font feature was not enabled; font fallback does not occur and no attempt is made to synthesize the feature except where explicitly defined for specific properties.

7.3. 特能の優先度の例

下の一連の~styleにより,一連の数字は、 段落~内で用いられるときには均衡幅に描画される一方で,価格表( table.prices )内では一定幅~形で示される。 ◎ With the styles below, numbers are rendered proportionally when used within a paragraph but are shown in tabular form within tables of prices:

body {
  font-variant-numeric: proportional-nums;
}

table.prices td {
  font-variant-numeric: tabular-nums;
}

`font-variant$d 記述子が `font-face$at 規則~内で用いられるときは、その規則により定義される~fontにのみ適用される。 ◎ When the font-variant descriptor is used within an @font-face rule, it only applies to the font defined by that rule.

@font-face {
  font-family: MainText;
  src: url(http://example.com/font.woff);
  font-variant: oldstyle-nums proportional-nums styleset(1,3);
}

body {
  font-family: MainText, Helvetica;
}

table.prices td {
  font-variant-numeric: tabular-nums;
}

この事例では、~old-style命数法は,全体を通して, しかし~font `MainText^F が用いられる所でのみ,利用されることになる。 前の例とちょうど同様に、価格表の中では,一定幅の値が用いられることになる — `tabular-nums$v が一般~style規則の中に現れ,その利用は `proportional-nums$v と相互排他的なので。 ~stylistic代替~集合は、`MainText^F が用いられる所でのみ,利用されることになる。 ◎ In this case, old-style numerals will be used throughout but only where the font "MainText" is used. Just as in the previous example, tabular values will be used in price tables since tabular-nums appears in a general style rule and its use is mutually exclusive with proportional-nums. Stylistic alternate sets will only be used where MainText is used.

`font-face$at 規則は、[ `font-face$at 定義の`src$d 記述子における `~func-local$ の利用 ]を介して[ ~localに可用にされた~font ]の中の~font特能に~accessするために用いることもできる: ◎ The @font-face rule can also be used to access font features in locally available fonts via the use of local() in the src descriptor of the @font-face definition:

@font-face {
  font-family: BodyText;
  src: local("HiraMaruPro-W4");
  font-variant: proportional-width;
  font-feature-settings: "ital"; /* CJK ~text特能~内の~Latin~italic
◎
Latin italics within CJK text feature
 */
}

body { font-family: BodyText, serif; }

可用なら、~Japanese~font "`Hiragino_Maru_Gothic^F" が用いられることになる。 ~text描画が生じたときは、~Japanese仮名は均衡幅に~spaceが空けられ,~Latin~textは~italic化されることになる。 ~fallback~serif~fontにより描画される~textは、既定の描画~propを利用することになる。 ◎ If available, a Japanese font "Hiragino Maru Gothic" will be used. When text rendering occurs, Japanese kana will be proportionally spaced and Latin text will be italicised. Text rendered with the fallback serif font will use default rendering properties.

下の例の中の随意合字は、~downloadable~fontに対してのみ可能化されるが,[ ~class `special^css の `span^e ]内では不能化される: ◎ In the example below, discretionary ligatures are enabled only for a downloadable font but are disabled within spans of class "special":

@font-face {
  font-family: main;
  src: url(fonts/ffmeta.woff) format("woff");
  font-variant: discretionary-ligatures;
}

body         { font-family: main, Helvetica; }
span.special { font-variant-ligatures: no-discretionary-ligatures; }

随意合字を可能化するために, `font-feature-settings^p を用いて規則を追加したとする: ◎ Suppose one adds a rule using font-feature-settings to enable discretionary ligatures:

body         { font-family: main, Helvetica; }
span         { `font-feature-settings^p: "`dlig^v"; }
span.special { font-variant-ligatures: no-discretionary-ligatures; }

この事例では、随意合字は,[ ~class `special^css の `span^e ]内で描画されることになる。 何故なら、[ `font-feature-settings$p, `font-variant-ligatures$p ]~propの両者が,これらの `span^e に適用されるので。 `font-variant-ligatures$p の設定 `no-discretionary-ligatures^v は, ~OpenType `dlig^tag 特能を実質的に不能化するが、その後に `font-feature-settings$p が解決されるので,値 `dlig^v が随意合字を再度~可能化することになる。 ◎ In this case, discretionary ligatures will be rendered within spans of class "special". This is because both the font-feature-settings and font-variant-ligatures properties apply to these spans. Although the no-discretionary ligatures setting of font-variant-ligatures effectively disables the OpenType dlig feature, because the font-feature-settings is resolved after that, the dlig value reenables discretionary ligatures.

8. ~object~model

[ `font-face$at/`font-feature-values$at ]規則の内容は、 CSS Object Model に対する次の拡張を介して,~accessできる。 ◎ The contents of @font-face and @font-feature-values rules can be accessed via the following extensions to the CSS Object Model.

8.1. `CSSFontFaceRule^I ~interface

`CSSFontFaceRule$I ~interfaceは、 `font-face$at 規則を表現する。 ◎ The CSSFontFaceRule interface represents a @font-face rule.

interface `CSSFontFaceRule@I : `CSSRule$I {
  attribute DOMString family;
  attribute DOMString src;
  attribute DOMString style;
  attribute DOMString weight;
  attribute DOMString stretch;
  attribute DOMString unicodeRange;
  attribute DOMString variant;
  attribute DOMString featureSettings;
};

DOM Level 2 Style 仕様 `DOM-LEVEL-2-STYLE$r では、この規則の別形が定義されている。 この定義はそれに取って代わる。 ◎ The DOM Level 2 Style specification [DOM-LEVEL-2-STYLE] defined a different variant of this rule. This definition supercedes that one.

8.2. `CSSFontFeatureValuesRule^I ~interface

`CSSRule$I ~interfaceは、次の様に拡張される: ◎ The CSSRule interface is extended as follows:

partial interface `CSSRule$I {
  const unsigned short FONT_FEATURE_VALUES_RULE = 14;
};

`CSSFontFeatureValuesRule$I ~interfaceは、 `font-feature-values$at 規則を表現する。 ◎ The CSSFontFeatureValuesRule interface represents a @font-feature-values rule.

interface `CSSFontFeatureValuesRule@I : `CSSRule$I {
  attribute DOMString fontFamily;
  readonly attribute CSSFontFeatureValuesMap annotation;
  readonly attribute CSSFontFeatureValuesMap ornaments;
  readonly attribute CSSFontFeatureValuesMap stylistic;
  readonly attribute CSSFontFeatureValuesMap swash;
  readonly attribute CSSFontFeatureValuesMap characterVariant;
  readonly attribute CSSFontFeatureValuesMap styleset;
}

[MapClass(DOMString, sequence<unsigned long>)]
interface `CSSFontFeatureValuesMap@I {
  void set(
      DOMString `featureValueName^var,
      (unsigned long or sequence<unsigned long>) `values^var
  );
};
DOMString `fontFamily^m
所与の[ 特能~値の集合 ]が定義される 1 個以上の~font族からなる~list ◎ The list of one or more font families for which a given set of feature values is defined.
CSSFontFeatureValuesMap `annotation^m
CSSFontFeatureValuesMap `ornaments^m
CSSFontFeatureValuesMap `stylistic^m
CSSFontFeatureValuesMap `swash^m
CSSFontFeatureValuesMap `characterVariant^m
CSSFontFeatureValuesMap `styleset^m
所与の `font-variant-alternates$p 値~型に対し,一連の`特能~値~名$を~fontの特能~値に結付けている map 。 ◎ Maps of feature values associated with feature value names for a given font-variant-alternates value type

`CSSFontFeatureValuesRule$I の各種[ 値 map ]属性は、対応する[ `特能~値~block$を介して定義される値 ]を反映する。 したがって、 `annotation^m 属性は `annotation^at `特能~値~block$内の一連の値を包含し, `ornaments^m 属性は `ornaments^at `特能~値~block$内の一連の値を包含する,等々。 ◎ Each value map attribute of CSSFontFeatureValuesRule reflects the values defined via a corresponding feature value block. Thus, the annotation attribute contains the values contained within a @annotation feature value block, the ornaments attribute contains the values contained with a @ornaments feature value block and so forth.

void `set^m(`featureValueName^var, `values^var)
`CSSFontFeatureValuesMap$I ~interfaceは 各種 既定の[ map class ]~method を用いるが、 `set()^m ~methodだけ,挙動が異なる。 この~methodは、 `values^var に与えられる無符号~整数~sequence【 IDL sequence 型~値】を, `featureValueName^var に与えられる`特能~値~名$に結付ける。 この~methodは、単独の無符号 long 値による `values^var を[ 単独の値からなる~sequence ]として扱うことを除き,既定の[ map class ]~methodと同じに挙動する。 無効な個数の値が渡された場合、この~methodは,例外投出する。 結付けられている`特能~値~block$に許容される値の個数に上限がある場合、この~methodは、入力~sequenceがその上限を超えたときには, `InvalidAccessError^c 例外投出する。 各種`特能~値~block$に許容される値の個数の上限についての詳細は、 ~multi-valued特能~値 定義 に。 `get()^m ~methodは、常に値の~sequenceを返す — ~sequenceが単独の値のみからなるとしても。 ◎ The CSSFontFeatureValuesMap interface uses the default map class methods but the set() method has different behavior. It takes a sequence of unsigned integers and associates it with a given featureValueName. The method behaves the same as the default map class method except that a single unsigned long value is treated as a sequence of a single value. The method throws an exception if an invalid number of values is passed in. If the associated feature value block only allows a limited number of values, the set() method throws an InvalidAccessError exception when the input sequence to set() contains more than the limited number of values. See the description of multi-valued feature value definitions for details on the maximum number of values allowed for a given type of feature value block. The get() method always returns a sequence of values, even if the sequence only contains a single value.

付録 A: ~platform~font~propから~CSS~propへの対応付け

この付録は、他の節にて述べられた問題と状況の一部を~~説明するための,背景~情報として収録されている。 あくまで参考として読まれるべきである。 ◎ This appendix is included as background for some of the problems and situations that are described in other sections. It should be viewed as informative only.

~CSSにおける~font~propは、利用される下層の~font形式に依存しないように設計されている — それらは,共通的な[ ~TrueType, ~OpenType ]~fontに加えて[ ~bitmap, Type1, SVG ]~fontの指定にも用い得る。 しかしながら,[ ~TrueTypeと~OpenType ]形式には、作者の混同を呼び易く,異なる~platformにわたる実装にも難題を突きつける様相がある。 ◎ Font properties in CSS are designed to be independent of the underlying font formats used; they can be used to specify bitmap fonts, Type1 fonts, SVG fonts in addition to the common TrueType and OpenType fonts. But there are facets of the TrueType and OpenType formats that often cause confusion for authors and present challenges to implementers on different platforms.

元々は Apple により開発された~TrueTypeは、~screenと印刷の両者のための~outline~font形式として設計されている。 Microsoft が Apple の~TrueType形式の開発に参加して以来、~TrueType~fontは,両~platformで~supportされるようになった。 ~TrueType形式の中の~font~dataは、共通の[ 4 字で記される~tag名 ]により判別され,それぞれが特定の型の~dataを包含する,~tableの集合からなる。 例えば,著作権や許諾の情報を含む命名~情報は、 `name^c ~tableに格納される。 `文字map$( `cmap^c )~tableは、文字~符号化方式たちから~glyphたちへの対応付けを包含する。 Apple は後に,~typographicの機能強化を~supportするための~tableを追加した。 これらは今では, Apple Advanced Typography, 略して AAT ~fontと称されている。 Microsoft と Adobe は、先進的~typographyのための 別々の~tableの集合を開発し,それらの形式を ~OpenType `OPENTYPE$r と称した。 ◎ Originally developed at Apple, TrueType was designed as an outline font format for both screen and print. Microsoft joined Apple in developing the TrueType format and both platforms have supported TrueType fonts since then. Font data in the TrueType format consists of a set of tables distinguished with common four-letter tag names, each containing a specific type of data. For example, naming information, including copyright and license information, is stored in the "name" table. The character map ("cmap") table contains a mapping of character encodings to glyphs. Apple later added additional tables for supporting enhanced typographic functionality; these are now called Apple Advanced Typography, or AAT, fonts. Microsoft and Adobe developed a separate set of tables for advanced typography and called their format OpenType [OPENTYPE].

~TrueType形式においては,~platform間に渡る~variationが明示的に許容されていたので、Microsoft Windows や Linux の下で用いられる~font~dataは,多くの場合, Apple の Mac OS X の下で用いられる~dataと少しばかり異なっている。 これには[ ~font計量, 名前, `文字map$ ~data ]も含まれる。 ◎ In many cases the font data used under Microsoft Windows or Linux is slightly different from the data used under Apple’s Mac OS X because the TrueType format allowed for explicit variation across platforms. This includes font metrics, names and character map data.

特に,~font族~名~dataの取扱いは、~platform間に渡り異なっている。 ~TrueTypeと~OpenType~fontに対しては、これらの名前は[ `name^c ~tableの中の,~nameID 1 の name record ]に包含される。 異なる~localeのために複数の名前を格納させることもできるが、 Microsoft は,~fontには常に少なくとも ~US~English版の名前を含ませることを推奨している。 Windows 上では、 Microsoft が,後方互換性のために、この族~名に対する書体~数の上限を 4 個までとすることに決めた。 より大きな~group分け “preferred 族”( ~nameID 16 )や “WWS 族” ( ~nameID 21 )も利用し得る。 OSX などの他の~platformには,この制限は無く、族~名は,可能なすべての~group分けを定義するために用いられる。 ◎ Specifically, font family name data is handled differently across platforms. For TrueType and OpenType fonts these names are contained in the "name" table, in name records with name ID 1. Mulitple names can be stored for different locales, but Microsoft recommends fonts always include at least a US English version of the name. On Windows, Microsoft made the decision for backwards compatibility to limit this family name to a maximum of four faces; for larger groupings the "preferred family" (name ID 16) or "WWS family" (name ID 21) can be used. Other platforms such as OSX don’t have this limitation, so the family name is used to define all possible groupings.

他の name table ~dataは、族~内の特定の書体を一意に識別するための名前を提供する。 全部的~font名( ~nameID 4 ), および ~Postscript名( ~nameID 6 )は、単独の書体を一意に記述する。 例えば, `Gill_Sans^F 族の~bold書体は、全部名 `Gill_Sans_Bold^F, および ~Postscript名 `GillSans-Bold^F を持つ。 所与の書体に対しては,複数の[ 地域化された版による全部名 ]もあり得るが、~Postscript名は常に,一定の~ASCII文字のみからなる一意な名前である。 ◎ Other name table data provides names used to uniquely identify a specific face within a family. The full font name (name ID 4) and the Postscript name (name ID 6) describe a single face uniquely. For example, the bold face of the Gill Sans family has a fullname of "Gill Sans Bold" and a Postscript name of "GillSans-Bold". There can be multiple localized versions of the fullname for a given face, but the Postscript name is always a unique name made from a limited set of ASCII characters.

種々の~platform上で、~~同じ~fontを検索する際に,異なる名前が利用されている。 例えば, Windows GDI `CreateIndirectFont^c API においては、書体を表引きする際に 族や全部名を用い得る一方で、 Mac OS X 上では,所与の書体を表引きする際に全部名や~Postscript名を用いる `CTFontCreateWithName^c API ~callが利用される。 Linux の下では、 `fontconfig^c API により,これらのどの名前を用いる~fontの検索も許容されている。 ~platform API による,[ 他の~font候補への自動的な代用- ]がある状況~下では、返された~fontが所与の名前に合致するかどうかの検証が必要とされることもある。 ◎ On various platforms, different names are used to search for a font. For example, with the Windows GDI CreateIndirectFont API, either a family or fullname can be used to lookup a face, while on Mac OS X the CTFontCreateWithName API call is used to lookup a given face using the fullname and Postscript name. Under Linux, the fontconfig API allows fonts to be searched using any of these names. In situations where platform API’s automatically substitute other font choices, it may be necessary to verify a returned font matches a given name.

所与の書体の~weightは、 OS/2 ~table の `usWeightClass^c ~fieldを介して決定され得るか,あるいは ~style名 ( ~nameID 2 )から推定され得る。 字幅も同様に OS/2 ~tableの `usWidthClass^c を介して決定され得るか, あるいは ~style名から推定され得る。 Windows GDI API の下での[ 200 以下の~weightに対する合成的な~bold化 ]に関係する歴史的な理由から、~font~designerは、これらの~weightを避けるため, OS/2 ~tableの中の値に手を加えていることがある。 ◎ The weight of a given face can be determined via the usWeightClass field of the OS/2 table or inferred from the style name (name ID 2). Likewise, the width can be determined via the usWidthClass of the OS/2 table or inferred from the style name. For historical reasons related to synthetic bolding at weights 200 or lower with the Windows GDI API, font designers have sometimes skewed values in the OS/2 table to avoid these weights.

[ ~Thai, ~Arabic, ~Devanagariなどの,文脈依存~形状付けを用いる複雑な用字系 ]の描画には、~OpenTypeや AAT ~fontにしかない特能を要する。 今では、複雑な用字系の描画は、 Windows および Linux では,~OpenType~font特能により~supportされている一方で、 Mac OS X の下では,~OpenType と AAT の両~font特能が利用されている。 ◎ Rendering complex scripts that use contextual shaping such as Thai, Arabic and Devanagari requires features present only in OpenType or AAT fonts. Currently, complex script rendering is supported on Windows and Linux using OpenType font features while both OpenType and AAT font features are used under Mac OS X.

変更点

2013 年 10 月付け CSS3 Fonts 勧告候補 からの変更点を以下に挙げる: ◎ Changes from the October 2013 CSS3 Fonts Candidate Recommendation

謝辞

Tal Leming, Jonathan Kew, Christopher Slye 三氏からの支援とフィードバックに感謝する。 John Hudson 氏からは、緻密で複雑な ~OpenType言語~tagの説明に十分な時間を割いていただき, Byzantine seal 上での~text表示のための,文字異体の用例も提供していただいた。 Ken Lunde 氏と Eric Muller 氏からは、 CJK ~OpenType特能と~Unicode異体字選択子についての有益なフィードバックを提供していただいた。 一連の `font-variant$p 下位propの利用による~font特能の~supportのアイデアは, Håkon Wium Lie, Adam Twardoch, Tal Leming 三氏による発案である。 Elika Etemad 氏は `font-feature-values$at 規則のための初期の設計~案のいくつかを提供された。 随意合字の例における Ed Interlock の利用を承諾していただいた House Industries にも感謝する。 ◎ I’d like to thank Tal Leming, Jonathan Kew and Christopher Slye for all their help and feedback. John Hudson was kind enough to take the time to explain the subtleties of OpenType language tags and provided the example of character variant usage for displaying text on Byzantine seals. Ken Lunde and Eric Muller provided valuable feedback on CJK OpenType features and Unicode variation selectors. The idea for supporting font features by using font-variant subproperties originated with Håkon Wium Lie, Adam Twardoch and Tal Leming. Elika Etemad supplied some of the initial design ideas for the @font-feature-values rule. Thanks also to House Industries for allowing the use of Ed Interlock in the discretionary ligatures example.

Robert Bringhurst 氏による,卓越した mind expansion: The Elements of Typographic Style に特別な謝意を。 ◎ A special thanks to Robert Bringhurst for the sublime mind expansion that is The Elements of Typographic Style.

適合性

【 この節の内容は CSS 日本語訳 共通ページ に委譲 】

参照文献

文献(規範)

[CHARMOD]
Martin J. Dürst; et al. Character Model for the World Wide Web 1.0: Fundamentals. 15 February 2005. W3C Recommendation.
http://www.w3.org/TR/2005/REC-charmod-20050215/
[CORS]
Anne van Kesteren. Cross-Origin Resource Sharing. 16 January 2014. W3C Recommendation.
http://www.w3.org/TR/2014/REC-cors-20140116/
[CSS21]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. W3C Recommendation.
http://www.w3.org/TR/2011/REC-CSS2-20110607
[CSS3VAL]
Håkon Wium Lie; Tab Atkins; Elika J. Etemad. CSS Values and Units Module Level 3. 11 June 2015. W3C Candidate Recommendation. (Work in progress.)
http://www.w3.org/TR/2015/CR-css-values-3-20150611/
[HTML5]
Robin Berjon; et al. HTML5. 28 October 2014. W3C Recommendation.
http://www.w3.org/TR/2014/REC-html5-20141028/
[OPEN-FONT-FORMAT]
Information technology — Coding of audio-visual objects — Part 22: Open Font Format. International Organization for Standardization. ISO/IEC 14496-22:2009.
http://standards.iso.org/ittf/PubliclyAvailableStandards/c052136_ISO_IEC_14496-22_2009%28E%29.zip
[OPENTYPE]
OpenType specification. Microsoft.
http://www.microsoft.com/typography/otspec/default.htm
[OPENTYPE-FEATURES]
OpenType feature registry. Microsoft.
http://www.microsoft.com/typography/otspec/featurelist.htm
[UAX15]
Mark Davis; Ken Whistler. Unicode Normalization Forms. 20 September 2013. Unicode Standard Annex #15.
http://www.unicode.org/reports/tr15/
[UAX29]
Mark Davis. Unicode Text Segmentation. 20 September 2013. Unicode Standard Annex #29.
http://www.unicode.org/reports/tr29/
[UNICODE]
The Unicode Consortium. The Unicode Standard. 2015. Defined by: The Unicode Standard, Version 8.0.0, (Mountain View, CA: The Unicode Consortium, 2015. ISBN 978-1-936213-10-8), as updated from time to time by the publication of new versions.
http://www.unicode.org/standard/versions/enumeratedversions.html

文献(参考)

[AAT-FEATURES]
Apple Advanced Typography Font Feature Registry. Apple.
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html
[ARABIC-TYPO]
Huda Smitshuijzen AbiFares. Arabic Typography: A Comprehensive Sourcebook. Saqi Books. 2001. ISBN 0-86356-347-3.
[CHARMOD-NORM]
Addison Phillips. Character Model for the World Wide Web: String Matching and Searching. 13 August 2015. W3C Working Draft. (Work in progress.)
http://www.w3.org/TR/2015/WD-charmod-norm-20150813/
[CJKV-INFO-PROCESSING]
Ken Lunde. CJKV Information Processing, Second Edition. O'Reilly Media, Inc. 2009. ISBN 0-596-51447-1.
[CSS3-CONDITIONAL]
L. David Baron. CSS Conditional Rules Module Level 3. 4 April 2013. W3C Candidate Recommendation. (Work in progress.)
http://www.w3.org/TR/2013/CR-css3-conditional-20130404/
[CSS3TEXT]
Elika J. Etemad; Koji Ishii. CSS Text Module Level 3. 10 October 2013. Last Call W3C Working Draft. (Work in progress.)
http://www.w3.org/TR/2013/WD-css-text-3-20131010/
[DIGITAL-TYPOGRAPHY]
Richard Rubinstein. Digital Typography, An Introduction to Type and Composition for Computer System Design. Addison-Wesley. 1988. ISBN 0-201-17633-5.
[DOM-LEVEL-2-STYLE]
Chris Wilson; Philippe Le Hégaret; Vidur Apparao. Document Object Model (DOM) Level 2 Style Specification. 13 November 2000. W3C Recommendation.
http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/
[ELEMTYPO]
Robert Bringhurst. The Elements of Typographic Style, Version 4. Hartley & Marks. 2013. ISBN 0-88179-212-8.
[LANGCULTTYPE]
John D. Berry, Ed. Language Culture Type. Graphis. 2001. ISBN 1-932026-01-0.
[OPENTYPE-FONT-GUIDE]
OpenType User Guide. FontShop International.
https://www.fontfont.com/staticcontent/downloads/FF_OT_User_Guide.pdf
[RASTER-TRAGEDY]
Beat Stamm. The Raster Tragedy at Low-Resolution Revisited. 7 December 2011.
http://www.rastertragedy.com/
[WINDOWS-GLYPH-PROC]
John Hudson. Windows Glyph Processing. Microsoft Typogrraphy.
http://www.microsoft.com/typography/developers/opentype/default.htm

索引

【 この節の内容は省略(ウィンドウ下端の索引機能を利用されたし)。 】

プロパティ索引

記述子索引

【 この節の内容は省略(見出しクリックで巡回)。 】