ミラーサイト です。 公式サイトの正式な URL は http://khotta.org/ghost/psfont.html です。

さあ、始めよう pLaTeX2e Blog のページ  New!

Section 6 PostScript フォントの利用について :

Section 1 で提供した Ghostscript と GSview がインストールされている環境のもとでは、最新の pLaTeX2ε ( 例えば、参考文献で述べる 奥村 著 『 [改定版] LaTeX2ε 美文書作成 入門 』 に添付の CD-ROM ) により、普通のインクジェット・プリンタに おいても PostScript のフォントの利用が可能 になっています。
これから、 このような環境のもとでの具体的な PostScript のフォントの利用 について説明をしていきたいと思います。


(1) PostScript フォントの利用
(2) 文書の途中での PostScript フォントの 変換
(3) フォントの属性について
(4) FD ファイルの書き換えについて

To Contents


(1) PostScript フォントの利用 :

pLaTeX2ε では、 NFSS2 に基づいて PostScript フォントを取り扱うことができるように、 PSNFSS と呼ばれるパッケージが提供されています。
この中でも、特に利用が多い Times フォントを使用するときには、 PSNFSS 内の times パッケージ times.sty を次のように読み込みます :


       \documentclass{jarticle}
       \usepackage{times}
       \pagestyle{plain}

これは、実際には pLaTeX2ε でのデフォルトフォントを、次のように Times フォント に置き換えていることになっています :

       \renewcommand{\rmdefault}{ptm}
       \renewcommand{\sfdefault}{phv}
       \renewcommand{\ttdefault}{pcr}

この三行の意味を説明しましょう。 ここで、 CMComputer Modern の省略形 として用いることにします :
第一行目 = デフォルトの CM Roman Font を、 Times Roman Font へ置き換える
第二行目 = デフォルトの CM Sans Serif Font を、Times Helvetica Font へ置き換える
第三行目 = デフォルトの CM Typewriter Type Font を、Times Courier Font へ置き換える
したがって、実際に利用するときには次のようにすれば良いわけです :

       \documentclass{jarticle}
       \usepackage{times}
       \pagestyle{plain}
       \begin{document}

       %%%  Times Roman Font  %%%
       \textrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890}\\

       %%%  Times Helvetica Font  %%%
       \textsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890}\\

       %%%  Times Courier Font  %%%
       \texttt{ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890}\\

       \end{document}

( 注意として、上での \textrm は省略 できます。)

ここで、実際に Times フォントの出力例 をごらんください : CMR and Times RomanCourier and Helvetica

しかしながら、これには 一つの問題 が あります。 それは、このようにすると TeX 文書全体に times.sty が適用 されて Times フォントの利用が可能になるわけですが、 途中からデフォルトである Computer Modern フォント に切り替えて利用したいときには、 少々戸惑いを感じることがあります。
このような時の、対応方法を次の項で詳しく述べることにしましょう。

▲ Section 6


(2) 文書の途中での PostScript フォントの変換 :

まず、はじめにデフォルトである Computer Modern フォントを使用中に、 Times フォントに切り替えて利用したいときには、次の四行を文書の途中に 書き込めば利用が可能になります。


       \renewcommand{\rmdefault}{ptm}
       \renewcommand{\sfdefault}{phv}
       \renewcommand{\ttdefault}{pcr}
       \normalfont

ここで、四行目の \normalfont は、 上の三行で定義されたフォント (ptm, phv, pcr) を標準フォントにすることを 宣言するコマンドなので書くことを忘れないように注意してください。
こうすれば、これから先の TeX 文書には前の項で説明した times.sty が適用 されることになります。
さて、問題はこの先で最初のフォントに戻したい時です。 例えば、Times Roman Font を CM Roman Font に戻したい ときには、その場所に次のように記述します :

       \renewcommand{\rmdefault}{cmr}  %  CM Roman  %
       \normalfont

ここでも、\normalfont を書くことを 忘れないように注意してください。
さらに、Times Helvetica Font および Times Courier Font を、 それぞれ CM Sans Serif Font および CM Typewriter Type Font に戻したいときには、先程と同様に 戻したい場所に次のような記述をします :

       \renewcommand{\sfdefault}{cmss}  %  CM Sans Serif  %
       \normalfont

       \renewcommand{\ttdefault}{cmtt}  %  CM Typewriter Type  %
       \normalfont

次に、はじめから times パッケージ times.sty が読み込まれているときです。
これは前項の (1) で説明したように、次の三つが書かれていることと同じでした :

       \renewcommand{\rmdefault}{ptm}
       \renewcommand{\sfdefault}{phv}
       \renewcommand{\ttdefault}{pcr}

したがって、上で説明してあるように CM Roman 、CM Sans Serif および CM Typewriter Type フォントに戻すには (ptm, phv, pcr) をそれぞれ (cmr, cmss, cmtt) に書き換えれば良い ことになります。 たとえば、次のようにです :

       \renewcommand{\rmdefault}{cmr}  %  CM Roman  %
       \normalfont

このときにも、\normalfont を書くことを 忘れないように注意してください。

以上での解説は少し難しく感じられるかも知れませんが、 実際に行っていることは次の項で説明するように、 フォントの属性を変更 していることに他なりません。

ここでは、PostScript フォントの中でも利用することが多い times.sty を中心に説明してきましたが、 PostScript フォントを扱うことができる PSNFSS パッケージ には、このほかにも avant.sty、bookman.sty、helvet.sty、 newcent.sty、palatino.sty がありますが、フォントの取り扱いは上で述べてあることと同じように できます。
次の表は各パッケージと、そのパッケージを利用したときの フォントファミリーを示しますので、文書の途中でのフォントの変換の 際に参考にしてください :

パッケージ \rmdefault \sfdefault \ttdefault
avant.sty cmr pag cmtt
bookman.sty pbk pag pcr
helvet.sty cmr phv cmtt
newcent.sty pnc pag pcr
palatino.sty ppl phv pcr
times.sty ptm phv pcr

ここでの、各パッケージの出力例は 参考文献 の 奥村 著 : 『 [改定版] LaTeX2ε 美文書作成入門 』 の第 14 章 および、 乙部 ・ 江口 共著 : 『 Vol.1 Basic Kit 1999 』 の Chapter 8 が参考になります。

フォントの属性 が充分に理解できてから、エディタで times.sty などのスタイルファイルを開いてみて記述を解読すれば、 ここで述べたきた事柄の理解が一層に深まるはずです。

▲ Section 6


(3) フォントの属性について :

属性は基本的に、 次の 5 種類から成立しています。

属性 パラメータ デフォルトの値
エンコード \encodedefault OT1
ファミリー \familydefault \rmdefault
シリーズ \seriesdefault m
シェープ \shapedefault n
サイズ なし クラスファイルで定義

このフォントの属性をどのように利用するのか、ひとつの例として 第(2)項 で扱った times.sty でみてみましょう :

       \renewcommand{\rmdefault}{ptm}
       \renewcommand{\sfdefault}{phv}
       \renewcommand{\ttdefault}{pcr}

これは、次のようなフォントのファミリー変換を行なっていることに ほかなりません :
第一行目 = デフォルトの値 cmr (ローマン体 \rmdefault)を、 ptmTimes Roman Font) へ置き換える。
第二行目 = デフォルトの値 cmss (サンセリフ体 \sfdefault)を、 phvTimes Helvetica Font) へ置き換える。
第三行目 = デフォルトの値 cmtt (タイプライタ体 \ttdefault)を、 pcrTimes Courier Font) へ置き換える。

▲ Section 6


(4) FD ファイルの書き換えについて :

第(3)項で見たフォントの属性により、 pLaTeX2ε では TeX 文書をコンパイル する時に要求されたフォントのエンコードとファミリーを組み合わせた フォントの定義ファイルであり拡張子が fd である FD ファイルを読み込みます。
例えば、欧文の基本フォントである cmr ファイルに対しては ot1cmr.fd ファイルを、 cmss ファイルに対しては ot1cmss.fd ファイルを、 cmtt ファイルに対しては ot1cmtt.fd ファイルをという具合にです。
さらに、和文の基本フォントには、 和文用のエンコードの 縦組み用の JT1 と 横組み用の JY1 の 2 種類および、 和文用のテキストファミリーmc (明朝体)gt (ゴジック体) の 2 種類からできる jt1gt.fd jt1mc.fdjy1gt.fdjy1mc.fd の合計 4 種類の FD ファイルが あります。

さて、この FD ファイルの特性を理解することは非常に重要なことなのです。 このことを、わかっていただくために 一つの応用例 を述べてみましょう :
日本語と英語が入っている 横組み用 の少し長い TeX 文書をコンパイルすると、おびただしい 数の LaTeX Font Warning が出てきます。 そして、その様子は Log ファイルに記録されていて、後からでも エディタで読み返すことができます。 例として、


    LaTeX Font Warning: Font shape `JY1/mc/m/sl' undefined
    (Font)              using `JY1/mc/m/n' instead on input line 28.

の意味は以下のようです :
文書ファイルの 28 行目で使用する jy1mc.fd ファイルには、シリーズ m の、 シェープ sl での組み合わせの定義がないので、 jy1mc.fd ファイルの、 シリーズ m の、 シェープ n での組み合わせの定義を用いる。
実は、この意味が理解できたならば上記の LaTeX Font Warning が、以後現れないようにするには jy1mc.fd ファイル内に、エディタで次の四行を書き加えれ良いことがわかるはずです。

  \DeclareFontShape{JY1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*min
      <10.95><12><14.4><17.28><20.74><24.88> min10
      <-> min10
      }{}

ここでの、コマンドおよび記号については 参考 文献 の 中野 著 : 『 日本語 LaTeX2εブック 』 の第 3 章 または 乙部 ・ 江口 共著 : 『 Vol.2 Extended Kit 』 の Chapter 7 を参考にしてください。
さて、次のような LaTeX Font Warning には、

    LaTeX Font Warning: Font shape `JT1/mc/m/sl' undefined
    (Font)              using `JT1/mc/m/n' instead on input line 28.

次のように jt1mc.fd に書き込めばよいでしょう :

  \DeclareFontShape{JT1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*tmin
      <10.95><12><14.4><17.28><20.74><24.88> tmin10
      <-> tmin10
      }{}

わかりましたか? では、ここで考えてみてください :

QUIZ

次のような LaTeX Font Warning の場合には、どの FD ファイルに何を書き込めば良いでしょう?

    LaTeX Font Warning: Font shape `JY1/mc/bx/sl' undefined
    (Font)              using `JY1/mc/bx/n' instead on input line 28.

    LaTeX Font Warning: Font shape `JT1/mc/bx/sl' undefined
    (Font)              using `JT1/mc/bx/n' instead on input line 28.


ヒント は、関連する FD ファイルをエディタで 開いて、どのような 代用フォント が指定 してあるかを読み取ることです。 しばらく各自で考えてみてから、次を 参考にしてください。

ANSWER

まず、jy1mc.fd ファイルに次を書き込む :

  \DeclareFontShape{JY1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*goth
      <10.95><12><14.4><17.28><20.74><24.88> goth10
      <-> goth10
      }{}

そして、jt1mc.fd ファイルには次のように書き込む :

  \DeclareFontShape{JT1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*tgoth
      <10.95><12><14.4><17.28><20.74><24.88> tgoth10
      <-> tgoth10
      }{}

これで 良いようですが 日本語フォントでは、 従属書体の欧文フォントとの関連もあり、明朝体とゴジック体は お互いに密接に組み合わさっています。
したがって、jy1gt.fd ファイルにも次を 書き込みます :

  \DeclareFontShape{JY1}{gt}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*goth
      <10.95><12><14.4><17.28><20.74><24.88> goth10
      <-> goth10
      }{}

さらに、jt1gt.fd ファイルにも次のように 書き込むのです :

  \DeclareFontShape{JT1}{gt}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*tgoth
      <10.95><12><14.4><17.28><20.74><24.88> tgoth10
      <-> tgoth10
      }{}

いかがでしたか?

さて、以上のことを LaTeX Font Warning が出た時に繰り返していけば、 LaTeX Font Warning が全くでない FD ファイルを作成することができるのです。
私自身この方法で、 LaTeX Font Warning が全くでない日本語基本 FD ファイルである jt1gt.fdjt1mc.fdjy1gt.fdjy1mc.fd を作成できたので、 (株)アスキー 出版技術部の 中野 賢さんに送ってみました。 このとき、 次のような中野さんからの返答をいただきました :
表示される理由については、 「 日本語 LaTeX2εブック 」 の 55 ページで説明しています。 対処方法 については、具体的には説明していませんが、お送りくださったように するので正解です

そして、中野さんからの助言として
気付いたことは、 \DeclareFontShape コマンドの部分を集めて、パッケージに したほうが便利かもしれない、ということです。

その後、 パッケージ・スタイルファイルjtygm.sty を作って自分自身で利用しています。( j は 日本語、 t は縦、 y は横、 g はゴジック、 m は明朝からきています。)

このスタイルファイル jtygm.sty を、 この機会に公開することにします :
■■ jtygm.lzh ■■ (700 バイト) のファイルを展開すると、 jtygm.sty(5,098 バイト; 1998/06/12) なるファイルができます。

これを例えば、pLaTeX2ε 用のマクロ集が 入っているフォルダの \tex\platex\base に移動してください。 これで、利用可能になります。
ご使用の前には、ぜひ一度 jtygm.sty を エディタで開いて何が書いてあるかを確認してみてください。
このスタイルファイルの使用により、日本語基本 FD ファイルに関する LaTeX Font Warning および LaTeX Font Info: Font shape は、 まったく表示されなくなります。
さらに、日本語と英語が入った少し長い TeX 文書の場合には コンパイルの時間が短くなり、Log ファイルの大きさも小さくする ことができるのです。
さて、使用方法 は簡単です。 例として、 次のような TeX 文書の jtytest.tex をコンパイルします :

   \documentclass{jarticle}
   \pagestyle{empty}
   \begin{document}

   これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。\\
   \textit{これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。}\\
   \textsl{これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。}\\
   \textsc{これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。}

   \end{document}

すると Log ファイルの jtytest.log には日本語基本 FD ファイルに関しての LaTeX Font Warning が 18 個、 LaTeX Font Info: Font shape は 2 個 確認できるはずです。
続いて、jtygm.sty使用方法 ですが、TeX 文書に次のように \usepackagejtygm.sty を読み込むのです :

   \documentclass{jarticle}
   \usepackage{jtygm}
   \pagestyle{empty}
   \begin{document}

   これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。\\
   \textit{これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。}\\
   \textsl{これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。}\\
   \textsc{これは、\textbf{jtygm.sty}の \textgt{テスト・ファイル}です。}

   \end{document}

この時には、もう日本語基本 FD ファイルに関する LaTeX Font WarningLaTeX Font Info: Font shape も、 まったく現れないのがわかるはずです。

さらに、フォントの属性 がわかれば、 上で述べた以外のフォントの FD ファイルについても LaTeX Font Warning を制御するための、ファイルへの書き込みが可能であることが 充分に理解できることでしょう。
ここで述べてきた実例を通して、フォントの 属性の重要性 が理解していただけ たら何よりだと思っています。


Section 6 △ ▲ Contents


Kohsaku HOTTA
khotta.org