1. 序論
~fontは,文字 `CHARMOD$r `UNICODE$r の視覚的な表現を包含している資源を供する。 最も単純な~levelでは、 それは,文字~codeから[ それらの文字を表現する(~glyphと呼ばれる)形状 ]へ対応付ける情報を包含する。 同じ~design~styleを共有する~fontは、[[ 標準~font~propの集合 ]に基づいて分類される,~font族 ]として共通的に~group化される。 同じ族~内における[ 所与の文字~用に表示される形状 ]は、 種々の~propの中でも特に[ 描線( `stroke ^en)の~weight, 傾き, 相対~字幅 ]により,変わり得る。 個々の~font書体は、 これらの~propたちが成す一意な組合nにより,記述される。 各種~CSS~font~propが、 所与の範囲の~textを描画するために利用される[ ~font族とその族~内の特定の~font書体 ]を選定するときに利用される。 単純な例として、 `Helvetica^F の~bold形を利用するときは,次を利用できる: ◎ A font provides a resource containing the visual representation of characters [CHARMOD][UNICODE]. 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資源から直に得される。 ~download可能~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^en(~~活字書体)” ではなく, (より抽象的な) “`face^en” ( “~italic体”, 等々の “体” )の対訳。 】
2. ~typographyの背景0
◎非規範的~typographic伝統様式は,世界に渡り様々なので、 言語や文化に渡るすべての~fontを分類するための,一意な仕方は無い。 共通的な~Latin普通字ですら、 ~~幅広い異体があり得る: ◎ 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^en ) — 概念的には、 約物や記号~類を除く, “普通の” 字(~alphabet, かな, 漢字, 等々)を意味すると見られる。 】
字形( `letterform^en )の細部における相違は、 ~fontを判別する方法の一つである。 ~Latin~fontにおいては、 文字の[ メイン描線や~serif ]の末端の `flourish^en 【つる状, 跳ね, 等の装飾】の有無により,~fontを判別し得る。 類似な比較は,非~Latin~fontにおいても[ 描線が途中で細まるもの( `taperd^en ) ]と[ 主に一様な描線を利用するもの ]との間に存在する: ◎ 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:
~fontは、 一連の字形と, [ それぞれの文字をこれらの字形に対応付けるために必要な~data ]を包含する。 これは,単純な一対一の対応付けになることも多いが、 より複階的な対応付けもあり得る。 結合~発音区別符の利用は、 下層の字形~用に多数の異体を創出する: ◎ 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:
合字(リガチャ)として知られる単独の~glyphが、 複数個の文字が成す連列を表現することもある: ◎ A sequence of characters can be represented by a single glyph known as a ligature:
~textな文脈に基づく視覚的な変形nは、 ~European言語においては,大抵は~style上の~optionであるが、 `ARABIC-TYPO$r のような言語を正しく描画するためには,必須とされている — 下の 2 つの文字[ ~lam, ~alef ]は、 ~~連続するときは,結合される`モノトスル^em: ◎ Visual transformations based on textual context are often stylistic option in European languages. They are required to correctly render languages like [ARABIC-TYPO], the lam and alef characters below must be combined when they exist in sequence:
これらの[ 形状付け変形n ]は相対的に複階的であり,~font内に追加的な~dataを要する。 ◎ The relative complexity of these shaping transformations requires additional data within the font.
種々の~style上の異体が伴われた[ ~font書体の集合 ]は、 よく一緒にされて~font族に~group化される。 最も単純な事例では,~regular体fに伴なって[ ~bold体fや~italic体f ]も補足されるが、 ずっと~~広範な~group分けもアリである。 `~weight@ ( `weight^en ) — 字形の描線の太さ — や, `字幅@ ( `width^en ) — 字形の全体的な均衡 — における異体は、 最も共通的にある。 下の例では、 各~普通字が[ `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:
複数の用字系を~supportするような~fontの創出は、 困難な仕事である。 ~designer達は、 異なる用字系に渡る活字の利用を,それを取り巻く文化的な伝統様式を理解した上で、 何らかの~~形で同じテーマを共有するような,字形の集合を作り上げる必要がある。 多くの言語は,しばしば同じ用字系を共有し、 それぞれの言語が,目を引く~style上の相違を持ち得る。 例えば,~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$手続-を利用してもヨイ。 適切な~fontを見出せなかった場合、 何らかの形の “欠落用~glyph( `missing glyph^en )” 文字が,~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 `OPENTYPE$r や~AAT( Apple Advanced Typography ) `AAT-FEATURES$r などの現代の~font技術は,各種~特能( `feature^en, 特能)の設定群に基づいて,種々の仕方で[ 文字から 異なる~glyphへの対応付け ]を供する。 これらの形式による~fontでは、 それらの特能を ~appから制御できるように,~font自身に埋込むことが許容されている。 この方法で指定し得る,共通的な~typographic特能のごく一部には[ 合字, ~swash【`参考@https://en.wikipedia.org/wiki/Swash_(typography)$】, 文脈依存~代替-, [ 均衡幅/一定幅 ]の数字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 [OPENTYPE] and AAT (Apple Advanced Typography) [AAT-FEATURES] 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属性たちとの組合nを利用する。 ~design~appにおいて よく行われる様な[ ~style名を介する書体の選定-法 ]ではなく,この選定の仕組みにより、 ~fallbackが生じた際でも,ある程度 規則正しい~textな表示を得られるようになる。 ◎ 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の分類法を定義することは意図していない ]ことを心に留めておくべきである。 活字~designerによる族のアイデアは、 標準な[ ~weight, 字幅, 斜傾度 ]の軸のみならず, 他の軸にも沿って変わり得るような,書体の集合まで拡張することが多い。 族は、 ~serif体fの集合と~sans-serif体fの集合の両者を含むように, あるいは その族に固有の軸に沿って変わり得るように,拡張し得る。 ~CSSにおける~font選定の仕組みは、 単に,代用が必要yなときに “最も近い” 代用-を決定するための,一つの方法を供するものに過ぎない。 ◎ 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:
次の例を考える: ◎ Consider the example below:
body { font-family: Helvetica, Verdana, sans-serif; }
`Helvetica^F が可用ならば、 それが描画-時に利用されることになる。 `Helvetica^F も `Verdana^F も無い場合、 ~UA定義な~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 種類tに分けられる: ◎ There are two types of font family names:
- `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.
- `generic-family@t
- 次に定義される,汎用~族~keyword ⇒# `serif$v, `sans-serif$v, `cursive$v, `fantasy$v, `monospace$v ◎ The following generic family keywords are defined: serif, sans-serif, cursive, fantasy, and monospace.\
- これらの~keywordは、 作者が欲する~font候補が可用でないときの,一般~fallbackの仕組みとして利用できるものである。 ~keywordなので、 引用符で括られてはならない。 作者には、 堅牢性を向上するため,最後の代替候補として汎用~font族を付加しておくことが奨励される。 ◎ 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 による~font族~名は、 ~CSS文字列( `string$t )として,引用符で括った上で与えるか、 または[ 1 個以上の`~CSS識別子$が成す連列 ]として,引用符で括らずに与えなければならない。 従って,引用符で括らない場合、 各~tokenの先頭にある[ 約物のほとんど/数字 ]は,~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族~名として識別子~連列が与えられた場合、 その算出d値は,連列の中の各~識別子を 1 個の~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の誤記を避けるため、[ 空白/数字/[ ~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値( `inherit^v, `serif$v, 等々)とたまたま同じになる~font族 `名^em は、 ~keywordと混同されないように,引用符で括られなければナラナイ。 ~UA は、 これらの~keywordを[ `family-name$t 型に合致している ]と見なしてはナラナイ。 このことは、 すべての~CSSにわたる どの~keywordにも適用される。 ◎ Font family names that happen to be the same as keyword value (‘inherit’, ‘serif’, etc.) must be quoted to prevent confusion with the keywords with the same names. UAs must not consider these keywords as matching the <family-name> type. This applies to any keyword across all of CSS.
~fontの集合をいくつかの~font族に~group化する精確な仕方は、 ~platformの~font管理 API に依存して様々である。 Windows GDI API においては,~groupに許容される書体~数は一つの族につき 4 個までである一方、 DirectWrite API や OSX 他の~platform上の API では,様々な[ ~weight, 字幅, 斜傾度 ]を伴う~font族が~supportされる (詳細は、 `付録 A@#platform-props-to-css$ を見よ)。 ◎ 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, 文書の符号化法 ]から独立に,これらの名前すべてを正しく合致させるモノトスル: ◎ 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:
族~名 | 地域化版 |
---|---|
GulimChe | 굴림체 |
Hiragino Kaku Gothic Pro | ヒラギノ角ゴ Pro |
Meiryo | メイリオ |
MingLiu | 細明體 |
MS Mincho | MS 明朝 |
Raanana | רעננה |
[ 地域化された~font族~名の照合 ]と, それに対応する[ 文字大小比較についての課題 ]についての詳細は、 後述の `§ ~font照合@#font-family-casing$ にて述べられる。 ◎ 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実装において, 1 つ以上の~font書体に合致するモノトスル。 しかしながら,これらの汎用~font族は、 組成-書体([ 文字の~Unicode範囲, 包含している要素の言語, 利用者-選好, ~system設定群 ]などに基づいて,複数の活字書体からなるもの)にもなり得る。 それらはまた、 常に互いに異なることは保証されない。 ◎ All five generic font families must always result in at least one matched font face, for all CSS implementations. However, the generics may be composite faces (with different typefaces based on such things as the Unicode range of the character, the language of the containing element, user preferences and system settings, among others). They are also not guaranteed to always be different from each other.
~UAは、 汎用~font族~用の既定の候補として,[ 下層の技術的制約から許される~~範囲でアリな限り,それぞれの族の特性を表出する ]ような,適度なものをいくつか供するべきである。 ~UAには、 利用者が[ 汎用~font~用の代替候補 ]を選定できるようにすることが奨励される。 ◎ 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.
- `serif@v
- ~serif~fontは、 用字系における正式な~text~styleを表現する 【 `serif^en — 描線~先端の小さな飾り】 。 これは,大抵[[ 終筆( `finishing stroke^en )や, 末広がり/先細りの末端 ], あるいは[ 実際に~serif化された末端仕上げ( `slab serif^en も含む) ]]を備えるような~glyphを意味するが,それらに限られない。 ~serif~fontは、 概して,均衡字幅にされている。 それらは大抵、 `sans-serif$v 汎用~font族の~fontよりも,描線の太さの変動幅が大きく表示される。 ~CSSにおける語 `serif$v は、 どの用字系の~fontにも適用されるものとして,利用される — [ `Mincho^F (~Japanese), `Sung^F, `Song^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 or Song (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.
- `sans-serif@v
- ~CSS用語としての,~sans-serif【 “~serifの~~無い” 】~fontの~glyphは、 一般に,縦横の画線の太さが概ね一様で, 質素な — すなわち [ `flaring^en, 画線を横切る細い線【 `cross stroke^en — “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.
- `cursive@v
- cursive(~~筆記的)~fontの~glyphは、 一般に,より非正式な用字系~styleを利用し,その結果は、 印刷物よりも,~penや絵筆で手書きされた様に見える。 ~CSSにおける語 `cursive$v は、 どの用字系の~fontにも適用されるものとして,利用される — ~font名には、[ `Chancery^F, `Brush^F, `Swing^F, `Script^F ]などの他の名前も利用されるが。 ◎ 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.
- `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.
- `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.
- 【! prop: font-weight 】
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 値として ◎表終`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
- 継承d値より~boldな~weightを指定する。 ◎ Specifies a bolder weight than the inherited value.
- `lighter@v
- 継承d値より~lightな~weightを指定する。 ◎ Specifies a lighter weight than the inherited value.
9 段階でない `等級^em を利用する~font形式は、 その等級を[ 400 が概ね[ `Regular^F / `Book^F / `Roman^F ]とされている書体に対応し, 700 が概ね[ `Bold^F ]とされている書体に合致する ]ように,~CSSの等級へ対応付けるべきである。 あるいは、 ~style名から,前述の等級に概ね対応する~weightが推定されてもヨイ。 等級は相対的であり、 より大きな~weight値を伴う書体は,より~lightに現れないモノトスル。 ~style名を利用して~weightを推定する場合、[ ~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@#font-matching-algorithm$を見よ)。 次の例に、 それぞれの~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 the font matching section below 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:
~typographer達からは あまり好まれていない実施だが、 ~bold体fは,実際の~bold体fを欠く書体~用に,~UAにより合成されることが多い。 ~style照合の目的においては、 これらの書体は,それらが族~内に存在しているかのように扱うモノトスル。 作者は、 `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 ]による指定d値は、 親~要素の~weightに相対的な~weightを指示する。 ~weightの算出d値は、 下の表t【!chart】を利用して, `font-weight$p の継承d値に基づいて計算される: ◎ 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.
継承d値 | `bolder^v | `lighter^v |
---|---|---|
100 | 400 | 100 |
200 | 400 | 100 |
300 | 400 | 100 |
400 | 700 | 100 |
500 | 700 | 100 |
600 | 900 | 400 |
700 | 900 | 400 |
800 | 900 | 700 |
900 | 900 | 700 |
上の表tは、 ~normal, ~bold に加えて ~thin, ~heavy の書体も包含している~font族が与えられている下での,相対的に次に ~bold/~light な書体の選定-法に、 等価である。 作者は、 要素に利用される正確な~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-animation$) ◎表終`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:
`font-stretch^p に対する~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体fや~oblique体fの選定を可能にする。 一般に、 ~italic形は その資質から筆記的である一方,~oblique体fは 概して~regular体fの斜傾~versionである。 ~oblique体fは、 ~regular体fの~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との,描画の比較:
各種 値の意味は: ◎ Values have the following meanings:
- `normal@v1
- ~italicでも~obliqueでもない,~normal体f(“通常~体f”)に分類される書体を選定する。 ◎ selects a face that is classified as a normal face, one that is neither italic or obliqued
- `italic@v
- ~italic体fとされている~fontを, それが~~無いときは~oblique体fを,選定する。 ◎ selects a font that is labeled as an italic face, or an oblique face if one is not
- `oblique@v
- ~oblique体f(斜字体/斜体)とされている~fontを, それが~~無いときは~italic体fを,選定する。 ◎ selects a font that is labeled as an oblique face, or an italic face if one is not
~italic体f, ~oblique体fともに可用でない場合、 ~oblique体fは,[ 非~oblique体fを利用した,人工的な~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を利用する方が、 常により良いものになる。 ◎ 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体fで描画される~text内に筆記的な形を混在させる慣習がない。 ~Chinese/~Japanese/~Korean の~fontは、 ほとんど常に,~italic体fや~oblique体fを欠いている。 また、 用字系の混在を~supportする~fontでは、 ~italic体fの中で~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-percentage$vt ◎初 `medium$v ◎適 すべての要素 ◎継 される ◎百 親~要素の~font~sizeに相対的 ◎ refer to parent element's font size ◎算 絶対~長さ ◎ア 算出d値の型による ◎ as length ◎表終この~propは、 ~fontの~glyphの,欲される高さを指示する。 拡縮-可能な~fontに対しては、 ~font-sizeは,~fontの EM 単位に適用される拡縮率になる(ある種の~glyphは,その EM ~boxから外側にはみ出し得ることに注意)。 拡縮-可能でない~fontに対しては、 ~font-sizeは,絶対~単位に変換された上で[ ~fontに宣言された `font-size$p ]に対する照合-が~~試みられる — 両~値に同じ絶対的な座標~空間が利用される下で。 各種 値の意味は: ◎ 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たちが成す表t(`~size対応~表t$を見よ) ]の中の,ある~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:
`absolute-size$t = `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対応~表t$と, 親~要素の `font-size$p の算出d値 ]に相対的に解釈される。 次の値をとり得る: ◎ 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:
`relative-size$t = `larger@v | `smaller@v
- 例えば,親~要素の~font~sizeが `medium^v の場合、 値 `larger^v は、 現在の要素の~font~sizeを `large^v に設定することになる。 親~要素の~sizeが`~size対応~表t$の~entryに近い値でない場合、 ~UAは, `~size対応~表t$の各~entryの合間を補間しても最も近いものへ丸めてもかまわない。 ~UAは、 数量的な値が~keywordを超えるときには, `~size対応~表t$に値を外挿する必要が生じ得る。 ◎ 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-percentage$t
- 長さ値 `CSS-VALUES$r は、 (`~size対応~表t$に依存しない)絶対的~font~sizeを指定する。 負な長さは無効。 ◎ A length value [CSS-VALUES] specifies an absolute font size (independent of the user agent's font table). Negative lengths are invalid.
- 百分率~値は、 親~要素の~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 ems, leads to more robust and cascadable style sheets. Negative percentages are invalid.
次の表tに、 絶対的~sizeの拡縮率を[ ~HTML見出し / 絶対的~font-size ]に対応付けるための,~UA向けの指針を供する。 値 `medium^v は,基準になる中央~値として利用される。 ~UAは、 異なる~fontや異なる種類tの表示~機器のそれぞれに対し,これらの値をより精緻に~~調整してもヨイ。 ◎ 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 | |
---|---|---|---|---|---|---|---|---|
拡縮率 | 3/5 | 3/4 | 8/9 | 1 | 6/5 | 3/2 | 2/1 | 3/1 |
~HTML見出し | `h6^e | `h5^e | `h4^e | `h3^e | `h2^e | `h1^e | ||
~HTML~font-size | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
【 参考:~HTMLが定義する `見出し用の~UA~stylesheet@~HTMLrendering#sections-and-headings$ 】【 ~HTML~font-sizeは、 廃用にされた `font^e 要素の `size^a 属性~用(詳細は `旧来の~font~sizeの構文解析~規則@~HTMLLS/rendering.html#rules-for-parsing-a-legacy-font-size$ に)。 】
注記: 可読性を保つため、 ~UAは,この指針を適用する下でも[ ~computer表示~上で, EM 単位あたり 9 機器~画素 ]を下回る~font-sizeは創出しないようにするべきである。 ◎ Note 1. 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 2. 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の不可用性 ]に因り,算出d値と異なり得る。 ◎ 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 の算出d値を継承する(さもなければ、 `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 ◎適 すべての要素 ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎ア 算出d値の型による ◎ 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.
この~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 = ( %a ~DIV %A ) ~MUL %s ◎ c = ( a / a' ) s
ここで ⇒# %s = `font-size$p の値, %a = `font-size-adjust$p ~propに指定された`~aspect値$, %A = ~fontの実際の`~aspect値$, %c = `font-size$p の調整-後の使用~値 ◎ 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 ~DIV %A ) は,最初の~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 の使用~値に影響するが、 算出d値には影響しない。 それは、[ `ex^u や `ch^u ]などの[ `可用な最初の~font$の~font計量に基づく,相対~単位 ]の~sizeに影響するが,`em^u 単位の~sizeには影響しない。 数量- `line-height$p 値は, `font-size$p の算出d値を参照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行lが互いに重なり合うおそれがある。 ◎ 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値$を決定するために,~borderを伴う 2 つの区間を利用する例。 両~区間( `span^e )とも `font-size$p は同じであるが、 右側の `span^e には `font-size-adjust$p ~propも指定されている。 値 0.5 から始めて、 2 つの普通字を囲む~borderが揃うまで,`~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>
図右の~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$tp || `font-variant-css21$t || `font-weight$tp || `font-stretch$tp ]? `font-size$tp [ / `line-height$tp ]? `font-family$tp ] | `caption$v | `icon$v | `menu$v | `message-box$v | `small-caption$v | `status-bar$v ◎初 個々の~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’, ‘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
この~propの構文は、 ~fontに関係する複数の~propを設定するための,伝統的~typographic上の略式~記法に基づく。 ◎ The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.
`font$p ~propの下位prop — 上に挙げたものに加えて, `font-size-adjust$p, `font-kerning$p, および `font-variant$p のすべての下位prop, `font-feature-settings$p, も含むが, `font-synthesis$p は含まない — すべては、 先ず,それぞれの初期~値に再設定される。 次に,各 下位propには、 この略式~propに明示的に値が与えられていれば,その値が設定される — 許容される値/初期~値の定義は、 個々の下位propの定義を見よ。 後方-互換性の理由から、 `font$p 略式~propでは, `font-size-adjust$p を初期~値~以外の値に設定するのはアリでない — 代わりに、 個々の~propを利用すること。 ◎ All subproperties of the ‘font’ property are first reset to their initial values, including those listed above plus ‘font-size-adjust’, ‘font-kerning’, all subproperties of ‘font-variant’, and ‘font-feature-settings’, but not ‘font-synthesis’. Then, those properties that are given explicit values in the ‘font’ shorthand are set to those values. For a definition of allowed and initial values, see the previously defined properties. For reasons of backwards compatibility, it is not possible to set ‘font-size-adjust’ to anything other than its initial value using the ‘font’ shorthand property; instead, use the individual property.
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 の算出d値を参照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 a 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.).
- 【 利用中の~browserでは、 このように呈示される。 】
- `icon@v
- ~iconに~labelを貼るために利用される~font ◎ The font used to label icons.
- 【 利用中の~browserでは、 このように呈示される。 】
- `menu@v
- ~menu(例:~drop-down~menuや~menu~list)に利用される~font ◎ The font used in menus (e.g., dropdown menus and menu lists).
- 【 利用中の~browserでは、 このように呈示される。 】
- `message-box@v
- ~dialog~boxに利用される~font ◎ The font used in dialog boxes.
- 【 利用中の~browserでは、 このように呈示される。 】
- `small-caption@v
- 小さな~controlに~labelを貼るために利用される~font ◎ The font used for labeling small controls.
- 【 利用中の~browserでは、 このように呈示される。 】
- `status-bar@v
- ~UIwindowの状態s~barに利用される~font ◎ The font used in window status bars.
- 【 利用中の~browserでは、 このように呈示される。 】
~system~fontは一体としてのみ設定し得る — すなわち,[ ~font族, ~size, ~weight, ~style, 等々 ]は、 すべて同時に設定される。 しかる後,欲されるなら、 これらの値は個々に改めれる。 指示された特性を備える~fontが,所与の~platform上に存在しない場合、 ~UAは,適当に代用するか(例: `small-caption$v ~font用には, `caption$v ~fontの より小さい~versionを利用するなど),または ~UAによる既定の~fontで代用するべきである。 定例の~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$v1 || `style$v1 ] ◎初 `weight$v1 `style$v1 ◎適 すべての要素 ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎ア 離散的 ◎表終この~propは、 ~font族が[ ~bold体f/~italic体f ]を欠いているときに,~UAによる合成な[ ~bold体f/~oblique体f ]を許容するかどうかを制御する: ◎ 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@v1
- この値が指定されていない場合、 ~UAは,~bold体fを合成しないモノトスル。
- `style@v1
- この値が指定されていない場合、 ~UAは,~italic体fを合成しないモノトスル。
- `none@v1
- この値は、 合成な書体は許容されないことを指示する。
注記: 欠落~書体に対しては、 合成されない場合には,~font~fallbackが生じる。 ◎ 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の集合 ]に限ることなく,[ ~pageの~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@~CSS22/grammar.html#scanner$ および `文法@~CSS22/grammar.html#grammar$ にて定義される。
次の新たな定義が【~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 と称される~download可能~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を~serveする~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や文書 ]からは可用にしないモノトスル。 ~UAの実装者は、[ ~downloadされた~fontを[ `~system~font~fallback$手続-の下で,可用な~fontが他に存在しない ]ような他の文書 ]内の文字の描画-時に利用すること ]が簡便であると考えるかもしれないが、 ある~pageの内容が他の~pageに影響できることになれば,攻撃者から何らかの攻撃~行路に利用され得ることになり、 ~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-規則は、 ~CSSの前方-互換な構文解析~規則に従う。 宣言~block内の~propと同様、 ~UAは,自身が~supportしない どの記述子に対しても,その宣言を無視するモノトスル。 `font-face$at 規則は、[ `font-family$d, `src$d ]両~記述子を要求する — どちらかが欠落である `font-face$at 規則は、 `~font照合~algo@#font-matching-algorithm$ を遂行するときには考慮しないモノトスル。 ◎ 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 must not be considered when performing the font matching algorithm.
~UAは、[ ~platform資源が限られている/~download可能~font資源を不能化する能を実装している ]下では, `font-face$at 規則を単純に無視するモノトスル。 すなわち,この仕様にて定義される[ 個々の記述子の挙動 ]は、 改められるべきではない。 ◎ 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 ◎値 `family-name$t ◎初 なし(必須) ◎表終この記述子は、 すべての[ ~CSS~font族~名の照合 ]に利用されることになる,~font族~名を定義する。 `font-face$at 規則が妥当になるためには,これが要求される。 それは,下層の~font~dataに包含されている~font族~名を上書きする。 すなわち、 ~font族~名が,[ 利用者~環境にて可用な~font族 ]の名前と同じである場合、 これは,その下層の~font — この記述子が記されている~stylesheetを利用する文書~用の,下層の~font — を実質的に隠蔽する。 これにより,~web作者は、[ 利用者~環境に在る~font族~名 ]との競合-を気にせずに,自由に~font族~名を選べるようになる。 同様に、 所与の~font族~名に対しては,~platform代用は利用しないモノトスル。 ◎ 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 ◎値 [ `url$t [format(`string$t#)]? | `font-face-name$t ]# ◎初 なし(必須) ◎表終この記述子は、 ~font~dataを包含している資源を指定する。 `font-face$at 規則が妥当になるためには,これが要求される。 その値は、 優先順による[ 外部~参照/~localに~installされた書体-名 ]たちが成す,~commaで分離された~listである。 ~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 個になるモノトスル。 素片~識別子は、 どの~fontを読込むかを指示するために利用される — これらは、 `RFC8081$r にて定義される,~fontの~PostScript名を利用する。 適合t~UAは、 素片~識別子が[ 未知/未~support ]である場合には,その~font資源を~downloadすることなく飛ばすモノトスル。 例えば,~OpenType~font集を~supportしない旧~UAは、 ~list内で次にある~URLへ飛ぶことになる。 ◎ 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; these use the PostScript name of the font as defined in [RFC8081]. Conformant user agents must skip downloading a font resource if the fragment identifier is unknown or unsupported. For example, older user agents which do not support OpenType collections will skip to the next url in the list.
src: url(fonts/simple.woff); /* ~stylesheetの所在から相対的な `simple.woff^l を読込む ◎ load simple.woff relative to stylesheet location */ src: url(/fonts/simple.woff); /* 絶対的な所在から `simple.woff^l を読込む ◎ load simple.woff from absolute location */ src: url(fonts/coll.otc#foo); /* ~font集 `coll.otc^l から~font `foo^l を読込む ◎ load font foo from collection coll.otc */ src: url(fonts/coll.woff2#foo);/* ~WOFF 2 ~font集 `coll.woff2^l から~font `foo^l を読込む ◎ load font foo from woff2 collection coll.woff2 */ src: url(fonts.svg#simple); /* `id^c に `simple^l が付与された~SVG~fontを読込む ◎ load SVG font with id 'simple' */
外部~参照は、 1 個の~URLと それに後続する省略可能な形式~hintからなる。 形式~hintは,~URLが参照する~font資源の形式について述べるものであり、 ~commaで分離された[ 周知な~font形式を表す形式~文字列 ]たちが成す~list( `format^f の引数)を包含する。 適合t~UAは、 その形式~hintが指示している~font形式が どれも[ 未知/未~support ]である場合には,参照された~font資源を~downloadすることなく飛ばすモノトスル。 形式~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.
/*
アリなら~WOFF2~fontを読込んで,
他の場合は~WOFF~fontを読込んで,
他の場合は~OpenType~fontを利用する
◎
load WOFF2 font if possible, otherwise WOFF, else use OpenType font
*/
@font-face {
font-family: bodytext;
src: url(ideal-sans-serif.woff2) format("woff2"),
url(good-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^l | `~WOFF 1.0 (Web Open Font Format)@~TR/WOFF/$cite | .woff |
`woff2^l | `~WOFF 2.0 (Web Open Font Format)@~TR/WOFF2/$cite | .woff2 |
`truetype^l | `~TrueType@~OTSPEC/$cite | .ttf |
`opentype^l | `~OpenType@~OTSPEC/$cite | .ttf, .otf |
`embedded-opentype^l | `Embedded OpenType@https://www.w3.org/Submission/2008/SUBM-EOT-20080305/$cite | .eot |
`svg^l | `SVG Font@~TR/SVG11/fonts.html$cite | .svg, .svgz |
~TrueTypeと~OpenType `OPENTYPE$r の間では共通的な用法が重合しているので、 形式~hint[ `truetype^l と `opentype^l ]は,同義と見なすモノトスル — 形式~hint `opentype^l は、 ~fontが[ ~Postscript~CFF~style~glyph~data あるいは ~OpenType ~layout情報 ]を包含することを含意するわけではない (より深い背景0は、 `付録 A@#platform-props-to-css$ を見よ)。 ◎ Given the overlap in common usage between TrueType and OpenType [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する ]ことを選好する場合には、 `local@f を利用できる。 その引数 `font-face-name@t †は、 ~localに~installされた,より大きな族~内で単独の~font書体を一意に識別するような,形式に特有な文字列を与える。 `font-face-name$t の構文†は `local(^l , `)^l で括られた~font族~名である。 名前は、 任意選択で引用符で括ることもできる。 括られていない場合の名前は、 引用符で括られない族~名の処理~規約に従って,`空白$で分離された識別子たちが成す連列でなければナラナイ — それは、 識別子たちを 1 個の~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.
【† `font-face-name$t の構文が "`local( … )^v" の括りも含むのか含まないのか,記述が紛らわしいが、 `src$d 記述子の値~定義~欄に整合させるためには,含める必要がある。 】
/* `Gentium^F の~regular体f ◎ 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の[ `名前~table@~OTSPEC/name$ ]の中の[ ~Postscript名, 全部的~font名 ]]に限られる。 どちらの種類tの名前が利用されるかは、 ~platformと~fontにより様々なので、 作者は,~platform間に渡る適正な照合を確約するためには,これらの名前の両者を含めるべきである。 所与の~font名に対しては,~platform代用を利用しないモノトスル。 ◎ 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体f ◎ 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 ]の特性を指定するのとちょうど同じく, `local$f に利用される一意な名前は、 ~font族~全体ではなく,単独の~fontを指定する。 ~OpenType~font~dataの用語で言えば、 ~Postscript名は,[ ~fontの `名前~table@~OTSPEC/name$ ]の中の [ `nameID^c = 6 の name record ]の中から見出される(詳細は `OPENTYPE$r を見よ)。 ~Postscript名が、[ OSX 上ではすべての~font, Windows 上では~Postscript~CFF~font ]用に共通して利用される~keyである。 全部的~font名( `nameID^c = 4 )は、 Windows 上では~TrueType~glyphを伴う~font用の一意な~keyとして利用される。 ◎ Just as an @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 上では `languageID^c = 0x409, Macintosh 上では `languageID^c = 0 )の全部的~font名が利用されるか,それが可用でないときは最初の地域化名が利用される (~OpenType仕様では、 `どの~fontにも最低でも~US~English名は含める@~OTSPEC/recom$ことが推奨されている)。 他の全部的~font名`にも^em合致させる~UA(例えば、 現在の~system~localeが~Dutchに設定されている下での,~Dutch名への照合)は、 不適合tと見なされる。 これは、[ ~Englishを選好しない, かつ[[ ~fontの~versionや~OSによる地域化名 ]の相違による,照合の不一致を避ける ]]ように,行われる — ~font~style名(例: "Bold" )は,多くの言語にて常習的に地域化されており、 可用な地域化された名前たちが成す集合は,[ 多岐に渡る,~platformや~fontの~version ]間で様々なので。 [ 族~名( `nameID^c = 1 )と~style名 ( `nameID^c = 2 ) ]の連結に合致させる~UAも,不適合tと見なされる。 ◎ 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.
また,これにより、 他の方法では参照し得ない様な,[ より大きな族に属する書体 ]へ【直に】参照することも可能になる。 ◎ 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);
}
地域化された全部名は,決して合致しないので、 下の見出し用~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; }
適合t~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 ◎値 `normal$v1 | `italic$v | `oblique$v ◎初 `normal$v1 ◎表終 ◎述 `font-weight@d ◎値 `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 ◎値 `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記述子から必要と含意された所でのみ、 合成な~style付けを適用するモノトスル。 ◎ 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体fのみを包含している族を考える: ◎ Consider a family containing a single, regular face:
@font-face { font-family: BaskervilleSimple; src: url(baskerville-regular.woff); }
~style付けされていない~textは, `font-face$at 規則の中で定義された~regular体fを利用して表示されることになる: ◎ Unstyled text would display using the regular face defined in the @font-face rule:
しかしながら、 ~italic~textについては,別々に定義された~italic体fはないので、 大多数の~UAは,~regular体fからの~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:
次に、 実際に~italic体fが定義されている族を考える: ◎ 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体fからの~glyphを合成的に~oblique化するのではなく,活字~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:
~font族の中から特定0の書体を選定する処理-についての,より完全な詳細は、 `§ ~font~styleの照合@#font-style-matching$を見よ。 ◎ See the section on font matching 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 ◎値 `urange$t# ◎初 `U+0-10FFFF^v ◎表終この記述子を宣言することにより、 ~font書体が~supportし得る~Unicode `UNICODE$r 符号位置たちの集合を定義できる。 記述子は、 ~commaで区切られた,~Unicode範囲( `urange@t )たちが成す~listを値にとる。 符号位置の集合は、 これらの範囲の和集合として定義され,~UAが[ 所与の~text連なり用に~font資源を~downloadするかどうか ]を裁定する際の~hintになる。 ◎ This descriptor defines the set of Unicode [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 (<urange>) 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.
各 `urange$t 値は、 `UNICODE-RANGE$g ~tokenを成す[[ 接頭辞 `U+^css または `u+^css ], 符号位置~範囲 ]並びで与えられる。 符号位置~範囲は、 次に挙げる 3 種いずれかの形をとる — この形に収まらないものは無効であり,当の宣言は無視されることになる: ◎ Each <urange> value is a UNICODE-RANGE token made up of a "U+" or "u+" prefix followed by a codepoint range in one of the three forms listed below. Ranges that do not fit one of these forms are invalid and cause the declaration to be ignored.
- 単独の符号位置(例: `U+416^v ) ◎ single codepoint (e.g. U+416)
- 1 〜 6 個の 16 進~数字として表現される, 1 個の~Unicode符号位置のみからなる範囲 ◎ a Unicode codepoint, represented as one to six hexadecimal digits
- 区間範囲(例: `U+400-4ff^v ) ◎ interval range (e.g. U+400-4ff)
- ~hyphenで分離された 2 個の 16 進~数字~列として表現される範囲 — 2 個の数字~列は、 順に,範囲の[ 始端, 終端 ]を指示する。 ◎ represented as two hyphen-separated Unicode codepoints indicating the inclusive start and end codepoints of a range
- ~wildcard範囲(例: `U+4??^v ) ◎ wildcard range (e.g. U+4??)
- 尾部の各 文字 `?^css が任意の 16 進~数字を表すとするときの,符号位置の集合として定義される範囲。 ◎ defined by the set of codepoints implied when trailing ‘?’ characters signify any hexadeximal digit
ここで: ◎ ↓
- 個々の符号位置は、 `~Unicode文字~符号位置@https://www.unicode.org/charts/$に対応する 16 進~値で記される。 ◎ Individual codepoints are written using hexadecimal values that correspond to Unicode character codepoints.\
- いずれにせよ、 符号位置を与える各 数字は,文字大小無視であり、 指示される符号位置は,範囲 { 0 〜 10FFFF } に入らなければナラナイ。 ◎ Unicode codepoint values must be between 0 and 10FFFF inclusive. Digit values of codepoints are ASCII case-insensitive.\
- 区間範囲における終端の符号位置は、 始端の符号位置~以上でなければナラナイ。 ◎ For interval ranges, the start and end codepoints must be within the range noted above and the end codepoint must be greater than or equal to the start codepoint.
- 先頭の数字を欠いている~wildcard範囲(例: `U+???^v )も妥当であり,先頭に数字 `0^css を付与した~wildcard範囲(例: `U+0???^v , すなわち `U+0000-0FFF^v )と等価になる。 ~Unicode符号位置の範囲に~~収まり切らない~wildcard範囲は無効になる。 したがって、 `UNICODE-RANGE$g ~tokenは 6 文字まで受容するが,尾部の~wildcard文字 `?^css は 5 個までになる。 ◎ Wildcard ranges specified with ‘?’ that lack an initial digit (e.g. "U+???") are valid and equivalent to a wildcard range with an initial zero digit (e.g. "U+0???" = "U+0000-0FFF"). Wildcard ranges that extend beyond the range of Unicode codepoints are invalid. Because of this, the maximum number of trailing ‘?’ wildcard characters is five, even though the UNICODE-RANGE token accepts six.
`unicode-range$d 記述子の宣言に含まれる~Unicode範囲~list【! ~comma-delimited~list 】においては,複数の範囲が互いに重合してもヨイ。 これらの範囲の和集合が,対応している~fontから利用され得る[ 符号位置の集合 ]を定義する。 ~UAは、 この集合に入らない符号位置に対しては,当該の~fontを[ ~downloadしない/利用しない ]モノトスル。 ~UAは、 範囲~listを,同じ[ 符号位置の集合 ]を表現する,異なる~listに正規化してもヨイ。 ◎ 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@ とは、[ この符号位置~集合 ]と[ ~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のみを取り寄せることになるので、 ~page帯域幅の節約にもなる。 ◎ 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^v;
- ~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で上書きする方法を示す。 1 個目の規則は、 範囲を指定していないので,既定で全~範囲になる。 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^v ) ]用の `unicode-range$d を検査する。 上の文字はすべて,範囲 `U+0-5FF^v に入るので、 ~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 ⇨ that<p>
ここでも~UAは,最初に[ ~Latin文字を包含している~font ]の `unicode-range$d を検査する。 矢印の符号位置( `21E8^U )は,範囲 `U+2000-2300^v に入るので、 ~UAは,その~fontを~downloadする。 しかしながら,~Latin~fontは,この文字に合致している~glyphを持たないので、 この符号位置は,[ ~font照合~用に利用される有効 `unicode-range^d ]からは除外される。 次に,~UAは~Japanese~fontを評価する。 ~Japanese~font用の `unicode-range^d は[ `U+3000-9FFF^v, および `U+ff??^v ]であり, `21E8^U は含まれていないので、 ~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-feature-settings^d 記述子
◎述 `font-feature-settings@d ◎値 `normal^v | `feature-tag-value$t# ◎初 `normal$v1 ◎表終この記述子は、[ `font-face$at 規則により定義される~font ]の描画-時に適用される,初期~設定群を定義する。 これは~fontの選定には影響しない。 各種 値は、 値 `inherit^v は~~除外されることを除き,対応する `font-feature-settings$p ~prop用に定義されるものに一致する。 複数の[ ~font特能[ 記述子/~prop ]]が利用されるときの,[ ~text描画における累積的な効果 ]の詳細は、 `§ ~font特能~解決@#font-feature-resolution$にて。 ◎ This descriptor defines initial settings that apply when the font defined by an @font-face rule is rendered. It does not affect font selection. Values are identical to those defined for the corresponding ‘font-feature-settings’ property defined below except that the value ‘inherit’ is omitted. When multiple font feature descriptors or properties are used, the cumulative effect on text rendering is detailed in the section Font Feature Resolution below.
4.8. ~font読込ngの指針
`font-face$at 規則は、 ~lazyな読込ng — ~font資源は、 文書~内で利用されるときに限り,~downloadされる — を許容するように設計されている。 ~stylesheetには、[ 選定された集合のみを利用するような,~fontたちが成す~library ]用に, `font-face$at 規則を含ませることができる。 ~UAは、[ ~style規則~内から参照rされている~font ]のうち,[ 所与の~pageに適用-可能なもの ]のみを~downloadするモノトスル。 [ それらの~fontが~page内で~~実際に利用されるかどうか ]について考慮せずに,[ `font-face$at 規則にて定義される~font ]すべてを~downloadする~UAは、 不適合tと見なされる。 [ 文字~fallbackが生じる場合に~fontが~downloadされ得る ]下では、 ~UAは[[[ 所与の~text連なり用の `font-family$p ]の算出d値 ]に包含されている~font ]を~downloadしてもヨイ。 ◎ 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 要素を伴う~page用に~downloadされることになる ◎ font will be downloaded for pages with p elements */ font-family: GeometricModern, sans-serif; } h2 { /* `h2^e 要素を伴う~page用には、 `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; }
~download可能~fontが可用になる前に,~textな内容が読込まれた所では、 ~UAは,~textを[[ ~download可能~font資源が可用でないときに描画されることになる ]ような~~形 ]に描画するか,あるいは、 ~fallback~fontの利用による~textの明滅 【 ~downloadが完了する前に~fallback~fontによる~textが一瞬~表示される現象】 を避けるために,~fallback~fontによる~textを 一時的に透明に描画してもヨイ。 ~UAは、 ~fontの~downloadに失敗した所では,~textを表示するモノトスル — 単純に~textを透明なまま放置することは,不適合tな挙動と見なされる。 作者には,巨大な~pageの~reflowを避けるため、 アリな所では,~fallback~fontには[ ~font~listの中の,~download可能~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の読込ngには, `FETCH$r に定義される`~CORSも可能化され得る~fetch@~FETCH#http-cors-protocol$を利用するモノトスル。 ~fetchするときは、[ "Anonymous" ~modeを利用する, ~referrer~sourceは~stylesheetの~URLに設定する, 生成元は包含している文書の~URLに設定する ]モノトスル†。 ◎ For font loads, user agents must use the potentially CORS-enabled fetch method defined by the [FETCH] 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.
【† これらの~parameterは、 廃された~W3C~HTML仕様に定義されていた~algoの記述に基づいており, どう適用するべきか意図不明になっている。 実際には、 ~level 4 の `§ ~font~fetchingに課される要件@~CSSFONT#font-fetching-requirements$ に従うことになろう。 】
注記: このことは,作者にとっては、[ 非同一-生成元からの~fontは、 作者が許可する手続きを特定的に踏まない限り,概ね読込まれなくなる ]ことを含意する。 ~siteは `Access-Control-Allow-Origin^h HTTP ~headerの利用により,~siteをまたがる~font~dataの読込ngを明示的に許容できる。 他の【 HTTP(S) 以外の 】~scheme用には、 ~CORSも可能化され得る~fetchにより許可されるものを超えて[ 定義される または要求される ]ような,[ 非同一-生成元からの読込ngを許容する明示的な仕組み ]は無い。 ◎ 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.
下に与える例では、 文書の所在は `http://example.com/page.html^l であり, かつ すべての~URLの~linkは[ ~UAが~supportする妥当な~font資源 ]を指しているとする。 下の[ 各種 `src$d 記述子 の値 ]により定義される~fontは、 読込まれることになる: ◎ For the examples given below, assume that a document is located at http://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^h 応答~headerは '*
' に設定されているとする ◎ Access-Control-Allow-Origin response header set to '*' */ src: url(http://another.example.com/fonts/simple.woff);
下の[ 各種 `src$d 記述子の値 ]により定義される~fontの読込ngは、 失敗することになる (いずれも,正しく設定された[ `Access-Control-^h が接頭された~header ]を伴わないとする): ◎ Fonts defined with the ‘src’ descriptor values below will fail to load:
/* 非同一-生成元 — ~schemeが異なる ◎ cross origin, different scheme ◎ no Access-Control prefixed headers are set correctly */ src: url(http://example.com/fonts/simple.woff); /* 非同一-生成元 — ~domainが異なる ◎ cross origin, different domain ◎ no Access-Control prefixed headers are set correctly */ src: url(http://another.example.com/fonts/simple.woff);
5. ~font照合~algo
個々の~text連なりが,どのようにして~fontに結付けられるかは、 以下の~algoに述べられる。 ~text連なりの中の各~文字ごとに,[ その文字~用の~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族~名 ]とを照合するモノトスル。 ~UAは、 これらの名前を, Unicode 仕様 `UNICODE$r にて要旨されている[ “`Default Caseless Matching^en” ~algo ]を利用して,文字大小無視の下で照合するモノトスル。 この~algoの詳細は、 その仕様の[ § “`Default Case Algorithms^en” ]に示されている。 特定的には、 この~algoを適用するときは,[ 文字列を正規化しない, かつ 言語に特有な いかなる誂えも適用しない ]モノトスル。 この~algoにより指定される[ 大文字正規化~method ]は、[ Unicode Character Database の~file "CaseFolding.txt" `UNICODE$r ]の中の,[ "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 [UNICODE].
注記: 作者にとっては、 これは次を意味する: ~font族~名は、 それらの名前が[ ~platform~fontの中に, または[ ~stylesheetに包含されている `font-face$at 規則 ]の中に存在するかどうかに応じて,文字大小無視の下で照合される。 作者は、 発音区別符などの結合~文字を利用しているときは特に,[ 名前が実際の~font族~名に整合な文字~連列になる ]のを確保するよう,注意を払うべきである。 例えば、[ 小文字の "a" ( `0061^U ), COMBINING RING ABOVE ( `030A^U ) ]が成す並びを包含する族~名は,その結合~文字~連列に代えて[ 合成済みな[ 小文字の ring 文字 ( `00E5^U, "å" ) ]]を利用する名前と,見かけ上は一致するが、 合致しないことになる。 ◎ 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 a lowercase a (U+0061) 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.
注記: 実装者は、[ 所与の[ 大小無し文字列~比較の実装 ]が,この精確な~algoを利用しているかどうか ]を検証yし,[ 所与の[ ~platformの文字列~照合~routine ]が,それに従っている ]ものと見做さないように、 注意を払うべきである — これらの多くが、 ~localeに特有な挙動を備えていたり, あるいは 何らかの~levelの文字列~正規化 `UAX15$r を利用しているので。 ◎ 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 [UAX15].
5.2. ~font~styleの照合
~text連なりの中の所与の文字~用に,~fontを選ぶ手続-は、 次から構成される:
- `font-family$p ~propにより名前が与えられている,一連の~font族の走査-法。
- [ 他の各種~font~prop ]に基づく適切な~styleを伴うような,~font書体の選定-法。
- 所与の文字~用の~glyphが存在するかどうかの決定-法。 これは、 ~fontの `文字~map@ — すなわち,文字をその文字~用の既定の~glyphに対応付ける~data — を利用して行われる。
~fontは、 ~AND↓ を満たすならば,所与の文字 %文字 を `~support@ するものと見なされる:
- ~fontの`文字~map$は、 %文字 を包含している
- %文字 を包含している用字系から要求される場合は、 %文字 用の形状付け情報が~fontにて可用である。
旧来の~fontには、 所与の文字を`文字~map$の中に含みつつ,[ その文字を包含している~text連なり ]を正しく描画するために必要yな,形状付け情報 (例: `~OpenType~layout~table@~OTSPEC/ttochap1$ / `Graphite tables@https://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_techAbout$ ) を欠いているものもある。 ◎ 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.
[ 基底~文字, 1 個以上の結合~文字 ]が成す符号位置~連列の扱いは、 少しばかり異なる — それについては, `§ ~cluster照合@#cluster-matching$ を見よ。 ◎ Codepoint sequences consisting of a base character followed by a sequence of combining characters are treated slightly differently, see the section on cluster matching below.
この手続-における[ 所与の~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.
- ~UAは、 所与の要素~用の[ ~font~propの算出d値 ]を利用して,[ `font-family$p ~propに指定されている最初の族~名 ]から走査-を開始する。 【以下、 “~UAは…” は省略する。】 ◎ 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.
- 族~名が汎用~族~keywordである場合 ⇒ 利用することになる適切な~font族~名を検索する — 利用する汎用~font族を[ 包含している要素の言語や, その文字の~Unicode範囲 ]に基づいて,選んでもヨイ。 ◎ 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.
-
他の場合(他の族~名に対しては) ⇒ [ `font-face$at 規則を介して定義される一連の~font ]の中から,族~名を見出-した上で、 上の節で要旨したように[ 可用な~system~font ]の中から, `文字大小無視による比較@#font-family-casing$により名前の照合を試みる: ◎ 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.\
- ~systemに,複数の[ 地域化された~font族~名 ]を包含する~fontがある下では、 これらのどの名前に対する照合も,[ 利用している下層の[ ~system~localeや~platform API ]]からは独立に行うモノトスル。 ◎ 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.\
- [ `font-face$at 規則の中で与えられた書体 ]用に定義されている~font資源が,[ 可用でない, または 無効な~font~dataを包含している ]場合 ⇒ その書体は その族の中に無いものと扱うべきである。 ◎ 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.\
- [ `font-face$at 規則を介して定義される族 ]用の書体が無い場合 ⇒ その族は欠落なものと扱うべきであり,同じ名前の~platform~fontと合致させないモノトスル。 ◎ 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.
-
~font族との合致-が生じた場合 ⇒ その族~内の~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:
-
まず, `font-stretch$p について試行する: ◎ ‘font-stretch’ is tried first.\
- 照合~集合が[ `font-stretch$p 値に合致している字幅~値 ]を伴う書体を包含している場合 ⇒ 照合~集合から[ 他の字幅~値を伴う書体 ]を除去する。 ◎ 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.\
- `font-stretch$p の値が[ `normal^v, または いずれかの …`-condensed^v 値 ]である場合 ⇒ 各 字幅~値を,幅狭なものから幅広なものへ順に検査していく。 ◎ If the value of ‘font-stretch’ is ‘normal’ or one of the condensed values, narrower width values are checked first, then wider values.\
- `font-stretch$p の値がいずれかの …`-expanded^v 値である場合 ⇒ 各 字幅~値を,幅広なものから幅狭なものへ順に検査していく。 ◎ 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.
-
次に, `font-style$p について試行する: ◎ ‘font-style’ is tried next.\
-
`font-style$p の値に応じて,対応する項目に示された順で 書体を検査する:
- `italic$v
- ~italic → ~oblique → ~normal
- `oblique$v
- ~oblique → ~italic → ~normal
- `normal^v
~normal → ~oblique → ~italic
[ 他の~style値 ]を伴う書体は,照合~集合から除外する。
◎ 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.\ - ~UAには[ ~platform~font族 ]内の[ ~italic体fと~oblique体f ]を判別することが許可されるが、 これは要求されないので,すべての[ ~italic体f/~oblique体f ]を~italic体fとして扱ってもヨイ。 しかしながら,[ `font-face$at 規則を介して定義される~font族 ]においては、[ `font-style$d 記述子の値 ]を利用して[ ~italic体fと~oblique体f ]を判別するモノトスル。 ◎ 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.\
- [ ~italic体f/~oblique体f ]を欠くどの族に対しても、 `font-synthesis$p ~propの値により許可されるのであれば,人工的な~oblique体fを創出してもヨイ。 ◎ For families that lack any italic or oblique faces, user agents may create artificial oblique faces, if this is permitted by the value of the ‘font-synthesis’ property.
-
-
最後に `font-weight$p を照合する — これにより,照合~集合は常に単独の~font書体に絞り込まれるようになる: ◎ ‘font-weight’ is matched next, so it will always reduce the matching set to a single font face.\
- 相対~weight[ `bolder^v/`lighter^v ]が利用されている場合 ⇒ 実質的な~weightは、 `font-weight$p ~propの定義に述べたように,~weightの継承d値に基づいて計算する。 ◎ 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.\
- 欲された~weight — 以下 %w と記される — は、 照合~集合を成すある書体にて可用な いずれかの~weightに合致する場合 ⇒ その書体が合致する。 ◎ 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.\
-
他の場合 ⇒ 以下の~~規則を利用して,~weightを選ぶ — %w に応じて: ◎ Otherwise, a weight is chosen using the rules below:
- %w ~LT 400 の場合
- 合致-が見出されるまで、 まず %w より下の~weightを降順に検査してから, %w より上の~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 ~GT 500 の場合
- 合致-が見出されるまで、 まず %w より上の~weightを昇順に検査してから, %w より下の~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 ~EQ 400 の場合
- 最初に 500 を検査してから, %w ~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 ~EQ 500 の場合
- 最初に 400 を検査してから, %w ~LT 400 用の規則を利用する。 ◎ If the desired weight is 500, 400 is checked first and then the rule for desired weights less than 400 is used.
- `font-size$p は、[ ~UAに依存する許容差 ]に~~収まる~sizeに合致させるモノトスル(概して、 拡縮-可能な~font用の~sizeは,~pixelの整数倍に最も近い~sizeに丸められる一方、 ~bitmap化された~font用の許容差は 20% くらいの大きさにされる)。 更なる~~計算 — 例えば、 他の~propの中の `em^u 値による~size — は、 `font-size$p の指定d値ではなく,使用~値に基づく。 ◎ ‘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.
-
-
合致した書体が `font-face$at 規則を介して定義されている場合、 次の手続-を利用して,単独の~fontを選定するモノトスル: ◎ If the matched face is defined via @font-face rules, user agents must use the procedure below to select a single font:
- [ ~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.
- ~downloadした後,その`有効~文字~map$が当の文字を~supportする場合 ⇒ その~fontを選定する。 ◎ After downloading, if the effective character map supports the character in question, select that font.
合致した書体が`組成-書体$であるときは、 `組成-書体$を成す各 書体に対し,[ `font-face$at 規則~定義の逆順 ]で上の手続-を利用するモノトスル。 ◎ 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後に描画し直す ◎ 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.
- [ 合致している書体が存在しない ], または[ 合致した書体は[ 描画される文字~用の~glyph ]を包含しない ]場合 ⇒ 次にある族~名を選定した上で,[ 前の 3 個の段 ]を繰返す。 族の中の他の書体からの~glyphは、 考慮しない — ただし、[ その書体が所与の~glyphを~supportする ], かつ[ `font-synthesis$p ~propの値により,これらの書体の合成が許可されている ]場合、 任意選択で,[ `既定の書体$を合成的に~oblique化した~version ]で代用してもヨイ。 例えば,~italic体fが[ ~Arabic用の~glyph ]を~supportしていない場合、[ ~regular体fの合成な~italic~version ]を利用してもヨイ。 ◎ 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.
- [ 評価する~font族が尽きた ], かつ[ 合致する書体を見出せなかった ]場合 ⇒ [ 描画される文字に最も釣り合う書体 ]を見出すために,[ `~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.
-
特定0の文字が,どの~fontを利用しても表示できない場合、 次のいずれかを行うべきである:
- 何らかの手段により,[ 象徴的な表現を成す欠落用~glyph ]を表示する (例えば, `Last Resort Font@https://en.wikipedia.org/wiki/Last_resort_font$ を利用して)。
- 既定の~fontからの欠落用~文字~glyphを利用して,文字が表示されていないことを指示する。
この処理-の最適化は、 実装がこの~algoに正確に従ったかのように挙動する限り,許容される。 同じ[[ 可用な~fontの集合と, 描画~技術 ]の組合n ]の下で現れる結果が,アリな限り~UA間で一致することを確保するため、 照合は, `well-defined^en な【 “きちんと定義された” — すなわち,この~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.
`可用な最初の~font@ は、 `font-family^p ~list内に所与の~font族にて可用な~fontのうち, `0020^U (space) に合致する最初のもの(可用なものが無ければ,~UAの既定の~font)として定義される。 これは、 例えば[ `ex^u や `ch^u などの,`~fontに相対的な長さ$ ]や[ `line-height$p ~prop ]などの定義から利用される。 ◎ The first available font, used for example in the definition of font-relative lengths such as ‘ex’ and ‘ch’ or in the definition of the ‘line-height’ property, is defined to be the first available font that would match the U+0020 (space) 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は基底~文字と同じ~fontを利用して描画されるべきである。 これにより,~markの適正な配置が確約される。 この理由から、 ~cluster用の~font照合~algoは,単独の文字を照合する一般~事例よりも特化されている。 異体~選択子 【`参考@https://ja.wikipedia.org/wiki/%E7%95%B0%E4%BD%93%E5%AD%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF$】 — それは、 所与の文字に利用する精確な~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.
[ 結合符, その他の `modifier^en【 Unicode Modifier Letter (修飾字)?】 ]を包含している符号位置~連列は、 書記素~clusterと呼ばれる(より完全な記述は `CSS-TEXT-3$r, `UAX29$r を見よ)。 [ 基底~文字, 後続する 1 個~以上の結合~文字 ]が成す書記素~cluster %cluster に対しては、 ~UAは,次の手続きを利用して照合するモノトスル: ◎ A sequence of codepoints containing combining mark or other modifiers is termed a grapheme cluster (see [CSS-TEXT-3] and [UAX29] 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:
-
~font~list内の各~族に対し,順に、 前~節に定義した~style選定~規則を利用して書体を選ぶ下で: ◎ For each family in the font list, a face is chosen using the style selection rules defined in the previous section.
- ~font【内の同じ書体】は、 %cluster を成すすべての文字を完全に~supportする場合 ⇒ その~fontを %cluster 用に選定する。 ◎ If all characters in the sequence b + c1 + c2 … are completely supported by the font, select this font for the sequence.
- 他の場合,[ 【 %cluster の頭部を成す】複数個の符号位置が成す連列が,ある単独の文字 %x と正準的に等価であって、 ~fontは %x を`~support$する ]ならば ⇒ その~fontを %cluster 全体~用に選定した上で、 %x に結付けられた~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 equivalent character for the entire cluster.
-
前~段にて,条件を満たす~fontが~font~list内に見出されなかった場合: ◎ If no font was found in the font list in step 1:
-
%cluster 内の最初の結合~文字 %c1 は異体~選択子である場合: ◎ If c1 is a variation selector,\
- `~system~font~fallback$を利用して,連列[ 基底~文字, %c1 ]を`~support$する~fontを見出す ◎ system fallback must be used to find a font that supports the full sequence of b + c1.\
- ~system上のどの~fontも,前~段の連列を`~support$しない場合 ⇒ 基底~文字に対し,単独の文字を照合する通常の手続-を適用した上で、 %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.\
注記: %cluster に複数個の異体~選択子が伴われる場合でも、 符号化法の~errorとして扱った上で,残りの異体~選択子は無視するモノトスル。 `UNICODE$r ◎ Note: a sequence with more than one variation selector must be treated as an encoding error and the trailing selectors must be ignored. [UNICODE]
- 他の場合 ⇒ `~system~font~fallback$を利用して,[ %cluster 全体を`~support$する~font ]に合致させてもヨイ。 ◎ Otherwise, the user agent may optionally use system font fallback to match a font that supports the entire cluster.
-
-
前~段にて~fontが見出されなかった場合: ◎ If no font is found in step 2,\
- この~algoの最初の段を利用して、 次を満たす最も長い連列を決定する ⇒ %cluster の頭部を成す, かつ ~font~list内の 1 つの~fontが完全に`~support$する ◎ 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文字 `UNICODE$r を包含している~text連なり ]上で遂行されるので、 旧来の符号化法を利用している文書は,~font照合の前に符号変換されているものと見做される。 ~Unicode用の他に,旧来の符号化法~用の`文字~map$も包含している~fontに対しては、 そのような`文字~map$の内容は,~font照合~処理-の結果に影響しないモノトスル。 ◎ CSS font matching is always performed on text runs containing Unicode characters [UNICODE], 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照合~処理-は、 当の~text連なりが正規化形であるとも, そうでない形であるとも,見做さない(詳細は `CHARMOD-NORM$r を見よ)。 ~fontは[ 基底~文字, 結合符たち ]が成す連列に分解された形を~supportせずに,合成済みな形のみを~supportしてもヨイ。 作者は常に,内容の文字~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は: ◎ If a given character is a Private-Use Area Unicode codepoint,\
- [ `font-family^p の中で名前が挙げられた,汎用~族でない~font族 ]のみに合致させるモノトスル。 ◎ user agents must only match font families named in the ‘font-family’ list that are not generic families.\
- `font-family^p の中で名前が挙げられたどの族も,その符号位置~用の~glyphを包含していない場合 ⇒ その符号位置~用に`~system~font~fallback$を試みることなく,その文字~用に[ 何らかの形の欠落用~glyph記号 ]を表示するモノトスル。 ◎ 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.\
置換~文字 `FFFD^U に対する照合に際しては、 ~UAは,~font照合~処理-を飛ばして[ 何らかの形の欠落用~glyph記号 ]を即時に表示してもヨイ。 それらについては、[ ~font照合~処理-により選定されることになる~font ]からの~glyphを表示することは,要求されない。 ◎ 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が[ 多岐に渡る合字, 文脈依存~style上の代替-, [ 一定幅/~old-style ]の数字f, 小頭字【“小さく” された大文字】, 自動的~分数, ~swash, 所与の言語に特有な代替- ]用の~glyphを供せる。 作者がこれらの~font能力を制御できるようにするため、 CSS3 用に `font-variant^p ~propが拡張pされた。 それは今や,[ ~fontの各種~style上の特能~用の制御を供する各種~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は、 ごく基本的な処理~modelを利用する。 ~fontは、 各~文字をその文字~用の【! 1 個の? 】~glyphに対応付ける,`文字~map$を包含する。 後続な文字~用の~glyphは、 単純に,~text連なり【!* 】に沿って他の文字の後に置かれる。 ~OpenTypeや~AAT( Apple Advanced Typography )などの,現代の~font形式は、 より多彩な処理~modelを利用する。 所与の文字~用の~glyphは、 文字~自身の符号位置のみならず,[ 隣接する文字や[ 言語, 用字系, ~text用に可能化された各種 特能 ]]に基づいて[ 選ばれ, 位置され ]得る。 ~font特能には、 特定の用字系~用に要求されるものもあれば,既定で可能化されるよう推奨されるものもあれば,作者による制御~用として意味された ~style上の特能もある。 全体的な~text処理~演算(~text変形n, ~text方位, ~text整列など)において[ ~font選定, 位置決め ]がどこで起こるかについては、 `各種~text演算の処理~順序@~CSSTEXT#order$ `CSS-TEXT-3$r にて述べられる。 ◎ 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. The point at which font selection and positioning happens in the overall order of text processing operations (such as text transformation, text orientation and text alignment) is described in [CSS-TEXT-3], § Text Processing Order of Operations.
`OPENTYPE-FONT-GUIDE$r にて,これらの特能の有益な視覚的な概観を見れる。 `WINDOWS-GLYPH-PROC$r にて,~OpenType~font用の~glyph処理の詳細な記述を見れる。 ◎ 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の~style上の特能は、 大きく 2 つに分類できる: ◎ Stylistic font features can be classified into two broad categories:\
- [ ~kerning, 合字 ]特能など,[ ~glyphの形状と, 周囲の文脈との調和 ]に影響するもの ◎ ones that affect the harmonization of glyph shapes with the surrounding context, such as kerning and ligature features, and\
- [ 小頭字s, 下上付-, 代替- ]特能など,形状の~選定に影響するもの ◎ ones such as the small-caps, subscript/superscript and alternate features that affect shape selection.
下に挙げられる[ `font-variant$p の下位prop ]が、 これらの[ ~fontの~style上の特能 ]を制御するために利用される。 それらは、 ~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 ]の正書法にて見出される,[ ~style上の伝統様式に基づく,言語に特有な異体 ]を示す: ◎ 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:
言語に特有な形 — ~Spanish ◎ language specific forms, spanish
言語に特有な形 — ~Italian ◎ language specific forms, italian
言語に特有な形 — ~French ◎ language specific forms, french
要素の内容~言語が`文書~言語$の規則に則って既知である場合†、 ~UAには,内容~言語から~OpenType言語~systemを推定した上で、 ~OpenType~fontを利用する~glyphの[ 選定-法と位置決め ]に,その言語~systemを利用することが要求される。 【†おそらく、`内容~言語$が `Content-Language^h ~headerから既知になる場合も含まれるであろう。】 ◎ 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.
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 特能が可能化される(縦書きの~text連なり用には代わりに `vkrn^tag 特能が可能化される)。 ~UAは、[ `kern^tag ~font~table — 詳細は~OpenType仕様にて — に包含されている~dataを介してのみ,~kerningを~supportするような~font ]も,~supportするモノトスル。 `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処理の速度に波及する他の要因 ]に基づいて決定できる。 適正な~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特能~解決@#font-feature-resolution$ に述べられる。 ~OpenType~fontに対しては、 共通-合字と[ 文脈依存~形 ]]は既定で可能化され,随意~合字と歴史的な合字はそうでない。 ◎ A value of ‘normal’ specifies that common default features are enabled, as described in detail in the next section. For OpenType fonts, common ligatures and contextual forms are on by default, discretionary and historical ligatures are not.
- `none@v1
- この~propが受持つすべての種類tの[ 合字と[ 文脈依存~形 ]]を、 明示的に不能化させることを指定する。 合字を考慮する~必要がない状況では、 これにより~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.
-
共通的な合字の例 ◎ common ligature example
- `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^en — 同じ意味?】 ]かは,活字~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.
-
随意~合字の例 ◎ discretionary ligature example
- `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).
-
歴史的な合字の例 ◎ historical ligature example
- `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.
-
文脈依存~代替-の例 ◎ contextual alternate example
- `no-contextual@v
- 文脈依存~代替-( ~OpenType特能: `calt^tag )による表示を不能化する。 ◎ Disables display of contextual alternates (OpenType feature: calt).
複階的な用字系を正しく描画するために必要yな,必須 合字( ~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.
各種 値の意味は: ◎ 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).
下上付-の意味論上の資質から、 所与の【!連続的】~text連なり用の値が[ `sub$v / `super$v ]である下で,その~text連なりの中に[ 異体字~glyphが可用でない文字 ]が一つでもある場合、 すべての文字に対し,[ この特能が適用されなかったとするときに利用される~glyph ]に還元された形を利用した,模造による~glyphが合成されるべきである。 これは、[ 異体字~glyphと合成されたものとの混在 — その場合,正しく揃わないことになる ]を避けるため,~text連なりごとに行われるとする。 所与の文字~用の下上付~glyphを欠いた~OpenType~fontの場合、 ~UAは,適切な下上付~glyphを合成するモノトスル。 ◎ 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 should 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.
~text装飾が[ 下上付~glyphを包含している~text連なり ]のみに適用される状況【?】においては、 装飾の配置に伴う問題を避けるために,合成された~glyphが利用されてもヨイ。 ◎ In situations where text decorations are only applied to runs of text containing superscript or subscript glyphs, the synthesized glyphs may 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@~OTSPEC/os2$ `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数字n用には大抵は可用である一方、 約物や普通字~文字~用の~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 ]にされていても、 ~text連なり内に包含されるイメージは,値が `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 は推奨されない。 作者は、 この~propを[ 下上付-が,指定した~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と同じ基底線を利用する。 配置の際に基底線によりズラされることはないので、 異体字~glyphの利用により,行内~boxの高さが影響されたり, 行l~boxの高さが改められることはない。 したがって,下上付~異体字は、 複-柱~layoutなど,行間が一定に~~揃うことが重要になる状況においては,理想的なものになる。 ◎ 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の調整-法を伴わずに それを描画することになる。 より古い~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, および[[ この目的に合わせるため,~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.
-
小頭字sの例 ◎ small-caps example
- `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’).
`font-feature-settings$p ~propは、 模造された小頭字s~fontを利用するかどうかの裁定には影響しない。 ◎ The ‘font-feature-settings’ property does not affect the decision of whether or not to use a simulated small-caps font.
【! but it does in Fonts 4】#example1 { font-variant-caps: small-caps; } #example2 { font-variant-caps: small-caps; font-feature-settings: 'smcp' 0; }
小頭字sを~supportしない~fontに対しては、 `#example1^css, `#example2^css の両者とも合成された小頭字sで描画されるべきである。 一方で,小頭字sを~supportする~fontに対しては、 `#example1^css は~native小頭字sで, `#example2^css は(~native/合成された)小頭字sなしで 描画されるべきである。 ◎ For fonts which don't support small caps, both #example1 and #example2 should be rendered with synthesized small caps. However, for fonts which do support small caps, #example1 should be rendered with native small caps, while #example2 should be rendered without any small-caps (native or synthesized).
周囲の~textと釣り合うようにするため、 ~fontは,これらの特能が可能化されたときに[ 大小無し文字~用の代替-~glyph ]を供することがあるが、 ~UAが小頭字を模造するときは、[ 大小無しと見なされている符号位置~用の代替- ]の模造を試みないモノトスル。 ◎ 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.
これらの特能を~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に利用されるものに合致するそれを利用するモノトスル。 ◎ 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.
~italic化されて描画される引用文は、 最初の行lでは,小頭字sにもされる: ◎ Quotes rendered italicized, 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.@https://lists.w3.org/Archives/Public/www-style/2009Dec/0036.html$</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内では,均衡幅の数字nが利用される一方で、 一連の[ 数字nの縦列 ]が適正に~~揃うように,一定幅の数字nが利用される: ◎ 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:
可能な組合nは: ◎ 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).
-
斜括線の例 ◎ diagonal fraction example
- `stacked-fractions@v
- 水平括線を伴う分数( ~OpenType特能: `afrc^tag )による表示を可能化する。 ◎ Enables display of lining stacked fractions (OpenType feature: afrc).
-
水平括線の例 ◎ stacked fraction example
- `ordinal@v
- 序数を伴なう普通字~形( ~OpenType特能: `ordn^tag )による表示を可能化する。 ◎ Enables display of letter forms used with ordinal numbers (OpenType feature: ordn).
-
序数の例 ◎ ordinals example
- `slashed-zero@v
- ~slash付きゼロ( ~OpenType特能: `zero^tag )による表示を可能化する。 ◎ Enables display of slashed zeros (OpenType feature: zero).
-
~slash付きゼロの例 ◎ slashed zero example
`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" のみが序数~形で現れることになり,数字は不変のままにされる。 所与の言語に利用されている~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用途には相応でない。
【! moved to Fonts 4 】
◎
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. 東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 ◎適 すべての要素 ◎継 される ◎百 受容しない ◎算 指定されたとおり ◎ア 離散的 ◎表終東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).
-
JIS78 形の例 ◎ JIS78 form example
- `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を含むが、 例えば,サイネージに合致させるために、 より古い異体字の利用が必要yなこともある。 ◎ 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形 ]の正確な集合は、 所与の~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.
-
伝統的な形の例 ◎ traditional form example
- `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).
-
均衡幅の~Japaneseの例 ◎ proportionally spaced Japanese example
- `ruby@v
- ~ruby異体字~glyph( ~OpenType特能: `ruby^tag )による表示を可能化する。 ~ruby~textは一般に,それに結付けられる本文~textより小さいので、 ~font~designerは,~ruby用途の,[ 既定の~glyphの縮小~version ]より読み易い,特別な~glyphを~designすることがある。 ~glyph選定のみが影響され、[ 結付けられた~fontの拡縮-法 ]や[ ~text行lの~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.
~ruby異体字の例 ◎ ruby variant example
6.9. ~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 || [ `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を見よ ◎表終`font-variant$p ~propは、 そのすべての下位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-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 ‘font-feature-settings’.
6.10. 低次の~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仕様 `OPENTYPE$r に指定されるように,特能~tagは 4 個の~ASCII文字を包含する。 [ ~~長さが 4 文字に一致しない ], あるいは[ 符号位置の範囲 `U+20–7E^v に入らない文字を包含している ]~tag文字列は、 無効である。 特能~tagは,[ ~fontの中で定義される特能~tag ]に合致させるのみで十分なので、 それらは[ 明示的に登録されている ~OpenType特能 ]に制限されない。 ~custom特能~tagを定義する~fontは、 ~OpenType仕様 `OPENTYPE-FEATURES$r に定義される `~tag名~規則@~OTSPEC/featuretags$に従うべきである。 ◎ The <string> is a case-sensitive OpenType feature tag. As specified in the OpenType specification [OPENTYPE], 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の挙動 ]を合成しようと試みないモノトスル。 唯一の例外として,~UAは、[[ `kern^tag ~tableの~~形で~kerning~dataを包含するが, `GPOS^c ~tableの中では `kern^tag 特能の~supportを欠いている ]ような~font ]による `kern^tag 特能を,合成的に~supportしてもヨイ。 ◎ 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は常に,どちらの種類tの~kerning~dataを伴う~fontにも影響するので。 ◎ 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 以上でなければナラナイ。 値 `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$p の算出d値は~mapなので、 指定d値~内の重複は保全しないモノトスル。 同じ~tag名を伴う `feature-tag-value$t が複数個~現れた場合、 それらのうち最後のものが他を~~上書きする。 ◎ The computed value of font-feature-settings is a map, so any duplicates in the specified value must not be preserved. If the same axis name appears more than once, the value associated with the last appearance supersedes any previous value for that axis.
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^en )を可能化する ◎ 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 は 一定幅~数字n, および歴史的な形を可能化する ◎ 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は【識別子ではなく,】文字列でなければナラナイ ◎ invalid, tag must be a string */
[ ~fontが~supportする範囲 ]より大きい値が指定されているときの挙動は、 明示的に未定義になる。 真偽値の特能に対しては、 これらは一般に,その特能を可能化することになる。 真偽値でない特能に対しては、 範囲~外の値は,一般に値 0 と等価になる。 しかしながら,いずれの場合も、 正確な挙動は,~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>毎日`カレー@https://www.google.com/search?q=カレー&tbm=isch$食べてるのに、 飽きない</p>
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 ]用に定義されている既定の特能 ]を可能化するモノトスル。 要求される[ 合字, 共通-合字, 文脈依存~形( ~OpenType特能: `rlig^tag, `liga^tag, `clig^tag, `calt^tag )]は、[ 地域化された形( ~OpenType特能: `locl^tag )], および[[ 組にされた[ 文字や~mark( ~OpenType特能: `ccmp^tag, `mark^tag, `mkmk^tag )]の適正な表示 ]用に要求される特能 ]に沿うように,既定で可能化するモノトスル。 これらの特能は、[ `font-variant$p, `font-feature-settings$p ]~propの値が `normal^v のときでも,常に可能化するモノトスル。 個々の特能が不能化されるのは、 作者から明示的に上書きされたときに限られる — `font-variant-ligatures$p が `no-common-ligatures$v に設定されたときなど。 [ `Arabic@https://docs.microsoft.com/en-us/typography/script-development/arabic$ `ARABIC-TYPO$r, `Khmer@https://docs.microsoft.com/en-us/typography/script-development/khmer$, `Devanagari@https://docs.microsoft.com/en-us/typography/script-development/devanagari$ ]などの複階的な用字系を取扱うためには、 追加的な特能が要求される。 縦書きの~text連なり内の正立( `upright^en )~text用には、 縦書きの代替-( ~OpenType特能: `vert^tag )が可能化するモノトスル。 【例えば括弧類は、横書き用のものと異ならせる必要がある。】 ◎ 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 [ARABIC-TYPO], Khmer 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設定群は、 下に与える順序 — 後のもの程,優先度は高いとする — により,解決される。 この順序~付けは、 所与の~text連なりに影響するような[ ~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.
- ~font特能は、 所与の用字系~用に要求される特能も含め,既定で可能化される ◎ Font features enabled by default, including features required for a given script.
- ~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.
- ~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).
- [ `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 optional ligatures.
- `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により,一連の数字nは、 段落~内で利用されるときには均衡幅に描画される一方で,価格表( `table.prices^css )内では一定幅~形で示される。 ◎ 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; }
8. ~obj~model
`font-face$at 規則の内容は、 CSS Object Model に対する次の拡張を介して,~accessできる。 ◎ The contents of @font-face rules can be accessed via the following extension to the CSS Object Model.
8.1. `CSSFontFaceRule^I ~interface
`CSSFontFaceRule$I ~interfaceは、 `font-face$at 規則を表現する。 ◎ The CSSFontFaceRule interface represents an @font-face rule.
interface `CSSFontFaceRule@I : `CSSRule$I { [SameObject, PutForwards=cssText] readonly attribute `CSSStyleDeclaration$I style; };
付録 A: ~platform~font~propから~CSS~propへの対応付け
この付録は、 他の節にて述べられた問題と状況の一部を~~説明するための,背景0情報として収録されている。 あくまで参考として読まれるべきである。 ◎ 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 `TRUETYPE$r は、[ ~screenと印刷 ]両用の~outline~font形式として設計された。 Microsoft が Apple の~TrueType形式の開発ngに参加して以来、 ~TrueType~fontは,両~platformで~supportされるようになった。 ~TrueType形式~内の~font~dataは、 共通な[ 4 字で記される~tag名 ]により他と判別される~tableたちが成す集合からなり, 各~tableは特定の型の~dataを包含する。 例えば,著作権や許諾の情報を含む命名~情報は、 `name^c ~tableに格納される。 `文字~map$( `cmap^c )~tableは、 文字~符号化法たちから~glyphたちへの対応付けを包含する。 Apple は後に, 強化された~typographic機能性を~supportするための~tableを追加した。 これらは今では、 Apple Advanced Typography — 略して~AAT — ~fontと称されている。 Microsoft と Adobe は、 先進的な~typography用に別々な~tableたちが成す集合を開発し, それらの形式を~OpenType `OPENTYPE$r と称した。 ~OpenType仕様は、 ISO にて Open Font Format `OPEN-FONT-FORMAT$r として標準~化された。 ◎ Originally developed at Apple, TrueType [[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]. The OpenType specification is standardized at ISO as the Open Font Format [OPEN-FONT-FORMAT].
~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^c = 1 の name record ]に包含される。 異なる~locale用に複数の名前を格納することもできるが、 Microsoft は,~fontには常に少なくとも ~US~English版の名前を含めることを推奨している。 Windows 上では、 Microsoft は — 後方-互換性を得るため — この族~名に対する書体~数の上限を 4 個までにすると裁定した。 より大きな~group分け “preferred 族”( `nameID^c = 16 )や “WWS 族” ( `nameID^c = 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. Multiple 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.
他の `名前~table@~OTSPEC/name$ ~dataは、 族~内の特定の書体を一意に識別するための名前を供する。 全部的~font名( `nameID^c = 4 ), および ~Postscript名( `nameID^c = 6 )は、 単独の書体を一意に記述する。 例えば, `Gill_Sans^F 族の~bold体fは、 全部名 `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が所与の名前に合致するかどうか検証yすることが必要yなこともある。 ◎ 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^c = 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.
変更点
- `2018 年 9 月 20 日 CSS Fonts 3 勧告@~TR/2018/REC-css-fonts-3-20180920/$ からの変更点: ◎ Changes from the September 20 2018 CSS Fonts 3 Recommendation
- ~prop定義~表tの “`Animatable^en” 欄を “~animation型” 形式に更新した。 ◎ Updated “Animatable” lines in the propdef table to the new “Animation type” format.
- 【 `この更新@https://github.com/w3c/csswg-drafts/commit/6bcd8e88b28723e725facbe07dac5f9ab7e21d1a$は、 原文には反映されていない — その欄の “離散的” も含め。 】
- `2018 年 8 月 14 日 CSS3 Fonts 勧告案@~TR/2018/PR-css-fonts-3-20180814/$ からの変更点: ◎ Changes from the 14 August 2018 CSS Fonts 3 Proposed Recommendation
- 変更点における CSS Fonts 4 に移動された特能についての言及に, その仕様の対応する節への~linkを付与した。 ◎ Features mentioned in the changelog as having been moved to CSS Fonts 4, now link to the corresponding section in that specification
- W3C 勧告~用の日付と boilerplate 用の更新。 ◎ Date and boilerplate updates for W3C Recommendation
- ~Unicode参照文献を最新~versionに更新した。 ◎ Unicode reference updated to latest version
- この § 変更点を更新した。 ◎ Updated this changes section
- `2018 年 3 月 15 日 CSS3 Fonts 勧告候補@~TR/2018/CR-css-fonts-3-20180315/$ からの変更点: ◎ Changes from the March 15 2018 CSS Fonts 3 Candidate Recommendation
- `font-variant^d 記述子は、 実装の欠如により `CSS Fonts 4@~CSSFONT#font-rend-desc$ へ移動された。 ◎ ‘font-variant’ descriptor moved to CSS Fonts 4 due to lack of implementations
- `font-feature-values^at ~at-規則は、 実装の欠如により `CSS Fonts 4@~CSSFONT#font-display-font-feature-values$ へ移動された。 ◎ ‘font-feature-values’ at-rule moved to CSS Fonts 4 due to lack of implementations
- 未知な素片~識別子に対する取扱いを明確化した。 ◎ clarified handling of unknown fragment identifiers
- `length-percentage^t の定義を `CSS-VALUES$r へ~linkした ◎ linked to CSS Values & Units for definition of length-percentage
- `2013 年 10 月付 CSS3 Fonts 勧告候補@~TR/2013/CR-css-fonts-3-20131003/$ からの変更点: ◎ Changes from the October 2013 CSS3 Fonts Candidate Recommendation
- `font-language-override^p ~propは、 `CSS Fonts 4@~CSSFONT#font-language-override-prop$ へ移動された。 ◎ ‘font-language-override’ property moved to CSS Fonts 4
- `CSSFontFeatureValuesRule^I ~interfaceは、 `CSS Fonts 4@~CSSFONT#om-fontfeaturevalues$ へ移動された。 ◎ CSSFontFeatureValuesRule interface moved to CSS Fonts 4
- `CSSFontFaceRule^I ~interfaceは、 `DOM level 2 style^en から広く実装されているものに復帰された ◎ CSSFontFaceRule interface reverted to the widely implemented one from DOM Level 2 style
- 汎用~font族は組成-書体になり得ることを明確化した。 ◎ clarified that generic font families may be composite faces
- `可用な最初の~font$は、 `0020^U (space) 文字に合致するものになることを明確化した。 ◎ clarified that "first available font" is one that would match the U+0020 (space) character
- `small-caps$v の合成が `font-feature-settings^p とどう相互作用するかを明確化した。 ◎ clarified how small-caps synthesis interacts with ‘font-feature-settings’
- すべての~CSS~keywordは、 ~font族~名として無効になるものとした。 ◎ all CSS keywords marked as invalid font family names
- `font$p 略式は `font-synthesis$p を再設定しないことを明確化した。 ◎ clarified that ‘font-synthesis’ is not reset by the ‘font’ shorthand.
- “~system~font” ではなく “~installされた~font” を利用するようにした。 ◎ use the phrase "installed fonts" rather than "system fonts"
- `font-family$d や `src$d を欠いている不正形の `font-face@at 規則であっても、 ~DOM内には依然として現れるが,~font選定には影響しないことを明確化した。 ◎ clarified that malformed @font-face rules which lack font-family: or src: still show up in the DOM, but don't affect font selection
- `relative-size$t 用の慣例の~~比率~範囲【`~size対応~表t$】を明確化した — それが `absolute-size$t ~keywordを改変していないときの。 ◎ clarified conventional ratio range for the relative sizes when they're not modifying an absolute keyword size
- `font-variation-settings^p †, `font-feature-settings$p, 両者に対し,算出d値は~mapになる††ことを明確化した(したがって,指定された `dupes^en †††は除去された)。 【†~level 4 仕様/††?/†††?】 ◎ clarified that for both font-variation-settings and font-feature-settings, the computed value is a map (and thus specified dupes are removed)
- ~~抜けていた `font-variant-position$p 値を `font-variant$p 略式~propに追加した。 ◎ added omitted ‘font-variant-position’ values to ‘font-variant’ shorthand
- `font-size-adjust$p に対する負な値は `font-size$p に対する負な百分率~値とともに無効にした。 ◎ made negative values for font-size-adjust invalid, along with negative percentage font-size values
- ~UAが下上付-の計量に OS/2 ~tableを利用する要件は除去した。 ◎ removed the requirement that user agents use OS/2 table subscript/superscript metrics
- `CSS-TEXT-3^r による演算~順序への~link(参考)を追加した。 ◎ added informative link to CSS Text order of operations
- RFC 8081 による~fontの~~最上位 種別への規範的~linkを追加した。 ◎ added normative link to RFC 8081, the font top-level type
- 小さな編集上の整理。 ◎ minor editorial cleanups
謝辞
`Tal Leming^en, `Jonathan Kew^en, `Ken Lunde^en, `Christopher Slye^en 各氏からの助力とフィードバックに感謝する。 `John Hudson^en 氏からは、 緻密で~~複雑な ~OpenType言語~tagの説明に十分な時間を割いていただき, Byzantine seal 上での~text表示~用に,異体文字の用例も供していただいた。 `Ken Lunde^en 氏と `Eric Muller^en 氏からは、 ~CJK~OpenType特能と~Unicode異体~選択子についての有益なフィードバックを供していただいた。 一連の `font-variant$p 下位propの利用による~font特能の~supportのアイデアは, `Håkon Wium Lie^en, `Adam Twardoch^en, `Tal Leming^en 三氏による発案である。 `Elika Etemad^en 氏は `font-feature-values^at 規則~用の初期~設計~案のいくつかを~~供された。 随意~合字の例における `Ed Interlock^en の利用を承諾していただいた `House Industries^en にも感謝する。 ◎ We'd like to thank Tal Leming, Jonathan Kew, Ken Lunde 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^en 氏による,卓越した `mind expansion^en: `The Elements of Typographic Style^en に特別な謝意を。 ◎ A special thanks to Robert Bringhurst for the sublime mind expansion that is The Elements of Typographic Style.
~privacyの考慮点
この仕様に対し報告された新たな~privacyの考慮点は無い。 ◎ No new privacy considerations have been reported on this specification.
~securityの考慮点
この仕様に対し報告された新たな~securityの考慮点は無い。 ◎ No new security considerations have been reported on this specification.