• 検索結果がありません。

Pr6N M 234 PREP/AJ10Adobe-Japan1-xcidfont.ps tx -t1 <font>.otf cidfont.ps PREP/AJ10build.sh {dingbats,generic,hiragana,kanji,katakana,proportional}.pf

N/A
N/A
Protected

Academic year: 2021

シェア "Pr6N M 234 PREP/AJ10Adobe-Japan1-xcidfont.ps tx -t1 <font>.otf cidfont.ps PREP/AJ10build.sh {dingbats,generic,hiragana,kanji,katakana,proportional}.pf"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

Dr. Ken Lunde | Senior Computer Scientist | Adobe Systems Incorporated

(2)

このワークショップのサンプルデータについて

  サンプルデータはアドビの「小塚ゴシック Pr6N M」フォントに基づく   グリフ数は234字:ラテン文字、約物、仮名、漢字   自分のフォントに基づくサンプルデータが作成できるスクリプトがある   PREP/AJ10ディレクトリにAdobe-Japan1-x「cidfont.ps」ファイルを入れる tx -t1 <font>.otf cidfont.ps   PREP/AJ10ディレクトリにある「build.sh」スクリプトを実行する   {dingbats,generic,hiragana,kanji,katakana,proportional}.pfaの/FontNameを編集する   上記の*.pfaをCID-AJ10/1_2_CID-N-NOMAPとCID-AJ10/1_3_CID-N-MAPにコピー   font.pfaをCID-AJ10/1_1_CID-1-NAME2CIDとCID-AJ10/1_4_CID-1-CID2CIDとPREP/AI0にコピー   CID-AJ10/1_4_CID-1-CID2CIDディレクトリにbuild1.shスクリプトを実行する   PREP/AI0ディレクトリにある「build.sh」スクリプトを実行する   {dingbats,generic,hiragana,kanji,katakana,proportional}-*.pfaをCID-AI0/1_2_CID-Nにコピー   font-uni.pfaをCID-AI0/1_1_CID-1にコピー

(3)

AFDKOは何?

 

AFDKOというのは「Adobe© OpenType©フォント開発キット」の略語

 

ほとんどのAFDKOのツールはCIDキー方式フォントに対応している

tx mergeFonts rotateFont stemHist autohint makeotf

(4)

AFDKOでのフォント開発に便利なコマンドライン

 

AFDKOのtxツールでグリフ一覧表が簡単に生成できる

tx -pdf <font> glyphs.pdf

tx -pdf -g <glyphs> <font> glyphs.pdf

 

CIDキー方式フォントのCIDの表示(txツールのフィルター)

extract-cids.pl <font> extract-cids.pl -r <font> extract-cids.pl -r -s <font>  

名前キー方式フォントのグリフ名の表示(txツールのフィルター)

extract-names.pl <font>

(5)

AFDKOでのフォント開発に便利なコマンドライン(続き)

 

CID/名前キー方式フォントのGIDの表示(txツールのフィルター)

extract-gids.pl <font> extract-gids.pl -r <font>  

FDArray要素の割当ての表示(txツールのフィルター)

fdarray-check.pl <font>  

このワークショップで使用するコマンドラインについて

  忘れないように各ディレクトリに「build*.sh」スクリプトがある   実行する前に必ずスクリプトの内容をよく確認して下さい

(6)

CIDとGID

 

ROSの全てのCIDがフォントに入っている場合のみCIDとGIDは同一

  GIDは常に連続   CIDが連続しない場合には「サブセットフォント」という   「ROS」は/CIDSystemInfo辞書の/Registry、/Ordering、/Supplementの略語  

スラッシュ「/」接頭辞でCIDを明示的に指定することを推薦する

CID+1200 → /1200  

extract-cids.plとfdarray-check.plの出力にはスラッシュ接頭辞を使う

 

txツールで生成したグリフ一覧表にはGIDとCIDが表示される

  GIDは左上   CIDは左下にバックスラッシュ接頭辞つきで

(7)

「cidfontinfo」ファイルの基礎

 

mergeFontsツールとmakeotfツールが使用するファイル

  makeotfツールは必ずしもこのファイルを必要としない   makeotfのコマンドオプションで設定できる為   mergeFontsツールでCIDキー方式フォントを生成する時には必須  

以下のcidfontinfoファイルの行はmergeFontsツール専用:

FontName (KozGoAJ10-Medium)

FullName (Kozuka Gothic AJ10 OpenType Medium)

FamilyName (Kozuka Gothic AJ10 OpenType)

Weight (Medium) version (1.000) Registry (Adobe) Ordering (Japan1) Supplement 0 XUID [1 11 9273884]

AdobeCopyright (Copyright 2001-2012 Adobe Systems Incorporated. All…)

(8)

「cidfontinfo」ファイルの基礎(続き)

 

以下のcidfontinfoファイルの行はmakeotfツール専用:

IsBoldStyle false #「-nb」オプションと同じ

IsItalicStyle false #「-ni」オプションと同じ

PreferOS/2TypoMetrics true #「-osbOn 7」オプションと同じ

IsOS/2WidthWeigthSlopeOnly true #「-osbOn 8」オプションと同じ

IsOS/2OBLIQUE false #「-osbOff 9」オプションと同じ

UseOldNameID4 false #「-newNameID4」オプションと同じ

(9)

「cidfontinfo」ファイルのXUID配列について

 

cidfontinfoファイルの「XUID」行を正しく設定する方法

  XUIDというのは4つの要素までの配列   最小の要素数は2つ  

最初の要素は開発者の「XUID」の値(整数)に設定する

  アドビのXUIDの値は「1」  

その次の要素は開発者が自分で設定する

  各フォントは違うXUID配列に設定する   特定のフォントの違うバージョンは同じXUID配列に設定する  

XUID登録の為のURLは次の通り:

http://partners.adobe.com/public/developer/font/register/xuid_reg.do

(10)

AFDKOのmergeFontsツールの基礎

 

mergeFontsツールは複数のフォントを1つのフォントに結合する

 

名前キー方式をCIDキー方式に変換する為には「cidfontinfo」が必要

  「-cid cidfontinfo」オプションとその引数が必要  

複数フォントに同一CIDかグリフ名があると、一番最初のものが使われる

  そのグリフを明示的に除外する為には「-gx <glyphs>」オプションを使用する  

mergeFontsのマッピングファイルでCIDかグリフ名を変更できる

  マッピングファイルの第一行目は必ず「mergeFonts」にする   「cidXXXX」というグリフ名はマッピングファイルなしでそのCIDに変換される  

CIDキー方式フォントの場合にはFDArray要素の名前が指定できる

  マッピングファイルの第一行目の「mergeFonts」の引数で指定する mergeFonts KozGoAJ10-Medium-Kanji 1   1番目の引数はFDArray要素の名前、2番目は「/LanguageGroup」の値(0か1)

(11)

AFDKOのmergeFontsツールとFDArray要素の割当て

 

CIDキー方式フォントには1つ以上のFDArray要素を含む

  最大は256個のFDArray要素、最小は1個のFDArray要素  

各CIDは1つのFDArray要素に割当てることができる

 

各FDArray要素には/FontNameがある

  FDArray要素の/FontNameは/CIDFontNameをベースに   /CIDFontName +「-」+「識別子」で指定する  

FDArray要素の割当てを制御する方法は2つある

  名前キー方式フォントの/FontNameが継承される

/FontName /KozGoAJ10-Medium-Kanji def

  mergeFontsのマッピングファイルの1行目の引数で

mergeFonts KozGoAJ10-Medium-Kanji 1

(12)

どのROSが適切?「Adobe-Japan1-

x

」か「Adobe-Identity-0」か?

 

Adobe-Japan1-xにないグリフの場合に、Adobe-Identity-0のROSが必要

  例:新JISマーク   このグリフはAdobe-Japan1-6にないが、Adobe-Japan1-7の候補である   例:「かづらき」フォントの縦書専用のグリフ   漢字と平仮名リガチャー  

Adobe-Japan1-xにあるグリフの場合には、両方のROSが使える

 

Adobe-Japan1-xの利点

  標準の資料が使用できる   CMapリソースやGSUBフィーチャーの定義  

Adobe-Identity-0が不利な点

  そのフォント用のUTF-32のCMapリソースを作成する必要 そのフォント用のGSUBフィーチャーも作成する必要

(13)

名前キー方式フォントをAdobe-Japan1-

x

のCIDキー方式フォントに

 

名前キー方式フォントデータのファイル数には2通りある

  全てのグリフを1つのフォントリソースにする   グリフ数が少ない場合   複数フォントリソースにする   グリフ数が多い場合  

グリフ名はAdobe-Japan1-xのCID番号に対応:「cid」+ CID番号

  CID+1200 → cid1200  

複数フォントリソースの場合、mergeFontsのマッピングファイルは不要

  フォントリソースの/FontNameは必ずFDArray要素の名前と同一

(14)

名前キー方式フォントをAdobe-Identity-0のCIDキー方式フォントに

 

名前キー方式フォントデータのファイル数には2通りある

  全てのグリフを1つのフォントリソースにする   グリフ数が少ない場合   複数フォントリソースにする   グリフ数が多い場合  

グリフ名はユニコードに対応:「uni」+ ユニコードの16進数の値

  U+4E00 → uni4E00  

mergeFontsのマッピングファイルを準備する必要がある

(15)

FDArray要素を1つ持つCIDキー方式フォントを複数の要素に

 

mergeFontsのマッピングファイルは必須

  複数のFDArray要素の場合には各要素のmergeFontsマッピングファイルが必要

 

「-cid」オプションと「cidfontinfo」ファイルは不要

 

コマンドラインは次の通り:

(16)

AFDKOのrotateFontツールで90度で回転したグリフを生成できる

  rotateFontツールはグリフを回転する他にも以下のようなことができる   グリフ幅の変更   グリフ名の変更   グリフ位置の調整   GSUBフィーチャー「vrt2」の為のグリフ作成には4つの操作が必要になる   90度回転、グリフ幅を全角に、CIDの変更、グリフ位置の調整   90度回転は「-rt」オプションの1番目の引数で指定する -rt 90 0 0   その他の操作は「-rtf」オプションを使ってファイルに記述することができる   入力グリフ、出力グリフ、グリフ幅、X軸のシフト、及びY軸のシフト   例:1 8720 1000 120 880   コマンドラインの例

(17)

CIDキー方式フォントに直接ヒントをつける(/StdHWと/StdVW)

 

fdarray-check.plツールで各FDArray要素に割当てられたCIDを一覧できる

fdarray-check.pl <font>

 

FDArray要素に割当てるCIDをstemHist -allの「-g」オプションの引数に

stemHist -all -g /633-/635,/638,/686-/687,/7887-/7888,/7911-/7912 <font>

  stemHistツールの出力は次の2つのファイル <font>.hstm.txt(横ステム幅) <font>.vstm.txt(縦ステム幅)  

横/縦ステム幅のヒストグラムを作成し頻度が最も高い値を探し出す

 

FDArray要素すべてに対し「hintparam.txt」ファイルで設定する

Dingbats /BlueValues [-250 -250 1100 1100] def /StdHW [69] def /StdVW [69] def

(18)

CIDキー方式フォントに直接ヒントをつける(/BlueValues)

  FDArray要素に割当てるCIDをstemHist -aの「-g」オプションの引数に stemHist -a -g /1,/6,/13,/15,/17-/26,/34-/59,/66-/91 <font>   stemHistツールの出力は次の2つのファイル <font>.bot.txt(ステムの下のゾーン) <font>.top.txt(ステムの上のゾーン)   1番目の値のペアは<font>.bot.txtからのベースラインとオーバーシュート   その次のペアは<font>.top.txtからのxハイトとCapハイトとそのオーバーシュート   非ラテンのFDArray要素の場合にだけ次の固定の/BlueValues配列を使う /BlueValues [-250 -250 1100 1100] def   ラテンのFDArray要素には「hintparam.txt」の/BlueValuesで設定する Proportional /BlueValues [-11 0 551 563 765 777] def /StdHW [93] def /StdVW [116] def

(19)

CIDキー方式フォントに直接ヒントをつける(続き)

 

hintcidfont.plツールで各FDArray要素のヒントパラメーターを変更する

hintcidfont.pl hintparam.txt < cidfont-nohint.ps > cidfont-hint.ps

 

txツールでFDArray要素毎のヒントパラメーターを確認するのが望ましい

tx -0 cidfont-hint.ps

 

最後にautohintツールを実行する

(20)

CIDキー方式フォントのグリフを変更する方法

 

txツールの「-t1 -decid -g <glyphs>」オプションでグリフを抽出する

  適当なFDArray要素の番号を「-usefd <index>」オプションで指定する

tx -t1 -decid -usefd 3 -g /2520 cidfont.ps cid2520.pfa

  名前キー方式フォントになってしまう

  FontLab Studio等のフォントエディターでグリフを変更する

  「ASCII/UNIX Type 1」式のフォントを生成する

 

mergeFontsツールで変更されたグリフをCIDキー方式フォントに変換する

mergeFonts -cid cidfontinfo cid2520.ps cid2520.pfa

 

mergeFontsツールで元のグリフを変更されたグリフに交換する

mergeFonts -gx /2520 cidfont-mod.ps cidfont.ps cid2520.ps

(21)

CIDキー方式フォントにグリフを追加する方法

 

mergeFontsツールで追加したいグリフをCIDキー方式フォントに変換する

  FDArray要素の割当てに注意! mergeFonts KozGoAI0-Medium-Dingbats 1 0 .notdef 300 NewJIS

mergeFonts -cid cidfontinfo cid300.cid newjis.map newjis.pfa

 

mergeFontsツールで元のフォントと追加したいグリフを結合する

mergeFonts cidfont-add.ps cidfont.ps cid300.cid

 

autohintツールで追加されたグリフにヒントをつける

(22)

CIDキー方式フォントのFontBBox配列を正確に設定する方法

 

mergeFontsツールで生成されたフォントのFontBBox配列は時々不正確

  rotateFontツールの場合も同様

 

fix-fontbbox.plツールでFontBBox配列を正確に設定できる

fix-fontbbox.pl cidfont.ps > cidfont-fix.ps mv cidfont-fix.ps cidfont.ps

(23)

CIDキー方式フォントを変更した後の操作

 

フォントを変更した場合にバージョンをインクリメント

  version-up-cidfont.plツールでCIDFontヘッダの2カ所をインクリメントする %%Version: 1 /CIDFontVersion 1 def   コマンドラインは次の通り:

version-up-cidfont.pl < cidfont.ps > cidfont-new.ps

  version-up-cidfont.plツールを実行した後の結果:

%%Version: 1.001

/CIDFontVersion 1.001 def

(24)

Adobe-Identity-0のUTF-32のCMapリソースを開発する方法

 

ほとんどの資料はmergeFontsのマッピングファイルにある

184 uni56FD  

次のようなUTF-32のCMapリソースのマッピングになる

<000056FD> 184  

「cmap-template.txt」ファイルを編集する

  「0 begincidchar」の行の直後に全てのマッピングを挿入する 0 begincidchar <00000020> 1 <000056FD> 184 endcidchar  

cmap-tool.plツールを実行する

(25)

グリフ数とFDArrayの数が最大のCIDキー方式フォントを作る方法

 

CIDキー方式フォントの最大グリフ数は65,535字(64K)

  CID+0からCID+65534まで   これに対し、最小グリフ数は一字   CID+0(いわゆる「.notdef」というグリフ)  

mergeFontsのマッピングファイルで257グリフのフォントを作る

「.notdef」と「cid1」から「cid256」  

256個のmergeFontsマッピングファイルで64Kグリフのフォントを作る

mk64k256fdarray.pl UnicodeP02 > build2.sh

 

コマンドラインでは長いので、「build2.sh」スクリプトで実行する

sh ./build2.sh

(26)

便利なURL

 

AFDKO(このワークショップで使用したバージョンの方が新しい)

http://www.adobe.com/devnet/opentype/afdko.html  

Adobeの「CJK Type」Blog

http://blogs.adobe.com/CCJKType/  

フォントについてのAdobeテクニカルノート

http://www.adobe.com/devnet/font.html  

フォントXUID登録

http://partners.adobe.com/public/developer/font/register/xuid_reg.do  

「CMap Resources」のオープンソースプロジェクト

http://sourceforge.net/adobe/cmap/  

OpenTypeの仕様

http://www.microsoft.com/typography/otspec/

(27)

参照

関連したドキュメント

方法 理論的妥当性および先行研究の結果に基づいて,日常生活動作を構成する7動作領域より

MENU キーを 3 秒間押して設定モードに入ります。次に ( DISP ) キーと ( FUNC ) キー を同時に 3

[r]

メイン プログラムウィンドウでの作業 [スタート] → [すべてのプログラム] → [Acronis] → [PrivacyExpert] → [Acronis Pricacy Expert

Solving PDEs via RBF-PS Methods M ATLAB

The focus has been on some of the connections between recent work on general state space Markov chains and results from mixing processes and the implica- tions for Markov chain

In this section we consider the submodular flow problem, the independent flow problem and the polymatroidal flow problem, which we call neoflow problems.. We discuss the equivalence

Revit Architecture は、BIM(ビルディング・インフォメーション・モデル)作成のトップツールになってお