LaTeX で多書体 --- 既存のパッケージを使う方法

目次

欧文基本35書体を使う方法

LaTeXでは、特に指定しなければTeXの作者のKnuthさんの作ったComputer Modern Fontが使われます。私はこの細いフォントが好きなのでこのままにしていますが、人によってはもうちょっとメリハリのあるフォントを使いたいことでしょう。

欧文では、「基本35書体」と呼ばれるものであれば、フォントを指定するだけでそれらを用いた多書体が実現できます。\usefontという命令で、エンコーディング、ファミリー、シリーズ、シェイプの順に指定します。

{\usefont{T1}{pnc}{m}{n} 扱いたい本文を英語で }

そういわれてもよく分からないかもしれません。とりあえずエンコーディングにはT1、あるいはOT1を指定しておけば問題ありません。ファミリーについてはこれから説明しますが、簡単に言えばどのフォントを使うかを指定します。シリーズは文字の太さ(mは普通、bは太字)、シェイプは文字の形(nは普通、slは斜体(スラント)、itはイタリック、scは小文字が大文字の形(Small Caps))です。

では、まずはシリーズとシェイプから見ていきましょう。Wordをお使いの方はご存知だと思いますが、Wordでは特に指定しなければNew Century Schoolbookという、和文フォントとよく合うフォントが使われると思います。ここではそのフォントを七変化させてみましょう。タイプライターの入力例、その次に出力例、という順に並べています。

New Centuryのいろいろなフォント

次にファミリー、つまりフォントを七変化させて見ましょう。まずは欧文基本14書体からです。Times(タイムズ), Helvetica(ヘルベチカ), Courier(クーリエ)、Symbol、ZapfDingbatsを、先ほどのシリーズとシェイプを変更したものです。(変更できないものもあります。)Timesは和文でいう明朝体みたいなもの(Serif)、Helveticaはゴシック体みたいなもの(Sans Serif)、Courierはタイプライター体ですが、それぞれ代表格のフォントです。Symbolはギリシア語フォント、ZapfDingbatsは種々の記号を使うためのフォントです。(pifontパッケージを併用し、Symbolでは\Pisymbol、ZapfDingbatsでは\dingという命令を用いて出力したほうがラクかもしれません。興味のある方は調べてみましょう。)ここでは、

\DeclareFontFamily{T1}{psy}{}
\DeclareFontShape{T1}{psy}{m}{n}{<->psyr}{}

\DeclareFontFamily{T1}{pzd}{}
\DeclareFontShape{T1}{pzd}{m}{n}{<->pzdr}{}

とプリアンブルに書いた上でテストしています。こうしておけば、たとえばSymbolフォントを指定したときに「a」と書いておけばαが出力されるようになります。(書かないと、下のようにフォントを指定すると無指定のときのフォントが変わりに出力されてしまうことでしょう。)

欧文基本14書体

欧文基本35書体のうち、先ほどの欧文基本14書体を除いたものも見てみましょう。Helvetica-NarrowはHelveticaの字の幅を狭くしたもの、Avant Gardeは今風のサンセリフ体、PalatinoはZapfという有名なフォント職人が作った格調高いフォント、Bookmanはまぁ見ての通り(よくわかってない)、Zapf Chanceryは気品あふれたイタリックのフォントです。Zapf Chanceryはイタリックですので、nではなく、itを指定しましょう。

欧文基本35書体

ここまで来て、「あれ?Comic Sans MSとかImpactとかは使えないの?」と思った方は、任意の欧文TrueTypeフォント・和文フォントの半角英数字部分を扱う方法を試してみてください。今回とは違い、一作業必要になります。

dviout for Windows 3.15 を用いる方法

まずはじめに

dviout for Windows は、バージョンが3.15になってから、より初心者でも扱いや すいような形になりました。その中に、DVIファイル内のフォントを、任意の日 本語TrueTypeフォントに置き換えてくれる機能があり、実際、かなり使いやすい 形になっています。ただし、DVIファイル内の1種類のフォント(正確には「1種類のTFMファイ ルに対応するフォント」)をまとめて置き換えてしまうものなので、「見出しの フォントをまとめて変える」という使い方になります。「本文の一部分を別のフォント にしたい」という場合の方法は、「hgfontsパッケージを用いる方法」以下で述べてい ます。

使い方

この機能を使うために設定する必要は、特にありません。(つまり、 ttfonts.mapやTFMファイルのコピー、FDファイル等の設定はまったく不要なので す。)

まず、TeXのソースファイルをいつも通り作ります。このとき、何か特殊な命 令を書く必要はありません。そして、普段どおりコンパイルし、DVIファイルを いつも通り開きます。

メニューバーより[Option] -> [Change Japanese fonts...]と選び、ダイ アログボックスを出します。

フォントを変えるダイアログ

変えたいフォント(フォントと対応付けられているJFMファイル名)を選びま す。日本語フォントであれば、tminやtgothのように"t"がついている ものは「縦書き」、minやgothのように"t"がついてないものが「横書 き」のフォント、後ろの数字はフォントの大きさと考えれば、何とか選べると思 います。(また、ある部分のフォントを知りたい場合は、現在見ているDVIファイルの 表示画面の該当する文字の上で、CtrlキーとShiftキーを押 しながら左クリックすることで、下の欄のFontの項目に、該当するフォント名 (TFMファイル名)が出てきます。)[Change] を押すと、具体的なフォ ント設定をするダイアログボックスが出てきます。先ほど選んだフォントを置き 換えたいフォント名を選びます。(また、フォント名のみならず、文字の太さや 斜体の有無等も選べます。)先の図では、本文中のフォントを選んだので、 これを「モトヤシーダ1」という、見やすく綺麗なゴシック体フォントに変えよう と思います。(下図)

置き換える書体の設定

あとは、[OK] ->(元のダイアログで) [OK] と押せば、フォントが切り 替わります。(これでおしまい。)ちなみに、「モトヤシーダ1」は「モトヤフォント」 (http://www.motoyafont.jp/)で無料で配布されているフォントです。(無料の ユーザー登録が必要。)見やすく、明るい雰囲気のフォントなので、軽いチラシ やプリント等に用いてみると良さそうです。

hgfontsパッケージを用いる方法

はじめに

さて、先ほどの方法は、楽々フォントの変更ができましたが、本文の一部分 のみ別のフォントにする、といった使い方ができません。そこで、そのための方 法の一例として、まずはhgfontsパッケージを用いる方法を示そうと思います。

ダウンロード

HGフォントへの変更を、コマンド1つで変更できる「Hgfonts パッケージ」を、 次の堀田先生のサイトから入手します。

http://auemath.aichi-edu.ac.jp/~khotta/ghost/package.html

ダウンロードしたら、パッケージをLhasaや+Lhaca等のソフトで解凍(展開) します。後は、付属のhgfonts.txtを見ながらインストールします。なお、パッ ケージをインストールした後は、角藤版pTeXの場合はmktexlsrを実行する必要が あります。マニュアルには書いてありませんが、忘れずに行ってください。また、 「C:\usr\local」のような記号が頻出しますので、「この円記号は何?」という 方は 「ハードディスクの中を探検しよう」 を参照してください。

スタイルファイルのインストール

私の場合のインストール例(角藤版pTeX, Web2C7.3.7)を述べます。まず、 解凍して出てきたものの中にある、HGfontsフォルダに入っているhgfonts.styを 、マニュアルでいう「日本語のスタイルファイルが入っているフォルダ」すなわ ち

C:\usr\local\share\texmf\ptex\platex\base

に入れます。ちなみにこれはjarticleを使っている場合で、jsarticleを使っ ている私の場合は

C:\usr\local\share\texmf\tex\jsclasses

にインストールしました。(もしも見つからなかった場合は、Windowsの検索 機能を使ってjarticle.clsやjsarticle.clsを検索し、見つかったらファイルを 右クリックして「1番上のフォルダを開く」を選びます。そこで出てきたフォル ダが、おそらくインストール先です。)なお、実際試した限りでは、

C:\usr\local\share\texmf\tex\HGfonts

という、「日本語スタイルファイルが入っていないフォルダ」であっても、うま くいきました。(結局どこでもいいのかな?)最後に、

mktexlsr

を忘れずに実行します。MS-DOSプロンプトを起動してから実行するか、「スター ト」->「ファイル名を指定して実行」から実行しても、どちらでもいいです。

$user.map への記述の追加

dviout for Windowsのバージョンが3.17以降であれば、おそらくdviout.exeのあるフォルダにmapという名前のフォルダがあります。そこに$user.mapというファイルを新たに作ってください。

次に、解凍したフォルダのmapフォルダにあるhgfonts.addを、$user.mapの 場合と同様にして開きます。そして、hgfonts.addの内容をすべて$user.mapに コピーします。(もともとある記述の後ろのほうに、追加することになります。といっても、前の記述は単なるコメント行ですが。)あとはこれを保存してできあがりです。

tfm ファイルのコピー

解凍してできたJIS フォルダ内の 44 個の TFM ファイルを、min10.tfm とか goth10.tfm が入っている日本語の TFM ファイルのフォルダにコピーします。私 の場合は、

C:\usr\local\share\texmf\fonts\tfm\ptex

にコピーしました。

なお、別解として、jis.tfmをパッケージ内のTFMファイルに直してコピーし、 それをC:\usr\local\share\texmf\fonts\tfm\ptexにコピーする方法もあります。 (ご指摘を受けましたが、縦書きフォント用にはjis-v.tfmを割り当てた方がいいようです。これについては、私も色々実験してみます。)

dviout での設定

dviout for Windowsの[Option] -> [Setup Parameters... Ctrl+\]の[Font2]タブでftt:の設定を行います。ftt:のボタンを 押すと、map\ttfonts.mapにしていいかどうか聞かれますので、「はい」と答えます。 (ttfonts.mapには、map\$user.mapからも設定を読み込むように書かれているので、 それで問題ありません。)

それから、そこの [Flush] -> [Save] -> [適用] -> [OK] のボタンを順番に押します。この後で、 Option -> Setup Parameters... -> REGISTRY にて ttf の項目に、+記号が表示されていることを確かめておきます。 普通は、hgfonts.txt の通り、[All Set] -> [Save] -> [適用] -> [OK] のボタ ンを順番に押して、すべてのパラメータを読み込んでおくのが良いでしょう。 (私の環境では、総てに+記号がついていました。)

あとは、必要があれば、PKフォントの設定に加えて tfmファイルと vfファイ ルの設定を行います。ただし、私の環境では、特に設定する必要はなかったよう です。(それで実際うまくいってますし。)

以上でインストールは終わりです。

使い方

hgfonts.txt に丁寧な解説がありますので詳しい説明はこれに譲りますが、プリアンブルに

\usepackage{hgfonts}

と書いた上で、たとえば文書全体を「HG丸ゴシックM-PRO」にしたい場合は、 本文の一番最初に

\mgfamily 本文は長く続くので、それはそれは・・・

のように使います。出力例を下に示します。

「HG丸ゴシックM-PRO」出力例

一部分だけフォントを、たとえば「HG行書体」に変えたいときは、

\mgfamily 本文は{\gufamily 長く}続くので、それはそれは・・・

のように書いていきます。なお、命令名の語尾の"family"を抜い て語頭に"text"を付けて

\mgfamily 本文は\textgu{長く} 続くので、それはそれは・・・

のように命令型として使うことも出来ます。下にそれらの出力例を示します。

部分的に「HG行書体」に変えた例

斜体にしたい場合は\slshapeを使います。ここ では「長く」の文字を斜体にしています。

\mgfamily 本文は\textgu{\slshape{長く} } 続くので、それはそれは・・・

さて、この方法を覚えると、今度は見出し部分にHGフォントを使いたくなる かもしれません。まずは、次のようにプリアンブルに書いてみてください。(こ こでは\sofamilyで「HG創英角ポップ体」を使っていますが、この\sofamilyを任 意のフォントの命令に変えれば好きなhgfontsで使えるフォントで使えます。さ らに、半角英数字を\sffamilyにしています。これも\rmfamily等、お好きなもの に変えます。)ただ し、使っているクラスファイル(jarticleかjsarticleか)で、プリアンブルに コピーして使うべき文字列は違います。

\documentclassでjarticleを使っている場合

次をコピーして、フォントに合わせて改変してください。

\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
   {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
   {.5\Cvs \@plus.3\Cdp}%
   {\reset@font\Large\sffamily\sofamily}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
   {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
   {.5\Cvs \@plus.3\Cdp}%
   {\reset@font\large\sffamily\sofamily}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
   {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
   {.5\Cvs \@plus.3\Cdp}%
   {\reset@font\normalsize\sffamily\sofamily}}
\renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
   {3.25ex \@plus 1ex \@minus .2ex}%
   {-1em}%
   {\reset@font\normalsize\sffamily\sofamily}}
\renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
   {3.25ex \@plus 1ex \@minus .2ex}%
   {-1em}%
   {\reset@font\normalsize\sffamily\sofamily}}
\renewcommand*{\l@part}[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{\@secpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \begingroup
    \parindent\z@\rightskip\@pnumwidth
    \parfillskip-\@pnumwidth
    {\leavevmode\large\sffamily\sofamily
     \setlength\@lnumwidth{4zw}%
     #1\hfil\nobreak
     \hbox to\@pnumwidth{\hss#2}}\par
    \nobreak
    \if@compatibility
    \global\@nobreaktrue
    \everypar{\global\@nobreakfalse\everypar{}}%
    \fi
     \endgroup
  \fi}
\renewcommand*{\l@section}[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty{\@secpenalty}%
    \addvspace{1.0em \@plus\p@}%
    \begingroup
      \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip
      \leavevmode\sffamily\sofamily
      \setlength\@lnumwidth{1.5em}%
      \advance\leftskip\@lnumwidth \hskip-\leftskip
      #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
    \endgroup
  \fi}
\renewcommand*{\l@subsection}   {\@dottedtocline{2}{1.5em}{2.3em}}
\renewcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}}
\renewcommand*{\l@paragraph}    {\@dottedtocline{4}{7.0em}{4.1em}}
\renewcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}}
\def\@dottedtocline#1#2#3#4#5{%
  \ifnum #1>\c@tocdepth \else
    \vskip\toclineskip \@plus.2\p@
    {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent #2\relax\@afterindenttrue
     \interlinepenalty\@M
     \leavevmode\sffamily\sofamily
     \@lnumwidth #3\relax
     \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
     {#4}\nobreak
     \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}%
     \hfill\nobreak
     \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}%
     \par}%
  \fi}

\makeatother
 
\documentclassでjsarticleを使っている場合

次をコピーして、フォントに合わせて改変してください。

\makeatletter
\if@twocolumn
  \renewcommand{\section}{%
    \@startsection{section}{1}{\z@}%
    {0.6\Cvs}{0.4\Cvs}%
    {\sffamily\sofamily\large\@secapp\hskip\xkanjiskip\relax}%
}
\else
  \renewcommand{\section}{%
\@startsection{section}{1}{\z@}%
    {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ
    {.5\Cvs \@plus.3\Cdp}% 後アキ
    {\sffamily\sofamily\Large\@secapp\hskip\xkanjiskip\relax}%
}
\fi
\if@twocolumn
  \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
    {\z@}{\z@}%
    {\sffamily\sofamily\normalsize}}
\else
  \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
    {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ
    {.5\Cvs \@plus.3\Cdp}% 後アキ
    {\sffamily\sofamily\large}}
\fi
\if@twocolumn
  \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
    {\z@}{\z@}%
    {\sffamily\sofamily\normalsize}}
\else
  \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
    {1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
    {.5\Cvs \@plus.3\Cdp}%
    {\sffamily\sofamily\normalsize}}
\fi
\if@twocolumn
  \renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
    {\z@}{-1zw}% 改行せず 1zw のアキ
    {\sffamily\sofamily\normalsize ■}}
\else
  \renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
    {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
    {-1zw}% 改行せず 1zw のアキ
    {\sffamily\sofamily\normalsize ■}}
\fi
\renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}%
   {\z@}{-1zw}%
   {\sffamily\sofamily\normalsize }}
\renewcommand*{\l@section}[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty{\@secpenalty}%
    \addvspace{1.0em \@plus\p@}%
    \begingroup
      \parindent\z@
      \rightskip\@tocrmarg
      \parfillskip-\rightskip
      \leavevmode\sffamily\sofamily
      \setlength\@lnumwidth{1.5em}%
      \advance\leftskip\@lnumwidth \hskip-\leftskip
      #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
    \endgroup
  \fi}
\renewcommand*{\l@subsection}   {\@dottedtocline{2}{1.5em}{2.3em}}
\renewcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}}
\renewcommand*{\l@paragraph}    {\@dottedtocline{4}{7.0em}{4.1em}}
\renewcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}}
\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
  \vskip \z@ \@plus.2\p@
  {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
    \parindent #2\relax\@afterindenttrue
   \interlinepenalty\@M
   \leavevmode\sffamily\sofamily
   \@lnumwidth #3\relax
   \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip
    {#4}\nobreak
    \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
       mu$}\hfill \nobreak\hb@xt@\@pnumwidth{%
         \hfil\sffamily \normalcolor #5}\par}\fi}
\makeatother

なお、見出し番号は欧文フォントで使われる半角英数字が使われていて、HG フォントの半角英数字を使うには、さらに一工夫を要しそうです。いい方法が見 つかったらお知らせします。ひとまず、

\section*{はじめに}

のように、番号なしの見出しで用いる方がよさそうです。その場合は \section*の直後に\addcontentslineを用います。具体例を挙げると、

\section*{はじめに}
\addcontentsline{toc}{section}{はじめに}

のように書きます。見出しが\sectionでない場合はsectionをsubsectionや subsubsectionと変えていきます。見出しの内容は一番最後に書きます。

HGフォントの電子文書での利用

この内容を実行するためには最新の角藤版pTeXシステムがインストー ルされていることが前提です。

platex --version

を実行して、"Web2C"のバージョンが7.5.5以降で無い場合(たとえば "Web2C 7.3.3"とかの場合)は、最新版に丸ごとアップデートしてくだ さい。)

記述に不十分な箇所は、皆様からのご指摘で修正していますが、今なお 設定に間違いがあるかもしれません。気づいた方は yas.axis@ma.mni.ne.jp までご連絡ください。


さて、苦労しながらも、HGフォントのdvioutでの表示まで出来たと思います。 これを印刷して文書を手渡せば、HGフォントの多様な書体が、十分な効果を発揮 してくれることでしょう。しかし、まだ1つ足りないことがあります。 まだ、HGフォントが電子文書として生かせる状態ではないのです。ここでは、HG フォントを電子文書に利用できるようにする設定方法を例にして、多書体をPDF に埋め込む方法を示そうと思います。(ただし、「設定の理由」については必ず しも示せていません。これは筆者の理解不足によるものです。)

「電子文書」にすれば、文書をインターネット上(正確にはWeb サーバー上) で、不特定多数に文書を配布することが出来ます。「電子文書」と大げさに言わなくとも、インターネットやメールを介して自 分の文書を手渡したいときがあるでしょう。フロッピーディスクやCD-ROMで手渡 す場合も考えられます。こうしたとき、DVI形式やPS形式では、相手の環境にソ フトがインストールされていないと読み込むことが出来ず、相手にインストール 方法を教える必要が出てきてしまいます。そこで、PDFと呼ばれ るAcrobat Readerで読み込む形式にする必要があります。ただし、TeX文書をPDFに変換するさいにAcrobat(2万円以上するソフト ですね)は、個人レベル であれば、必ずしも必要ありません。dvipdfm(の日本語版)というフリーソフ トを使えば、DVIファイルを高い品質でPDFに変換することが可能なのです。(以下、 詳細は 「LaTeX 文書を電子文書として公開する方法」をご覧 ください。)

さて、なぜ「電子文書として生かせる状態でない」のでしょうか。それは、 相手のコンピュータ環境にHGフォントがインストールされているとは限らないた めです。そのため、相手のPCでもきちんとHGフォントを表示させるためには、「フォントの埋め込み」という処理が必要になります。

このdvipdfm には、dvipdfmのcjk版(角藤版ではdvipdfmx.exe)が含まれています。それで何が出来るか といいますと、今述べてきたような「フォントの埋め込み」 が出来るようになるのです。これは、フォントをPDFファイルにいわば「くっつ けてしまう」ことにより、相手のコンピュータ環境にフォントがインストールさ れていなくても、代わりのフォントが使われることなく、 文書の作成者の意図したフォントで文書を表示されることが出 来るようになる仕組みです。

論より証拠、HGフォントのインストールされていない筆者のLinux環境の Acrobat Reader 4.0で、見 事HGフォントを表示できた画像を下に示します。目次に赤い「HG創英角ポップ体」 が表示されてますね。この後、試しに印刷し ても、きちんとHGフォントが印刷されました。(一部文字が表示されてない箇所 がありますが、理由は後で説明します。HGフォントだから、というわけではあり ません。また、xpdfの場合は埋め込まれたフォント、しおり、アノテーション を表示しません。)

Linux MLD上にてHGフォントを表示

フォントが埋め込まれているかどうかは、[ファイル(F)] -> [文書のプロパティ(D)] -> [フォン ト(F)... Ctrl + Alt + F]とたどって表示されるウィンドウで確認できます。 dvipdfmx での(デフォルトでの)変換だと、MS-Gothic や MS-Mincho の「実際のフォン ト」欄が”埋め込みサブ セット”となっており、フォントが埋め込まれていることが分かると思います。 下に、埋め込まれた場合の「フォント情報」を示します。上がWindows, 下が Linux。Linuxのは英語版です。(「実際のフォント」(Used font)の項目が「埋 め込みサブセット」(Embedded Subset)となっているのがお分かりいただけるで しょう。埋め込まれていない場合は、ここに代わりに使っているフォントが表示 されます。)

フォント情報(Windows)

フォント情報(Linux)

では、DVIPDFM-W32.txt の記述をもとに、私の設定例を示してみます。必要な いとは思いますが、念のた め、texmf以下のバックアップを取って置いてください。フォルダをコピーして "texmfold"とでもしておけばいいでしょう。なお、texmf フォルダがデフォルト、つまりC:\usr\local\shareの中にあると仮定 して話を進めます。TeXのインストール先が違う場合は、適宜読み替えてくださ い。

さて、具体的に設定を行いたいと思います。HG フォントはTrue Typeフォン トと呼ばれるフォントの一種です。したがって、[TrueType フォントの埋め込み法] 以下が参考になるわけです。なお、ここからの作業はDVIPDFM-W32.txtと見比べ ながら行ってください。

(なお、私の環境にインストールされているHGフォントの設定のみをしていま す。同様の処理で、Dyna fontなどでも出来ると思いますが、「成功例」を確認 していませんので、ここにはあえて書きません。堀田先生のサンプルでフォント の埋め込みをしようとすると失敗しますので、残りのフォントの部分を自分で 記述するか、ここの例で設定したフォントのみを使ったTeX文書で試してみてく ださい。)

ここで、いきなりこの文書に書いてないことをやらかします。HGフォントのtfm ファイルは先ほどインストールしました。そこで、直接HGフォントのtfmファイ ルからVirtual Font (vf)とdvipsフォルダに入れるtfmを得るべく、(2)から始め てしまいます。なぜなら、この方法がうまくいけば、HGフォントのコマンドでの 参照方法を変える必要がなくなり楽だからというのと、直感的に正しそうな気が したからです・・・。

(2)の通りに、C:\usr\local\share\texmf\fonts\vf\ptex にjextraというフォ ルダを作り、そこに移動します。具体的には、MS-DOSプロンプト(コマンドプロ ンプト)で次を実行します。

mkdir C:\usr\local\share\texmf\fonts\vf\ptex\jextra
cd C:\usr\local\share\texmf\fonts\vf\ptex\jextra

フォルダを作成する作業は、マウスで行ってもかまいません。

その上で、根性で次のコマンドを実行し続けます。(dvipsフォルダに入れるtfmフォントの名前は、とりあえず横書きフォント の場合は語頭にpsを、縦書きフォントの場合は語頭のtと2番目の文字の間にpsを 入れて名づけてみました。) ただし、ここではHGフォ ントのみを選んで実行しています。ダイナフォントを持っている方は、同じ要領 で実行します。うまくいけば、空行を出力し、メッセージを一切表示せずにプロ ンプトが出てくると思います。(コマンドの量は多いので、これをコピーして拡張 子をbatとして保存し、バッチファイルを作った上で、まとめて実行するのもい いかもしれません。ただし、エラーメッセージが仮に出たとしても、最後まで実 行してしまうので、choiceなどを使って、適当な分岐処理をつけたほうがいいか もしれません。)

makejvf hggote pshggote
makejvf hggoteo pshggoteo
makejvf thggote tpshggote
makejvf thggoteo tpshggoteo
makejvf hggotm pshggotm
makejvf hggotmo pshggotmo
makejvf thggotm tpshggotm
makejvf thggotmo tpshggotmo
makejvf hggtep pshggtep
makejvf hggtepo pshggtepo
makejvf thggtep tpshggtep
makejvf thggtepo tpshggtepo
makejvf hgmgtm pshgmgtm
makejvf hgmgtmo pshgmgtmo
makejvf thgmgtm tpshgmgtm
makejvf thgmgtmo tpshgmgtmo
makejvf rcgyo psrcgyo
makejvf rcgyoo psrcgyoo
makejvf trcgyo tpsrcgyo
makejvf trcgyoo tpsrcgyoo
makejvf sepopk pssepopk
makejvf sepopko pssepopko
makejvf tsepopk tpssepopk
makejvf tsepopko tpssepopko
makejvf hgminb pshgminb
makejvf hgminbo pshgminbo
makejvf thgminb tpshgminb
makejvf thgminbo tpshgminbo
makejvf hgmine pshgmine
makejvf hgmineo pshgmineo
makejvf thgmine tpshgmine
makejvf thgmineo tpshgmineo

1つ1つコマンドを入力して「面倒だ」と感じた方は、これを機にバッチファ イルの作り方を覚えましょう。(といいつつ、私も普通にコマンド入力であった が。ちょっとコマンド実行が怖かったですからね。)

これで、vfとtfmが生成されたので、vfを残してtfmを C:\usr\local\share\texmf\fonts\tfm\dvips\HG に移動します。HGフォ ルダは新たに作ります。

・・・次も、フォントの原理をあまり理解していない私なりの設定ですが、 C:\usr\local\share\texmf\fonts\map\dvipdfm\base にあるcid-x.map に次を追加しま す。(これは、私の環境にインストールされているHGフォントの分のみを記述し ました。)

% HG fonts
psrcgyo H :0:HGRGY
psrcgyoo H :0:HGRGY -s 0.167
tpsrcgyo V :0:HGRGY
tpsrcgyoo V :0:HGRGY -s 0.167

pssepopk H :0:HGRPP1
pssepopko H :0:HGRPP1 -s 0.167
tpssepopk V :0:HGRPP1
tpssepopko V :0:HGRPP1 -s 0.167

pshggotm H :0:HGRGM
pshggotmo H :0:HGRGM -s 0.167
tpshggotm V :0:HGRGM
tpshggotmo V :0:HGRGM -s 0.167

pshggote H :0:HGRGE
pshggoteo H :0:HGRGE -s 0.167
tpshggote V :0:HGRGE
tpshggoteo V :0:HGRGE -s 0.167

pshgmgtm H :0:HGRSMP
pshgmgtmo H :0:HGRSMP -s 0.167
tpshgmgtm V :0:HGRSMP
tpshgmgtmo V :0:HGRSMP -s 0.167

pshgsksm H :0:HGRSKP
pshgsksmo H :0:HGRSKP -s 0.167
tpshgsksm V :0:HGRSKP
tpshgsksmo V :0:HGRSKP -s 0.167

1番左は C:\usr\local\share\texmf\fonts\tfm\dvips\HG に移動したtfm ファイル名です。1番はっきりしないのは、2つのセミコロンで挟まれた数字、す なわちフォントコレクションのフレーム番号ですが、とりあえずすべて0にして 様子を見ることにします。"-s 0.167"と書かれた行がありますが、文字を斜体にするために記述したものです。sオプションを除いて1番右に書かれているものは、フォントファイル名です。Windows Meでは、 [スタート] -> [設定 (S)] -> [コントロール パネル] -> フォント 、もしくはC:\WINDOWS\FONTS で表示されるフォントディレクトリの中身で、フォ ントのアイコンの下に表示される名称はフォントそのものの名称になっています。 (他のバージョンのOSでも、日本語や空白文字があれば、ほぼその可能性が高い でしょう。)これはフォントファイルの名前ではありませんので、注意してくだ さい。(たとえば、下の図では、「HG丸ゴシックM-PRO」はフォント名(書体名) であって、フォントファイル名ではありません。)

フォントフォルダ

フォントファイルを右クリックして出てくるプロパティに「...のプロパティ」(... は任意)とありますので、それがフォントファイル名となります。(下の図の場 合はHGRPP1.TTC となります。)チェックした ら、cid-x.map の1番右にそれを記述すればよいです。拡張子はあってもなくて もかまいません。

フォントのプロパティ

では、DVIファイルをdvipdfmxコマンドで、フォントの埋め込まれたPDFに変 換しましょう。ファイル名をfoo.dviとすると、

dvipdfmx foo

で変換できます。成功(たぶん)時のメッセージは、たとえば次の通りです。 (通常通り記述される場合もあります。)

[1][2][3
** NOTICE: This document contains `Preview & Print' only licensed font **
][4
** NOTICE: This document contains `Preview & Print' only licensed font **
][5][6][7][8][9][10][11][12][13][14][15]
438085 bytes written

"NOTICE"の部分で、「この文書にはプレビューと印刷のみの使用 を許可したフォントが含まれてます」と書いてありますので、これが出たらフォ ントの埋め込みは成功したと見ていいでしょう。実際にPDFを開き[ファイル(F)] -> [文書のプロパティ(D)] -> [フォン ト(F)... Ctrl + Alt + F]とたどって表示されるウィンドウで、「実際のフォン ト」欄が”埋め込みサブセット”となっていたら、ほぼ成功したと見ていいでしょ う。ただし、たまに表示されないこともあります。その場合も必ずしも気にする 必要は無いでしょう。

また、おそらく目次にHGフォントを使った場合だと思いますが、日本語しおりの語頭に"JY1JY1"の文字が入ってしまいま す。これを解決する方法は、わかりません。しばらくは

\usepackage[dvipdfm,bookmarks=false]{hyperref}

のように、しおりを出さないオプション設定にしておいた方がよさそうです。

拙作fttfパッケージを用いた方法

拙作のfttfパッケージを用いると、

が使えるようになります。ただし、任意のTrueTypeフォントを扱う方法で説明したとおりのことをやっただけで、メトリック(文字の組み方)の調整などは一切していません。堀田先生のHGfontsパッケージとまったく同じ命令を使っていますので、HGfontsパッケージを用いた既存のLaTeX文書からほぼそのまま移行できるかもしれないのは安心です。質の保証がなくてもTrueTypeフォントの多書体を扱いたい方はfttfパッケージをダウンロードしてみてください。

  目次に戻る

This document is dedicated to the Public Domain! --- この著作権を放棄した文書は「みなさんのもの」です!
This web page is written by Yasuhiro Otomo.
If you have any question about this page, send e-mail to me --- ご質問は大友まで。
You can link to this web page freely! --- リンクはご自由にどうぞ!
This web page typed on xyzzy 0.2.2.234