TeXの記憶(124) — Helvetica Blackを追加

TeX用にHelvetica Blackを設定しました。ほんとはArial Blackで代用しています。

Helvetica Blackなんて、Macにもともと入っているのかと思ったら、ありませんでした。

探してみるとLinotypeでは販売しています。でも、私が購入してpfbフォントを作って相手先に渡したら、問題ありでしょうし、いちいち購入したかどうかを確認するのも面倒です。

好都合なことにHelveticaはいろいろ似たフォントが出回っているので、そちらで代用することにしました。Arial Black(Arial Black.ttf)がいちばん無難そうです。

フォント名

TeXでは、フォント名としてcmr、rml、phvなどのようなBerry命名規則に沿った名前を使っています。今回のHelvetica Blackもできれば規則に沿った名前を付けるのが良さそうです。

Helveticaシリーズのような有名フォントは名前がすでに登録されていることが多いので、まず自分のシステムを探してみました。

/Applications/TeXLive/Library/texlive/2013/texmf-dist/fonts/map/fontname
の中の「adobe.map」を探すと

phvc8a Helvetica-Black A 013 hvbl____

の行が見つかったので今回はこの名前を使うことにします。

なので、最終的に必要なファイルは「phvc8r.tfm, phvc8t.tfm, phvc8t.vf, phvc8a.afm, phvc8a.pfb」になります。

珍しいフォントなどは、Berry命名規則を解説してくれているサイトなどを参考に付けるしかないようです。

必要なファイルの作成

afm, pfb

元になるこの2つのファイルを作るためにここを利用しました。
変換された、arialblack.afmとarialblack.pfbは、それぞれphvc8a.afm, phvc8a.pfbにリネームしておきます。

tfm, vf

まず、コマンドラインから以下の1行を入力します。

afm2tfm phvc8a.afm -p 8r.enc -t ec.enc -v phvc8t.vpl phvc8r.tfm
phvc8r Arial-Black “ TeXBase1Encoding ReEncodeFont “ <8r.enc

2行目は、afm2tfmからの表示です。
mapファイルに使うので1行だけのファイル「helvetica-black.map」とか適当に名前を作って保存しました。

helvetica-black.mapの中身

phvc8r Arial-Black “ TeXBase1Encoding ReEncodeFont “ <8r.enc

もう1行コマンドラインから入力して最後のファイルを作ってしまいます。

vptovf phvc8t.vpl
I had to round some heights by 14.5000000 units.
I had to round some depths by 2.5000000 units.

下の2行はワーニングです。無視しました。

最終的に、phvc8r.tfm, phvc8t.tfm, phvc8t.vf, phvc8a.afm, phvc8a.pfb, phvc8t.vpができましたが、phvc8t.vpは使いません。

できたファイルを移動

生成されたファイルは、拡張子に合わせて必要な場所に移動します。
「texmfなんとか」のローカルなフォルダに入れるといいでしょう。手元の環境には
「/Users/Shared/TeXLive/texmf/fonts/」の下に「tfm/local」「vf/local」「type1/local」というフォルダがありました。afmファイル用に「afm/local」を作って、それぞれ移動することにしました。
helvetica-blac.map用にも「map/local」を作って移動します。

phvc8r.tfm, phvc8t.tfm –> tfm/local
phvc8t.vf –> vf/local
phvc8a.afm –> afm/local
phvc8a.pfb –> type1/local
helvetica-black.map –> map/local

mapファイルの登録

mapファイルに登録します。
map/localに移動して以下を実行しました。

updmap-sys --enable Map=helvetica-black.map
mktexlsr

これでhelvetica-black.mapの内容がシステムのmapファイルに登録されました。

使ってみる

設定は簡単です。
\useromanの引数の「{b}」は「{x}」かもしれませんが、個別に指定するぶんには問題ないでしょう。

\documentclass{jarticle}

\DeclareFontFamily{T1}{phvc}{}
\DeclareFontShape{T1}{phvc}{b}{n}{<-> phvc8t}{}
\newcommand{\helvBlack}{\useroman{T1}{phvc}{b}{n}}

\begin{document}
{\helvBlack abc123}
abc123
\end{document}

これで無事フォントが埋め込まれました。

0614a

コメント