第12回多言語組版研究会 多言語組版のためのフォント技術 l 内田富久 1 内 容 1. OpenTypeフォントの現状 2. OpenTypeフォントとTrueTypeフォント の比較 3. OpenTypeのタイポグラフィー向け機能 4. 組版ソフトはOpenTypeをどう使うか 5. その他 l 2 フォントの分類 フォントの分類 概 要 プラット・ホーム TrueType データ構造 Windows/Mac/Unix (スクリー ン) プログラム構造 Mac (Windows) (プリン タ) *ATM:ラスタラ イザーが必要 Apple Microsoft ATMフォント CID フォン ト Adobe PostScripプリンタ OpenType *TrueTypeフォ ント構造 Windows/Mac Bitmapフォント .fon / 独自 組み込み機器 /Unix l Microsoft Adobe 3 OpenTypeフォントの現状 ① 日本語OTF CFFベース(The Type 2 Charstring Format) ※CFF - PostScript (Compact Font Format) ② 欧文OTF TrueTypeベースが多い l 4 日本語OpenTypeフォントの特徴 ① Windows・Mac(data fork)で使用できる。 Rasterizer(日本語OTF) Windows:Win2K/XPはOSに組み込まれ ている。その他、ATMをinstall Mac :OS-XOSに組み込まれている。 その他、ATMをinstall ② Unicodeベース +AJ1-4(AJ1-5) ③ 日本語組版を考慮した文字の属性データがいろ いろ追加(feature table) l 5 日本語OpenTypeフォントの特徴 注意点 ① フォントにはAJ1-4の文字数(15,444字) あるが全ての文字を表示するにはアプリケー ション側が管理。OTFのFeature機能も同様。 ② 現在InDesign・Illustrator-CSはサポート しているがそれ以外は通常のTTF・CIDと同様。 S-JIS・システム外字文字数。 l 6 Adobe-Japan文字セット 分類 CID番号 AdobeJapan1-0 0-8283 概 要 8,284字 AdobeJapan1-1 8284-8358 8,359字(JIS-X0208:1997相当) AdobeJapan1-2 8359-8719 8,720字(WindowsのIBM拡張文字) AdobeJapan1-3 8720-9353 9,354字(縦組用文字,90度回転,半角文 字,その他) AdobeJapan1-4 9354-15443 15,444字 AdobeJapan1-5 15444-20316 JIS X 0213:2000+SK外字 OTF-Std版(AJ1-3) OTF-Pro版(AJ1-4/AJ1-5) l 7 Adobe-AJ1-4文字セット l 8 OTFフォント・ファイル構造 1.Offset Table 2.実データ テーブル情報 実データ cmap glyf GSUB GPOS ・・・ cmap glyf GSUB GPOS ・・・ l 9 OTFフォント・ファイル構造 テーブル名 内 容(代表的なテーブル) head フォントの概要情報(EM,BBOX,…) BASE Baseline情報 OS/2 OS/2 及びWindows メトリックス,その他 CFF(※) PostScript フォント・データ.(CIDベース) glyf TrueTypeフォント・データ cmap グリフへのマッピングデータ. GSUB グリフの置換.(グリフの縦横切り替え・グリフの合字・異字体切り替 え) GPOS グリフ位置置換(全角・半角・プロポーショナル切り替え) hhea/vhea 横方向(横組)ヘッダ. hmtx/vmtx 横方向(横組)メトリックス情報. l 10 フォント・ファイル構造(OS/2の例) 項目 内容 1 weightClass 400 2 panose 2260000000 Family Kind (2)=Text & Display Serif Style (2)=Cove Weight (6)=Medium 3 unicodeRange1 A00002ff(Basic Latin,Latin-1 Supplement, Latin Extended-A,Latin Extended-B,IPA Extensions,Spacing Modifier Letters,・・・) 4 unicodeRange2 68c7feff(Superscripts and Subscripts,Currency Symbols,Combining Diacritical Marks for Symbols,CJK Unified Ideographs,・・・) 5 codePageRange1 00020005(Latin 1 (1252),Cyrillic (1251),JIS/Japan (932)) 6 TypoAscender TypoDescender TypoLineGap 880 -120 1000 (Normal/Regular) l 11 OTL(OpenType Layout) OTL関係のテーブル ① GSUB/GPOS/BASE/JSTF/GDEF ② script・・・グリフの集合 (Latin,平仮名、片仮名、漢字) ③ language system (英語、フランス語、ドイツ語) l 12 OTFのGSUB/GPOS構造 l 13 ScriptとScriptTag Script Script Tag Arabic arab CJK Ideographic hani Cyrillic cyrl Default DFLT Greek grek Hiragana kana Katakana kana Latin latn Devanagari Deva ・・・ Script tags Script tags identify the scripts represented in a OpenType Layout font. Script tags are defined by Microsoft Typography and correspond to the contiguous character code ranges in Unicode. l 14 Registered features Feature Tag Friendly Name aalt afrc Access All Alternates Alternative Fractions fwid Full Widths jp78 JIS78 Forms jp83 JIS83 Forms jp90 ・・・ JIS90 Forms ・・・ l 15 日本語OTF GSUB GSUBに属するfeatureテーブル Features 概要 1 aalt 置き換え全般 2 jp78/jp83/expt/trad 字体切り替え 3 ital/ruby 書体の置き換え 4 ital リガチャーの置き換え 5 fwid/hwid/pwid プロポーショナル・全角・半角 6 vert/vrt2 縦横切り替え 7 afrc/dlig/dnom/sinf 8 ・・・ l 16 GSUB(glyf substitution) Lookupタイプ 概要 1 Single substitution 2 Multiple substitution 複数文字の置き換え 3 Alternate 代替え文字の置き換え substitution Ligature substitution リガチャーの置き換え 4 5 6 7 Contextual substitution Chained contextual Extention substitution 1文字の置き換え 文脈の置き換え 綴り文字の置き換え 機能拡張 l 17 GSUB(グリフの置換) InDesign-CS l 18 GSUB(グリフの置換) InDesign-CS l 19 GSUB(グリフの置換) InDesign-CS l 20 GSUB(グリフの置換) InDesign-CS l 21 日本語OTF GPOSに属するfeatureテーブル GPOS Features 概要 1 halt/palt 半角・プロポーショナル字幅設定 2 vhal/vpal 縦方向字幅設定 3 kern カーニング字幅設定 日本語OTFは欧文と比較すると少ない l 22 GPOS(glyph positioning) Lookupタイプ 概要 1 Single adjustment 1文字の調整 2 Pair adjustment 複数文字の調整 3 Cursive adjustment 続き文字の調整 4 Mark-to-Base attachment マーク(発音記号・ウムラルト)とベース文 字の調整 5 Mark-to-Ligature attachment マークとリガチャーの調整 6 Mark-to-Mark attachment マークとマークの調整 7 Contextual Positioning 文脈の調整 8 Chained contextual Positioning chained文脈綴り文字の調整 9 Extention Positioning 機能文字の調整 l 23 GDEF(glyph definition) 項目 概要 1 Glyph class 2 Attachement list 3 Ligature Caret リガチャー文字のカーソル位置 4 Mark attachement class definition マーク(発音記号・ウムラル ト)の分類 注 グリフの分類 point 合成時の参照する基準位置情報 日本語Otf使用していない l 24 GDEF Glyph classの例 アラビア語の例 No. 0 startGid : 0 endGid: 445 Class=base glyf No. 1 startGid : 446 endGid: 463 Class=mark glyf No. 2 startGid : 464 endGid: 476 Class=base glyf No. 3 startGid : 477 endGid: 481 Class=mark glyf l 25 BASE(baseline definition) l 26 多言語用OTFを使用して組版を行うには 1.OTF対応のアプリケーションを使用 ① 各国別のOS・アプリケーションの利用 ② ・・・ 2.独自に制作 ① 多言語(Uniscribe),feature(OTLS) OTLS:OpenType Layout Service library ② アプリケーションのPlugInAPIを利用 ③ フォントデータから必要とするデータを直接 参照する。 ④ ・・・ l 27 組版とフォント情報 グリフ置換 GSUB グリフデータ エンコーディング cmap/loca glyf/CFF メトリックス情報 Hmtx/vmtx/GPOS 禁則処理 行組版ルール l 1行印字 28 プログラムでOTFのデータをアクセスすに は? ポイント ① Glyphデータへのアクセス -cmap -loca -maxp -glyf ② GSUBとGPOSではGSUBが先 -まずGlyphの置き換えがあるか -常にGlyphのセット幅(run)を計算 ③ 適用するfeature tabel の調査 ④ Lookup table/Sub tableを調べる ⑤ Glyphに適用 l 29 各国の言語をアクセスする際の注意点 ① Coverageとは入力tableのこと 入力Glyph番号(class)に対し、出力Glyph 番号class)が対応 ② Chained Contextual Substitute等、そ の言語について熟知していないと使用方法がわ からない? (BacktrackGlyph/InputGlyph/LookaheadGl yph) ③ GDEF Glyph classが定義 l 30 各国の言語をアクセスする際の注意点 ④ postテーブル cmapで定義でない文字に対しglyphのGlyph 名を記述。 (例、アラビア語) Glyf#: 867 GlyfNameI#: 632 uni067C.fina Glyf#: 868 GlyfNameI#: 633 uni067C.init Glyf#: 869 GlyfNameI#: 634 uni067C.inittall Glyf#: 870 GlyfNameI#: 635 uni067C.initshort Glyf#: 871 GlyfNameI#: 636 uni067C.medi Glyf#: 872 GlyfNameI#: 637 uni067C.meditall Glyf#: 873 GlyfNameI#: 638 uni067C.medivar1 l 31 アラビア語フォントの解析 質問 l 32
© Copyright 2024 ExpyDoc