- 追加された行はこの色です。
- 削除された行はこの色です。
[[TeX/Font/Type1/Bitstream]]
*Baskerville (Bitstream) [#u4069570]
Baskerville は Cambridge University Press の古典の書籍でよく用いられているフォントです。細身なので、リュウミンやウェイトの小さいヒラギノと一緒に用いるとよいでしょう。
以下でフォント関連のファイルの生成方法、インストール方法を解説します。
*コピー [#b362a0d0]
CD-ROM 内の WINPS/SERIF/BASKERVILE/ 以下に3種類のファイルがあります。そのうち
-''.PFB''
-''.PFM''
のファイルを作業用のディレクトリにコピーします。
*ファイル名の変更 [#hc25bea9]
作業用ディレクトリには以下のファイルがコピーされているはずです。
-''0031A___.PFB''
-''0031A___.PFM''
-''0032A___.PFB''
-''0032A___.PFM''
-''0033A___.PFB''
-''0033A___.PFM''
-''0034A___.PFB''
-''0034A___.PFM''
これらのファイルの名前を Berry 則にもとづいて変更します。Berry 則については次のページを参考にしてください。
-[[フォント名>TeX/Font/FontName]]
-[[Bitstream>TeX/Font/Type1/Bitstream]]
**フォントファミリ名の決定 [#k5b05a21]
次のことから、このフォントのファミリ名は `bbv' と決まります。
+Bitstream 社製のフォントなので、ベンダ名は `b'(supplier.map 参照)
+Baskerville フォントの略号は `bv'(typeface.map 参照)
あとは、これにローマン体、ボールド体などの略号を付け加えていけばよいわけです。
**シリーズ、シェイプの調査 [#u8da5407]
それぞれの ''.pfb''(''.pfm)ファイルに対してシリーズとシェイプの調査をします。『TrueType フォントパーフェクトコレクション』にはフォント解説の書籍がついていますから、これで調べるのが簡単です。
書籍がなければ [[fontforge>TeX/Font/FontForge]] などで対象の ''.pfb'' ファイルを開いて、[エレメント]->[フォント情報]をクリックして調べます。
次のように略号が決まっています。
|~シリーズ、シェイプ|~略号|
|~ローマン体|r|
|~ローマン体イタリック|ri|
|~ボールド体|b|
|~ボールド体イタリック|bi|
**新ファイル名の決定 [#o0fc91df]
以上から新ファイル名を決定します。Type 1(''.pfb'' ファイル)フォントなので、エンコーディングは ''8a'' です。新ファイル名は全て小文字にしておきましょう。
|~元ファイル名|~フォント名|~新ファイル名|
|~0031A___.PFB|Baskerville Roman|bbvr8a.pfb|
|~0032A___.PFB|Baskerville Italic|bbvri8a.pfb|
|~0033A___.PFB|Baskerville Bold|bbvb8a.pfb|
|~0034A___.PFB|Baskerville Bold Italic|bbvbi8a.pfb|
''.PFM'' ファイルも同様にファイル名を変更しておきます。
*.afm ファイルの生成 [#q2329ea8]
''pf2afm'' を使って ''.pfb'', ''.pfm'' ファイルから ''.afm'' ファイルを生成します。''type1afm'' を使ってもよいですが、今回の場合、''pf2afm'' で作ったものよりも情報が少なくなっていました。
''pf2afm'', ''type1afm'' については [[Type 1 フォント>TeX/Font/Type1]] をご覧ください。
**pf2afm の実行 [#x8805a1f]
次のように実行します。
$ pf2afm bbvr8a.pfb
次のようにすれば、上のコマンドを4回実行する必要がなくなります。
$ for i in *.pfb; do pf2afm $i; done
**.afm ファイルの修正 [#fec8a973]
今扱っている ''.pfb'' ファイルには fi や fl の合字(リガチャ)が用意されていますが、''.afm'' ファイルからは欠落しています。これを手動で追加します。
それぞれの ''.afm'' ファイルから、`N f' と書かれている行を探します。たとえば
C 102 ; WX 322 ; N f ; B 27 -2 429 711 ;
という行です。この行の最後に
L i fi ; L l fl ;
を追加して次のようにします。
C 102 ; WX 322 ; N f ; B 27 -2 429 711 ; L i fi ; L l fl ;
これは、`f' の文字に関して、リガチャ(Ligature)を `i' と `l' の組合せに対して行う、という意味です。
4つの ''.afm'' ファイルに対して修正を行ったら、忘れずに保存しておきます。
*fontinst [#ua855a32]
**fontinst ファイルの作成 [#ee92eadc]
''.tfm'', ''.fd'', ''.vf'', ''.map'' ファイルを生成するための fontinst のファイルを作成します。ファイル名は `bbv-driver.tex' としておきます。fontinst については [[fontinst パッケージ>TeX/Font/FontInst]] をご覧ください。
\input fontinst.sty
\substitutesilent{bx}{b}
\setint{smallcapsscale}{800}
\setint{slant}{167}
\recordtransforms{bbv-rec.tex}
%% make .tfms
\transformfont{bbvr8r}{\reencodefont{8r}{\fromafm{bbvr8a}}}
\transformfont{bbvri8r}{\reencodefont{8r}{\fromafm{bbvri8a}}}
\transformfont{bbvb8r}{\reencodefont{8r}{\fromafm{bbvb8a}}}
\transformfont{bbvbi8r}{\reencodefont{8r}{\fromafm{bbvbi8a}}}
% slant
\transformfont{bbvro8r}{\slantfont{\int{slant}}\reencodefont{8r}{\fromafm{bbvr8a}}}
\transformfont{bbvbo8r}{\slantfont{\int{slant}}\reencodefont{8r}{\fromafm{bbvb8a}}}
%% installfonts (T1)
\installfonts
\installfamily{T1}{bbv}{}
\installfont{bbvr8t}{bbvr8r,newlatin}{t1}{T1}{bbv}{m}{n}{}
\installfont{bbvrc8t}{bbvr8r,newlatin}{t1c}{T1}{bbv}{m}{sc}{}
\installfont{bbvro8t}{bbvro8r,newlatin}{t1}{T1}{bbv}{m}{sl}{}
\installfont{bbvri8t}{bbvri8r,newlatin}{t1}{T1}{bbv}{m}{it}{}
\installfont{bbvb8t}{bbvb8r,newlatin}{t1}{T1}{bbv}{b}{n}{}
\installfont{bbvbc8t}{bbvb8r,newlatin}{t1c}{T1}{bbv}{b}{sc}{}
\installfont{bbvbo8t}{bbvbo8r,newlatin}{t1}{T1}{bbv}{b}{sl}{}
\installfont{bbvbi8t}{bbvbi8r,newlatin}{t1}{T1}{bbv}{b}{it}{}
\endinstallfonts
%% installfonts (TS1)
\installfonts
\installfamily{TS1}{bbv}{}
\installfont{bbvr8c}{bbvr8r,textcomp}{ts1}{TS1}{bbv}{m}{n}{}
\installfontas{bbvr8c}{TS1}{bbv}{m}{sc}{}
\installfont{bbvro8c}{bbvro8r,textcomp}{ts1}{TS1}{bbv}{m}{sl}{}
\installfont{bbvri8c}{bbvri8r,textcomp}{ts1}{TS1}{bbv}{m}{it}{}
\installfont{bbvb8c}{bbvb8r,textcomp}{ts1}{TS1}{bbv}{b}{n}{}
\installfontas{bbvb8c}{TS1}{bbv}{b}{sc}{}
\installfont{bbvbo8c}{bbvbo8r,textcomp}{ts1}{TS1}{bbv}{b}{sl}{}
\installfont{bbvbi8c}{bbvbi8r,textcomp}{ts1}{TS1}{bbv}{b}{it}{}
\endinstallfonts
\endrecordtransforms
\bye
上の作業で、次のシリーズ・シェイプが使えるようになります。
-ローマン体
--直立体(upright)
--スモールキャップ体(small cap)
--斜体(slant)
--イタリック(italic)
-ボールド体
--直立体(upright)
--スモールキャップ体(small cap)
--斜体(slant)
--イタリック(italic)
スモールキャップ体(small cap)と斜体(slant)はもともとありませんでしたが、これらは直立体から機械的に生成します。
**.map ファイル生成用ファイルの作成 [#yefb1678]
''.map'' ファイル作成に必要な情報は、''bbv-driver.tex'' を処理した後、''bbv-rec.tex'' ファイルに記録されます。これを処理して ''.map'' ファイルを生成するためのファイルを作成します。ファイル名は ''bbv-map.tex'' としておきます。
\input finstmsc.sty
\resetstr{PSfontsuffix}{.pfb}
\adddriver{dvips}{bbv.map}
\input bbv-rec.tex
\donedrivers
\bye
**fontinst の実行 [#p2230b9a]
次のコマンドを実行します。
$ tex bbv-driver.tex
$ tex bbv-map.tex
**.tfm, .vf ファイルの生成 [#uad58736]
fontinst を実行すると各種 ''.pl'', ''.vpl'' ファイルができていますので、これらを変換して ''.tfm'', ''.vf'' ファイルを生成します。
$ for i in *.pl; do pltotf $i; done
$ for i in *.vpl; do vptovf $i; done
*ファイルのコピー [#ic5aa6e9]
それぞれのファイルをコピーします。
|~ファイルの種類|~コピー先|
|~.afm|$TEXMFLOCAL/fonts/afm/bitstrea/baskerville|
|~.tfm|$TEXMFLOCAL/fonts/tfm/bitstrea/baskerville|
|~.vf|$TEXMFLOCAL/fonts/vf/bitstrea/baskerville|
|~.pfb|$TEXMFLOCAL/fonts/type1/bitstrea/baskerville|
|~.map|$TEXMFLOCAL/fonts/map/dvips/bitstrea/baskerville|
|~.fd|$TEXMFLOCAL/tex/latex/bitstrea/baskerville|
**mktexlsr, updmap-sys [#e403a1b8]
mktexlsr と updmap-sys を実行します。
# mktexlsr
# updmap-sys --enable Map=bbv.map
*テスト [#a38ba6a1]
きちんとフォントが作成・インストールされているかどうか、テストしてみます。次のようなプリアンブルのファイルを作って適当に記述し、''latex'' で処理してみます。なお、問題が起こったときに切り分けがしやすいので、''platex'' では なくて ''latex'' で処理した方がよいでしょう。同様に \documentclass は ''jsarticle'' などではなく、''article'' にしておきます。
\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\renewcommand{\rmdefault}{bbv}
xdvi で表示させたり、''dvipdfmx'' で PDF ファイルに変換してみましょう。PDF ファイルを作成したら、Adobe Reader などでフォント情報を表示させ((Adobe Reader なら[ファイル]->[文書のプロパティ](Ctrl-D)で表示させることができます。)) Baskerville フォントが Type 1 で埋め込まれているかどうか確認します。
*.sty の作成 [#bfd63816]
テストがうまくいったら、Baskerville フォントを簡単に使えるように ''bbaskerv.sty'' を作成しましょう。
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{bbaskerv}[2006/10/02 v1.0 Bitstream Baskerville]
\RequirePackage[T1]{fontenc}
\RequirePackage{textcomp}
\renewcommand*{\rmdefault}{bbv}
\endinput
これを $TEXMFLOCAL/tex/latex/bitstrea/baskerville にコピーし、''mktexlsr'' を実行しておきます。
*警告 [#h834dc0d]
platex で文書を処理すると、次のような警告が出ます。
LaTeX Font Warning: Font shape `JY1/mc/m/sc' undefined
...
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
これは、日本語にスモールキャップ体などが定義されていないために出る警告です。無視して構いません。
-http://www.ascii.co.jp/pb/ptex/base/hints.html
に説明があります。
この警告を出さないようにするためには
-http://auemath.aichi-edu.ac.jp/~khotta/ghost/psfont.html
などの解説が役に立ちます。