*UNIX 互換 OS での teTeX,pTeX,pLaTeX2e のインストール [#f27134a5]
*Make [#b0e9d8ed]

今は次の ptetex3 を使う方法がお薦めです。
下のほうに長々と書いてあることを読むと混乱しますので,読まないでください。
ここでは、Make を LaTeX と組み合わせて使う方法を説明します。

** teTeX-3.0 + ptetex3 [#saac55c2]

[[teTeX:http://www.tug.org/tetex/]] は
UNIX (互換) OS 用の TeX ディストリビューション
です。[[ptetex:http://www.nn.iij4u.or.jp/~tutimura/tex/ptetex.html]] は
teTeX と [[pTeX:http://www.ascii.co.jp/pb/ptex/]] 一式を簡単に
インストールするための土村さん作のツールです。[[ptetexWiki:全動作報告]] に
多数の例が挙がっているので,参考になさるとよいでしょう。
ここでは2005年2月に出た新しい teTeX-3.0 と
それをベースにした pTeX を,ptetex3 を使ってインストールしてみます。

まず,あらかじめ C/C++ のコンパイラや
X Window System 用ソフトウェアの開発環境等をインストールしておきます。
また,(必須ではありませんし,かなりの手間がかかりますが) [[Ghostscript]] の
日本語対応がなされているものをインストールしてもよいでしょう。
海外の Linux ディストリビューションに付属する Ghostscript では
日本語対応が乏しいケースもあるようです。
//2005年10月以降,md5, gmd5sum 等は自動判定で使い分けるようになりました。
//GNU sed ももう不要です。
// //Mac OS X の場合は,あらかじめ
// //[[GNU coreutils:http://www.ring.gr.jp/pub/GNU/coreutils/]] に含まれる
// //md5sum コマンドをインストールしておくか,my_option というファイルを作って
// // MD5CHECK=md5check
// //と書いておきます。
// //[[GNU sed:http://www.ring.gr.jp/pub/GNU/sed/]] は
// //2005/6/27 以降は不要になりました。

/var/tmp/ptetex3/tetex-src-3.0/ と /usr/local/teTeX/ と ~/texmf/
と ~/.texmf-conf/ と ~/.texmf-var/ とがすでにある場合には,
消すか名前を変えておきます。

適当なディレクトリを作り,その中に
&ref(http://www.ring.gr.jp/pub/text/CTAN/obsolete/systems/unix/teTeX/3.0/distrib/tetex-src-3.0.tar.gz);,
&ref(http://www.ring.gr.jp/pub/text/CTAN/obsolete/systems/unix/teTeX/3.0/distrib/tetex-texmf-3.0po.tar.gz);,
[[ptetex3:http://tutimura.ath.cx/~nob/tex/ptetex/ptetex3/]]-20YYMMDD.tar.gz (最新の日付のもの)
//%%[[ptetex-cmap:http://tutimura.ath.cx/~nob/tex/ptetex/ptetex-cmap/]]-2006????.tar.gz%% (←もう不要)
をダウンロードし,
その中で次のようにします(ターミナルでコマンドを打ち込みます)。
//(ptetex-cmap は 2005年11月11日以降ほぼ不要になりました。)

 tar xvzf ptetex3-20YYMMDD.tar.gz
 cd ptetex3-20YYMMDD
 cp my_option.sample ../my_option (オプションを変更したいのなら)

オプションを変更したいのなら,この my_option というファイルを適宜編集します。
そして,以下を実行します。

 make

あるいは,OTF,Bable 対応を含めるなら,

 make all3

あるいは,個別に実行するなら,

 make all0
 make otf   (オプション)
 make babel (オプション)
 make font
 make test

Mac OS X では "make font" で
//(ターミナルを UTF-8 にしておくと) // たぶんしておかなくても
何回かヒラギノ何とかと聞いてきますので,それについては "y" と答えます。
面倒なら "make fonty" とすると,すべての質問に yes と答えたことに
なります。"make (all3)" では "make fonty" も含めて実行しますので,
気にしなくて大丈夫です(make の引数に
ついては,[[ptetexWiki:make のターゲット>ptetexWiki:makeのターゲット]]
が参考になります)。

"make (all3)" あるいは "make test" で簡単な動作テストをします。
ここまで root 権限は必要ありません。Mac OS X では "make test" の前に
X11 を立ち上げておきます
(あるいは my_option で xdvi を使わない設定にします)。UTF + ps2pdf で
エラーが出ても大きな問題はないので,気にしないでおきます
(my_option で ps2pdf をテストしないようにもできます)。

動作確認が終わったら,いよいよシステムにインストールしましょう。

 make install (必要に応じて su したり sudo を付けたりします)

/usr/local/teTeX/bin にパスを通します。

フォントについての設定は updmap (個人ごと)
または updmap-sys (システム全体,root 権限が必要)で行います。例えば
[[dvips]] はデフォルトでは PostScript Level 2 での(欧文用)基本35書体を
埋め込みませんが,埋め込むようにするには次のようにします。

 updmap --setoption dvipsDownloadBase35 true

Mac OS X ではさらに次のようにして dvipdfmx で
(和文用の)[[ヒラギノ:http://www.screen.co.jp/ga_product/sento/]]を
// Mac のヒラギノと、商品のヒラギノは同一である保証はあるのでしょうか。
// そうでないなら↑このリンクは不適切のような気がします。
// // 「SCREEN|ヒラギノと Mac OS X のバージョン相関表 (Mac OS X 10.5)」
// // http://www.screen.co.jp/ga_product/sento/support/otf_ver2.html
// // に
// // 「ヒラギノ OpenType には、Mac OS X バンドル版(6書体)と
// // 弊社製品版(ヒラギノ専用仮名書体を含め全54書体)がありますが、
// // フォント名とバージョンが同じなら両者の仕様は同一です。」
// // とあるので,同一だと思います。
// // // 6書体と54書体の違いがあるので、「OS X のヒラギノ」と
// // // 「商品のヒラギノ」は概念としては別物だという気がします。
// // // つまり、ここで SCREEN にリンクを張るのには違和感を覚えます。
// // // Apple のページならよいと思います。例えば以下ではどうでしょう。
// // // http://www.apple.com/jp/pro/design/typography/01/index2.html
// // // // いいですね。先頭のウェブサイトから始める方が良いと思うので,
// // // // http://www.apple.com/jp/pro/design/typography/01/
// // // // でどうですか?
// // 商品のヒラギノを買えば,Mac OS X に限らず Cygwin でも
// // 同じ updmap の設定でヒラギノを埋め込めます。
// // そのため Apple のウェブサイトに限定する必要は無く,
// // 大日本スクリーン製造へのリンクの方が良いと考えます。
埋め込むようにできます。

// (2006年4月以降の ptetex3)
 updmap --setoption kanjiEmbed hiragino
 
// (2006年3月以前)
// updmap --nomkmap --disable otf-noEmbeddedFont.map
// updmap --enable KanjiMap otf-hiraginox.map

逆に和文フォントを埋め込まないようにするには次のようにします
(これがディフォルトです)。

 updmap --setoption kanjiEmbed noEmbed

xdvi は src specials に対応しています。[[Emacs]] で使う
場合には,[[YaTeX]] の設定は README に書いてあります。[[AUCTeX]] でも
使えます。/usr/local/teTeX/share/texmf/xdvi/XDvi で emacsclient を
呼び出すようにしてありますが,[[Carbon Emacs>MacWiki:CarbonEmacs]] なら
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient にしておきます
(他の場所でも設定可)。

// 途中でエラーが出ますが,/usr/local/teTeX/share/texmf/fonts/opentype/ に
// STSongStd-Light-Acro.otf,MSungStd-Light-Acro.otf,HYSMyeongJoStd-Medium-Acro.otf
// へのシンボリックリンクを張っておけば通ります。

-----

以下は古い情報です。ptetex3 が内部で行っていることを理解するため以外には
必要ないと思います。

#contents

**News [#i9c0909b]
*Make とは何か? [#g7efa508]

-[040723]
[[URWフォントのバグ:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?URW]]
Make は、定型的なファイル変換作業を自動化するツールです。
LaTeX では Make を使うことで、texソースファイルからPDFやdviファイルを生成する作業を自動化できます。

**はじめに [#a05fe117]
Make はUNIX 用のユーティリティツールとして古い歴史を持ち、さまざまな実装があります。
その中で現在多く用いられているのは、[[GNU Make:http://www.gnu.org/software/make/]] です。
使い方や設定ファイル(Makefile)の文法は、基本的な部分は統一されているものの、実装ごとの拡張機能もあります。
特にGNU Makeは多くの拡張機能を持っています。

一世代前の teTeX-2.0.2(Web2C 7.4.5),pTeX-3.1.5 を Linux
や FreeBSD や Solaris や Mac OS X(gcc 2.x
または [[3.x>LinuxWiki:GCC]])にソースからインストールした記録です。
なお、一般に Make はC言語などのプログラムをコンパイルするときに多く用いられます。
Make について調べるとこうしたプログラムのコンパイルを前提とした情報が出てくることが多いので、注意してください。

多くの Linux ディストリビューションにはすでに日本語対応の TeX ツール群が含まれています(コマンド名は pxdvi
や pdvips など p が頭に付く場合があります)のでソースからインストールする必要はありません。
詳しくはこの TeX Wiki の各ディストリビューションについての記述をご覧ください。
*Make のインストール [#c29bc068]

>土村さんが
[[ptetex -- teTeX 用日本語パッチ集:http://www.nn.iij4u.or.jp/~tutimura/tex/ptetex.html]]
を作ってくださいました。
これを使えばもっと簡単にインストールできます。
**macOS [#g1b3ea4a]

>teTeX-2.0.2 には2月28日バージョンと3月1日バージョンがあります。
タイムスタンプが3月1日以降であることをご確認ください。
Xcode のコマンドラインツールをインストールしてください(http://qiita.com/ksato9700/items/8a14189934c9360a668c 参照)。
GNU Make がインストールされます。

>Ghostscript のインストールも必須です。
これについては [[GNU Ghostscript 7.07 on Linux>Ghostscript 7.07]]
をご覧ください。
**Linux [#q3c99e20]

>FreeBSD では make を gmake としてください。
多くの場合、初期状態で GNU Make がインストールされています。

>Mac OS X では開発ツール(一部コマンドのインストールには X11)をあらかじめインストールしておくことが必要です。
Mac OS X の make は GNU Make ですのでそのまま使えます。
**FreeBSDなど [#w18263e3]

>Vine Linux 3.0でmakeするための注意は
[[[qa:30713]]]
をご覧ください。
初期設定では、BSD Make がインストールされています。
下記の Makefile などが思うように動作しない場合は、GNU Makeのインストールも検討してください。
なお、GNU Makeが「make」ではなく「gmake」コマンドとしてインストールされている場合もあります。

他に参考すべきサイト:
**Windows [#a0e09c4e]

-[[teTeX-2.0 パッケージングメモ:http://www.nn.iij4u.or.jp/~tutimura/tex/tetex2.html]]
(土村さん)
-[[Mac OS XにTeXをインストールしよう:http://macptex.appi.keio.ac.jp/~uchiyama/macosx/]]
(内山さん)
Windows 用 の GNU Make のインストールをしてください。
[[MinGW]] や [[Cygwin]] などをインストールすれば GNU Make もインストールされます。

**teTeX のインストール [#p46b71c8]
なお、Windows用のMakeにはGNU Makeのほか、マイクロソフト社のnmakeなどがあります。nmakeは、Visual Studioに付属します。

下は /usr/local/teTeX/ 以下にインストールする方法です。
/usr/local/ 以下にインストールするなら --prefix=/usr/local としてください。
*Makeの使い方 [#q2810aac]

xdvik 関係は後で日本語化したものを別途インストールすることを考えて,ここでは省略します。
X Window System を使わない(標準状態の Mac OS X など)なら --without-x も必要です。
**Makefile の作成と Make の実行 [#b022f4c0]

用意するもの:
Makeを実行してTeXソースファイルからPDFや.dviなどのドキュメントファイルを生成する手順は、次のとおりです。

+ texソースファイルと同じディレクトリーに「Makefile」という名前の設定ファイルを作成する
+ texソースファイルと同じディレクトリーで、make コマンドを実行する

-[[CTAN:systems/unix/teTeX/2.0/distrib/tetex-texmf-2.0.2.tar.gz]]
-[[CTAN:systems/unix/teTeX/2.0/distrib/tetex-src-2.0.2.tar.gz]]
***Makefile の作成 [#j674e7ce]

 mkdir -p /usr/local/teTeX/share/texmf
 mkdir -p /usr/local/src
 tar xvzf tetex-texmf-2.0.2.tar.gz -C /usr/local/teTeX/share/texmf/
 tar xvzf tetex-src-2.0.2.tar.gz -C /usr/local/src/
 cd /usr/local/src/tetex-src-2.0.2/
 ./configure --prefix=/usr/local/teTeX --disable-multiplatform --without-xdvik --without-oxdvik
 make world
Makefile は、Make 設定ファイルの文法に従って記述します。
基本的な文法は次のとおりです。

make world は make all install と同等ですので make install は不要です(Thanks: 河村くん)。
 ターゲット: 必須項目
 <タブ>コマンド

/usr/local/teTeX/bin にパスを通します。
古い TeX が他の場所にインストールされている場合は,そのパスより先に /usr/local/teTeX/bin
がなければなりません。
ターゲットは、生成されるファイルの名前です。
1つの Makefile で複数のターゲットを指定することもできます。
その場合、make コマンド実行時に「make ターゲット」とすることで生成するファイルを設定できます。
ターゲットを指定せずに make コマンドを実行すると、Makefile で最初に指定されたターゲットが生成されます。
また通常は、ターゲットのファイルがすでに存在して更新日時がすべての必須項目ファイルの更新日時よりも新しい場合、ターゲットファイルの更新は不要と判断され、コマンドは実行されません。

 export PATH=/usr/local/teTeX/bin:$PATH    # sh/bash
 setenv PATH /usr/local/teTeX/bin:$PATH    # csh/tcsh
 set path=(/usr/local/teTeX/bin $path)     # 上と同じ
必須項目は、ターゲット生成のために必要なファイルです。
1つのターゲットに対して複数の必須項目を指定できます。
必須項目のファイルが別の部分でターゲットとして指定されている場合、まずはそのファイルが生成されます。

which latex と打ち込んで /usr/local/teTeX/bin/latex と出ることを確認します。
コマンドは、必須項目からターゲットを生成するためのコマンドです。なおコマンドの前に付ける<タブ>は、スペースに変えると正常に動作しません。

which [[dvips:http://www.radicaleye.com/dvips.html]]
と打ち込んで /usr/local/teTeX/bin/dvips と出ることを確認します。
***基本的な Makefile [#xfdbcbf5]

これらがうまくいかないなら,bash なら hash -r,tcsh なら rehash してみてください。
例として、『LaTeX2e 美文書作成入門 改訂第6版』P.31 の test.tex ファイルの \documentclass{jsarticle} を \documentclass[uplatex]{jsarticle} に変更したものが ~/latex ディレクトリーに作成してある状態から PDF を生成することを考えます。
まずはテキストエディタなどを使い、test.tex と同じディレクトリーに Makefile を次の内容で作成します。

うまくいったら,上の PATH 設定は .bashrc や .tcshrc の類で設定しておきましょう。
 test.pdf: test.dvi
 	dvipdfmx $<

とりあえず英語だけですが,うまくいくか実験してみましょう。
次のようなファイル hello.tex を作ります。
 test.dvi: test.tex
 	uplatex -interaction=batchmode $<

 \documentclass{article}
 \begin{document}
 
 Hello, \TeX!
 
 \end{document}
コマンド中の「$<」は必須項目を表し、この場合は「test.dvi」と「test.tex」になります。
なお、makeからuplatexコマンドを呼び出しているときにエラーが発生しても途中で止まらないよう、uplatexコマンドにオプション「-interaction=batchmode」を付けています。

次のように打ち込んでテストしましょう。
***Make の実行 [#icc67860]

 latex hello       # hello.tex を hello.dvi に変換
 dvips -Ppdf hello # hello.dvi を hello.ps に変換
 gv hello.ps       # プレビューのテスト
 lpr hello.ps      # 印刷のテスト
Makefile を保存したあとターミナル上で test.tex のディレクトリーで make コマンドを実行します。Makefile に記述したコマンドが呼び出され、PDFが生成されます。
このあとは、test.tex が更新されたり生成された test.pdf が削除されたりしなければ、再度make コマンドを実行しても、Makefile に記述したコマンドは呼び出されません。
macOS や Linux 上でのコマンド実行例を以下に示します($ は、プロンプト文字)。

Mac OS X なら上の代わりに pdflatex hello
と打ち込んで hello.tex を hello.pdf に変換し,open hello.pdf
と打ち込むか,あるいは Finder でダブルクリックしてみてください。
 $ cd ~/latex/
 $ ls
 Makefile  test.tex
 $ make
 uplatex  -interaction=batchmode test.tex
 This is e-upTeX, Version 3.14159265-p3.4-u1.11-130605-2.6 (utf8.uptex) (TeX Live 2014/dev)
  restricted \write18 enabled.
 entering extended mode
 dvipdfmx test.dvi
 test.dvi -> test.pdf
 [1]
 25751 bytes written
 $ ls
 Makefile  test.aux  test.dvi  test.log	test.pdf  test.tex
 $ make
 make: `test.pdf' is up to date.
 $

これ以降で,何かエラーが起きたなら mktexlsr(または texhash)と打ち込んでみてください。
こうすると /usr/local/teTeX/share/texmf/ls-R
というデータベース(といっても単に texmf
ディレクトリ以下のリストを収めたテキストファイル)が更新されます。
***より実用的な Makefile [#rc4136ab]
より実用的な Makefile として、次の内容が考えられます。

**pTeX,pLaTeX2e のインストール [#g69f2dc9]
 TARGET := test.pdf

※以下ではRingサーバのミラー http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/
をご紹介していますが,オリジナルの配布元は ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/
です。
 .PHONY: all clean distclean

ここでは文字コード EUC 用に作ってみます。
Shift JIS 用に作るには ./configure sjis です。
 all: $(TARGET)

用意するもの:
 clean:
 	$(RM) *.aux *.log *.dvi

-http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/tetex/ptex-texmf-2.3.tar.gz
-http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/tetex/ptex-src-3.1.5.tar.gz
 distclean: clean
 	$(RM) $(TARGET)

 tar xvzf ptex-texmf-2.3.tar.gz -C /usr/local/teTeX/share/texmf/
 mktexlsr
 tar xvzf ptex-src-3.1.5.tar.gz -C /usr/local/src/tetex-src-2.0.2/texk/web2c/
 cd /usr/local/src/tetex-src-2.0.2/texk/web2c/ptex-src-3.1.5
 ./configure euc
 make
 make install
 mktexlsr
 %.pdf: %.dvi
 	dvipdfmx $<

ついでに dvips(k) も済ませてしまいましょう。
 %.dvi: %.tex
 	uplatex -interaction=batchmode $<

用意するもの:
「%.dvi: %.tex」のように記述されている行はパターンルールといい、拡張子を元に動作ルールを決めます。
「%.dvi: %.tex」は任意の.texファイルから.dviファイル、「%.pdf: %.dvi」は任意の.dviファイルから.pdfファイルを作成するルールを定めています。

-http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/dvips/dvipsk-jpatch-p1.6a1.tar.gz
-http://www.ring.gr.jp/pub/text/TeX/ptex-win32/utils/udvips-5.94a-p1.6a1.patch
この Makefile では次の機能を実現しています。

 tar xvzf dvipsk-jpatch-p1.6a1.tar.gz -C /usr/local/src/tetex-src-2.0.2/texk/dvipsk/
 cp udvips-5.94a-p1.6a1.patch /usr/local/src/tetex-src-2.0.2/texk/dvipsk/
 cd /usr/local/src/tetex-src-2.0.2/texk/dvipsk/
 patch -p1 <dvipsk-5.92b-p1.6a1.patch
 patch -p1 <udvips-5.94a-p1.6a1.patch
 ./configure --prefix=/usr/local/teTeX --disable-multiplatform
 make
 make install
 cd /usr/local/teTeX/share/texmf/dvips/pstricks/
 patch </usr/local/src/tetex-src-2.0.2/texk/dvipsk/PSTricks.patch
- texソースファイルの名前が「test.tex」以外の場合でも、Makefile 1行目の「test.pdf」を変更するだけで対応できる
- make clean を実行すると、PDF生成時に一緒に生成された.aux、.log、.dvi ファイルが削除される
- make distclean を実行すると、.aux、.log、.dvi ファイルに加えて PDF が削除される

dvips(k) を使うには,さらに次の修正が必要です。
まず /usr/local/teTeX/share/texmf/dvips/config/kanji.map
というファイルを作り,次のように書き込みます。
本当はこの段階では最初の4行しか要りませが,後のために余分に設定しておきます。
LaTeX実行時に多数生成される中間ファイルを削除するとき、手動で行うと誤って必要なファイルを削除してしまうなどのトラブルが起こる可能性があります。make clean や make distclean を設定して用いれば、こうしたトラブルを減らすことができます。

 rml             Ryumin-Light-H
 rmlv            Ryumin-Light-V
 gbm             GothicBBB-Medium-H
 gbmv            GothicBBB-Medium-V
 ryumin-l        Ryumin-Light-H
 ryumin-l-v      Ryumin-Light-V
 gtbbb-m         GothicBBB-Medium-H
 gtbbb-m-v       GothicBBB-Medium-V
 futomin-b       FutoMinA101-Bold-H
 futomin-b-v     FutoMinA101-Bold-V
 futogo-b        FutoGoB101-Bold-H
 futogo-b-v      FutoGoB101-Bold-V
 jun101-l        Jun101-Light-H
 jun101-l-v      Jun101-Light-V
 unimin          Ryumin-Light-UniJIS-UCS2-H
 unigoth         GothicBBB-Medium-UniJIS-UCS2-H
ただし、この Makefile では次のような場合に正常に動作しない可能性があります。

新しいファイルを作ったら必ず mktexlsr と打ち込んでおきましょう。
- 相互参照や目次などを生成する場合
- 画像を参照していたり、tex ソースを複数のファイルに分けていたりする場合
- 索引や文献リストを生成する場合

さらに,/usr/local/teTeX/share/texmf/dvips/config/config.ps
の適当なところ,たとえば
 
 % This shows how to add your own map file.
 % Remove the comment and adjust the name:
 % p +myfonts.map
**相互参照や目次などが含まれる場合 [#xdd98ce4]

の次の行あたりに,次のように追加します。
ドキュメントに次のものが含まれる場合、上記の Makefile ではいずれの場合でも正常にPDFを生成できません。これらを正常に生成するには、複数回LaTeXを実行する必要があるからです。

 p +kanji.map
- 相互参照(数式や図・表・脚注の番号参照など)
- 目次
- 図リスト
- 表リスト

いよいよ日本語で実験してみましょう。
さきほどの hello.tex に日本語を加えます。
一般に、LaTeX を実行する回数を多くすれば正常にPDFを作成できない問題が発生する可能性は小さくなる反面、実行には時間がかかるというトレードオフの関係があります。

 \documentclass{jarticle}
 \begin{document}
 
 こんにちは, \TeX!
 
 \end{document}
***LaTeX を無条件に複数回実行 [#ae41f9a4]

次のように打ち込みます。
正常にPDFを作成できない問題の単純な解決方法は、無条件に複数回 LaTeXを実行することです。次の Makefile では変数 CNT で設定された回数(初期状態では2回)、無条件に LaTeX が実行されます。

 platex hello      # hello.tex を hello.dvi に変換
 dvips -Ppdf hello # hello.dvi を hello.ps に変換
 gv hello.ps       # プレビューのテスト
 lpr hello.ps      # 印刷のテスト
 TARGET := test.pdf

角藤さん配布の Win32 バイナリ(dvipsk
が日本語版)と違って,上のようにして作った日本語対応バイナリ名は dvips です。
 CNT := 2

他のフォントの場合も同様です。
たとえば [[TIPA]] と [[cm-super]]
をインストールしたなら次のようにします(インストールした後で書いてください)。
 .PHONY: all clean distclean

 p +tipa.map
 p +cm-super-t1.map
 p +cm-super-ts1.map
 p +cm-super-t2a.map
 p +cm-super-t2b.map
 p +cm-super-t2c.map
 p +cm-super-x2.map
 all: $(TARGET)

ただ,dvipdfm(x) と共通の設定にすることを考えて,欧文フォントはここではなく
/usr/local/teTeX/share/texmf/web2c/updmap.cfg
のほうに例えば次のように書くのがいいでしょう。
 clean:
 	$(RM) *.aux *.log *.dvi

 Map lm.map
 MixedMap tipa.map
 MixedMap mathabx.map
 MixedMap yhmath.map
 distclean: clean
 	$(RM) $(TARGET)

Mixed の付くほうはビットマップフォントも使う場合です。
 %.pdf: %.dvi
 	dvipdfmx $<

このように書いておいて updmap コマンドを実行すると自動的に map ファイルが更新されます。
 %.dvi: %.tex
 	for i in `seq 1 $(CNT)`; do uplatex -interaction=batchmode $<; done

>ただ,このようにして作った dvipdfm*.map は
 cmex7 default fmex7 -r
 cmex8 default fmex8 -r
 cmex9 default fmex9 -r
になってしまうようです。
この3行から -r を取らないと,括弧が出ないなどのトラブルが起こることがあります。
昔 Thomas Esser に連絡したはずなのですが,直してもらえていません。
いずれにしても \usepackage{type1cm}
すべきで,そうすれば上のトラブルには引っ掛かりません。
Makeの実行方法は、基本的なMakefileの場合と同じです。作成されたPDFファイルで、特に相互参照や目次などの問題がないか確認してください。

**jis/jisg/morisawa フォント関連 [#se06be7a]
この方法でも、LaTeX 実行の回数がまだ足りず、引き続きPDFが正常に作成できない場合もあります。そのときは、変数 CNT の数を増やします。
また、逆に LaTeX 実行の回数が多すぎるため、余計に時間がかかることも考えられます。

jis/jisg フォントメトリック関連です。
私の [[新ドキュメントクラス:http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/]]
を使う際に必要です。
***ログファイルに警告のある場合の実行 [#z88e6381]

用意するもの:
LaTeX を無条件で実行してから、ログファイルに警告がある場合にだけさらに LaTeX を実行することもできます。
次のMakefileでは、CNT 変数で指定された回数分LaTeX を実行してから、ログに相互参照未定義の警告がある場合だけLaTeXを実行するようにしています。
ログに相互参照未定義の警告があるかどうかは、shシェルのif文と grep(fgrep) を組み合わせて判定しています。
また、相互参照に誤りがある場合はLaTeXを何回実行してもログに相互参照未定義の警告が出るので、相互参照未定義の警告がある場合のLaTeX実行は最大3回としています。

-http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/jvf/jis.tar.gz
 TARGET := test.pdf

 tar xvzf jis.tar.gz
 mv jis/tfm/ptex/* /usr/local/teTeX/share/texmf/fonts/tfm/ptex/
 mv jis/vf/* /usr/local/teTeX/share/texmf/fonts/vf/ptex/
 CNT := 2

morisawa 関連です。
たとえば上の [[新ドキュメントクラス:http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/]]
に含まれる morisawa.sty で使えます。
 .PHONY: all clean distclean

用意するもの:
 all: $(TARGET)

-http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/jvf/morisawa.tar.gz
 clean:
 	$(RM) *.aux *.log *.dvi

 tar xvzf morisawa.tar.gz
 mv morisawa/tfm/dvips/* /usr/local/teTeX/share/texmf/fonts/tfm/ptex/
 mv morisawa/tfm/ptex/* /usr/local/teTeX/share/texmf/fonts/tfm/ptex/
 mv morisawa/vf/* /usr/local/teTeX/share/texmf/fonts/vf/ptex/
 distclean: clean
 	$(RM) $(TARGET)

最後に mktexlsr しておきます。
 %.pdf: %.dvi
 	dvipdfmx $<

**新ドキュメントクラス [#p826d2d8]
 %.dvi: %.tex
 	for i in `seq 1 $(CNT)`; do uplatex -interaction=batchmode $<; done
 	for i in `seq 1 3`; do if grep -F 'Rerun to get cross-references right.' `basename $< .tex`.log; then uplatex -interaction=batchmode $<; else exit 0; fi; done

[[新ドキュメントクラス:http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/]] をインストールします。
なお、LaTeXを複数回実行する方法の詳細については、『LaTeX2e美文書作成入門』P.161の「(p)LaTeXを適切な回数繰り返し実行する方法 」を参照してください。

用意するもの:
**画像やLaTeXファイルが挿入されている場合 [#mf500793]

-http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/jsclasses.zip
Makeは基本的に、必須項目として指定されているファイルが更新された場合に実行されます。
LaTeXソースファイルで \includegraphics 命令によって挿入された画像や、\include や \input 命令で挿入された LaTeX ファイルが更新されていても、上記の Makefile では Make が実行されず反映されないことがあります。

 cd /usr/local/teTeX/share/texmf/ptex/platex
 mkdir js
 cd js
 unzip jsclasses.zip
 mktexlsr
さらに、PDF, PNG, JPEG 形式の画像ファイルを挿入しているときは、バウンディング情報が必要です。

**mendexk のインストール [#s635011c]
そのため、画像ファイルおよびLaTeXファイルの依存関係は、Makefileに反映する必要があります。
たとえば、画像 tiger.pdf を挿入している場合は、次のようにMakefileを記述します。
「test.dvi: tiger.pdf」が、画像ファイルの依存関係を表します。

mendex(k) は makeindex を日本語化したものです。
 TARGET := test.pdf

用意するもの:
 CNT := 1

-http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/mendex/mendexk2.5a.tar.gz
 .PHONY: all clean distclean

 tar xvzf mendexk2.5a.tar.gz -C /usr/local/src/tetex-src-2.0.2/texk/
 cd /usr/local/src/tetex-src-2.0.2/texk/mendexk2.5a/
 all: $(TARGET)

Makefile で以下の部分を修正します(teTeX-2.0.2 の kpathsea は 3.4.5 です)。
 test.dvi: tiger.pdf

 # インストール先を DISTDIR に指定する
 DISTDIR = /usr/local/teTeX/bin
 
 # for kpathsea-3.*
 CFLAGS = -O -DKPATHSEA -DKPATHSEA3
 PROGLINK = $(kpathsea_link) $(OBJS) $(kpathsea_3)
 
 # for no kpathsea
 #CFLAGS = -O
 #PROGLINK = $(CC) $(OBJS) -o $(PROGRAM)
 clean:
 	$(RM) *.aux *.log *.dvi

仕上げです。
unknown escape sequence の警告は無視してかまいません。
 distclean: clean
 	$(RM) $(TARGET)

 make
 make install
 %.pdf: %.dvi
 	dvipdfmx $<

**dvipdfmx(旧 dvipdfm 日本語版)のインストール [#b872d2da]
 %.dvi: %.tex
 	for i in `seq 1 $(CNT)`; do uplatex -interaction=batchmode $<; done
 	for i in `seq 1 3`; do if grep -F 'Rerun to get cross-references right.' `basename $< .tex`.log; then uplatex -interaction=batchmode $<; else exit 0; fi; done

[[dvipdfm:http://gaspra.kettering.edu/dvipdfm/]]
を平田さんが日本語化されました。
平田さんのサイトは現在
[[土村さんがミラー:http://members.jcom.home.ne.jp/sh74/dvipdfm/]]
してくださっています。
***挿入された画像やLaTeXファイルの調査 [#h0229340]
挿入された画像ファイルやLaTeXファイルを調査するためには、LaTeXソースファイルを直接さがす方法と、.flsファイルを使う方法があります。

CJK 版の開発は [[The DVIPDFMx Project:http://project.ktug.or.kr/dvipdfmx/]] に引き継がれました。
このページから最新のソースをいただいてきて次のようにインストールします。
***ソースファイルの調査 [#wd3d562f]
挿入された画像ファイルやLaTeXファイルを調査するときは、LaTeXソースファイルを手動(目視)でさがすほかに、sed をつかってリスト出力することもできます。

>古い teTeX では /usr/local/teTeX/share/texmf/dvipdfm/config
がファイルになっているので dvipdfmx の上書きインストールが失敗します。
teTeX 2.0.2 では大丈夫です。
次の例では、test.texファイルから \includegraphics 命令で指定された画像ファイルのリストを出力します。ただし、コメントやverbatim環境内などに記述された画像ファイルもリストに含まれるため、それらは除外する必要があります。

 tar xvzf dvipdfmx-20031207.tar.gz -C /usr/local/src/tetex-src-2.0.2/texk/
 cd /usr/local/src/tetex-src-2.0.2/texk/dvipdfmx-20031207
 ./configure --prefix=/usr/local/teTeX --with-kpathsea=/usr/local/teTeX
 make
 make install (configファイルを上書きしたくなければ make install-exec)
 mktexlsr
 $ sed -e 's/}/}%/g' test.tex | sed -e 'y/}%/}\n/' | sed -n -e 's/.*\\includegraphics\(\[[^]]*\]\)\{0,1\}{\([^}]*\)}$/\2/p'

configure のオプションには必要に応じて --with-png=DIR,--with-zlib=DIR
も付けます。
20030805 から OpenSSL は不要です。
***.flsファイルの調査 [#u6148f74]

/usr/local/teTeX/share/texmf/dvipdfm/config/dvipdfmx.cfg が設定ファイルになります。
この中の
LaTeXに -recorderオプションをつけて実行すると出力される.fls ファイルを元に調査することもできます。次のコマンドで、test.tex ファイルからtest.fls ファイルを生成します。

 f cmr.map
 f psbase14.map
 f lw35urw.map
 $ uplatex -interaction=nonstopmode -recorder test.tex

はコメントアウト(頭に % を付ける)して,代わりに
.flsファイルには、LaTeX処理で入出力されるファイルがリストになっています。入力ファイルと出力ファイルはそれぞれ、INPUTとOUTPUTではじまる行に記録されます。また、TeXのシステムファイルもリストに含まれます。そのため、TeXのシステムファイル以外の入力ファイルを表示するには、
次のようにします。

 f dvipdfm.map
 $ grep '^INPUT' test.fls | grep -v `kpsewhich -expand-var '$TEXMFROOT'` | sort | uniq
 INPUT test.aux
 INPUT test.tex
 INPUT tiger.pdf
 INPUT tiger.xbb

を入れます ← 配布段階で対応していただきました。
(dvipdfm.map は /usr/local/teTeX/share/texmf/dvips/config の中にあり,dvipdfm_dl14.map
または dvipdfm_ndl14.map へのシンボリックリンクになっています(それぞれフォントをダウンロードする/しない)。
ダウンロードする方にしておけば,Times Roman が Times New Roman に置き換えられるといった心配はなくなります。
ただしダウンロードされるのは URW の互換フォントです。
デフォルトではダウンロードしないになっています(この方が軽い PDF ができますが Acrobat Reader で Times
や Helvetica が Times New や Arial で置き換えて表示されます)。
*PDF作成の実例 [#s60e963b]

実行ファイル名は dvipdfmx です。
最後の x を忘れないように!
Make は、コマンド実行時のカレントディレクトリにある Makefile を読み込んで、その記述と引数に応じた処理を行います。以下に、LaTeX 文書の処理に用いた Makefile の実例を示します。

この dvipdfmx ではいくつかの CMap ファイルが必須です。
[[GNU Ghostscript 7.07 on Linux>Ghostscript 7.07]]
のページを参考にして Ghostscript をインストールされたかたは /usr/local/share/ghostscript/Resource
の下にたくさんの CMap ファイルがありますので,これを
/usr/local/teTeX/share/texmf/dvipdfm
の中にシンボリックリンクしておきます。
 FILENAME  = doc001
 TEX       = $(FILENAME).tex
 IDX       = $(FILENAME).idx
 DVI       = $(FILENAME).dvi
 PDF       = $(FILENAME).pdf
 PDFOUT    = $(FILENAME)_enc.pdf

 cd /usr/local/teTeX/share/texmf/dvipdfm
 ln -s /usr/local/share/ghostscript/Resource .
 all:
 	make tex
 	make tex
 	make idx
 	make tex
 	make dvipdf
 	make pw
 distclean:
 	make clean
 	rm $(PDFOUT)
 clean:
 	rm *.aux *.dvi *.idx *.ilg *.ind *.log *.out *.toc *~ $(PDF)
 tex:
 	uplatex $(TEX)
 idx:
 	makeindex $(IDX)
 dvipdf:
 	dvipdfmx $(DVI)
 pw:
 	pdftk $(PDF) output $(PDFOUT) owner_pw foobar

[[Acrobat Reader:http://oku.edu.mie-u.ac.jp/~okumura/linux/acroread.html]]
をインストールされたかたは /usr/local/Acrobat5/Resource/Font
も同様にシンボリックリンクして使えそうです。
この場合、用意した LaTeX 文書ファイルは doc001.tex という名前です。makeindex コマンドで索引を生成するのと、[[pdftk]] でコピー・ペースト・印刷の禁止、パスワードの付与を行うために、

これで動くはずです。
テストしてみましょう。
- LaTeX での処理を2回
- makeindex
- LaTeX で最終処理
- dvipdfmx で PDF ファイル生成
- 生成した PDF ファイルを基に、pdftk でパスワード付与した PDF を生成

 platex hello      # hello.tex を hello.dvi に変換
 dvipdfmx hello    # hello.dvi を hello.pdf に変換
という順番での処理を行う必要があります。
また、処理終了後、あるいは処理を中断するときには、中間生成ファイルや PDF 等を必要に応じて削除する必要があります。

できた hello.pdf をダブルクリックして見てください。
このようなときに、上のような Makefile を作成しておくと、

Acrobat Reader なら完璧に見えますが,古い Mac OS X(10.3 以前)の「プレビュー」では明朝がゴシックで代用されてしまいます。
少し重くなってもいいからやはりフォントを埋め込みたいという場合は,次のようにします。
 $ make

Mac OS X のヒラギノなら,まず /System/Library/Fonts
の「ヒラギノ明朝 Pro W3.otf」「ヒラギノ角ゴ Pro W3.otf」へのシンボリックリンクをうまく作り,その名前をそれぞれ HiraMinPro-W3.otf,HiraKakuPro-W6.otf として,dvipdfmx
から見えるところ(たとえば /usr/local/share/ghostscript/Resource/CIDFont
というディレクトリを作ってその中)に入れます。
mktexlsr を忘れないでください。
そして,/usr/local/teTeX/share/texmf/dvipdfm/config/cid-x.map の
(厳密には make all ですが、make は引数なしで実行されたときの default として、Makefile に最初に記述のある "all" を引数にとったときと同じ処理をします)と入力するだけで、上述の一連の処理が全て行われます。
また、

 rml  H Ryumin-Light
 rmlv V Ryumin-Light
 gbm  H GothicBBB-Medium
 gbmv V GothicBBB-Medium
 $ make clean

となっているところをコメントアウト(頭に % を付ける)して,代わりに次のように書きます。
と入力すると、文書ファイルと最終生成物である PDF ファイル以外の全てのファイルが削除され、

 rml   H HiraMinPro-W3.otf
 rmlv  V HiraMinPro-W3.otf
 gbm   H HiraKakuPro-W6.otf
 gbmv  V HiraKakuPro-W6.otf
 $ make distclean

他のフォントでも試してみてください。
たとえば小塚フォントなら次のようにします。
で、文書ファイル以外の全てのファイル(最終生成物の PDF ファイルを含めて)が削除されます。

 rml   H kozminstd-medium.otf
 rmlv  V kozminstd-medium.otf
 gbm   H kozgostd-medium.otf
 gbmv  V kozgostd-medium.otf
* リンク [#i5861f79]

morisawa.sty で使う場合にはさらにフォント定義を cid-x.map に追加します。
次はほんの一例です。
Makefile の書き方は簡単な条件分岐なので、ご覧になるだけでも何となくお分かりになると思います。
ネット上では、"Makefile 書き方" で検索していただければ数多くの解説を参照することができると思います。
ここでは参考に以下ひとつだけ挙げておきます(append 歓迎)。

 ryumin-l      H Ryumin-Light
 ryumin-l-v    V Ryumin-Light
 gtbbb-m       H GothicBBB-Medium
 gtbbb-m-v     V GothicBBB-Medium
 futomin-b     H kozminstd-bold.otf
 futomin-b-v   V kozminstd-bold.otf
 futogo-b      H kozgostd-heavy.otf
 futogo-b-v    V kozgostd-heavy.otf
 jun101-l      H kozgostd-light.otf
 jun101-l-v    V kozgostd-light.otf
-[[TeX文章をmakeで管理:http://folioscope.hatenablog.jp/entry/2013/07/29/000009]]
- [[Makefileの解説:http://www.am.sanken.osaka-u.ac.jp/~mukaigaw/misc/Makefile.html]]
-[[GNU Makeで楽々コンパイル(Latexも楽々):http://note.chiebukuro.yahoo.co.jp/detail/n36864]]
-[[自分用latex Makefile:https://gist.github.com/1095020]]
-[[thesis-template:https://github.com/ymrl/thesis-template]]
--[[修士論文用のテンプレートを作った:http://mkdir.g.hatena.ne.jp/ymrl/20121112/1352743084]]
-[[texマン:http://utata.hatenadiary.jp/entry/2012/11/03/215140]]
-[[なんかpdf作るために使ったり:https://gist.github.com/programmerMOT/4994126]]
-[[[TeX]Makefileの活用[Make]:http://kevlar.blog137.fc2.com/blog-entry-3.html]]

>JIS外字を扱えるようにするには,さらに
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/aj16.tar.Z
を /usr/local/share/ghostscript/Resource
で展開しておき,齋藤修三郎さんの
[[UTF16用VF:http://psitau.tripod.co.jp/utf.html]]
から utf パッケージをダウンロードして展開します。
 unzip utfbin.zip
 cd utfbin
 mv vf /usr/local/teTeX/share/texmf/fonts/vf/utf
 mv tfm /usr/local/teTeX/share/texmf/fonts/tfm/utf
 mkdir -p /usr/local/teTeX/share/texmf/ptex/platex/misc
 mv *.sty /usr/local/teTeX/share/texmf/ptex/platex/misc/
 mv unicode.map /usr/local/teTeX/share/texmf/dvips/config/
 mv unicode-x.map /usr/local/teTeX/share/texmf/dvipdfm/config/
>これで,ヒラギノをお持ちでしたら,/usr/local/teTeX/share/texmf/dvips/config/config.ps
の適当な場所に p +unicode.map と追加し,/usr/local/teTeX/share/texmf/dvipdfm/config/dvipdfmx.cfg
の最後に f unicode-x.map と追加します。
ヒラギノ以外のフォントも使えます。
* 関連項目 [#db55a14a]

>2004/01/07以降のdvipdfmxでは,古い -f 対応パッチを当てないでください。
Make と LaTeX の組み合わせとして次のようなものもあります。

[[otf パッケージ:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?OTF]] については別ページにしました。
- Latexmk
- OMake
- arara
- Lua スクリプト
- Ruby スクリプト
- Perl スクリプト
- バッチファイル

>Ignoring stream with with multiple segments というエラーが出たら
[[dvipdfm の日本語化:http://www.nn.iij4u.or.jp/~tutimura/hirata/]]
のページにある patch-concat-stream.diff をあててください。
Makefile.in だけエラーが出ますので,パッチを当てた後で Makefile.in
をエディタで開き,dvipdfmx_SOURCES に filter.c concat.c を追加,dvipdfmx_OBJECTS に filter.o concat.o
を追加します。
**Latexmk [#ae6ae029]

>古い epsbox.sty 対応のパッチを野田さんが作ってくださいました &#x5b;[[qa:23745]]&#x5d;。
これは dvipdfmx-20031207 で取り込まれました (Thanks: 土村さん)。
[[Latexmk - TeX Wiki>Latexmk]] を参照.

**xdvi [#a7bdcae8]
**arara [#vc2756b0]
-https://github.com/cereda/arara
-[[チョット arara してみた件:http://d.hatena.ne.jp/zrbabbler/20180627/1530099380]]

>Mac OS X では内山さんの [[CocoaなpTeX用プレビュアMxdvi:http://macptex.appi.keio.ac.jp/~uchiyama/macosx/mxdvi.html]] のほうが簡単です。
Mac OS X + X11 で xdvi をインストールする方法は内山さんの
[[Mac OS XにTeXをインストールしよう:http://macptex.appi.keio.ac.jp/~uchiyama/macosx/]]
に詳しく載っています。
あるいは統合環境の [[TeXShop]]
を使えばエディタやプレビューアを別途用意する必要もなくなります。
**OMake → 問題が発生する場合は [[Latexmk]] を使用する [#df86b9ce]
http://omake.metaprl.org/

>Plamo 3.3 でのコンパイルについては →
&#x5b;[[qa:22697]]&#x5d;,&#x5b;[[qa:22702]]&#x5d;。
-[[OMakeマニュアル 日本語訳:http://omake-japanese.osdn.jp/]]
-[[ファイルを分割していると OMake + BibTeX がうまくいかない:http://qiita.com/t_uda/items/c89f300868e6a3707f6c]]
-[[LaTeXのソースを毎回makeしてる情弱は俺まででいい #OMake:http://st63jun.hatenablog.jp/entry/2013/01/30/002642]]
-[[OmakeによるLatexファイルの継続ビルド。べんり。:https://gist.github.com/4602243]]
-[[ぼくのかんがえたさいきょうの小説執筆環境:https://github.com/yoshimuraYuu/myBlog/blob/master/articles/novel.md]]
-[[latex-template:https://github.com/nojima/latex-template]]
-[[[OMake][tex] 複数ファイル:http://ameblo.jp/kaerunyaru/entry-11283143868.html]]
-[[Windowsで快適なLaTeX環境を構築する:http://nojima.hatenablog.com/entry/2012/01/12/205857]]
-[[TeXファイルの変更を監視して自動コンパイル:http://d.hatena.ne.jp/kaishin0527/20110915/1316159313]]
-[[OMakeで快適に論文執筆:TeX編:http://leoclock.blogspot.jp/2009/09/omaketex.html]]
-[[WindowsでOMakeを使って継続ビルド:http://blog.s21g.com/articles/1219]]
-[[OMake つかって LaTeX コンパイルしたら簡単すぎて身長が5cm伸びた:http://d.hatena.ne.jp/hayamiz/20081208/1228727272]]

土村さんの
[[xdvi 日本語化・機能拡張パッチ:http://www.nn.iij4u.or.jp/~tutimura/tex/xdvi.html]]
のページから xdvik-22.40y1 のパッチをいただいてきます。
また,土村さんのパッチの元になった最新の xdvik を CTAN
ミラー,たとえば
[[Ring Server の CTAN:dviware/xdvik/>CTAN:dviware/xdvik/]]
からいただいてきて作業します:
**Lua スクリプト [#v301e7db]
-[[ptex2pdf]]

 tar xvzf xdvik-22.40y1.tar.gz
 cd xdvik-22.40y1
 zcat xdvik-22.40y1-j1.21.patch.gz | patch -p1
 # --with-vflib=vf2ft で FreeType 対応になります。
 # うまくいかなければ --with-vflib=vf2ft を外して VFlib でお使いください。
 ./configure --prefix=/usr/local/teTeX --disable-multiplatform --with-vflib=vf2ft
 make
 # 次の cd をすれば texmf.cnf が上書きされません (Thanks: takiさん)
 cd texk/xdvik
 make install
**Ruby スクリプト [#b8eace76]
-[[部門/TeX/ソースファイルが更新されたら自動的にコンパイルするスクリプト:http://www47.atwiki.jp/cscd/m/pages/219.html]]

FreeType2 の include ファイルが /usr/local/include/freetype2/freetype
に入っている場合はこのシンボリックリンクを /usr/local/include/freetype
に作っておかないとうまく探せないかもしれません。
**Perl スクリプト [#kb29316f]
-[[ファイルが更新されたら自動で platex して dvipdfmx する:http://fjyuu.info/watch-platexpdf/]]
--[[platexpdf – github:https://github.com/fjyuu/platexpdf]]

--with-vflib=vf2ft しなかった場合は,/usr/local/teTeX/share/texmf/xdvi/vfontmap
に次のように書いておきます。
**バッチファイル [#n34560fd]
-[[2011.12.14 - Maidsphere // メイドスフィア:http://www.maidsphere.jp/archive/20111214/]], [[2011.3.8 - Maidsphere // メイドスフィア:http://www.maidsphere.jp/archive/20110308]]

 min         min
 tmin        tmin
 nmin        min
 goth        goth
 tgoth       tgoth
 ngoth       goth
 jis         min
 jis-v       tmin
 jisg        goth
 jisg-v      tgoth
 dm          min
 dg          goth
 ryumin-l    min
 ryumin-l-v  tmin
 gtbbb-m     goth
 gtbbb-m-v   tgoth
 futomin-b   min
 futomin-b-v tmin
 futogo-b    goth
 futogo-b-v  tgoth
 jun101-l    goth
 jun101-l-v  tgoth

この左辺は tfm 名,右辺は /etc/vfontcap の項目名です。
適宜書き換えてください。

--with-vflib=vf2ft の場合は右辺はフォントへのフルパスにします。
例えば次のようにします。
ソースツリーの texk/xdvik/vfontmap.sample を参考にして補ってください
(左辺はこれ以外に min や goth など上に挙げてあるものを並べます)。

 jis     /usr/local/share/ghostscript/fonts/kochi-mincho-subst.ttf
 jisg    /usr/local/share/ghostscript/fonts/kochi-gothic-subst.ttf
 jis-v   /usr/local/share/ghostscript/fonts/kochi-mincho-subst.ttf
 jisg-v  /usr/local/share/ghostscript/fonts/kochi-gothic-subst.ttf

私は Linux も Mac OS X も FreeType 対応にしてしまいました。

ついでに,/usr/local/teTeX/share/texmf/xdvi/XDvi
または ~/.Xresources(または ~/.Xdefaults)に次のように標準的な開き方の設定しておくといいでしょう。

 XDvi.Geometry: 950x700+0+0
 XDvi.shrinkFactor: 5
 XDvi.expert: true
 XDvi.editor: emacsclient --no-wait +%l %f
 ! または XDvi.editor: gnuclient -q +%l %f

書き換えたら xrdb -merge ~/.Xdefaults のようなオマジナイが必要です。

Expert モード(右側のメニューがないモード)のオン/オフは x キーです。

(p)latex に -src オプションを与えると,xdvi を Ctrl-左クリック で Emacs の該当ソース個所に飛びます。
逆に,xdvi-search.el を使えば Emacs から xdvi の該当個所に飛べます。
詳細は
[[The Xdvik Homepage:http://xdvi.sourceforge.net/]]
の [[Inverse Search with Xdvi(k):http://xdvi.sourceforge.net/inverse-search.html]]
をご覧ください。
AUCTeX で使う方法は [[AUCTeX]] のページにも書いておきました。

**udvips [#p7a85c4c]

Unicode対応のdvipsです。

 cd /usr/local/src/tetex-src-2.0.2/texk/
 mkdir udvipsk
 cd udvipsk
 cp -p ../dvipsk/* .

ここでMakefileを次のように修正します。

 121c121
 < DEFS = -DHAVE_CONFIG_H $(XDEFS)
 ---
 > DEFS = -DHAVE_CONFIG_H $(XDEFS) -DUDVIPS
 225c225
 < program = dvips
 ---
 > program = udvips

これでmakeします。

 make clean
 make
 cp -p udvips /usr/local/teTeX/bin/

**日本語MetaPost [#b626cf65]

角藤さんが
[[hideyukiさん:http://www.sat.t.u-tokyo.ac.jp/~hideyuki/metapost/]]
のソースへのパッチを作ってくださいました &#x5b;[[qa:17471]]&#x5d;。
このパッチを当てて少し修正したものを念のため
[[jmpost-0.04a.tar.gz:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/jmpost-0.04a.tar.gz]]
として置いておきます。

 cd /usr/local/src/tetex-src-2.0.2/texk/web2c/ptex-src-3.1.4/
 tar xvzf jmpost-0.04a.tar.gz
 cd jmpost-0.04a/
 ./configure
 make
 make install
 mktexlsr

/usr/local/teTeX/share/texmf/web2c/texmf.cnf を次のように修正します。

 MPXCOMMAND.jmpost = pmakempx
 MPXCOMMAND = makempx

あとはたぶん export TEX=platex のように環境変数を設定するだけです。

>松山さんも
[[jmpost-0.04-ptex312-cygwin.patch:http://village.infoweb.ne.jp/~fwhw5892/jweb/jmpost-0.04-ptex312-cygwin.patch]]
を作られました。
hideyuki さんの jmpost-0.04 に対するパッチです。

**おまけ [#m65b8b36]

/usr/local/teTeX/share/texmf/dvips/config/config.ps に o&nbsp;|lpr
という行があると「dvips ファイル名」で印刷が始まってしまいます。
この仕様が嫌な人はこの行の先頭に % を付けてコメントアウトしておきましょう。

古い dvips では /usr/local/teTeX/share/texmf/dvips/tetex/config.pdf の G
とだけ書いた行があると不都合があることがありましたが,今は問題ありません。

/usr/local/teTeX/share/texmf 以下にファイルを追加するたびに mktexlsr
または texhash というコマンドを打ち込まなければなりません。
これが面倒な人は,/usr/local/teTeX/share/texmf/ls-R
を削除し,/usr/local/teTeX/share/texmf/web2c/texmf.cnf の

 TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN}

の !! をすべて消しておきます。

ついでに,texmf.cnf で

 TEXINPUTS = .;$TEXMF/tex/{generic,}//



 TEXINPUTS = .;$TEXMF/{tex,ptex}/{generic,}//

に変えると,kpsewhich jarticle.cls
と打ち込んだとき jarticle.cls
の場所が見つかるようになります。

フォントの自動作成を /var/tmp/texfonts 以下にするには,
/usr/local/teTeX/share/texmf/web2c/mktex.cnf で
 
 : ${MT_FEATURES=appendonlydir,varfonts}

のようにしておきます。

また,[[qa:6863]]
にあるように,鈴木秀幸さんのご指摘に従って
/usr/local/teTeX/share/texmf/tex/latex/graphics/dvips.def
を以下のように修正すると特殊な場合に文字のずれがなくなるようです(しかしこれだと xdvi
がうまく働かない? ← 日本語パッチを当てなければ大丈夫のようです。Thanks: 土村さん):

 \def\Gscale@start{\special{ps: gsave currentpoint currentpoint translate
 \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
 \def\Gscale@end{\special{ps: currentpoint matrix currentmatrix transform
 grestore matrix currentmatrix itransform moveto}}

[[TeX を使ってみよう:http://oku.edu.mie-u.ac.jp/~okumura/tex/]]
のように CGI で運用するときは,texmf.cnf で openin_any = p
にしておかないと危険かもしれません([[詳細:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%E3%82%92Web%E3%81%A7]])。

**新LaTeXのインストール [#xa73b0d0]

2004年3月にリリースされた2003年12月付のLaTeXをインストールしてみます。
ptex-texmf-2.2 は、正式に新LaTeXに対応していますから、必ずこの作業を
して下さい。

適当な近場,例えば Ring Server の [[CTAN:macros/latex/base/]]
をディレクトリごといただいてきて,その中で作業します。

 initex unpack.ins
 initex latex.ltx
 mv /usr/local/teTeX/share/texmf/tex/latex/base ../base-bak
 mkdir /usr/local/teTeX/share/texmf/tex/latex/base
 mv latex.fmt /usr/local/teTeX/share/texmf/web2c/
 mv latexbug.tex testpage.tex lablst.tex idx.tex nfssfont.tex \
 small2e.tex sample2e.tex docstrip.tex \
 *.ltx *.cls *.clo *.sty *.fd *.def *.cfg \
 /usr/local/teTeX/share/texmf/tex/latex/base/
 mv *.ist /usr/local/teTeX/share/texmf/makeindex/
 cd /usr/local/teTeX/share/texmf/ptex/platex/base/
 iniptex platex.ltx
 mv platex.fmt /usr/local/teTeX/share/texmf/web2c/