8月 2008

Comis Sansの埋め込みに失敗

CTANからComis Sansパッケージをダウンロードしてインストール。texhashもupdmapもちゃんとして実験。dviファイルは作られるが,dvipdfmxでPDFに変換中にエラー。

** ERROR ** Unable to find TFM file "ComicSansMS"

試しに日本語TeXではなく,欧文専用のpdfTeX (dviを経由せずに直接PDFを生成するもの) でコンパイルすると,とくにエラーもなくPDFが作られる。ということは,基本線は間違ってないはず。しかし解せないのは,メトリックファイル(TFM)が見つからないというエラーの意味。TeXのコンパイルは出来ているのに・・・。dvipdfmx が変換時にどういう情報を必要としているのか,調べる必要があるなあ。

Windowsの自己解凍ファイルをMac OS X で開く

MS Comic Sans というフォントをMac上のTeXから使うためのメモ。フォント自体はMacにもインストールしてあるが,ファイル形式が Font Suitcase なので,拡張子が ttf の普通の TrueType フォントが欲しい。変換ツールが見つからなかったので,フォントをダウンロードすることにした。

An easy way to install Microsoft’s TrueType core fonts on linux

Download Microsoft Core Fonts

Windowsのフォントは自己解凍形式で comic32.exe という実行ファイルとしてしか入手できないみたいだ。しかし,これを他のプラットフォームで解凍するためのツール CabExtract (Extract Cabinet Fileということかな?) がある。

cabextract

Mac OS X には,Finkのパッケージがあったので,Fink Commander からインストール。シェルから

$ cabextract comic32.exe

とすれば,comic.ttf と comicbd.ttf の2つが生成される。

日本語フォントをPDFに埋め込む実験

このところ,Windows版TeXでの実験ばかりだったが,Mac OSX にはもともとヒラギノという美しいフォントが付属しているわけで,これを使わない手はなかった。ということで,埋め込みの実験。実は,utfパッケージを拡張した otfパッケージを使えば,自動的にヒラギノが埋め込まれる。しかし,それ以外にも埋め込みたいフォントがあるので,仕組みを理解しておきたいのであ〜る。

参考にしたのは,otfパッケージを作成された齋藤修三郎さんのサイト LaTeX2e的 と 具体的な事例が紹介されている MacPorts の pTeX における和文多書体環境の整えかた というページ。作業は意外と簡単だったが,忘れないうちにメモ。

とりあえず,ファイル群はすべてカレントに置いて実験。本格的に使うときは,適切なディレクトリーに置いて,texhash すること。

まず,フォント本体をダウンロード。今回は cinecaption.otf というOpenType Font を使う。jis.tfm あるいは otfパッケージの tfm ファイルをコピーして cinecaption.tfm なるメトリックファイルを作る。今回は otfパッケージのをコピーした,あとで縮尺するのだが,jis.tfmと違い,0.92469倍にすることに注意。

次に,vf (Virtual Font) などを作る。makejvf を使って,cinecaption.vf と cinecap.tfm を生成する。作り方は

% makejvf cinecaption.tfm cinecap

さらにマップファイルを作る。次の内容を cinecap.map というファイルに保存する。

cinecap H cinecaption.otf

最後に,このフォントを使うためのマクロ。とりあえず,sample.tex というファイルで実験。プリアンブルの部分に次のような記述をする。


\makeatletter
\DeclareKanjiFamily{JY1}{cinecap}{}
\DeclareFontShape{JY1}{cinecap}{m}{n}{<-> s * [0.92469] cinecaption}{}
\newcommand{\cinecapdefault}{cinecap}
\DeclareRobustCommand\cinecapfamily{%
  \not@math@alphabet\cinecapfamily\relax
  \kanjifamily\cinecapdefault\selectfont}
\def\textcinecap#1{\relax\ifmmode\hbox\fi{\cinecapfamily #1}}

これで,コンパイルすれば,sample.dvi ができる。これを PDF に変換する際には,マップファイルへの参照が必要となる。本格運用時は cid-x.map に書き込んで updmap するが,今回は実験なので dvipdfmx が読み込むように,オプションで指定する。

% dvipdfmx -f cinecap.map sample.dvi

以上でフォントがちゃんと埋め込まれているのを確認。

TeXマクロメモ

理由がよく分からないのだが,とりあえず動いたのでメモ。

丸数字(数字を○で囲んだもの)を実現するマクロ \Maru{数字} を適当に組んで使っている。あちこちのサイトや書籍で紹介されているのと基本的には同じで,数字と○を重ねて表示する。それはそれで良いのだが,utfパッケージを利用して,ヒラギノフォントなどで使える本物(?)の丸数字を使おうと

\def\Maru#1{\ajMaru{#1}}

などとマクロを組んでいたのだが,相互参照でうまく行かない。数式番号として丸数字を使うマクロを組んでいるのだが,\eqref{hoge} で hoge というラベルを付けた数式番号を表示しようとするとエラーになってしまう。一回目のLaTeX処理ではまだ hoge が何番か分かってないので,hogeを参照するマクロ \r@hoge は未定義(つまり \relax と同じ値)。そこで,未定義の時は■を出力し,定義されているときは丸数字を表示させようと,

\def\eqref#1{%
  \expandafter\ifx\csname r@#1\endcsname\relax
     \hbox{■}%
  \else\Maru{\ref{#1}\fi }

と定義した。\Maru の定義が以前のものだと問題なく動くのだが,\Maru を \ajMaru を呼び出す形だと,何故かエラーになる。どうも引数が数字と認識されてない様子。あれこれ試したけどダメ。最後にままよ,とカウンター変数を使って次のようにしたらうまくいった。

\newcount\eqcounter
\def\eqref#1{%
  \expandafter\ifx\csname r@#1\endcsname\relax
     \hbox{■}%
  \else\eqcounter=\ref{#1}\Maru{\the\eqcounter}%
  \fi}

しかし,何故これで上手く行って,それまでのマクロはダメなのか,理解できていない。要は,きちんと数字を渡せれば良いはずなのだが。

じゃが豚

じゃが豚
じゃが豚

テレビを観ていたら,北海道の特産品を食べまくってランキング付けるとかいう安易な番組 :mrgreen: をやっていて,暇つぶしに観ていたのだが,何と1位が「じゃが豚」 :mrgreen:  あはは,1位って柄じゃないと思うが,自分が好きなものがこういう風に出てくると,何となく嬉しい。

じゃがいもから作った皮がつるつるしていて,これは初めての触感。白玉みたいな感じ。で,中身は挽肉ベース。ちょっとしたおやつになる。家ではワタシの非常食になったりもするが。

1週間ぐらい前にデパ地下で売っているのを見かけたので,さっそく補充。2個で良いかと思ったが,3個だとおまけが付きますというの言葉に,つい3個(苦笑)。

武蔵野うどん うちたて家

メモリー増設したいけど

かみさんのVAIO、初期状態に戻したはいいが、やはり動作が・・・。まあ、Firefoxでタブを10個も広げてる 😉 ワタシも悪いのかもだが。実メモリーと仮想メモリーがどうなっているのか分からないのだが、とにかくメモリースワップが頻繁なのだ~。で、メモリー増設しようと思うのだが・・・

取説を読むと、純正品の VGP-MM512L を2枚刺すことで、最大1Gバイトまで増設できる、とある。うーん、そんなものなのかあ・・・と、しょぼ~ん。ままよ、と検索すると、何と1枚35000円もするではないか。が~ん。そんな~。きょうび、メモリーの値段はどれりゃあ下がっているのではなかったのか?

ハードウェアは全然詳しくないので、うかつに使えないものを買うのが怖い。情報が欲しいところ。VGP-MM512L を調べたところ、DDR2、SDRAM とか書いてある。これが規格?この意味も分からないのだが、そういう規格でいいのなら、ちょっと調べただけでも1枚5000円ぐらいで買えそうなのだが。できれば、1枚あたり1Gぐらいのを2枚刺して、2Gバイトと行きたい気分なのだがなあ。それって、OSがちゃんとついて行けるのかなあ。そもそも、メモリースロットの形状とかは、ちゃんと互換性あるんだろうねえ。昔のアップルみたいに、規格がどんどん変わっていて、今のメモリーは刺せません、とか無いだろうねえ。

いろいろ心配で、どれを買ったら良いのか、さっぱり分からない。量販店のお兄さんに聞いても分からないだろうしなあ。ディープな店には入りたくないしなあ(爆)。

[ 追記 ] ソニーのサイトで調べたら、次のページにたどり着いた。

VAIO | type F light

そうそう、かみさんのVAIOはこのタイプ。CPUとかメモリーとかを選んで注文したっけ。このページによれば、「DDR2 SDRAM、DDR2 400対応、デュアルチャンネル転送」というものを選べば良さそう。最大2GBと書いてあるから、1GBを2枚は可能ってことだよね。あとは、どこで購入するかだなあ。