MkLinuxにTeXをインストールしよう

慶應義塾大学 理工学部 物理情報工学科
内山 孝憲
30-Apr-97作成, 08-Sep-97 更新


おしらせ


目次


準備

TeX以前に整える環境

日本語環境が整っていなかったら,MkLinuxのメーリングリストの過去のメールなどを参照して用意しましょう.

ASCII pTeX2.1.4関連プログラムの入手

MkLinux用バイナリの一次配布元はftp://uat.thx.inst.keio.ac.jp/pub/mklinuxです.配布されているバイナリには,pLaTeX2e, LaTeX209ベースの旧版, プレビュアxdvi, プリンタドライバdvipsおよびフリーのZeit形式フォントminchoとasiya24が含まれています.入手しなければならないものは次のものです.

Ghostscriptの入手(EPSを差し込んだ文書を表示する)

EPSを取り込んだ文書を表示するためには, Ghostscriptが必要です.Ghostscriptは,PostScript互換のインタプリタです.日本語化パッチをあててmakeしたバイナリを入手してください.大阪大学の安留さんがmakeされたバイナリgs4.03+vflib.bin.tar.gzを入手してください.

lprの入手

lprコマンドで印刷したり,dvipsで印刷するためには,lprが必要です.MkArchive,例えばftp://ftp.sunet.se/pub/os/Linux/mklinux/mkarchive/sys/にありますから,印刷する場合には,あらかじめlprをインストールしてください./etc/printcapの記述方法は,プリンタ付属のマニュアルをお読みください(LaserWriter16/600PS-Jの場合には,SUN-OSなどのOSの記述例があります.MkLinuxでは,SUN-OS 4.1.Xの設定と同様で印刷できます).


インストール

/usr/local/lib/VFlib.a
/usr/local/lib/libVFlib.a
/usr/local/include/VF.h
/usr/local/share/vflib/vfontcap
/usr/local/share/vflib/zeit/asiya24.vf1
/usr/local/share/vflib/zeit/asiya24.vf2
/usr/local/share/vflib/zeit/mincho.vf1
/usr/local/share/vflib/zeit/mincho.vf2
/usr/local/etc/ttindex
/usr/local/etc/bdfindex

以上のファイルが展開される.

/usr/local/binに次のものが展開される.

/usr/local/bin/inimf     METAFONTのベースファイルをダンプ
/usr/local/bin/iniptex   pTeXのフォーマットファイルをダンプ 
/usr/local/bin/initex    欧文TeXのフォーマットファイルをダンプ
/usr/local/bin/vftovp
/usr/local/bin/virmf     METAFONTのプログラム 
/usr/local/bin/virptex   pTeXのプログラム 
/usr/local/bin/virtex    欧文TeXのプログラム
/usr/local/bin/vptovf
/usr/local/bin/MakeTeXPK xdvi, dvipsで呼ばれるPKフォント作成のスクリプト
/usr/local/bin/afm2tfm
/usr/local/bin/bibtex    欧文bibTeX
/usr/local/bin/cmmf      Computer Modernのフォントを作る
/usr/local/bin/dvicopy
/usr/local/bin/dvips     DVI→日本語PostScript
/usr/local/bin/dvitype   
/usr/local/bin/gftodvi   
/usr/local/bin/gftopk    GF形式のフォントをPK
/usr/local/bin/gftype    
/usr/local/bin/jlatex    LaTeX209ベース(旧版の日本語LaTeX)のタイプセット
/usr/local/bin/kpsewhich スタイルやフォントのパスを表示
/usr/local/bin/mendex    索引作成 
/usr/local/bin/mf        mf.baseを読み込むリンク
/usr/local/bin/mft
/usr/local/bin/patgen
/usr/local/bin/pdvitype
/usr/local/bin/pktogf
/usr/local/bin/pktype
/usr/local/bin/platex   pLaTeX2eのタイプセット
/usr/local/bin/pltotf
/usr/local/bin/pooltype
/usr/local/bin/ptex
/usr/local/bin/tangle
/usr/local/bin/tex      欧文plain TeX
/usr/local/bin/tftopl   
/usr/local/bin/weave    
/usr/local/bin/xdvi     プレビュア

/usr/local/libに次のものが展開される.

/usr/local/lib/texmf/tex     スタイルファイル,マクロ
/usr/local/lib/texmf/bibtex  bibtexに必要なファイル
/usr/local/lib/texmf/fonts   TFMとフォントのソース
/usr/local/lib/texmf/mf      METAFONTで使用する共通ファイル
/usr/local/lib/texmf/ini     フォーマットファイル,ベースファイル
/usr/local/lib/texmf/dvips   dvipsが読み込むファイル
/usr/local/lib/texmf/xdvi    xdviで多書体使用するためのvfontmap(VFlibのvfontcapではない)

/usr/X11/lib/X11/app-defaults/XDviは,xdviのリソース.

%cd /usr/local/lib/texmf/fonts/tmp
%chmod 777 ./



使用方法

\documentclassで始まる文書
%platex foo.tex
\documentstyleで始まる文書
%jlatex foo.tex
上記2つで始まらない文書.文書の最後が\endになっている文書.
%ptex foo.tex
%xdvi foo.dvi
ここではじめて実行するときには,300dpiのPKフォントがないので,
/usr/local/lib/texmf/fonts/tmp/pk/cx にMakeTeXPKのスクリプトで300dpiのPKフォントが
作られる.
%dvips foo.dvi
ここではじめて実行するときには,600dpiのPKフォントがないので,
/usr/local/lib/texmf/fonts/tmp/pk/ljfour にMakeTeXPKのスクリプトで600dpiのPKフォントが
作られる.


関連情報

スタイルファイルは,/usr/local/lib/texmf/texの下に置く.検索される順番は,/usr/local/lib/texmf/web2c/texmf.cnfの記述に従う.texmf.cnfには,

latex209_inputs = .:$TEXMF/tex/latex209//:$TEXMF/tex//
latex2e_inputs = .:$TEXMF/tex/latex2e//:$TEXMF/tex//
platex209_inputs = .:$TEXMF/tex/platex209//:$TEXMF/tex/latex209//:$TEXMF/tex//
platex2e_inputs = .:$TEXMF/tex/platex2e//:$TEXMF/tex/latex2e//:$TEXMF/tex//
TEXINPUTS.latex209 = $latex209_inputs
TEXINPUTS.latex = $latex2e_inputs
TEXINPUTS.platex = $platex2e_inputs
TEXINPUTS.jlatex = $platex209_inputs

のように記述されている.これは,プログラム名がplatexであれば,TEXINPUTS.platexに指定されている内容に従い,$platex2e_inputsに設定されている順番で検索する.つまり,カレントディレクトリ→/usr/local/lib/texmf/tex/platex2eの以下の全てのディレクトリ→/usr/local/lib/texmf/tex/latex2eの以下の全てのディレクトリ→/usr/local/lib/texmf/tex以下の全てのディレクトリの順に検索する.

//は,その部分にいくつのディレクトリがあってもよいことを意味し,その間のディレクトリは全て再帰的に検索される.

追加するスタイルファイルがLaTeX2e用なのかLaTeX209用なのかと確かめて置くこと.

pLaTeX2eには,LaTeX209互換モードがあるので,特別なスタイルファイルを使っていなければ,ほぼ互換モードでタイプセットできる.しかし,旧版の日本語LaTeXに固有の変数を操作したり,多数のフォントを使用するマクロの場合には,互換モードではタイプセットできない.そこで,virptexだけpTeX2.1.4のものを使い,マクロやスタイルファイルには旧版の日本語LaTeXのものを使ってその問題を回避する.

/usr/local/lib/texmf/web2c/texmf.cnfの

platex209_inputs = .:$TEXMF/tex/platex209//:$TEXMF/tex/latex209//:$TEXMF/tex//
TEXINPUTS.jlatex = $platex209_inputs

がキーポイント.jlatexコマンドでは,$platex209_inputsに設定されている順番で検索する.つまり,カレントディレクトリ→/usr/local/lib/texmf/tex/platex209以下の全てのディレクトリ→/usr/local/lib/tex/latex209以下の全てのディレクトリ→/usr/local/lib/texm/tex以下の全てのディレクトリの順に検索する.

/usr/local/lib/texmf/tex/platex209には,旧版のマクロとスタイルファイルが置かれている.また,旧版のjlplain.texをiniptexでダンプして作成したフォーマットファイルが/usr/local/lib/texmf/ini/jlplain.fmtであり,jlatex.fmtがシンボリックリンクしてある.一方,/usr/local/bin/jlatexは,virptexにシンボリックリンクしてあるので,プログラム名と同じフォーマットファイルを読み込む仕様にしたがって,jlatex foo.texは,virptex "&jlatex.fmt foo.tex",つまりvirptex "&jlplain.fmt foo.tex"と等価になるのである.

/usr/local/lib/texmf/fonts 以下に分類してフォントを置く.例えば,/usr/local/lib/texmf/fonts/public/cm には,pk, src, tfm のディレクトリがある.

pkには,本来,

pk-+-cx-+-cmr10.300pk
   |    +-cmr12.300pk
   |          :
   +jlfour-+-cmr10.600pk
              :

のように,METAFONT の mode 毎に作成された PK 形式のフォントが置かれる(MakeTeXPK でつくられたものは, /usr/local/lib/texmf/fonts/tmp/ に同様に置かれる).

PKフォントが上記のようにおかれるのは,/usr/local/lib/texmf/web2c/texmf.cnfに

PKFONTS = .:$TEXMF/fonts//pk/$MAKETEX_MODE

と記述されているから.PK は,カレント→/usr/local/lib/texmf/fonts 以下のディレクトリでディレクトリ名の最後が pk/(METAFONT で作成したときの mode 名)になっているものが検索される.//には,その部分にいくつのディレクトリがあってもよいことを意味し,再帰的に検索することを思い出して欲しい.

srcには,METAFONTでフォントをつくるためのフォントのソースが置かれる.xdviやdvipsがMakeTeXPKのスクリプトを呼び出してフォントを生成する.METAFONTを単体で使用するときには,

%virmf "&plain \mode=cx; \mag=\magstep0; input cmr10.mf"

のように実行する.ここでは,cmr10のフォントをCanonCXのパラメータ(300dpi)で大きさがmagstep0 (magstep1なら1.2倍,magstep2なら1.2の2乗倍...,\mag=0.9や\mag=330/300といった指定もOK).

tfmには,TFM (TeX Font Metric)ファイルが置かれる.TFMには,文字の幅,高さなどの情報が記述されている.

vfのディレクトリをもつフォントもある.これは,モリサワやAdobeのフォントでMETAFONT用のソースが提供されていないフォントである.vfはvirtual fontのことで,VFlibとは全く関係ない

METAFONTのモードは,多くは/usr/local/lib/texmf/mf/modes.mfに記述されている.modes.mf中のmode_defで定義されているものを指定できる.modes.mfでは,それぞれのエンジンの特性に合わせて,黒さの補正などが記述されている.これらの値は経験的に決定されている(印刷して適切か否か判断する).

cxは,CanonCXエンジンのことで,300dpiのCanon製エンジンの場合に指定される.ljfourは,HPのLaserJet4の600dpiのエンジンである.AppleのLaserWriter16/600PS-Jなら,canonexを使った方がよいだろう.canonexは,LaserWriterPro630のパラメータであり,LaserWriterPro630のカートリッジはLaserWriter16/600PS-Jのものと同じであるからである(もっとも,素人目にはljfourとcanonexの違いは分からないだろう).

xdviやdvipsで解像度を指定すると(コマンドラインのオプションなら,xdviは-S,dvipsは-D),その解像度に応じたPKフォントが必要になる.MakeTeXPKに解像度を指定するだけで適切なフォントを生成させるには,MakeTeXPKを修正する必要がある.

MakeTeXPKの終わり近くに,

  # If an explicit mode is not supplied, try to guess. You can get a
  # list of extant modes from ftp.cs.umb.edu:pub/tex/modes.mf.
  if test -z "$MODE" || test "$MODE" = default; then
    case "$BDPI" in
      85) MODE=sun;;
     300) MODE=cx;;
     600) MODE=ljfour;;
    1270) MODE=linolo;;

のように記述されているところがある.これを

  # If an explicit mode is not supplied, try to guess. You can get a
  # list of extant modes from ftp.cs.umb.edu:pub/tex/modes.mf.
  if test -z "$MODE" || test "$MODE" = default; then
    case "$BDPI" in
      85) MODE=sun;;
     300) MODE=cx;;
     360) MODE=canonbjc;;
     600) MODE=ljfour;;
    1270) MODE=linolo;;

のように修正すると,360dpiを指定することによって,canonbjcのパラメータでPKフォントが生成されるようになる.

ここに記述できるものは,METAFONTのモードとして定義されているもののみである.

modes.mfに定義されていないプリンタのフォントを作ることはできない.選択肢は,

  1. 解像度が同じ他機種用のフォントで代用する
  2. NetNewsなどに投稿されたパラメータを使用する
  3. 特性が似ていると思うパラメータを元に試行錯誤で決める

程度である.

NetNewsに,沖データのプリンタ,Microline801PS用のパラメータとして,

% From {\tt sakai@icpcs41.icpc.fukui-u.ac.jp};
mode_def OkiMicroline =
  proofing:=0;                   % no, we're not making proofs
  fontmaking:=1;                 % yes, we are making a font
  tracingtitles:=0;              % no, don't show titles at all
  pixels_per_inch:=400;          % that's 400 pixel per inch
  blacker:=.65;                  % make pens a bit blacker
  fillin:=.2;                    % compensate for diagonal fillin
  o_correction:=.4;              % but don't overshoot as much
  enddef;
oki := OkiMicroline;

が投稿されたことがある.

また,320dpiのLEDアレイのエンジンをもつNECのプリンタのパラメータには,CanonCXのパラメータの解像度のみを変更した

% NEC PC-PR602PS/3000PS mode: (same as Canon CX but pixels_per_inch)
mode_def NECPS =
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=320;          % the new Canon engine at 300/inch
 blacker:=0;                    % Canon engine is black enough
 fillin:=.2;                    % very small compensation for diagonal fillin
 o_correction:=.8;              % but don't overshoot as much
enddef;

を使用したこともある(特性が似ているとは思えないが,解像度が近くて特性も他のものよりは近いかもしれない).

これらを,ファイルlocal.mfに記述する.

次に,

input plain
input local
input modes

と記述したファイルplain.iniを作成する.

このplain.iniをつかって,plain.baseのベースファイルをダンプしなおす.

inimf plain.ini dump

plain.baseが生成される.TeXと異なり,dumpの前に\記号がいらないことに注意する.

plain.baseを/usr/local/lib/texmf/iniにコピーする.

mf.baseをplain.baseにシンボリックリンクする.


% Default resolution.
D 600
  ^^^の数値を変更する
METAFONTでフォントを生成するときのモード
% Metafont mode.  (This is completely different from the -M command-line
% option, which controls whether MakeTeXPK is invoked.)
M canonex
  ^^^^^^^CanonEXエンジンに変更した例
EPSを生成する,GhostViewで頁番号を正しく表示させる
PostScriptコメントを正しく挿入するように-Nオプションを無効にする.
% Too-smart spoolers and/or printers get confused.
% Our LJ4 gets `22 Error' (inconsistently) from the structured comments.
%N
^Nの前に%を付けてコメントアウトする.
用紙サイズA4を初期値にする
% Paper size information.  First definition is the default.
%
% If your default is a4 uncomment the following definition
% and comment out the letterSize definition.
%
% There is some redundancy in the following comments; that is to
% get things to work both on the NeXT and on other printers.
%
@ a4size 210mm 297mm
@+ %%PaperSize: a4

%@ letterSize 8.5in 11in
のようにa4のコメントを外して,Letterをコメントアウトする.

kpsewhichコマンドがどこにあるか調べるものである.

%kpsewhich cmr10.tfm
/usr/local/lib/texmf/fonts/public/cm/tfm/cmr10.tfm

みつかれば,上記のように絶対パスで場所を表示する.見つからなければ何も表示されない.

VFlibが読むファイルは

/usr/local/share/vflib/vfontcap

である.minとgothに対して,それぞれ/usr/local/share/vflib/zeit/minchoと/usr/local/share/vflib/zeit/asiya24を読むように設定されている.これらのフォントは,フリーのビットマップフォントからzeit形式のアウトラインフォントに変換されたものである.

MS-Windows用に市販されているTrueTypeフォントを利用することが技術的には可能である.ライセンス的にはできないものもあるようである.例えば,

### TRUETYPE FONT (Windows fonts)
r-microsoft-mincho|MicroSoft mincho:\
        :ft=truetype:\
        :ff=/usr/local/share/vflib/truetype/msmincho:
r-microsoft-gothic|Microsoft gothic:\
        :ft=truetype:\
        :ff=/usr/local/share/vflib/truetype/msgothic:

中略

###
### for ASCII jTeX
###

###
min|min5|min6|min7|min8|min9|min10|min12|min17|Mincho Font:\
        :fc=microsoft-mincho:
goth|goth5||goth6|goth7|goth8|goth9|goth10|goth12|goth17|Gothic Font:\
        :fc=microsoft-gothic:
tmin|tmin5|tmin6|tmin7|tmin8|tmin9|tmin10|tmin12|tmin17|Mincho Font:\
        :fc=microsoft-mincho:
tgoth|tgoth5||tgoth6|tgoth7|tgoth8|tgoth9|tgoth10|tgoth12|tgoth17|Gothic Font:\
        :fc=microsoft-gothic:

のように記述すれば,MS-WindowsのTrueTypeフォントを使用することが技術的にはできる.しかし,マイクロソフトに問い合わせるとMS-Windowsで使用して下さいと答えているようであるから,ライセンス的にはできないだろう.

Texturesという欧文のMacintosh用のTeXを販売しているBluesky Researchが,Computer Modernのtype 1形式のフォントを公開した.CTANのミラーサイトなどから入手できる(会津大のanonymous ftp serverがCTANのミラーとしては管理が行き届いているようである).

  1. cmps-macintosh.hqxを入手する.
  2. LaserWriter Utilityなどを使って,日本語PostScriptプリンタにダウンロードする.
  3. /usr/local/lib/texmf/dvips/psfonts.mapに次の内容を追記する.
-----------------------------------
cmb10           CMB10
cmbsy10         CMBSY10
cmbx10          CMBX10
cmbx12          CMBX12
cmbx5           CMBX5
cmbx6           CMBX6
cmbx7           CMBX7
cmbx8           CMBX8
cmbx9           CMBX9
cmbsl10         CMBSL10
cmbxti10        CMBXTI10
cmcsc10         CMCSC10
cmdunh10        CMDUNH10
cmex10          CMEX10
cmff10          CMFF10
cmfi10          CMFI10
cmfib8          CMFIB8
cminch          CMINCH
cmitt10         CMITT10
cmmi10          CMMI10
cmmi12          CMMI12
cmmi5           CMMI5
cmmi6           CMMI6
cmmi7           CMMI7
cmmi8           CMMI8
cmmi9           CMMI9
cmmib10         CMMIB10
cmr10           CMR10
cmr12           CMR12
cmr17           CMR17
cmr5            CMR5
cmr6            CMR6
cmr7            CMR7
cmr8            CMR8
cmr9            CMR9
cmsl10          CMSL10
cmsl12          CMSL12
cmsl8           CMSL8
cmsl9           CMSL9
cmsltt10        CMSLTT10
cmss10          CMSS10
cmss12          CMSS12
cmss17          CMSS17
cmss8           CMSS8
cmss9           CMSS9
cmssbx10        CMSSBX10
cmssdc10        CMSSDC10
cmssi10         CMSSI10
cmssi12         CMSSI12
cmssi17         CMSSI17
cmssi8          CMSSI8
cmssi9          CMSSI9
cmssq8          CMSSQ8
cmssqi8         CMSSQI8
cmsy10          CMSY10
cmsy5           CMSY5
cmsy6           CMSY6
cmsy7           CMSY7
cmsy8           CMSY8
cmsy9           CMSY9
cmtcsc10        CMTCSC10
cmtex10         CMTEX10
cmtex8          CMTEX8
cmtex9          CMTEX9
cmti10          CMTI10
cmti12          CMTI12
cmtt10          CMTT10
cmtt12          CMTT12
cmtt8           CMTT8
cmtt9           CMTT9
cmu10           CMU10
cmvtt10         CMVTT10
lasy10          LASY10
lasy5           LASY5
lasy6           LASY6
lasy7           LASY7
lasy8           LASY8
lasy9           LASY9
lasyb10         LASYB10
lcircle10       LCIRCLE10
lcirclew10      LCIRCLEW10
line10          LINE10
linew10         LINEW10
logo10          LOGO10
logo8           LOGO8
logo9           LOGO9
logobf10        LOGOBF10
logosl10        LOGOSL10
-----------------------------------

これにより,dvipsは600dpiの上記のPKフォントを生成せず,プリンタにダウンロードされているtype 1形式のフォントを使う.

ところで,config.psには

* add fontmap file
p +cmfonts.map

と追記するのみで,上記の修正内容をcmfonts.mapという名称の別ファイルに記述する方法もある.

graphics packagesを使用する.配布しているバイナリにも含まれているがインストールの作業を行う必要がある.作業方法はこちらを参照使用例もこちらを参照

準備

zcat gsftopk-1.12.tar.gz | tar xvf -

AdobeフォントのTFMの場所. //は, そのディレクトリ以下を再帰的に検索する. kpathseach に対応していないので, 途中に//を記述することはできない.

# The following should be as in TeX.
TEXFONTS_DEFAULT=.:$(TEXMF)/fonts/adobe//

インストールするパスを指定する.

# Where to put things.
BINDIR=$(TEXMF)/bin
MANDIR=$(TEXMF)/man/man1

BINDIR=/usr/local/bin
MANDIR=/usr/local/man/man1

に変更.

./configure
make
make install

でおわり.

インストール

cd /usr/local/lib/texmf/tex/latex2e/tex/packages/psnfss
make
mv 8r.emc /usr/local/lib/texmf/tex/latex2e/packages/psnfss/8r.enc
unzip lw35nfss.zip
8rpag.fd     omlpbk.fd    omspcr.fd    ot1pcr.fd    t1phv.fd     ts1ppl.fd
8rpbk.fd     omlpcr.fd    omsphv.fd    ot1phv.fd    t1pnc.fd     ts1ptm.fd
8rpcr.fd     omlphv.fd    omspnc.fd    ot1pnc.fd    t1ppl.fd     ts1pzc.fd
8rphv.fd     omlpnc.fd    omsppl.fd    ot1ppl.fd    t1ptm.fd     upsy.fd
8rpnc.fd     omlppl.fd    omsptm.fd    ot1ptm.fd    t1pzc.fd     upzd.fd
8rppl.fd     omlptm.fd    omspzc.fd    ot1ptmcm.fd  ts1pag.fd
8rptm.fd     omlptmcm.fd  omspzccm.fd  ot1pzc.fd    ts1pbk.fd
8rpzc.fd     omlpzc.fd    omxpsycm.fd  t1pag.fd     ts1pcr.fd
courier.sty  omspag.fd    ot1pag.fd    t1pbk.fd     ts1phv.fd
omlpag.fd    omspbk.fd    ot1pbk.fd    t1pcr.fd     ts1pnc.fd

/usr/local/lib/texmf/tex/latex2e/packages/psnfss

にコピーする.

config.pag  config.pnc  config.pzc  pcr.map     psnfss.map  pzd.map
config.pbk  config.ppl  config.pzd  phv.map     psy.map
config.pcr  config.psy  pag.map     pnc.map     ptm.map
config.phv  config.ptm  pbk.map     ppl.map     pzc.map

/usr/local/lib/texmf/dvips

にコピーする.

cp avantgar/* /usr/local/lib/texmf/fonts/adobe/avantgar/vf/
cp bookman/* /usr/local/lib/texmf/fonts/adobe/bookman/vf/
cp courier/* /usr/local/lib/texmf/fonts/adobe/courier/vf/
cp helvetic/* /usr/local/lib/texmf/fonts/adobe/helvetic/vf/
cp ncntrsbk/* /usr/local/lib/texmf/fonts/adobe/ncntrsbk/vf/
cp palatino/* /usr/local/lib/texmf/fonts/adobe/palatino/vf/
cp times/* /usr/local/lib/texmf/fonts/adobe/times/vf/
cp zapfchan/* /usr/local/lib/texmf/fonts/adobe/zapfchan/vf/

symbol と zapfding には何もない.

csh 系のシェルなら,

foreach a (*)
foreach? cp $a/* /usr/local/lib/texmf/fonts/adobe/$a/tfm/
foreach? end

だと簡単.

Bourne shell系のシェルなら,

for a in *; do cp $a/* /usr/local/lib/texmf/fonts/adobe/$a/tfm/; done

だと簡単.

動作確認

/usr/local/lib/texmf/tex/latex2e/packages/psnfss の test0.tex と test1.tex がサンプル. test1.tex はフォントファミリを読み込むための空きがなくなってしまうのでタイプセットできない.

latex test0
xdvi test0

始めてプレビューするときには, xdviがMakeTeXPK→gsftopk→Ghostscriptの順に呼び出して, Ghostscriptを使ってPK形式のフォントを作る. 作られたフォントは /usr/local/lib/texmf/fonts/tmp/pk/gstopkに置かれる.

きれいなフォントで印刷するためのヒント

プレビュや非PostScriptプリンタに美しく印刷するためには, Ghostscriptが利用できるフォントを美しいアウトラインフォントにする. Adobeの製品のユーザなら, Type On CallのCDを持っているだろうから, それを使おう.

Type On CallのCD-ROMのUNIXのディレクトリの部分には, PFBフォーマットのTimesなどのフォントが入っている.

それらをGhostscriptのフォントのディレクトリにコピーして, Ghostscriptのフォントを定義するファイル, Fontmapに

/Times-Roman                    (tir_____.pfb)  ;
/Times-Italic                   (tii_____.pfb)  ;
/Times-Bold                     (tib_____.pfb)  ;
/Times-BoldItalic               (tibi____.pfb)  ;

のように記述すると, 本物の Times ファミリを使うことができるようになる.

MacOSの形式でフォントファイルで持っているときには, t1utils-1.2.zip でPFAやPFB形式に変換できる.


自分でpTeXの環境をmakeしたい

自分でEPSを差し込んだ文書もプレビューする環境を整えるのでしたら,

の順にインストールするとよいでしょう.


VFlibのインストール

ディレクトリ構成

pTeX2.1.5では, /usr/local/shareがデフォルトのインストール先になる.

準備

VFlib-2.22-PL8.tar.gzを

http://www.se.hiroshima-u.ac.jp/~kakugawa/Hacks/Hacks-JIS.html

から入手する.

フォントには, Linux JEに添付されているzeit形式のフリーのフォントminchoとasiya24を使うことにする.

ftp://ftp.tut.ac.jp/Linux/JE/packages/font

から

vasiya1.tgz, vasiya2.tgz, vmincho1.tgz, vmincho2.tgz

を入手する.

ファイルの展開

zcat VFlib-2.22-PL8.tar.gz | tar xvf -
make

VFlib-2.22pl8/src/Makefileを修正する.

vfontcapを置く場所を

# VFontcap file
        VFCAP = -DDEFAULT_VFCAP=\"/usr/local/share/vflib/vfontcap\"

にする.

make

VFlib-2.22pl8/srcでmakeを実行する.

cd VFlib-2.22pl8
make

インストール

make install
/---/usr---/local---/share---/vflib-+-/vfontcap
                                    +-/zeit-+-mincho.vf1
                                            +-mincho.vf2
                                            +-asiya24.vf1
                                            +-asiya24.vf2

のような置き方にする.

mkdir /usr/local/share/vflib
mkfir /usr/local/share/vflib/zeit

/usr/local/share/vflib/zeitにvasiya24とminchoを展開する.

cd /usr/local/share/vflib/zeit
zcat vasiya1.tgz | tar xvf -
zcat vasiya2.tgz | tar xvf -
zcat vmincho1.tgz | tar xvf -
zcat vmincho2.tgz | tar xvf -

次のファイルが展開される.

asiya24.vf1 asiya24.vf2 mincho.vf1 mincho.vf2

vfontcapの雛型はVFlib-2.22pl8/vfontcap

cp vfontcap /usr/local/share/vflib/vfontcap

asiya24とminchoは, Zeit形式のフォントなので,

### ZEIT "SYOTAI CLUB" FONTS

の部分を

r-zeit-mincho|Zeit "SYOTAI CLUB" Vector Font (Mincho):\
        :ft=zeit:\
        :ff=/usr/local/share/vflib/zeit/mincho:
r-zeit-gothic|Zeit "SYOTAI CLUB" Vector Font (gothic):\
        :ft=zeit:\
        :ff=/usr/local/share/vflib/zeit/asiya:

のように修正する. 市販されている書体倶楽部のフォントではないけれども, 上記の部分に記述することにする.asiya24は丸ゴシック系のフォントであるが, フリーの角ゴシック系のアウトラインフォントがないので仕方ない.

ASCII版のTeXで利用できるように,

###
### for ASCII jTeX
###

以下の部分を次のように書き換える.

min|min5|min6|min7|min8|min9|min10|min12|min17|Mincho Font:\
        :fc=zeit-mincho:
goth|goth5||goth6|goth7|goth8|goth9|goth10|goth12|goth17|Gothic Font:\
        :fc=zeit-gothic:
tmin|tmin5|tmin6|tmin7|tmin8|tmin9|tmin10|tmin12|tmin17|Mincho Font:\
        :fc=zeit-mincho:
tgoth|tgoth5||tgoth6|tgoth7|tgoth8|tgoth9|tgoth10|tgoth12|tgoth17|Gothic Font:\
        :fc=zeit-gothic:

動作確認

テストプログラムをmakeする. テストプログラムはVFlib-2.22pl8/toolsにある.

cd VFlib-2.22pl8/tools
xmkmf -a
make

動作確認

./vftest
Initializing VFlib: OK
Opening font: OK
Getting Bitmap for 2422 ...done
Getting Bitmap for 2424 ...done
Getting Bitmap for 3026 ...done
Getting Bitmap for 3029 ...done
Getting Bitmap for 2341 ...done
Getting Bitmap for 2349 ...done
Getting Bitmap for 2522 ...done
Getting Bitmap for 2524 ...done
Getting Bitmap for 2330 ...done
Getting Bitmap for 2331 ...done

「あい愛逢AIアイ01」が表示されればOK.



Ghostscript 4.03 のインストール

インストールされる状態

/---/usr---/local---/lib---/share---/ghostscript-+-/4.03
                                                 +-/fonts

準備するもの

ghostscript-4.03.tar.gz
ghostscript-4.03gnu.tar.gz
ghostscript-4.03jpeg.tar.gz
ghostscript-4.03libpng.tar.gz
ghostscript-4.03zlib.tar.gz
ghostscript-fonts-other-4.03.tar.gz
ghostscript-fonts-std-4.03.tar.gz
gs261j10.tar.gz
gs261d13.tar.gz
gs403j13.tar.gz

http://www.jaist.ac.jp/~daisuke/Linux/gs/ghostscript/

などから入手.

Ghostscriptの一次配布サイトはこちら.

http://www.cs.wisc.edu/~ghost/

ファイルの展開

zcat ghostscript-4.03.tar.gz | tar xvf -
zcat ghostscript-4.03gnu.tar.gz | tar xvf -

gs4.03 に移動して残りのファイルを展開する.

cd gs4.03
zcat ../ghostscript-4.03zlib.tar.gz | tar xvf -
zcat ../ghostscript-4.03jpeg.tar.gz | tar xvf -
zcat ../ghostscript-4.03libpng.tar.gz | tar xvf -
zcat ../gs261j10.tar.gz | tar xvf -
zcat ../gs261d13.tar.gz | tar xvf -
zcat ../gs403j13.tar.gz | tar xvf -

make

patch -p1 < ./gs403j13.diff
ZSRCDIR=zlib-1.02

ZSRCDIR=zlib-1.0.2

に修正.

zlib の配布によるのかもしれない.

make -f unix-gcc.mak

インストール

super user になって

make -f unix-gcc.mak install
cp -r kanji /usr/local/share/ghostscript/4.03/
cd /usr/local/share/ghostscript/
zcat ghostscript-fonts-std-4.03.tar.gz | tar tvf -
zcat ghostscript-fonts-other-4.03.tar.gz | tar xvf -

動作確認

cd /usr/local/share/ghostscript/4.03/examples
gs tiger.ps
cd /usr/local/share/ghostscript/4.03/kanji
gs allkanji.ps
gs -sDEVICE=x11alpha allkanji.ps

-sDEVICE=x11alpha で表示すると, アンチエイリアシングされてきれいに表示される.

Adobe Type Manager 4.0 や Adobe Photoshop のユーザならおなじみのはず.



pTeXのインストール

基本的にtex-2.1.4.tar.gzに含まれるREADME.eucにしたがって作業すればmakeできる.

準備

http://www.ascii.co.jp/pb/ptex/index.htmlを参考にして,近くのサイトから必要なファイルを入手する.

タイプセットするためのに必要なもの

ライブラリのインストール
cd /usr/loca/lib
zcat lib-6.9.tar.gz | tar xvf -
zcat plib-euc.tar.gz | tar xvf -

ソースファイルの準備

zcat web-6.1.tar.gz | tar xvf -
zcat web2c-6.1.tar.gz | tar xvf -
zcat ptex-2.1.4.tar.gz | tar xvf -
zcat xdvik-1.8f.tar.gz | tar xvf -
mv web2c-6.1/web2c xdvik-18f
mv xdvik-18f kpathsea-2.6
/bin/rm -fr web2c-6.1
/bin/rm -fr kpathsea-2.6/xdvik

cd ./kpathsea-2.6
patch -p -s < ../web2c.kpathsea-2.6.help
cd ../ptex-2.1.4
su
./pTeXsetup -euc

makeの作業

cd  ../kpathsea-2.6
./configure
@itemize
になっているのを
@itemize @bullet
にする.
最後の行のextern void *alloca();をコメントアウトする.
cd ../
make
make install

LaTeX2eとpLaTeX2eのインストール

pl9702e.tar.gzに添付されているREADME.txtにしたがって作業をすすめる.LaTeX2eとpLaTeX2eのファイルをインストールする.インストール作業はsuper userで行う.

LaTeX2eは,/usr/local/lib/texmf/tex/latex2eにインストールされる.ここに展開されているファイルは古いので,新しい版に入れ換える.

cd /usr/local/lib/texmf/tex/latex2e
su
/bin/rm -rf ./
zcat base-9612.tar.gz | tar xvf -

/usr/local/lib/texmf/tex/latex2e/baseにファイルが展開される.

<1996/12/01>版では従来のDCフォントに代ってECフォントが使用される.配置は, CTANのミラーサイトに置かれているようにする./usr/local/lib/texmf/fonts/publicに3つのディレクトリreadf-mf, src, tfmを作成して同じように置く.

initex unpack.ins
initex ec.ins

ここで, 上書きするか否か質問されるから, yesと答える.

initex latex.ltx

フォーマットファイルlatex.fmtが生成されるので, /usr/local/lib/texmf/iniに移動する.

mv -f latex.fmt /usr/local/lib/texmf/ini
cd /usr/local/bin
ln -s virtex latex

これは,実行ファイル名と同じ名称のフォーマットファイルを読み込む仕様に基づく方法である.

cd /tmp
latex ltxcheck

ltxchek.logに記録されている内容を確認し,すべてOKになっていればよい.OKではないものがあれば,記録されている内容にしたがって対処する.

pLaTeX2eを /usr/local/lib/texmf/tex/platex2eにインストールする.

cd /usr/local/lib/texmf/tex/platex2e
zcat pl9702e.tar.gz | tar xvf -

/usr/local/lib/texmf/tex/latex2e/9702にファイルが展開される.

iniptex plcore.ins
iniptex platex.ltx

フォーマットファイルplatex.fmtを /usr/local/lib/texmf/iniに移動する.

mv -f platex.fmt /usr/local/lib/texmf/ini
cd /usr/local/bin
ln -s virptex platex


旧版のマクロを使用できるようにする

日本の学会のスタイルファイルは, LaTeX209に強く依存しており, pLaTeX2eでタイプセットできないものも多い. そこで, 従来の日本語TeXのマクロをインストールして利用できるようにする.

準備

jtex1.7.tar.gz を入手する

インストール方法

mkdir work
cd work
zcat jtex1.7.tar.gz | tar xvf-
./EUCsetup
mkdir /usr/local/lib/texmf/tex/platex209
cd macros
mv -f * /usr/local/lib/texmf/tex/platex209
cd ../jmacros
mv -f * /usr/local/lib/texmf/tex/platex209
cd /usr/local/lib/texmf/tex/platex209
iniptex "jlplain.tex \dump"

ダブルクォーテーションで囲むことを忘れないこと.さもないとシェルに\が解釈されてしまう.

mv -f jlplain.fmt /usr/local/lib/texmf/ini
  • jlatexコマンドで旧版のマクロを使ってタイプセットできるようにする.
  • jlatex.fmtをjlplain.fmtにシンボリックリンクする.
  • cd /usr/local/lib/texmf/ini
    ln -s jlplain.fmt jlatex.fmt
  • jlatexをvirptexにシンボリックリンクする.
  • cd /usr/local/bin
    ln -s virptex jlatex
    platex209_inputs = .:$TEXMF/tex/platex209//:$TEXMF/tex/latex209//:$TEXMF/tex//
    TEXINPUTS.jlatex = $platex209_inputs

    を/usr/local/lib/texmf/web2c/texmf.cnfに次のように追記する.

    latex209_inputs = .:$TEXMF/tex/latex209//:$TEXMF/tex//
    latex2e_inputs = .:$TEXMF/tex/latex2e//:$TEXMF/tex//
    platex209_inputs = .:$TEXMF/tex/platex209//:$TEXMF/tex/latex209//:$TEXMF/tex//
    platex2e_inputs = .:$TEXMF/tex/platex2e//:$TEXMF/tex/latex2e//:$TEXMF/tex//
    TEXINPUTS.latex209 = $latex209_inputs
    TEXINPUTS.latex2e = $latex2e_inputs
    TEXINPUTS.latex = $latex2e_inputs
    TEXINPUTS.platex209 = $platex209_inputs
    TEXINPUTS.platex2e = $platex2e_inputs
    TEXINPUTS.platex = $platex2e_inputs
    TEXINPUTS.jlatex = $platex209_inputs
    


    EPSを差し込むためのスタイルファイル

    graphics packageを使う.

    入手方法

    CTANのミラーサイトでmacros/latex2e/packages/graphicsに置かれているファイルを入手する.ディレクトリ/usr/local/lib/texmf/tex/latex2e/にCTANミラーサイトのpackages以下のディレクトリのファイルをすべてをコピーしておくとよい.

    インストール方法

    00readmeにしたがって作業する.作業は,super userになって,/usr/local/lib/texmf/tex/latex2e/packages/graphicsで行う.

    latex graphics.ins

    中身が

    \ExecuteOptions{dvips}

    だけのファイルcolor.cfgとgraphics.cfgを作成する.

    echo "\ExecuteOptions{dvips}" > color.cfg
    echo "\ExecuteOptions{dvips}" > graphics.cfg
    使用方法

    マニュアルは,grfguide.tex.

    スタイルファイルには,graphicx.styを用いる. graphics.styにはxdviが対応していない.

    xdviは, 差し込み時の大きさを指定するために

    \resizeboxを使用して

    \begin{verbatim}
    \resizebox{!}{10cm}{\includegraphics{golfer}}
    \end{verbatim}

    と記述すると,正しいサイズで表示することができない.

    差し込みに使ったコマンドは,

    \begin{figure}[!htbp]
    \begin{center}
    \includegraphics*[height=6cm]{tiger}
    \caption{EPSFサンプル(tiger.ps)}
    \label{fig:tiger}
    \end{center}
    \end{figure}

    である.

    \includegraphicsと\includegraphics*の図を差し込むときの大きさの指定は,jdvi2kpsに添付されているepsbox.styとほぼ互換がある.

    このことは,

    \documentclass{jarticle}
    \usepackage{epsbox}
          :
    \begin{figure}[htbp]
    \begin{center}
    \psbox[height=6cm]{keyboard.epsf}
    \caption{Indyのキーボード}
    \label{fig:keyboard}
    \end{center}
    \end{figure}

    あるいは,

    \documentstyle[epsbox]{jarticle}
          :
    \begin{figure}[htbp]
    \begin{center}
    \psbox[height=6cm]{keyboard.epsf}
    \caption{Indyのキーボード}
    \label{fig:keyboard}
    \end{center}
    \end{figure}

    と記述していた部分を

    \documentclass{jarticle}
    \usepackage{graphicx}
          :
    \begin{figure}[htbp]
    \begin{center}
    \includegraphics*[height=6cm]{keyboard.epsf}
    \caption{Indyのキーボード}
    \label{fig:keyboard}
    \end{center}
    \end{figure}

    と記述できる.つまり\psboxをincludegraphics*に置換すればよいことを意味する.

    図を差し込む位置を指定する!htbpの!は,float環境の制限を緩くするpLaTeX2eの拡張機能である.

    includegraphics*は, BoundingBoxの値でクリッピングする.一方, アステリスクのない\includegraphicsは,クリッピングしない.


    xdviのインストール

    xdvik-18f.tar.gz
    xdvik18f-j1.1p5.patch.gz ftp://ftp.ipc.chiba-u.ac.jp/pub.yamagaが一次配付元
    zcat xdvik-18f.tar.gz | tar xvf -
    cd xdvik-18f/xdvik
    zcat ../../xdvik18f-j1.1p5.patch.gz | patch -p

    xdvik-18fのディレクトリで

    ./configure
    make

    うかつにmake installを実行しないこと. /usr/local/lib/texmf/web2c/texmf.cnfが書き換えられてしまう.texmf.cnfのバックアップをsuper userになってとっておく.

    mv /usr/local/lib/texmf/web2c/texmf.cnf /usr/local/lib/texmf/web2c/texmf.cnf.org

    続いてインストールする.

    make install

    バックアップを戻す

    mv /usr/local/lib/texmf/web2c/texmf.cnf.org /usr/local/lib/texmf/web2c/texmf.cnf

    Xのアプリケーションでは, /usr/X11/lib/X11/app-defaults/にデフォルトのリソースを記述しておくことができる. xdviのリソースのファイル名は, XDvi.

    内容は, 以下のとおり.

    XDvi.shrinkFactor: 3  縮小を1/3にする. 300dpiなら3ないし4くらいが適当
    XDvi.postscript: off  初期値では, EPSを矩形で表示する
    XDvi.gamma: 1.8       γ値1.8にする. モニタの表示をみながら適宜加減する.


    dvipsのインストール

    dvipsk-5.58f.tar.gz        CTAN dviware/dvipsk
    dvipsk-jpatch-p1.2.tar.gz 
    vftool-1.2.tar.gz          ftp://ftp.math.s.chiba-u.ac.jp/tex 
    japaneseAFM.tar.gz         ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex
    zcat dvipsk-5.58f.tar.gz | tar xvf -
    cd dvipsk-5.58f
    zcat ../dvipsk-jpatch-p1.2.tar.gz | tar xvf -
    patch -s < dvipsk.patch

    dvipsk-5.58fのディレクトリで

    ./configure
    make

    うかつにmake installを実行しないこと. /usr/local/lib/texmf/web2c/texmf.cnfが書き換えられてしまう. texmf.cnfのバックアップをsuper userになってとっておく.

    mv /usr/local/lib/texmf/web2c/texmf.cnf /usr/local/lib/texmf/web2c/texmf.cnf.org

    続いてインストールする.

    make install
    zcat vftool-1.2.tar.gz | tar xvf -
    JFM = /usr/local/lib/texmf/fonts/public/ptex/tfm
    # builtin kanji fonts
    bkfonts = ${t1} ${t2} ${t3} ${t4}

    ディレクトリafmを作成する.japaneseAFM.tar.gzを展開して,afmにGothicBBB-Medium-H,Ryumin-Light-H,GothicBBB-Medium-V,Ryumin-Light-Vをコピーする.

    make a2bk

    ディレクトリvf-a2bkの下にvirtual fontが,ディレクトリjfmの下にtfmが作られる.virtual fontは,min10.vf, min5.vf, min6.vf, min7.vf, min8.vf, min9.vf , tmin10.vf, tmin5.vf, tmin6.vf, tmin7.vf, tmin8.vf, tmin9.vfとgoth10.vf, goth5.vf, goth6.vf, goth7.vf, goth8.vf, goth9.vf , tgoth10.vf, tgoth5.vf, tgoth6.vf, tgoth7.vf, tgoth8.vf, tgoth9.vf.tfmは,rml.tfm, rmlv.tfmとgbm.tfm, gbmv.tfm.

    /usr/local/lib/texmf/fonts/moriwasa/tfmにtfmファイルを,/usr/local/lib/texmf/fonts/morisawa/vfにvfファイルをコピーする.

    mkdir /usr/local/lib/texmf/fonts/morisawa
    mkdir /usr/local/lib/texmf/fonts/morisawa/tfm
    mkdir /usr/local/lib/texmf/fonts/morisawa/vf
    cd ./jfm
    cp *.tfm /usr/local/lib/texmf/fonts/morisawa/tfm
    cd ../vf-a2bk
    cp *.vf /usr/local/lib/texmf/fonts/morisawa/vf

    /usr/local/lib/texmf/dvips/psfonts.mapの最後に

    rml      Ryumin-Light-H
    rmlv     Ryumin-Light-V
    gbm      GothicBBB-Medium-H
    gbmv     GothicBBB-Medium-V

    を追記する.

    用紙サイズ,METAFONTで生成するフォントのモードなどを指定できる.詳細は関連情報を参照して欲しい.


    このページは自由にリンクしていただいて構いません.間違いなどがございましたら,お知らせください.お問い合わせはuchiyama@thx.inst.keio.ac.jpまで.