2月
13
2009
0

やっぱり本物がイイっ!!

昔はCM (Computer Modern) と言えばMETAFONTで作ったPK (PacKed) フォントだったが,PDFに埋め込むと出力先の解像度によってはギザギザになってしまうことが多かった
そもそもPKフォントは出力装置の解像度に合わせて用意されるものなので当然だが・・・

しかし最近のTeX環境にはBlue Sky Researchがフリーで提供してくれたType1の高品質なCMが付属するようになっている

CMはTeXの生みの親のKnuth教授がデザインされたフォントですが,線が細いし,失礼ながらあまり美しくない(数式のシグマはtxよりCMの方が好みだが・・・)
そのせい?か,IEEEを中心に,投稿論文にはTimesを埋め込めとのお達しがあることが多い

さて,問題はTimesが売り物であること

teTeXベースの環境では,URWが寄贈してくれたTimesクローンのNimbusRomanNo9LというType1フォントが使える
正直これで十分やし,自分には違いも分からない

ただ当然埋め込まれたフォントの名前はTimesほげほげじゃなくてNimbusRomanNo9Lほげほげなわけで,厳密に指定を満たしているかといわれると???

要するに貧乏人は投稿するなということでしょうかw
IEEE PDF eXpressなんてのもあるので一概には言えないけど・・・)

そこで,Acrobat Reader 3に付いていた本物のTimes系フォントを拝借することに

せっかくなので一緒に入っている基本14フォントも使いましょう
FontForgeで調べた感じ,TimesはLinotype製,他の基本14フォントはAdobe製の模様

今回はdvipdfm(x)で使用する方法をメモしてますが,どうみてもグレーな方法なので自己責任でよろしく

  1. 取り出し
    • acroread_linux_301.tar.gzを展開
    • さらにREAD.TARを展開
    • Fontsディレクトリの中にある,フォント14個を取り出す

      Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique
      Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique
      Symbol
      Times-Bold, Times-BoldItalic, Times-Italic, Times-Roman
      ZapfDingbats

  2. 変換
    • 取り出したフォントはASCIIテキスト形式 (pfa) だが,dvipdfm(x)はバイナリ形式 (pfb) のType1フォントしか扱えないのでt1utilsで変換する必要がある
      • t1utilsが入っていない場合は,portとかでインストール
      • フォント名はベンダの命名則かKarl Berry則に従う(今回はKB則を採用)
        • KB則を示したFontname -Filenames for TeX fonts-のAppendix A.1に基本35フォントのKB名が,Appendix A.2にKB則とAdobeのベンダの命名則の対応が記されている
        • Type1フォントのセットアップ方法を示したThe Font Installation GuideのAppendix Aにweightやwidth, variants, encodingのKB則とNFSSの対応表がある
    • 次のt1binaryコマンドを実行
      % /opt/local/bin/t1binary Courier pcrr8a.pfb
      % /opt/local/bin/t1binary Courier-Bold pcrb8a.pfb
      % /opt/local/bin/t1binary Courier-BoldOblique pcrbo8a.pfb
      % /opt/local/bin/t1binary Courier-Oblique pcrro8a.pfb
      % /opt/local/bin/t1binary Helvetica phvr8a.pfb
      % /opt/local/bin/t1binary Helvetica-Bold phvb8a.pfb
      % /opt/local/bin/t1binary Helvetica-BoldOblique phvbo8a.pfb
      % /opt/local/bin/t1binary Helvetica-Oblique phvro8a.pfb
      % /opt/local/bin/t1binary Symbol psyr.pfb
      % /opt/local/bin/t1binary Times-Bold ptmb8a.pfb
      % /opt/local/bin/t1binary Times-BoldItalic ptmbi8a.pfb
      % /opt/local/bin/t1binary Times-Italic ptmri8a.pfb
      % /opt/local/bin/t1binary Times-Roman ptmr8a.pfb
      % /opt/local/bin/t1binary ZapfDingbats pzdr.pfb
      
  3. インストール
    • 変換したフォントを,TDSに従って配置(今回はTEXMFLOCAL/fonts/type1/adobeに配置)
    • Kpathseaを使ってるならmktexlsrを実行
    • 次のupdmap-sysコマンドを実行する
      % sudo /opt/local/bin/updmap-sys --setoption LW35 ADOBEkb
    • ベンダ名の場合やURWのフォントに戻す場合は,/opt/local/share/texmf/web2c/updmap.cfgでオプションを参照

よくmapファイルにエントリを追加してる解説があるけど,updmap-sysupdmapを使いましょう
たまに本物が使いたいだけならオリジナルmapファイルを使ってもいいけど,updmapの方がよいと思う

一応MacPortsで入れたTeXを前提にしてますが,teTeXベースならほぼ同じハズ
W32TeX付属のdvipdfm(x)やAdobe Distillerでのやり方はまた後日

Written by p0n in: PC | タグ:
2月
12
2009
0

PDFにフォントを埋め込むべきか否か?

「PDFにフォントを埋め込むとサイズが大きくなるのでよくない」とか,いつの時代やねん!!とツッコミたくなるサイトがある

一昔前ならともかく,HDDの容量がテラ級,ネットワークの帯域もギガの時代に,みみっちくフォントを埋める容量を削る意味は全くないと思う
むしろそれによって,違う環境で読めなかったり,開いたとき見た目を再現できないPDFが存在することの方が有害
事実多くの学会では投稿原稿にフォントを全て埋め込むよう指示している

個人的にもPDFのよさは,どの環境で見てもちゃんと読めて,作成者が意図した見た目がほぼ再現されることにあると思っている
ので,代替フォントを使った表示や印刷は邪道だと思う

じゃあどこで開いてもちゃんと読めて,作成した環境と同じ見た目を再現できるPDFを作るにはどうすればいいのか?
もちろん全てアウトライン化してしまえばよいのだが,論文の場合はそれはちょっと・・・

  • フォントを全て埋め込む
  • 埋め込んだフォントのエンコーディングはIdentify系もしくはビルトインにする

完璧ではないが,この2点を心がけておけばたいていの環境では大丈夫だと思う

ということで便利なサイト「PDFフォント○×チェッカー」をメモ
エンコーディングが表示されないのが残念だが,PDFで使用しているフォントの名前や種類,使用されているページまで教えてくれる

Written by p0n in: PC | タグ: ,
2月
11
2009
0

ghostscript-fonts-hiragino

Ghostscriptでヒラギノを使うために必要

/opt/local/share/ghostscript/8.64/Resource/CIDFont以下にフォントファイルへのリンクを,/opt/local/share/ghostscript/8.64/Resource/Font以下にヒラギノとモリサワ基本5書体用のCMapファイルを追加する

デフォルトでモリサワ基本5書体にヒラギノをマッピングするので,モリサワのフォントを持っている場合は+no_aliasを指定してやるとよい

gvで日本語を表示したり,ps2pdfで日本語を含むPDFを作成したりする場合に必要なのはもちろんだが,dvipdfm(x)もデフォルトではEPS形式の画像などポストスクリプトからPDFを作成する際にGhostscriptを使用するので,入れておくのが無難

Written by p0n in: PC | タグ:
2月
01
2009
0

LaTeX Font Warning

よく見かけるFont Warningへの対処法です

LaTeX Font Warning: Font shape `JT1/mc/m/sc' undefined
LaTeX Font Warning: Font shape `JY1/mc/m/sc' undefined
LaTeX Font Warning: Font shape `JT1/gt/m/it' undefined
LaTeX Font Warning: Font shape `JY1/gt/m/it' undefined
LaTeX Font Warning: Font shape `JT1/mc/m/it' undefined
LaTeX Font Warning: Font shape `JY1/mc/m/it' undefined

日本語の明朝やゴシックにはスモールキャップスやイタリックがないので,代替フォントを使ったよって警告です
実際に明朝にスラントを指定とかしない限りほっといてもよいと思いますが,気になるので・・・

それぞれにダミーの \DeclareFontShape を書いていけばよいのですが,Kohsaku HOTTA氏がそれらをまとめたスタイルファイル jtygm.sty を公開されているので,ありがたく拝借しましょう

使い方は簡単
jtygm.sty をTDS(TeX Directory Structure)に従ってTEXMFLOCALに置きましょう
自分の環境のTEXMFLOCALがどこか分からない人は,kpsewhich --expand-path='$TEXMFLOCAL'してください
MacPorts版のなら /opt/local/share/texmf-local/tex/platex/base 以下に置けばよいはずです

で,こっからが注意
最近のTeXではライブラリの肥大化に対応するためKpathseaを導入しています
なので,置いたスタイルファイルを有効にするためにはmktexlsrを実行する必要があります

がっ・・・mktexlsrに関してはmktexlsrは有害だ (mktexlsr Considered Harmful)というおもしろい記事があります
個人的にもmktexlsrは不要だと思うので,

% /opt/local/bin/kpsewhich --expand-path='$TEXMFLOCAL'

でディレクトリを調べてls-Rを抹殺

あとは,ソースのプリアンブルで\usepackage{jtygm}と書けばOKです

Written by p0n in: PC | タグ:
1月
30
2009
0

Mac OS XのTeX環境

Mac OS XでTeX環境を構築する際に考えられる主な選択肢は次の4つ

TeXのバリエーションに関しては別の機会に書こうと思うが,pTeXだと小川版,桐木版,MacPortsが候補に,TeX LiveだとMacPortsもしくはMacTeXが考えられる

teTeXの開発終了を受けて一部のLinuxディストロなどではTeX Liveに移行しているが,TeX Liveはまだまだ日本語が怪しい
論文を書くとなるとスタイルやらなんやらを投稿先に指定されるので,現状ではpTeXが妥当な選択肢だと思う

桐木版はもう長いこと更新されていないようなので,小川版かMacPortsで悩むところだが,英文で書くことも考えるとShift_JISベースより,UTF-8をデフォルト指定できるMacPortsがオススメ(もちろんShift_JISやEUC-JPの文書もOK)
インストールやアップデートも簡単だし,/opt 以下に隔離されていて扱いやすいのもGood
ただ,MacPortsのpTeXも内部がUTF-8なわけではないので,全ての文字が使える訳ではない

とりあえず,ptexで指定可能なオプションは以下の通り

% /opt/local/bin/port variants ptex
pTeX has the variants:
no_hiragino: Do not embed Hiragino fonts in PDF
no_otf: Do not use otf.sty
babel: Use babel
euc: Set default character set to EUC-JP (default)
sjis: Set default character set to Shift_JIS
utf8: Set default character set to UTF-8
nox11: Do not use X11
motif: Use motif (default)
xaw: Use xaw
xaw3d: Use xaw3d
nextaw: Use nextaw
darwin_9: Platform variant, do not select manually

個人的には,+utf8 +nox11 でよいと思う
+nox11 を指定しているのは,MacではPDFの表示がかなり速いのでわざわざ中途半端な仕上がりのdviを見る必要がないから
ヒラギノの埋め込みについては議論があるがデフォルトでは埋め込んどいたほうがよいと思う(必要に応じて埋め込まないように変更することもできる)
フォントに関してもまた別の機会に書きたいと思う

ということで,インストール(たまにselfupdateしたあとsyncとか書いてるサイトがあるけどsyncはselfupdateのサブセットなので不要)

% sudo /opt/local/bin/port selfupdate
% sudo /opt/local/bin/port install pTeX +utf8 +nox11

ちなみに,/opt/local/bin 以下には
ptex-euc, ptex-jis, ptex-sjis, ptex-utf8, platex, platex-euc, platex-jis, platex-sjis, platex-utf8, platex209
が生成されるが,全部ptexへのシンボリックリンク
ptex内部でargv[1]を見てエンコーディングなどに対応している模様(BusyBoxみたいな感じ)

Written by p0n in: PC | タグ: ,

TheBuckmaker WordPress Themes Webhosting, MP3, AAC & Co