From a9eff7800c1787b0af5f140437003eea9e53cbb3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 18 May 2010 18:19:00 +0000 Subject: towards 2010 pretest: enabling restricted write18, PDF 1.5 by default, ptex support files, other new programs, with i386-linux binaries git-svn-id: svn://tug.org/texlive/trunk@18336 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/platex/base/Changes.txt | 299 ++ Master/texmf-dist/source/platex/base/README.txt | 170 + Master/texmf-dist/source/platex/base/README2.txt | 59 + Master/texmf-dist/source/platex/base/Xins.ins | 56 + Master/texmf-dist/source/platex/base/jclasses.dtx | 4145 ++++++++++++++++++++ Master/texmf-dist/source/platex/base/jltxdoc.dtx | 197 + Master/texmf-dist/source/platex/base/kinsoku.dtx | 262 ++ .../texmf-dist/source/platex/base/nidanfloat.dtx | 1074 +++++ .../texmf-dist/source/platex/base/nidanfloat.ins | 7 + Master/texmf-dist/source/platex/base/pl209.def | 106 + Master/texmf-dist/source/platex/base/pl209.dtx | 255 ++ Master/texmf-dist/source/platex/base/pl209.ins | 22 + Master/texmf-dist/source/platex/base/platex.dtx | 867 ++++ Master/texmf-dist/source/platex/base/plcls.ins | 38 + Master/texmf-dist/source/platex/base/plcore.dtx | 850 ++++ Master/texmf-dist/source/platex/base/plcore.ins | 60 + Master/texmf-dist/source/platex/base/pldoc.tex | 182 + Master/texmf-dist/source/platex/base/pldocs.ins | 14 + Master/texmf-dist/source/platex/base/plext.dtx | 1238 ++++++ Master/texmf-dist/source/platex/base/plfmt.ins | 24 + Master/texmf-dist/source/platex/base/plfonts.dtx | 1884 +++++++++ Master/texmf-dist/source/platex/base/plnews01.tex | 234 ++ Master/texmf-dist/source/platex/base/plnews02.tex | 122 + Master/texmf-dist/source/platex/base/plnews03.tex | 80 + Master/texmf-dist/source/platex/base/plnews04.tex | 85 + Master/texmf-dist/source/platex/base/plnews05.tex | 67 + Master/texmf-dist/source/platex/base/plnews06.tex | 137 + Master/texmf-dist/source/platex/base/plnews07.tex | 106 + Master/texmf-dist/source/platex/base/plnews08.tex | 111 + Master/texmf-dist/source/platex/base/plpatch.ltx | 12 + Master/texmf-dist/source/platex/base/plvers.dtx | 162 + 31 files changed, 12925 insertions(+) create mode 100644 Master/texmf-dist/source/platex/base/Changes.txt create mode 100644 Master/texmf-dist/source/platex/base/README.txt create mode 100644 Master/texmf-dist/source/platex/base/README2.txt create mode 100644 Master/texmf-dist/source/platex/base/Xins.ins create mode 100644 Master/texmf-dist/source/platex/base/jclasses.dtx create mode 100644 Master/texmf-dist/source/platex/base/jltxdoc.dtx create mode 100644 Master/texmf-dist/source/platex/base/kinsoku.dtx create mode 100644 Master/texmf-dist/source/platex/base/nidanfloat.dtx create mode 100644 Master/texmf-dist/source/platex/base/nidanfloat.ins create mode 100644 Master/texmf-dist/source/platex/base/pl209.def create mode 100644 Master/texmf-dist/source/platex/base/pl209.dtx create mode 100644 Master/texmf-dist/source/platex/base/pl209.ins create mode 100644 Master/texmf-dist/source/platex/base/platex.dtx create mode 100644 Master/texmf-dist/source/platex/base/plcls.ins create mode 100644 Master/texmf-dist/source/platex/base/plcore.dtx create mode 100644 Master/texmf-dist/source/platex/base/plcore.ins create mode 100644 Master/texmf-dist/source/platex/base/pldoc.tex create mode 100644 Master/texmf-dist/source/platex/base/pldocs.ins create mode 100644 Master/texmf-dist/source/platex/base/plext.dtx create mode 100644 Master/texmf-dist/source/platex/base/plfmt.ins create mode 100644 Master/texmf-dist/source/platex/base/plfonts.dtx create mode 100644 Master/texmf-dist/source/platex/base/plnews01.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews02.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews03.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews04.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews05.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews06.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews07.tex create mode 100644 Master/texmf-dist/source/platex/base/plnews08.tex create mode 100644 Master/texmf-dist/source/platex/base/plpatch.ltx create mode 100644 Master/texmf-dist/source/platex/base/plvers.dtx (limited to 'Master/texmf-dist/source/platex') diff --git a/Master/texmf-dist/source/platex/base/Changes.txt b/Master/texmf-dist/source/platex/base/Changes.txt new file mode 100644 index 00000000000..71fc6ddd39d --- /dev/null +++ b/Master/texmf-dist/source/platex/base/Changes.txt @@ -0,0 +1,299 @@ +<2006/11/10> + * plfonts.dtx: $a^\mathrm{b}, a_\mathrm{b}$のような記述をした場合に + エラーになる問題に対処。(ありがとうございます、ymtさん) + * jclasses.dtx: 解説を追加。(ありがとうございます、ymtさん) +---------------- +<2006/06/27> + * plfonts.dtx: \reDeclareMathAlphabetをLaTeX <2005/12/01>で数式用書 + 体変更命令がrubustになったのに対応。(ありがとうございます、ymtさん) + * jclasses.dtx: pLaTeX 209互換モードで数式famが重複使用されていたの + を解消。(ありがとうございます、ymtさん) + * tascmac.sty: itembox,screen環境で罫線がずれるバグを修正。 + (ありがとうございます、北見さん) +---------------- +<2006/01/04> + * nidanfloat.dtx: 必須フォーマットファイルをpLaTeX2eからLaTeX2eへ変更。 + * plfonts.dtx: \DeclareFontEncoding@ 中で \LastDeclaredEncodeng の再定義が + 抜けていたので追加。 + * plvers.dtx: バージョン番号更新(platex<2006/01/04>) +---------------- +<2005/01/04> + * plfonts.dtx: \fontfamily中のフラグを修正。 + (ありがとうございます、角藤さん) + * plvers.dtx: バージョン番号更新(platex<2005/01/04>) +---------------- +<2004/08/10> + * plfonts.dtx: verbatim環境で余計な前後空きが発生しないように \fontfamily + を修正。 + (ありがとうございます、本田さん) + * plfonts.dtx: JY1,JT1以外の和文エンコーディングも使用できるように修正。 + (ありがとうございます、井上さん) + * jclasses.dtx: \part, \chapter の \@afterindentfalse を \@afterindenttrue + に変更。 + * jclasses.dtx: \section, \subsection, \subsubsection の前後空きの + 伸縮幅を修正。 + (ありがとうございます、鈴木た@MILNさん) + * LaTeX2e 2003/12/01 版への対応を確認。 +---------------- +<2002/04/09> + * jclasses.dtx: 縦組スタイルで \flushbottom しないようにした。 +---------------- +<2002/04/05> + * plfonts.dtx: |\adjustbaseline|の|\iftdir|の位置を、和文フォントの基 + 準値を設定した後に移動。(ありがとう、奥村さん) +---------------- +<2002/04/01> + * tascmac.sty: \ascii, \Ascii, \ASCII マクロがエラーになっていたのを修正。 +---------------- +<2002/01/17> + * plvers.dtx: v1.0i の更新日付が 2009 年になっていたのを 2001 に修正。 + LaTeX のバージョンも 2000 になっていたのを 2001 に修正。 +---------------- +<2001/10/04> + * jclasses.dtx: 目次で出力されるページ番号の書体を|\normalfont|に変更 + (ありがとう、鈴木た@MILNさん) + * plnews07.tex: 上記の変更の記述を追加 +---------------- +<2001/09/26> + * plnews07.tex: 追加 + * plvers.dtx: LaTeX <2001/06/01> 用に修正 + * plcore.dtx: LaTeX <2001/06/01> 用に修正 + * plext.dtx: タグ名を plcore から package に変更 + * plfmt.ins: plext.dtx の展開に用いるタグ名の変更 +---------------- +<2001/09/14> + * nidanfloat.dtx: パッケージオプション(balance, nobalance)を追加 +---------------- +<2001/09/04> + * README.txt: 使用条項を削除(ptex-texmf の COPYRIGHT を採用) + * Copyright: 削除(ptex-texmf の COPYRIGHT を採用) + * plvers.dtx: pLaTeX <2001/09/04> 用に修正 + * plpatch.ltx: pLaTeX <2001/09/04> 用に修正 + * plcore.dtx: \enlargethispage を使ったとき、脚注の線が本文と重なるのを修正 + * jclasses.dtx: \chapter コマンドをアスタリスク形式で使ったときと + そうでないときで、出力位置が異なるのを修正(ありがとう、鈴木@津さん) +---------------- +<2001/05/10> + * plext.dtx: 縦組のとき z オプションでエラーが出るのを修正 + (ありがとう、大石さん) + * plfonts.dtx: ベースラインシフトの調整値が大きくなっているのを修正 +---------------- +<2001/02/19> + * nidanfloat.dtx: 最終ページで左右の行間が揃わないのを修正 + * nidanfloat.dtx: 柱が出ないのを修正 +---------------- +<2000/12/20> + * nidanfloat.dtx: 一段抜きのフロートを混ぜるとエラーになるのを修正 + (ありがとう、倉沢@QUIPUさん) +---------------- +<2000/11/03> + * plvers.dtx: LaTeX <2000/06/01> に合わせて修正。 + * plpatch.ltx: pLaTeX<2000/11/03> 用に修正。 +---------------- +<2000/10/24> + * plfonts.dtx: \adjustbaselineで余分なアキが入らないようにした +---------------- +<2000/07/14> + * plfonts.dtx: \textbf などの書体変更コマンドで、左端の欧文との間に + \xkanjiskip が入らないのを修正(ありがとう、乙部@東大さん) +---------------- +<2000/07/13> + * nidanfloat.{dtx,ins,sty} を追加。 +---------------- +<2000/02/29> + * plvers.dtx: LaTeX <1999/12/01> に合わせて修正。 + * plpatch.ltx: pLaTeX<2000/02/29> 用に修正。 +---------------- +<1999/05/18> + * jclasses.dtx: enumerate +---------------- +<1999/04/05> + * plvers.dtx: LaTeX <1998/12/01> に合わせて修正。 + pLaTeX のバージョンを <1999/04/05> にした。 + * plfonts.dtx: 文書の先頭で、和文デフォルトフォントの変更が反映 + されないのを修正(ありがとう、山本@理科大さん)。 + * plcore.dtx: \\ にオプションを付けたときに余計なスペースが出力 + されてしまうのを修正(ありがとう、鈴木@京大さん)。 + * plpatch.ltx: pLaTeX<1999/04/05> 用に修正。 + * README.txt: バージョンの変更 + * plnews05.txt: 新規追加 +---------------- +<1999/01/27> + * docstrip.cfg: 削除 +---------------- +<1998/09/01> + * plvers.dtx: pLaTeX バージョンを <1998/09/01> とした。 + * plpatch.ltx: pLaTeX <1998/09/01> 用に修正。 +---------------- +<1998/08/10> + * plfonts.dtx: \DeclareFixedFont コマンドが \@onlypreambre になっていた + のを修正した。 + * plnews.cls: itemize環境を再定義 +---------------- +<1998/04/09> + * jclasses.dtx: \rightmark コマンドの引数に \today コマンドを修正した + とき、出力される日付が「平成元年」になってしまうのを修正 + (pl980409.patch)。 +---------------- +<1998/03/23> + * jclasses.dtx: report, book クラスで、番号の付かない見出しレベルの + ペナルティを \@M に修正した(pl980323.patch)。 +---------------- +<1998/02/27> + * tascmac.sty: calc パッケージとともに用いたとき、screen 環境、 + itembox 環境、boxnote 環境がエラーになるのを修正(pl980227.patch)。 +---------------- +<1998/02/03> + * All: LaTeX <1997/12/01> に対応した。 + * hyphen.cfg ファイルを追加した。 + * Copyright ファイルを追加した。 + * jclasses.dtx: 2eモード時のa5pのトップマージンを0.7in増やした。 +---------------- +<1997/12/12> + * jclasses.dtx: [j,t]report, [j,t]bookクラスで oneside オプションを指定し、 + bothstyle スタイルにすると、コンパイルエラーになるのを修正。 +---------------- +<1997/09/03> + * jclasses.dtx: 2.09互換モードで landscape オプションが効かないのを修正。 + * jclasses.dtx: landscape 時に、縦横のサイズを交換してから、左右マージン + などを計算するように変更。 +---------------- +<1997/08/25> + * jclasses.dtx: 片面印刷のとき、section レベルの文字列が柱に出力されない + のを修正。 +---------------- +<1997/07/29> + * jltxdoc.dtx: \ と " の前にも \xkanjiskip が入るように修正。 +---------------- +<1997/07/10> + * plfonts.dtx: fdファイル名の小文字化が効いていなかったのを修正。 +---------------- +<1997/07/08> + * jclasses.dtx: 縦組クラスで、書体サイズを変更したとき、ベースラインが + おかしくなるのを修正。 +---------------- +<1997/07/02> + * plnews02.tex: 項目の移動と記述内容の修正。 +---------------- +<1997/06/25> + * plcore.dtx: オリジナルの LaTeX2e の改行マクロの変更に対応。 + * plfonts.dtx, pl209.dtx: \em, \emph で和文書体も変更するように修正。 + * plnews02.tex: 上記 2つの修正について記述。 +---------------- +<1997/04/24> + * plfonts.dtx: フォント定義ファイル名を小文字に変換してから探すようにした。 +---------------- +<1997/04/09> + * plfonts.dtx: 縦横エンコード・リストの分離による拡張 +---------------- +<1997/04/08> + * jclasses.dtx: 横組クラスでのトップマージンの値を修正した。 + * plfonts.dtx: 和文エンコード関連の修正 + * plfonts.dtx: 和文エンコード宣言コマンドを縦組用と横組用で分けるようにした。 + * plnews02.tex (NEW): 前回からの変更をまとめた文書ファイル。 +---------------- +<1997/03/11> + * plfonts.dtx: 和文フォントをすべてのサイズでロードできるようにした。 +---------------- +<1997/02/24> + * pl209.dtx: \RequirePackage{oldlfonts} を \RequirePackage{oldlfonts} に + 修正。 + * jclasses.dtx: 縦組クラスの \thefigure の \if 文の対応がおかしいのを修正。 + * jclasses.dtx: 縦組クラスの表紙を縦組にした。 +---------------- +<1997/02/02>+2 + * jclasses.dtx: \topmargin の計算を間違えていたのを修正。 + * jclasses.dtx: 縦組クラスで開始ページがおかしくなるのを修正。 +---------------- +<1997/02/02>+1 + * jclasses.dtx: disablejfam オプションの処理で、互換モードかそうでないかの + 判断が逆なのを修正。 + * plnews01.tex: \mathrm, \mathbf の部分の記述を修正 +---------------- +<1997/02/01> + * plnews.cls (NEW): plnews01tex 用のクラスファイルを作成した。 + * plnews01.tex (NEW): 前回からの変更をまとめた文書ファイル。 +---------------- +<1997/01/31> + * plcore.dtx: 下付き文字を出力する \textsubscript コマンドを削除。 + * plfonts.dtx: 数式文字フォントの設定をクラスファイルに移動。 + * plfonts.dtx: 和欧文の数式文字フォントを一度に切り替えるためのコマンドを + 定義する、\reDeclareMathAlphabet コマンドを追加。 + * jclasses.dtx: 数式文字フォントの設定を追加。 + * jclasses.dtx: 日本語ファミリを宣言しないオプション(disablejfam)を + 2e モードでだけ指定可能にした。 +---------------- +<1997/01/30> + * README.euc: ltxcheck による確認時の記述を追加 + * plcore.dtx: 下付き文字を出力する \textsubscript コマンドを追加。 + * plfonts.dtx: \mathrm, \mathbf を和欧文フォントを切り替えるように拡張。 + * jclasses.dtx: 2eモードで、通常よりテキスト領域を広くとる設定を a4j + などのオプション指定時に有効になるように修正した。 + * jclasses.dtx: \thefigure の定義内、\c@chapter のタイプミス修正。 + * pl209.dtx: 互換モードでの \rm や \tt のような二文字の書体変更コマンド + の動作を pLaTeX 2.09 での動作と同じにした。 +---------------- +<1997/01/29> + * jclasses.dtx: 日本語ファミリの宣言をしないオプション(disablejfam) + を追加。 + * jclasses.dtx: labelitemii で \fi していないのと \bfseries の + タイプミスを修正。 + * jclasses.dtx: \documentclass 時のレイアウトを少し広げた。 + * pl209.dtx, jclasses.dtx, plfonts.dtx: 数式モード内で \rm, \bf コマンド + でローマン体、ボールド体にならないバグを修正。 +---------------- +<1997/01/26> + * All: 変更履歴の説明を mendex で処理できるように修正。 + * README.euc: EC フォントの記述を追加した。 + * platex.dtx: pldoc.ind を作成するための mendex 辞書ファイルを + pldoc.tex を処理したときに、自動的に用意するようにした。 + * plfonts.dtx: 小文字のフォント定義ファイル(jy1mc.fd など)をロードする + ようにした。 + * jclasses.dtx: 2.09互換モードで tombow オプションがおかしくなるのを修正。 + * jclasses.dtx: 2.09互換モードで {a,b}{4,5}{j,p} のスタイルオプション + をサポート。ただし、ランドスケープモード用の設定はしていない。 +---------------- +<1997/01/24> + * pl209.def: \let\jfam\symmincho としていたのを修正。 +---------------- +<1997/01/23> + * All: LaTeX2e <1996/12/01> に対応 + * plcore.dtx: クラスオプションに tombow を指定したとき、トンボの脇に + 作成日付を出力するようにした。日付の出力を抑制したい場合は、tombo + (最後の w なし)を指定する。 + * jclasses.dtx: LaTeX2e <1996/06/01> と組み合わせたとき、 + {j|t}{article|book} の \part コマンドの後ろで二段組になってしまう + のを修正。 + * jclasses.dtx: verse 環境で「@centercr」という文字列が出力されるのを + 修正。 + * jclasses.dtx, pl209.dtx: mincho, gothic を数式記号としてではなく、 + 文字として宣言するようにし、数式ファミリを使用しないようにした。 + ただし、2.09互換モードでは、従来どおり、日本語ファミリを定義している。 + * jltxdoc.dtx: ltxdoc, doc, article クラスをベースにするようにした。 + * pl209.def: latex209.def をロードするようにした。 +---------------- +<1996/03/05> + * All: 縦組拡張部分を外部パッケージ(plext.sty)にした。 + * All: いくつかのタイプミス修正。 + * plfonts.dtx: \DeclareFixedFont の日本語化。 + * plfonts.dtx: 和文代用フォントが使われないのを修正。 + * plfonts.dtx: \notkfam@list, \notffam@list の初期値を変更し、 + 起動直後の速度を速めた。 + * jclasses.dtx: \evensidemargin と \oddsidemargin の影響が縦組と横組で + 逆なのを修正。 + * jclasses.dtx: report, article クラスのページスタイルのデフォルトを + headings から plain にした。 + * jclasses.dtx: bothstyle ページスタイルでの偶数ページと奇数ページの + 出力位置が逆なのを修正。 + * jclases.dtx: plain や headings から headnombre, footnombre, plain + などに切り替えたときに、ページ番号位置が揃わないのを修正。 + * jclasses.dtx: \topmargin の値が反映されないのを修正。 + * jclasses.dtx: \tabbing 環境で和欧文間スペースが入るのを修正。 + * jclasses.dtx: landscape オプションを指定してもランドスケープにならない + のを修正。 + * pl209.def: 互換モードの縦組で脚注がおかしくなるのを修正。 + * pl209.def: 互換モードで \Rensuji, \prensuji を使えるようにした。 +---------------- +<1995/09/01> + * 公開版リリース +=== EOT ===== diff --git a/Master/texmf-dist/source/platex/base/README.txt b/Master/texmf-dist/source/platex/base/README.txt new file mode 100644 index 00000000000..87aeb5c13ad --- /dev/null +++ b/Master/texmf-dist/source/platex/base/README.txt @@ -0,0 +1,170 @@ +=========================================================================== + pLaTeX2e <2006/01/04> + + Copyright 1995-2006 ASCII Corporation +=========================================================================== + +--------------------------------------------------------------------------- +● pLaTeX2e について +--------------------------------------------------------------------------- + * pLaTeX2e <2006/01/04> 版は LaTeX2e <2003/12/01> 版に対応しています。 + + * pLaTeX2e は、 TeX バージョン 3.1415 以降をベースにした pTeX で動作をし + ます。それ以外の TeX では動作しませんので、ご注意ください。 + + * pLaTeX2e は、LaTeX2e に日本語の組版機能を追加したものです。 + LaTeX2e は、LaTeXの新しいバージョンであり、 従来の LaTeXバージョン2.09 + とは内部構造が大きく異なっています。 そのため、バージョン2.09 との互換 + 性は「互換モード」という形で取っています。pLaTeX2eも同様に、バージョン + 2.09をベースにした、 jLaTeX および pLaTeX との互換性は互換モードで対処 + しています。旧バージョンとの互換性についての詳細は、pl209.dtx ファイル + を参照してください。 + +--------------------------------------------------------------------------- +● インストール +--------------------------------------------------------------------------- +pLaTeX2e をインストールするには、pTeX と LaTeX2e のファイルが必要です。 +このドキュメントでは、すでに pTeX がインストールされているものとして説 +明します。pTeX のインストールについては、pTeX に付属のドキュメントを参 +照してください。 pTeX のソースファイルは、以下のサイトなどから入手する +ことができます。 + + * ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/ + * ftp://ftp.kuis.kyoto-u.ac.jp/TeX/ASCII-pTeX/ + * ftp://bash.cc.keio.ac.jp/pub/TeX/ascii-ptex/ + * ftp://ftp.ring.gr.jp/pub/text/TeX/ascii-ptex/ + +LaTeX2e は、CTAN サイトの macros/latex/base ディレクトリから入手するこ +とができます。主な CTAN サイトはつぎのとおりです。 + + * ftp://ftp.ring.gr.jp/pub/text/CTAN/ + * ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/ + * ftp://ftp.riken.go.jp/pub/tex-archive/ + * ftp://lab.kdd.co.jp/TeX/CTAN/ + * ftp://ftp.shsu.edu/tex-archive/ + * ftp://ftp.dante.de/tex-archive/ + * ftp://ftp.tex.ac.uk/tex-archive/ + +LaTeX2e では、デフォルトで EC エンコードのフォントが用いられています。 +EC エンコードのフォントは、CTAN サイトの fonts/ec ディレクトリにあります。 + +インストールは、つぎの順序で進めていきます。 + + 1. LaTeX2e のインストール + 2. pLaTeX2e のインストール + +LaTeX2e のインストールについての詳細は LaTeX2e に付属の install.txt を +参照してください。LaTeX 2.09 のシステムの保存方法なども述べられています。 +この文書では、インストール手順の概要だけ示します。 + +以前のバージョンの LaTeX2e や pLaTeX2e をインストールしてある場合は、 +以後の作業を進める前に、(必要ならばバックアップを取ってから)それらを +削除してください。デフォルトの設定でインストールしてある場合、 LaTeX2e +と pLaTeX2e は、それぞれ、つぎのディレクトリにあります。ここで、$TEXMF +は、TeX のライブラリディレクトリ(たとえば、/usr/local/share/texmf)を +意味します。 + + LaTeX2e --- $TEXMF/tex/latex/base + pLaTeX2e --- $TEXMF/ptex/platex/base + +---------------------------------------- +1. LaTeX2e のインストール +---------------------------------------- +(1) $TEXMF/fonts/public/ec ディレクトリに EC フォントのファイル置きます。 + DC フォントは削除してください。 + +(2) $TEXMF/tex/latex/base ディレクトリに LaTeX2e のファイルを置きます。 + ここで、各ファイルに書き込み許可があるかどうかを確認してください。 + ない場合は、chmod コマンドなどで、書き込み許可を与えてください。 + +(3) unpack.ins を処理します。 + + tex -ini unpack.ins + +(4) フォーマットファイルを作成します。 + + tex -ini latex.ltx + +(5) フォーマットファイルを移動します。 + + mv -f latex.fmt $TEXMF/web2c + +(6) 実行ファイルを作成します + + cd /usr/local/bin + ln -s tex latex + +(7) 正しくインストールできたかを確認するには、次のコマンドを実行します。 + + cd /tmp + latex ltxcheck + + 実行結果は ltxcheck.log に記録されています。正しくインストールされ + ていれば、すべてのテストが "OK" になります。エラーが表示された場合 + は、その指示に従って環境を構築し直します。 + +---------------------------------------- +2. pLaTeX2e のインストール +---------------------------------------- +(1) $TEXMF ディレクトリに ptex-texmf-*.tar.gz を展開します。 + +(2) フォーマットファイルを作成します。 + + ptex -ini platex.ltx + +(3) フォーマットファイルを移動します。 + + mv -f platex.fmt $TEXMF/web2c + +(4) 実行ファイルを作成します。 + + cd /usr/local/bin + ln -s ptex platex + +(5) ls-R ファイルを更新します。 + + mktexlsr + +--------------------------------------------------------------------------- +● pLaTeX2e の文書ファイルについて +--------------------------------------------------------------------------- +pLaTeX2e のパッケージに含まれているファイルのうち、拡張子が .dtx のファイ +ルは、pLaTeX2e で定義をしているコマンドのソースコード、ソースコードの説明、 +コマンドの簡単な使い方などをまとめた文書ファイルです。.dtx ファイルは、直 +接、pLaTeX2e で処理できます。 + + platex platex.dtx + +また、pldoc.tex ファイルを処理すれば、すべての dtx ファイルをまとめて、一 +つの文書ファイルとして作成することもできます。 + + platex pldoc.tex + +pldoc.tex から pldoc.dvi を作成する手順は、platex.dtx ファイルで説明をして +います。UNIX 環境ならば、つぎの二行を実行するだけで、DVIファイルを作成する +ことができます。 + + platex Xins.ins + sh mkpldoc.sh + +なお、 pLaTeX2e の文書ファイル pldoc.tex から pldoc.dvi を作成するとき、索 +引の生成に mendex プログラムを用います。このとき、mendex 2.3g より古いバー +ジョンでは、索引ファイルの生成時にエラーとなりますので注意してください。 + +--------------------------------------------------------------------------- +● その他 +--------------------------------------------------------------------------- +pLaTeX2e で拡張された機能については platex.dtx を参照してください。 +LaTeX2e で拡張された機能については LaTeX2e の付属文書を参照してください。 +前回の版からの修正は、plnews*.tex や ltnews*.tex を参照してください。 + +pTeX と pLaTeX2e の最新情報は、 + pTeX ホームページ(http://www.ascii.co.jp/pb/ptex) +にて公開しています。 + +お問い合わせやバグレポートなどは、電子メールで www-ptex@ascii.co.jp 宛て +にお願いします。 + +--------------------------------------------------------------------------- +株式会社アスキー +=== EOT =================================================================== diff --git a/Master/texmf-dist/source/platex/base/README2.txt b/Master/texmf-dist/source/platex/base/README2.txt new file mode 100644 index 00000000000..d0873d03620 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/README2.txt @@ -0,0 +1,59 @@ +==================================================-*-indented-text-*-= + 注意 +====================================================================== + +現在の pTeX では、8 ビットコードの連続は 16 ビットコードと認識 +される可能性があります。そのため、フランス語やキリル文字などの 8 ビッ +トコードの連続する TeX ソースやハイフンパターンはまず使えせん。 + +そのため、pLaTeX2e では $TEXMF/tex/platex/base/ ディレクトリに +hyphen.cfg を用意して、不用意に他のハイフンパターンを読み込まないよう +に対策を施してあります。 + +この hyphen.cfg を他の名前 (phyphen.cfg など) に変更して、他の +hyphen.cfg を使うなどとして標準以外のハイフンパターンを読み込んだ場合、 +漢字コードと一致したときはそのまま漢字コードと認識し、漢字コードと一致 +しない場合はエラーとなる場合があります。例えば cmcyralt パッケージでは、 +途中でつぎのようなエラーになります。 + +==== +(/prj/ptex-cd/share/texmf/tex/latex/contrib/other/cmcyralt/rhy +phen.tex Russian hyphenation +! Bad \patterns. +l.107 . え + 2 +? +==== + +このときは、“?”のプロンプトに対して“x”で終了してください。残念なが +ら、このハイフンパターンは pTeX では利用できません。 + + +[babel パッケージを利用する場合] + +SJIS の pTeX でフランス語のハイフンパターンを利用すると、フォーマット +ファイル作成時に上述のようなエラーが起こることが分かっています。やはり、 +8 ビットコードの連続が 16 ビットコードと誤認されてしまうためです。 + +それでも、babel パッケージを pLaTeX で利用する際は、まず +$TEXMF/tex/platex/base/ の hyphen.cfg を他の phyphen.cfg などの名前に +変えて、babel パッケージの hyphen.cfg が使われるようにしておいてくださ +い。その後は、babel パッケージの install.txt の記述に従って、インストー +ル作業を行ってください。 + +インストール作業中に、8 ビットコードの並びを 16 ビットコードと誤認して、 +途中で、上述のようなエラーになることがあるかもしれません。 + +このときは、“?”のプロンプトに対して“x”で終了してください。残念なが +ら、このハイフォネーションパターンは pTeX では利用できません。 + +language.dat からエラーの出たハイフンパターンを削除して、エラーのでな +いハイフォネーションパターンだけを選択してから、もう一度フォーマットファ +イルを作り直してください。 + +フォーマットファイルが正常に作られても、8 ビットコードの連続が漢字コー +ドと認識されたり、エラーが出るなどの似た現象が、LaTeX ソースを処理する +際に起こる可能性もあります。 + +== +富樫 秀昭 diff --git a/Master/texmf-dist/source/platex/base/Xins.ins b/Master/texmf-dist/source/platex/base/Xins.ins new file mode 100644 index 00000000000..d0185c1c168 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/Xins.ins @@ -0,0 +1,56 @@ +%% +%% This is file `Xins.ins', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% platex.dtx (with options: `Xins') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from Xins.ins. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file platex.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: platex.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\input docstrip +\keepsilent +{\catcode`#=12 \gdef\MetaPrefix{## }} +\declarepreamble\thispre +\endpreamble +\usepreamble\thispre +\declarepostamble\thispost +\endpostamble +\usepostamble\thispost +\generate{ + \file{dstcheck.pl}{\from{platex.dtx}{plprog}} + \file{mkpldoc.sh}{\from{platex.dtx}{shprog}} +} +\endbatchfile +\endinput +%% +%% End of file `Xins.ins'. diff --git a/Master/texmf-dist/source/platex/base/jclasses.dtx b/Master/texmf-dist/source/platex/base/jclasses.dtx new file mode 100644 index 00000000000..e8018232bfd --- /dev/null +++ b/Master/texmf-dist/source/platex/base/jclasses.dtx @@ -0,0 +1,4145 @@ +% \iffalse meta-comment +%% File: jclasses.dtx +% +% Copyright 1995-2001 ASCII Corporation. +% +% This file is part of the pLaTeX2e system. +% ----------------------------------------- +% +% \fi +% +% \CheckSum{4413} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1995/04/19}{first edition} +% \changes{v1.0a}{1995/08/30}{ページスタイル部分の調整} +% \changes{v1.0b}{1995/11/08}{ページスタイル部分の調整} +% \changes{v1.0c}{1996/01/30}{\LaTeX\ \texttt{!<1995/12/01!>}での修正を反映} +% \changes{v1.0d}{1996/02/29}{デフォルトページスタイルの修正} +% \changes{v1.0e}{1996/03/14}{itemize, enumerate環境の修正} +% \changes{v1.0f}{1996/07/10}{面付けオプションを追加} +% \changes{v1.0g}{1996/09/03}{トンボの横に作成日時を出力するようにした} +% \changes{v1.1}{1997/01/16}{\LaTeX\ \texttt{!<1996/06/01!>}版に対応} +% \changes{v1.1a}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版に対応} +% \changes{v1.1a}{1997/01/25}{互換モードでp\LaTeX~2.09のa4jなどの +% 用紙オプションに対応} +% \changes{v1.1b}{1997/01/28}{日本語ファミリの宣言を再度、実装} +% \changes{v1.1d}{1997/01/29}{2eモードでa4jなどのオプションに対応} +% \changes{v1.1e}{1997/04/08}{トップマージンの値を修正} +% \changes{v1.1f}{1997/07/08}{縦組クラスでベースラインがおかしいのを修正} +% \changes{v1.1g}{1997/08/25}{片面印刷のとき、sectionレベルが出力されない +% のを修正} +% \changes{v1.1h}{1997/09/03}{landscape指定時の値を修正} +% \changes{v1.1i}{1997/12/12}{report, bookクラスで片面印刷時に、 +% bothstyleスタイルにすると、コンパイルエラーになるのを修正} +% \changes{v1.1j}{1998/02/03}{互換モード時のa5pのトップマージンを0.7in増加} +% \changes{v1.1k}{1998/03/23}{reportとbookクラスで番号を付けない見出しの +% ペナルティが\cs{M@}だったのを\cs{@M}に修正} +% \changes{v1.1m}{1998/04/07}{\cs{today}の計算手順を変更} +% \changes{v1.1n}{1998/10/13}{report,bookクラスの表番号が +% 見出しレベルに関係なくchapter番号が出力されてしまうのを修正} +% \changes{v1.1n}{1998/10/13}{mentukeオプションがエラーになっていたのを修正} +% \changes{v1.1o}{1998/12/24}{secnumdepthカウンタを$-1$以下にすると、 +% 見出し文字列も消えてしまうのを修正} +% \changes{v1.1p}{1999/1/6}{\cs{oddsidemargin}のポイントへの変換を後ろに} +% \changes{v1.1q}{1999/05/18}{縦組時のみに設定するようにした} +% \changes{v1.1r}{1999/08/09}{トップマージンの計算式を修正} +% \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と +% そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \changes{v1.3}{2001/10/04}{目次のページ番号の書体を\cs{rmfamily}から +% \cs{normalfont}に変更(ありがとう、鈴木た@MILNさん)} +% \changes{v1.4}{2002/04/09}{縦組スタイルで\cs{flushbottom}しないようにした} +% \changes{v1.5}{2004/01/15}{\cs{part},\cs{chapter}の\cs{@afterindentfalse}を +% \cs{@afterindenttrue}に変更。 +% \cs{section},\cs{subsection},\cs{subsubsection}の前後空きの伸縮幅を修正。 +% (ありがとうございます、鈴木た@MILNさん)} +% \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。} +% \fi +% +% \iffalse +\NeedsTeXFormat{pLaTeX2e} +%<*driver> +\ProvidesFile{jclasses.dtx} +% +%<*yoko> +%
\ProvidesClass{jarticle} +%\ProvidesClass{jreport} +%\ProvidesClass{jbook} +%<10pt&!bk>\ProvidesFile{jsize10.clo} +%<11pt&!bk>\ProvidesFile{jsize11.clo} +%<12pt&!bk>\ProvidesFile{jsize12.clo} +%<10pt&bk>\ProvidesFile{jbk10.clo} +%<11pt&bk>\ProvidesFile{jbk11.clo} +%<12pt&bk>\ProvidesFile{jbk12.clo} +% +%<*tate> +%
\ProvidesClass{tarticle} +%\ProvidesClass{treport} +%\ProvidesClass{tbook} +%<10pt&!bk>\ProvidesFile{tsize10.clo} +%<11pt&!bk>\ProvidesFile{tsize11.clo} +%<12pt&!bk>\ProvidesFile{tsize12.clo} +%<10pt&bk>\ProvidesFile{tbk10.clo} +%<11pt&bk>\ProvidesFile{tbk11.clo} +%<12pt&bk>\ProvidesFile{tbk12.clo} +% + [2006/06/27 v1.6 +% Standard pLaTeX class] +%<10pt|11pt|12pt> Standard pLaTeX file (size option)] +%<*driver> +] +\documentclass{jltxdoc} +\GetFileInfo{jclasses.dtx} +\title{p\LaTeXe{}の標準クラス\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% このファイルは、p\LaTeXe{}の標準クラスファイルです。 +% \dst{}プログラムによって、横組用のクラスファイルと縦組用のクラスファイル +% を作成することができます。 +% +% 次に\dst{}プログラムのためのオプションを示します。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|l} +% \emph{オプション} & \emph{意味}\\\hline +% article & articleクラスを生成\\ +% report & reportクラスを生成\\ +% book & bookクラスを生成\\ +% 10pt & 10ptサイズの設定を生成\\ +% 11pt & 11ptサイズの設定を生成\\ +% 12pt & 12ptサイズの設定を生成\\ +% bk & bookクラス用のサイズの設定を生成\\ +% tate & 縦組用の設定を生成\\ +% yoko & 横組用の設定を生成\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% +% \section{オプションスイッチ} +% ここでは、後ほど使用するいくつかのコマンドやスイッチを定義しています。 +% +% \begin{macro}{\c@@paper} +% 用紙サイズを示すために使います。 +% A4, A5, B4, B5 用紙はそれぞれ、1, 2, 3, 4 として表されます。 +% \begin{macrocode} +%<*article|report|book> +\newcounter{@paper} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@landscape} +% 用紙を横向きにするかどうかのスイッチです。デフォルトは、縦向きです。 +% \begin{macrocode} +\newif\if@landscape \@landscapefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ptsize} +% 組版をするポイント数の一の位を保存するために使います。 +% 0, 1, 2 のいずれかです。 +% \begin{macrocode} +\newcommand{\@ptsize}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@restonecol} +% 二段組時に用いるテンポラリスイッチです。 +% \begin{macrocode} +\newif\if@restonecol +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@titlepage} +% タイトルページやアブストラクト(概要)を +% 独立したページにするかどうかのスイッチです。 +% reportとbookスタイルのデフォルトでは、独立したページになります。 +% \begin{macrocode} +\newif\if@titlepage +%
\@titlepagefalse +%\@titlepagetrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@openright} +% chapterレベルを奇数ページからはじめるかどうかのスイッチです。 +% reportクラスのデフォルトは、``no''です。 +% bookクラスのデフォルトは、``yes''です。 +% \begin{macrocode} +%\newif\if@openright +% \end{macrocode} +% \end{macro} +% +% \changes{v1.0c}{1995/12/25}{Macro \cs{if@openbib} removed} +% +% \begin{macro}{\if@mainmatter} +% スイッチ|\@mainmatter|が真の場合、本文を処理しています。 +% このスイッチが偽の場合は、|\chapter|コマンドは見出し番号を出力しません。 +% \begin{macrocode} +%\newif\if@mainmatter \@mainmattertrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hour} +% \begin{macro}{\minute} +% \begin{macrocode} +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\if@stysize} +% \changes{v1.1a}{1997/01/25}{Add \cs{if@stysize}.} +% p\LaTeXe~2.09互換モードで、スタイルオプションにa4j,a5pなどが指定された +% ときの動作をエミュレートするためのフラグです。 +% \begin{macrocode} +\newif\if@stysize \@stysizefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@enablejfam} +% \changes{v1.1b}{1997/01/28}{Add \cs{if@enablejfam}} +% 日本語ファミリを宣言するために用いるフラグです。 +% \begin{macrocode} +\newif\if@enablejfam \@enablejfamtrue +% \end{macrocode} +% 和欧文両対応の数式文字コマンドを有効にするときに用いるフラグです。 +% マクロの展開順序が複雑になるのを避けるため、 +% デフォルトではfalseとしてあります。 +% \begin{macrocode} +\newif\if@mathrmmc \@mathrmmcfalse +% \end{macrocode} +% \end{macro} +% +% \section{オプションの宣言} +% ここでは、クラスオプションの宣言を行なっています。 +% +% \subsection{用紙オプション} +% 用紙サイズを指定するオプションです。 +% \begin{macrocode} +\DeclareOption{a4paper}{\setcounter{@paper}{1}% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper}{\setcounter{@paper}{2}% + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4paper}{\setcounter{@paper}{3}% + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5paper}{\setcounter{@paper}{4}% + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +% \end{macrocode} +% \changes{v1.0a}{1995/09/26}{Change b4paper width/height 352x250 to 364x257} +% \changes{v1.0a}{1995/09/26}{Change b5paper width/height 250x176 to 257x182} +% ドキュメントクラスに、以下のオプションを指定すると、通常よりもテキストを +% 組み立てる領域の広いスタイルとすることができます。 +% \begin{macrocode} +% +\DeclareOption{a4j}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5j}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4j}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5j}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +% +\DeclareOption{a4p}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5p}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4p}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5p}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +% \end{macrocode} +% +% \subsection{サイズオプション} +% 基準となるフォントの大きさを指定するオプションです。 +% \begin{macrocode} +\if@compatibility + \renewcommand{\@ptsize}{0} +\else + \DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} +\fi +\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} +\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} +% \end{macrocode} +% +% \subsection{横置きオプション} +% このオプションが指定されると、用紙の縦と横の長さを入れ換えます。 +% \changes{v1.1h}{1997/09/03}{オプションの処理時に縦横の値を交換} +% \changes{v1.1h}{1997/09/03}{landscapeオプションを互換モードでも有効に} +% \begin{macrocode} +\DeclareOption{landscape}{\@landscapetrue + \setlength\@tempdima{\paperheight}% + \setlength\paperheight{\paperwidth}% + \setlength\paperwidth{\@tempdima}} +% \end{macrocode} +% +% \subsection{トンボオプション} +% |tombow|オプションが指定されると、用紙サイズに合わせてトンボを出力します。 +% このとき、トンボの脇にDVIを作成した日付が出力されます。 +% 作成日付の出力を抑制するには、|tombow|ではなく、|tombo|と指定をします。 +% \changes{v1.0g}{1996/09/03}{Add to \cs{@bannertoken}.} +% \changes{v1.1a}{1997/01/23}{日付出力オプション} +% \begin{macrocode} +\DeclareOption{tombow}{% + \tombowtrue \tombowdatetrue + \setlength{\@tombowwidth}{.1\p@}% + \@bannertoken{% + \jobname\space:\space\number\year/\number\month/\number\day + (\number\hour:\number\minute)} + \maketombowbox} +\DeclareOption{tombo}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{.1\p@}% + \maketombowbox} +% \end{macrocode} +% +% \subsection{面付けオプション} +% このオプションが指定されると、トンボオプションを指定したときと同じ +% 位置に文章を出力します。作成したDVIをフィルムに面付け出力する場合など +% に指定をします。 +% \changes{v1.0f}{1996/07/10}{面付けオプションを追加} +% \changes{v1.1n}{1998/10/13} +% {動作していなかったのを修正。ありがとう、刀祢さん} +% \begin{macrocode} +\DeclareOption{mentuke}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \maketombowbox} +% \end{macrocode} +% +% \subsection{組方向オプション} +% このオプションが指定されると、縦組で組版をします。 +% \changes{v1.0g}{1997/01/25}{Insert \cs{hbox}, to switch tate-mode.} +% \changes{v1.1d}{1997/02/05}{開始ページがおかしくなるのを修正} +% \changes{v1.1f}{1997/07/08}{縦組時にベースラインがおかしくなるのを修正} +% \begin{macrocode} +\DeclareOption{tate}{% + \AtBeginDocument{\tate\message{《縦組モード》}% + \adjustbaseline}% +} +% \end{macrocode} +% +% \subsection{両面、片面オプション} +% twosideオプションが指定されると、両面印字出力に適した整形を行ないます。 +% \begin{macrocode} +\DeclareOption{oneside}{\@twosidefalse} +\DeclareOption{twoside}{\@twosidetrue} +% \end{macrocode} +% +% \subsection{二段組オプション} +% 二段組にするかどうかのオプションです。 +% \begin{macrocode} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +% \end{macrocode} +% +% \subsection{表題ページオプション} +% |@titlepage|が真の場合、表題を独立したページに出力します。 +% \begin{macrocode} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +% \end{macrocode} +% +% \subsection{右左起こしオプション} +% chapterを右ページあるいは左ページから +% はじめるかどうかを指定するオプションです。 +% \begin{macrocode} +%\if@compatibility +%\@openrighttrue +%\else +%\DeclareOption{openright}{\@openrighttrue} +%\DeclareOption{openany}{\@openrightfalse} +%\fi +% \end{macrocode} +% +% \subsection{数式のオプション} +% \Lopt{leqno}を指定すると、数式番号を数式の左側に出力します。 +% \Lopt{fleqn}を指定するとディスプレイ数式を左揃えで出力します。 +% \begin{macrocode} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +% \end{macrocode} +% +% \subsection{参考文献のオプション} +% 参考文献一覧を``オープンスタイル''の書式で出力します。 +% これは各ブロックが改行で区切られ、|\bibindent|のインデントが付く書式です。 +% \changes{v1.0c}{1995/12/25}{openbibオプションを再実装} +% \begin{macrocode} +\DeclareOption{openbib}{% +% \end{macrocode} +% 参考文献環境内の最初のいくつかのフックを満たします。 +% \begin{macrocode} + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% +% \end{macrocode} +% そして、|\newblock|を再定義します。 +% \begin{macrocode} + \renewcommand\newblock{\par}}} +% \end{macrocode} +% +% \subsection{日本語ファミリ宣言の抑制、和欧文両対応の数式文字} +% p\LaTeXe{}は、このあと、数式モードで直接、日本語を記述できるように +% 数式ファミリを宣言します。しかし、\TeX{}で扱える数式ファミリの数が +% 16個なので、その他のパッケージと組み合わせた場合、 +% 数式ファミリを宣言する領域を超えてしまう場合があるかもしれません。 +% そのときには、残念ですが、そのパッケージか、数式内に直接、 +% 日本語を記述するのか、どちらかを断念しなければなりません。 +% このクラスオプションは、 +% 数式内に日本語を記述するのをあきらめる場合に用います。 +% +% |disablejfam|オプションを指定しても|\textmc|や|\textgt|などを用いて、 +% 数式内に日本語を記述することは可能です。 +% +% |mathrmmc|オプションは、 +% |\mathrm|と|\mathbf|を和欧文両対応にするためのクラスオプションです。 +% \changes{v1.1d}{1992/02/04}{disablejfamの判断を間違えてたのを修正} +% \begin{macrocode} +\if@compatibility + \@mathrmmctrue +\else + \DeclareOption{disablejfam}{\@enablejfamfalse} + \DeclareOption{mathrmmc}{\@mathrmmctrue} +\fi +% \end{macrocode} +% +% +% \subsection{ドラフトオプション} +% |draft|オプションを指定すると、オーバフルボックスの起きた箇所に、 +% 5ptの罫線が引かれます。 +% \begin{macrocode} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +% +% \end{macrocode} +% +% \subsection{オプションの実行} +% オプションの実行、およびサイズクラスのロードを行ないます。 +% \begin{macrocode} +%<*article|report|book> +%<*article> +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate} +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} +%
+%<*report> +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate} +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} +%
+%<*book> +%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate} +%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} +% +\ProcessOptions\relax +%\input{tbk1\@ptsize.clo} +%\input{tsize1\@ptsize.clo} +%\input{jbk1\@ptsize.clo} +%\input{jsize1\@ptsize.clo} +% \end{macrocode} +% 縦組用クラスファイルの場合は、ここで\file{plext.sty}も読み込みます。 +% \changes{v1.0e}{1996/03/21}{\cs{usepackage} to \cs{RequirePackage}} +% \begin{macrocode} +%\RequirePackage{plext} +% +% \end{macrocode} +% +% \section{フォント} +% +% ここでは、\LaTeX{}のフォントサイズコマンドの定義をしています。 +% フォントサイズコマンドの定義は、次のコマンドを用います。 +% +% |\@setfontsize||\size|\meta{font-size}\meta{baselineskip} +% +% \begin{description} +% \item[\meta{font-size}] これから使用する、フォントの実際の大きさです。 +% \item[\meta{baselineskip}] 選択されるフォントサイズ用の通常の +% |\baselineskip|の値です(実際は、|\baselinestretch| * \meta{baselineskip} +% の値です)。 +% \end{description} +% +% 数値コマンドは、次のように\LaTeX{}カーネルで定義されています。 +% \begin{center} +% \begin{tabular}{ll@{\qquad}ll@{\qquad}ll} +% \verb=\@vpt= & 5 & \verb=\@vipt= & 6 & \verb=\@viipt= & 7 \\ +% \verb=\@viiipt= & 8 & \verb=\@ixpt= & 9 & \verb=\@xpt= & 10 \\ +% \verb=\@xipt= & 10.95 & \verb=\@xiipt= & 12 & \verb=\@xivpt= & 14.4\\ +% ... +% \end{tabular} +% \end{center} +% +% \begin{macro}{\normalsize} +% \begin{macro}{\@normalsize} +% 基本サイズとするユーザレベルのコマンドは|\normalsize|です。 +% \LaTeX{}の内部では|\@normalsize|を使用します。 +% +% |\normalsize|マクロは、|\abovedisplayskip|と +% |\abovedisplayshortskip|、および|\belowdisplayshortskip|の値も設定をします。 +% |\belowdisplayskip|は、つねに|\abovedisplayskip|と同値です。 +% +% また、リスト環境のトップレベルのパラメータは、つねに|\@listI|で与えられます。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\renewcommand{\normalsize}{% +%<10pt&yoko> \@setfontsize\normalsize\@xpt{15}% +%<11pt&yoko> \@setfontsize\normalsize\@xipt{15.5}% +%<12pt&yoko> \@setfontsize\normalsize\@xiipt{16.5}% +%<10pt&tate> \@setfontsize\normalsize\@xpt{17}% +%<11pt&tate> \@setfontsize\normalsize\@xipt{17}% +%<12pt&tate> \@setfontsize\normalsize\@xiipt{18}% +%<*10pt> + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ +% +%<*11pt> + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% +%<*12pt> + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +% \end{macrocode} +% +% ここで、ノーマルフォントを選択し、初期化をします。 +% このとき、縦組モードならば、デフォルトのエンコードを変更します。 +% \begin{macrocode} +%\def\kanjiencodingdefault{JT1}% +%\kanjiencoding{\kanjiencodingdefault}% +\normalsize +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cht} +% \begin{macro}{\Cdp} +% \begin{macro}{\Cwd} +% \begin{macro}{\Cvs} +% \begin{macro}{\Chs} +% 基準となる長さの設定をします。これらのパラメータは\file{platex.dtx}で定義 +% されています。 +% \begin{macrocode} +\setbox0\hbox{\char\euc"A1A1}% +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\small} +% |\small|コマンドの定義は、|\normalsize|に似ています。 +% \begin{macrocode} +\newcommand{\small}{% +%<*10pt> + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*11pt> + \@setfontsize\small\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*12pt> + \@setfontsize\small\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% + \belowdisplayskip \abovedisplayskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footnotesize} +% |\footnotesize|コマンドの定義は、|\normalsize|に似ています。 +% \begin{macrocode} +\newcommand{\footnotesize}{% +%<*10pt> + \@setfontsize\footnotesize\@viiipt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*11pt> + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*12pt> + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% + \belowdisplayskip \abovedisplayskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scriptsize} +% \begin{macro}{\tiny} +% \begin{macro}{\large} +% \begin{macro}{\Large} +% \begin{macro}{\LARGE} +% \begin{macro}{\huge} +% \begin{macro}{\Huge} +% これらは先ほどのマクロよりも簡単です。これらはフォントサイズを変更する +% だけで、リスト環境とディスプレイ数式のパラメータは変更しません。 +% \begin{macrocode} +%<*10pt> +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +% +%<*11pt> +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +% +%<*12pt> +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xivpt{21}} +\newcommand{\Large}{\@setfontsize\Large\@xviipt{25}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}} +\newcommand{\huge}{\@setfontsize\huge\@xxvpt{33}} +\let\Huge=\huge +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% \section{レイアウト} +% +% \subsection{用紙サイズの決定} +% +% \begin{macro}{\columnsep} +% \begin{macro}{\columnseprule} +% |\columnsep|は、二段組のときの、左右(あるいは上下)の段間の幅です。 +% このスペースの中央に|\columnseprule|の幅の罫線が引かれます。 +% \changes{v1.0g}{1997/01/25}{\cs{columnsep}: 10pt to 3\cs{Cwd} or 2\cs{Cwd}.} +% \begin{macrocode} +%<*article|report|book> +\if@stysize +% \setlength\columnsep{3\Cwd} +% \setlength\columnsep{2\Cwd} +\else + \setlength\columnsep{10\p@} +\fi +\setlength\columnseprule{0\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{段落の形} +% +% \begin{macro}{\lineskip} +% \begin{macro}{\normallineskip} +% これらの値は、行が近付き過ぎたときの\TeX の動作を制御します。 +% \begin{macrocode} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\baselinestretch} +% これは、|\baselineskip|の倍率を示すために使います。 +% デフォルトでは、\emph{何もしません}。このコマンドが``empty''でない場合、 +% |\baselineskip|の指定の\texttt{plus}や\texttt{minus}部分は無視される +% ことに注意してください。 +% \begin{macrocode} +\renewcommand{\baselinestretch}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\parskip} +% \begin{macro}{\parindent} +% |\parskip|は段落間に挿入される、縦方向の追加スペースです。 +% |\parindent|は段落の先頭の字下げ幅です。 +% \begin{macrocode} +\setlength\parskip{0\p@ \@plus \p@} +\setlength\parindent{1\Cwd} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\smallskipamount} +% \begin{macro}{\medskipamount} +% \begin{macro}{\bigskipamount} +% これら3つのパラメータの値は、\LaTeX{}カーネルの中で設定されています。 +% これらはおそらく、サイズオプションの指定によって変えるべきです。 +% しかし、\LaTeX~2.09や\LaTeXe{}の以前のリリースの両方との互換性を保つために、 +% これらはまだ同じ値としています。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@lowpenalty} +% \begin{macro}{\@medpenalty} +% \begin{macro}{\@highpenalty} +% |\nopagebreak|と|\nolinebreak|コマンドは、これらのコマンドが置かれた場所に、 +% ペナルティを起いて、分割を制御します。 +% 置かれるペナルティは、コマンドの引数によって、 +% |\@lowpenalty|, |\@medpenalty|, |\@highpenalty|のいずれかが使われます。 +% \begin{macrocode} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{ページレイアウト} +% +% \subsubsection{縦方向のスペース} +% +% \begin{macro}{\headheight} +% \begin{macro}{\headsep} +% \begin{macro}{\topskip} +% |\headheight|は、ヘッダが入るボックスの高さです。 +% |\headsep|は、ヘッダの下端と本文領域との間の距離です。 +% |\topskip|は、本文領域の上端と1行目のテキストのベースラインとの距離です。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\setlength\headheight{12\p@} +%<*tate> +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +% +%<*yoko> +%\setlength\headsep{25\p@} +%<10pt&bk>\setlength\headsep{.25in} +%<11pt&bk>\setlength\headsep{.275in} +%<12pt&bk>\setlength\headsep{.275in} +% +\setlength\topskip{1\Cht} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footskip} +% |\footskip|は、本文領域の下端とフッタの下端との距離です。 +% フッタのボックスの高さを示す、|\footheight|は削除されました。 +% \begin{macrocode} +%\setlength\footskip{14mm} +%<*yoko> +%\setlength\footskip{30\p@} +%<10pt&bk>\setlength\footskip{.35in} +%<11pt&bk>\setlength\footskip{.38in} +%<12pt&bk>\setlength\footskip{30\p@} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maxdepth} +% \changes{v1.1c}{1995/12/25}{\cs{@maxdepth}の設定を除外した} +% \TeX のプリミティブレジスタ|\maxdepth|は、|\topskip|と同じような +% 働きをします。|\@maxdepth|レジスタは、つねに|\maxdepth|のコピーでなくては +% いけません。これは|\begin{document}|の内部で設定されます。 +% \TeX{}と\LaTeX~2.09では、|\maxdepth|は\texttt{4pt}に固定です。 +% \LaTeXe{}では、|\maxdepth|$+$|\topskip|を基本サイズの1.5倍にしたいので、 +% |\maxdepth|を|\topskip|の半分の値で設定します。 +% \begin{macrocode} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsubsection{本文領域} +% |\textheight|と|\textwidth|は、本文領域の通常の高さと幅を示します。 +% 縦組でも横組でも、``高さ''は行数を、``幅''は字詰めを意味します。 +% 後ほど、これらの長さに|\topskip|の値が加えられます。 +% +% \begin{macro}{\textwidth} +% 基本組の字詰めです。 +% +% 互換モードの場合: +% \begin{macrocode} +\if@compatibility +% \end{macrocode} +% \changes{v1.1a}{1997/01/25}{Add paper option with compatibility mode.} +% \changes{v1.1h}{1997/09/03}{landscapeでの指定を追加} +% 互換モード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% \begin{macrocode} + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape +%<10pt&yoko> \setlength\textwidth{47\Cwd} +%<11pt&yoko> \setlength\textwidth{42\Cwd} +%<12pt&yoko> \setlength\textwidth{40\Cwd} +%<10pt&tate> \setlength\textwidth{27\Cwd} +%<11pt&tate> \setlength\textwidth{25\Cwd} +%<12pt&tate> \setlength\textwidth{23\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{28\Cwd} +%<11pt&yoko> \setlength\textwidth{25\Cwd} +%<12pt&yoko> \setlength\textwidth{24\Cwd} +%<10pt&tate> \setlength\textwidth{46\Cwd} +%<11pt&tate> \setlength\textwidth{42\Cwd} +%<12pt&tate> \setlength\textwidth{38\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape +%<10pt&yoko> \setlength\textwidth{75\Cwd} +%<11pt&yoko> \setlength\textwidth{69\Cwd} +%<12pt&yoko> \setlength\textwidth{63\Cwd} +%<10pt&tate> \setlength\textwidth{53\Cwd} +%<11pt&tate> \setlength\textwidth{49\Cwd} +%<12pt&tate> \setlength\textwidth{44\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{60\Cwd} +%<11pt&yoko> \setlength\textwidth{55\Cwd} +%<12pt&yoko> \setlength\textwidth{50\Cwd} +%<10pt&tate> \setlength\textwidth{85\Cwd} +%<11pt&tate> \setlength\textwidth{76\Cwd} +%<12pt&tate> \setlength\textwidth{69\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape +%<10pt&yoko> \setlength\textwidth{60\Cwd} +%<11pt&yoko> \setlength\textwidth{55\Cwd} +%<12pt&yoko> \setlength\textwidth{50\Cwd} +%<10pt&tate> \setlength\textwidth{34\Cwd} +%<11pt&tate> \setlength\textwidth{31\Cwd} +%<12pt&tate> \setlength\textwidth{28\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{37\Cwd} +%<11pt&yoko> \setlength\textwidth{34\Cwd} +%<12pt&yoko> \setlength\textwidth{31\Cwd} +%<10pt&tate> \setlength\textwidth{55\Cwd} +%<11pt&tate> \setlength\textwidth{51\Cwd} +%<12pt&tate> \setlength\textwidth{47\Cwd} + \fi + \else % A4 ant other + \if@landscape +%<10pt&yoko> \setlength\textwidth{73\Cwd} +%<11pt&yoko> \setlength\textwidth{68\Cwd} +%<12pt&yoko> \setlength\textwidth{61\Cwd} +%<10pt&tate> \setlength\textwidth{41\Cwd} +%<11pt&tate> \setlength\textwidth{38\Cwd} +%<12pt&tate> \setlength\textwidth{35\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{47\Cwd} +%<11pt&yoko> \setlength\textwidth{43\Cwd} +%<12pt&yoko> \setlength\textwidth{40\Cwd} +%<10pt&tate> \setlength\textwidth{67\Cwd} +%<11pt&tate> \setlength\textwidth{61\Cwd} +%<12pt&tate> \setlength\textwidth{57\Cwd} + \fi + \fi\fi\fi + \else +% \end{macrocode} +% 互換モード:デフォルト設定 +% \begin{macrocode} + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else +%<10pt&!bk&yoko> \setlength\textwidth{327\p@} +%<11pt&!bk&yoko> \setlength\textwidth{342\p@} +%<12pt&!bk&yoko> \setlength\textwidth{372\p@} +%<10pt&bk&yoko> \setlength\textwidth{4.3in} +%<11pt&bk&yoko> \setlength\textwidth{4.8in} +%<12pt&bk&yoko> \setlength\textwidth{4.8in} +%<10pt&tate> \setlength\textwidth{67\Cwd} +%<11pt&tate> \setlength\textwidth{61\Cwd} +%<12pt&tate> \setlength\textwidth{57\Cwd} + \fi + \fi +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else +% \end{macrocode} +% 2eモード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% 二段組では用紙サイズの8割、一段組では用紙サイズの7割を版面の幅として +% 設定します。 +% \begin{macrocode} + \if@stysize + \if@twocolumn +% \setlength\textwidth{.8\paperwidth} +% \setlength\textwidth{.8\paperheight} + \else +% \setlength\textwidth{.7\paperwidth} +% \setlength\textwidth{.7\paperheight} + \fi + \else +% \end{macrocode} +% 2eモード:デフォルト設定 +% \begin{macrocode} +% \setlength\@tempdima{\paperheight} +% \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} +% \addtolength\@tempdima{-1.3in} +% \setlength\@tempdimb{327\p@} +% \setlength\@tempdimb{342\p@} +% \setlength\@tempdimb{372\p@} +% \setlength\@tempdimb{67\Cwd} +% \setlength\@tempdimb{61\Cwd} +% \setlength\@tempdimb{57\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textheight} +% 基本組の行数です。 +% +% 互換モードの場合: +% \begin{macrocode} +\if@compatibility +% \end{macrocode} +% \changes{v1.1a}{1997/01/25}{Add paper option with compatibility mode.} +% \changes{v1.1f}{1997/09/03}{landscapeでの指定を追加} +% 互換モード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% \begin{macrocode} + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape +%<10pt&yoko> \setlength\textheight{17\Cvs} +%<11pt&yoko> \setlength\textheight{17\Cvs} +%<12pt&yoko> \setlength\textheight{16\Cvs} +%<10pt&tate> \setlength\textheight{26\Cvs} +%<11pt&tate> \setlength\textheight{26\Cvs} +%<12pt&tate> \setlength\textheight{25\Cvs} + \else +%<10pt&yoko> \setlength\textheight{28\Cvs} +%<11pt&yoko> \setlength\textheight{25\Cvs} +%<12pt&yoko> \setlength\textheight{24\Cvs} +%<10pt&tate> \setlength\textheight{16\Cvs} +%<11pt&tate> \setlength\textheight{16\Cvs} +%<12pt&tate> \setlength\textheight{15\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape +%<10pt&yoko> \setlength\textheight{38\Cvs} +%<11pt&yoko> \setlength\textheight{36\Cvs} +%<12pt&yoko> \setlength\textheight{34\Cvs} +%<10pt&tate> \setlength\textheight{48\Cvs} +%<11pt&tate> \setlength\textheight{48\Cvs} +%<12pt&tate> \setlength\textheight{45\Cvs} + \else +%<10pt&yoko> \setlength\textheight{57\Cvs} +%<11pt&yoko> \setlength\textheight{55\Cvs} +%<12pt&yoko> \setlength\textheight{52\Cvs} +%<10pt&tate> \setlength\textheight{33\Cvs} +%<11pt&tate> \setlength\textheight{33\Cvs} +%<12pt&tate> \setlength\textheight{31\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape +%<10pt&yoko> \setlength\textheight{22\Cvs} +%<11pt&yoko> \setlength\textheight{21\Cvs} +%<12pt&yoko> \setlength\textheight{20\Cvs} +%<10pt&tate> \setlength\textheight{34\Cvs} +%<11pt&tate> \setlength\textheight{34\Cvs} +%<12pt&tate> \setlength\textheight{32\Cvs} + \else +%<10pt&yoko> \setlength\textheight{35\Cvs} +%<11pt&yoko> \setlength\textheight{34\Cvs} +%<12pt&yoko> \setlength\textheight{32\Cvs} +%<10pt&tate> \setlength\textheight{21\Cvs} +%<11pt&tate> \setlength\textheight{21\Cvs} +%<12pt&tate> \setlength\textheight{20\Cvs} + \fi + \else % A4 and other + \if@landscape +%<10pt&yoko> \setlength\textheight{27\Cvs} +%<11pt&yoko> \setlength\textheight{26\Cvs} +%<12pt&yoko> \setlength\textheight{25\Cvs} +%<10pt&tate> \setlength\textheight{41\Cvs} +%<11pt&tate> \setlength\textheight{41\Cvs} +%<12pt&tate> \setlength\textheight{38\Cvs} + \else +%<10pt&yoko> \setlength\textheight{43\Cvs} +%<11pt&yoko> \setlength\textheight{42\Cvs} +%<12pt&yoko> \setlength\textheight{39\Cvs} +%<10pt&tate> \setlength\textheight{26\Cvs} +%<11pt&tate> \setlength\textheight{26\Cvs} +%<12pt&tate> \setlength\textheight{22\Cvs} + \fi + \fi\fi\fi +% \addtolength\textheight{\topskip} +% \addtolength\textheight{\baselineskip} +% \addtolength\textheight{\Cht} +% \addtolength\textheight{\Cdp} +% \end{macrocode} +% 互換モード:デフォルト設定 +% \begin{macrocode} + \else +%<10pt&!bk&yoko> \setlength\textheight{578\p@} +%<10pt&bk&yoko> \setlength\textheight{554\p@} +%<11pt&yoko> \setlength\textheight{580.4\p@} +%<12pt&yoko> \setlength\textheight{586.5\p@} +%<10pt&tate> \setlength\textheight{26\Cvs} +%<11pt&tate> \setlength\textheight{25\Cvs} +%<12pt&tate> \setlength\textheight{24\Cvs} + \fi +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else +% \end{macrocode} +% 2eモード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% 縦組では用紙サイズの70\%(book)か78\%(ariticle,report)、 +% 横組では70\%(book)か75\%(article,report)を版面の高さに設定します。 +% \begin{macrocode} + \if@stysize +% \setlength\textheight{.75\paperwidth} +% \setlength\textheight{.78\paperwidth} +% \setlength\textheight{.70\paperheight} +% \setlength\textheight{.75\paperheight} +% \end{macrocode} +% 2eモード:デフォルト値 +% \begin{macrocode} + \else +% \setlength\@tempdima{\paperwidth} +% \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} +% \addtolength\@tempdima{-1.5in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +% \end{macrocode} +% 最後に、|\textheight|に|\topskip|の値を加えます。 +% \begin{macrocode} +\addtolength\textheight{\topskip} +\@settopoint\textheight +% \end{macrocode} +% \end{macro} +% +% \subsubsection{マージン} +% +% \begin{macro}{\topmargin} +% |\topmargin|は、``印字可能領域''---用紙の上端から1インチ内側---% +% の上端からヘッダ部分の上端までの距離です。 +% +% 2.09互換モードの場合: +% \begin{macrocode} +\if@compatibility +%<*yoko> + \if@stysize + \setlength\topmargin{-.3in} + \else +% \setlength\topmargin{27\p@} +%<10pt&bk> \setlength\topmargin{.75in} +%<11pt&bk> \setlength\topmargin{.73in} +%<12pt&bk> \setlength\topmargin{.73in} + \fi +% +%<*tate> + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +% +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +% \addtolength\topmargin{-\textwidth} +% \addtolength\topmargin{-\textheight} + \addtolength\topmargin{-\footskip} +% \end{macrocode} +% \changes{v1.1e}{1997/04/08}{横組クラスでの調整量を +% -2.4インチから-2.0インチにした。} +% \changes{v1.1j}{1998/02/03}{互換モード時のa5pのトップマージンを0.7in増加} +% \begin{macrocode} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else +% \addtolength\topmargin{-2.0in} +% \addtolength\topmargin{-2.8in} + \fi +% \end{macrocode} +% \changes{v1.1d}{1997/02/05}{\cs{tompargin}を半分にするのはアキ領域の計算後} +% \changes{v1.1r}{1999/08/09}{\cs{if@stysize}フラグに限らず半分にする} +% \begin{macrocode} + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\marginparsep} +% \begin{macro}{\marginparpush} +% |\marginparsep|は、本文と傍注の間にあけるスペースの幅です。 +% 横組では本文の左(右)端と傍注、 +% 縦組では本文の下(上)端と傍注の間になります。 +% |\marginparpush|は、傍注と傍注との間のスペースの幅です。 +% \begin{macrocode} +\if@twocolumn + \setlength\marginparsep{10\p@} +\else +% \setlength\marginparsep{15\p@} +% \setlength\marginparsep{10\p@} +\fi +%\setlength\marginparpush{7\p@} +%<*yoko> +%<10pt>\setlength\marginparpush{5\p@} +%<11pt>\setlength\marginparpush{5\p@} +%<12pt>\setlength\marginparpush{7\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\oddsidemargin} +% \begin{macro}{\evensidemargin} +% \begin{macro}{\marginparwidth} +% まず、互換モードでの長さを示します。 +% +% 互換モード、縦組の場合: +% \begin{macrocode} +\if@compatibility +% \setlength\oddsidemargin{0\p@} +% \setlength\evensidemargin{0\p@} +% \end{macrocode} +% 互換モード、横組、bookクラスの場合: +% \begin{macrocode} +%<*yoko> +%<*bk> +%<10pt> \setlength\oddsidemargin {.5in} +%<11pt> \setlength\oddsidemargin {.25in} +%<12pt> \setlength\oddsidemargin {.25in} +%<10pt> \setlength\evensidemargin {1.5in} +%<11pt> \setlength\evensidemargin {1.25in} +%<12pt> \setlength\evensidemargin {1.25in} +%<10pt> \setlength\marginparwidth {.75in} +%<11pt> \setlength\marginparwidth {1in} +%<12pt> \setlength\marginparwidth {1in} +% +% \end{macrocode} +% 互換モード、横組、reportとarticleクラスの場合: +% \begin{macrocode} +%<*!bk> + \if@twoside +%<10pt> \setlength\oddsidemargin {44\p@} +%<11pt> \setlength\oddsidemargin {36\p@} +%<12pt> \setlength\oddsidemargin {21\p@} +%<10pt> \setlength\evensidemargin {82\p@} +%<11pt> \setlength\evensidemargin {74\p@} +%<12pt> \setlength\evensidemargin {59\p@} +%<10pt> \setlength\marginparwidth {107\p@} +%<11pt> \setlength\marginparwidth {100\p@} +%<12pt> \setlength\marginparwidth {85\p@} + \else +%<10pt> \setlength\oddsidemargin {60\p@} +%<11pt> \setlength\oddsidemargin {54\p@} +%<12pt> \setlength\oddsidemargin {39.5\p@} +%<10pt> \setlength\evensidemargin {60\p@} +%<11pt> \setlength\evensidemargin {54\p@} +%<12pt> \setlength\evensidemargin {39.5\p@} +%<10pt> \setlength\marginparwidth {90\p@} +%<11pt> \setlength\marginparwidth {83\p@} +%<12pt> \setlength\marginparwidth {68\p@} + \fi +% +% \end{macrocode} +% 互換モード、横組、二段組の場合: +% \begin{macrocode} + \if@twocolumn + \setlength\oddsidemargin {30\p@} + \setlength\evensidemargin {30\p@} + \setlength\marginparwidth {48\p@} + \fi +% +% \end{macrocode} +% 縦組、横組にかかわらず、スタイルオプション設定ではゼロです。 +% \changes{v1.0g}{1997/01/25}{\cs{oddsidemargin}, \cs{evensidemagin}: +% 0pt if specified papersize at \cs{documentstyle} option.} +% \begin{macrocode} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +% \end{macrocode} +% +% 互換モードでない場合: +% \begin{macrocode} +\else + \setlength\@tempdima{\paperwidth} +% \addtolength\@tempdima{-\textheight} +% \addtolength\@tempdima{-\textwidth} +% \end{macrocode} +% +% |\oddsidemargin|を計算します。 +% \begin{macrocode} + \if@twoside +% \setlength\oddsidemargin{.6\@tempdima} +% \setlength\oddsidemargin{.4\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} +% \end{macrocode} +% \changes{v1.1p}{1999/1/6}{\cs{oddsidemargin}のポイントへの変換を後ろに} +% |\evensidemargin|を計算します。 +% \begin{macrocode} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} +% \addtolength\evensidemargin{-\textheight} +% \addtolength\evensidemargin{-\textwidth} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin +% \end{macrocode} +% |\marginparwidth|を計算します。 +% ここで、|\@tempdima|の値は、\linebreak +% |\paperwidth| $-$ |\textwidth|です。 +% \changes{v1.1d}{1995/11/24}{typo: \cs{marginmarwidth} to \cs{marginparwidth}} +% \begin{macrocode} +%<*yoko> + \if@twoside + \setlength\marginparwidth{.6\@tempdima} + \addtolength\marginparwidth{-.4in} + \else + \setlength\marginparwidth{.5\@tempdima} + \addtolength\marginparwidth{-.4in} + \fi + \ifdim \marginparwidth >2in + \setlength\marginparwidth{2in} + \fi +% +% \end{macrocode} +% +% 縦組の場合は、少し複雑です。 +% \begin{macrocode} +%<*tate> + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} +% + \@settopoint\marginparwidth +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{脚注} +% +% \begin{macro}{\footnotesep} +% |\footnotesep|は、それぞれの脚注の先頭に置かれる``支柱''の高さです。 +% このクラスでは、通常の|\footnotesize|の支柱と同じ長さですので、 +% 脚注間に余計な空白は入りません。 +% \begin{macrocode} +%<10pt>\setlength\footnotesep{6.65\p@} +%<11pt>\setlength\footnotesep{7.7\p@} +%<12pt>\setlength\footnotesep{8.4\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footins} +% |\skip\footins|は、本文の最終行と最初の脚注との間の距離です。 +% \begin{macrocode} +%<10pt>\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@} +%<11pt>\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@} +%<12pt>\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@} +% \end{macrocode} +% \end{macro} +% +% \subsection{フロート} +% すべてのフロートパラメータは、\LaTeX{}のカーネルでデフォルトが定義 +% されています。そのため、カウンタ以外のパラメータは|\renewcommand|で +% 設定する必要があります。 +% +% \subsubsection{フロートパラメータ} +% +% \begin{macro}{\floatsep} +% \begin{macro}{\textfloatsep} +% \begin{macro}{\intextsep} +% フロートオブジェクトが本文のあるページに置かれるとき、 +% フロートとそのページにある別のオブジェクトの距離は、 +% これらのパラメータで制御されます。これらのパラメータは、一段組モードと +% 二段組モードの段抜きでないフロートの両方で使われます。 +% +% |\floatsep|は、ページ上部あるいは下部のフロート間の距離です。 +% +% |\textfloatsep|は、ページ上部あるいは下部のフロートと本文との距離です。 +% +% |\intextsep|は、本文の途中に出力されるフロートと本文との距離です。 +% \begin{macrocode} +%<*10pt> +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +% +%<*11pt> +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +% +%<*12pt> +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dblfloatsep} +% \begin{macro}{\dbltextfloatsep} +% 二段組モードで、|\textwidth|の幅を持つ、段抜きのフロートオブジェクトが +% 本文と同じページに置かれるとき、本文とフロートとの距離は、 +% |\dblfloatsep|と|\dbltextfloatsep|によって制御されます。 +% +% |\dblfloatsep|は、ページ上部あるいは下部のフロートと本文との距離です。 +% +% |\dbltextfloatsep|は、ページ上部あるいは下部のフロート間の距離です。 +% \begin{macrocode} +%<*10pt> +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +% +%<*11pt> +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +% +%<*12pt> +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@fptop} +% \begin{macro}{\@fpsep} +% \begin{macro}{\@fpbot} +% フロートオブジェクトが、独立したページに置かれるとき、 +% このページのレイアウトは、次のパラメータで制御されます。 +% これらのパラメータは、一段組モードか、二段組モードでの一段出力の +% フロートオブジェクトに対して使われます。 +% +% ページ上部では、|\@fptop|の伸縮長が挿入されます。 +% ページ下部では、|\@fpbot|の伸縮長が挿入されます。 +% フロート間には|\@fpsep|が挿入されます。 +% +% なお、そのページを空白で満たすために、|\@fptop|と|\@fpbot|の +% 少なくともどちらか一方に、|plus ...fil|を含めてください。 +% \begin{macrocode} +%<*10pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +% +%<*11pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +% +%<*12pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{10\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dblfptop} +% \begin{macro}{\@dblfpsep} +% \begin{macro}{\@dblfpbot} +% 二段組モードでの二段抜きのフロートに対しては、 +% これらのパラメータが使われます。 +% \begin{macrocode} +%<*10pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +%<*11pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +%<*12pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{10\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{フロートオブジェクトの上限値} +% +% \begin{macro}{\c@topnumber} +% \Lcount{topnumber}は、本文ページの上部に出力できるフロートの最大数です。 +% \begin{macrocode} +%<*article|report|book> +\setcounter{topnumber}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@bottomnumber} +% \Lcount{bottomnumber}は、本文ページの下部に出力できるフロートの最大数です。 +% \begin{macrocode} +\setcounter{bottomnumber}{1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@totalnumber} +% \Lcount{totalnumber}は、本文ページに出力できるフロートの最大数です。 +% \begin{macrocode} +\setcounter{totalnumber}{3} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@dbltopnumber} +% \Lcount{dbltopnumber}は、二段組時における、本文ページの上部に出力できる +% 段抜きのフロートの最大数です。 +% \begin{macrocode} +\setcounter{dbltopnumber}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\topfraction} +% これは、本文ページの上部に出力されるフロートが占有できる最大の割り合いです。 +% \begin{macrocode} +\renewcommand{\topfraction}{.7} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bottomfraction} +% これは、本文ページの下部に出力されるフロートが占有できる最大の割り合いです。 +% \begin{macrocode} +\renewcommand{\bottomfraction}{.3} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textfraction} +% これは、本文ページに最低限、入らなくてはならない本文の割り合いです。 +% \begin{macrocode} +\renewcommand{\textfraction}{.2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\floatpagefraction} +% これは、フロートだけのページで最低限、入らなくてはならない +% フロートの割り合いです。 +% \begin{macrocode} +\renewcommand{\floatpagefraction}{.5} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dbltopfraction} +% これは、2段組時における本文ページに、 +% 2段抜きのフロートが占めることができる最大の割り合いです。 +% \begin{macrocode} +\renewcommand{\dbltopfraction}{.7} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dblfloatpagefraction} +% これは、2段組時におけるフロートだけのページに最低限、 +% 入らなくてはならない2段抜きのフロートの割り合いです。 +% \begin{macrocode} +\renewcommand{\dblfloatpagefraction}{.5} +% \end{macrocode} +% \end{macro} +% +% +% +% \section{ページスタイル}\label{sec:pagestyle} +% p\LaTeXe{}では、つぎの6種類のページスタイルを使用できます。 +% \pstyle{empty}は\file{latex.dtx}で定義されています。 +% +% \begin{tabular}{ll} +% empty & ヘッダにもフッタにも出力しない\\ +% plain & フッタにページ番号のみを出力する\\ +% headnombre & ヘッダにページ番号のみを出力する\\ +% footnombre & フッタにページ番号のみを出力する\\ +% headings & ヘッダに見出しとページ番号を出力する\\ +% bothstyle & ヘッダに見出し、フッタにページ番号を出力する\\ +% \end{tabular} +% +% ページスタイル\pstyle{foo}は、|\ps@foo|コマンドとして定義されます。 +% +% \begin{macro}{\@evenhead} +% \begin{macro}{\@oddhead} +% \begin{macro}{\@evenfoot} +% \begin{macro}{\@oddfoot} +% これらは|\ps@...|から呼び出され、ヘッダとフッタを出力するマクロです。 +% +% \DeleteShortVerb{\|} +% \begin{tabular}{ll} +% |\@oddhead| & 奇数ページのヘッダを出力\\ +% |\@oddfoot| & 奇数ページのフッタを出力\\ +% |\@evenhead| & 偶数ページのヘッダを出力\\ +% |\@evenfoot| & 偶数ページのフッタを出力\\ +% \end{tabular} +% \MakeShortVerb{\|} +% +% これらの内容は、横組の場合は|\textwidth|の幅を持つ|\hbox|に入れられ、 +% 縦組の場合は|\textheight|の幅を持つ|\hbox|に入れられます。 +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{マークについて} +% ヘッダに入る章番号や章見出しは、見出しコマンドで実行されるマークコマンドで +% 決定されます。ここでは、実行されるマークコマンドの定義を行なっています。 +% これらのマークコマンドは、\TeX{}の|\mark|機能を用いて、 +% `left'と`right'の2種類のマークを生成するように定義しています。 +% +% \begin{flushleft} +% |\markboth{|\meta{LEFT}|}{|\meta{RIGHT}|}|: 両方のマークに追加します。 +% +% |\markright{|\meta{RIGHT}|}|: `右'マークに追加します。 +% +% |\leftmark|: |\@oddhead|, |\@oddfoot|, |\@evenhead|, |\@evenfoot|マクロで +% 使われ、現在の``左''マークを出力します。 +% |\leftmark|は\TeX{}の|\botmark|コマンドのような働きをします。 +% 初期値は空でなくてはいけません。 +% +% |\rightmark|: |\@oddhead|, |\@oddfoot|, |\@evenhead|, |\@evenfoot|マクロで +% 使われ、現在の``右''マークを出力します。 +% |\rightmark|は\TeX{}の|\firstmark|コマンドのような働きをします。 +% 初期値は空でなくてはいけません。 +% \end{flushleft} +% +% マークコマンドの動作は、左マークの`範囲内の'右マークのために +% 合理的になっています。たとえば、左マークは|\chapter|コマンドによって +% 変更されます。そして右マークは|\section|コマンドによって変更されます。 +% しかし、同一ページに複数の|\markboth|コマンドが現れたとき、 +% おかしな結果となることがあります。 +% +% |\tableofcontents|のようなコマンドは、|\@mkboth|コマンドを用いて、 +% あるページスタイルの中でマークを設定しなくてはなりません。 +% |\@mkboth|は、|\ps@...|コマンドによって、|\markboth|(ヘッダを設定する)か、 +% |\@gobbletwo|(何もしない)に|\let|されます。 +% +% \changes{v1.0a}{1995/08/30}{柱の書体がノンブルに影響するバグの修正} +% +% \subsection{plainページスタイル} +% \pstyle{jpl@in}に|\let|するために、ここで定義をします。 +% +% \begin{macro}{\ps@plain} +% \begin{macrocode} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@plain + \let\@oddhead\@empty + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +% \end{macrocode} +% \end{macro} +% +% \subsection{jpl@inページスタイル} +% \changes{v1.0d}{1996/02/29}{\pstyle{jpl@in}の初期値を定義} +% +% \pstyle{jpl@in}スタイルは、クラスファイル内部で使用するものです。 +% \LaTeX{}では、bookクラスを\pstyle{headings}としています。 +% しかし、\cs{tableofcontnts}コマンドの内部では\pstyle{plain}として +% 設定されるため、一つの文書でのページ番号の位置が上下に出力される +% ことになります。 +% +% そこで、p\LaTeXe{}では、\cs{tableofcontents}や\cs{theindex}のページスタイル +% を\pstyle{jpl@in}にし、実際に出力される形式は、ほかのページスタイル +% で|\let|をしています。したがって、\pstyle{headings}のとき、目次ページの +% ページ番号はヘッダ位置に出力され、\pstyle{plain}のときには、フッタ位置に +% 出力されます。 +% +% ここで、定義をしているのは、その初期値です。 +% +% \begin{macro}{\ps@jpl@in} +% \begin{macrocode} +\let\ps@jpl@in\ps@plain +% \end{macrocode} +% \end{macro} +% +% \subsection{headnombreページスタイル} +% +% \begin{macro}{\ps@headnombre} +% \pstyle{headnombre}スタイルは、ヘッダにページ番号のみを出力します。 +% \begin{macrocode} +\def\ps@headnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre +% \def\@evenhead{\thepage\hfil}% +% \def\@oddhead{\hfil\thepage}% +% \def\@evenhead{\hfil\thepage}% +% \def\@oddhead{\thepage\hfil}% + \let\@oddfoot\@empty\let\@evenfoot\@empty} +% \end{macrocode} +% \end{macro} +% +% \subsection{footnombreページスタイル} +% +% \begin{macro}{\ps@footnombre} +% \pstyle{footnombre}スタイルは、フッタにページ番号のみを出力します。 +% \begin{macrocode} +\def\ps@footnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@footnombre +% \def\@evenfoot{\thepage\hfil}% +% \def\@oddfoot{\hfil\thepage}% +% \def\@evenfoot{\hfil\thepage}% +% \def\@oddfoot{\thepage\hfil}% + \let\@oddhead\@empty\let\@evenhead\@empty} +% \end{macrocode} +% \end{macro} +% +% \subsection{headingsスタイル} +% \pstyle{headings}スタイルは、ヘッダに見出しとページ番号を出力します。 +% +% \begin{macro}{\ps@headings} +% このスタイルは、両面印刷と片面印刷とで形式が異なります。 +% \begin{macrocode} +\if@twoside +% \end{macrocode} +% 横組の場合は、奇数ページが右に、偶数ページが左にきます。 +% 縦組の場合は、奇数ページが左に、偶数ページが右にきます。 +% \begin{macrocode} + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty\let\@evenfoot\@empty +% \def\@evenhead{\thepage\hfil\leftmark}% +% \def\@oddhead{{\rightmark}\hfil\thepage}% +% \def\@evenhead{{\leftmark}\hfil\thepage}% +% \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1zw\fi + ##1}}% +%
+%<*report|book> + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% +% + } +% \end{macrocode} +% 片面印刷の場合: +% \changes{v1.1g}{1997/08/25}{片面印刷のとき、sectionレベルが出力されない +% のを修正} +% \begin{macrocode} +\else % if not twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty +% \def\@oddhead{{\rightmark}\hfil\thepage}% +% \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1zw\fi + ##1}}% +%
+%<*report|book> +\def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}}% +% + } +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{bothstyleスタイル} +% +% \begin{macro}{\ps@bothstyle} +% \pstyle{bothstyle}スタイルは、 +% ヘッダに見出しを、フッタにページ番号を出力します。 +% +% このスタイルは、両面印刷と片面印刷とで形式が異なります。 +% \changes{v1.0d}{1995/08/23}{横組の evenfoot が中央揃えになっていたのを修正} +% \changes{v1.0d}{1996/03/05}{横組で偶数ページと奇数ページの設定が逆なのを修正} +% \begin{macrocode} +\if@twoside + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre +%<*yoko> + \def\@evenhead{\leftmark\hfil}% right page + \def\@evenfoot{\thepage\hfil}% right page + \def\@oddhead{\hfil\rightmark}% left page + \def\@oddfoot{\hfil\thepage}% left page +% +%<*tate> + \def\@evenhead{\hfil\leftmark}% right page + \def\@evenfoot{\hfil\thepage}% right page + \def\@oddhead{\rightmark\hfil}% left page + \def\@oddfoot{\thepage\hfil}% left page +% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1zw\fi + ##1}}% +% +%<*report|book> +\def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% +% + } +% \end{macrocode} +% \changes{v1.1g}{1997/08/25}{片面印刷のとき、sectionレベルが出力されない +% のを修正} +% \changes{v1.1i}{1997/12/12}{report, bookクラスで片面印刷時に、 +% bothstyleスタイルにすると、コンパイルエラーになるのを修正} +% \begin{macrocode} +\else % if one column + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre +% \def\@oddhead{\hfil\rightmark}% +% \def\@oddfoot{\hfil\thepage}% +% \def\@oddhead{\rightmark\hfil}% +% \def\@oddfoot{\thepage\hfil}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1zw\fi + ##1}}% +% +%<*report|book> + \def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}}% +% + } +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{myheadingスタイル} +% +% \begin{macro}{\ps@myheadings} +% \changes{v1.0d}{1995/08/23}{横組モードの左右が逆であったのを修正} +% \pstyle{myheadings}ページスタイルは簡潔に定義されています。 +% ユーザがページスタイルを設計するときのヒナ型として使用することができます。 +% \begin{macrocode} +\def\ps@myheadings{\let\ps@jpl@in\ps@plain% + \let\@oddfoot\@empty\let\@evenfoot\@empty +% \def\@evenhead{\thepage\hfil\leftmark}% +% \def\@oddhead{{\rightmark}\hfil\thepage}% +% \def\@evenhead{{\leftmark}\hfil\thepage}% +% \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\@gobbletwo +% \let\chaptermark\@gobble + \let\sectionmark\@gobble +%
\let\subsectionmark\@gobble +} +% \end{macrocode} +% \end{macro} +% +% +% \section{文書コマンド} +% +% \subsubsection{表題} +% +% \begin{macro}{\title} +% \begin{macro}{\autor} +% \begin{macro}{\date} +% 文書のタイトル、著者、日付の情報のための、 +% これらの3つのコマンドは\file{latex.dtx}で提供されています。 +% これらのコマンドは次のように定義されています。 +% \begin{macrocode} +%\newcommand*{\title}[1]{\gdef\@title{#1}} +%\newcommand*{\author}[1]{\gdef\@author{#1}} +%\newcommand*{\date}[1]{\gdef\@date{#1}} +% \end{macrocode} +% |\date|マクロのデフォルトは、今日の日付です。 +% \begin{macrocode} +%\date{\today} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{titlepage} +% 通常の環境では、ページの最初と最後を除き、タイトルページ環境は何もしません。 +% また、ページ番号の出力を抑制します。レポートスタイルでは、 +% ページ番号を1にリセットし、そして最後で1に戻します。 +% 互換モードでは、ページ番号はゼロに設定されますが、 +% 右起こしページ用のページパラメータでは誤った結果になります。 +% 二段組スタイルでも一段組のページが作られます。 +% +% 最初に互換モードの定義を作ります。 +% \begin{macrocode} +\if@compatibility +\newenvironment{titlepage} + {% +% \cleardoublepage + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\newpage\fi + \thispagestyle{empty}% + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn\else\newpage\fi + } +% \end{macrocode} +% +% そして、\LaTeX{}ネイティブのための定義です。 +% \begin{macrocode} +\else +\newenvironment{titlepage} + {% +% \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi +% \end{macrocode} +% 二段組モードでなければ、タイトルページの直後のページのページ番号も1に +% します。 +% \begin{macrocode} + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\maketitle} +% このコマンドは、表題を作成し、出力します。 +% 表題ページを独立させるかどうかによって定義が異なります。 +% reportとbookクラスのデフォルトは独立した表題です。 +% articleクラスはオプションで独立させることができます。 +% +% \begin{macro}{\p@thanks} +% 縦組のときは、|\thanks|コマンドを|\p@thanks|に|\let|します。 +% このコマンドは|\footnotetext|を使わず、直接、文字を|\@thanks|に格納 +% していきます。 +% \begin{macrocode} +\def\p@thanks#1{\footnotemark + \protected@xdef\@thanks{\@thanks + \protect{\noindent$\m@th^\thefootnote$~#1\protect\par}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\if@titlepage + \newcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax +% \let\thanks\p@thanks + \let\footnote\thanks +% \end{macrocode} +% \changes{v1.1d}{1997/02/12}{縦組クラスの表紙を縦書きにするようにした} +% \begin{macrocode} +% \vbox to\textheight\bgroup\tate\hsize\textwidth + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\Large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par +% \vfil{\centering\@thanks}\vfil\null +% \egroup +% \@thanks\vfil\null + \end{titlepage}% +% \end{macrocode} +% \Lcount{footnote}カウンタをリセットし、|\thanks|と|\maketitle|コマンドを +% 無効にし、いくつかの内部マクロを空にして格納領域を節約します。 +% \begin{macrocode} + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty +% \end{macrocode} +% タイトルが組版されたら、|\title|コマンドなどの宣言を無効にできます。 +% |\and|の定義は、|\author|の引数でのみ使用しますので、破棄します。 +% \begin{macrocode} + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand{\thefootnote}{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% +%<*tate> + \long\def\@makefntext##1{\parindent 1zw\noindent + \hbox to 2zw{\hss\@makefnmark}##1}% +% +%<*yoko> + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% +% + \if@twocolumn + \ifnum \col@number=\@ne \@maketitle + \else \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{jpl@in}\@thanks +% \end{macrocode} +% ここでグループを閉じ、\Lcount{footnote}カウンタをリセットし、 +% |\thanks|, |\maketitle|, |\@maketitle|を無効にし、 +% いくつかの内部マクロを空にして格納領域を節約します。 +% \begin{macrocode} + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@maketitle} +% 独立した表題ページを作らない場合の、表題の出力形式です。 +% \begin{macrocode} + \def\@maketitle{% + \newpage\null + \vskip 2em% + \begin{center}% +% \let\footnote\thanks +% \let\footnote\p@thanks + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par\vskip 1.5em} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsubsection{概要} +% +% \begin{environment}{abstract} +% 要約文のための環境です。bookクラスでは使えません。 +% reportスタイルと、|titlepage|オプションを指定したarticleスタイルでは、 +% 独立したページに出力されます。 +% \begin{macrocode} +%<*article|report> +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + {\bfseries\abstractname}% + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries\abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi}{\if@twocolumn\else\endquotation\fi} +\fi +% +% \end{macrocode} +% \end{environment} +% +% +% \subsection{章見出し} +% +% \subsection{マークコマンド} +% +% \begin{macro}{\chaptermark} +% \begin{macro}{\sectionmark} +% \begin{macro}{\subsectionmark} +% \begin{macro}{\subsubsectionmark} +% \begin{macro}{\paragraphmark} +% \begin{macro}{\subparagraphmark} +% |\...mark|コマンドを初期化します。これらのコマンドはページスタイルの +% 定義で使われます(第\ref{sec:pagestyle}節参照)。 +% これらのたいていのコマンドは\file{latex.dtx}ですでに定義されています。 +% \begin{macrocode} +%\newcommand*{\chaptermark}[1]{} +%\newcommand*{\sectionmark}[1]{} +%\newcommand*{\subsectionmark}[1]{} +%\newcommand*{\subsubsectionmark}[1]{} +%\newcommand*{\paragraph}[1]{} +%\newcommand*{\subparagraph}[1]{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{カウンタの定義} +% +% \begin{macro}{\c@secnumdepth} +% \Lcount{secnumdepth}には、番号を付ける、見出しコマンドのレベルを設定します。 +% \begin{macrocode} +%
\setcounter{secnumdepth}{3} +%\setcounter{secnumdepth}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@chapter} +% \begin{macro}{\c@section} +% \begin{macro}{\c@subsection} +% \begin{macro}{\c@subsubsection} +% \begin{macro}{\c@paragraph} +% \begin{macro}{\c@subparagraph} +% これらのカウンタは見出し番号に使われます。 +% 最初の引数は、二番目の引数が増加するたびにリセットされます。 +% 二番目のカウンタはすでに定義されているものでなくてはいけません。 +% \begin{macrocode} +\newcounter{part} +%<*book|report> +\newcounter{chapter} +\newcounter{section}[chapter] +% +%
\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\thepart} +% \begin{macro}{\thechapter} +% \begin{macro}{\thesection} +% \begin{macro}{\thesubsection} +% \begin{macro}{\thesubsubsection} +% \begin{macro}{\theparagraph} +% \begin{macro}{\thesubparagraph} +% |\theCTR|が実際に出力される形式の定義です。 +% +% |\arabic{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 算用数字で出力します。 +% +% |\roman{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 小文字のローマ数字で出力します。 +% +% |\Roman{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 大文字のローマ数字で出力します。 +% +% |\alph{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% $1=$~a, $2=$~b のようにして出力します。 +% +% |\Roman{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% $1=$~A, $2=$~B のようにして出力します。 +% +% |\kansuji{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 漢数字で出力します。 +% +% |\rensuji{|\meta{obj}|}|は、\meta{obj}を横に並べて出力します。 +% したがって、横組のときには、何も影響しません。 +% +% \begin{macrocode} +%<*tate> +\renewcommand{\thepart}{\rensuji{\@Roman\c@part}} +%
\renewcommand{\thesection}{\rensuji{\@arabic\c@section}} +%<*report|book> +\renewcommand{\thechapter}{\rensuji{\@arabic\c@chapter}} +\renewcommand{\thesection}{\thechapter・\rensuji{\@arabic\c@section}} +% +\renewcommand{\thesubsection}{\thesection・\rensuji{\@arabic\c@subsection}} +\renewcommand{\thesubsubsection}{% + \thesubsection・\rensuji{\@arabic\c@subsubsection}} +\renewcommand{\theparagraph}{% + \thesubsubsection・\rensuji{\@arabic\c@paragraph}} +\renewcommand{\thesubparagraph}{% + \theparagraph・\rensuji{\@arabic\c@subparagraph}} +% +%<*yoko> +\renewcommand{\thepart}{\@Roman\c@part} +%
\renewcommand{\thesection}{\@arabic\c@section} +%<*report|book> +\renewcommand{\thechapter}{\@arabic\c@chapter} +\renewcommand{\thesection}{\thechapter.\@arabic\c@section} +% +\renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} +\renewcommand{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection} +\renewcommand{\theparagraph}{% + \thesubsubsection.\@arabic\c@paragraph} +\renewcommand{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@chapapp} +% \begin{macro}{\@chappos} +% |\@chapapp|の初期値は`|\prechaptername|'です。 +% +% |\@chappos|の初期値は`|\postchaptername|'です。 +% +% |\appendix|コマンドは|\@chapapp|を`|\appendixname|'に、 +% |\@chappos|を空に再定義します。 +% \begin{macrocode} +%<*report|book> +\newcommand{\@chapapp}{\prechaptername} +\newcommand{\@chappos}{\postchaptername} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{前付け、本文、後付け} +% +% \begin{macro}{\frontmatter} +% \begin{macro}{\mainmatter} +% \begin{macro}{\backmatter} +% \changes{v1.1}{1997/01/15}{\cs{frontmatter}, \cs{mainmatter}, \cs{backmatter} +% を\LaTeX\ の定義に修正} +% 一冊の本は論理的に3つに分割されます。 +% 表題や目次や「はじめに」あるいは権利などの前付け、 +% そして本文、それから用語集や索引や奥付けなどの後付けです。 +% \begin{macrocode} +%<*book> +\newcommand\frontmatter{% + \if@openright \cleardoublepage \else \clearpage \fi + \@mainmatterfalse\pagenumbering{roman}} +\newcommand{\mainmatter}{% + \if@openright \cleardoublepage \else \clearpage \fi + \@mainmattertrue\pagenumbering{arabic}} +\newcommand{\backmatter}{% + \if@openright \cleardoublepage \else \clearpage \fi + \@mainmatterfalse} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{ボックスの組み立て} +% クラスファイル定義の、この部分では、|\@startsection|と|\secdef|の +% 二つの内部マクロを使います。これらの構文を次に示します。 +% +% |\@startsection|マクロは6つの引数と1つのオプション引数`*'を取ります。 +% +% |\@startsection|\meta{name}\meta{level}\meta{indent}^^A +% \meta{beforeskip}\meta{afterskip}\meta{style} +% optional *\\ +% \null\hphantom{\bslash @startsection}^^A +% |[|\meta{altheading}|]|\meta{heading} +% +% それぞれの引数の意味は、次のとおりです。 +% +% \begin{description} +% \item[\meta{name}] レベルコマンドの名前です(例:section)。 +% \item[\meta{level}] 見出しの深さを示す数値です(chapter=1, section=2, +% $\ldots$)。``\meta{level}$<=$カウンタ\Lcount{secnumdepth}の値''のとき、 +% 見出し番号が出力されます。 +% \item[\meta{indent}] 見出しに対する、左マージンからのインデント量です。 +% \item[\meta{beforeskip}] 見出しの上に置かれる空白の絶対値です。 +% 負の場合は、見出しに続くテキストのインデントを抑制します。 +% \item[\meta{afterskip}] 正のとき、見出しの後の垂直方向のスペースとなります。 +% 負の場合は、見出しの後の水平方向のスペースとなります。 +% \item[\meta{style}] 見出しのスタイルを設定するコマンドです。 +% \item[\meta{$*$}] 見出し番号を付けないとき、対応するカウンタは増加します。 +% \item[\meta{heading}] 新しい見出しの文字列です。 +% \end{description} +% +% 見出しコマンドは通常、|\@startsection|と6つの引数で定義されています。 +% +% |\secdef|マクロは、 +% 見出しコマンドを|\@startsection|を用いないで定義するときに使います。 +% このマクロは、2つの引数を持ちます。 +% +% |\secdef|\meta{unstarcmds}\meta{starcmds} +% +% \begin{description} +% \item[\meta{unstarcmds}] 見出しコマンドの普通の形式で使われます。 +% \item[\meta{starcmds}] $*$形式の見出しコマンドで使われます。 +% \end{description} +% +% |\secdef|は次のようにして使うことができます。 +% \begin{verbatim} +% \def\chapter {... \secdef \CMDA \CMDB } +% \def\CMDA [#1]#2{....} % \chapter[...]{...} の定義 +% \def\CMDB #1{....} % \chapter*{...} の定義 +% \end{verbatim} +% +% +% \subsubsection{partレベル} +% +% \begin{macro}{\part} +% このコマンドは、新しいパート(部)をはじめます。 +% +% articleクラスの場合は、簡単です。 +% +% 新しい段落を開始し、小さな空白を入れ、段落後のインデントをしないようにし、 +% |\secdef|で作成します。 +% \begin{macrocode} +%<*article> +\newcommand{\part}{\par\addvspace{4ex}% + \@afterindenttrue + \secdef\@part\@spart} +%
+% \end{macrocode} +% reportとbookスタイルの場合は、少し複雑です。 +% +% まず、右ページからはじまるように改ページをします。 +% そして、部扉のページスタイルを\pstyle{empty}にします。 +% 2段組の場合でも、1段組で作成しますが、後ほど2段組に戻すために、 +% |\@restonecol|スイッチを使います。 +% \changes{v1.1}{1997/01/15}{\cs{part}を\LaTeX\ の定義に修正} +% \begin{macrocode} +%<*report|book> +\newcommand{\part}{% + \if@openright \cleardoublepage \else \clearpage \fi + \thispagestyle{empty}% + \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi + \null\vfil + \secdef\@part\@spart} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@part} +% このマクロが実際に部レベルの見出しを作成します。 +% このマクロも文書クラスによって定義が異なります。 +% +% articleクラスの場合は、\Lcount{secnumdepth}が$-1$よりも大きいとき、 +% 見出し番号を付けます。このカウンタが$-1$以下の場合には付けません。 +% \begin{macrocode} +%<*article> +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1zw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\parindent\z@\raggedright + \interlinepenalty\@M\reset@font + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries\prepartname\thepart\postpartname + \par\nobreak + \fi + \huge\bfseries#2\par}% + \nobreak\vskip3ex\@afterheading} +%
+% \end{macrocode} +% +% reportとbookクラスの場合は、\Lcount{secnumdepth}が$-2$よりも大きいときに、 +% 見出し番号を付けます。$-2$以下では付けません。 +% +% \begin{macrocode} +%<*report|book> +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty\@M\reset@font + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries\prepartname\thepart\postpartname + \par\vskip20\p@ + \fi + \Huge\bfseries#2\par}% + \@endpart} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@spart} +% このマクロは、番号を付けないときの体裁です。 +% \begin{macrocode} +%<*article> +\def\@spart#1{{% + \parindent\z@\raggedright + \interlinepenalty\@M\reset@font + \huge\bfseries#1\par}% + \nobreak\vskip3ex\@afterheading} +%
+% \end{macrocode} +% \changes{v1.1k}{1998/03/23}{reportとbookクラスで番号を付けない見出しの +% ペナルティが\cs{M@}だったのを\cs{@M}に修正} +% \begin{macrocode} +%<*report|book> +\def\@spart#1{{% + \centering + \interlinepenalty\@M\reset@font + \Huge\bfseries#1\par}% + \@endpart} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@endpart} +% |\@part|と|\@spart|の最後で実行されるマクロです。 +% 両面印刷モードのときは、白ページを追加します。 +% 二段組モードのときには、これ以降のページを二段組に戻します。 +% \begin{macrocode} +%<*report|book> +\def\@endpart{\vfil\newpage + \if@twoside\null\thispagestyle{empty}\newpage\fi +% \end{macrocode} +% 二段組文書のとき、スイッチを二段組モードに戻す必要があります。 +% \begin{macrocode} + \if@tempswa\twocolumn\fi} +% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{chapterレベル} +% +% \begin{macro}{chapter} +% 章レベルは、必ずページの先頭から開始します。 +% |openright|オプションが指定されている場合は、右ページからはじまる +% ように|\cleardoublepage|を呼び出します。 +% そうでなければ、|\clearpage|を呼び出します。 +% なお、縦組の場合でも右ページからはじまるように、 +% フォーマットファイルで|\clerdoublepage|が定義されています。 +% +% 章見出しが出力されるページのスタイルは、\pstyle{jpl@in}になります。 +% \pstyle{jpl@in}は、\pstyle{headnomble}か\pstyle{footnomble}のいずれかです。 +% 詳細は、第\ref{sec:pagestyle}節を参照してください。 +% +% また、|\@topnum|をゼロにして、 +% 章見出しの上にトップフロートが置かれないようにしています。 +% \begin{macrocode} +%<*report|book> +\newcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindenttrue + \secdef\@chapter\@schapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@chapter} +% このマクロは、章見出しに番号を付けるときに呼び出されます。 +% \Lcount{secnumdepth}が$-1$よりも大きく、 +% |\@mainmatter|が真(bookクラスの場合)のときに、番号を出力します。 +% \begin{macrocode} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter\space\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% +% \else\addcontentsline{toc}{chapter}{#1}\fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \@makechapterhead{#2}\@afterheading} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makechapterhead} +% このマクロが実際に章見出しを組み立てます。 +% \changes{v1.1o}{1998/12/24}{secnumdepthカウンタを$-1$以下にすると、 +% 見出し文字列も消えてしまうのを修正} +% \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と +% そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \begin{macrocode} +\def\@makechapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \reset@font\huge\bfseries + \leavevmode + \ifnum \c@secnumdepth >\m@ne + \setlength\@tempdima{\linewidth}% +% \if@mainmatter + \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1zw}% + \addtolength\@tempdima{-\wd\z@}% + \unhbox\z@\nobreak +% \fi + \vtop{\hsize\@tempdima#1}% + \else + #1\relax + \fi}\nobreak\vskip3\Cvs} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@schapter} +% このマクロは、章見出しに番号を付けないときに呼び出されます。 +% \begin{macrocode} +\def\@schapter#1{% +%
\if@twocolumn\@topnewpage[\@makeschapterhead{#1}]\else + \@makeschapterhead{#1}\@afterheading +%
\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makeschapterhead} +% 番号を付けない場合の形式です。 +% \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と +% そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \begin{macrocode} +\def\@makeschapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \reset@font\huge\bfseries + \leavevmode + \setlength\@tempdima{\linewidth}% + \vtop{\hsize\@tempdima#1}}\vskip3\Cvs} +% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{下位レベルの見出し} +% +% \begin{macro}{\section} +% 見出しの前後に空白を付け、|\Large\bfseries|で出力をします。 +% \begin{macrocode} +\newcommand{\section}{\@startsection{section}{1}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\Large\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subsection} +% 見出しの前後に空白を付け、|\large\bfseries|で出力をします。 +% \begin{macrocode} +\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\large\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subsubsection} +% 見出しの前後に空白を付け、|\normalsize\bfseries|で出力をします。 +% \begin{macrocode} +\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\paragraph} +% 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。 +% 見出しの後ろで改行されません。 +% \begin{macrocode} +\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subparagraph} +% 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。 +% 見出しの後ろで改行されません。 +% \begin{macrocode} +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{付録} +% +% \begin{macro}{\appendix} +% articleクラスの場合、|\appendix|コマンドは次のことを行ないます。 +% +% \begin{itemize} +% \item \Lcount{section}と\Lcount{subsection}カウンタをリセットする。 +% \item |\thesection|を英小文字で出力するように再定義する。 +% \end{itemize} +% +% \begin{macrocode} +%<*article> +\newcommand{\appendix}{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% +% \renewcommand{\thesection}{\rensuji{\@Alph\c@section}}} +% \renewcommand{\thesection}{\@Alph\c@section}} +%
+% \end{macrocode} +% +% reportとbookクラスの場合、|\appendix|コマンドは次のことを行ないます。 +% +% \begin{itemize} +% \item \Lcount{chapter}と\Lcount{section}カウンタをリセットする。 +% \item |\@chapapp|を|\appendixname|に設定する。 +% \item |\@chappos|を空にする。 +% \item |\thechapter|を英小文字で出力するように再定義する。 +% \end{itemize} +% +% \begin{macrocode} +%<*report|book> +\newcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand{\@chapapp}{\appendixname}% + \renewcommand{\@chappos}\space% +% \renewcommand{\thechapter}{\rensuji{\@Alph\c@chapter}}} +% \renewcommand{\thechapter}{\@Alph\c@chapter}} +% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{リスト環境} +% ここではリスト環境について説明をしています。 +% +% リスト環境のデフォルトは次のように設定されます。 +% +% まず、|\rigtmargin|, |\listparindent|, |\itemindent|をゼロにします。 +% そして、K番目のレベルのリストは|\@listK|で示されるマクロが呼び出されます。 +% ここで`K'は小文字のローマ数字で示されます。たとえば、3番目のレベルのリスト +% として|\@listiii|が呼び出されます。 +% |\@listK|は|\leftmargin|を|\leftmarginK|に設定します。 +% +% \begin{macro}{\leftmargin} +% \begin{macro}{\leftmargini} +% \begin{macro}{\leftmarginii} +% \begin{macro}{\leftmarginiii} +% \begin{macro}{\leftmarginiv} +% \begin{macro}{\leftmarginv} +% \begin{macro}{\leftmarginvi} +% 二段組モードのマージンは少しだけ小さく設定してあります。 +% \begin{macrocode} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +% \end{macrocode} +% 次の3つの値は、|\labelsep|とデフォルトラベル(`(m)', `vii.', `M.')の +% 幅の合計よりも大きくしてあります。 +% \begin{macrocode} +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi{.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi{1em} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelsep} +% \begin{macro}{\labelwidth} +% |\labelsep|はラベルとテキストの項目の間の距離です。 +% |\labelwidth|はラベルの幅です。 +% \begin{macrocode} +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@beginparpenalty} +% \begin{macro}{\@endparpenalty} +% これらのペナルティは、リストや段落環境の前後に挿入されます。 +% \begin{macro}{\@itempenalty} +% このペナルティは、リスト項目の間に挿入されます。 +% \begin{macrocode} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\partopsep} +% リスト環境の前に空行がある場合、|\parskip|と|\topsep|に|\partopsep|が +% 加えられた値の縦方向の空白が取られます。 +% \begin{macrocode} +%<10pt>\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@} +%<11pt>\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@} +%<12pt>\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@listi} +% \begin{macro}{\@listI} +% |\@listi|は、|\leftmargin|, |\parsep|, |\topsep|, |\itemsep|などの +% トップレベルの定義をします。 +% この定義は、フォントサイズコマンドによって変更されます(たとえば、 +% |\small|の中では``小さい''リストパラメータになります)。 +% +% このため、|\normalsize|がすべてのパラメータを戻せるように、 +% |\@listI|は|\@listi|のコピーを保存するように定義されています。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\def\@listi{\leftmargin\leftmargini +%<*10pt> + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +% +%<*11pt> + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +% +%<*12pt> + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +% +\let\@listI\@listi +% \end{macrocode} +% ここで、パラメータを初期化しますが、厳密には必要ありません。 +% \begin{macrocode} +\@listi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@listii} +% \begin{macro}{\@listiii} +% \begin{macro}{\@listiv} +% \begin{macro}{\@listv} +% \begin{macro}{\@listvi} +% 下位レベルのリスト環境のパラメータの設定です。 +% これらは保存用のバージョンを持たないことと、 +% フォントサイズコマンドによって変更されないことに注意をしてください。 +% 言い換えれば、このクラスは、本文サイズが +% |\normalsize|で現れるリストの入れ子についてだけ考えています。 +% \begin{macrocode} +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep +%<*10pt> + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +% +%<*11pt> + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +% +%<*12pt> + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ +% + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep +%<10pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<11pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{enumerate環境} +% enumerate環境は、カウンタ\Lcount{enumi}, \Lcount{enumii}, \Lcount{enumiii}, +% \Lcount{enumiv}を使います。\Lcount{enumN}はN番目のレベルの番号を制御します。 +% +% \begin{macro}{\theenumi} +% \begin{macro}{\theenumii} +% \begin{macro}{\theenumiii} +% \begin{macro}{\theenumiv} +% 出力する番号の書式を設定します。 +% これらは、すでに\file{ltlists.dtx}で定義されています。 +% \begin{macrocode} +%<*article|report|book> +%<*tate> +\renewcommand{\theenumi}{\rensuji{\@arabic\c@enumi}} +\renewcommand{\theenumii}{\rensuji{(\@alph\c@enumii)}} +\renewcommand{\theenumiii}{\rensuji{\@roman\c@enumiii}} +\renewcommand{\theenumiv}{\rensuji{\@Alph\c@enumiv}} +% +%<*yoko> +\renewcommand{\theenumi}{\@arabic\c@enumi} +\renewcommand{\theenumii}{\@alph\c@enumii} +\renewcommand{\theenumiii}{\@roman\c@enumiii} +\renewcommand{\theenumiv}{\@Alph\c@enumiv} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelenumi} +% \begin{macro}{\labelenumii} +% \begin{macro}{\labelenumiii} +% \begin{macro}{\labelenumiv} +% enumerate環境のそれぞれの項目のラベルは、 +% |\labelenumi| \ldots\ |\labelenumiv|で生成されます。 +% \begin{macrocode} +%<*tate> +\newcommand{\labelenumi}{\theenumi} +\newcommand{\labelenumii}{\theenumii} +\newcommand{\labelenumiii}{\theenumiii} +\newcommand{\labelenumiv}{\theenumiv} +% +%<*yoko> +\newcommand{\labelenumi}{\theenumi.} +\newcommand{\labelenumii}{(\theenumii)} +\newcommand{\labelenumiii}{\theenumiii.} +\newcommand{\labelenumiv}{\theenumiv.} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\p@enumii} +% \begin{macro}{\p@enumiii} +% \begin{macro}{\p@enumiv} +% |\ref|コマンドによって、 +% enumerate環境のN番目のリスト項目が参照されるときの書式です。 +% \begin{macrocode} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{enumerate} +% \changes{v1.1q}{1999/05/18}{縦組時のみに設定するようにした} +% トップレベルで使われたときに、最初と最後に半行分のスペースを開けるように、 +% 変更します。この環境は、\file{ltlists.dtx}で定義されています。 +% +% \begin{macrocode} +\renewenvironment{enumerate} + {\ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \list{\csname label\@enumctr\endcsname}{% + \iftdir + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1zw \labelsep.3zw + \ifnum \@enumdepth=\@ne \leftmargin1zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1zw + \fi + \usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +% \end{macrocode} +% \end{environment} +% +% +% \subsubsection{itemize環境} +% +% \begin{macro}{\labelitemi} +% \begin{macro}{\labelitemii} +% \begin{macro}{\labelitemiii} +% \begin{macro}{\labelitemiv} +% itemize環境のそれぞれの項目のラベルは、 +% |\labelenumi| \ldots\ |\labelenumiv|で生成されます。 +% \changes{v1.1a}{1997/01/28}{Bug fix: \cs{labelitemii}.} +% \begin{macrocode} +\newcommand{\labelitemi}{\textbullet} +\newcommand{\labelitemii}{% + \iftdir + {\textcircled{~}} + \else + {\normalfont\bfseries\textendash} + \fi +} +\newcommand{\labelitemiii}{\textasteriskcentered} +\newcommand{\labelitemiv}{\textperiodcentered} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{itemize} +% \changes{v1.0e}{1996/03/14}{縦組時のみに設定するようにした} +% トップレベルで使われたときに、最初と最後に半行分のスペースを開けるように、 +% 変更します。この環境は、\file{ltlists.dtx}で定義されています。 +% \begin{macrocode} +\renewenvironment{itemize} + {\ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list{\csname \@itemitem\endcsname}{% + \iftdir + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1zw \labelsep.3zw + \ifnum \@itemdepth =\@ne \leftmargin1zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1zw + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +% \end{macrocode} +% \end{environment} +% +% +% \subsubsection{description環境} +% +% \begin{environment}{description} +% \changes{v1.0e}{1996/03/14}{\cs{topskip}や\cs{parkip}などの値を縦組時のみに +% 設定するようにした} +% description環境を定義します。 +% 縦組時には、インデントが3字分だけ深くなります。 +% \begin{macrocode} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \iftdir + \leftmargin\leftskip \advance\leftmargin3\Cwd + \rightmargin\rightskip + \labelsep=1zw \itemsep\z@ + \listparindent\z@ \topskip\z@ \parskip\z@ \partopsep\z@ + \fi + \let\makelabel\descriptionlabel}}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\descriptionlabel} +% ラベルの形式を変更する必要がある場合は、|\descriptionlabel|を +% 再定義してください。 +% \begin{macrocode} +\newcommand{\descriptionlabel}[1]{% + \hspace\labelsep\normalfont\bfseries #1} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{verse環境} +% +% \begin{environment}{verse} +% verse環境は、リスト環境のパラメータを使って定義されています。 +% 改行をするには|\\|を用います。|\\|は|\@centercr|に|\let|されています。 +% \begin{macrocode} +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em% + \listparindent\itemindent + \rightmargin\leftmargin \advance\leftmargin 1.5em}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \subsubsection{quotation環境} +% +% \begin{environment}{quotation} +% quotation環境もまた、list環境のパラメータを使用して定義されています。 +% この環境の各行は、|\textwidth|よりも小さく設定されています。 +% この環境における、段落の最初の行はインデントされます。 +% \begin{macrocode} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent\listparindent + \rightmargin\leftmargin + \parsep\z@ \@plus\p@}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \subsubsection{quote環境} +% +% \begin{environment}{quote} +% quote環境は、段落がインデントされないことを除き、quotation環境と同じです。 +% \begin{macrocode} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% +% +% \subsection{フロート} +% +% \file{ltfloat.dtx}では、フロートオブジェクトを操作するためのツールしか +% 定義していません。タイプが\texttt{TYPE}のフロートオブジェクトを +% 扱うマクロを定義するには、次の変数が必要です。 +% +% \begin{description} +% \item[\texttt{\bslash fps@TYPE}] +% タイプ\texttt{TYPE}のフロートを置くデフォルトの位置です。 +% +% \item[\texttt{\bslash ftype@TYPE}] +% タイプ\texttt{TYPE}のフロートの番号です。 +% 各\texttt{TYPE}には、一意な、2の倍数の\texttt{TYPE}番号を割り当てます。 +% たとえば、図が番号1ならば、表は2です。次のタイプは4となります。 +% +% \item[\texttt{\bslash ext@TYPE}] +% タイプ\texttt{TYPE}のフロートの目次を出力するファイルの拡張子です。 +% たとえば、|\ext@figure|は`lot'です。 +% +% \item[\texttt{\bslash fnum@TYPE}] +% キャプション用の図番号を生成するマクロです。 +% たとえば、|\fnum@figure|は`図|\thefigure|'を作ります。 +% \end{description} +% +% \subsubsection{figure環境} +% ここでは、figure環境を実装しています。 +% +% \begin{macro}{\c@figure} +% \begin{macro}{\thefigure} +% 図番号です。 +% \begin{macrocode} +%
\newcounter{figure} +%\newcounter{figure}[chapter] +%<*tate> +%
\renewcommand{\thefigure}{\rensuji{\@arabic\c@figure}} +% \end{macrocode} +% \changes{v1.1d}{1997/02/14}{\cs{ifnum}文の構文エラーを訂正。} +% \begin{macrocode} +%<*report|book> +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure}} +% +% +%<*yoko> +%
\renewcommand{\thefigure}{\@arabic\c@figure} +%<*report|book> +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@figure} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fps@figure} +% \begin{macro}{\ftype@figure} +% \begin{macro}{\ext@figure} +% \begin{macro}{\fnum@figure} +% フロートオブジェクトタイプ``figure''のためのパラメータです。 +% \begin{macrocode} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +%\def\fnum@figure{\figurename\thefigure} +%\def\fnum@figure{\figurename~\thefigure} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{figure} +% \begin{environment}{figure*} +% |*|形式は2段抜きのフロートとなります。 +% \begin{macrocode} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \subsubsection{table環境} +% ここでは、table環境を実装しています。 +% +% \begin{macro}{\c@table} +% \begin{macro}{\thetable} +% \changes{v1.1n}{1998/10/13} +% {report, bookクラスでchapterカウンタを考慮していなかったのを修正。 +% ありがとう、平川@慶應大さん。} +% 表番号です。 +% \begin{macrocode} +%
\newcounter{table} +%\newcounter{table}[chapter] +%<*tate> +%
\renewcommand{\thetable}{\rensuji{\@arabic\c@table}} +%<*report|book> +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@table}} +% +% +%<*yoko> +%
\renewcommand{\thetable}{\@arabic\c@table} +%<*report|book> +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@table} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fps@table} +% \begin{macro}{\ftype@table} +% \begin{macro}{\ext@table} +% \begin{macro}{\fnum@table} +% フロートオブジェクトタイプ``table''のためのパラメータです。 +% \begin{macrocode} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +%\def\fnum@table{\tablename\thetable} +%\def\fnum@table{\tablename~\thetable} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{table} +% \begin{environment}{table*} +% |*|形式は2段抜きのフロートとなります。 +% \begin{macrocode} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \subsection{キャプション} +% +% \begin{macro}{\@makecaption} +% |\caption|コマンドは、キャプションを組み立てるために|\@mkcaption|を呼出ます。 +% このコマンドは二つの引数を取ります。 +% 一つは、\meta{number}で、フロートオブジェクトの番号です。 +% もう一つは、\meta{text}でキャプション文字列です。 +% \meta{number}には通常、`図 3.2'のような文字列が入っています。 +% このマクロは、|\parbox|の中で呼び出されます。書体は|\normalsize|です。 +% +% \begin{macro}{\abovecaptionskip} +% \begin{macro}{\belowcaptionskip} +% これらの長さはキャプションの前後に挿入されるスペースです。 +% \begin{macrocode} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% キャプション内で複数の段落を作成することができるように、 +% このマクロは|\long|で定義をします。 +% \begin{macrocode} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \iftdir\sbox\@tempboxa{#1\hskip1zw#2}% + \else\sbox\@tempboxa{#1: #2}% + \fi + \ifdim \wd\@tempboxa >\hsize + \iftdir #1\hskip1zw#2\relax\par + \else #1: #2\relax\par\fi + \else + \global \@minipagefalse + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +% \end{macrocode} +% \end{macro} +% +% \subsection{コマンドパラメータの設定} +% +% \subsubsection{arrayとtabular環境} +% +% \begin{macro}{\arraycolsep} +% array環境のカラムは2|\arraycolsep|で分離されます。 +% \begin{macrocode} +\setlength\arraycolsep{5\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tabcolsep} +% tabular環境のカラムは2|\tabcolsep|で分離されます。 +% \begin{macrocode} +\setlength\tabcolsep{6\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\arrayrulewidth} +% arrayとtabular環境内の罫線の幅です。 +% \begin{macrocode} +\setlength\arrayrulewidth{.4\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\doublerulesep} +% arrayとtabular環境内の罫線間を調整する空白です。 +% \begin{macrocode} +\setlength\doublerulesep{2\p@} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{tabbing環境} +% +% \begin{macro}{\tabbingsep} +% |\'|コマンドで置かれるスペースを制御します。 +% \begin{macrocode} +\setlength\tabbingsep{\labelsep} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{minipage環境} +% +% \begin{macro}{\@mpfootins} +% minipageにも脚注を付けることができます。 +% |\skip||\@mpfootins|は、通常の|\skip||\footins|と同じような動作をします。 +% \begin{macrocode} +\skip\@mpfootins = \skip\footins +% \end{macrocode} +% \end{macro} +% +% \subsubsection{framebox環境} +% +% \begin{macro}{\fboxsep} +% \begin{macro}{\fboxrule} +% |\fboxsep|は、|\fbox|と|\framebox|での、 +% テキストとボックスの間に入る空白です。 +% |\fboxrule|は|\fbox|と|\framebox|で作成される罫線の幅です。 +% \begin{macrocode} +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{equationとeqnarray環境} +% +% \begin{macro}{\theequation} +% equationカウンタは、新しい章の開始でリセットされます。 +% また、equation番号には、章番号が付きます。 +% +% このコードは|\chapter|定義の後、より正確にはchapterカウンタの定義の後、 +% でなくてはいけません。 +% \begin{macrocode} +%
\renewcommand{\theequation}{\@arabic\c@equation} +%<*report|book> +\@addtoreset{equation}{chapter} +\renewcommand{\theequation}{% + \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +% +% \end{macrocode} +% \end{macro} +% +% +% \section{フォントコマンド} +% |disablejfam|オプションが指定されていない場合には、以下の設定がなさ +% れます。 +% まず、数式内に日本語を直接、記述するために数式記号用文字に +% ``JY1/mc/m/n''を登録します。数式バージョンがboldの場合は、 +% ``JY1/gt/m/n''を用います。 +% これらは、|\mathmc|, |\mathgt|として登録されます。 +% また、日本語数式ファミリとして|\symmincho|がこの段階で設定されます。 +% |mathrmmc|オプションが指定されていた場合には、これに引き続き +% |\mathrm|と|\mathbf|を和欧文両対応にするための作業がなされます。この際、 +% 他のマクロとの衝突を避けるため|\AtBeginDocument| +% を用いて展開順序を遅らせる必要があります。 +% +% |disablejfam|オプションが指定されていた場合には、 +% |\mathmc|と|\mathgt|に対してエラーを出すだけのダミーの定義を +% 与える設定のみが行われます。 +% +% \textbf{変更} +% +% \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。} +% p\LaTeX{} 2.09 +% compatibility mode では和文数式フォントfam が2重定義されていた +% ので、その部分を変更しました。 +% \begin{macrocode} +\if@enablejfam + \if@compatibility\else + \DeclareSymbolFont{mincho}{JY1}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{JY1}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{JY1}{gt}{m}{n} + \fi + \if@mathrmmc + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + }% + \fi +\else + \DeclareRobustCommand{\mathmc}{% + \@latex@error{Command \noexpand\mathmc invalid with\space + `disablejfam' class option.}\@eha + } + \DeclareRobustCommand{\mathgt}{% + \@latex@error{Command \noexpand\mathgt invalid with\space + `disablejfam' class option.}\@eha + } +\fi +% \end{macrocode} +% +% ここでは\LaTeX~2.09で一般的に使われていたコマンドを定義しています。 +% これらのコマンドはテキストモードと数式モードの\emph{どちらでも}動作します。 +% これらは互換性のために提供をしますが、できるだけ|\text...|と|\math...|を +% 使うようにしてください。 +% +% \begin{macro}{\mc} +% \begin{macro}{\gt} +% \begin{macro}{\rm} +% \begin{macro}{\sf} +% \begin{macro}{\tt} +% これらのコマンドはフォントファミリを変更します。 +% 互換モードの同名コマンドと異なり、すべてのコマンドがデフォルトフォントに +% リセットしてから、対応する属性を変更することに注意してください。 +% \begin{macrocode} +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bf} +% このコマンドはボールド書体にします。ノーマル書体に変更するには、 +% |\mdseries|と指定をします。 +% \begin{macrocode} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\it} +% \begin{macro}{\sl} +% \begin{macro}{\sc} +% これらのコマンドはフォントシェイプを切替えます。 +% スラント体とスモールキャップの数式アルファベットはありませんので、 +% 数式モードでは何もしませんが、警告メッセージを出力します。 +% |\upshape|コマンドで通常のシェイプにすることができます。 +% \begin{macrocode} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cal} +% \begin{macro}{\mit} +% これらのコマンドは数式モードでだけ使うことができます。 +% 数式モード以外では何もしません。 +% 現在のNFSSは、これらのコマンドが警告を生成するように定義していますので、 +% `手ずから'定義する必要があります。 +% \begin{macrocode} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +% \section{相互参照} +% +% \subsection{目次} +% |\section|コマンドは、\file{.toc}ファイルに、次のような行を出力します。 +% +% |\contentsline{section}{|\meta{title}|}{|\meta{page}|}| +% +% \meta{title}には項目が、\meta{page}にはページ番号が入ります。 +% |\section|に見出し番号が付く場合は、\meta{title}は、 +% |\numberline{|\meta{num}|}{|\meta{heading}|}|となります。 +% \meta{num}は|\thesection|コマンドで生成された見出し番号です。 +% \meta{heading}は見出し文字列です。この他の見出しコマンドも同様です。 +% +% figure環境での|\caption|コマンドは、\file{.lof}ファイルに、 +% 次のような行を出力します。 +% +% |\contentsline{figure}{\numberline{|\meta{num}|}{|% +% \meta{caption}|}}{|\meta{page}|}| +% +% \meta{num}は、|\thefigure|コマンドで生成された図番号です。 +% \meta{caption}は、キャプション文字列です。table環境も同様です。 +% +% |\contentsline{|\meta{name}|}|コマンドは、|\l@|\meta{name}に展開されます。 +% したがって、目次の体裁を記述するには、|\l@chapter|, |\l@section|などを +% 定義します。図目次のためには|\l@figure|です。 +% これらの多くのコマンドは|\@dottedtocline|コマンドで定義されています。 +% このコマンドは次のような書式となっています。 +% +% |\@dottedtocline{|\meta{level}|}{|\meta{indent}|}{|^^A +% \meta{numwidth}|}{|\meta{title}|}{|\meta{page}|}| +% +% \begin{description} +% \item[\meta{level}] ``\meta{level} $<=$ \Lcount{tocdepth}''のときにだけ、 +% 生成されます。|\chapter|はレベル0、|\section|はレベル1、$\ldots$ です。 +% \item[\meta{indent}] 一番外側からの左マージンです。 +% \item[\meta{numwidth}] 見出し番号(|\numberline|コマンドの\meta{num})が +% 入るボックスの幅です。 +% \end{description} +% +% \begin{macro}{\c@tocdepth} +% \Lcount{tocdepth}は、目次ページに出力をする見出しレベルです。 +% \begin{macrocode} +%
\setcounter{tocdepth}{3} +%\setcounter{tocdepth}{2} +% \end{macrocode} +% \end{macro} +% +% また、目次を生成するために次のパラメータも使います。 +% +% \begin{macro}{\@pnumwidth} +% ページ番号の入るボックスの幅です。 +% \begin{macrocode} +\newcommand{\@pnumwidth}{1.55em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@tocmarg} +% 複数行にわたる場合の右マージンです。 +% \begin{macrocode} +\newcommand{\@tocrmarg}{2.55em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dotsep} +% ドットの間隔(mu単位)です。2や1.7のように指定をします。 +% \begin{macrocode} +\newcommand{\@dotsep}{4.5} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\toclineskip} +% この長さ変数は、目次項目の間に入るスペースの長さです。 +% デフォルトはゼロとなっています。縦組のとき、スペースを少し広げます。 +% \begin{macrocode} +\newdimen\toclineskip +%\setlength\toclineskip{\z@} +%\setlength\toclineskip{2\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\numberline} +% \begin{macro}{\@lnumwidth} +% |\numberline|マクロの定義を示します。オリジナルの定義では、ボックスの幅を +% |\@tempdima|にしていますが、この変数はいろいろな箇所で使われますので、 +% 期待した値が入らない場合があります。 +% +% たとえば、p\LaTeXe{}での|\selectfont|は、和欧文のベースラインを調整する +% ために|\@tempdima|変数を用いています。そのため、|\l@...|マクロの中で +% フォントを切替えると、|\numberline|マクロのボックス +% の幅が、ベースラインを調整するときに計算した値になってしまいます。 +% +% フォント選択コマンドの後、あるいは|\numberline|マクロの中でフォントを +% 切替えてもよいのですが、一時変数を意識したくないので、 +% 見出し番号の入るボックスを|\@lnumwidth|変数を用いて組み立てるように +% |\numberline|マクロを再定義します。 +% \begin{macrocode} +\newdimen\@lnumwidth +\def\numberline#1{\hbox to\@lnumwidth{#1\hfil}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dottedtocline} +% 目次の各行間に|\toclineskip|を入れるように変更します。 +% このマクロは\file{ltsect.dtx}で定義されています。 +% \changes{v1.3}{2001/10/04}{第5引数の書体を\cs{rmfamily}から\cs{normalfont}に変更} +% \begin{macrocode} +\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 + \@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} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addcontentsline} +% ページ番号を|\rensuji|で囲むように変更します。 +% 横組のときにも`|\rensuji|'コマンドが出力されますが、 +% このコマンドによる影響はありません。 +% +% このマクロは\file{ltsect.dtx}で定義されています。 +% \begin{macrocode} +\def\addcontentsline#1#2#3{% + \protected@write\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble +%\@temptokena{\rensuji{\thepage}}}% +%\@temptokena{\thepage}}% + {\string\@writefile{#1}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{本文目次} +% +% \begin{macro}{\tableofcontents} +% 目次を生成します。 +% \begin{macrocode} +\newcommand{\tableofcontents}{% +%<*report|book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi +% +%
\section*{\contentsname +% \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + }\@starttoc{toc}% +% \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@part} +% partレベルの目次です。 +% \begin{macrocode} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax +%
\addpenalty{\@secpenalty}% +% \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + {\leavevmode\large\bfseries + \setlength\@lnumwidth{4zw}% + #1\hfil\nobreak + \hbox to\@pnumwidth{\hss#2}}\par + \nobreak +%
\if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% +%
\fi + \endgroup + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@chapter} +% chapterレベルの目次です。 +% \begin{macrocode} +%<*report|book> +\newcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{4zw}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@section} +% sectionレベルの目次です。 +% \begin{macrocode} +%<*article> +\newcommand*{\l@section}[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty{\@secpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{1.5em}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \endgroup + \fi} +%
+% \end{macrocode} +% +% \begin{macrocode} +%<*report|book> +%\newcommand*{\l@section}{\@dottedtocline{1}{1zw}{4zw}} +%\newcommand*{\l@section}{\@dottedtocline{1}{1.5em}{2.3em}} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@subsection} +% \begin{macro}{\l@subsubsection} +% \begin{macro}{\l@paragraph} +% \begin{macro}{\l@subparagraph} +% 下位レベルの目次項目の体裁です。 +% \begin{macrocode} +%<*tate> +%<*article> +\newcommand*{\l@subsection} {\@dottedtocline{2}{1zw}{4zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2zw}{6zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{3zw}{8zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4zw}{9zw}} +%
+%<*report|book> +\newcommand*{\l@subsection} {\@dottedtocline{2}{2zw}{6zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3zw}{8zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{4zw}{9zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{5zw}{10zw}} +% +% +%<*yoko> +%<*article> +\newcommand*{\l@subsection} {\@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}} +%
+%<*report|book> +\newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}} +%
+% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{図目次と表目次} +% +% \begin{macro}{\listoffigures} +% 図の一覧を作成します。 +% \begin{macrocode} +\newcommand{\listoffigures}{% +%<*report|book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listfigurename +% +%
\section*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% +% \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@figure} +% 図目次の体裁です。 +% \begin{macrocode} +%\newcommand*{\l@figure}{\@dottedtocline{1}{1zw}{4zw}} +%\newcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{2.3em}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listoftables} +% \changes{v1.0c}{1995/12/28}{fix the \cs{listoftable} typo.} +% 表の一覧を作成します。 +% \begin{macrocode} +\newcommand{\listoftables}{% +%<*report|book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listtablename +% +%
\section*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% +% \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@table} +% 表目次の体裁は、図目次と同じにします。 +% \begin{macrocode} +\let\l@table\l@figure +% \end{macrocode} +% \end{macro} +% +% +% \subsection{参考文献} +% +% \begin{macro}{\bibindent} +% オープンスタイルの参考文献で使うインデント幅です。 +% \begin{macrocode} +\newdimen\bibindent +\setlength\bibindent{1.5em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\newblock} +% |\newblock|のデフォルト定義は、小さなスペースを生成します。 +% \begin{macrocode} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{thebibliography} +% 参考文献や関連図書のリストを作成します。 +% \begin{macrocode} +\newenvironment{thebibliography}[1] +%
{\section*{\refname\@mkboth{\refname}{\refname}}% +%{\chapter*{\bibname\@mkboth{\bibname}{\bibname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy +% \end{macrocode} +% \changes{v1.1a}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}に合わせて修正} +% \begin{macrocode} + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@openbib@code} +% |\@openbib@code|のデフォルト定義は何もしません。 +% この定義は、\Lopt{openbib}オプションによって変更されます。 +% \begin{macrocode} +\let\@openbib@code\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@biblabel} +% The label for a |\bibitem[...]| command is produced by this +% macro. The default from \file{latex.dtx} is used. +% \begin{macrocode} +% \renewcommand*{\@biblabel}[1]{[#1]\hfill} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@cite} +% The output of the |\cite| command is produced by this macro. The +% default from \file{latex.dtx} is used. +% \begin{macrocode} +% \renewcommand*{\@cite}[1]{[#1]} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{索引} +% +% \begin{environment}{theindex} +% 2段組の索引を作成します。 +% 索引の先頭のページのスタイルは\pstyle{jpl@in}とします。したがって、 +% \pstyle{headings}と\pstyle{bothstyle}に適した位置に出力されます。 +% \begin{macrocode} +\newenvironment{theindex} + {\if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi + \columnseprule\z@ \columnsep 35\p@ +%
\twocolumn[\section*{\indexname}]% +% \twocolumn[\@makeschapterhead{\indexname}]% + \@mkboth{\indexname}{\indexname}% + \thispagestyle{jpl@in}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@idxitem} +% \begin{macro}{\subitem} +% \begin{macro}{\subsubitem} +% 索引項目の字下げ幅です。|\@idxitem|は|\item|の項目の字下げ幅です。 +% \begin{macrocode} +\newcommand{\@idxitem}{\par\hangindent 40\p@} +\newcommand{\subitem}{\@idxitem \hspace*{20\p@}} +\newcommand{\subsubitem}{\@idxitem \hspace*{30\p@}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\indexspace} +% 索引の``文字''見出しの前に入るスペースです。 +% \begin{macrocode} +\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{脚注} +% +% \begin{macro}{\footnoterule} +% 本文と脚注の間に引かれる罫線です。 +% \begin{macrocode} +\renewcommand{\footnoterule}{% + \kern-3\p@ + \hrule width .4\columnwidth + \kern 2.6\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@footnote} +% reportとbookクラスでは、chapterレベルでリセットされます。 +% \begin{macrocode} +%\@addtoreset{footnote}{chapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefntext} +% このマクロにしたがって脚注が組まれます。 +% +% |\@makefnmark|は脚注記号を組み立てるマクロです。 +% \begin{macrocode} +%<*tate> +\newcommand\@makefntext[1]{\parindent 1zw + \noindent\hbox to 2zw{\hss\@makefnmark}#1} +% +%<*yoko> +\newcommand\@makefntext[1]{\parindent 1em + \noindent\hbox to 1.8em{\hss\@makefnmark}#1} +% +% \end{macrocode} +% \end{macro} +% +% +% \section{今日の日付} +% 組版時における現在の日付を出力します。 +% +% \iffalse meta-comment! +% 注意:ここで \DisableCrossrefs, \EnableCrossrefs をしているのは、 +% platex jclasses.dtx で dvi を作るときにエラーになるため。 +% \fi +% \DisableCrossrefs +% \begin{macro}{\if西暦} +% \begin{macro}{\西暦} +% \begin{macro}{\和暦} +% \changes{v1.0h}{1996/12/17}{Typo:和歴 to 和暦} +% |\today|コマンドの`年'を、 +% 西暦か和暦のどちらで出力するかを指定するコマンドです。 +% \begin{macrocode} +\newif\if西暦 \西暦false +\def\西暦{\西暦true} +\def\和暦{\西暦false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \EnableCrossrefs +% +% \begin{macro}{\heisei} +% \changes{v1.1m}{1998/04/07}{\cs{today}の計算手順を変更} +% |\today|コマンドを|\rightmark|で指定したとき、|\rightmark|を出力する部分 +% で和暦のための計算ができないので、クラスファイルを読み込む時点で計算して +% おきます。 +% \begin{macrocode} +\newcount\heisei \heisei\year \advance\heisei-1988\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\today} +% 縦組の場合は、漢数字で出力します。 +% \begin{macrocode} +\def\today{{% + \iftdir + \if西暦 + \kansuji\number\year 年 + \kansuji\number\month 月 + \kansuji\number\day 日 + \else + 平成\ifnum\heisei=1 元年\else\kansuji\number\heisei 年\fi + \kansuji\number\month 月 + \kansuji\number\day 日 + \fi + \else + \if西暦 + \number\year~年 + \number\month~月 + \number\day~日 + \else + 平成\ifnum\heisei=1 元年\else\number\heisei~年\fi + \number\month~月 + \number\day~日 + \fi + \fi}} +% \end{macrocode} +% \end{macro} +% +% +% +% +% \section{初期設定} +% +% \begin{macro}{\prepartname} +% \begin{macro}{\postpartname} +% \begin{macro}{\prechaptername} +% \begin{macro}{\postchaptername} +% \begin{macrocode} +\newcommand{\prepartname}{第} +\newcommand{\postpartname}{部} +%\newcommand{\prechaptername}{第} +%\newcommand{\postchaptername}{章} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\contentsname} +% \begin{macro}{\listfigurename} +% \begin{macro}{\listtablename} +% \begin{macrocode} +\newcommand{\contentsname}{目 次} +\newcommand{\listfigurename}{図 目 次} +\newcommand{\listtablename}{表 目 次} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refname} +% \begin{macro}{\bibname} +% \begin{macro}{\indexname} +% \begin{macrocode} +%
\newcommand{\refname}{参考文献} +%\newcommand{\bibname}{関連図書} +\newcommand{\indexname}{索 引} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% \begin{macrocode} +\newcommand{\figurename}{図} +\newcommand{\tablename}{表} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\appendixname} +% \begin{macro}{\abstractname} +% \begin{macrocode} +\newcommand{\appendixname}{付 録} +%\newcommand{\abstractname}{概 要} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \changes{v1.0d}{1996/02/29}{articleとreportのデフォルトを +% \pstyle{plain}に修正} +% \changes{v1.4}{2002/04/09}{縦組スタイルで\cs{flushbottom}しないようにした} +% \begin{macrocode} +%\pagestyle{headings} +%\pagestyle{plain} +\pagenumbering{arabic} +\raggedbottom +\if@twocolumn + \twocolumn + \sloppy +\else + \onecolumn +\fi +% \end{macrocode} +% |\@mparswitch|は傍注を左右(縦組では上下)どちらのマージンに +% 出力するかの指定です。偽の場合、傍注は一方の側にしか出力されません。 +% このスイッチを真とすると、とくに縦組の場合、奇数ページでは本文の上に、 +% 偶数ページでは本文の下に傍注が出力されますので、おかしなことになります。 +% +% また、縦組のときには、傍注を本文の下に出すようにしています。 +% |\reversemarginpar|とすると本文の上側に出力されます。 +% ただし、二段組の場合は、つねに隣接するテキスト側のマージンに出力されます。 +% \begin{macrocode} +%<*tate> +\normalmarginpar +\@mparswitchfalse +% +%<*yoko> +\if@twoside + \@mparswitchtrue +\else + \@mparswitchfalse +\fi +% +% +% \end{macrocode} +% +% +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/platex/base/jltxdoc.dtx b/Master/texmf-dist/source/platex/base/jltxdoc.dtx new file mode 100644 index 00000000000..76e31291c31 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/jltxdoc.dtx @@ -0,0 +1,197 @@ +% \iffalse meta-comment +%% File: jltxdoc.dtx +% +% Copyright 1995,1996,1997 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{150} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0a}{1997/01/23}{\LaTeX \texttt{!<1996/12/01!>}への対応に +% 合わせて修正} +% \changes{v1.0b}{1997/07/29}{\cs{}と\texttt{"}の\cs{xspcode}を変更} +% \fi +% +% \iffalse +% +%\NeedsTeXFormat{pLaTeX2e} +%\ProvidesClass{jltxdoc}[1997/07/29 v1.0b Standard pLaTeX file] +%<*driver> +\documentclass{jltxdoc} +\GetFileInfo{jltxdoc.cls} +\title{p\LaTeXe{}ドキュメント記述用クラス\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \file{jltxdoc}クラスは、\file{ltxdoc}をテンプレートにして、日本語用の +% 修正を加えています。 +% \begin{macrocode} +%<*class> +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ltxdoc}} +\ProcessOptions +\LoadClass{ltxdoc} +% \end{macrocode} +% +% \begin{macro}{\normalsize} +% \begin{macro}{\small} +% \begin{macro}{\parindent} +% \changes{v1.0a}{1997/01/23}{\cs{normalsize}, \cs{small}などの再定義} +% \file{ltxdoc}からロードされる\file{article}クラスでの行間などの設定値で、 +% 日本語の文章を組版すると、行間が狭いように思われるので、多少広くするように +% 再設定します。また、段落先頭での字下げ量を全角一文字分とします。 +% \begin{macrocode} +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xpt{15}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\renewcommand{\small}{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\normalsize +\setlength\parindent{1zw} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\file} +% |\file|マクロは、ファイル名を示すのに用います。 +% \begin{macrocode} +\providecommand*{\file}[1]{\texttt{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pstyle} +% |\pstyle|マクロは、ページスタイル名を示すのに用います。 +% \begin{macrocode} +\providecommand*{\pstyle}[1]{\textsl{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Lcount} +% |\Lcount|マクロは、カウンタ名を示すのに用います。 +% \begin{macrocode} +\providecommand*{\Lcount}[1]{\textsl{\small#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Lopt} +% |\Lopt|マクロは、クラスオプションやパッケージオプションを示すのに用います。 +% \begin{macrocode} +\providecommand*{\Lopt}[1]{\textsf{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dst} +% |\dst|マクロは、``\dst''を出力する。 +% \begin{macrocode} +\providecommand\dst{{\normalfont\scshape docstrip}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\NFSS} +% |\NFSS|マクロは、``\NFSS''を出力します。 +% \begin{macrocode} +\providecommand\NFSS{\textsf{NFSS}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@clineno} +% \begin{macro}{\mlineplus} +% |\mlineplus|マクロは、その時点でのマクロコードの行番号に、引数に指定された +% 行数だけを加えた数値を出力します。たとえば|\mlineplus{3}|とすれば、 +% 直前のマクロコードの行番号(\arabic{CodelineNo})に3を加えた数、 +% ``\mlineplus{3}''が出力されます。 +% \begin{macrocode} +\newcounter{@clineno} +\def\mlineplus#1{\setcounter{@clineno}{\arabic{CodelineNo}}% + \addtocounter{@clineno}{#1}\arabic{@clineno}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{environment}{tsample} +% |tsample|環境は、環境内に指定された内容を罫線で囲って出力をします。 +% 第一引数は、出力するボックスの高さです。 +% \file{plext.dtx}の中で使用しています。 +% このマクロ内では縦組になることに注意してください。 +% \begin{macrocode} +\def\tsample#1{% + \hbox to\linewidth\bgroup\vrule width.1pt\hss + \vbox\bgroup\hrule height.1pt + \vskip.5\baselineskip + \vbox to\linewidth\bgroup\tate\hsize=#1\relax\vss} +\def\endtsample{% + \vss\egroup + \vskip.5\baselineskip + \hrule height.1pt\egroup + \hss\vrule width.1pt\egroup} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\DisableCrossrefs} +% \begin{macro}{\EnableCrossrefs} +% \file{jclasses.dtx}を処理するときに、|\if西暦|の部分でエラーになるため、 +% 一時的にクロスリファレンスの機能をオフにします。 +% しかし、デフォルトの定義では完全に制御できないので、ここで再定義をします。 +% \begin{macrocode} +\def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack} +\def\EnableCrossrefs{\@bsphack\scan@allowedtrue + \def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack}\@esphack} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\xspcode} +% コマンド名の|\|と16進数を示すための|"|の前にもスペースが入るよう、 +% これらの|\xspcode|の値を変更します。 +% \changes{v1.0b}{1997/07/29}{\cs{}と\texttt{"}の\cs{xspcode}を変更} +% \begin{macrocode} +\xspcode"5C=3 %% \ +\xspcode"22=3 %% " +% +% \end{macrocode} +% \end{macro} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/platex/base/kinsoku.dtx b/Master/texmf-dist/source/platex/base/kinsoku.dtx new file mode 100644 index 00000000000..a3584790665 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/kinsoku.dtx @@ -0,0 +1,262 @@ +% \iffalse meta-comment +%% File: kinsoku.dtx +% +% Copyright 1995 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{167} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{kinsoku.dtx}[1995/04/01 v1.0 pLaTeX Kernel] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{kinsoku.dtx} +\title{禁則パラメータ\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% このファイルは、禁則と文字間スペースの設定について説明をしています。 +% 日本語\TeX{}の機能についての詳細は、『日本語\TeX テクニカルブックI』を +% 参照してください。 +% +% なお、このファイルのコード部分は、 +% 以前のバージョンで配布された\file{kinsoku.tex}と同一です。 +% +% \begin{macrocode} +%<*plcore> +% \end{macrocode} +% +% \section{禁則} +% +% ある文字を行頭禁則の対象にするには、|\prebreakpenalty|に正の値を指定します。 +% ある文字を行末禁則の対象にするには、|\postbreakpenalty|に正の値を指定します。 +% 数値が大きいほど、行頭、あるいは行末で改行されにくくなります。 +% +% \subsection{半角文字に対する禁則} +% ここでは、半角文字に対する禁則の設定を行なっています。 +% +% \begin{macrocode} +\prebreakpenalty`!=10000 +\prebreakpenalty`"=10000 +\postbreakpenalty`\#=500 +\postbreakpenalty`\$=500 +\postbreakpenalty`\%=500 +\postbreakpenalty`\&=500 +\postbreakpenalty`\`=10000 +\prebreakpenalty`'=10000 +\prebreakpenalty`)=10000 +\postbreakpenalty`(=10000 +\prebreakpenalty`*=500 +\prebreakpenalty`+=500 +\prebreakpenalty`-=10000 +\prebreakpenalty`.=10000 +\prebreakpenalty`,=10000 +\prebreakpenalty`/=500 +\prebreakpenalty`;=10000 +\prebreakpenalty`?=10000 +\prebreakpenalty`:=10000 +\prebreakpenalty`]=10000 +\postbreakpenalty`[=10000 +% \end{macrocode} +% +% \subsection{全角文字に対する禁則} +% ここでは、全角文字に対する禁則の設定を行なっています。 +% +% \begin{macrocode} +\prebreakpenalty`、=10000 +\prebreakpenalty`。=10000 +\prebreakpenalty`,=10000 +\prebreakpenalty`.=10000 +\prebreakpenalty`・=10000 +\prebreakpenalty`:=10000 +\prebreakpenalty`;=10000 +\prebreakpenalty`?=10000 +\prebreakpenalty`!=10000 +\prebreakpenalty\jis"212B=10000 +\prebreakpenalty\jis"212C=10000 +\prebreakpenalty\jis"212D=10000 +\postbreakpenalty\jis"212E=10000 +\prebreakpenalty\jis"2139=10000 +\prebreakpenalty\jis"2144=250 +\prebreakpenalty\jis"2145=250 +\postbreakpenalty\jis"2146=10000 +\prebreakpenalty\jis"2147=5000 +\postbreakpenalty\jis"2148=5000 +\prebreakpenalty\jis"2149=5000 +\prebreakpenalty`)=10000 +\postbreakpenalty`(=10000 +\prebreakpenalty`}=10000 +\postbreakpenalty`{=10000 +\prebreakpenalty`]=10000 +\postbreakpenalty`[=10000 +\postbreakpenalty`‘=10000 +\prebreakpenalty`’=10000 +\postbreakpenalty\jis"214C=10000 +\prebreakpenalty\jis"214D=10000 +\postbreakpenalty\jis"2152=10000 +\prebreakpenalty\jis"2153=10000 +\postbreakpenalty\jis"2154=10000 +\prebreakpenalty\jis"2155=10000 +\postbreakpenalty\jis"2156=10000 +\prebreakpenalty\jis"2157=10000 +\postbreakpenalty\jis"2158=10000 +\prebreakpenalty\jis"2159=10000 +\postbreakpenalty\jis"215A=10000 +\prebreakpenalty\jis"215B=10000 +\prebreakpenalty`ー=10000 +\prebreakpenalty`+=200 +\prebreakpenalty`−=200 +\prebreakpenalty`==200 +\postbreakpenalty`#=200 +\postbreakpenalty`$=200 +\postbreakpenalty`%=200 +\postbreakpenalty`&=200 +\prebreakpenalty`ぁ=150 +\prebreakpenalty`ぃ=150 +\prebreakpenalty`ぅ=150 +\prebreakpenalty`ぇ=150 +\prebreakpenalty`ぉ=150 +\prebreakpenalty`っ=150 +\prebreakpenalty`ゃ=150 +\prebreakpenalty`ゅ=150 +\prebreakpenalty`ょ=150 +\prebreakpenalty\jis"246E=150 +\prebreakpenalty`ァ=150 +\prebreakpenalty`ィ=150 +\prebreakpenalty`ゥ=150 +\prebreakpenalty`ェ=150 +\prebreakpenalty`ォ=150 +\prebreakpenalty`ッ=150 +\prebreakpenalty`ャ=150 +\prebreakpenalty`ュ=150 +\prebreakpenalty`ョ=150 +\prebreakpenalty\jis"256E=150 +\prebreakpenalty\jis"2575=150 +\prebreakpenalty\jis"2576=150 +% \end{macrocode} +% +% \section{文字間のスペース} +% +% ある英字の前後と、その文字に隣合う漢字に挿入されるスペースを制御するには、 +% |\xspcode|を用います。 +% +% ある漢字の前後と、その文字に隣合う英字に挿入されるスペースを制御するには、 +% |\inhibitxspcode|を用います。 +% +% \subsection{ある英字と前後の漢字の間の制御} +% ここでは、英字に対する設定を行なっています。 +% +% 指定する数値とその意味は次のとおりです。 +% +% \begin{center} +% \begin{tabular}{ll} +% 0 & 前後の漢字の間での処理を禁止する。\\ +% 1 & 直前の漢字との間にのみ、スペースの挿入を許可する。\\ +% 2 & 直後の漢字との間にのみ、スペースの挿入を許可する。\\ +% 3 & 前後の漢字との間でのスペースの挿入を許可する。\\ +% \end{tabular} +% \end{center} +% +% \begin{macrocode} +\xspcode`(=1 +\xspcode`)=2 +\xspcode`[=1 +\xspcode`]=2 +\xspcode``=1 +\xspcode`'=2 +\xspcode`;=2 +\xspcode`,=2 +\xspcode`.=2 +% \end{macrocode} +% +% \subsection{ある漢字と前後の英字の間の制御} +% ここでは、漢字に対する設定を行なっています。 +% +% 指定する数値とその意味は次のとおりです。 +% +% \begin{center} +% \begin{tabular}{ll} +% 0 & 前後の英字との間にスペースを挿入することを禁止する。\\ +% 1 & 直前の英字との間にスペースを挿入することを禁止する。\\ +% 2 & 直後の英字との間にスペースを挿入することを禁止する。\\ +% 3 & 前後の英字との間でのスペースの挿入を許可する。\\ +% \end{tabular} +% \end{center} +% +% \begin{macrocode} +\inhibitxspcode`、=1 +\inhibitxspcode`。=1 +\inhibitxspcode`,=1 +\inhibitxspcode`.=1 +\inhibitxspcode`;=1 +\inhibitxspcode`?=1 +\inhibitxspcode`)=1 +\inhibitxspcode`(=2 +\inhibitxspcode`]=1 +\inhibitxspcode`[=2 +\inhibitxspcode`}=1 +\inhibitxspcode`{=2 +\inhibitxspcode`‘=2 +\inhibitxspcode`’=1 +\inhibitxspcode`“=2 +\inhibitxspcode`”=1 +\inhibitxspcode`〔=2 +\inhibitxspcode`〕=1 +\inhibitxspcode`〈=2 +\inhibitxspcode`〉=1 +\inhibitxspcode`《=2 +\inhibitxspcode`》=1 +\inhibitxspcode`「=2 +\inhibitxspcode`」=1 +\inhibitxspcode`『=2 +\inhibitxspcode`』=1 +\inhibitxspcode`【=2 +\inhibitxspcode`】=1 +\inhibitxspcode`―=0 +\inhibitxspcode`〜=0 +\inhibitxspcode`…=0 +\inhibitxspcode`¥=0 +\inhibitxspcode`°=1 +\inhibitxspcode`′=1 +\inhibitxspcode`″=1 +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/platex/base/nidanfloat.dtx b/Master/texmf-dist/source/platex/base/nidanfloat.dtx new file mode 100644 index 00000000000..777e4e3e545 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/nidanfloat.dtx @@ -0,0 +1,1074 @@ +% \iffalse +%%File: nidanfloat.dtx +% +% Copyright 1994 ASCII Co. +% +% \fi +% \CheckSum{1666} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% +% \StopEventually{} +% +% \iffalse +% \changes{v1.10}{1994/04/07}{platex2.09用} +% \changes{v2.2}{1997/10/22}{platex2e用に修正} +% \changes{v2.3}{2000/12/20}{一段抜きのフロートを混ぜるとエラーに +% なるのを修正(ありがとう、倉沢@QUIPUさん)} +% \changes{v2.4}{2001/02/19}{最終ページで左右の行間が揃わない部分を修正} +% \changes{v2.4}{2001/02/19}{柱が出ないのを修正} +% \changes{v2.4}{2001/07/23}{ページの大きさが小さくなるのを修正} +% \changes{v2.5}{2001/09/14}{パッケージオプション(balance,nobalance)を追加} +% \changes{v2.6}{2003/05/15}{\cs{@fstype}を\cs{@fstyle}とタイプミスしていた +% のを修正(ありがとう、川上@航空宇宙研究所さん)} +% \changes{v2.7}{2005/12/09}{必須フォーマットファイルをpLaTeX2eからLaTeX2eへ変更} +% \fi +% +% \iffalse +\NeedsTeXFormat{LaTeX2e} +%<*driver> +\ProvidesFile{nidanfloat.dtx} +% +%\ProvidesPackage{nidanfloat}% + [2005/12/09 v2.7 Put double-floats at top/bottom within twocolumn mode] +% +%<*driver> +\documentclass{jltxdoc} +\GetFileInfo{nidanfloat.dtx} +\title{TOP, BOTTOM指定が可能な2段抜きフロート\\ + バージョン \space\fileversion} +\date{作成日:\filedate} +\author{中野 賢\footnote{株式会社 アスキー 出版技術部 + (メールアドレス:ken-na at ascii.co.jp)}} +\begin{document} + \maketitle + \DocInput{nidanfloat.dtx} +\end{document} +% +% \fi +% +% \begin{abstract} +% \file{nidanfloat}パッケージは、二段組時に段抜きのフロートをページ下部にも +% 配置可能にする。 +% \end{abstract} +% +% \section{コード} +% +% \subsection{パッケージオプション} +% \changes{v2.5}{2001/09/14}{パッケージオプションを追加} +% \file{nidanfloat}パッケージでは、最終ページの左右カラムの高さを +% 均一に振り分けるようにしている。しかし、この機能の影響により、 +% 最終ページでの|\newpage|と|\clearpage|コマンドが正しく動作しない。 +% そこで、この機能を使うかどうかを指定するオプションを導入した。 +% パッケージ指定時にオプション``balance''を指定すると、 +% 最終ページの自動調整を行なうようになる。デフォルトでは行なわない。 +% \begin{macrocode} +%<*core> +\DeclareOption{balance}{\AtEndDocument{\let\clearpage\balanceclearpage}} +\DeclareOption{nobalance}{\relax} +\ExecuteOptions{nobalance} +\ProcessOptions +% \end{macrocode} +% +% \subsection{フロートパラメータ} +% ここでは、段抜きのフロートをページ下部に置くために作成したパラメータに +% ついて説明をする。 +% +% \begin{macro}{\dblbotfraction} +% 2段組時にページ下部に占めることのできる、二段抜きフロートの割合。 +% デフォルトは0.5、すなわちページ半分を占めることができるようにしている。 +% \begin{macrocode} +\newcommand\dblbotfraction{0.5} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@dblbotnumber} +% ページ下部に入れることのできる、二段抜きフロートの数。 +% デフォルトでは、二つの図を置くことができるようにしている。 +% |\c@dblbotnumber|はカウンタ|dblnumber|の内部形式。 +% \begin{macrocode} +\newcount\c@dblbotnumber +\setcounter{dblbotnumber}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dblbotroom} +% \begin{macro}{\@dblbotnum} +% |\@dblbotroom|は、ページ下部に占めることのできる、 +% 二段抜きフロートの割合を示す長さ変数。 +% |\@dblbotnum|は、ページ下部に入れることのできる、 +% 二段抜きフロートの数を保持するカウンタ。 +% \begin{macrocode} +\newdimen\@dblbotroom +\newcount\@dblbotnum +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dblfloatplacement} +% 二段組用のフロートパラメータを設定するマクロを、新たに追加したパラメータ +% も設定するように再定義する。 +% \begin{macrocode} +\def\@dblfloatplacement{% + \global\@dbltopnum\c@dbltopnumber + \global\@dblbotnum\c@dblbotnumber % added + \global\@dbltoproom\dbltopfraction\@colht + \global\@dblbotroom\dblbotfraction\@colht % added + \@textmin\@colht + \advance\@textmin-\@dbltoproom + \advance\@textmin-\@dblbotroom % added + \@fpmin\dblfloatpagefraction\textheight + \@fptop\@dblfptop + \@fpsep\@dblfpsep + \@fpbot\@dblfpbot +} +% \end{macrocode} +% \end{macro} +% +% \subsection{フロートリストへの登録} +% 二段抜きフロートの定義は、クラスファイルで、つぎのようにして行なわれる。 +% \begin{verbatim} +% \newenvironment{figure*} +% {\@dblfloat{figure}} +% {\end@dblfloat} +% \end{verbatim} +% 文章中で|figure*|環境で囲まれた部分は、フロート保持用のリストに登録される。 +% この節では、段抜きフロートをページ下部にも置けるようにするために拡張した +% マクロについて説明をする。 +% +% \begin{macro}{\@dblbotlist} +% \begin{macro}{\L@toplist} +% \begin{macro}{\R@toplist} +% \begin{macro}{\L@botlist} +% \begin{macro}{\R@botlist} +% 二段組のページ下部に置くフロートを保持するために|\@dblbotlist|を追加する。 +% また、カラムの上下に置くフロート用には、左側と右側で区別をするため、 +% |\L@toplist|, |\R@toplist|, |\L@botlist|, |\R@botlist|を追加する。 +% \begin{macrocode} +\gdef\@dblbotlist{} +\gdef\L@toplist{} +\gdef\R@toplist{} +\gdef\L@botlist{} +\gdef\R@botlist{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dblfloat} +% \begin{macro}{\@dbflt} +% \begin{macro}{\end@dblfloat} +% |\@dblfloat|から呼び出される、|\@dbflt|を再定義し、位置指定が省略された +% ときのパラメータを``tb''とする。また、|\end@dblfloat|を|\end@float|にして、 +% 現在ページの下部にフロートを置けるようにする。 +% \begin{macrocode} +\def\@dblfloat{% + \if@twocolumn\let\reserved@a\@dbflt\else\let\reserved@a\@float\fi + \reserved@a} +\def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tb]}} +\def\@xdblfloat#1[#2]{% + \@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth} +\let\end@dblfloat\end@float +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addtocurcol} +% |\@xdblfloat|から呼び出された、|\@xfloat|は位置指定オプションの評価を行ない、 +% フロートオブジェクトの組み立てを開始する。 +% フロートオブジェクトの組み立ては|\end@float|で終了する。 +% |\end@float|は、ペナルティ値を$-10004$にして|\output|ルーチンを起動する。 +% この値での|\output|ルーチンは|\@specialoutput|を起動する。 +% |\@specialoutput|は|\@addtocurcol|を呼び出し、フロートの内容を現在ページに +% 出力できるのならば出力をする。そうでなければ、別の可能性を探る。 +% \begin{macrocode} +\def\@addtocurcol{% +% \end{macrocode} +% このパッケージの場合、段抜きのフロートが渡される可能性があるので、まず、 +% それをチェックする。フロートの幅がカラム幅よりも大きい場合は、強制的に +% 段抜きフロートとして扱う。 +% \begin{macrocode} + \ifdim\wd\@currbox>\columnwidth + \@addtodblcol + \else +% \end{macrocode} +% それ以外の場合は、元の動作とほとんど同じである。 +% \begin{macrocode} + \@insertfalse + \@setfloattypecounts + \ifnum\@fpstype=8 % is only `!p' + \else + \ifnum\@fpstype=24 % is only `p' + \else + \@flsettextmin + \advance\@textmin\@textfloatsheight + \@reqcolroom\@pageht + \ifdim\@textmin>\@reqcolroom \@reqcolroom\@textmin\fi + \advance\@reqcolroom\ht\@currbox + \ifdim\@colroom>\@reqcolroom + \@flsetnum\@colnum + \ifnum\@colnum>\z@ + \@bitor\@currtype\@deferlist + \if@test + \else +% \end{macrocode} +% ページ下部のフロートを保持しているフロートリストの名前が異なる。 +% \begin{macrocode} + \@bitor\@currtype{\L@botlist\R@botlist}% + \if@test + \@addtobot + \else + \ifodd\count\@currbox + \advance\@reqcolroom\intextsep + \ifdim\@colroom>\@reqcolroom + \global\advance\@colnum\m@ne + \global\advance\@textfloatsheight\ht\@currbox + \global\advance\@textfloatsheight 2\intextsep + \@cons\@midlist\@currbox + \if@nobreak + \nobreak + \@nobreakfalse + \everypar{}% + \else + \addpenalty \interlinepenalty + \fi + \vskip\intextsep + \box\@currbox + \penalty\interlinepenalty + \vskip\intextsep + \ifnum\outputpenalty<-\@Mii \vskip-\parskip \fi + \outputpenalty\z@ + \@inserttrue + \fi + \fi + \if@insert\else\@addtotoporbot\fi + \fi + \fi + \fi + \fi + \fi + \fi + \if@insert\else\@resethfps\@cons\@deferlist\@currbox\fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@addtotoporbot} +% フロートを保持しているリスト変数の修正。 +% \changes{v2.3}{2000/12/20}{% +% タイプミスの修正と\cs{@flcheckspace}の呼び出しを変更} +% \begin{macrocode} +\def\@addtotoporbot{% + \@getfpsbit \tw@ + \ifodd\@tempcnta + \@flsetnum\@topnum + \ifnum\@topnum>\z@ + \@tempswafalse + \@flcheckspace\@toproom\@toplist\L@toplist\R@toplist + \if@tempswa + \@bitor\@currtype{\@midlist\L@botlist\R@botlist}% + \if@test\else + \if@firstcolumn + \@flupdates \@topnum \@toproom \L@toplist + \else + \@flupdates \@topnum \@toproom \R@toplist + \fi + \@inserttrue + \fi + \fi + \fi + \fi + \if@insert\else\@addtobot\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@addtobot} +% フロートを保持しているリスト変数の修正。 +% \changes{v2.3}{2000/12/20}{\cs{@flcheckspace}の呼び出しを変更} +% \begin{macrocode} +\def\@addtobot{% + \@getfpsbit 4\relax + \ifodd\@tempcnta + \@flsetnum\@botnum + \ifnum\@botnum>\z@ + \@tempswafalse + \@flcheckspace\@botroom\@botlist\L@botlist\R@botlist + \if@tempswa + \global\maxdepth\z@ + \if@firstcolumn + \@flupdates \@botnum \@botroom \L@botlist + \else + \@flupdates \@botnum \@botroom \R@botlist + \fi + \@inserttrue + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\org@addtonextcol} +% \begin{macro}{\@addtonextcol} +% 挿入に失敗したフロートや`p'指定のフロートを出力するのに、 +% |\@startcolumn|で用いられる。このパッケージでは、カラム幅よりも大きい幅を +% 持つフロートに対しては、段抜きフロートリストとして出力するようにしている。 +% \begin{macrocode} +\let\org@addtonextcol\@addtonextcol +\def\@addtonextcol{% + \ifdim\wd\@currbox>\columnwidth + \@addtodblcol + \else + \org@addtonextcol + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@addtodblcol} +% |\@addtodblcol|マクロは、フロートオブジェクトが現在ページに入るかどうか +% を確認し、入るのであれば|\@addtodbltoporbot|を呼び出す。そうでなければ、 +% |\@dbldeferlist|に登録する。 +% +% まず|@insert|フラグを偽にする。そして、フロートタイプを|\@fpstype|に得る。 +% フロートタイプが8または24の場合、位置オプションは`!p'か`p'だけであるので、 +% 無条件に|\@dbldeferlist|に加える。 +% \begin{macrocode} +\def\@addtodblcol{% + \begingroup + \@insertfalse + \@setfloattypecounts + \ifnum\@fpstype=8 % is only `!p' + \else + \ifnum\@fpstype=24 % is only `p' + \else +% \end{macrocode} +% そうでなければ、同タイプのフロートで未出力のものがあるかどうかを確認する。 +% 同タイプのフロートでまだ出力していないものがある場合は、現在のフロートを +% 出力しない。ただし、同タイプであってもカラム幅のフロートについては考慮 +% しない。出力することができるのならば、|\@addtodblbotortop|を呼び出す。 +% \begin{macrocode} + \@bitor\@currtype{\@dbldeferlist} + %\@bitor\@currtype{\@deferlist\@dbldeferlist} + \if@test + \else + \@tempswafalse + \@checkdblspace + \if@tempswa + \@addtodbltoporbot + \fi + \fi + \fi + \fi + \if@insert\else\@cons\@dbldeferlist\@currbox\fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@addtodbltoporbot} +% まず、`t'の指定があるかと、ページ上部に入れる数を越えていないかを確認する。 +% \begin{macrocode} +\def\@addtodbltoporbot{% + \@getfpsbit \tw@ + \ifodd\@tempcnta + \@flsetnum\@dbltopnum + \ifnum\@dbltopnum>\z@ +% \end{macrocode} +% そして、ページ上部あるいは下部に同タイプのフロートが出力される可能性が +% あるのかを調べる。二段組フロートは一段組フロートの上部に置かれることに注意。 +% \begin{macrocode} + \@bitor\@currtype{% + \L@toplist\R@toplist\L@botlist\R@botlist\@dblbotlist} + \if@test + \else +% \end{macrocode} +% 配置可能ならば、出力するだけのスペースがあるのかを確認する。 +% \begin{macrocode} + \@tempswafalse + \@dblflcheckspace \@dbltoproom \@dbltoplist +% \end{macrocode} +% スペースがあれば、段抜きフロートが上部に占めることのできる高さから、 +% その分を引く。また、上部に入れる段抜きフロートの数を減らし、 +% 上部段抜き用のフロートリストに登録をする。 +% \begin{macrocode} + \if@tempswa + \@tempdima-\ht\@currbox + \advance\@tempdima + -\ifx\@dbltoplist\@empty \dbltextfloatsep\else\dblfloatsep\fi + \global\advance\@dbltoproom\@tempdima + \global\advance\@dbltopnum\m@ne + \@cons\@dbltoplist\@currbox +% \end{macrocode} +% 左カラムのときは、カラムの高さ|\@colroom|からフロート分を引く。 +% \begin{macrocode} + \if@firstcolumn + \advance\@colroom\@tempdima + \global\advance\@colroom\maxdepth +% \end{macrocode} +% 右カラムのときは、新規の段抜きフロート分だけでなく、これを挿入すること +% によって、左カラムから移動してくるテキストの高さも引く。 +% \begin{macrocode} + \else + \@tempdima\textheight + \@chkdblfloatht\advance\@tempdima-\@floatht + \L@chkfloatht\advance\@tempdima-\@floatht + \vbadness=\@M \splittopskip=\topskip \splitmaxdepth=\maxdepth + \setbox\z@=\vbox{\unvcopy\@leftcolumn}% + \setbox\@ne=\vsplit\z@ to\@tempdima + \advance\@colroom-\ht\z@ + \global\advance\@colroom-\dp\z@ + \fi +% \end{macrocode} +% 最後に、|@inert|フラグを真にする。 +% \begin{macrocode} + \@inserttrue + \fi + \fi + \fi + \fi + \if@insert\else\@addtodblbot\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@addtodblbot} +% ページ下部に段抜きフロートを置くときも、上部と同じである。 +% ただし、二段組フロートは最下部に置かれるので、他の出力用リストを調べる +% 必要はないことが異なる。 +% \begin{macrocode} +\def\@addtodblbot{% + \@getfpsbit 4\relax + \ifodd\@tempcnta + \@flsetnum\@botnum + \ifnum\@botnum>\z@ + \@tempswafalse + \@dblflcheckspace \@dbltoproom \@dbltoplist + \if@tempswa + \@tempdima-\ht\@currbox \advance\@tempdima + -\ifx\@dblbotlist\@empty \dbltextfloatsep\else\dblfloatsep\fi + \global\advance\@dblbotroom\@tempdima + \global\advance\@dblbotnum\m@ne + \@cons\@dblbotlist\@currbox + \if@firstcolumn + \advance\@colroom\@tempdima + \global\advance\@colroom\maxdepth + \else + \@tempdima\textheight + \@chkdblfloatht\advance\@tempdima-\@floatht + \L@chkfloatht\advance\@tempdima-\@floatht + \vbadness=\@M \splittopskip=\topskip \splitmaxdepth=\maxdepth + \setbox\z@=\vbox{\unvcopy\@leftcolumn}% + \setbox\@ne=\vsplit\z@ to\@tempdima + \advance\@colroom-\ht\z@ + \global\advance\@colroom-\dp\z@ + \fi + \@inserttrue + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{フロートの高さを計算するマクロ} +% +% \begin{macro}{\@floatht} +% |\@floatht|は、出力リストに格納されているフロートの高さを格納するのに用いる。 +% \begin{macrocode} +\global\newdimen\@floatht \@floatht\z@ +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@flcheckspace} +% \changes{v2.3}{2000/12/20}{状況別に場合わけするようにした} +% \begin{macrocode} +\def \@flcheckspace #1#2#3#4{% + \advance \@reqcolroom + \if@twocolumn + \if@firstcolumn + \ifx #3\@empty \textfloatsep \else \floatsep \fi + \else + \ifx #4\@empty \textfloatsep \else \floatsep \fi + \fi + \else + \ifx #2\@empty \textfloatsep \else \floatsep \fi + \fi + \ifdim \@colroom>\@reqcolroom + \ifdim #1>\ht\@currbox + \@tempswatrue + \else + \ifnum \@fpstype<\sixt@@n + \@tempswatrue + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dblflcheckspace} +% 段抜きフロートがページ上部あるいは下部に占めることのできる割合を越えて +% いないかをチェックする。越えていなければ|\@tempswa|を真にする。 +% \changes{v2.6}{2003/05/15}{\cs{@fstype}を\cs{@fstyle}とタイプミスしていた} +% \begin{macrocode} +\def\@dblflcheckspace#1#2{% + \@tempdima=#1\relax + \advance\@tempdima + -\ifx #2\@empty \dbltextfloatsep\else\dblfloatsep\fi + \ifdim\@tempdima>\ht\@currbox + \@tempswatrue + \else + \ifnum\@fpstype<\sixt@@n + \advance\@tempdima\@textmin + \if \@tempdima>\ht\@currbox + \@tempswatrue + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@checkdblspace} +% 段抜きフロートと段抜きフロート間スペース(あるいは段抜きフロートとテキストと +% の間のスペース)を入れる余裕があるかを調べる。 +% +% まず、現在、組み立ててあるテキストの高さと、最小限入らなくてはならない +% テキストの量とを比較し、大きいほうを|\@tempdima|に格納する。 +% 右カラムにいるときは、左カラムのテキストの高さも加える。 +% \begin{macrocode} +\def\@checkdblspace{% + \@tempdima\@pageht\advance\@tempdima\@pagedp + \@tempdimb\textfraction\@colht + \ifdim\@tempdima<\@tempdimb \@tempdima\@tempdimb\fi + \if@firstcolumn\else + \advance\@tempdima\ht\@leftcolumn + \advance\@tempdima\dp\@leftcolumn + \fi +% \end{macrocode} +% そして、出力する予定のカラム幅フロートと段抜きフロートの高さを加える。 +% このとき、段抜き用のフロートの高さは二倍する。 +% \begin{macrocode} + \L@chkfloatht\advance\@tempdima\@floatht + \R@chkfloatht\advance\@tempdima\@floatht + \@chkdblfloatht\advance\@tempdima\tw@\@floatht +% \end{macrocode} +% それから、現在のフロートの高さと必要なスペースを加える。 +% このときも、それらの高さを二倍する。 +% \begin{macrocode} + \@tempdimb\ht\@currbox\advance\@tempdimb\dp\@currbox + \advance\@tempdimb + \ifdim\@floatht>\z@ \dbltextfloatsep\else\dblfloatsep\fi + \multiply\@tempdimb\tw@ \advance\@tempdima\@tempdimb +% \end{macrocode} +% これらすべての要素分の高さが|\textheight|の2倍よりも小さければ、 +% 現在のフロートを置くことができると判断する。 +% \begin{macrocode} + \ifdim\@tempdima>\tw@\textheight + \@tempswafalse + \else + \@tempswatrue + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tmp@comflelt} +% \begin{macro}{\tmp@comdblflelt} +% 出力リストに格納されているフロートの高さを計るために用いる。 +% それぞれ、|\@comfelt|, |\@comdblflelt|と同じだが、フロートの内容が +% 失われないように|\copy|をしているのが異なる。 +% \begin{macrocode} +\def\tmp@comflelt#1{% + \setbox\@tempboxa + \vbox{\unvbox\@tempboxa\copy #1\vskip\floatsep}% +} +\def\tmp@comdblflelt#1{% + \setbox\@tempboxa + \vbox{\unvbox\@tempboxa\copy #1\vskip\dblfloatsep}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\L@chkfloatht} +% \begin{macro}{\R@chkfloatht} +% それぞれ、左カラムと右カラムに出力するフロートの高さを計算するのに用いる。 +% 計算結果は|\@floatht|に格納する。 +% \begin{macrocode} +\def\L@chkfloatht{\@floatht\z@ + \ifx\L@toplist\@empty\else + \let\@elt\tmp@comflelt\setbox\@tempboxa\vbox{}\L@toplist + \setbox\@ne\vbox{\boxmaxdepth\maxdepth + \unvbox\@tempboxa\vskip-\floatsep\topfigrule\vskip\textfloatsep + }% + \let\@elt\relax \advance\@floatht\ht\@ne \advance\@floatht\dp\@ne + \fi + \ifx\L@botlist\@empty\else + \let\@elt\tmp@comflelt\setbox\@tempboxa\vbox{}\L@botlist + \setbox\@ne\vbox{\boxmaxdepth\maxdepth + \vskip\textfloatsep\botfigrule\unvbox\@tempboxa\vskip-\floatsep + }% + \let\@elt\relax \advance\@floatht\ht\@ne \advance\@floatht\dp\@ne + \fi + \global\@floatht\@floatht +} +\def\R@chkfloatht{\@floatht\z@ + \ifx\R@toplist\@empty\else + \let\@elt\tmp@comflelt\setbox\@tempboxa\vbox{}\R@toplist + \setbox\@ne\vbox{\boxmaxdepth\maxdepth + \unvbox\@tempboxa\vskip-\floatsep\topfigrule\vskip\textfloatsep + }% + \let\@elt\relax \advance\@floatht\ht\@ne \advance\@floatht\dp\@ne + \fi + \ifx\R@botlist\@empty\else + \let\@elt\tmp@comflelt\setbox\@tempboxa\vbox{}\R@botlist + \setbox\@ne\vbox{\boxmaxdepth\maxdepth + \vskip\textfloatsep\botfigrule\unvbox\@tempboxa\vskip-\floatsep + }% + \let\@elt\relax \advance\@floatht\ht\@ne \advance\@floatht\dp\@ne + \fi + \global\@floatht\@floatht +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@chkdblfloatht} +% ページ上部と下部に出力する段抜きフロートの高さを計算し、 +% 結果を|\@floatht|に格納する。 +% \begin{macrocode} +\def\@chkdblfloatht{\@floatht\z@ + \ifx\@dbltoplist\@empty\else + \let\@elt\tmp@comdblflelt\setbox\@tempboxa\vbox{}\@dbltoplist + \setbox\@ne\vbox{\boxmaxdepth\maxdepth + \unvbox\@tempboxa + \vskip-\dblfloatsep + \dblfigrule + \vskip\dbltextfloatsep + }% + \let\@elt\relax \advance\@floatht\ht\@ne \advance\@floatht\dp\@ne + \fi + \ifx\@dblbotlist\@empty\else + \let\@elt\tmp@comdblflelt\setbox\@tempboxa\vbox{}\@dblbotlist + \setbox\@ne\vbox{\boxmaxdepth\maxdepth + \vskip\dbltextfloatsep + \dblfigrule + \unvbox\@tempboxa + \vskip-\dblfloatsep + }% + \let\@elt\relax \advance\@floatht\ht\@ne \advance\@floatht\dp\@ne + \fi + \global\@floatht\@floatht +} +% \end{macrocode} +% \end{macro} +% +% \subsection{フロートとテキストのマージ} +% +% \begin{macro}{\@fixht} +% |\@fixht|は、左カラムの高さを格納するのに用いる。 +% \begin{macrocode} +\global\newdimen\@fixht +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@combinefloats} +% \changes{v2.4}{2001/07/23}{\cs{boxmaxdepth}を\cs{maxdepth}にしないようにした} +% |@combinefloats|は、カラム単位で、テキストとフロートをマージする。 +% このマクロは右カラムのときに実行する。 +% \begin{macrocode} +\def\@combinefloats{% + %%\boxmaxdepth\maxdepth + \if@twocolumn + \if@firstcolumn + \else +% \end{macrocode} +% 左カラムのテキスト、上下のカラム幅フロート、上下の段抜きフロートの高さの +% 合計を|\@fixht|に格納する。 +% \begin{macrocode} + \@fixht\ht\@leftcolumn \advance\@fixht\dp\@leftcolumn + \@chkdblfloatht \@tempdima\@floatht + \L@chkfloatht \advance\@tempdima\@floatht + \advance\@fixht\@tempdima +% \end{macrocode} +% |\@fixht|の高さが|\textheight|よりも大きい場合、テキストを分割し、入らない +% 部分を右カラムに移す。 +% \begin{macrocode} + \ifdim\@fixht>\textheight +% \end{macrocode} +% 左カラムに残す部分の高さを|\@fixht|に格納する。 +% \begin{macrocode} + \@fixht\textheight + \advance\@fixht-\@tempdima + \advance\@fixht\maxdepth +% \end{macrocode} +% |\@fixht|分のテキストをボックス0に格納する。 +% \begin{macrocode} + \vbadness=\@M \splittopskip=\topskip \splitmaxdepth=\maxdepth + \setbox\z@=\vsplit\@leftcolumn to\@fixht +% \end{macrocode} +% 移動する部分は|\@leftcolumn|に残っているので、 +% それを右カラム(|\@outputbox|)に入れる。 +% また、ボックス0の内容を左カラムに戻す。 +% \changes{v2.4}{2001/02/19}{行間が揃わない部分を修正} +% \changes{v2.4}{2001/02/19}{柱が出ないのを修正} +% \begin{macrocode} + \advance\@fixht-\maxdepth + \@tempdima\baselineskip \advance\@tempdima-\topskip + \setbox\@outputbox=\vbox to\@fixht{% + \ifvoid\@leftcolumn + \else + \unvbox\@leftcolumn\vskip\@tempdima + \fi\relax + \unvbox\@outputbox\vss}% +% \end{macrocode} +% \changes{v2.5}{2001/09/14}{\cs{vsplit}時、infiniteエラーになるのを修正} +% |\@leftcolumn|を作成するときに用いていた|\vss|が +% \begin{verbatim} +% ! Infinite glue shrinkage found in box being split. +% \end{verbatim} +% のエラーを起こすことがあるので削除した。 +% \begin{macrocode} + \setbox\@leftcolumn=\vbox to\@fixht{\unvbox\z@}% + \fi +% \end{macrocode} +% 左右、それぞれテキストとカラム幅フロートを組み立てる。 +% \begin{macrocode} + \@fixht\ht\@leftcolumn + \advance\@fixht\dp\@leftcolumn \advance\@fixht\@floatht + \ifx\L@toplist\@empty\else\L@cflt\fi + \ifx\L@botlist\@empty\else\L@cflb\fi + \ifx\R@toplist\@empty\else\R@cflt\fi + \ifx\R@botlist\@empty\else\R@cflb\fi + \fi +% \end{macrocode} +% 二段組でないときは従来どおりの動作をする。 +% \begin{macrocode} + \else + \ifx\@toplist\@empty\else\@cflt\fi + \ifx\@botlist\@empty\else\@cflb\fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\L@cflt} +% \begin{macro}{\L@cflb} +% \begin{macro}{\R@cflt} +% \begin{macro}{\R@cflb} +% 左カラムと右カラムを組み立てるのに用いる。 +% \changes{v2.3}{2000/12/20}{\cs{gdef}を\cs{global}\cs{let}に変更} +% \begin{macrocode} +\def\L@cflt{% + \let\@elt\@comflelt\setbox\@tempboxa\vbox{}\L@toplist + \setbox\@leftcolumn\vbox to\@fixht{\boxmaxdepth\maxdepth + \unvbox\@tempboxa + \vskip-\floatsep\topfigrule\vskip\textfloatsep\unvbox\@leftcolumn + \vss}% + \let\@elt\relax + \xdef\@freelist{\@freelist\L@toplist}\global\let\L@toplist\@empty +} +\def\L@cflb{% + \let\@elt\@comflelt\setbox\@tempboxa\vbox{}\L@botlist + \setbox\@leftcolumn\vbox to\@fixht{\boxmaxdepth\maxdepth + \unvbox\@leftcolumn + \vskip\textfloatsep\botfigrule\unvbox\@tempboxa\vskip-\floatsep + \vss}% + \let\@elt\relax + \xdef\@freelist{\@freelist\L@botlist}\global\let\L@botlist\@empty +} +\def\R@cflt{% + \let\@elt\@comflelt\setbox\@tempboxa\vbox{}\R@toplist + \setbox\@outputbox\vbox to\@fixht{\boxmaxdepth\maxdepth + \unvbox\@tempboxa + \vskip-\floatsep\topfigrule\vskip\textfloatsep\unvbox\@outputbox + \vss}% + \let\@elt\relax + \xdef\@freelist{\@freelist\R@toplist}\global\let\R@toplist\@empty +} +\def\R@cflb{% + \let\@elt\@comflelt\setbox\@tempboxa\vbox{}\R@botlist + \setbox\@outputbox\vbox to\@fixht{\boxmaxdepth\maxdepth + \unvbox\@outputbox + \vskip\textfloatsep\botfigrule\unvbox\@tempboxa\vskip-\floatsep + \vss}% + \let\@elt\relax + \xdef\@freelist{\@freelist\R@botlist}\global\let\R@botlist\@empty +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@combinedblfloats} +% テキストと段抜きフロートをマージする。このパッケージでは、ページ下部の +% 段抜きフロートもマージするように拡張している。 +% \begin{macrocode} +%\def\@comdblflelt#1{\setbox\@tempboxa +% \vbox{\unvbox\@tempboxa\box#1\vskip\dblfloatsep}} +% +\def\@combinedblfloats{% + \ifx\@dbltoplist\@empty + \else + \let\@elt\@comdblflelt\setbox\@tempboxa\vbox{}\@dbltoplist + \setbox\@outputbox\vbox{\boxmaxdepth\maxdepth + \unvbox\@tempboxa + \vskip-\dblfloatsep + \dblfigrule + \vskip\dbltextfloatsep + \box\@outputbox}% + \let\@elt\relax\xdef\@freelist{\@freelist\@dbltoplist}% + \global\let\@dbltoplist\@empty + \fi + \ifx\@dblbotlist\@empty + \else + \let\@elt\@comdblflelt\setbox\@tempboxa\vbox{}\@dblbotlist + \setbox\@outputbox\vbox{\boxmaxdepth\maxdepth + \box\@outputbox + \vskip\dbltextfloatsep + \dblfigrule + \unvbox\@tempboxa + \vskip-\dblfloatsep + }% + \let\@elt\relax\xdef\@freelist{\@freelist\@dblbotlist}% + \global\let\@dblbotlist\@empty + \fi + \global\setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{二段組の出力} +% +% \begin{macro}{\if@balance} +% 左右のカラムを均等にして出力するかどうかを示すフラグ。 +% \begin{macrocode} +\newif\if@balance \@balancefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@outputdblcol} +% 左右のカラムを連結し、出力するのは|\@outputdblcol|が行なう。 +% このパッケージでは、左右のカラムを均等に分割するためのルーチンを加えてある。 +% \begin{macrocode} +\newbox\@combinebox +% \end{macrocode} +% 左カラムを組み立てただけの時点では、それを|\@leftcolumn|に格納するだけで +% 出力はしない。 +% \changes{v2.4}{2001/02/19}{最終ページで左右の行間が揃わない部分を修正} +% \changes{v2.4}{2001/02/19}{柱が出ないのを修正} +% \begin{macrocode} +\def\@outputdblcol{% + \if@firstcolumn + \global\@firstcolumnfalse + \global\setbox\@leftcolumn\box\@outputbox + \@colht\textheight + \@chkdblfloatht\global\advance\@colht-\@floatht + \else + \global\@firstcolumntrue + \if@balance % 左右カラムを均等に分割 + \@tempdima\baselineskip + \advance\@tempdima-\topskip + % 連結 + \setbox\@combinebox=\vbox{% + \unvbox\@leftcolumn\vskip\@tempdima\unvbox\@outputbox}% + \@tempdima\ht\@combinebox + \advance\@tempdima\dp\@combinebox + \divide\@tempdima\tw@ + % 分割 + \vbadness=\@M \splittopskip=\topskip \splitmaxdepth=\maxdepth + \setbox\@leftcolumn=\vsplit\@combinebox to\@tempdima + \setbox\@outputbox=\vtop{\unvbox\@combinebox} + \setbox\@leftcolumn=\vtop{\unvbox\@leftcolumn} + \fi + % 整形 + \@tempdima\ht\@leftcolumn + \setbox\@outputbox\vbox to\@tempdima{% + \hb@xt@\textwidth{% + \hb@xt@\columnwidth{% + \vbox to\@tempdima{\box\@leftcolumn\vss}\hss}% + \hfil + \vrule width\columnseprule + \hfil + \hb@xt@\columnwidth{% + \vbox to\@tempdima{\box\@outputbox\vss}\hss}% + }% + \vss + }% + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}% + \endgroup + \fi + \global\@balancefalse +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@startdblcolumn} +% 二段組を開始するとき、まだ出力をしていないフロートを出力する。 +% それらは|\sdblcolelt|を通じて、|\@addtonextcol|で出力される。 +% このパッケージでは、カラムの高さを|\textheight|からフロートの高さを +% 引いたものに設定するように再定義する。 +% \begin{macrocode} +\def\@startdblcolumn{% + \global\@colht\textheight + \@tryfcolumn\@dbldeferlist + \if@fcolmade + \else + \begingroup + \let\reserved@b\@dbldeferlist + \global\let\@dbldeferlist\@empty + \let\@elt\@sdblcolelt + \reserved@b + \endgroup + \fi + \@chkdblfloatht + \global\advance\@colht-\@floatht +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@doclearpage} +% 出力フロート用リストの初期化をするために、|\@doclearpage|を再定義する。 +% \begin{macrocode} +\def\@doclearpage{% + \ifvoid\footins + \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa + \setbox\@tempboxa\box\@cclv + \xdef\@deferlist{% + \L@toplist\R@toplist\L@botlist\R@botlist\@deferlist}% + \global\let\L@toplist\@empty % changed from \@toplist + \global\let\R@toplist\@empty % added + \global\let\L@botlist\@empty % changed from \@botlist + \global\let\R@botlist\@empty % added + \global\@colroom\@colht + \ifx\@currlist\@empty + \else + \@latexerr{Float(s) lost}\@ehb + \global\let\@currlist\@empty + \fi + \@makefcolumn\@deferlist + \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}% + \if@twocolumn + \if@firstcolumn + % added \@dblbotlist + \xdef\@dbldeferlist{\@dbltoplist\@dblbotlist\@dbldeferlist}% + \global\let\@dbltoplist\@empty + \global\let\@dblbotlist\@empty % added + \global\@colht\textheight + \begingroup + \@dblfloatplacement + \@makefcolumn\@dbldeferlist + \@whilesw\if@fcolmade \fi{\@outputpage + \@makefcolumn\@dbldeferlist}% + \endgroup + \else + \vbox{}\clearpage + \fi + \fi + \else + \setbox\@cclv\vbox{\box\@cclv\vfil}% + \@makecol\@opcol + \clearpage + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@topnewpage} +% |\@dblbotroom|と|dblbotnumber|を初期化するために|\@topnewpage|を再定義する。 +% \begin{macrocode} +\long\def\@topnewpage[#1]{% + %\@nodocument + \@next\@currbox\@freelist{}{}% + \global\setbox\@currbox + \color@vbox + \normalcolor + \vbox{\hsize\textwidth + \@parboxrestore + \col@number\@ne + #1% + \vskip-\dbltextfloatsep}% + \color@endbox + \ifdim\ht\@currbox>\textheight + \ht\@currbox\textheight + \fi + \global\count\@currbox\tw@ + \@tempdima-\ht\@currbox + \advance\@tempdima-\dbltextfloatsep + \global\advance\@colht\@tempdima + \ifx\@dbltoplist\@empty + \else + \@latexerr{Float(s) lost}\@ehb + \let\@dbltoplist\@empty + \fi + \@cons\@dbltoplist\@currbox + \global\@dbltopnum\m@ne + \global\@dblbotnum\m@ne % added + \ifdim\@colht<2.5\baselineskip + \@latex@warning@no@line {Optional argument of \noexpand\twocolumn + too tall on page \thepage}% + \@emptycol + \if@firstcolumn + \else + \@emptycol + \fi + \else + \global\vsize\@colht + \global\@colroom\@colht + \@floatplacement + \fi + %\global\@dbltoproom\maxdimen + %\global\@dblbotroom\maxdimen + %\@addtodblcol +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\balancenewpage} +% \begin{macro}{\balanceclearpage} +% テキストを均等に分割して出力するためのマクロ。 +% ただし、このマクロを用いた場合、そのページ内での|\newpage|や +% |\clearpage|コマンドが無効になることに注意。 +% \begin{macrocode} +\def\balancenewpage{\par\vfil\global\@balancetrue\penalty-\@M} +\def\balanceclearpage{\balancenewpage + \write\m@ne{}\vbox{}\global\@balancetrue\penalty-\@Mi} +\endinput +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \Finale +% +% \endinput diff --git a/Master/texmf-dist/source/platex/base/nidanfloat.ins b/Master/texmf-dist/source/platex/base/nidanfloat.ins new file mode 100644 index 00000000000..f218512e802 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/nidanfloat.ins @@ -0,0 +1,7 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{ptex/platex/base} +\Msg{*** nidangumi double float package ***} +\generate{\file{nidanfloat.sty}{\from{nidanfloat.dtx}{core}}} +\endbatchfile diff --git a/Master/texmf-dist/source/platex/base/pl209.def b/Master/texmf-dist/source/platex/base/pl209.def new file mode 100644 index 00000000000..315ef580390 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/pl209.def @@ -0,0 +1,106 @@ +%% +%% This is file `pl209.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pl209.dtx (with options: `pl209') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from pl209.def. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file pl209.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: pl209.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\typeout{Entering pLaTeX 2.09 compatibility mode.} +\input{latex209.def} +\RequirePackage{ptrace} +\let\Rensuji\rensuji +\let\prensuji\rensuji +\def\@footnotemark{\leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\fi + \ifydir\@makefnmark + \else\hbox to\z@{\hskip-.25zw\raise2\cht\@makefnmark\hss}\fi + \ifhmode\spacefactor\@x@sf\fi\relax} +\def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}} +\fontencoding{JY1} +\fontfamily{mc} +\fontsize{10}{15} +\DeclareSymbolFont{mincho}{JY1}{mc}{m}{n} +\DeclareSymbolFont{gothic}{JY1}{gt}{m}{n} +\DeclareSymbolFontAlphabet\mathmc{mincho} +\DeclareSymbolFontAlphabet\mathgt{gothic} +\SetSymbolFont{mincho}{bold}{JY1}{gt}{m}{n} +\jfam\symmincho +\DeclareRobustCommand\mc{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\mcdefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \selectfont\mathgroup\symmincho} +\DeclareRobustCommand\gt{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\gtdefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \selectfont\mathgroup\symgothic} +\DeclareRobustCommand\bf{\normalfont\bfseries\mathgroup\symbold\jfam\symgothic} +\DeclareRobustCommand\roman@normal{% + \romanencoding{\encodingdefault}% + \romanfamily{\familydefault}% + \romanseries{\seriesdefault}% + \romanshape{\shapedefault}% + \selectfont\ignorespaces} +\DeclareRobustCommand\rm{\roman@normal\rmfamily\mathgroup\symoperators} +\DeclareRobustCommand\sf{\roman@normal\sffamily\mathgroup\symsans} +\DeclareRobustCommand\sl{\roman@normal\slshape\mathgroup\symslanted} +\DeclareRobustCommand\sc{\roman@normal\scshape\mathgroup\symsmallcaps} +\DeclareRobustCommand\it{\roman@normal\itshape\mathgroup\symitalic} +\DeclareRobustCommand\tt{\roman@normal\ttfamily\mathgroup\symtypewriter} +\DeclareRobustCommand\em{% + \@nomath\em + \ifdim \fontdimen\@ne\font>\z@\mc\rm\else\gt\it\fi} +\let\mcfam\symmincho +\let\gtfam\symgothic +\renewcommand\vpt {\edef\f@size{\@vpt}\rm\mc} +\renewcommand\vipt {\edef\f@size{\@vipt}\rm\mc} +\renewcommand\viipt {\edef\f@size{\@viipt}\rm\mc} +\renewcommand\viiipt{\edef\f@size{\@viiipt}\rm\mc} +\renewcommand\ixpt {\edef\f@size{\@ixpt}\rm\mc} +\renewcommand\xpt {\edef\f@size{\@xpt}\rm\mc} +\renewcommand\xipt {\edef\f@size{\@xipt}\rm\mc} +\renewcommand\xiipt {\edef\f@size{\@xiipt}\rm\mc} +\renewcommand\xivpt {\edef\f@size{\@xivpt}\rm\mc} +\renewcommand\xviipt{\edef\f@size{\@xviipt}\rm\mc} +\renewcommand\xxpt {\edef\f@size{\@xxpt}\rm\mc} +\renewcommand\xxvpt {\edef\f@size{\@xxvpt}\rm\mc} +\InputIfFileExists{pl209.cfg}{}{} +\endinput +%% +%% End of file `pl209.def'. diff --git a/Master/texmf-dist/source/platex/base/pl209.dtx b/Master/texmf-dist/source/platex/base/pl209.dtx new file mode 100644 index 00000000000..0b45ef19625 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/pl209.dtx @@ -0,0 +1,255 @@ +% \iffalse meta-comment +%% File: pl209.dtx +% +% Copyright 1995,1996,1997 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{260} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1995/03/28}{Based on latex209.dtx v0.39} +% \changes{v1.0b}{1995/08/30}{Based on latex209.dtx v0.46} +% \changes{v1.0c}{1995/11/21}{Add footnote relatex commands.} +% \changes{v1.0d}{1997/01/17}{Only define for p\LaTeXe relatex codes.} +% \changes{v1.0e}{1997/01/28}{書体変更の二文字コマンドを旧版互換にした。} +% \changes{v1.0f}{1997/06/25}{\cs{em}で和文を強調書体に} +% \fi +% +% \iffalse +%<*package> +\NeedsTeXFormat{pLaTeX2e} +\ProvidesFile{pl209.dtx}[1997/06/25 v1.0f Standard pLaTeX file] +% +%<*driver> +\documentclass{jltxdoc} +\GetFileInfo{pl209.dtx} +\title{p\LaTeXe\\2.09互換モード用マクロ\space\fileversion} +\author{Ken Nakano \& Hideaki Togashi} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \section{\dst 用モジュール} +% \dst で以下のモジュール名を指定することで、対象となる部分を取り出す +% ことができます。 +% +% \begin{center} +% \begin{tabular}{ll} +% pl209 & \file{pl209.def}ファイルを生成\\ +% oldfonts & \file{oldpfonts.sty}を生成\\ +% style & +% \begin{tabular}[t]{ll} +% jarticle & \file{jarticle.sty}ファイルを生成 \\ +% jbook & \file{jbook.sty}ファイルを生成\\ +% jreport & \file{jreport.sty}ファイルを生成\\ +% tarticle & \file{tarticle.sty}ファイルを生成 \\ +% tbook & \file{tbook.sty}ファイルを生成\\ +% treport & \file{treport.sty}ファイルを生成 +% \end{tabular} +% \end{tabular} +% \end{center} +% +% +% \section{2.09互換マクロ} +% 2.09用のコマンド定義ファイルがロードされたとき、メッセージを出力します。 +% また、\LaTeX{}の2.09コマンドマクロ定義をロードします。 +% \begin{macrocode} +%<*pl209> +\typeout{Entering pLaTeX 2.09 compatibility mode.} +\input{latex209.def} +% +% \end{macrocode} +% フォント選択コマンドのトレースのために\file{ptrace}パッケージをロードします。 +% \changes{v1.0e}{1997/02/20}{Typemiss:oldlfont from oldlfonts} +% \begin{macrocode} +%\RequirePackage{oldlfont} +%\RequirePackage{ptrace} +% \end{macrocode} +% +% \begin{macro}{\Rensuji} +% \begin{macro}{\prensuji} +% p\LaTeXe{}では、|\Rensuji|, |\prensuji|の動作を|\rensuji|コマンドが +% カバーしています。 +% \begin{macrocode} +%<*pl209> +\let\Rensuji\rensuji +\let\prensuji\rensuji +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@footnotemark} +% \begin{macro}{\@makefnmark} +% 脚注の印を出力するマクロを、組み方向に応じて、脚注の方向が変わるように +% します。 +% \begin{macrocode} +%<*pl209> +\def\@footnotemark{\leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\fi + \ifydir\@makefnmark + \else\hbox to\z@{\hskip-.25zw\raise2\cht\@makefnmark\hss}\fi + \ifhmode\spacefactor\@x@sf\fi\relax} +\def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +%<*pl209> +\fontencoding{JY1} +\fontfamily{mc} +\fontsize{10}{15} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*pl209|oldfonts> +\DeclareSymbolFont{mincho}{JY1}{mc}{m}{n} +\DeclareSymbolFont{gothic}{JY1}{gt}{m}{n} +\DeclareSymbolFontAlphabet\mathmc{mincho} +\DeclareSymbolFontAlphabet\mathgt{gothic} +\SetSymbolFont{mincho}{bold}{JY1}{gt}{m}{n} +\jfam\symmincho +% \end{macrocode} +% \changes{v1.0e}{1997/01/29}{二文字書体変更コマンドの動作を旧版と同等にした。} +% |\mc|と|\gt|は、和文フォントを変更しますが、欧文フォントには影響しません。 +% \begin{macrocode} +\DeclareRobustCommand\mc{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\mcdefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \selectfont\mathgroup\symmincho} +\DeclareRobustCommand\gt{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\gtdefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \selectfont\mathgroup\symgothic} +% \end{macrocode} +% |\bf|コマンドは、和文フォントをゴシックにし、欧文フォントをボールドに +% します。 +% \begin{macrocode} +\DeclareRobustCommand\bf{\normalfont\bfseries\mathgroup\symbold\jfam\symgothic} +% \end{macrocode} +% |\rm|, |\sf|, |\sl|, |\sc|, |\it|, |\tt|の各コマンドを、欧文ファミリだけを +% デフォルトフォントから属性を変更するようにし、和文フォントは影響を +% 受けないように修正します。 +% \begin{macrocode} +\DeclareRobustCommand\roman@normal{% + \romanencoding{\encodingdefault}% + \romanfamily{\familydefault}% + \romanseries{\seriesdefault}% + \romanshape{\shapedefault}% + \selectfont\ignorespaces} +\DeclareRobustCommand\rm{\roman@normal\rmfamily\mathgroup\symoperators} +\DeclareRobustCommand\sf{\roman@normal\sffamily\mathgroup\symsans} +\DeclareRobustCommand\sl{\roman@normal\slshape\mathgroup\symslanted} +\DeclareRobustCommand\sc{\roman@normal\scshape\mathgroup\symsmallcaps} +\DeclareRobustCommand\it{\roman@normal\itshape\mathgroup\symitalic} +\DeclareRobustCommand\tt{\roman@normal\ttfamily\mathgroup\symtypewriter} +% \end{macrocode} +% +% \begin{macro}{\em} +% \changes{v1.0f}{1997/06/25}{\cs{em}で和文を強調書体に} +% |\em|コマンドで、和文フォントも|\gt|に切り替えるようにしました。 +% \begin{macrocode} +\DeclareRobustCommand\em{% + \@nomath\em + \ifdim \fontdimen\@ne\font>\z@\mc\rm\else\gt\it\fi} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%<*pl209> +\let\mcfam\symmincho +\let\gtfam\symgothic +\renewcommand\vpt {\edef\f@size{\@vpt}\rm\mc} +\renewcommand\vipt {\edef\f@size{\@vipt}\rm\mc} +\renewcommand\viipt {\edef\f@size{\@viipt}\rm\mc} +\renewcommand\viiipt{\edef\f@size{\@viiipt}\rm\mc} +\renewcommand\ixpt {\edef\f@size{\@ixpt}\rm\mc} +\renewcommand\xpt {\edef\f@size{\@xpt}\rm\mc} +\renewcommand\xipt {\edef\f@size{\@xipt}\rm\mc} +\renewcommand\xiipt {\edef\f@size{\@xiipt}\rm\mc} +\renewcommand\xivpt {\edef\f@size{\@xivpt}\rm\mc} +\renewcommand\xviipt{\edef\f@size{\@xviipt}\rm\mc} +\renewcommand\xxpt {\edef\f@size{\@xxpt}\rm\mc} +\renewcommand\xxvpt {\edef\f@size{\@xxvpt}\rm\mc} +% +% \end{macrocode} +% そして、最後に\file{pl209.cfg}というファイルがあれば、それをロードします。 +% \begin{macrocode} +%\InputIfFileExists{pl209.cfg}{}{} +% \end{macrocode} +% +% +% \section{スタイルファイル} +% 以下は、p\LaTeX~2.09での標準スタイルファイルです。 +% p\LaTeXe{}のクラスファイルをロードするようにしています。 +% \begin{macrocode} +%<*style> +%<*jarticle|jbook|jreport|tarticle|tbook|treport> +\NeedsTeXFormat{pLaTeX2e} +% +%<*jarticle> +\@obsoletefile{jarticle.cls}{jarticle.sty} +\LoadClass{jarticle} +% +%<*tarticle> +\@obsoletefile{tarticle.cls}{tarticle.sty} +\LoadClass{tarticle} +% +%<*jbook> +\@obsoletefile{jbook.cls}{jbook.sty} +\LoadClass{jbook} +% +%<*tbook> +\@obsoletefile{tbook.cls}{tbook.sty} +\LoadClass{tbook} +% +%<*jreport> +\@obsoletefile{jreport.cls}{jreport.sty} +\LoadClass{jreport} +% +%<*treport> +\@obsoletefile{treport.cls}{treport.sty} +\LoadClass{treport} +% +% +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/platex/base/pl209.ins b/Master/texmf-dist/source/platex/base/pl209.ins new file mode 100644 index 00000000000..f8bb15e6c90 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/pl209.ins @@ -0,0 +1,22 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{ptex/platex/base} + +\Msg{*** Generating the pLaTeX compatibility mode files ***} + +\generate{ + \file{pl209.def}{\from{pl209.dtx}{pl209}} + \file{oldpfont.sty}{\from{pl209.dtx}{oldfonts}} +} + +\generate{ + \file{jarticle.sty}{\from{pl209.dtx}{style,jarticle}} + \file{tarticle.sty}{\from{pl209.dtx}{style,tarticle}} + \file{jbook.sty}{\from{pl209.dtx}{style,jbook}} + \file{tbook.sty}{\from{pl209.dtx}{style,tbook}} + \file{jreport.sty}{\from{pl209.dtx}{style,jreport}} + \file{treport.sty}{\from{pl209.dtx}{style,treport}} +} + +\endbatchfile diff --git a/Master/texmf-dist/source/platex/base/platex.dtx b/Master/texmf-dist/source/platex/base/platex.dtx new file mode 100644 index 00000000000..66618d080be --- /dev/null +++ b/Master/texmf-dist/source/platex/base/platex.dtx @@ -0,0 +1,867 @@ +% \iffalse meta-comment +%% File: platex.dtx +% +% Copyright 1995,1996 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{367} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \def\chuui#1{\par\vskip.5\baselineskip +% \noindent\bfseries{注意:}\par +% \noindent\bgroup\bf#1} +% \def\endchuui{\egroup\vskip.5\baselineskip} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1995/05/08}{first edition} +% \changes{v1.0a}{1995/08/25}{互換性について、\dst{}の使い方、参考文献を追加} +% \changes{v1.0b}{1996/02/01}{\file{omake-sh.ins}, \file{omake-pl.ins}を +% \dst{}の変更にともなう変更をした} +% \changes{v1.0c}{1997/01/23}{\LaTeX\ \textt{!<1996/12/01!>}に合わせて修正} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{platex.dtx}[1997/01/29 v1.0c pLaTeX document file] +% \iffalse +\documentclass{jltxdoc} +\usepackage{plext} +\GetFileInfo{platex.dtx} +\title{p\LaTeXe{}について} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \MakeShortVerb{\+} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% +% \section{概要}\label{platex:intro} +% この文書は、p\LaTeXe{}の概要を示していますが、使い方のガイドでは +% ありません。p\LaTeXe{}の機能についての説明は、\cite{platex2e-book}を +% 参照してください。日本語\TeX{}については\cite{jtex-tech}を参照してください。 +% +% p\LaTeXe{}では\cite{tate-book}で説明されている、いくつかの拡張コマンドの +% 動作を修正しています。その詳細については、\file{plext.dtx}を参照して +% ください。 +% +% \LaTeX{}の機能については、\cite{latex-book2}や\cite{latex-comp}などを +% 参照してください。新しい機能については\file{usrguide.tex}を参照してください。 +% +% この文書の構成は次のようになっています。 +% +% \begin{quote} +% \begin{description} +% \item[第\ref{platex:intro}節] +% この節です。この文書についての概要と、 +% \dst{}のためのオプションについて述べています。 +% +% \item[第\ref{platex:plcore}節] +% p\LaTeXe{}で拡張した機能についての概要です。 +% 付属のクラスファイルやパッケージファイルについても簡単に +% 説明しています。 +% +% \item[第\ref{platex:compatibility}節] +% 旧バージョンのp\LaTeX{}との互換性について述べています。 +% +% \item[付録\ref{app:pldoc}] +% p\LaTeXe{}のdtxファイルをまとめて一つのDVIファイルにするための +% 文書ファイル説明をしています。 +% +% \item[付録\ref{app:omake}] +% 付録\ref{app:pldoc}で説明をした文書ファイルを処理するshスクリプト(手順)、 +% \dst{}文書ファイル内の入れ子の対応を調べるperlスクリプトなどについて +% 説明しています。 +% \end{description} +% \end{quote} +% +% +% \subsection{\dst{}プログラムのためのオプション} +% この文書を\dst{}プログラムによって処理することによって、 +% いくつかの異なるファイルを生成することができます。 +% +% この文書の\dst{}プログラムのためのオプションは、次のとおりです。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|p{.8\linewidth}} +% \emph{オプション} & \emph{意味}\\\hline +% plcore & フォーマットファイルを作るためのファイルを生成\\ +% pldoc & p\LaTeXe{}のソースファイルをまとめて組版するための +% 文書ファイルを生成\\[2mm] +% shprog & 上記のファイルを作成するためのshスクリプトを生成\\ +% plprog & 入れ子構造を調べる簡単なperlスクリプトを生成\\ +% Xins & 上記のshスクリプトやperlスクリプトを取り出すための +% \dst{}バッチファイルを生成\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% \subsubsection{ファイルの取り出し方} +% +% たとえば、この文書の``plcore''の部分を``\file{platex.ltx}''という +% ファイルにするときの手順はつぎのようになります。 +% +% \begin{enumerate} +% \item platex docstrip +% \item 入力ファイルの拡張子(dtx)を入力する。 +% \item 出力ファイルの拡張子(ltx)を入力する。 +% \item \dst{}オプション(plcore)を入力する。 +% \item 入力ファイル名(platex)を入力する。 +% \item \file{platex.ltx}が存在する場合は、確認を求めてくるので、 +% ``y''を入力する。 +% \item 別の処理を行なうかを問われるので、``n''を入力する。 +% \end{enumerate} +% これで、\file{platex.ltx}が作られます。 +% +% あるいは、次のような内容のファイル\file{batch.ins}を作成し、 +% |platex fmt.ins|することでも\file{platex.ltx}を作ることができます。 +% +% \begin{verbatim} +% \def\batchfile{batch.ins} +% \input docstrip.tex +% \generateFile{platex.ltx}{t}{\from{platex.dtx}{plcore}} +% \end{verbatim} +% +% \dst プログラムの詳細は、\file{docstrip.dtx}を参照してください。 +% +% +% +% \section{p\LaTeXe{}の機能について}\label{platex:plcore} +% p\LaTeXe{}の機能は、いくつものファイルに分割されて実装されています。 +% これらのファイルはつぎの3種類に分類することができます。 +% +% \begin{itemize} +% \item フォーマットファイル +% \item クラスファイル +% \item パッケージファイル +% \end{itemize} +% +% フォーマットファイルには、基本的な機能が定義されており、 +% p\LaTeXe{}の核となるファイルです。このファイルに定義されているマクロは、 +% 実行時の速度を高めるために、あらかじめ\TeX の内部形式の形で保存されて +% います。 +% +% クラスファイルとパッケージファイルは、従来、スタイルファイルと呼ばれていた +% ものです。\LaTeXe{}ではそれらを、レイアウトに関するものをクラスファイルと +% 呼び、マクロの拡張をするものをパッケージファイルと呼んで区別するように +% なりました。 +% +% \TeX{}文書が使用するクラスは、文書のプリアンブルで|\documentclass|コマンド +% を用いて指定します。|\documentclass|ではなく、旧版の|\documentstyle|を +% 用いると、自動的に\emph{2.09互換モード}に入ります。 +% 互換モードは旧版の文書を組版するためだけに作られていますので、 +% 新しく文書を作成する場合は、|\documentclass|コマンドを用いてください。 +% 互換モードでは\LaTeX{}の新機能も使えなくなります。 +% +% 旧版では、|\documentstyle|のオプションでマクロファイルを読み込んで +% いましたが、\LaTeX{}では、|\usepackage|コマンドを用いて読み込みます。 +% +% \subsection{フォーマットファイル} +% フォーマットファイルには、基本的な機能が定義されていますが、 +% これらは\TeX{}の内部形式に変換された形式となっています。 +% フォーマットファイルを作成するには、 +% ソースファイル``platex.ltx''を|iniptex|プログラムで処理します。 +% +% 次のリストが、その内容です。 +% ただし、このバージョンでは、\LaTeX{}からp\LaTeXe{}への拡張を +% \file{plcore.ltx}をロードすることで行ない、 +% \file{latex.ltx}には直接、手を加えないようにしています。 +% したがって\file{platex.ltx}はとても短いものとなっています。 +% \file{latex.ltx}には\LaTeX{}のコマンドが、 +% \file{plcore.ltx}にはp\LaTeXe{}で拡張したコマンドが定義されています。 +% +% \begin{macrocode} +%<*plcore> +\let\orgdump\dump +\let\dump\relax +\input latex.ltx +\typeout{**************************^^J% + *^^J% + * making pLaTeX format^^J% + *^^J% + **************************} +\makeatletter +\input plcore.ltx +\makeatother +\the\everyjob +\let\dump\orgdump +\dump +%\endinput +% +% \end{macrocode} +% +% 実際にp\LaTeXe{}への拡張を行なっている\file{plcore.ltx}は、 +% \dst{}プログラムによって、次のファイルの断片が連結されたものです。 +% +% \begin{itemize} +% \item \file{plvers.dtx}は、p\LaTeXe{}のフォーマットバージョンを +% 定義しています。 +% \item \file{plfonts.dtx}は、\NFSS2を拡張しています。 +% \item \file{plcore.dtx}は、上記以外のコマンドでフォーマットファイルに +% 格納されるコマンドを定義しています。 +% \end{itemize} +% +% プリロードフォントや組版パラメータなどの設定は、 +% \file{pldefs.ltx}をロードすることで行なっています。 +% このファイルに記述されている設定を変更すれば、 +% p\LaTeXe{}をカスタマイズすることができます。 +% カスタマイズする場合は、このファイルを直接、修正するのではなく、 +% \file{pldefs.cfg}という名前でコピーをして、そのファイルを編集します。 +% \file{pldefs.cfg}は\file{pldefs.ltx}の代わりに読み込まれます。 +% +% +% \subsubsection{バージョン} +% p\LaTeXe{}のバージョンやフォーマットファイル名は、 +% \file{plvers.dtx}で定義しています。 +% +% +% \subsubsection{\NFSS2コマンド} +% \LaTeX{}では、フォント選択機構として\NFSS2を用いています。 +% p\LaTeXe{}では、オリジナルの\NFSS2 と同様のインターフェイスで、 +% 和文フォントを選択できるように、\file{plfonts.dtx}で\NFSS2を拡張しています。 +% +% p\LaTeXe{}の\NFSS2は、フォントを切替えるコマンドを指定するときに、 +% それが欧文書体か和文書体のいずれかを対象とするものかを、 +% できるだけ意識しないようにする方向で拡張しています。 +% いいかえれば、コマンドが(可能な限りの)判断をします。 +% したがって数多くある英語版のクラスファイルやパッケージファイルなどで +% 書体の変更を行っている箇所を修正する必要はあまりありません。 +% +% \file{plfonts.dtx}ファイルでは、\NFSS2コマンドの定義のほか、プリロード +% フォントの設定、和文エンコードの定義、組版パラメータなどの設定、 +% フォント定義ファイルなどの記述も含まれています。 +% +% \NFSS2についての詳細は、\LaTeXe に付属の\file{fntguide.tex}を参照して +% ください。 +% +% +% \subsubsection{出力ルーチンとフロート} +% \file{plcore.dtx}は、次の項目に関するコマンドを日本語処理用に修正や拡張 +% をしています。 +% +% \begin{itemize} +% \item プリアンブルコマンド +% \item 改ページ +% \item 改行 +% \item オブジェクトの出力順序 +% \item トンボ +% \item 脚注マクロ +% \item 相互参照 +% \item 疑似タイプ入力 +% \end{itemize} +% +% +% \subsection{クラスファイルとパッケージファイル} +% クラスファイルとパッケージファイルは、従来、スタイルファイルと呼ばれていた +% ものです。\LaTeX{}ではそれらを、レイアウトに関するものをクラスファイルと +% 呼び、マクロの拡張をするものをパッケージファイルと呼んで区別するように +% なりました。 +% +% p\LaTeXe{}が提供をする、クラスファイルやパッケージファイルのいくつかは、 +% オリジナルのファイルを修正しています。 +% 修正箇所には``\texttt{platex}''条件が付けられています。 +% +% p\LaTeXe{}に付属のクラスファイルは、次のとおりです。 +% +% \begin{itemize} +% \item jbook.cls,jarticle.cls,jreport.cls\par +% 横組用の標準クラスファイル。\file{jclasses.dtx}から作成される。 +% +% \item tbook.cls,tarticle.cls,treport.cls\par +% 縦組用の標準クラスファイル。\file{jclasses.dtx}から作成される。 +% +% \item jltxdoc.cls\par +% \file{.dtx}ファイルを組版するためのクラスファイル。 +% \file{jltxdoc.dtx}から作成される。 +% +% \item jltxguid.cls\par +% \file{usrguide.tex}や\file{fntguide.tex}などを組版するための +% クラスファイル。 +% \end{itemize} +% +% また、p\LaTeXe{}に付属のパッケージファイルは、次のとおりです。 +% +% \begin{itemize} +% \item oldpfont.sty\par +% p\LaTeX~2.09のフォントコマンドを提供するパッケージ。 +% \file{oldpfont.dtx}から作成される。 +% +% \item ptrace.sty\par +% \file{tracefnt.sty}で再定義された\NFSS2コマンドをp\LaTeXe{}用に +% 再々定義するためのパッケージ。 +% +% \item ascmac.sty, tascmac.sty\par +% 旧バージョンのp\LaTeX{}で配布されていたファイル。 +% +% \item plext.sty\par +% 縦組用の拡張コマンドなどが定義されているファイル。 +% \end{itemize} +% +% +% \section{旧バージョンとの互換性}\label{platex:compatibility} +% ここでは、このバージョンと以前のバージョンとの互換性や拡張部分について +% 説明をしています。 +% +% \subsection{p\LaTeX~2.09との互換性} +% p\LaTeXe{}は、\LaTeX{}の上位互換という形を取っていますが、 +% いくつかのパラメータなども変更しています。 +% したがって英文書など、\LaTeX{}でも処理できるファイルを +% p\LaTeXe{}で処理しても、完全に同じ結果になるとは限りません。 +% これは、英語版の\LaTeX{}でも同じです。 +% 詳細は、\LaTeXe に付属の\file{usrguide.tex}を参照してください。 +% +% 多くのクラスファイルやパッケージフィルはそのまま使えると思います。 +% ただし、それらがp\LaTeXe{}で拡張しているコマンドと同じ名前のコマンドを +% 再定義している場合は、コマンドの拡張の仕方によってはエラーになることも +% あります。用いようとしている、クラスファイルやパッケージファイルが +% うまく動くかどうかを、完全に確かめる方法は残念ながらありません。 +% 一番簡単なのは、動かしてみることです。不幸にもうまく動かない場合は、 +% ログファイルや付属の文書ファイルを参考に原因を調べてください。 +% +% +% +% \appendix +% +% \section{文書ファイル}\label{app:pldoc} +% \changes{v1.0c}{1997/01/25}{Add to filecontents environment for pldoc.dic.} +% ここでは、このパッケージに含まれているdtxファイルをまとめて組版をするための +% 文書ファイルについて説明をしています。個別に処理した場合と異なり、 +% 変更履歴や索引も付きます。全体で、およそ150ページ程度になります。 +% +% |filecontents|環境は、引数に指定されたファイルが存在するときは何も +% しませんが、存在しないときは、環境内の内容でファイルを作成します。 +% \file{pldoc.dic}ファイルは、mendexプログラムで索引を処理するときに +% \cs{西暦}, \cs{和暦}に対する「読み」を付けるために必要です。 +% \begin{macrocode} +%<*pldoc> +\begin{filecontents}{pldoc.dic} +西暦 せいれき +和暦 われき +\end{filecontents} +% \end{macrocode} +% 文書クラスには、\file{jltxdoc}クラスを用います。 +% \file{plext.dtx}の中でサンプルを組み立てていますので、 +% \file{plext}パッケージが必要です。 +% \begin{macrocode} +\documentclass{jltxdoc} +\usepackage{plext} +\listfiles + +% \end{macrocode} +% いくつかの\TeX{}プリミティブとコマンドを索引に出力しないようにします。 +% \begin{macrocode} +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\if,\ifnum,\ifdim,\ifcat,\ifmmode,\ifvmode,\ifhmode,% + \iftrue,\iffalse,\ifvoid,\ifx,\ifeof,\ifcase,\else,\or,\fi} +\DoNotIndex{\box,\copy,\setbox,\unvbox,\unhbox,\hbox,% + \vbox,\vtop,\vcenter} +\DoNotIndex{\@empty,\immediate,\write} +\DoNotIndex{\egroup,\bgroup,\expandafter,\begingroup,\endgroup} +\DoNotIndex{\divide,\advance,\multiply,\count,\dimen} +\DoNotIndex{\relax,\space,\string} +\DoNotIndex{\csname,\endcsname,\@spaces,\openin,\openout,% + \closein,\closeout} +\DoNotIndex{\catcode,\endinput} +\DoNotIndex{\jobname,\message,\read,\the,\m@ne,\noexpand} +\DoNotIndex{\hsize,\vsize,\hskip,\vskip,\kern,\hfil,\hfill,\hss,\vss,\unskip} +\DoNotIndex{\m@ne,\z@,\z@skip,\@ne,\tw@,\p@,\@minus,\@plus} +\DoNotIndex{\dp,\wd,\ht,\setlength,\addtolength} +\DoNotIndex{\newcommand, \renewcommand} + +% \end{macrocode} +% 索引と変更履歴の見出しに\cs{part}を用いるように設定をします。 +% \begin{macrocode} +\IndexPrologue{\part*{索 引}% + \markboth{索 引}{索 引}% + \addcontentsline{toc}{part}{索 引}% +イタリック体の数字は、その項目が説明されているページを示しています。 +下線の引かれた数字は、定義されているページを示しています。 +その他の数字は、その項目が使われているページを示しています。} +% +\GlossaryPrologue{\part*{変更履歴}% + \markboth{変更履歴}{変更履歴}% + \addcontentsline{toc}{part}{変更履歴}} + +% \end{macrocode} +% 標準の|\changes|コマンドを、複数ファイルの文書に合うように修正しています。 +% \begin{macrocode} +\makeatletter +\def\changes@#1#2#3{% + \let\protect\@unexpandable@protect + \edef\@tempa{\noexpand\glossary{#2\space\currentfile\space#1\levelchar + \ifx\saved@macroname\@empty + \space\actualchar\generalname + \else + \expandafter\@gobble + \saved@macroname\actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar + \fi + :\levelchar #3}}% + \@tempa\endgroup\@esphack} +\makeatother +\RecordChanges +\CodelineIndex +\EnableCrossrefs +\setcounter{IndexColumns}{2} +\settowidth\MacroIndent{\ttfamily\scriptsize 000\ } +% \end{macrocode} +% ここからが本文ページとなります。 +% \changes{v1.0c}{1997/01/29}{Rename pltpatch to plpatch.} +% \begin{macrocode} +\begin{document} + \title{The p\LaTeXe\ Sources} + \author{Ken Nakano} + +% This command will be used to input the patch file +% if that file exists. +\newcommand{\includeltpatch}{% + \def\currentfile{plpatch.ltx} + \part{plpatch} + {\let\ttfamily\relax + \xdef\filekey{\filekey, \thepart={\ttfamily\currentfile}}}% + Things we did wrong\ldots + \IndexInput{plpatch.ltx}} + +% Get the date from plvers.dtx +\makeatletter +\let\patchdate=\@empty +\begingroup + \def\ProvidesFile#1\pfmtversion#2{\date{#2}\endinput} + \input{plvers.dtx} +\global\let\X@date=\@date + +% Add the patch version if available. + \long\def\Xdef#1#2#3\def#4#5{% + \xdef\X@date{#2}% + \xdef\patchdate{#5}% + \endinput}% + \InputIfFileExists{plpatch.ltx} + {\let\def\Xdef}{\global\let\includeltpatch\relax} +\endgroup + +\ifx\@date\X@date + \def\Xpatch{0} + \ifx\patchdate\Xpatch\else + \edef\@date{\@date\space Patch level\patchdate} + \fi +\else + \@warning{plpatch.ltx does not match plvers.dtx!} + \let\includeltpatch\relax +\fi +\makeatother + +\pagenumbering{roman} +\maketitle +\renewcommand\maketitle{} +\tableofcontents +\clearpage +\pagenumbering{arabic} + +\DocInclude{plvers} % pLaTeX version + +\DocInclude{plfonts} % NFSS2 commands + +\DocInclude{plcore} % kernel commands + +\DocInclude{plext} % external commands + +\DocInclude{pl209} % 2.09 compatibility mode commands + +\DocInclude{kinsoku} % kinsoku parameter + +\DocInclude{jclasses} % Standard class + +\DocInclude{jltxdoc} % dtx documents class + +\includeltpatch % patch file + +% \end{macrocode} +% \file{ltxdoc.cfg}に|\AtEndOfClass{\OnlyDescription}|が指定されている場合は、 +% ここで終了します。 +% \begin{macrocode} +\StopEventually{\end{document}} + +% \end{macrocode} +% 変更履歴と索引を組版します。 +% 変更履歴ファイルと索引の作り方の詳細については、 +% おまけ\ref{app:shprog}を参照してください。 +% \begin{macrocode} +\clearpage +\pagestyle{headings} +% Make TeX shut up. +\hbadness=10000 +\newcount\hbadness +\hfuzz=\maxdimen +% +\PrintChanges +\clearpage +% +\begingroup + \def\endash{--} + \catcode`\-\active + \def-{\futurelet\temp\indexdash} + \def\indexdash{\ifx\temp-\endash\fi} + + \PrintIndex +\endgroup +% \end{macrocode} +% \file{ltxdoc.cfg}に2度目の|\PrintIndex|が指定されているかもしれません。 +% そこで、最後に、変更履歴や索引が2度組版されないように|\PrintChanges|および +% |\PrintIndex|コマンドを何も実行しないようにします。 +% \begin{macrocode} +\let\PrintChanges\relax +\let\PrintIndex\relax +\end{document} +% +% \end{macrocode} +% +% +% +% \section{おまけプログラム}\label{app:omake} +% +% \subsection{シェルスクリプト\file{mkpldoc.sh}}\label{app:shprog} +% ここでは、p\LaTeXe{}のマクロ定義ファイルをまとめて組版するときに便利な、 +% シェルスクリプト\footnote{このシェルスクリプトはUNIX用です。 +% しかしrmコマンドをdeleteコマンドにするなどすれば、簡単にDOSなどのバッチ +% ファイルに修正することができます。}について説明をしています。 +% また、このシェルスクリプトを取り出すための、 +% \dst{}バッチファイルについても説明をしています。 +% +% このシェルスクリプトの使用方法は次のとおりです。 +% \begin{verbatim} +% sh mkpldoc.sh +% \end{verbatim} +% +% \subsubsection{\file{mkpldoc.sh}の内容} +% まず、以前に\file{pldoc.tex}を処理したときに作成された、 +% 目次ファイルや索引ファイルなどを削除します。 +% \changes{v1.0c}{1997/01/23}{Don't copy gind.ist and gglo.ist from +% \$TEXMF/tex/latex2e/base directory.} +% \begin{macrocode} +%<*shprog> +rm pldoc.toc pldoc.idx pldoc.glo +% \end{macrocode} +% そして、\file{ltxdoc.cfg}を空にします。 +% このファイルは、\file{jltxdoc.cls}の定義を変更するものですが、 +% ここでは、変更されたくありません。 +% \begin{macrocode} +echo "" > ltxdoc.cfg +% \end{macrocode} +% そして、\file{pldoc.tex}を処理します。 +% \begin{macrocode} +platex pldoc.tex +% \end{macrocode} +% 索引と変更履歴を作成します。 +% このスクリプトでは、変更履歴や索引を生成するのにmendexプログラムを用いて +% います。mendexはmakeindexの上位互換のファイル整形コマンドで、 +% 索引語の読みを自動的に付けるなどの機能があります。 +% +% |-s|オプションは、索引ファイルを整形するためのスタイルオプションです。 +% 索引用の\file{gind.ist}と変更履歴用の\file{gglo.ist}は、 +% \LaTeX{}のディストリビューションに付属しています。 +% +% |-o|は、出力するファイル名を指定するオプションです。 +% +% |-f|は、項目に``読み''がなくてもエラーとしないオプションです。 +% makeindexコマンドには、このオプションがありません。 +% \begin{macrocode} +mendex -s gind.ist -d pldoc.dic -o pldoc.ind pldoc.idx +mendex -f -s gglo.ist -o pldoc.gls pldoc.glo +% \end{macrocode} +% \file{ltxdoc.cfg}の内容を|\includeonly{}|にし、\file{pldoc.tex}を処理します。 +% このコマンドは、引数に指定されたファイルだけを``|\include|''するための +% コマンドですが、ここでは何も|\include|したく\emph{ない}ので、 +% 引数には何も指定をしません。 +% しかし、|\input|で指定されているファイルは読み込まれます。 +% したがって、目次や索引や変更履歴のファイルが処理されます。 +% この処理は、主に、これらでエラーが出るかどうかの確認です。 +% \begin{macrocode} +echo "\includeonly{}" > ltxdoc.cfg +platex pldoc.tex +% \end{macrocode} +% 最後に、再び\file{ltxdoc.cfg}を空にして、\file{pldoc.tex}を処理をします。 +% 本文を1ページから開始していますので、この後、もう一度処理をする +% 必要はありません。 +% \begin{macrocode} +echo "" > ltxdoc.cfg +platex pldoc.tex +# EOT +% +% \end{macrocode} +% +% +% \subsection{perlスクリプト\file{dstcheck.pl}}\label{app:plprog} +% \dst{}文書ファイルは、\LaTeX{}のソースとその文書を同時に管理する方法として、 +% とてもすぐれていると思います。しかし、たとえば\file{jclasses.dtx}のように、 +% 条件が多くなると、入れ子構造がわからなくなってしまいがちです。 +% \LaTeX{}で処理すれば、エラーによってわかりますが、 +% 文書ファイルが大きくなると面倒です。 +% +% ここでは、\dst{}文書ファイルの入れ子構造を調べるのに便利な、 +% perlスクリプトについて説明をしています。 +% +% このperlスクリプトの使用方法は次のとおりです。 +% +% \begin{verbatim} +% perl dstcheck.pl file-name +% \end{verbatim} +% +% \subsubsection{\file{dstcheck.pl}の内容} +% 最初に、このperlスクリプトが何をするのかを簡単に記述したコメントを +% 付けます。 +% \begin{macrocode} +%<*plprog> +## +## DOCSTRIP 文書内の環境や条件の入れ子を調べる perl スクリプト +## +% \end{macrocode} +% このスクリプトは、入れ子の対応を調べるために、次のスタックを用います。 +% \meta{条件}あるいは\meta{環境}を開始するコードが現れたときに、 +% それらはスタックにプッシュされ、終了するコードでポップされます。 +% したがって、現在の\meta{条件}あるいは\meta{環境}と、 +% スタックから取り出した\meta{条件}あるいは\meta{環境}と一致すれば、 +% 対応が取れているといえます。そうでなければエラーです。 +% +% |@dst|スタックには、\meta{条件}が入ります。 +% 条件の開始は、``|%<*|\meta{条件}|>|''です。 +% 条件の終了は、``|%|''です。 +% \meta{条件}には、|>|文字が含まれません。 +% |@env|スタックには、\meta{環境}が入ります。 +% +% 先頭を明示的に示すために、ダミーの値を初期値として用います。 +% スタックは、\meta{条件}あるいは\meta{環境}の名前と、その行番号をペアにして +% 操作をします。 +% \begin{macrocode} +push(@dst,"DUMMY"); push(@dst,"000"); +push(@env,"DUMMY"); push(@env,"000"); +% \end{macrocode} +% この|while|ループの中のスクリプトは、文書ファイルの1行ごとに実行をします。 +% \begin{macrocode} +while (<>) { +% \end{macrocode} +% 入力行が条件を開始する行なのかを調べます。 +% 条件の開始行ならば、|@dst|スタックに\meta{条件}と行番号をプッシュします。 +% \begin{macrocode} + if (/^%<\*([^>]+)>/) { # check conditions + push(@dst,$1); + push(@dst,$.); +% \end{macrocode} +% そうでなければ、条件の終了行なのかを調べます。 +% 現在行が条件の終了を示している場合は、|@dst|スタックをポップします。 +% \begin{macrocode} + } elsif (/^%<\/([^>]+)>/) { + $linenum = pop(@dst); + $conditions = pop(@dst); +% \end{macrocode} +% 現在行の\meta{条件}と、スタックから取り出した\meta{条件}が一致しない場合、 +% その旨のメッセージを出力します。 +% +% なお、|DUMMY|と一致した場合は、一番外側のループが合っていないと +% いうことを示しています。このとき、これらのダミー値をスタックに戻します。 +% いつでもスタックの先頭をダミー値にするためです。 +% \begin{macrocode} + if ($1 ne $conditions) { + if ($conditions eq "DUMMY") { + print "$ARGV: `' (l.$.) is not started.\n"; + push(@dst,"DUMMY"); + push(@dst,"000"); + } else { + print "$ARGV: `<*$conditions>' (l.$linenum) is ended "; + print "by `<*$1>' (l.$.)\n"; + } + } + } +% \end{macrocode} +% 環境の入れ子も条件と同じように調べます。 +% +% verbatim環境のときに、その内側をスキップしていることに注意をしてください。 +% \begin{macrocode} + if (/^% *\\begin\{verbatim\}/) { # check environments + while(<>) { + last if (/^% *\\end\{verbatim\}/); + } + } elsif (/^% *\\begin\{([^{}]+)\}\{(.*)\}/) { + push(@env,$1); + push(@env,$.); + } elsif (/^% *\\begin\{([^{}]+)\}/) { + push(@env,$1); + push(@env,$.); + } elsif (/^% *\\end\{([^{}]+)\}/) { + $linenum = pop(@env); + $environment = pop(@env); + if ($1 ne $environment) { + if ($environment eq "DUMMY") { + print "$ARGV: `\\end{$1}' (l.$.) is not started.\n"; + push(@env,"DUMMY"); + push(@env,"000"); + } else { + print "$ARGV: \\begin{$environement} (l.$linenum) is ended "; + print "by \\end{$1} (l.$.)\n"; + } + } + } +% \end{macrocode} +% ここまでが、最初の|while|ループです。 +% \begin{macrocode} +} +% \end{macrocode} +% 文書ファイルを読み込んだ後、終了していない条件があるかどうかを確認します。 +% すべての条件の対応がとれていれば、この時点での|@dst|スタックには +% ダミー値しか入っていません。したがって、対応が取れている場合は、 +% 最初の2つのポップによって、ダミー値が設定されます。 +% ダミー値でなければ、ダミー値になるまで、取り出した値を出力します。 +% \begin{macrocode} +$linenum = pop(@dst); +$conditions = pop(@dst); +while ($conditions ne "DUMMY") { + print "$ARGV: `<*$conditions>' (l.$linenum) is not ended.\n"; + $linenum = pop(@dst); + $conditions = pop(@dst); +} +% \end{macrocode} +% 環境の入れ子についても、条件の入れ子と同様に確認をします。 +% \begin{macrocode} +$linenum = pop(@env); +$environment = pop(@env); +while ($environment ne "DUMMY") { + print "$ARGV: `\\begin{$environment}' (l.$linenum) is not ended.\n"; + $linenum = pop(@env); + $environment = pop(@env); +} +exit; +% +% \end{macrocode} +% +% \subsection{\dst{}バッチファイル} +% \changes{v1.0b}{1996/02/01}{\dst{}にともなう変更} +% \changes{v1.0c}{1997/01/23}{\dst{}にともなう変更} +% ここでは、付録\ref{app:shprog}と付録\ref{app:plprog}で説明をした二つの +% スクリプトを、このファイルから取り出すための\dst{}バッチファイルについて +% 説明をしています。 +% +% まず、\dst{}パッケージをロードします。 +% また、実行経過のメッセージを出力しないようにしています。 +% \begin{macrocode} +%<*Xins> +\input docstrip +\keepsilent +% \end{macrocode} +% \dst{}プログラムは、連続する二つのパーセント記号(\%\%)ではじまる行を +% メタコメントとみなし、条件によらず出力をします。 +% しかし、``\%''は\TeX{}ではコメントであっても、shやperlにとってはコメント +% ではありません。そこで、メタコメントとして出力する文字を``\#\#''と +% 変更します。 +% \begin{macrocode} +{\catcode`#=12 \gdef\MetaPrefix{## }} +% \end{macrocode} +% そして、プリアンブルに出力されるメッセージを宣言します。 +% ここでは、とくに何も指定していませんが、宣言をしないとデフォルトの記述が +% `\%\%'付きで出力されてしまうため、それを抑制する目的で使用しています。 +% \begin{macrocode} +\declarepreamble\thispre +\endpreamble +\usepreamble\thispre +% \end{macrocode} +% ポストアンブルも同様に、宣言をしないと`|\endinput|'が出力されます。 +% \begin{macrocode} +\declarepostamble\thispost +\endpostamble +\usepostamble\thispost +% \end{macrocode} +% |\generate|コマンドで、どのファイルに、どのファイルのどの部分を出力するのか +% を指定します。 +% \begin{macrocode} +\generate{ + \file{dstcheck.pl}{\from{platex.dtx}{plprog}} + \file{mkpldoc.sh}{\from{platex.dtx}{shprog}} +} +\endbatchfile +% +% \end{macrocode} +% +% \newpage +% \begin{thebibliography}{1} +% \bibitem{tex-book} +% Donald~E. Knuth. +% \newblock ``{\em The TeX Book}''. +% \newblock Addison-Wesley, 1984. +% \newblock (邦訳:斎藤信男監修, 鷺谷好輝訳, +% \TeX ブック 改訂新版, アスキー出版局, 1989) +% +% \bibitem{tate-book} +% インプレス・ラボ監修, アスキー書籍編集部編 +% \newblock 『縦組対応 パーソナル日本語\TeX{}』 +% \newblock アスキー出版局, 1994 +% +% \bibitem{latex-comp} +% Michel Goossens, Frank Mittelbach, Alexander Samarin. +% \newblock ``{\em The {\LaTeX} Companion}''. +% \newblock Addison-Wesley, 1994. +% +% \bibitem{latex-book2} +% Laslie Lamport. +% \newblock ``{\em {\LaTeX:} A Document Preparation System}''. +% \newblock Addison-Wesley, second edition, 1994. +% +% \bibitem{latex-book} +% Laslie Lamport. +% \newblock ``{\em {\LaTeX:} A Document Preparation System}''. +% \newblock Addison-Wesley, 1986. +% \newblock (邦訳:倉沢良一監修, 大野俊治・小暮博通・藤浦はる美訳, +% 文書処理システム \LaTeX, アスキー, 1990) +% +% \bibitem{jtex-tech} +% アスキー出版技術部責任編集 +% \newblock 『日本語\TeX テクニカルブックI』 +% \newblock アスキー, 1990. +% +% \bibitem{platex2e-book} +% 中野 賢 +% \newblock 『日本語\LaTeXe ブック』 +% \newblock アスキー, 1996. +% +% \bibitem{perl} +% 河野真治著 +% \newblock 『入門perl』 +% \newblock アスキー出版局, 1994 +% \end{thebibliography} +% +% \iffalse +% ここで、このあとに組版されるかもしれない文書のために、 +% 節見出しの番号を算用数字に戻します。 +% \fi +% +% \renewcommand{\thesection}{\arabic{section}} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/platex/base/plcls.ins b/Master/texmf-dist/source/platex/base/plcls.ins new file mode 100644 index 00000000000..6fb7df33108 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plcls.ins @@ -0,0 +1,38 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{ptex/platex/base} + +\Msg{*** Generating the pLaTeX class files ***} + +% +% 横組用クラスファイル +% +\generate{ + \file{jarticle.cls}{\from{jclasses.dtx}{article,yoko}} + \file{jreport.cls}{\from{jclasses.dtx}{report,yoko}} + \file{jbook.cls}{\from{jclasses.dtx}{book,yoko}} + \file{jsize10.clo}{\from{jclasses.dtx}{10pt,yoko}} + \file{jsize11.clo}{\from{jclasses.dtx}{11pt,yoko}} + \file{jsize12.clo}{\from{jclasses.dtx}{12pt,yoko}} + \file{jbk10.clo}{\from{jclasses.dtx}{10pt,bk,yoko}} + \file{jbk11.clo}{\from{jclasses.dtx}{11pt,bk,yoko}} + \file{jbk12.clo}{\from{jclasses.dtx}{12pt,bk,yoko}} +} + +% +% 縦組用クラスファイル +% +\generate{ + \file{tarticle.cls}{\from{jclasses.dtx}{article,tate}} + \file{treport.cls}{\from{jclasses.dtx}{report,tate}} + \file{tbook.cls}{\from{jclasses.dtx}{book,tate}} + \file{tsize10.clo}{\from{jclasses.dtx}{10pt,tate}} + \file{tsize11.clo}{\from{jclasses.dtx}{11pt,tate}} + \file{tsize12.clo}{\from{jclasses.dtx}{12pt,tate}} + \file{tbk10.clo}{\from{jclasses.dtx}{10pt,bk,tate}} + \file{tbk11.clo}{\from{jclasses.dtx}{11pt,bk,tate}} + \file{tbk12.clo}{\from{jclasses.dtx}{12pt,bk,tate}} +} + +\endbatchfile diff --git a/Master/texmf-dist/source/platex/base/plcore.dtx b/Master/texmf-dist/source/platex/base/plcore.dtx new file mode 100644 index 00000000000..3a70c6f64f2 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plcore.dtx @@ -0,0 +1,850 @@ +% \iffalse meta-comment +%% File: plcore.dtx +% +% Copyright 1994-2001 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{879} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1994/09/16}{first edition} +% \changes{v1.1}{1995/04/12}{脚注マクロ修正} +% \changes{v1.1a}{1995/11/10}{\cs{topmargin}が反映されないバグを修正} +% \changes{v1.1b}{1996/01/26}{脚注マークの後ろに余計なスペースが入るのを修正} +% \changes{v1.1c}{1996/01/30}{ファイル名を\file{ploutput.dtx}から +% \file{plcore.dtx}とした。キャプション拡張を\file{plext.dtx}に移動。 +% プリアンブルコマンドを追加} +% \changes{v1.1d}{1996/02/17}{\cs{printglossary}を追加} +% \changes{v1.1e}{1996/03/12}{tabbing環境での和欧文間スペース} +% \changes{v1.1f}{1996/07/10}{トンボまわりを修正} +% \changes{v1.1g}{1997/01/16}{\LaTeX\ \textt{!<1996/06/01!>}に対応} +% \changes{v1.1h}{1997/06/25}{\LaTeX\ の改行マクロの変更に対応} +% \changes{v1.1i}{1998/02/03}{\cs{@shipoutsetup}を\cs{@outputpage}内に入れた} +% \changes{v1.1j}{2001/05/10}{\cs{@makecol}で組み立てられる +% \cs{@outputbox}の大きさが、縦組で中身が空のボックスだけの場合も適正になる +% ように修正} +% \changes{v1.2}{2001/09/04}{本文と\cs{footnoterule}が重なってしまうのを修正} +% \changes{v1.2a}{2001/09/26}{\LaTeX\ \texttt{!<2001/06/01!>}に対応} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{plcore.dtx}[2001/09/26 v1.2a pLaTeX core file] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{plcore.dtx} +\title{p\LaTeXe{}の拡張\space\fileversion} +\author{Ken Nakano \& Hideaki Togashi} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% +% \section{概要}\label{plcore:intro} +% このファイルでは、つぎの機能の拡張や修正を行っています。 +% 詳細は、それぞれの項目の説明を参照してください。 +% +% \begin{itemize} +% \item プリアンブルコマンド +% \item 改ページ +% \item 改行 +% \item オブジェクトの出力順序 +% \item トンボ +% \item 脚注マクロ +% \item 相互参照 +% \item 疑似タイプ入力 +% \item tabbing環境 +% \item 用語集の出力 +% \item 時分を示すカウンタ +% \end{itemize} +% +% +% \section{コード} +% +% このファイルの内容は、p\LaTeXe{}のコア部分です。 +% \begin{macrocode} +%<*plcore> +% \end{macrocode} +% +% \subsection{プリアンブルコマンド} +% 文書ファイルが必要とするフォーマットファイルの指定をするコマンドを +% 拡張子、p\LaTeXe{}フォーマットファイルも認識するようにします。 +% +% \begin{macro}{\NeedsTeXFormat} +% \begin{macro}{\@needsPformat} +% \begin{macro}{\@needsPf@rmat} +% |\NeedsTeXFormats|に``pLaTeX2e''を指定すると、 +% ``LaTeX2e''フォーマットを必要とする英語版のクラスファイルや +% パッケージファイルなどが使えなくなってしまうために再定義します。 +% このコマンドは\file{ltclass.dtx}で定義されています。 +% \begin{macrocode} +\def\NeedsTeXFormat#1{% + \def\reserved@a{#1}% + \ifx\reserved@a\pfmtname + \expandafter\@needsPformat + \else + \ifx\reserved@a\fmtname + \expandafter\expandafter\expandafter\@needsformat + \else + \@latex@error{This file needs format `\reserved@a'% + \MessageBreak but this is `\pfmtname'}{% + The current input file will not be processed + further,\MessageBreak + because it was written for some other flavor of + TeX.\MessageBreak\@ehd}% + \endinput + \fi + \fi} +% +\def\@needsPformat{\@ifnextchar[\@needsPf@rmat{}} +% +\def\@needsPf@rmat[#1]{% + \@ifl@t@r\pfmtversion{#1}{}% + {\@latex@warning@no@line + {You have requested release `#1' of pLaTeX,\MessageBreak + but only release `\pfmtversion' is available}}} +% +\@onlypreamble\@needsPformat +\@onlypreamble\@needsPf@rmat +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\documentstyle} +% |\documentclass|の代わりに|\documentstyle|が使われると、 +% \LaTeX~2.09互換モードに入ります。このとき、 +% オリジナルの\LaTeX{}では\file{latex209.def}を読み込みますが、 +% p\LaTeXe{}では\file{pl209.def}を読み込みます。 +% このコマンドは\file{ltclass.dtx}で定義されています。 +% \begin{macrocode} +\def\documentstyle{% + \makeatletter\input{pl209.def}\makeatother + \documentclass} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{改ページ} +% 縦組のとき、改ページ後の内容が偶数ページ(右ページ)からはじまるようにします。 +% 横組のときには、奇数ページ(右ページ)からはじまります。 +% +% \begin{macro}{\cleardoublepage} +% このコマンドによって出力される、白ページのページスタイルを +% \pstyle{empty}にし、ヘッダとフッタが入らないようにしています。 +% \file{ltoutput.dtx}の定義を、縦組、横組に合わせて、定義しなおしたものです。 +% \begin{macrocode} +\def\cleardoublepage{\clearpage\if@twoside + \ifodd\c@page + \iftdir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \else + \ifydir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \fi\fi} +% \end{macrocode} +% \end{macro} +% +% \subsection{改行} +% \changes{v1.1c}{1995/08/25}{行頭禁則文字の直前での改行での不具合の修正} +% 日本語\TeX{}の行頭禁則処理は、禁則対象文字の直前に、 +% |\prekinsokupenalty|で指定されたペナルティの値を挿入することで +% 行なっています。 +% ところが、改行コマンドは負のペナルティの値を挿入することで改行を行ないます。 +% そのために、禁則ペナルティの値が$10000$の文字の直後では、ペナルティの値が +% 相殺され、改行することができません。 +% +% \begin{verbatim} +% あいうえお\\ +% !かきくけこ +% \end{verbatim} +% +% したがって、|\newline|マクロに|\mbox{}|を入れることによって、 +% |\newline|マクロのペナルティ$-10000$と行頭文字のペナルティ$10000$が +% 加算されないようにします。|\\|は|\newline|マクロを呼び出しています。 +% +% なお、|\newline|マクロは\file{ltspaces.dtx}で定義されています。 +% +% \changes{v1.1j}{1999/04/05}{オプションを付けた場合に、余計な空白 +% が入ってしまうのを修正。ありがとう、鈴木隆志@京都大学さん。} +% \changes{v1.1h}{1997/06/25}{\LaTeX\ の改行マクロの変更に対応。 +% ありがとう、奥村さん。} +% \LaTeX\ \texttt{!<1996/12/01!>}で改行マクロが変更され、|\\|が +% |\newline|を呼び出さなくなったため、変更された改行マクロに対応しまし +% た。|\mbox{}|の挿入位置は同じです。 +% \file{ltspace.dtx}の定義を上記に合わせて、定義しなおしました。 +% \begin{macrocode} +\def\@gnewline #1{% + \ifvmode + \@nolnerr + \else + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \ignorespaces + \fi} +% \end{macrocode} +% +% \subsection{オブジェクトの出力順序} +% オリジナルの\LaTeX{}は、トップフロート、本文、脚注、ボトムフロート +% の順番で出力しますけれども、日本語組版では、トップフロート、本文、 +% ボトムフロート、脚注という順番の方が一般的ですので、 +% このような順番になるよう修正をします。 +% +% したがって、文書ファイルによっては\LaTeX{}の組版結果と異なる場合が +% ありますので、注意をしてください。 +% +% \begin{macro}{\@makecol} +% このマクロが組み立てる部分の中心となります。 +% \file{ltoutput.dtx}で定義されているものです。 +% \begin{macrocode} +\gdef\@makecol{% + \setbox\@outputbox\box\@cclv% + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% +% \boxmaxdepth \@maxdepth % comment out on LaTeX 1997/12/01 + \@texttop + \dimen@ \dp\@outputbox + \unvbox \@outputbox +% \end{macrocode} +% 縦組の際に|\@outputbox|の内容が空のボックスだけの場合に、|\wd\@outputbox|が +% 0ptになってしまい、結果としてフッタの位置がくるってしまっていた。 +% 0の|\hskip|を発生させると|\wd\@outputbox|の値が期待したものとなるので、 +% 縦組の場合はその方法で対処する。 +% \changes{v1.1j}{2001/05/10}{\cs{@makecol}で組み立てられる +% \cs{@outputbox}の大きさが、縦組で中身が空のボックスだけの場合も適正になる +% ように修正} +% \begin{macrocode} + \iftdir\hskip\z@ + \else\vskip -\dimen@\fi + \@textbottom + \ifvoid\footins\else % for pLaTeX + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + \fi + }% + \fi + \global \maxdepth \@maxdepth +} +% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@makespecialcolbox} +% 本文(あるいはボトムフロート)と脚注の間に|\@textbottom|を入れたいので、 +% |\@makespecialcolbox|コマンドも修正をします。 +% やはり、\file{ltoutput.dtx}で定義されているものです。 +% +% このマクロは、|\enlargedthispage|が使われたときに、 +% |\@makecol|マクロから呼び出されます。 +% \begin{macrocode} +%<*plcore|fltrace> +\gdef\@makespecialcolbox{% +%<*trace> + \tr@ce{Krudgeins ht \the\ht\@kludgeins\space + dp \the\dp\@kludgeins\space + wd \the\wd\@kludgeins}% +% + \setbox\@outputbox \vbox {% + \@texttop + \dimen@ \dp\@outputbox + \unvbox\@outputbox + \vskip-\dimen@ + }% + \@tempdima \@colht + \ifdim \wd\@kludgeins>\z@ + \advance \@tempdima -\ht\@outputbox + \advance \@tempdima \pageshrink +%<*trace> + \tr@ce {Natural ht of col: \the\ht\@outputbox}% + \tr@ce {\string \@colht: \the\@colht}% + \tr@ce {Pageshrink added: \the\pageshrink}% + \tr@ce {Hence, space added: \the\@tempdima}% +% + \setbox\@outputbox \vbox to \@colht {% +% \boxmaxdepth \maxdepth + \unvbox\@outputbox + \vskip \@tempdima + \@textbottom +% \end{macrocode} +% つぎの部分がp\LaTeX{}用の修正です。 +% \changes{v1.2}{2001/09/04}{本文と\cs{footnoterule}が重なってしまうのを修正} +% \begin{macrocode} + \ifvoid\footins\else % for pLaTeX + \vskip\skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + \fi + }% + \else + \advance \@tempdima -\ht\@kludgeins +%<*trace> + \tr@ce {Natural ht of col: \the\ht\@outputbox}% + \tr@ce {\string \@colht: \the\@colht}% + \tr@ce {Extra size added: -\the \ht \@kludgeins}% + \tr@ce {Hence, height of inner box: \the\@tempdima}% + \tr@ce {Max? pageshrink available: \the\pageshrink}% +% + \setbox \@outputbox \vbox to \@colht {% + \vbox to \@tempdima {% + \unvbox\@outputbox + \@textbottom +% \end{macrocode} +% つぎの部分がp\LaTeX{}用の修正です。 +% 脚注があれば、ここでそれを出力します。 +% \changes{v1.2}{2001/09/04}{本文と\cs{footnoterule}が重なってしまうのを修正} +% \begin{macrocode} + \ifvoid\footins\else % for pLaTeX + \vskip\skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + \fi + }\vss}% + \fi + {\setbox \@tempboxa \box \@kludgeins}% +} +% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@reinserts} +% このマクロは、|\@specialoutput|マクロから呼び出されます。 +% ボックス|footins|が組み立てられたモードに合わせて +% 縦モードか横モードで|\unvbox|をします。 +% \begin{macrocode} +%<*plcore> +\def\@reinserts{% + \ifvoid\footins\else\insert\footins{% + \iftbox\footins\tate\else\yoko\fi + \unvbox\footins}\fi + \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{トンボ} +% ここではトンボを出力するためのマクロを定義しています。 +% +% \begin{macro}{\iftombow} +% \begin{macro}{\iftombowdate} +% |\iftombow|はトンボを出力するかどうか、|\iftombowdate|はDVIを作成した +% 日付をトンボの脇に出力するかどうかを示すために用います。 +% \begin{macrocode} +\newif\iftombow \tombowfalse +\newif\iftombowdate \tombowdatetrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@tombowwidth} +% |\@tombowwidth|には、トンボ用罫線の太さを指定します。 +% デフォルトは0.1ポイントです。 +% この値を変更し、|\maketombowbox|コマンドを実行することにより、トンボの +% 罫線太さを変更して出力することができます。通常の使い方では、 +% トンボの罫線を変更する必要はありません。DVIをフィルムに面付け出力する +% とき、トンボをつけずに位置はそのままにする必要があるときに、この太さを +% ゼロポイントにします。 +% \begin{macrocode} +\newdimen\@tombowwidth +\setlength{\@tombowwidth}{.1\p@} +% \end{macrocode} +% \end{macro} +% +% トンボ用の罫線を定義します。 +% +% \begin{macro}{\@TL} +% \begin{macro}{\@Tl} +% \begin{macro}{\@TC} +% \begin{macro}{\@TR} +% \begin{macro}{\@Tr} +% |\@TL|と|\@Tl|はページ上部の左側、 +% |\@TC|はページ上部の中央、 +% |\@TR|と|\@Tr|はページ上部の左側のトンボとなるボックスです。 +% \begin{macrocode} +\newbox\@TL\newbox\@Tl +\newbox\@TC +\newbox\@TR\newbox\@Tr +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@BL} +% \begin{macro}{\@Bl} +% \begin{macro}{\@BC} +% \begin{macro}{\@BR} +% \begin{macro}{\@Br} +% |\@BL|と|\@Bl|はページ下部の左側、 +% |\@BC|はページ下部の中央、 +% |\@BR|と|\@Br|はページ下部の左側のトンボとなるボックスです。 +% \begin{macrocode} +\newbox\@BL\newbox\@Bl +\newbox\@BC +\newbox\@BR\newbox\@Br +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@CL} +% \begin{macro}{\@CR} +% |\@CL|はページ左側の中央、|\@CR|はページ右側の中央のトンボとなる +% ボックスです。 +% \begin{macrocode} +\newbox\@CL +\newbox\@CR +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@bannertoken} +% \begin{macro}{\@bannerfont} +% |\@bannertoken|トークンは、トンボの横に出力する文字列を入れます。 +% デフォルトでは何も出力しません。 +% |\@bannerfont|フォントは、その文字列を出力するためのフォントです。 +% 9ポイントのタイプライタ体としています。 +% \changes{v1.1f}{1996/09/03}{Add \cs{@bannerbox}.} +% \begin{macrocode} +\font\@bannerfont=cmtt9 +\newtoks\@bannertoken +\@bannertoken{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\maketombowbox} +% |\maketombow|コマンドは、トンボとなるボックスを作るために用います。 +% このコマンドは、トンボとなるボックスを作るだけで、それらのボックスを +% 出力するのではないことに注意をしてください。 +% \begin{macrocode} +\def\maketombowbox{% + \setbox\@TL\hbox to\z@{\yoko\hss + \vrule width13mm height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ +% \end{macrocode} +% \changes{v1.0f}{1996/07/10}{トンボの横にDVIファイルの作成日を出力する +% ようにした。} +% \changes{v1.0g}{1997/01/23}{作成日の出力をするかどうかをフラグで指定する +% ようにした。} +% \begin{macrocode} + \iftombowdate + \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% + \fi}% + \setbox\@Tl\hbox to\z@{\yoko\hss + \vrule width10mm height\@tombowwidth depth\z@ + \vrule height13mm width\@tombowwidth depth\z@}% + \setbox\@TC\hbox{\yoko + \vrule width10mm height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@}% + \setbox\@TR\hbox to\z@{\yoko + \vrule height10mm width\@tombowwidth depth\z@ + \vrule width13mm height\@tombowwidth depth\z@\hss}% + \setbox\@Tr\hbox to\z@{\yoko + \vrule height13mm width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@\hss}% +% + \setbox\@BL\hbox to\z@{\yoko\hss + \vrule width13mm depth\@tombowwidth height\z@ + \vrule depth10mm width\@tombowwidth height\z@}% + \setbox\@Bl\hbox to\z@{\yoko\hss + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth13mm width\@tombowwidth height\z@}% + \setbox\@BC\hbox{\yoko + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width10mm depth\@tombowwidth height\z@}% + \setbox\@BR\hbox to\z@{\yoko + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width13mm depth\@tombowwidth height\z@\hss}% + \setbox\@Br\hbox to\z@{\yoko + \vrule depth13mm width\@tombowwidth height\z@ + \vrule width10mm depth\@tombowwidth height\z@\hss}% +% + \setbox\@CL\hbox to\z@{\yoko\hss + \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth + \vrule height10mm depth10mm width\@tombowwidth}% + \setbox\@CR\hbox to\z@{\yoko + \vrule height10mm depth10mm width\@tombowwidth + \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@outputtombow} +% |\@outputtombow|コマンドは、トンボを出力するのに用います。 +% \begin{macrocode} +\def\@outputtombow{% + \iftombow + \vbox to\z@{\kern-13mm\relax + \moveleft3mm\vbox to\@@paperheight{% + \hbox to\@@paperwidth{\hskip3mm\relax + \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip3mm}% + \kern-10mm + \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% + \vfill + \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% + \vfill + \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% + \kern-10mm + \hbox to\@@paperwidth{\hskip3mm\relax + \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip3mm}% + }\vss + }% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@paperheight} +% \begin{macro}{\@@paperwidth} +% \begin{macro}{\@@topmargin} +% |\@@pageheight|は、用紙の縦の長さにトンボの長さを加えた長さになります。 +% +% |\@@pagewidth|は、用紙の横の長さにトンボの長さを加えた長さになります。 +% +% |\@@topmargin|は、現在のトップマージンに1インチ加えた長さになります。 +% \begin{macrocode} +\newdimen\@@paperheight +\newdimen\@@paperwidth +\newdimen\@@topmargin +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@shipoutsetup} +% \changes{v1.1i}{1998/02/03}{Command removed} +% |\@outputpage|内に挿入したので削除しました。 +% \end{macro} +% +% \begin{macro}{\@outputpage} +% |\textwidth|と|\textheight|の交換は、|\@shipoutsetup|内では行ないません。 +% なぜなら、|\@shipoutsetup|マクロが実行されるときは、 +% |\shipout|されるvboxの中であり、このときは横組モードですので、 +% つねに|\iftdir|は偽と判断され、縦と横のサイズを交換できないからです。 +% +% なお、この変更をローカルなものにするために、 +% |\begingroup|と|\endgroup|で囲みます。 +% \changes{v1.2a}{2001/09/26}{\LaTeX\ \texttt{!<2001/06/01!>}に対応} +% \begin{macrocode} +\def\@outputpage{% +\begingroup % the \endgroup is put in by \aftergroup + \iftdir + \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@ + \fi + \let \protect \noexpand + \@resetactivechars + \global\let\@@if@newlist\if@newlist + \global\@newlistfalse + \@parboxrestore + \shipout\vbox{\yoko + \set@typeset@protect + \aftergroup\endgroup + \aftergroup\set@typeset@protect +% \end{macrocode} +% \changes{v1.1g}{1998/02/03}{\cs{@shipoutsetup}を\cs{@outputpage}内に入れた} +% ここから|\@shipoutsetup|の内容。 +% \begin{macrocode} + \if@specialpage + \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% + \fi +% \end{macrocode} +% \changes{v1.1c}{1995/02/05}{\cs{oddsidemargin}と\cs{evensidemargin}が +% 逆だったのを修正} +% \begin{macrocode} + \if@twoside + \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot + \iftdir\let\@themargin\evensidemargin + \else\let\@themargin\oddsidemargin\fi + \else \let\@thehead\@evenhead + \let\@thefoot\@evenfoot + \iftdir\let\@themargin\oddsidemargin + \else\let\@themargin\evensidemargin\fi + \fi\fi +% \end{macrocode} +% トンボ出力オプションが指定されている場合、ここで用紙サイズを再設定します。 +% \TeX の加える左と上部の1インチは、トンボの内側に入ります。 +% \changes{v1.1a}{1995/11/10}{\cs{topmargin}が反映されないバグを修正} +% \begin{macrocode} + \@@topmargin\topmargin + \iftombow + \@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax + \@@paperheight\paperheight \advance\@@paperheight 16mm\relax + \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax + \fi + \reset@font + \normalsize + \normalsfcodes + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ +% \end{macrocode} +% ここまでが|\@shipoutsetup|の内容。 +% \begin{macrocode} + \@begindvi + \@outputtombow + \vskip \@@topmargin + \moveright\@themargin\vbox{% + \setbox\@tempboxa \vbox to\headheight{% + \vfil + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thehead}% + \color@endbox + }% %% 22 Feb 87 + \dp\@tempboxa \z@ + \box\@tempboxa + \vskip \headsep + \box\@outputbox + \baselineskip \footskip + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thefoot}% + \color@endbox + }% + }% +% \endgroup now inserted by \aftergroup +% \end{macrocode} +% |\if@newlist|を初期化。 +% \begin{macrocode} + \global\let\if@newlist\@@if@newlist + \global \@colht \textheight + \stepcounter{page}% + \let\firstmark\botmark +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{脚注マクロ} +% 脚注を組み立てる部分のマクロを再定義します。 +% 主な修正点は、縦組モードでの動作の追加です。 +% +% これらのマクロは、\file{ltfloat.dtx}で定義されていたものです。 +% +% \begin{macro}{\thempfn} +% 本文で使われる脚注記号です。 +% +% |\@footnotemark|で縦横の判断をするようにしたため、削除。 +% +% \changes{v1.0a}{1995/04/12}{Removed \texttt{\protect\bslash thempfn}} +% \begin{macrocode} +%\def\thempfn{% +% \ifydir\thefootnote\else\hbox{\yoko\thefootnote}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thempfootnote} +% minipage環境で使われる脚注記号です。 +% +% \changes{v1.0a}{1995/04/12}{Removed \texttt{\protect\bslash thempfootnote}} +% \begin{macrocode} +%\def\thempfootnote{% +% \ifydir\alph{mpfootnote}\else\hbox{\yoko\alph{mpfootnote}}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefnmark} +% 脚注記号を作成するマクロです。 +% +% \changes{v1.0a}{1995/04/12}{縦組でも上付き数字を使うように修正} +% \changes{v1.1b}{1996/01/26}{脚注マークの後ろに余計なスペースが入るのを修正} +% \changes{v1.1g}{1997/02/14}{縦組時に脚注マークの書体が正しくないのを修正} +% \begin{macrocode} +\renewcommand\@makefnmark{\hbox{% + \ifydir \@textsuperscript{\normalfont\@thefnmark}% + \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotetext} +% インサートボックス|\footins|に脚注のテキストを入れます。 +% +% \changes{v1.0a}{1995/04/07}{組方向の判定をボックスの外でするようにした} +% \begin{macrocode} +\long\def\@footnotetext#1{% + \ifydir\def\@tempa{\yoko}\else\def\@tempa{\tate}\fi + \insert\footins{\@tempa% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotemark} +% \changes{v1.0a}{1995/04/12}{脚注記号の出力位置の調整} +% \changes{v1.1g}{1997/02/14}{縦組時の位置調整を2\cs{ch}から.9zhに変更} +% 脚注記号を出力します。 +% \begin{macrocode} +\def\@footnotemark{\leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \ifydir\@makefnmark + \else\hbox to\z@{\hskip-.25zw\raise.9zh\@makefnmark\hss}\fi + \ifhmode\spacefactor\@x@sf\fi\relax} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{相互参照} +% +% \begin{macro}{\@setref} +% \changes{v1.1c}{1995/09/07}{change \cs{null} to \cs{relax} in \cs{@setref}.} +% |\ref|コマンドや|\pageref|コマンドで参照したとき、これらのコマンドに +% よって出力された番号と続く2バイト文字との間に|\xkanjiskip|が入りません。 +% これは、|\null|が|\hbox{}|と定義されているためです。 +% そこで|\null|を取り除きます。 +% このコマンドは、\file{ltxref.dtx}で定義されているものです。 +% \begin{macrocode} +\def\@setref#1#2#3{% + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{Reference `#3' on page \thepage \space + undefined}% + \else + \expandafter#2#1\relax% change \null to \relax + \fi} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{疑似タイプ入力} +% +% \begin{macro}{\verb} +% \changes{v1.1b}{1995/04/05}{互換モードのときは、pl209.defの定義を使う} +% \changes{v1.1g}{1997/01/16} +% {\cs{verb}コマンドを\LaTeX\ \texttt{!<1996/06/01!>}に合わせて修正} +% \LaTeX{}の|\verb|コマンドでは、数式モードでないときは、 +% |\leavevmode|で水平モードに入ったあと、|\null|を出力しています。 +% マクロ|\null|は|\hbox{}|として定義されていますので、 +% ここには和欧文間スペース(|\xkanjiskip|)が入りません。 +% そこで、|\null|を出力しないようマクロを修正します。 +% このマクロは、\file{ltmiscen.dtx}で定義されています。 +% \begin{macrocode} +\if@compatibility\else +\def\verb{\relax\ifmmode\hbox\else\leavevmode\fi + \bgroup + \verb@eol@error \let\do\@makeother \dospecials + \verbatim@font\@noligs + \@ifstar\@sverb\@verb} +\fi +% \end{macrocode} +% \end{macro} +% +% +% \subsection{tabbing環境} +% \changes{v1.1d}{1996/03/12}{\cs{=}の後ろに和欧文間スペースが入るのを修正} +% 相互参照や疑似タイプ入力では、和欧文間スペースが入らないので、|\null|を +% 取り除きましたが、|tabbing|環境では、逆に|\null|がないため、 +% 和欧文間スペースが入ってしまうので、それを追加します。 +% \file{lttab.dtx}で定義されているものです。 +% \begin{macrocode} +\gdef\@stopfield{\null\color@endgroup\egroup} +% \end{macrocode} +% +% \subsection{用語集の出力} +% \LaTeX{}には、なぜか用語集を出力するためのコマンドがありませんので、 +% 追加をします。 +% \changes{v1.1e}{1996/02/17}{\cs{printglossary}を追加} +% +% \begin{macro}{\printglossary} +% \cs{printglossary}コマンドは、単に拡張子が\texttt{gls}のファイルを +% 読み込むだけです。このファイルの生成には、mendexなどを用います。 +% \begin{macrocode} +\newcommand\printglossary{\@input@{\jobname.gls}} +% \end{macrocode} +% \end{macro} +% +% \subsection{時分を示すカウンタ} +% \TeX には、年月日を示す数値を保持しているカウンタとして、それぞれ +% |\year|, |\month|, |\day|がプリミティブとして存在します。しかし、 +% 時分については、深夜の零時からの経過時間を示す|\time|カウンタしか存在 +% していません。そこで、p\LaTeXe{}では、時分を示すためのカウンタ|\hour|と +% |\minute|を作成しています。 +% +% \begin{macro}{\hour} +% \begin{macro}{\minute} +% 何時か(|\hour|)を得るには、|\time|を60で割った商をそのまま用います。 +% 何分か(|\minute|)は、|\hour|に60を掛けた値を|\time|から引いて算出します。 +% ここではカウンタを宣言するだけです。実際の計算は、クラスやパッケージの中 +% で行なっています。 +% \begin{macrocode} +\newcount\hour +\newcount\minute +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/platex/base/plcore.ins b/Master/texmf-dist/source/platex/base/plcore.ins new file mode 100644 index 00000000000..0d02334c20c --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plcore.ins @@ -0,0 +1,60 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% pLaTeX or pTeX. +%% +%% Copyright 1994,1995,1996,1997 ASCII Corporation. +%% +%% This file is part of the pLaTeX2e system. +%% ----------------------------------------- +%% +%% +\let\documentclass\undefined +\input ltdirchk.dtx +\input docstrip.dtx + +{ +\def\ProvidesFile#1\end#2{} +\def\everyjob#1\endinput{} +\@@input ltvers.dtx +\Msg{**********************************************} +\Msg{*} +\Msg{* Welcome to the Installation routine of} +\Msg{*} +\Msg{* pLaTex2e\space<1997/02/01>} +\Msg{* \space\space based on \fmtname\space <\fmtversion>} +\Msg{*} +\Msg{* Depending on your machine the installation} +\Msg{* might take a long time --- this is the} +\Msg{* price for being able to run on all platforms.} +\Msg{* So please be patient :-)} +\Msg{*} +\Msg{**********************************************} +\Msg{} +\Msg{} +} + +\askonceonly +\keepsilent + +\Msg{*** Generating the pLaTeX files ***} + +\batchinput{plfmt.ins} + +\batchinput{plcls.ins} + +\batchinput{pl209.ins} + +\batchinput{pldocs.ins} + +\batchinput{nidanfloat.ins} + +\Msg{} +\Msg{***********************************************************} +\Msg{*} +\Msg{* Now run INIPTEX on platex.ltx} +\Msg{*} +\Msg{***********************************************************} +\Msg{} + +\endbatchfile diff --git a/Master/texmf-dist/source/platex/base/pldoc.tex b/Master/texmf-dist/source/platex/base/pldoc.tex new file mode 100644 index 00000000000..89382b4e28f --- /dev/null +++ b/Master/texmf-dist/source/platex/base/pldoc.tex @@ -0,0 +1,182 @@ +%% +%% This is file `pldoc.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% platex.dtx (with options: `pldoc') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from pldoc.tex. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file platex.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: platex.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\begin{filecontents}{pldoc.dic} +西暦 せいれき +和暦 われき +\end{filecontents} +\documentclass{jltxdoc} +\usepackage{plext} +\listfiles + +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\if,\ifnum,\ifdim,\ifcat,\ifmmode,\ifvmode,\ifhmode,% + \iftrue,\iffalse,\ifvoid,\ifx,\ifeof,\ifcase,\else,\or,\fi} +\DoNotIndex{\box,\copy,\setbox,\unvbox,\unhbox,\hbox,% + \vbox,\vtop,\vcenter} +\DoNotIndex{\@empty,\immediate,\write} +\DoNotIndex{\egroup,\bgroup,\expandafter,\begingroup,\endgroup} +\DoNotIndex{\divide,\advance,\multiply,\count,\dimen} +\DoNotIndex{\relax,\space,\string} +\DoNotIndex{\csname,\endcsname,\@spaces,\openin,\openout,% + \closein,\closeout} +\DoNotIndex{\catcode,\endinput} +\DoNotIndex{\jobname,\message,\read,\the,\m@ne,\noexpand} +\DoNotIndex{\hsize,\vsize,\hskip,\vskip,\kern,\hfil,\hfill,\hss,\vss,\unskip} +\DoNotIndex{\m@ne,\z@,\z@skip,\@ne,\tw@,\p@,\@minus,\@plus} +\DoNotIndex{\dp,\wd,\ht,\setlength,\addtolength} +\DoNotIndex{\newcommand, \renewcommand} + +\IndexPrologue{\part*{索 引}% + \markboth{索 引}{索 引}% + \addcontentsline{toc}{part}{索 引}% +イタリック体の数字は、その項目が説明されているページを示しています。 +下線の引かれた数字は、定義されているページを示しています。 +その他の数字は、その項目が使われているページを示しています。} +\GlossaryPrologue{\part*{変更履歴}% + \markboth{変更履歴}{変更履歴}% + \addcontentsline{toc}{part}{変更履歴}} + +\makeatletter +\def\changes@#1#2#3{% + \let\protect\@unexpandable@protect + \edef\@tempa{\noexpand\glossary{#2\space\currentfile\space#1\levelchar + \ifx\saved@macroname\@empty + \space\actualchar\generalname + \else + \expandafter\@gobble + \saved@macroname\actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar + \fi + :\levelchar #3}}% + \@tempa\endgroup\@esphack} +\makeatother +\RecordChanges +\CodelineIndex +\EnableCrossrefs +\setcounter{IndexColumns}{2} +\settowidth\MacroIndent{\ttfamily\scriptsize 000\ } +\begin{document} + \title{The p\LaTeXe\ Sources} + \author{Ken Nakano} + +\newcommand{\includeltpatch}{% + \def\currentfile{plpatch.ltx} + \part{plpatch} + {\let\ttfamily\relax + \xdef\filekey{\filekey, \thepart={\ttfamily\currentfile}}}% + Things we did wrong\ldots + \IndexInput{plpatch.ltx}} + +\makeatletter +\let\patchdate=\@empty +\begingroup + \def\ProvidesFile#1\pfmtversion#2{\date{#2}\endinput} + \input{plvers.dtx} +\global\let\X@date=\@date + + \long\def\Xdef#1#2#3\def#4#5{% + \xdef\X@date{#2}% + \xdef\patchdate{#5}% + \endinput}% + \InputIfFileExists{plpatch.ltx} + {\let\def\Xdef}{\global\let\includeltpatch\relax} +\endgroup + +\ifx\@date\X@date + \def\Xpatch{0} + \ifx\patchdate\Xpatch\else + \edef\@date{\@date\space Patch level\patchdate} + \fi +\else + \@warning{plpatch.ltx does not match plvers.dtx!} + \let\includeltpatch\relax +\fi +\makeatother + +\pagenumbering{roman} +\maketitle +\renewcommand\maketitle{} +\tableofcontents +\clearpage +\pagenumbering{arabic} + +\DocInclude{plvers} % pLaTeX version + +\DocInclude{plfonts} % NFSS2 commands + +\DocInclude{plcore} % kernel commands + +\DocInclude{plext} % external commands + +\DocInclude{pl209} % 2.09 compatibility mode commands + +\DocInclude{kinsoku} % kinsoku parameter + +\DocInclude{jclasses} % Standard class + +\DocInclude{jltxdoc} % dtx documents class + +\includeltpatch % patch file + +\StopEventually{\end{document}} + +\clearpage +\pagestyle{headings} +\hbadness=10000 +\newcount\hbadness +\hfuzz=\maxdimen +\PrintChanges +\clearpage +\begingroup + \def\endash{--} + \catcode`\-\active + \def-{\futurelet\temp\indexdash} + \def\indexdash{\ifx\temp-\endash\fi} + + \PrintIndex +\endgroup +\let\PrintChanges\relax +\let\PrintIndex\relax +\end{document} +\endinput +%% +%% End of file `pldoc.tex'. diff --git a/Master/texmf-dist/source/platex/base/pldocs.ins b/Master/texmf-dist/source/platex/base/pldocs.ins new file mode 100644 index 00000000000..828c892296d --- /dev/null +++ b/Master/texmf-dist/source/platex/base/pldocs.ins @@ -0,0 +1,14 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{ptex/platex/base} + +\Msg{*** Generating the pLaTeX files for making the documents ***} + +\generate{ + \file{jltxdoc.cls}{\from{jltxdoc.dtx}{class}} + \file{pldoc.tex}{\from{platex.dtx}{pldoc}} + \file{Xins.ins}{\from{platex.dtx}{Xins}} +} + +\endbatchfile diff --git a/Master/texmf-dist/source/platex/base/plext.dtx b/Master/texmf-dist/source/platex/base/plext.dtx new file mode 100644 index 00000000000..71884ad2dc2 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plext.dtx @@ -0,0 +1,1238 @@ +% \iffalse meta-comment +%% File: plext.dtx +% +% Copyright 2001 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{1845} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1994/09/16}{first edition} +% \changes{v1.1a}{1995/03/11}{縦組マクロ実装} +% \changes{v1.1b}{1995/04/01}{互換モード部分を別ファイルに移動} +% \changes{v1.1c}{1995/08/25}{\cs{newline}, \cs{strut}の修正} +% \changes{v1.1d}{1995/11/10}{オリジナルとのコマンド名バッティングをやめた} +% \changes{v1.1d}{1995/11/21}{\cs{Rensuji}, \cs{prensuji}を作成} +% \changes{v1.1e}{1995/11/21}{プリアンブルコマンドを\file{plcore}に移動} +% \changes{v1.1f}{1996/01/09}{縦組に依存しないコマンドを分離し、このファイルを +% 拡張パッケージとした} +% \changes{v1.1g}{1996/01/12}{minipage環境の中で\cs{parbox}を回転オプション +% 付きで使用するとエラーとなるバグを修正} +% \changes{v1.1h}{1996/01/30}{キャプション拡張マクロを追加} +% \changes{v1.1i}{2001/05/10}{縦組でzを指定するとエラーになるのを修正。 +% ありがとう、大石さん} +% \changes{v1.2}{2001/09/26}{タグ名をplcoreからpackageに変更した} +% \fi +% +% \iffalse +%\NeedsTeXFormat{pLaTeX2e} +%\ProvidesPackage{plext} +\ProvidesFile{plext.dtx} + [2001/09/26 v1.2 pLaTeX package file] +%<*driver> +\documentclass{jltxdoc} +\usepackage{plext} +\GetFileInfo{plext.dtx} +\title{p\LaTeXe{}拡張パッケージ\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% +% \section{概要}\label{plext:intro} +% このパッケージは、以下の項目に関する機能を拡張するものです。 +% +% \begin{itemize} +% \item 表組環境 +% \item フロートとキャプションの出力位置 +% \item 段落ボックス環境 +% \item 作図環境 +% \item 連数字、漢数字、傍点、下線 +% \item 参照番号 +% \end{itemize} +% +% このパッケージは縦組用クラス(tarticle, tbook, treport)のときには、 +% 自動的に読み込まれます。横組用クラス(jarticle, jbook, jreport)で +% 拡張機能を使いたい場合は、文書ファイルのプリアンブルに以下の一行を +% 記述してください。 +% +% \begin{verbatim} +% \usepackage{plext} +% \end{verbatim} +% +% \section{組方向オプションについて} +% つぎの環境やコマンドは、組方向オプションが追加され、拡張されています。 +% +% \begin{itemize} +% \item tabular環境、array環境 +% \item |\layoutcaption|コマンド +% \item minipage環境、|\parbox|コマンド、|\pbox|コマンド +% \item picture環境 +% \end{itemize} +% +% 組方向オプションは、コマンド名や環境の後ろで|<|と|>|で囲って、 +% ``y'', ``t'', ``z''のいずれかを指定します。 +% それぞれのオプションの意味はつぎのとおりです。 +% デフォルトの組み方向は、横組のときは``y''、縦組のときは``t''です。 +% +% \medskip +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{c|l} +% \emph{オプション} & \emph{意味}\\\hline +% \texttt{y}& 横組で出力(横組モードでは何もしない)\\ +% \texttt{t}& 縦組で出力(縦組モードでは何もしない)\\ +% \texttt{z}& 90度回転して出力(横組モードでは何もしない)\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% 組方向オプションを用いたサンプルを図\ref{fig:diroption}に示します。 +% 左から、``y'', ``t'', ``z''オプションを指定してあります。 +% +% \begin{figure}[htb] +% \begin{small} +% \begin{tsample}{10zw} +% \vfil +% \parbox{10zw}{たとえば、これはいったい何、いったいどうして、 +% などと思えるようなことが世の中にはたくさんあります!}\par +% \vfil +% \parbox{10zw}{たとえば、これはいったい何、いったいどうして、 +% などと思えるようなことが世の中にはたくさんあります?}\par +% \vfil +% \parbox{10zw}{たとえば、これはいったい何、いったいどうして、 +% などと思えるようなことが世の中にはたくさんあります。} +% \vfil +% \end{tsample} +% \end{small} +% \caption{組方向オプションの使用例\label{fig:diroption}} +% \end{figure} +% +% +% \section{コード} +% +% \begin{macro}{\if@rotsw} +% このスイッチは、縦組モードで90度回転させるかどうかを示すのに使います。 +% \begin{macrocode} +%<*package> +\newif\if@rotsw +% \end{macrocode} +% \end{macro} +% +% +% \subsection{表組環境} +% tabular環境とarray環境は、組方向を指定するオプションを追加しました。 +% これらのコマンドは、\file{lttab.dtx}で定義されています。 +% +% \begin{macro}{\array} +% \begin{macro}{\tabular} +% \begin{macro}{\tabular*} +% array環境とtabular環境を開始するコマンドです。 +% tabular環境にはアスタリスク形式があります。 +% \begin{macrocode} +\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz + \let\@classiv\@arrayclassiv + \let\\\@arraycr\let\@halignto\@empty\X@tabarray} +% +\def\tabular{\let\@halignto\@empty\X@tabular} +\@namedef{tabular*}{\@ifnextchar<%> + {\@stabular}{\@stabular}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\X@tabarray} +% \begin{macro}{\X@tabular} +% 組方向オプションを調べます。 +% \changes{v1.1c}{1995/08/11}{\cs{tabarray}のタイプミス修正} +% \changes{v1.1d}{1995/11/10}{\cs{@tabarray} to \cs{p@tabarray}} +% \changes{v1.1d}{1995/11/10}{\cs{@tabular} to \cs{p@tabular}} +% \begin{macrocode} +\def\X@tabarray{\@ifnextchar<%> + {\p@tabarray}{\p@tabarray}} +\def\X@tabular{\@ifnextchar<%> + {\p@tabular}{\p@tabular}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@stabular} +% \begin{macro}{\p@tabular} +% アスタリスク形式の場合は、組方向オプションの後ろに幅を指定します。 +% \changes{v1.1d}{1995/11/10}{\cs{@tabular} to \cs{p@tabular}} +% \begin{macrocode} +\def\@stabular<#1>#2{\def\@halignto{to#2}\p@tabular<#1>} +\def\p@tabular<#1>{\leavevmode \hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv \let\\\@tabularcr\p@tabarray<#1>} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\p@tabarray} +% 位置オプションを調べます。 +% \changes{v1.1d}{1995/11/10}{\cs{@tabarray} to \cs{p@tabarray}} +% \begin{macrocode} +\def\p@tabarray<#1>{\m@th\@ifnextchar[%] + {\p@array<#1>}{\p@array<#1>[c]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\p@array} +% tabular環境とarray環境の内部形式です。 +% \changes{v1.1d}{1995/11/10}{\cs{@array} to \cs{p@array}} +% \begin{macrocode} +\def\p@array<#1>[#2]#3{\setbox\@arstrutbox\hbox{% + \iftdir + \if #1y\relax\yoko + \vrule\@height\arraystretch\ht\strutbox + \@depth\arraystretch\dp\strutbox \@width\z@ + \else\if #1z\relax\@rotswtrue + \vrule\@height\arraystretch\ht\zstrutbox + \@depth\arraystretch\dp\zstrutbox \@width\z@ + \else + \vrule\@height\arraystretch\ht\tstrutbox + \@depth\arraystretch\dp\tstrutbox \@width\z@ + \fi\fi + \else + \if #1t\relax\hbox{\tate + \vrule\@height\arraystretch\ht\tstrutbox + \@depth\arraystretch\dp\tstrutbox \@width\z@}% + \else + \vrule\@height\arraystretch\ht\strutbox + \@depth\arraystretch\dp\strutbox \@width\z@ + \fi + \fi}% + \fork@array@option<#1>[#2]% + \@mkpream{#3}\edef\@preamble{\ialign \noexpand\@halignto + \bgroup \tabskip\z@skip \@arstrut \@preamble \tabskip\z@skip \cr}% + \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox + \let\tabularnewline\\% +% \end{macrocode} +% \changes{v1.1c}{1995/09/11}{Add \cs{adjustbaseline}.} +% \begin{macrocode} + \@begin@alignbox\bgroup\box@dir\adjustbaseline + \let\par\@empty + \let\@sharp##\let\protect\relax + \lineskip\z@skip\baselineskip\z@skip\@preamble} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endarray} +% \begin{macro}{\endtabular} +% array環境とtabular環境の終了コマンドです。 +% |\@end@alignbox|は|\p@array|から呼び出される|\fork@array@option|によって +% 設定されます。 +% \begin{macrocode} +\def\endarray{\crcr\egroup\egroup\@end@alignbox} +\def\endtabular{\crcr\egroup\egroup\@end@alignbox $\egroup} +\expandafter \let \csname endtabular*\endcsname = \endtabular +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\fork@array@option} +% array環境とtabular環境で与えられた +% 第一引数と第二引数の組合せの分岐を行ないます。 +% \begin{macrocode} +\def\fork@array@option<#1>[#2]{% +\@rotswfalse +% \end{macrocode} +% 縦組モードのとき: +% \begin{macrocode} +\iftdir +\if #1y\relax\let\box@dir\yoko + \if #2t\relax + \def\@begin@alignbox{\raise\cdp\vtop\bgroup\kern\z@\vbox}% + \let\@end@alignbox\egroup + \else\if #2b\relax + \def\@begin@alignbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\else\if #1z\relax\let\box@dir\relax\@rotswtrue + \if #2t\relax + \def\@begin@alignbox{\raise\cdp\vtop\bgroup\kern\z@\vbox}% + \let\@end@alignbox\egroup + \else\if #2b\relax + \def\@begin@alignbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\else\let\box@dir\tate + \if #2t\relax + \def\@begin@alignbox{\raise\cdp\vtop}% + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\fi\fi +% \end{macrocode} +% 横組モードのとき: +% \begin{macrocode} +\else +\if #1t\relax\let\box@dir\tate + \if #2t\relax + \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% + \let\@end@alignbox\egroup + \else\if #2b\relax + \def\@begin@alignbox{\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\else\let\box@dir\yoko + \if #2t\relax + \def\@begin@alignbox{\raise\cdp\vtop}% + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{フロートとキャプションの出力位置} +% キャプションとフロートは、 +% 出力位置の指定や大きさの指定などができるように拡張しています。 +% 詳細は、『日本語\LaTeXe{}ブック』を参照してください。 +% +% |\layoutfloat|コマンドで作られるボックスです。 +% \begin{macrocode} +\newbox\@floatbox +% \end{macrocode} +% フロートオブジェクトの幅と高さです。 +% \begin{macrocode} +\newdimen\floatwidth +\newdimen\floatheight +% \end{macrocode} +% フロートオブジェクトのまわりに引かれる罫線の太さです。 +% \begin{macrocode} +\newdimen\floatruletick \floatruletick=0.4pt +% \end{macrocode} +% フロートオブジェクトとキャプションの間のアキです。 +% \begin{macrocode} +\newdimen\captionfloatsep \captionfloatsep=10pt +% \end{macrocode} +% |\caption@dir|には、キャプションを組む方向を示すオプションが格納されます。 +% |\captiondir|は|\caption@dir|の値と現在の組み方向によって、 +% |\yoko|, |\tate|, |\relax|のいずれかに設定されます。 +% \begin{macrocode} +\def\caption@dir{Z} +\let\captiondir\relax +% \end{macrocode} +% キャプションの幅です。 +% \begin{macrocode} +\newdimen\captionwidth \captionwidth\z@ +% \end{macrocode} +% キャプションを付ける位置を指定します。 +% \begin{macrocode} +\def\caption@posa{Z} +\def\caption@posb{Z} +% \end{macrocode} +% 組み立てられたキャプションが格納されるボックスです。 +% \begin{macrocode} +\newbox\@captionbox +% \end{macrocode} +% キャプションに使われる文字です。 +% \begin{macrocode} +\def\captionfontsetup{\normalfont\normalsize} +% \end{macrocode} +% +% \begin{macro}{\layoutfloat} +% \begin{macro}{\X@layoutfloat} +% \begin{macro}{\@layoutfloat} +% |\layoutfloat|は図表類の大きさと位置を指定するのに使います。 +% 大きさを省略するか、負の値を指定すると、 +% そのオブジェクトの自然な長さになります。このときは、罫が引かれません。 +% 正の大きさを指定すると、|\floatruletick|の太さの罫で囲まれます。 +% +% 位置指定を省略した場合、中央揃えになるようにしています。 +% \begin{macrocode} +\def\layoutfloat{\@ifnextchar(%) + {\X@layoutfloat}{\X@layoutfloat(-5\p@,-5\p@)}} +% +\def\X@layoutfloat(#1,#2){\@ifnextchar[%] + {\@layoutfloat(#1,#2)}{\@layoutfloat(#1,#2)[c]}} +% +\long\def\@layoutfloat(#1,#2)[#3]#4{% + \setbox\z@\hbox{#4}% + \floatwidth=#1 \floatheight=#2 \edef\float@pos{#3}% + \ifdim\floatwidth<\z@ + \floatwidth\wd\z@\floatruletick\z@ + \fi + \ifdim\floatheight<\z@ + \floatheight\ht\z@\advance\floatheight\dp\z@\relax + \floatruletick\z@ + \fi + \setbox\@floatbox\vbox to\floatheight{\offinterlineskip + \hrule width\floatwidth height\floatruletick depth\z@ + \vss\hbox to\floatwidth{% + \vrule width\floatruletick height\floatheight depth\z@ + \hss\vbox to\floatheight{\hsize\floatwidth\vss#4\vss}\hss + \vrule width\floatruletick height\floatheight depth\z@ + }\hrule width\floatwidth height\floatruletick depth\z@}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DeclareLayoutCaption} +% |\DeclareLayoutCaption|コマンドは、キャプションの組方向、付ける位置や幅の +% デフォルトをフロートのタイプごとに設定することができます。 +% このコマンドでデフォルト値が設定されていないと、 +% |\pcaption|コマンドでエラーが発せられます。 +% このコマンドはプリアンブルでのみ、使用できます。 +% +% \DescribeMacro\DeclareLayoutCaption +% |\DeclareLayoutCaption|\meta{type}^^A +% |<|\meta{dir}|>(|\meta{width}|)[|\meta{pos1}\meta{pos2}|]| +% +% コマンド引数を省略することはできません。 +% \meta{dir}には、`|y|', `|t|', `|z|', `|n|'のいずれかを指定します。 +% `|n|'と指定をすると、本文の組み方向と同じ方向でキャプションが組まれます。 +% これがデフォルトです。 +% +% \meta{width}には、キャプションを折り返す長さを指定します。 +% `|(12zw)|'と指定をすると、漢字12文字分の長さで折り返されます。 +% `|(\floatwidth)|'と指定をすると、 +% キャプションの幅はフロートオブジェクトの幅となります。 +% これがデフォルトです。なお、`|(\floatheigt)|'と指定をすると、 +% キャプションの幅はフロートオブジェクトの高さとなります。 +% +% \meta{pos1}と\meta{pos2}には、キャプションを出力する位置を指定します。 +% \meta{pos1}は、`|c|', `|t|', `|b|'のいずれかです。 +% \meta{pos2}は、`|u|', `|d|', `|l|', `|r|'のいずれかです。 +% デフォルトは、|figure|タイプが`|cd|'、|table|タイプは`|cu|'です。 +% \begin{macrocode} +\def\DeclareLayoutCaption#1<#2>(#3)[#4#5]{% + \expandafter + \ifx\csname #1@layoutcaption\endcsname\relax \else + \@latex@info{Redeclaring capiton layout setting of '#1'}% + \fi + \expandafter + \gdef\csname #1@layoutcaption\endcsname{% + \if Z\caption@dir\def\caption@dir{#2}\fi + \ifdim\captionwidth=\z@ \captionwidth=#3\relax\fi + \if Z\caption@posa\def\caption@posa{#4}\fi + \if Z\caption@posb\def\caption@posb{#5}\fi}} +\@onlypreamble\DeclareLayoutCaption +% \end{macrocode} +% \changes{v1.0h}{1996/03/13}{キャプション出力位置の初期値を設定} +% \begin{macrocode} +\DeclareLayoutCaption{figure}(.8\linewidth)[cd] +\DeclareLayoutCaption{table}(.8\linewidth)[cu] +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\layoutcaption} +% \begin{macro}{\X@layoutcaption} +% \begin{macro}{\@ilayoutcaption} +% \begin{macro}{\@iilayoutcaption} +% |\DeclareLayoutCaption|コマンドで設定をした、デフォルト値とは異なる設定で +% 組みたい場合は、|\layoutcaption|コマンドを使用します。 +% +% |\layoutcaption<|\meta{dir}|>(|\meta{width}|)[|\meta{pos}|]| +% +% なお、|\layoutcaption|に組み方向オプションを付けましたので、 +% |\captiondir|で組み方向を指定する必要はありません。 +% また、|\captiondir|で指定をしても、その値は無視されます。 +% \begin{macrocode} +\def\layoutcaption{\def\caption@dir{Z}\captionwidth\z@ + \def\caption@posa{Z}\def\caption@posb{Z}% + \@ifnextchar<\X@layoutcaption{% + \@ifnextchar(\@ilayoutcaption{% + \@ifnextchar[\@iilayoutcaption\relax}}} +% +\def\X@layoutcaption<#1>{\def\caption@dir{#1}% + \@ifnextchar(\@ilayoutcaption{% + \@ifnextchar[\@iilayoutcaption\relax}} +% +\def\@ilayoutcaption(#1){\setlength\captionwidth{#1}% + \@ifnextchar[{\@iilayoutcaption}{\relax}} +% +\def\@iilayoutcaption[#1#2]{% + \def\caption@posa{#1}\def\caption@posb{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\pcaption} +% \begin{macro}{\@pcaption} +% キャプションを図表類の天地左右の指定箇所に付けるには|\pcaption|コマンドで +% 指定をします。位置の指定は|\layoutcaption|コマンドで行ないます。 +% |\layoutcaption|コマンドが省略された場合は、|\DeclareLayoutCaption|コマンド +% で設定されているデフォルト値が使われます。 +% \begin{macrocode} +\def\pcaption{\refstepcounter\@captype \@dblarg{\@pcaption\@captype}} +% +\long\def\@pcaption#1[#2]#3{% + \addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces#2}}% + \ifvoid\@floatbox + \latex@error{Use with `\protect\layoutfloat'.}\@eha + \fi + \make@pcaptionbox{#3}% + \@pboxswfalse + \setbox\@tempboxa\vbox{\hbox to\hsize{\if l\float@pos\else\hss\fi + \if l\caption@posb\box\@captionbox\kern\captionfloatsep\fi + \if t\caption@posa\vtop + \else\if b\caption@posa\vbox + \else\ifmmode\vcenter \else\@pboxswtrue $\vcenter \fi\fi\fi + {\if u\caption@posb\box\@captionbox\kern\captionfloatsep\fi + \unvbox\@floatbox + \if d\caption@posb\kern\captionfloatsep\box\@captionbox\fi}% + \if r\caption@posb\kern\captionfloatsep\box\@captionbox\fi + \if@pboxsw \m@th$\fi \if r\float@pos\else\hss\fi}}% + \par\vskip.25\baselineskip + \box\@tempboxa} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\make@pcaptionbox} +% キャプションを組み立て、|\@captionbox|を作成します。 +% \begin{macrocode} +\def\make@pcaptionbox#1{% +% \end{macrocode} +% まず、デフォルトの設定がされているかを確認します。 +% 設定されていない場合は、警告メッセージを出力し、 +% 現在の組モードでのデフォルト値を使用します。 +% 設定されていれば、そのデフォルト値にします。 +% +% \changes{v1.1h}{1996/03/13}{typo: \cs{@latex@warning}.} +% \begin{macrocode} + \expandafter + \ifx\csname\@captype @layoutcaption\endcsname\relax + \@latex@warning{Default caption layout of `\@captype' unknown.}% + \def\caption@dir{Z}\captionwidth\z@ + \def\caption@posa{Z}\def\caption@posb{Z}% + \else + \csname \@captype @layoutcaption\endcsname + \fi +% \end{macrocode} +% 次に、組み方向を設定します。 +% 基本組の組み方向とキャプションの組み方向を変える場合には、 +% |\@tempswa|を真とします。文字を回転させるときは|\@rotsw|を真にします。 +% \begin{macrocode} + \@rotswfalse \@tempswafalse + \iftdir\if y\caption@dir \let\captiondir\yoko \@tempswatrue + \else\if z\caption@dir \let\captiondir\relax \@rotswtrue + \else\let\captiondir\tate\fi\fi + \else\if t\caption@dir\let\captiondir\tate \@tempswatrue + \else\let\captiondir\yoko\fi + \fi +% \end{macrocode} +% キャプションを組み立てる前に、まず、キャプション文字列がどの程度の長さを +% 持っているのかを確認するために、|\hbox|に入れます。 +% \begin{macrocode} + \setbox0\hbox{\if@rotsw $\fi\hbox{\captiondir + \captionfontsetup\parindent\z@\inhibitglue + \csname fnum@\@captype\endcsname\char\euc"A1A1\relax#1}% + \if@rotsw \m@th$\fi}% +% \end{macrocode} +% キャプションの幅に合わせるため、再び、ボックスを組み立てます。 +% +% キャプションを折り返さなくてもよい場合、|\@tempdima|をキャプションの長さに +% します。ただし、キャプションの組み方向が基本組の組み方向と異なる場合 +% (|\@tempswa|が真)は、ボックス0の幅ではなく、高さに設定をします。 +% |\captionwidth|の値が、キャプションの幅よりも長い場合、 +% 折り返さなくてはなりませんので、|\@tempdima|を|\captionwidth|にします。 +% \begin{macrocode} + \if@tempswa \@tempdima\ht0 \else\@tempdima\wd0 \fi + \ifdim\@tempdima>\captionwidth \@tempdima\captionwidth \fi + \@pboxswfalse + \setbox0\hbox{\if@rotsw\ifmmode\@rotswfalse \else $\fi\fi + \if u\caption@posb\vbox + \else\if d\caption@posb\vbox + \else\if t\caption@posa\vtop + \else\if b\caption@posa\vbox + \else\ifmmode\vcenter\else\@pboxswtrue $\vcenter\fi + \fi\fi\fi\fi + {\hsize\@tempdima\kern\z@ + \vbox{\captiondir\hsize\@tempdima + \captionfontsetup\parindent\z@\inhibitglue + \csname fnum@\@captype\endcsname\char\euc"A1A1\relax#1}\kern\z@ + }\if@pboxsw \m@th$\fi \if@rotsw \m@th$\fi}% +% \end{macrocode} +% 最後に|\@captionbox|を組み立てます。 +% +% 位置2オプションが`|u|'か`|d|'の場合、 +% このボックスの幅をフロートオブジェクトの幅と同じ長さにし、 +% 位置1オプションでの揃えに組み立てます。 +% +% 位置2オプションが`|l|'か`|r|'の場合は、キャプションの幅です。 +% このときの位置1オプションの揃えは、この前の段階で準備をしておき、 +% |\@pcaption|で最終的にフロートオブジェクトと組み合わせるときになされます。 +% \begin{macrocode} + \let\to@captionboxwidth\relax + \if l\caption@posb \else\if r\caption@posb\else + \def\to@captionboxwidth{to\floatwidth}\fi\fi + \setbox\@captionbox\hbox\to@captionboxwidth{% + \if t\caption@posa\else\hss\fi + \unhbox0\relax + \if b\caption@posa\else\hss\fi}} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{段落ボックス環境} +% minipage環境と|\parbox|コマンドも、tabular環境と同じように、 +% 組方向を指定するオプションを追加してあります。 +% これらのコマンドは、\file{ltbox.dtx}で定義されています。 +% +% |\parbox|コマンドは幅だけでなく高さも指定できるようになっています。 +% 新しい|\parbox|コマンドについての詳細は、\file{usrguide.tex}を参照 +% してください。 +% +% \subsubsection*{minipage環境} +% +% \begin{macro}{\minipage} +% 組方向オプションを調べます。 +% \begin{macrocode} +\def\minipage{\@ifnextchar<%> + {\X@minipage}{\X@minipage}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@minpage} +% 位置オプションを調べます。 +% \begin{macrocode} +\def\X@minipage<#1>{\@ifnextchar[%] + {\@iminipage<#1>}{\@iiiminipage<#1>{c}\@empty[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iminpage} +% 高さオプションを調べます。 +% \begin{macrocode} +\def\@iminipage<#1>[#2]{\@ifnextchar[%] + {\@iiminipage<#1>{#2}}{\@iiiminipage<#1>{#2}\@empty[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiminpage} +% 内部位置オプションを調べます。 +% \begin{macrocode} +\def\@iiminipage<#1>#2[#3]{\@ifnextchar[%] + {\@iiiminipage<#1>{#2}{#3}}{\@iiiminipage<#1>{#2}{#3}[#2]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiiminpage} +% minipage環境の内部形式です。 +% \changes{v1.1g}{1996/01/12}{Grouping \cs{@iiiminipage}} +% \cs{levevmode}の後の\cs{bgroup}は、 +% 回転オプションが指定されたときのフラグ|\if@rotsw|が、このマクロの内部だけ +% で有効になるようにするためです。この括弧は、\cs{endminipage}コマンドで +% 閉じます。 +% \begin{macrocode} +\def\@iiiminipage<#1>#2#3[#4]#5{% + \leavevmode\bgroup + \setlength\@tempdima{#5}% + \def\@mpargs{<#1>{#2}{#3}[#4]{#5}}% + \@rotswfalse + \iftdir + \if #1y\relax\let\box@dir\yoko + \else\if #1z\relax\@rotswtrue \let\box@dir\relax + \else\let\box@dir\tate + \fi\fi + \else + \if #1t\relax\let\box@dir\tate + \else\let\box@dir\yoko + \fi + \fi + \setbox\@tempboxa\vbox\bgroup\box@dir + \if@rotsw \hsize\@tempdima\hbox\bgroup$\vbox\bgroup\fi +% \end{macrocode} +% \changes{v1.1c}{1995/09/11}{Add \cs{adjustbaseline}.} +% \begin{macrocode} + \adjustbaseline + \color@begingroup + \hsize\@tempdima + \textwidth\hsize \columnwidth\hsize + \@parboxrestore + \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}% + \c@mpfootnote\z@ + \let\@footnotetext\@mpfootnotetext + \let\@listdepth\@mplistdepth \@mplistdepth\z@ + \@minipagerestore + \global\@minipagetrue %% \global added 24 May 89 + \everypar{\global\@minipagefalse\everypar{}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endminpage} +% minipage環境の終了コマンドです。 +% \begin{macrocode} +\def\endminipage{% + \par + \unskip + \ifvoid\@mpfootins\else + \vskip\skip\@mpfootins + \normalcolor + \footnoterule + \unvbox\@mpfootins + \fi + \global\@minipagefalse %% added 24 May 89 + \color@endgroup + \if@rotsw \egroup\m@th$\egroup\fi +% \end{macrocode} +% \cs{@iiiminipage}で開始したグループを閉じるための\cs{egroup}です。 +% \begin{macrocode} + \egroup + \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}\egroup} +% \end{macrocode} +% \end{macro} +% +% \subsubsection*{\cs{parbox}コマンド} +% +% \begin{macro}{\parbox} +% 組方向オプションを調べます。 +% \begin{macrocode} +\def\parbox{\@ifnextchar<%> + {\X@parbox}{\X@parbox}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@parbox} +% 位置オプションを調べます。 +% \begin{macrocode} +\def\X@parbox<#1>{\@ifnextchar[%] + {\@iparbox<#1>}{\@iiiparbox<#1>{c}\@empty[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iparbox} +% 高さオプションを調べます。 +% \begin{macrocode} +\def\@iparbox<#1>[#2]{\@ifnextchar[%] + {\@iiparbox<#1>{#2}}{\@iiiparbox<#1>{#2}\@empty[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiparbox} +% 内部位置オプションを調べます。 +% \begin{macrocode} +\def\@iiparbox<#1>#2[#3]{\@ifnextchar[%]% + {\@iiiparbox<#1>{#2}{#3}}{\@iiiparbox<#1>{#2}{#3}[#2]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiiparbox} +% |parbox|の内部形式です。 +% \changes{v1.1c}{1995/09/11}{Add \cs{adjustbaseline}.} +% \changes{v1.1c}{1995/10/24}{typo \cs{adjustbaesline}.} +% \changes{v1.1g}{1996/01/12}{Grouping \cs{@iiiparbox}} +% minipage環境と同じようにグルーピングをします。 +% この括弧と対になるのは、このマクロの最後の\cs{egroup}です。 +% \begin{macrocode} +\long\def\@iiiparbox<#1>#2#3[#4]#5#6{% + \leavevmode\bgroup + \setlength\@tempdima{#5}% + \fork@parbox@option<#1>[#2]% +\if@rotsw + \@begin@tempboxa\vbox{\box@dir\hsize\@tempdima + \hbox{$\vbox{\@parboxrestore\adjustbaseline#6\endgraf}\m@th$}}% +\else + \@begin@tempboxa\vbox{\box@dir + \hsize\@tempdima\@parboxrestore\adjustbaseline#6\endgraf}% +\fi + \ifx\@empty#3\relax\else + \setlength\@tempdimb{#3}% + \def\@parboxto{to\@tempdimb}% + \fi + \@begin@parbox\@parboxto{\box@dir\adjustbaseline + \let\hss\vss\let\unhbox\unvbox + \csname bm@#4\endcsname}\@end@parbox + \@end@tempboxa\egroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\fork@parbox@option} +% |\parbox|で与えられた第一引数と第二引数の組合せの分岐を行ないます。 +% \begin{macrocode} +\def\fork@parbox@option<#1>[#2]{% +\@rotswfalse +% \end{macrocode} +% 縦組モードのとき: +% \begin{macrocode} +\iftdir +\if #1y\relax\let\box@dir\yoko + \if #2t\relax + \def\@begin@parbox{\raise\cdp\vtop\bgroup\kern\z@\vtop}% + \let\@end@parbox\egroup + \else\if #2b\relax + \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{\hskip\tbaselineshift$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\else\if #1z\relax\@rotswtrue \let\box@dir\relax + \if #2t\relax + \def\@begin@parbox{\raise\cdp\vtop\bgroup\kern\z@\vtop}% + \let\@end@parbox\egroup + \else\if #2b\relax + \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{\hskip\tbaselineshift$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\else\let\box@dir\tate + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \def\@begin@parbox{\lower\cdp\vbox}% + \let\@end@parbox\relax + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\fi\fi +% \end{macrocode} +% 横組モードのとき: +% \begin{macrocode} +\else +\if #1t\relax\let\box@dir\tate + \if #2t\relax + \def\@begin@parbox{\vtop\bgroup\kern\z@\vbox}% + \let\@end@parbox\egroup + \else\if #2b\relax + \def\@begin@parbox{\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\else\let\box@dir\yoko + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \subsubsection*{\cs{pbox}コマンド} +% +% |\pbox|は組み方向を指定できるボックスコマンドです。 +% 次のような構文となっています。 +% +% |\pbox<|\meta{dir}|>[|\meta{width}|][|\meta{pos}|]{|\meta{obj}|}| +% +% \begin{macro}{\pbox} +% \begin{macro}{\X@makepbox} +% \begin{macro}{\@imakepbox} +% オプションを調べます。 +% \begin{macrocode} +\def\pbox{\leavevmode\@ifnextchar<{\X@makePbox}{\X@makePbox}} +% +\def\X@makePbox<#1>{% + \@ifnextchar[{\@imakePbox<#1>}{\@imakePbox<#1>[-5\p@]}} +% +\def\@imakePbox<#1>[#2]{\@ifnextchar[%] + {\@iimakePbox<#1>{#2}}{\@iimakePbox<#1>{#2}[c]}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@iimakePbox} +% |\pbox|の内部形式です。 +% \changes{v1.1i}{2001/05/10}{縦組でzを指定するとエラーになるのを修正。} +% \begin{macrocode} +\def\@iimakePbox<#1>#2[#3]#4{% + \bgroup \@rotswfalse \@pboxswfalse + \iftdir + \if #1y\relax\let\box@dir\yoko + \else\if #1z\relax\@rotswtrue \let\box@dir\relax + \else\let\box@dir\tate + \fi\fi + \else + \if #1t\relax\let\box@dir\tate + \else\let\box@dir\yoko + \fi + \fi + \ifmmode\else\if@rotsw\@pboxswtrue\hbox\bgroup$\fi\fi + \ifdim #2 <\z@ \hbox{\box@dir#4}\else + \hbox to#2{\box@dir + \if #3l\relax\else\hss\fi + #4\relax + \if #3r\relax\else\hss\fi}\fi + \if@pboxsw \m@th$\egroup\fi\egroup} +% \end{macrocode} +% \end{macro} +% +% \subsection{作図環境} +% picture環境も、組方向を指定するオプションを追加してあります。 +% なお、これらのコマンドは、\file{ltpictur.dtx}で定義されています。 +% +% \begin{macro}{\picture} +% 組方向オプションを調べます。 +% \begin{macrocode} +\def\picture{\@ifnextchar<%> + {\X@picture}{\X@picture}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@picture} +% 図形領域オプションを調べます。 +% \begin{macrocode} +\def\X@picture<#1>(#2,#3){\@ifnextchar(%) + {\@@picture<#1>(#2,#3)}{\@@picture<#1>(#2,#3)(0,0)}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@picture} +% picture環境の内部ではベースラインシフトの値をゼロにします。 +% 以前に設定されていた値は、それぞれ保存され、終了時に、その値に戻されます。 +% \begin{macrocode} +\newdimen\save@ybaselineshift +\newdimen\save@tbaselineshift +\newdimen\@picwd +% \end{macrocode} +% |\picture|の内部形式です。3組目の引数は、原点座標です。 +% \begin{macrocode} +\def\@@picture<#1>(#2,#3)(#4,#5){% + \save@ybaselineshift\ybaselineshift + \save@tbaselineshift\tbaselineshift + \iftdir + \if#1y\let\box@dir\yoko + \@picwd=#3\unitlength \@picht=#2\unitlength + \@tempdima=#5\unitlength \@tempdimb=#4\unitlength + \else\let\box@dir\tate + \@picwd=#2\unitlength \@picht=#3\unitlength + \@tempdima=#4\unitlength \@tempdimb=#5\unitlength + \fi + \else + \if#1t\let\box@dir\tate + \@picwd=#3\unitlength \@picht=#2\unitlength + \@tempdima=#5\unitlength \@tempdimb=#4\unitlength + \else\let\box@dir\yoko + \@picwd=#2\unitlength \@picht=#3\unitlength + \@tempdima=#4\unitlength \@tempdimb=#5\unitlength + \fi + \fi + \setbox\@picbox\hbox to\@picwd\bgroup\box@dir + \hskip-\@tempdima\lower\@tempdimb\hbox\bgroup + \ybaselineshift\z@ \tbaselineshift\z@ + \ignorespaces} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endpicture} +% 図形領域の幅と高さを指定の大きさにしてから、出力をします。 +% そして、最後にベースラインシフトの値を元に戻します。 +% \begin{macrocode} +\def\endpicture{% + \egroup\hss\egroup + \ht\@picbox\@picht \wd\@picbox\@picwd \dp\@picbox\z@ + \mbox{\box\@picbox}% + \ybaselineshift\save@ybaselineshift + \tbaselineshift\save@tbaselineshift} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\put} +% \begin{macro}{\line} +% \begin{macro}{\vector} +% \begin{macro}{\dashbox} +% \begin{macro}{\oval} +% \begin{macro}{\circle} +% picture環境の内部で、フォントサイズ変更コマンドなどが使用された場合、 +% ベースラインシフト量が新たに設定されてしまうため、 +% これらのコマンドがベースラインシフトの影響を受けないように再定義をします。 +% ベースラインシフトを有効にしたい場合は、|\pbox|コマンドを使用してください。 +% \begin{macrocode} +\let\org@put\put +\def\put{\ybaselineshift\z@\tbaselineshift\z@\org@put} +% +\let\org@line\line +\def\line{\ybaselineshift\z@\tbaselineshift\z@\org@line} +% +\let\org@vector\vector +\def\vector{\ybaselineshift\z@\tbaselineshift\z@\org@vector} +% +\let\org@dashbox\dashbox +\def\dashbox{\ybaselineshift\z@\tbaselineshift\z@\org@dashbox} +% +\let\org@oval\oval +\def\oval{\ybaselineshift\z@\tbaselineshift\z@\org@oval} +% +\let\org@circle\circle +\def\circle{\ybaselineshift\z@\tbaselineshift\z@\org@circle} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% \subsection{連数字/漢数字/傍点/下線} +% ここでは、連数字、漢数字、傍点、下線について説明をしています。 +% +% 連数字と漢数字、および傍点と下線についての詳細は、 +% 『日本語\LaTeXe{}ブック』を参照してください。 +% なお、傍点に使う文字は\file{pldefs.ltx}で定義されています。 +% +% なお、連数字コマンドは3種類ありましたが、 +% |\rensuji|コマンド一つにまとめました。 +% 新しい連数字コマンドは次の構文となります。 +% +% \medskip +% |\rensuji[|\meta{pos}|]|\meta{横に並べる半角文字} +% +% |\rensuji*[|\meta{pos}|]|\meta{横に並べる半角文字} +% \medskip +% +% アスタリスク形式の場合は、行間を連数字の幅に合わせて広げません。 +% \meta{pos}は、連数字を揃える位置です。 +% `|c|'(中央揃え)、`|r|'(右寄せ)、`|l|'(左寄せ)を指定できます。 +% デフォルトでは、中央に揃えます。 +% +% 次のフラグが真の場合には、連数字の幅に合わせて行間を広げ\emph{ません}。 +% アスタリスク形式の場合に真になります。 +% \begin{macrocode} +\newif\ifnot@advanceline +% \end{macrocode} +% +% |\rensujiskip|は連数字の前後に入るアキです。 +% デフォルトは、現在の文字の幅の4分の1を基準にしています。 +% \begin{macrocode} +\newskip\rensujiskip +\rensujiskip=0.25\chs plus.25zw minus.25zw +% \end{macrocode} +% +% \subsubsection*{連数字} +% +% \begin{macro}{\rensuji} +% \begin{macro}{\@rensuji} +% \begin{macro}{\@@rensuji} +% |\rensuji|は、|*|形式かどうかを調べます。 +% |\@rensuji|は、位置オプションを調べます。 +% |\@@rensuji|が|\rensuji|の内部形式です。 +% \begin{macrocode} +\DeclareRobustCommand\rensuji{% + \@ifstar{\not@advancelinetrue\@rensuji}{\@rensuji}} +\def\@rensuji{\@ifnextchar[{\@@rensuji}{\@@rensuji[c]}} +\def\@@rensuji[#1]#2{\ifydir\hbox{#2}\else + \hskip\rensujiskip + \ifvmode\leavevmode\fi + \ifnot@advanceline\not@advancelinefalse\else + \setbox\z@\hbox{\yoko#2}% + \@tempdima\ht\z@ \advance\@tempdima\dp\z@ + \if #1c\relax\vrule\@width\z@ \@height.5\@tempdima \@depth.5\@tempdima + \else\if #1r\relax\vrule\@width\z@\@height\z@ \@depth\@tempdima + \else\vrule\@width\z@ \@height\@tempdima \@depth\z@ + \fi\fi + \fi + \if #1c\relax\hbox to1zw{\yoko\hss#2\hss}% + \else\if #1r\relax\vbox{\hbox to1zw{\yoko\hss#2}}% + \else\vtop{\hbox to1zw{\yoko#2\hss}}% + \fi\fi + \hskip\rensujiskip +\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Rensuji} +% \begin{macro}{\prensuji} +% \changes{v1.1d}{1995/11/21}{\cs{Rensuji}, \cs{prensuji}を作成} +% |\Rensuji|コマンドと|\prensuji|コマンドは、|\rensuji|コマンドで代用でき +% ます。 +% \begin{macrocode} +\let\Rensuji\rensuji +\let\prensuji\rensuji +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsubsection*{漢数字} +% +% \begin{macro}{\Kanji} +% \begin{macro}{\@Kanji} +% \begin{macro}{\kanji} +% |\Kanji|コマンドを定義します。|\Kanji|コマンドは|\Alpha|と同じように、 +% カウンタに対してのみ使用することができます。 +% +% |\kanji|コマンドは、後続の半角数字を漢数字にします。 +% |\kanji 1989|のように指定をします。 +% ただし、横組モードのときには、何もしません。 +% つねに漢数字にしたい場合は、|\kansuji|プリミティブを使ってください。 +% +% \changes{v1.0h}{1996/03/13}{\cs{@Kanji}を追加。英語版と同様にした。} +% \begin{macrocode} +\def\Kanji#1{\expandafter\@Kanji\csname c@#1\endcsname} +\def\@Kanji#1{\expandafter\kansuji\number #1} +\def\kanji{\iftdir\expandafter\kansuji\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection*{傍点} +% +% \begin{macro}{\boutenchar} +% \begin{macro}{\bou} +% |\bou|は、傍点を付けるコマンドです。 +% +% 傍点として出力する文字は|\boutenchar|に指定します。 +% この文字は、いつでも、横組用フォントが使われます。 +% デフォルトは、EUCコード|A1A2|(\hbox{\yoko 、})です。 +% \begin{macrocode} +\def\boutenchar{\char\euc"A1A2} +% \end{macrocode} +% +% \begin{macrocode} +\def\bou#1{\ifvmode\leavevmode\fi\@bou#1\end} +\def\@bou#1{% + \ifx#1\end \let\next=\relax + \else + \iftdir\if@rotsw + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft-0.2zw\hbox{\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \else + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft0.2zw\hbox{\yoko\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \fi\else + \hbox to\z@{\vbox to\z@{% + \vss\moveleft-0.2zw\hbox{\yoko\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \fi + \let\next=\@bou + \fi\next} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection*{下線} +% +% \begin{macro}{\kasen} +% 下線を引くコマンドです。 +% 横組モードのときは、引数を|\underline|に渡します。 +% 縦組モードでも、回転モードの|\parbox|などで使われたときには、 +% やはり引数を|\underline|に渡します。 +% これ以外の場合は、引数の上に直線を引きます。 +% \begin{macrocode} +\def\kasen#1{% + \ifydir\underline{#1}% + \else\if@rotsw\underline{#1}\else + \setbox\z@\hbox{#1}\leavevmode\raise.7zw + \hbox to\z@{\vrule\@width\wd\z@ \@depth\z@ \@height.4\p@\hss}% + \box\z@ + \fi\fi} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{参照番号} +% 参照番号の類を連数字で出力するように再定義します。 +% itemize環境などのリスト型のラベルについては、jarticleなどの +% パッケージで定義しています。詳細は、\file{jclasses.dtx}を参照してください。 +% +% \begin{macro}{\@eqnnum} +% \begin{macro}{\@thecounter} +% これらは|\equation|コマンドで作成された数式に付加される番号です。 +% \file{ltmath.dtx}で定義されています。 +% \begin{macrocode} +\def\@eqnnum{{\reset@font\rmfamily \normalcolor + \iftdir\raise.25zh\hbox{\yoko(\theequation)}% + \else (\theequation)\fi}} +\def\@thecounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@thmcounter} +% |\newtheorem|コマンドで作成した環境で参照されるラベルです。 +% \file{ltthm.dtx}で定義されています。 +% \begin{macrocode} +\def\@thmcounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}} +% +% \end{macrocode} +% \end{macro} +% +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/platex/base/plfmt.ins b/Master/texmf-dist/source/platex/base/plfmt.ins new file mode 100644 index 00000000000..f38a6609e0d --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plfmt.ins @@ -0,0 +1,24 @@ +\input docstrip +\keepsilent +\usedir{ptex/platex/base} +\ifToplevel{\askonceonly} + +\Msg{*** Generating the pLaTeX files for making the documents ***} + +\generate{ + \file{platex.ltx}{\from{platex.dtx}{plcore}} + \file{plcore.ltx}{\from{plvers.dtx}{plcore} + \from{plfonts.dtx}{plcore} + \from{plcore.dtx}{plcore} + \from{plvers.dtx}{plfinal}} + \file{kinsoku.tex}{\from{kinsoku.dtx}{plcore}} + \file{pldefs.ltx}{\from{plfonts.dtx}{pldefs,xpt}} + \file{jy1mc.fd}{\from{plfonts.dtx}{JY1mc}} + \file{jy1gt.fd}{\from{plfonts.dtx}{JY1gt}} + \file{jt1mc.fd}{\from{plfonts.dtx}{JT1mc}} + \file{jt1gt.fd}{\from{plfonts.dtx}{JT1gt}} + \file{plext.sty}{\from{plext.dtx}{package}} + \file{ptrace.sty}{\from{plfonts.dtx}{trace}} +} + +\endbatchfile diff --git a/Master/texmf-dist/source/platex/base/plfonts.dtx b/Master/texmf-dist/source/platex/base/plfonts.dtx new file mode 100644 index 00000000000..02b21a3d17e --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plfonts.dtx @@ -0,0 +1,1884 @@ +% \iffalse meta-comment +%% File: plfonts.dtx +% +% Copyright 1994-2006 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{1685} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1994/09/16}{first edition} +% \changes{v1.1}{1995/02/21}{\cs{selectfont}アルゴリズム変更} +% \changes{v1.1b}{1995/04/25}{\cs{selectfont}修正} +% \changes{v1.1c}{1995/08/22}{縦横フォント同時切り替え} +% \changes{v1.2}{1995/11/09}{\cs{DeclareFixedFont}の日本語化} +% \changes{v1.3}{1996/03/25}{数式ファミリの定義変更} +% \changes{v1.3a}{1997/01/25}{\LaTeX\ \texttt{!<1996/12/01!>に対応}} +% \changes{v1.3b}{1997/01/28}{\cs{textmc}, \cs{textgt}の動作修正} +% \changes{v1.3c}{1997/04/08}{和文エンコード関連の修正} +% \changes{v1.3d}{1997/06/25}{\cs{em},\cs{emph}で和文を強調書体に} +% \changes{v1.3e}{1997/07/10}{fdファイル名の小文字化が効いていなかったのを修正} +% \changes{v1.3f}{1998/08/10}{\cs{DeclareFixedCommand}を\cs{@onlypreamble}に +% してしまっていたのを修正} +% \changes{v1.3g}{1999/04/05}{plpatch.ltxの内容を反映} +% \changes{v1.3h}{1999/08/09}{\cs{strut}の改善} +% \changes{v1.3i}{2000/07/13}{\cs{text..}コマンドの左側に\cs{xkanjiskip}が +% 入らないのを修正} +% \changes{v1.3j}{2000/10/24}{\cs{adjustbaseline}で余分なアキが入らない +% ようにした} +% \changes{v1.3k}{2001/05/10}{\cs{adjustbaseline}の調整量} +% \changes{v1.3l}{2002/04/05}{\cs{adjustbaseline}でフォントの基準値が縦書き +% 以外では設定されないのを修正} +% \changes{v1.3m}{2004/06/14}{\cs{fontfamily}コマンド内部フラグ変更} +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% \changes{v1.3o}{2005/01/04}{\cs{fontfamily}中のフラグ修正} +% \changes{v1.3p}{2006/01/04}{\cs{DeclareFontEncoding@}中で +% \cs{LastDeclaredEncodeng}の再定義が抜けていたので追加} +% \changes{v1.4}{2006/06/27}{\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% \changes{v1.5}{2006/11/10}{\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{plfonts.dtx}[2006/11/10 v1.5 pLaTeX New Font Selection Scheme] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{plfonts.dtx} +\title{p\LaTeXe{}のフォントコマンド\space\fileversion} +\author{Ken Nakano \& Hideaki Togashi} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \section{概要}\label{plfonts:intro} +% ここでは、和文書体を\NFSS2のインターフェイスで選択するための +% コマンドやマクロについて説明をしています。 +% また、フォント定義ファイルや初期設定ファイルなどの説明もしています。 +% 新しいフォント選択コマンドの使い方については、\file{fntguide.tex}や +% \file{usrguide.tex}を参照してください。 +% +% \begin{description} +% \item[第\ref{plfonts:intro}節] この節です。このファイルの概要と +% \dst{}プログラムのためのオプションを示しています。 +% \item[第\ref{plfonts:codes}節] 実際のコードの部分です。 +% \item[第\ref{plfonts:pldefs}節] プリロードフォントやエラーフォントなどの +% 初期設定について説明をしています。 +% \item[第\ref{plfonts:fontdef}節] フォント定義ファイルについて +% 説明をしています。 +% \end{description} +% +% +% \subsection{\dst{}プログラムのためのオプション} +% \dst{}プログラムのためのオプションを次に示します。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|p{0.7\linewidth}} +% \emph{オプション} & \emph{意味}\\\hline +% plcore & \file{plfonts.ltx}を生成します。\\ +% trace & \file{ptrace.sty}を生成します。\\ +% JY1mc & 横組用、明朝体のフォント定義ファイルを生成します。\\ +% JY1gt & 横組用、ゴシック体のフォント定義ファイルを生成します。\\ +% JT1mc & 縦組用、明朝体のフォント定義ファイルを生成します。\\ +% JT1gt & 縦組用、ゴシック体のフォント定義ファイルを生成します。\\ +% pldefs & \file{pldefs.ltx}を生成します。次の4つのオプションを付加する +% ことで、プリロードするフォントを選択することができます。 +% デフォルトは10ptです。\\ +% xpt & 10pt プリロード\\ +% xipt & 11pt プリロード\\ +% xiipt & 12pt プリロード\\ +% ori & \file{plfonts.tex}に似たプリロード\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% +% +% \section{コード}\label{plfonts:codes} +% この節で、具体的に\NFSS2を拡張するコマンドやマクロの定義を行なっています。 +% +% \subsection{準備} +% \NFSS2を拡張するための準備です。 +% 和文フォントの属性を格納するオブジェクトや長さ変数、 +% 属性を切替える際の判断材料として使うリストなどを定義しています。 +% +% +% \subsubsection{和文フォント属性} +% ここでは、和文フォントの属性を格納するためのオブジェクトについて +% 説明をしています。 +% +% \begin{macro}{\k@encoding} +% \begin{macro}{\ck@encoding} +% \begin{macro}{\cy@encoding} +% \begin{macro}{\ct@encoding} +% 和文エンコードを示すオブジェクトです。 +% |\ck@encoding|は、最後に選択された和文エンコード名を示しています。 +% |\cy@encoding|と|\ct@encoding|はそれぞれ、最後に選択された、 +% 横組用と縦組用の和文エンコード名を示しています。 +% \begin{macrocode} +%<*plcore> +\let\k@encoding\@empty +\let\ck@encoding\@empty +\def\cy@encoding{JY1} +\def\ct@encoding{JT1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\k@family} +% 和文書体のファミリを示すオブジェクトです。 +% \begin{macrocode} +\let\k@family\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\k@series} +% 和文書体のシリーズを示すオブジェクトです。 +% \begin{macrocode} +\let\k@series\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\k@shape} +% 和文書体のシェイプを示すオブジェクトです。 +% \begin{macrocode} +\let\k@shape\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\curr@kfontshape} +% 現在の和文フォント名を示すオブジェクトです。 +% \begin{macrocode} +\def\curr@kfontshape{\k@encoding/\k@family/\k@series/\k@shape} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\rel@fontshape} +% 関連付けされたフォント名を示すオブジェクトです。 +% \begin{macrocode} +\def\rel@fontshape{\f@encoding/\f@family/\f@series/\f@shape} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{長さ変数} +% ここでは、和文フォントの幅や高さなどを格納する変数について説明をしています。 +% +% 頭文字が大文字の変数は、ノーマルサイズの書体の大きさで、基準値となります。 +% これらは、\file{jart10.clo}などの補助クラスファイルで設定されます。 +% +% 小文字だけからなる変数は、 +% フォントが変更されたときに(|\selectfont|内で)更新されます。 +% +% \begin{macro}{\Cht} +% \begin{macro}{\cht} +% |\Cht|は基準となる和文フォントの文字の高さを示します。 +% |\cht|は現在の和文フォントの文字の高さを示します。 +% なお、この``高さ''はベースラインより上の長さです。 +% \begin{macrocode} +\newdimen\Cht +\newdimen\cht +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cdp} +% \begin{macro}{\cdp} +% |\Cdp|は基準となる和文フォントの文字の深さを示します。 +% |\cdp|は現在の和文フォントの文字の深さを示します。 +% なお、この``深さ''はベースラインより下の長さです。 +% \begin{macrocode} +\newdimen\Cdp +\newdimen\cdp +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cwd} +% \begin{macro}{\cwd} +% |\Cwd|は基準となる和文フォントの文字の幅を示します。 +% |\cwd|は現在の和文フォントの文字の幅を示します。 +% \begin{macrocode} +\newdimen\Cwd +\newdimen\cwd +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cvs} +% \begin{macro}{\cvs} +% |\Cvs|は基準となる行送りを示します。 +% ノーマルサイズの|\baselineskip|と同値です。 +% |\cvs|は現在の行送りを示します。 +% \begin{macrocode} +\newdimen\Cvs +\newdimen\cvs +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Chs} +% \begin{macro}{\chs} +% |\Chs|は基準となる字送りを示します。|\Cwd|と同値です。 +% |\chs|は現在の字送りを示します。 +% \begin{macrocode} +\newdimen\Chs +\newdimen\chs +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cHT} +% |\cHT|は、現在のフォントの高さに深さを加えた長さを示します。 +% |\set@fontsize|コマンド(実際は|\size@update|)で更新されます。 +% \begin{macrocode} +\newdimen\cHT +% \end{macrocode} +% \end{macro} +% +% \subsubsection{一時コマンド} +% +% \begin{macro}{\afont} +% \LaTeX{}内部の|\do@subst@correction|マクロでは、 +% |\fontname\font|で返される外部フォント名を用いて、 +% \LaTeX{}フォント名を定義しています。したがって、|\font|をそのまま使うと、 +% 和文フォント名に欧文の外部フォントが登録されたり、 +% 縦組フォント名に横組用の外部フォントが割り付けられたりしますので、 +% |\jfont|か|\tfont|を用いるようにします。 +% |\afont|は、|\font|コマンドの保存用です。 +% \begin{macrocode} +\let\afont\font +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{フォントリスト} +% ここでは、フォントのエンコードやファミリの名前を登録するリストについて +% 説明をしています。 +% +% p\LaTeXe{}の\NFSS2では、一つのコマンドで和文か欧文のいずれか、あるいは両方を +% 変更するため、コマンドに指定された引数が何を示すのかを判断しなくては +% なりません。この判断材料として、リストを用います。 +% +% このときの具体的な判断手順については、エンコード選択コマンドや +% ファミリ選択コマンドなどの定義を参照してください。 +% +% \begin{macro}{\inlist} +% 次のコマンドは、エンコードやファミリのリスト内に第二引数で指定された文字列 +% があるかどうかを調べるマクロです。 +% \begin{macrocode} +\def\inlist@#1#2{% + \def\in@@##1<#1>##2##3\in@@{% + \ifx\in@##2\in@false\else\in@true\fi}% + \in@@#2<#1>\in@\in@@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\enc@elt} +% \begin{macro}{\fam@elt} +% |\enc@elt|と|\fam@elt|は、登録されているエンコードに対して、 +% なんらかの処理を逐次的に行ないたいときに使用することができます。 +% \begin{macrocode} +\def\fam@elt{\noexpand\fam@elt} +\def\enc@elt{\noexpand\enc@elt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fenc@list} +% \begin{macro}{\kenc@list} +% \begin{macro}{\kyenc@list} +% \begin{macro}{\ktenc@list} +% |\fenc@list|には、|\DeclareFontEncoding|コマンドで宣言されたエンコード名が +% 格納されていきます。 +% +% |\kyenc@list|には、|\DeclareYokoKanjiEncoding|コマンドで宣言された +% エンコード名が格納されていきます。 +% |\ktenc@list|には、|\DeclareTateKanjiEncoding|コマンドで宣言された +% エンコード名が格納されていきます。 +% +% \changes{v1.1b}{1995/03/28}{リストの初期値を変更} +% \changes{v1.1b}{1995/05/10}{リスト内の空白を削除} +% +% ここで、これらのリストに具体的な値を入れて初期化をするのは、 +% リストにエンコードの登録をするように|\DeclareFontEncoding|を再定義 +% する前に、欧文エンコードが宣言されるため、リストに登録されないからです。 +% \changes{v1.1}{1997/01/25}{Add TS1 encoding to the starting member of +% \cs{fenc@list}.} +% \begin{macrocode} +\def\fenc@list{\enc@elt\enc@elt\enc@elt\enc@elt% + \enc@elt\enc@elt\enc@elt} +\let\kenc@list\@empty +\let\kyenc@list\@empty +\let\ktenc@list\@empty +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\kfam@list} +% \begin{macro}{\ffam@list} +% \begin{macro}{\notkfam@list} +% \begin{macro}{\notffam@list} +% |\kfam@list|には、|\DeclareKanjiFamily|コマンドで宣言されたファミリ名が +% 格納されていきます。 +% +% |\ffam@list|には、|\DeclareFontFamily|コマンドで宣言されたファミリ名が +% 格納されていきます。 +% +% |\notkfam@list|には、和文ファミリではないと推測されたファミリ名が +% 格納されていきます。このリストは|\fontfamily|コマンドで作成されます。 +% +% |\notffam@list|には欧文ファミリではないと推測されたファミリ名が +% 格納されていきます。このリストは|\fontfamily|コマンドで作成されます。 +% +% \changes{v1.1b}{1995/03/28}{リストの初期値を変更} +% \changes{v1.1b}{1995/05/10}{リスト内の空白を削除} +% +% ここで、これらのリストに具体的な値を入れて初期化をするのは、 +% リストにファミリの登録をするように、|\DeclareFontFamily|が +% 再定義される前に、このコマンドが使用されるため、 +% リストに登録されないからです。 +% \begin{macrocode} +\def\kfam@list{\fam@elt\fam@elt} +\def\ffam@list{\fam@elt\fam@elt\fam@elt% + \fam@elt\fam@elt\fam@elt} +% \end{macrocode} +% \changes{v1.1c}{1996/03/06}{\cs{notkfam@list}と\cs{notffam@list}の +% 初期値を変更} +% つぎの二つのリストの初期値として、上記の値を用います。 +% これらのファミリ名は、和文でないこと、欧文でないことがはっきりしています。 +% \begin{macrocode} +\let\notkfam@list\ffam@list +\let\notffam@list\kfam@list +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{支柱} +% 行間の調整などに用いる支柱です。 +% 支柱のもととなるボックスの大きさは、フォントサイズが変更されるたびに、 +% |\set@fontsize|コマンドによって変化します。 +% +% フォントサイズが変更されたときに、|\set@fontsize|コマンドで更新されます。 +% +% \begin{macro}{\tstrutbox} +% \begin{macro}{\zstrutbox} +% |\tstrutbox|は高さと深さが5対5、 +% |\zstrutbox|は高さと深さが7対3の支柱ボックスとなります。 +% これらは縦組ボックスの行間の調整などに使います。 +% なお、横組ボックス用の支柱は|\strutbox|で、高さと深さが7対3となっています。 +% \begin{macrocode} +\newbox\tstrutbox +\newbox\zstrutbox +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\strut} +% \begin{macro}{\tstrut} +% \begin{macro}{\zstrut} +% |\strutbox|は|\yoko|ディレクションで組まれていますので、 +% 縦組ボックス内で|\unhcopy|をするとエラーとなります。 +% このマクロは\file{ltplain.dtx}で定義されています。 +% +% \changes{v1.1c}{1995/08/24}{``\cs{centerling}~\cs{strut}''の幅がゼロに +% なってしまうのを修正} +% \changes{v1.3h}{1999/08/09}{縦組のとき、幅のあるボックスになってしまう +% のを修正} +% \begin{macrocode} +\def\strut{\relax + \ifydir + \ifmmode\copy\strutbox\else\unhcopy\strutbox\fi + \else + \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi + \fi} +\def\tstrut{\relax\hbox{\tate + \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi}} +\def\zstrut{\relax\hbox{\tate + \ifmmode\copy\zstrutbox\else\unhcopy\zstrutbox\fi}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% \subsection{コマンド} +% 次のコマンドの定義をしています。 +% +% \DeleteShortVerb{\|} +% \MakeShortVerb{\+} +% \begin{center} +% \begin{tabular}{l|l} +% \emph{コマンド} & \emph{意味}\\\hline +% +\Declare{Font|YokoKanji|TateKanji}Encoding+ & エンコードの宣言\\ +% +\Declare{Yoko|Tate}KanjiEncodingDefaults+ & +% デフォルトの和文エンコードの宣言\\ +% +\Declare{Font|Kanji}Family+ & ファミリの宣言\\ +% +\DeclareKanjiSubstitution+ & 和文の代用フォントの宣言\\ +% +\DeclareErrorKanjiFont+ & 和文のエラーフォントの宣言 \\ +% +\DeclareFixedFont+ & フォントの名前の宣言 \\ +% +\reDeclareMathAlphabet+ & 和欧文を同時に切り替えるコマンド宣言\\ +% +\{Declare|Set}RelationFont+ & 従属書体の宣言\\ +% +\userelfont+ & 欧文書体を従属書体にする\\ +% +\selectfont+ & フォントを切り替える\\ +% +\set@fontsize+ & フォントサイズの変更\\ +% +\adjustbaseline+ & ベースラインシフト量の設定\\ +% +\{font|roman|kanji}encoding+ & エンコードの指定\\ +% +\{font|roman|kanji}family+ & ファミリの指定\\ +% +\{font|roman|kanji}series+ & シリーズの指定\\ +% +\{font|roman|kanji}shape+ & シェイプの指定\\ +% +\use{font|roman|kanji}+ & 書体の切り替え\\ +% +\normalfont+ & デフォルト値の設定に切り替える\\ +% +\mcfamily+,+\gtfamily+ & 和文書体を明朝体、ゴシック体にする\\ +% +\textunderscore+ & テキストモードでの下線マクロ\\ +% \end{tabular} +% \end{center} +% \DeleteShortVerb{\+} +% \MakeShortVerb{\|} +% +% +% \begin{macro}{\DeclareFontEncoding} +% \begin{macro}{\DeclareFontEncoding@} +% 欧文エンコードを宣言するためのコマンドです。 +% \file{ltfssbas.dtx}で定義されているものを、 +% |\fenc@list|を作るように再定義をしています。 +% \changes{v1.3p}{2006/01/04}{\cs{DeclareFontEncoding@}中で +% \cs{LastDeclaredEncodeng}の再定義が抜けていたので追加} +% \begin{macrocode} +\def\DeclareFontEncoding{% + \begingroup + \nfss@catcodes + \expandafter\endgroup + \DeclareFontEncoding@} +% +\def\DeclareFontEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@family}{\default@series}% + {\default@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@cmd + \def\enc@elt{\noexpand\enc@elt}% + \xdef\fenc@list{\fenc@list\enc@elt<#1>}% + \else + \@font@info{Redeclaring font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@M#3}% + \xdef\LastDeclaredEncoding{#1}% + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\DeclareKanjiEncoding} +% \begin{macro}{\DeclareYokoKanjiEncoding} +% \begin{macro}{\DeclareYokoKanjiEncoding@} +% \begin{macro}{\DeclareTateKanjiEncoding} +% \begin{macro}{\DeclareTateKanjiEncoding@} +% 和文エンコードの宣言をするコマンドです。 +% \changes{v1.3c}{1997/04/08}{和文エンコード宣言コマンドを縦組用と横組用で +% 分けるようにした。} +% \begin{macrocode} +\def\DeclareKanjiEncoding#1{% + \@latex@warning{% + The \string\DeclareKanjiEncoding\space is obsoleted command. Please use + \MessageBreak + the \string\DeclareTateKanjiEncoding\space for `Tate-kumi' encoding, and + \MessageBreak + the \string\DeclareYokoKanjiEncoding\space for `Yoko-kumi' encoding. + \MessageBreak + I treat the `#1' encoding as `Yoko-kumi'.} + \DeclareYokoKanjiEncoding{#1}% +} +\def\DeclareYokoKanjiEncoding{% + \begingroup + \nfss@catcodes + \expandafter\endgroup + \DeclareYokoKanjiEncoding@} +% +\def\DeclareYokoKanjiEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@k@family}{\default@k@series}% + {\default@k@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@kcmd + \def\enc@elt{\noexpand\enc@elt}% + \xdef\kyenc@list{\kyenc@list\enc@elt<#1>}% + \xdef\kenc@list{\kenc@list\enc@elt<#1>}% + \else + \@font@info{Redeclaring KANJI (yoko) font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@KM#3}% + } +% +\def\DeclareTateKanjiEncoding{% + \begingroup + \nfss@catcodes + \expandafter\endgroup + \DeclareTateKanjiEncoding@} +% +\def\DeclareTateKanjiEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@k@family}{\default@k@series}% + {\default@k@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@kcmd + \def\enc@elt{\noexpand\enc@elt}% + \xdef\ktenc@list{\ktenc@list\enc@elt<#1>}% + \xdef\kenc@list{\kenc@list\enc@elt<#1>}% + \else + \@font@info{Redeclaring KANJI (tate) font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@KM#3}% + } +% +\@onlypreamble\DeclareKanjiEncoding +\@onlypreamble\DeclareYokoKanjiEncoding +\@onlypreamble\DeclareYokoKanjiEncoding@ +\@onlypreamble\DeclareTateKanjiEncoding +\@onlypreamble\DeclareTateKanjiEncoding@ +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\DeclareKanjiEncodingDefaults} +% 和文エンコードのデフォルト値を宣言するコマンドです。 +% \begin{macrocode} +\def\DeclareKanjiEncodingDefaults#1#2{% + \ifx\relax#1\else + \ifx\default@KT\@empty\else + \@font@info{Overwriting KANJI encoding scheme text defaults}% + \fi + \gdef\default@KT{#1}% + \fi + \ifx\relax#2\else + \ifx\default@KM\@empty\else + \@font@info{Overwriting KANJI encoding scheme math defaults}% + \fi + \gdef\default@KM{#2}% + \fi} +\let\default@KT\@empty +\let\default@KM\@empty +\@onlypreamble\DeclareKanjiEncodingDefaults +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\DeclareFontFamily} +% 欧文ファミリを宣言するためのコマンドです。 +% |\ffam@list|を作るように再定義をします。 +% \begin{macrocode} +\def\DeclareFontFamily#1#2#3{% + \@ifundefined{T@#1}% + {\@latex@error{Encoding scheme `#1' unknown}\@eha}% + {\edef\tmp@item{{#2}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% + \ifin@ \else + \def\fam@elt{\noexpand\fam@elt}% + \xdef\ffam@list{\ffam@list\fam@elt<#2>}% + \fi + \def\reserved@a{#3}% + \global + \expandafter\let\csname #1+#2\expandafter\endcsname + \ifx \reserved@a\@empty + \@empty + \else \reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DeclareKanjiFamily} +% 欧文ファミリを宣言するためのコマンドです。 +% \begin{macrocode} +\def\DeclareKanjiFamily#1#2#3{% + \@ifundefined{T@#1}% + {\@latex@error{KANJI Encoding scheme `#1' unknown}\@eha}% + {\edef\tmp@item{{#2}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% + \ifin@ \else + \def\fam@elt{\noexpand\fam@elt}% + \xdef\kfam@list{\kfam@list\fam@elt<#2>}% + \fi + \def\reserved@a{#3}% + \global + \expandafter\let\csname #1+#2\expandafter\endcsname + \ifx \reserved@a\@empty + \@empty + \else \reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\DeclareKanjiSubstitution} +% \begin{macro}{\DeclareErrorKanjiFont} +% 目的の和文フォントが見つからなかったときに使うフォントの宣言をする +% コマンドです。 +% それぞれ、|\DeclareFontSubstitution|と|\DeclareErrorFont|に対応します。 +% \begin{macrocode} +\def\DeclareKanjiSubstitution#1#2#3#4{% + \expandafter\ifx\csname T@#1\endcsname\relax + \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha + \else + \begingroup + \def\reserved@a{#1}% + \toks@{}% + \def\cdp@elt##1##2##3##4{% + \def\reserved@b{##1}% + \ifx\reserved@a\reserved@b + \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}% + \else + \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}% + \fi}% + \cdp@list + \xdef\cdp@list{\the\toks@}% + \endgroup + \global\@namedef{D@#1}{\def\default@family{#2}% + \def\default@series{#3}% + \def\default@shape{#4}}% + \fi} +% +\def\DeclareErrorKanjiFont#1#2#3#4#5{% + \xdef\error@kfontshape{% + \noexpand\expandafter\noexpand\split@name\noexpand\string + \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname + \noexpand\@nil}% + \gdef\default@k@family{#2}% + \gdef\default@k@series{#3}% + \gdef\default@k@shape{#4}% + \global\let\k@family\default@k@family + \global\let\k@series\default@k@series + \global\let\k@shape\default@k@shape + \gdef\f@size{#5}% + \gdef\f@baselineskip{#5pt}} +% +\@onlypreamble\DeclareKanjiSubstitution +\@onlypreamble\DeclareErrorKanjiFont +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\DeclareFixedFont} +% フォント名を宣言するコマンドです。 +% +% \changes{v1.2}{1995/11/09}{\cs{DeclareFixedFont}の日本語化} +% \changes{v1.3c}{1997/04/09}{縦横エンコード・リストの分離による拡張} +% \changes{v1.3f}{1998/08/10}{プリアンブル・コマンドにしてしまっていたのを解除} +% \begin{macrocode} +\def\DeclareFixedFont#1#2#3#4#5#6{% + \begingroup + \let\afont\font + \math@fontsfalse + \every@math@size{}% + \fontsize{#6}\z@ + \edef\tmp@item{{#2}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% + \ifin@ + \usekanji{#2}{#3}{#4}{#5}% + \let\font\jfont + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% + \ifin@ + \usekanji{#2}{#3}{#4}{#5}% + \let\font\tfont + \else + \useroman{#2}{#3}{#4}{#5}% + \let\font\afont + \fi + \fi + \global\expandafter\let\expandafter#1\the\font + \let\font\afont + \endgroup + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\reDeclareMathAlphabet} +% \changes{v1.0}{1997/01/30}{\cs{reDeclareMathAlphabet}を追加。 +% ありがとう、ymtさん。} +% \changes{v1.4}{2006/06/27}{\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% \changes{v1.5}{2006/11/10}{\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% 数式モード内で、数式文字用の和欧文フォントを同時に切り替えるコマンドです。 +% +% p\LaTeXe{}には、本来の動作モードと2.09互換モードの二つがあり、 +% 両モードで数式文字を変更するコマンドや動作が異なります。 +% 本来の動作モードでは、|\mathrm{...}|のように|\math??|に引数を指定して +% 使います。このときは引数にだけ影響します。2.09互換モードでは、|\rm|の +% ような二文字コマンドを使います。このコマンドには引数を取らず、書体は +% グルーピングの範囲で反映されます。二文字コマンドは、ネイティブモード +% でも使えるようになっていて、動作も2.09互換モードのコマンドと同じです。 +% +% しかし、内部的には|\math??|という一つのコマンドがすべての動作を受け持ち、 +% |\math??|コマンドや|\??|コマンドから呼び出された状態に応じて、動作を変え +% ています。したがって、欧文フォントと和文フォントの両方を一度に変更する、 +% 数式文字変更コマンドを作るとき、それぞれの状態に合った動作で動くように +% フォント切り替えコマンドを実行させる必要があります。 +% +% \textbf{使い方} +% \begin{verbatim} +% usage: \reDeclareMathAlphabet{\mathAA}{\mathBB}{\mathCC} +% \end{verbatim} +% 欧文・和文両用の数式文字変更コマンド |\mathAA| を(再)定義します。 +% 欧文用のコマンド |\mathBB| と、和文用の |\mathCC| を (p)\LaTeX{} 標準の +% 方法で定義しておいた後、上のように記述します。なお、|{\mathBB}{\mathCC}| +% の部分については |{\@mathBB}{\@mathCC}| のように @ をつけた記述 +% をしてもかまいません(互換性のため)。上のような命令を発行すると、 +% |\mathAA| が、欧文に対しては |\mathBB|、 和文に対しては |\mathCC| の意味を +% 持つようになります。 +% 通常は、|\reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}| のように +% |AA=BB| として用います。また、|\mathrm| は \LaTeX{} kernel において +% 標準のコマンドとして既に定義されているので、この場合は |\mathrm| の +% 再定義となります。native mode での |\rm| のような two letter command +% (old font command) に対しても同様なことが引きおこります。つまり、 +% 数式モードにおいて、新たな |\rm| は、\LaTeX{} original の |\rm| と |\mc| +% (正確に言えば |\mathrm| と |\mathmc| であるが)の意味を合わせ持つように +% なります。 +% +% \textbf{補足} +% \begin{itemize} +% \item +% |\mathAA| を再定義する他の命令(|\DeclareSymbolFontAlphabet| を用いる +% パッケージの使用等)との衝突を避けるためには、|\AtBeginDocument| を併用 +% するなどして展開位置の制御を行ってください。 +% \item +% テキストモード時のエラー表示用に |\mathBB| のみを用いることを除いて、 +% |\mathBB| と |\mathCC| の順は実際には意味を持ちません。和文、欧文の順に +% 定義しても問題はありません。 +% \item +% 第2,3引き数には |{\@mathBB}{\@mathCC}| のように |@| をつけた記述も +% 行えます。ただし、形式は統一してください。判断は第2引き数で行って +% いるため、 |{\@mathBB}{\mathCC}| のような記述ではうまく動作しません。 +% また、|\makeatletter| な状態で |{\@mathBB }{\@mathCC }| のような |@| と +% 余分なスペースをつけた場合には無限ループを引き起こすことがあります。 +% このような記述は避けるようにして下さい。 +% \item +% |\reDeclareMathAlphabet| を実行する際には、|\mathBB|, |\mathCC| が定義 +% されている必要はありません。実際に |\mathAA| を用いる際にはこれらの +% |\mathBB|, |\mathCC| が (p)\LaTeX{}標準の方法で定義されている必要があります。 +% \item +% 他の部分で |\mathAA| を全く定義しない場合を除き、|\mathAA| は +% |\reDeclareMathAlphabet| を実行する以前で (p)\LaTeX{}標準の方法で定義され +% ている必要があります(|\mathrm| や |\mathbf| の標準的なコマンドは、 +% \LaTeX{} kernel で既に定義されています)。 +% |\DeclareMathAlphabet| の場合には、|\reDeclareMathAlphabet| よりも前で1度 +% |\mathAA| を定義してあれば、|\reDeclareMathAlphabet| の後ろで再度 +% |\DeclareMathAlphabet| を用いて |\mathAA| の内部の定義内容を変更すること +% には問題ありません。 +% |\DeclareSymbolFontAlphabet| の場合、再定義においても |\mathAA| が直接 +% 定義されるので、|\mathAA| に対する最後の |\DeclareSymbolFontAlphabet| の +% さらに後で |\reDeclareMathAlphabet| を実行しなければ有効とはなりません。 +% \item +% |\documentstyle| の互換モードの場合、|\rm| 等の two letter command +% (old font command) は、|\reDeclareMathAlphabet| とは関連することのない +% 別個のコマンドとして定義されます。従って、この場合には +% |\reDeclareMathAlphabet| を用いても |\rm| 等は数式モードにおいて +% 欧文・和文両用のものとはなりません。 +% \end{itemize} +% \begin{macrocode} +\def\reDeclareMathAlphabet#1#2#3{% + \edef#1{\noexpand\protect\expandafter\noexpand\csname% + \expandafter\@gobble\string#1\space\space\endcsname}% + \edef\@tempa{\expandafter\@gobble\string#2}% + \edef\@tempb{\expandafter\@gobble\string#3}% + \edef\@tempc{\string @\expandafter\@gobbletwo\string#2}% + \ifx\@tempc\@tempa% + \edef\@tempa{\expandafter\@gobbletwo\string#2}% + \edef\@tempb{\expandafter\@gobbletwo\string#3}% + \fi + \expandafter\edef\csname\expandafter\@gobble\string#1\space\space\endcsname% + {\noexpand\DualLang@mathalph@bet% + {\expandafter\noexpand\csname\@tempa\space\endcsname}% + {\expandafter\noexpand\csname\@tempb\space\endcsname}% + }% +} +\@onlypreamble\reDeclareMathAlphabet +\def\DualLang@mathalph@bet#1#2{% + \relax\ifmmode + \ifx\math@bgroup\bgroup% 2e normal style (\mathrm{...}) + \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard + \else + \ifx\math@bgroup\relax% 2e two letter style (\rm->\mathrm) + \let\DualLang@Mfontsw\DLMfontsw@oldstyle + \else + \ifx\math@bgroup\@empty% 2.09 oldlfont style ({\mathrm ...}) + \let\DualLang@Mfontsw\DLMfontsw@oldlfont + \else% panic! assume 2e normal style + \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard + \fi + \fi + \fi + \else + \let\DualLang@Mfontsw\@firstoftwo + \fi + \DualLang@Mfontsw{#1}{#2}% +} +\def\DLMfontsw@standard#1#2#3{#1{#2{#3}}\egroup} +\def\DLMfontsw@oldstyle#1#2{#1\relax\@fontswitch\relax{#2}} +\def\DLMfontsw@oldlfont#1#2{#1\relax#2\relax} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\DeclareRelationFont} +% \begin{macro}{\SetRelationFont} +% 和文書体に対する従属書体を宣言するコマンドです。\emph{従属書体}とは、 +% ある和文書体とペアになる欧文書体のことです。 +% 主に多書体パッケージ|skfonts|を用いるための仕組みです。 +% +% |\DeclareRelationFont|コマンドの最初の4つの引数の組が和文書体の属性、 +% その後の4つの引数の組が従属書体の属性です。 +% \begin{verbatim} +% \DeclareRelationFont{JY1}{mc}{m}{n}{OT1}{cmr}{m}{n} +% \DeclareRelationFont{JY1}{gt}{m}{n}{OT1}{cmr}{bx}{n} +% \end{verbatim} +% 上記の例は、明朝体の従属書体としてコンピュータモダンローマン、 +% ゴシック体の従属書体としてコンピュータモダンボールドを宣言しています。 +% カレント和文書体が|\JY1/mc/m/n|となると、 +% 自動的に欧文書体が|\OT1/cmr/m/n|になります。 +% また、和文書体が|\JY1/gt/m/n|になったときは、 +% 欧文書体が|\OT1/cmr/bx/n|になります。 +% +% 和文書体のシェイプ指定を省略するとエンコード/ファミリ/シリーズの組合せで +% 従属書体が使われます。このときは、|\selectfont|が呼び出された時点での +% シェイプ(|\f@shape|)の値が使われます。 +% +% |\DeclareRelationFont|の設定値はグローバルに有効です。 +% |\SetRelationFont|の設定値はローカルに有効です。 +% フォント定義ファイルで宣言をする場合は、 +% |\DeclareRelationFont|を使ってください。 +% \begin{macrocode} +\def\all@shape{all}% +\def\DeclareRelationFont#1#2#3#4#5#6#7#8{% + \def\rel@shape{#4}% + \ifx\rel@shape\@empty + \global + \expandafter\def\csname rel@#1/#2/#3/all\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}}% + \else + \global + \expandafter\def\csname rel@#1/#2/#3/#4\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}\romanshape{#8}}% + \fi +} +\def\SetRelationFont#1#2#3#4#5#6#7#8{% + \def\rel@shape{#4}% + \ifx\rel@shape\@empty + \expandafter\def\csname rel@#1/#2/#3/all\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}}% + \else + \expandafter\def\csname rel@#1/#2/#3/#4\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}\romanshape{#8}}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\if@knjcmd} +% \begin{macro}{\userelfont} +% |\if@knjcmd|は欧文書体を従属書体にするかどうかのフラグです。 +% このフラグが真になると、欧文書体に従属書体が使われます。 +% このフラグは|\userelfont|コマンドによって、\emph{真}となります。 +% そして|\selectfont|実行後には\emph{偽}に初期化されます。 +% \begin{macrocode} +\newif\if@knjcmd +\def\userelfont{\@knjcmdtrue} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\selectfont} +% |\selectfont|のオリジナルからの変更部分は、次の3点です。 +% \begin{itemize} +% \item 和文書体を変更する部分 +% \item 従属書体に変更する部分 +% \item 和欧文のベースラインを調整する部分 +% \end{itemize} +% +% \changes{v1.0c}{1995/08/22}{縦横両方のフォントを切り替えるようにした} +% \changes{v1.2}{1995/11/22}{エラーフォントに対応した} +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% |\selectfont|コマンドは、まず、和文フォントを切り替えます。 +% \begin{macrocode} +% +%<*plcore|trace> +\DeclareRobustCommand\selectfont{% + \let\tmp@error@fontshape\error@fontshape + \let\error@fontshape\error@kfontshape + \edef\tmp@item{{\k@encoding}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% + \ifin@ + \let\cy@encoding\k@encoding + \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}% + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% + \ifin@ + \let\ct@encoding\k@encoding + \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}% + \else + \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha + \fi + \fi + \let\font\tfont + \let\k@encoding\ct@encoding + \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% + \pickup@font + \font@name + \let\font\jfont + \let\k@encoding\cy@encoding + \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% + \pickup@font + \font@name + \expandafter\def\expandafter\k@encoding\tmp@item + \kenc@update + \let\error@fontshape\tmp@error@fontshape +% \end{macrocode} +% 次に、|\if@knjcmd|が真の場合、 +% 欧文書体を現在の和文書体に関連付けされたフォントに変えます。 +% このフラグは|\userelfont|コマンドによって\emph{真}となります。 +% このフラグはここで再び、\emph{偽}に設定されます。 +% \begin{macrocode} + \if@knjcmd \@knjcmdfalse + \expandafter\ifx + \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax + \expandafter\ifx + \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax + \else + \csname rel@\k@encoding/\k@family/\k@series/all\endcsname + \fi + \else + \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname + \fi + \fi +% \end{macrocode} +% そして、欧文フォントを切り替えます。 +% \begin{macrocode} + \let\font\afont + \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}% + \pickup@font + \font@name +%\ifnum \tracingfonts>\tw@ +% \@font@info{Roman:Switching to \font@name}\fi + \enc@update +% \end{macrocode} +% 最後に、サイズが変更されていれば、ベースラインの調整などを行ないます。 +% 英語版の|\selectfont|では最初に行なっていますが、 +% p\LaTeXe{}ではベースラインシフトの調整をするために、 +% 書体を確定しなければならないため、一番最後に行ないます +% +% \changes{v1.1b}{1995/04/26}{ベースラインの調整をサイズ変更時に +% 行なうようにした} +% \begin{macrocode} + \ifx\f@linespread\baselinestretch \else + \set@fontsize\baselinestretch\f@size\f@baselineskip + \fi + \size@update} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\KanjiEncodingPair} +% 和文の縦横のエンコーディングはそれぞれ対にして扱うため、セット化します +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% \begin{macrocode} +\def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}} +\KanjiEncodingPair{JY1}{JT1} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\set@fontsize} +% |\fontsize|コマンドの内部形式です。 +% ベースラインの設定と、支柱の設定を行ないます。 +% \begin{macrocode} +\def\set@fontsize#1#2#3{% + \@defaultunits\@tempdimb#2pt\relax\@nnil + \edef\f@size{\strip@pt\@tempdimb}% + \@defaultunits\@tempskipa#3pt\relax\@nnil + \edef\f@baselineskip{\the\@tempskipa}% + \edef\f@linespread{#1}% + \let\baselinestretch\f@linespread + \def\size@update{% + \baselineskip\f@baselineskip\relax + \baselineskip\f@linespread\baselineskip + \normalbaselineskip\baselineskip +% \end{macrocode} +% ここで、ベースラインシフトの調整と支柱を組み立てます。 +% \begin{macrocode} + \adjustbaseline + \setbox\strutbox\hbox{\yoko + \vrule\@width\z@ + \@height.7\baselineskip \@depth.3\baselineskip}% + \setbox\tstrutbox\hbox{\tate + \vrule\@width\z@ + \@height.5\baselineskip \@depth.5\baselineskip}% + \setbox\zstrutbox\hbox{\tate + \vrule\@width\z@ + \@height.7\baselineskip \@depth.3\baselineskip}% +% \end{macrocode} +% フォントサイズとベースラインに関する診断情報を出力します。 +% \begin{macrocode} +%<*trace> + \ifnum \tracingfonts>\tw@ + \ifx\f@linespread\@empty + \let\reserved@a\@empty + \else + \def\reserved@a{\f@linespread x}% + \fi + \@font@info{Changing size to\space + \f@size/\reserved@a \f@baselineskip}% + \aftergroup\type@restoreinfo + \fi +% + \let\size@update\relax}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\adjustbaseline} +% 現在の和文フォントの空白(EUCコード\texttt{0xA1A1})の中央に +% 現在の欧文フォントの``/''の中央がくるようにベースラインシフトを設定します。 +% \changes{v1.0c}{1995/08/31}{欧文書体の基準を`M'から`/'に変更} +% \changes{v1.2}{1995/11/21}{縦組時のみ調整するようにした} +% \changes{v1.3j}{2000/10/24}{文頭に鈎括弧などがあるときに余計なアキがで +% る問題に対処} +% \changes{v1.3l}{2002/04/05}{\cs{adjustbaseline}でフォントの基準値が縦書き +% 以外では設定されないのを修正} +% +% 当初はまずベースラインシフト量をゼロにしていましたが、 +% \cs{tbaselineshift}を連続して変更した後に鈎括弧類を使うと余計なアキが +% でる問題が起こるため、\cs{tbaselineshift}をゼロクリアする処理を削除し +% ました。 +% +% しかし、それではベースラインシフトを調整済みの欧文ボックスと比較して +% しまうため、計算した値が大きくなってしまいます。そこで、このボックス +% の中でゼロにするようにしました。また、``/''と比較していたのを``M''に +% しました。 +% \changes{v1.3k}{2001/05/10}{\cs{adjustbaseline}の調整量} +% \begin{macrocode} +\newbox\adjust@box +\newdimen\adjust@dimen +\def\adjustbaseline{% +% \end{macrocode} +% 和文フォントの基準値を設定します。 +% \begin{macrocode} + \setbox\adjust@box\hbox{\char\euc"A1A1}% + \cht\ht\adjust@box + \cdp\dp\adjust@box + \cwd\wd\adjust@box + \cvs\normalbaselineskip + \chs\cwd + \cHT\cht \advance\cHT\cdp +% \end{macrocode} +% 基準となる欧文フォントの文字を含んだボックスを作成し、 +% ベースラインシフト量の計算を行ないます。 +% 計算式は次のとおりです。 +% +% \begin{eqnarray*} +% \textmc{ベースラインシフト量} &=& +% \{ (\textmc{全角空白の深さ}) - (\textmc{/の深さ}) \} \\ +% &&- \frac{(\textmc{全角空白の高さ$+$深さ}) +% - (\textmc{/の高さ$+$深さ})}{2} +% \end{eqnarray*} +% +% \begin{macrocode} + \iftdir + \setbox\adjust@box\hbox{\tbaselineshift\z@ M}% + \adjust@dimen\ht\adjust@box + \advance\adjust@dimen\dp\adjust@box + \advance\adjust@dimen-\cHT + \divide\adjust@dimen\tw@ + \advance\adjust@dimen\cdp + \advance\adjust@dimen-\dp\adjust@box + \tbaselineshift\adjust@dimen +% \ifnum \tracingfonts>\tw@ +% \typeout{baselineshift:\the\tbaselineshift} +% \fi + \fi} +% +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\romanencoding} +% \begin{macro}{\kanjiencoding} +% \begin{macro}{\fontencoding} +% 書体のエンコードを指定するコマンドです。 +% |\fontencoding|コマンドは和欧文のどちらかに影響します。 +% |\DeclareKanjiEncoding|で指定されたエンコードは和文エンコードとして、 +% |\DeclareFontEncoding|で指定されたエンコードは欧文エンコードとして +% 認識されます。 +% +% |\kanjiencoding|と|\romanencoding|は与えられた引数が、 +% エンコードとして登録されているかどうかだけを確認し、 +% それが和文か欧文かのチェックは行なっていません。 +% そのため、高速に動作をしますが、|\kanjiencoding|に欧文エンコードを指定したり、 +% 逆に|\romanencoding|に和文エンコードを指定した場合はエラーとなります。 +% \begin{macrocode} +\DeclareRobustCommand\romanencoding[1]{% + \expandafter\ifx\csname T@#1\endcsname\relax + \@latex@error{Encoding scheme `#1' unknown}\@eha + \else + \edef\f@encoding{#1}% + \ifx\cf@encoding\f@encoding + \let\enc@update\relax + \else + \let\enc@update\@@enc@update + \fi + \fi +} +\DeclareRobustCommand\kanjiencoding[1]{% + \expandafter\ifx\csname T@#1\endcsname\relax + \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha + \else + \edef\k@encoding{#1}% + \ifx\ck@encoding\k@encoding + \let\kenc@update\relax + \else + \let\kenc@update\@@kenc@update + \fi + \fi +} +\DeclareRobustCommand\fontencoding[1]{% + \edef\tmp@item{{#1}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kenc@list}% + \ifin@ \kanjiencoding{#1}\else\romanencoding{#1}\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@kenc@update} +% |\kanjiencoding|コマンドのコードからもわかるように、 +% |\ck@encoding|と|\k@encoding|が異なる場合、 +% |\kenc@update|コマンドは|\@@kenc@update|コマンドと等しくなります。 +% +% |\@@kenc@update|コマンドは、そのエンコードでのデフォルト値を設定するための +% コマンドです。欧文用の|\@@enc@update|コマンドでは、 +% \mlineplus{2}行目と\mlineplus{3}行目のような代入もしていますが、 +% 和文用にはコメントにしてあります。 +% これらは|\DeclareTextCommand|や|\ProvideTextCommand|などで +% エンコードごとに設定されるコマンドを使うための仕組みです。 +% しかし、和文エンコードに依存するようなコマンドやマクロを作成することは、 +% 現時点では、ないと思います。 +% +% \changes{v1.0c}{1995/08/22}{縦横用エンコードの保存} +% \begin{macrocode} +\def\@@kenc@update{% +% \expandafter\let\csname\ck@encoding -cmd\endcsname\@changed@kcmd +% \expandafter\let\csname\k@encoding-cmd\endcsname\@current@cmd + \default@KT + \csname T@\k@encoding\endcsname + \csname D@\k@encoding\endcsname + \let\kenc@update\relax + \let\ck@encoding\k@encoding + \edef\tmp@item{{\k@encoding}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% + \ifin@ \let\cy@encoding\k@encoding + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% + \ifin@ \let\ct@encoding\k@encoding + \else + \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha + \fi + \fi +} +\let\kenc@update\relax +% \end{macrocode} +% +% |\@changed@cmd|の和文エンコーディングバージョン。 +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% \begin{macrocode} +\def\@changed@kcmd#1#2{% + \ifx\protect\@typeset@protect + \@inmathwarn#1% + \expandafter\ifx\csname\ck@encoding\string#1\endcsname\relax + \expandafter\ifx\csname ?\string#1\endcsname\relax + \expandafter\def\csname ?\string#1\endcsname{% + \TextSymbolUnavailable#1% + }% + \fi + \global\expandafter\let + \csname\cf@encoding \string#1\expandafter\endcsname + \csname ?\string#1\endcsname + \fi + \csname\ck@encoding\string#1% + \expandafter\endcsname + \else + \noexpand#1% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@notkfam} +% \begin{macro}{\@notffam} +% |\fontfamily|コマンド内で使用するフラグです。 +% |@notkfam|フラグは和文ファミリでなかったことを、 +% |@notffam|フラグは欧文ファミリでなかったことを示します。 +% +% \changes{v1.2}{1995/11/21}{\cs{fontfamily}コマンド用のフラグ追加} +% \begin{macrocode} +\newif\if@notkfam +\newif\if@notffam +% \end{macrocode} +% \changes{v1.3m}{2004/06/14}{\cs{fontfamily}コマンド内部フラグ変更} +% \begin{macrocode} +\newif\if@tempswz +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanfamily} +% \begin{macro}{\kanjifamily} +% \begin{macro}{\fontfamily} +% 書体のファミリを指定するコマンドです。 +% +% |\kanjifamily|と|\romanfamily|は与えられた引数が、 +% 和文あるいは欧文のファミリとして正しいかのチェックは行なっていません。 +% そのため、高速に動作をしますが、|\kanjifamily|に欧文ファミリを指定したり、 +% 逆に|\romanfamily|に和文ファミリを指定した場合は、エラーとなり、 +% 代用フォントかエラーフォントが使われます。 +% \begin{macrocode} +\DeclareRobustCommand\romanfamily[1]{\edef\f@family{#1}} +\DeclareRobustCommand\kanjifamily[1]{\edef\k@family{#1}} +% \end{macrocode} +% +% |\fontfamily|は、指定された値によって、和文ファミリか欧文ファミリ、 +% \emph{あるいは両方}のファミリを切り替えます。 +% 和欧文ともに無効なファミリ名が指定された場合は、和欧文ともに代替書体が +% 使用されます。 +% +% 引数が|\rmfamily|のような名前で与えられる可能性があるため、 +% まず、これを展開したものを作ります。 +% +% また、和文ファミリと欧文ファミリのそれぞれになかったことを示すフラグを +% 偽にセットします。 +% +% \changes{v1.2}{1995/11/21}{代用フォントが使われないバグを修正} +% \changes{v1.3m}{2004/06/14}{\cs{fontfamily}コマンド内部フラグ変更} +% \changes{v1.3o}{2005/01/04}{\cs{fontfamily}中のフラグ修正} +% \begin{macrocode} +\DeclareRobustCommand\fontfamily[1]{% + \edef\tmp@item{{#1}}% + \@notkfamfalse + \@notffamfalse +% \end{macrocode} +% 次に、この引数が|\kfam@list|に登録されているかどうかを調べます。 +% 登録されていれば、|\k@family|にその値を入れます。 +% \begin{macrocode} + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% + \ifin@ \edef\k@family{#1}% +% \end{macrocode} +% そうでないときは、|\notkfam@list|に登録されているかどうかを調べます。 +% 登録されていれば、この引数は和文ファミリではありませんので、 +% |\@notkfam|フラグを真にして、欧文ファミリのルーチンに移ります。 +% +% このとき、|\efam@list|を調べるのではないことに注意をしてください。 +% |\efam@list|を調べ、これにないファミリを和文ファミリであるとすると、 +% たとえば、欧文ナールファミリが定義されているけれども、和文ナールファミリ +% が未定義の場合、|\fontfamily{nar}|という指定は、|nar|が|\efam@list|にだけ、 +% 登録されているため、和文書体をナールにすることができません。 +% +% 逆に、|\kfam@list|に登録されていないからといって、|\k@family|に|nar|を設定 +% すると、|cmr|のようなファミリも|\k@family|に設定される可能性があります。 +% したがって、「欧文でない」を明示的に示す|\notkfam@list|を見る必要があります。 +% \begin{macrocode} + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\notkfam@list}% + \ifin@ \@notkfamtrue +% \end{macrocode} +% |\notkfam@list|に登録されていない場合は、 +% フォント定義ファイルが存在するかどうかを調べます。 +% ファイルが存在する場合は、|\k@family|を変更します。 +% ファイルが存在しない場合は、|\notkfam@list|に登録します。 +% +% |\kenc@list|に登録されているエンコードと、指定された和文ファミリの +% 組合せのフォント定義ファイルが存在する場合は、|\k@family|に指定された +% 値を入れます。 +% \changes{v1.3c}{1997/04/24}% +% {フォント定義ファイル名を小文字に変換してから探すようにした。} +% \changes{v1.3e}{1997/07/10}{fdファイル名の小文字化が効いていなかったのを +% 修正。ありがとう、大岩さん} +% \begin{macrocode} + \else + \@tempswzfalse + \def\fam@elt{\noexpand\fam@elt}% + \message{(I search kanjifont definition file:}% + \def\enc@elt<##1>{\message{.}% + \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% + \reserved@a{\@tempswztrue}{}\relax}% + \kenc@list + \message{)}% + \if@tempswz + \edef\k@family{#1}% +% \end{macrocode} +% つぎの部分が実行されるのは、和文ファミリとして認識できなかった場合です。 +% この場合は、|\@notkfam|フラグを真にして、|\notkfam@list|に登録します。 +% \changes{v1.1b}{1995/05/10}{\cs{notkfam@list}に、 +% エンコードごとに登録されてしまうのを修正した。欧文についても同様。} +% \begin{macrocode} + \else + \@notkfamtrue + \xdef\notkfam@list{\notkfam@list\fam@elt<#1>}% + \fi +% \end{macrocode} +% |\kfam@list|と|\notkfam@list|に登録されているかどうかを +% 調べた|\ifin@|を閉じます。 +% \begin{macrocode} + \fi\fi +% \end{macrocode} +% 欧文ファミリの場合も、和文ファミリと同様の方法で確認をします。 +% \changes{v1.3e}{1997/07/10}{fdファイル名の小文字化が効いていなかったのを修正} +% \begin{macrocode} + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% + \ifin@ \edef\f@family{#1}\else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\notffam@list}% + \ifin@ \@notffamtrue \else + \@tempswzfalse + \def\fam@elt{\noexpand\fam@elt}% + \message{(I search font definition file:}% + \def\enc@elt<##1>{\message{.}% + \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% + \reserved@a{\@tempswztrue}{}\relax}% + \fenc@list + \message{)}% + \if@tempswz + \edef\f@family{#1}% + \else + \@notffamtrue + \xdef\notffam@list{\notffam@list\fam@elt<#1>}% + \fi + \fi\fi +% \end{macrocode} +% 最後に、指定された文字列が、和文ファミリと欧文ファミリのいずれか、 +% あるいは両方として認識されたかどうかを確認します。 +% +% どちらとも認識されていない場合は、ファミリの指定ミスですので、 +% 代用フォントを使うために、故意に指定された文字列をファミリに +% 入れます。 +% \begin{macrocode} + \if@notkfam\if@notffam + \edef\k@family{#1}\edef\f@family{#1}% + \fi\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanseries} +% \begin{macro}{\kanjiseries} +% \begin{macro}{\fontseries} +% 書体のシリーズを指定するコマンドです。 +% |\fontseries|コマンドは和欧文の両方に影響します。 +% \begin{macrocode} +\DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}} +\DeclareRobustCommand\kanjiseries[1]{\edef\k@series{#1}} +\DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanshape} +% \begin{macro}{\kanjishape} +% \begin{macro}{\fontshape} +% 書体のシェイプを指定するコマンドです。 +% |\fontshape|コマンドは和欧文の両方に影響します。 +% \begin{macrocode} +\DeclareRobustCommand\romanshape[1]{\edef\f@shape{#1}} +\DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#1}} +\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\usekanji} +% \begin{macro}{\useroman} +% \begin{macro}{\usefont} +% 書体属性を一度に指定するコマンドです。 +% 和文書体には|\usekanji|を、欧文書体には|\useroman|を指定してください。 +% +% |\usefont|コマンドは、第一引数で指定されるエンコードによって、 +% 和文または欧文フォントを切り替えます。 +% \begin{macrocode} +\def\usekanji#1#2#3#4{% + \kanjiencoding{#1}\kanjifamily{#2}\kanjiseries{#3}\kanjishape{#4}% + \selectfont\ignorespaces} +\def\useroman#1#2#3#4{% + \romanencoding{#1}\romanfamily{#2}\romanseries{#3}\romanshape{#4}% + \selectfont\ignorespaces} +\def\usefont#1#2#3#4{% + \edef\tmp@item{{#1}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kenc@list}% + \ifin@ \usekanji{#1}{#2}{#3}{#4}% + \else\useroman{#1}{#2}{#3}{#4}% + \fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\normalfont} +% 書体をデフォルト値にするコマンドです。 +% 和文書体もデフォルト値になるように再定義しています。 +% ただし高速化のため、|\usekanji|と|\useroman|を展開し、 +% |\selectfont|を一度しか呼び出さないようにしています。 +% \begin{macrocode} +\DeclareRobustCommand\normalfont{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\kanjifamilydefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \romanencoding{\encodingdefault}% + \romanfamily{\familydefault}% + \romanseries{\seriesdefault}% + \romanshape{\shapedefault}% + \selectfont\ignorespaces} + \adjustbaseline +\let\reset@font\normalfont +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\mcfamily} +% \begin{macro}{\gtfamily} +% 和文書体を明朝体にする|\mcfamily|とゴシック体にする|\gtfamily|を定義します。 +% これらは、|\rmfamily|などに対応します。 +% |\mathmc|と|\mathgt|は数式内で用いるときのコマンド名です。 +% \begin{macrocode} +\DeclareRobustCommand\mcfamily + {\not@math@alphabet\mcfamily\mathmc + \kanjifamily\mcdefault\selectfont} +\DeclareRobustCommand\gtfamily + {\not@math@alphabet\gtfamily\mathgt + \kanjifamily\gtdefault\selectfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanprocess@table} +% \begin{macro}{\kanjiprocess@table} +% \begin{macro}{\process@table} +% 文書の先頭で、和文デフォルトフォントの変更が反映されないのを修正します。 +% \changes{v1.3g}{1999/04/05}{plpatch.ltxの内容を反映。 +% ありがとう、山本さん。} +% \begin{macrocode} +\let\romanprocess@table\process@table +\def\kanjiprocess@table{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\kanjifamilydefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% +} +\def\process@table{% + \romanprocess@table + \kanjiprocess@table +} +\@onlypreamble\romanprocess@table +\@onlypreamble\kanjiprocess@table +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% \begin{macro}{\textunderscore} +% \changes{v1.1b}{1995/04/12}{下線マクロを追加} +% このコマンドはテキストモードで指定された|\_|の内部コマンドです。 +% 縦組での位置を調整するように再定義をします。 +% もとは\file{ltoutenc.dtx}で定義されています。 +% +% なお、|\_|を数式モードで使うと|\mathunderscore|が実行されます。 +% \begin{macrocode} +\DeclareTextCommandDefault{\textunderscore}{% + \leavevmode\kern.06em + \iftdir\raise-\tbaselineshift\fi + \vbox{\hrule\@width.3em}} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{デフォルト設定ファイルの読み込み} +% 最後に、デフォルト設定ファイルである、\file{pldefs.ltx}を読み込みます。 +% このファイルについての詳細は、第\ref{plfonts:pldefs}節を参照してください。 +% \TeX{}の入力ファイル検索パスに設定されているディレクトリに\file{pldefs.cfg}% +% ファイルがある場合は、そのファイルを使います。 +% \begin{macrocode} +\InputIfFileExists{pldefs.cfg} + {\typeout{*************************************^^J% + * Local config file pldefs.cfg used^^J% + *************************************}}% + {\input{pldefs.ltx}} +% +% \end{macrocode} +% +% +% +% +% \section{デフォルト設定ファイル}\label{plfonts:pldefs} +% ここでは、フォーマットファイルに読み込まれるデフォルト値を設定しています。 +% この節での内容は\file{pldefs.ltx}に出力されます。 +% このファイルの内容を\file{plcore.ltx}に含めてもよいのですが、 +% デフォルトの設定を参照しやすいように、別ファイルにしてあります。 +% \file{pldefs.ltx}は\file{plcore.ltx}から読み込まれます。 +% +% プリロードサイズは、\dst{}プログラムのオプションで変更することができます。 +% これ以外の設定を変更したい場合は、\file{pldefs.ltx}を +% 直接、修正するのではなく、このファイルを\file{pldefs.cfg}という名前で +% コピーをして、そのファイルに対して修正を加えるようにしてください。 +% \begin{macrocode} +%<*pldefs> +\ProvidesFile{pldefs.ltx} + [2000/07/13 v1.2 pLaTeX Kernel (Default settings)] +% \end{macrocode} +% +% \subsection{イタリック補正} +% \changes{v1.3i}{2000/07/13}{\cs{text..}コマンドの左側に\cs{xkanjiskip}が +% 入らないのを修正(ありがとう、乙部@東大さん)} +% \begin{macro}{\check@nocorr@} +% 「\verb|あ\texttt{abc}い|」としたとき、書体の変更を指定された欧文の左側に +% 和欧文間スペースが入らないのを修正します。 +% \begin{macrocode} +\def \check@nocorr@ #1#2\nocorr#3\@nil {% + \let \check@icl \relax% \maybe@ic から変更 + \def \check@icr {\ifvmode \else \aftergroup \maybe@ic \fi}% + \def \reserved@a {\nocorr}% + \def \reserved@b {#1}% + \def \reserved@c {#3}% + \ifx \reserved@a \reserved@b + \ifx \reserved@c \@empty + \let \check@icl \@empty + \else + \let \check@icl \@empty + \let \check@icr \@empty + \fi + \else + \ifx \reserved@c \@empty + \else + \let \check@icr \@empty + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{テキストフォント} +% テキストフォントのための属性やエラー書体などの宣言です。 +% +% \noindent +% 縦横エンコード共通: +% \begin{macrocode} +\DeclareKanjiEncodingDefaults{}{} +\DeclareErrorKanjiFont{JY1}{mc}{m}{n}{10} +% \end{macrocode} +% 横組エンコード: +% \begin{macrocode} +\DeclareYokoKanjiEncoding{JY1}{}{} +\DeclareKanjiSubstitution{JY1}{mc}{m}{n} +% \end{macrocode} +% 縦組エンコード: +% \begin{macrocode} +\DeclareTateKanjiEncoding{JT1}{}{} +\DeclareKanjiSubstitution{JT1}{mc}{m}{n} +% \end{macrocode} +% フォント属性のデフォルト値: +% \begin{macrocode} +\newcommand\mcdefault{mc} +\newcommand\gtdefault{gt} +\newcommand\kanjiencodingdefault{JY1} +\newcommand\kanjifamilydefault{\mcdefault} +\newcommand\kanjiseriesdefault{\mddefault} +\newcommand\kanjishapedefault{\updefault} +% \end{macrocode} +% 和文エンコードの指定: +% \begin{macrocode} +\kanjiencoding{JY1} +% \end{macrocode} +% フォント定義: +% これらの具体的な内容は第\ref{plfonts:fontdef}節を参照してください。 +% \changes{v1.3}{1997/01/24}{Rename font definition filename.} +% \begin{macrocode} +\input{jy1mc.fd} +\input{jy1gt.fd} +\input{jt1mc.fd} +\input{jt1gt.fd} +% \end{macrocode} +% フォントを有効にする +% \begin{macrocode} +\fontencoding{JT1}\selectfont +\fontencoding{JY1}\selectfont +% \end{macrocode} +% +% \begin{macro}{\textmc} +% \begin{macro}{\textgt} +% \changes{v1.3b}{1997/01/28}{\cs{textmc}, \cs{textgt}の動作修正} +% テキストファミリを切り替えるためのコマンドです。 +% \file{ltfntcmd.dtx}で定義されている|\textrm|などに対応します。 +% \begin{macrocode} +\DeclareTextFontCommand{\textmc}{\mcfamily} +\DeclareTextFontCommand{\textgt}{\gtfamily} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\em} +% \begin{macro}{\emph} +% \changes{v1.3d}{1997/06/25}{\cs{em},\cs{emph}で和文を強調書体に} +% 従来は|\em|, |\emph|で和文フォントの切り替えは行っていませんでしたが、 +% 和文フォントも|\gtfamily|に切り替えるようにしました。 +% \begin{macrocode} +\DeclareRobustCommand\em + {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ + \mcfamily \upshape \else \gtfamily \itshape \fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \changes{v1.3b}{1997/01/30}{数式用フォントの宣言をクラスファイルに移動した} +% +% +% \subsection{プリロードフォント} +% あらかじめフォーマットファイルにロードされるフォントの宣言です。 +% \dst{}プログラムのオプションでロードされるフォントのサイズを +% 変更することができます。\file{platex.ins}では|xpt|を指定しています。 +% \begin{macrocode} +%<*xpt> +\DeclarePreloadSizes{JY1}{mc}{m}{n}{5,7,10,12} +\DeclarePreloadSizes{JY1}{gt}{m}{n}{5,7,10,12} +\DeclarePreloadSizes{JT1}{mc}{m}{n}{5,7,10,12} +\DeclarePreloadSizes{JT1}{gt}{m}{n}{5,7,10,12} +% +%<*xipt> +\DeclarePreloadSizes{JY1}{mc}{m}{n}{5,7,10.95,12} +\DeclarePreloadSizes{JY1}{gt}{m}{n}{5,7,10.95,12} +\DeclarePreloadSizes{JT1}{mc}{m}{n}{5,7,10.95,12} +\DeclarePreloadSizes{JT1}{gt}{m}{n}{5,7,10.95,12} +% +%<*xiipt> +\DeclarePreloadSizes{JY1}{mc}{m}{n}{7,9,12,14.4} +\DeclarePreloadSizes{JY1}{gt}{m}{n}{7,9,12,14.4} +\DeclarePreloadSizes{JT1}{mc}{m}{n}{7,9,12,14.4} +\DeclarePreloadSizes{JT1}{gt}{m}{n}{7,9,12,14.4} +% +%<*ori> +\DeclarePreloadSizes{JY1}{mc}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +\DeclarePreloadSizes{JY1}{gt}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +\DeclarePreloadSizes{JT1}{mc}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +\DeclarePreloadSizes{JT1}{gt}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +% +% \end{macrocode} +% +% +% \subsection{組版パラメータ} +% 禁則パラメータや文字間へ挿入するスペースの設定などです。 +% 実際の各文字への禁則パラメータおよびスペースの挿入の許可設定などは、 +% \file{kinsoku.tex}で行なっています。 +% 具体的な設定については、\file{kinsoku.dtx}を参照してください。 +% \begin{macrocode} +\InputIfFileExists{kinsoku.tex}% + {\message{Loading kinsoku patterns for japanese.}} + {\errhelp{The configuration for kinsoku is incorrectly installed.^^J% + If you don't understand this error message you need + to seek^^Jexpert advice.}% + \errmessage{OOPS! I can't find any kinsoku patterns for japanese^^J% + \space Think of getting some or the + platex2e setup will never succeed}\@@end} +% \end{macrocode} +% +% 組版パラメータの設定をします。 +% |\kanjiskip|は、漢字と漢字の間に挿入されるグルーです。 +% |\noautospacing|で、挿入を中止することができます。 +% デフォルトは|\autospacing|です。 +% \begin{macrocode} +\kanjiskip=0pt plus .4pt minus .5pt +\autospacing +% \end{macrocode} +% |\xkanjiskip|は、和欧文間に自動的に挿入されるグルーです。 +% |\noautoxspacing|で、挿入を中止することができます。 +% デフォルトは|\autoxspacing|です。 +% \changes{v1.1c}{1995/09/12}{\cs{xkanjiskip}のデフォルト値} +% \begin{macrocode} +\xkanjiskip=.25zw plus1pt minus1pt +\autoxspacing +% \end{macrocode} +% |\jcharwidowpenalty|は、パラグラフに対する禁則です。 +% パラグラフの最後の行が1文字だけにならないように調整するために使われます。 +% \begin{macrocode} +\jcharwidowpenalty=500 +% \end{macrocode} +% 最後に、|\inhibitglue|の簡略形を定義します。 +% このコマンドは、和文フォントのメトリック情報から、自動的に挿入される +% グルーの挿入を禁止します。 +% \begin{macrocode} +\def\<{\inhibitglue} +% \end{macrocode} +% +% ここまでが、\file{pldefs.ltx}の内容です。 +% \begin{macrocode} +% +% \end{macrocode} +% +% +% +% \section{フォント定義ファイル}\label{plfonts:fontdef} +% \changes{v1.3}{1997/01/24}{Rename provided font definition filename.} +% ここでは、フォント定義ファイルの設定をしています。フォント定義ファイルは、 +% \LaTeX{}のフォント属性を\TeX{}フォントに置き換えるためのファイルです。 +% 記述方法についての詳細は、|fntguide.tex|を参照してください。 +% +% 欧文書体の設定については、 +% \file{cmfonts.fdd}や\file{slides.fdd}などを参照してください。 +% \file{skfonts.fdd}には、写研代用書体を使うためのパッケージと +% フォント定義が記述されています。 +% \begin{macrocode} +%\ProvidesFile{jy1mc.fd} +%\ProvidesFile{jy1gt.fd} +%\ProvidesFile{jt1mc.fd} +%\ProvidesFile{jt1gt.fd} +% [1997/01/24 v1.3 KANJI font defines] +% \end{macrocode} +% 横組用、縦組用ともに、 +% 明朝体のシリーズ|bx|がゴシック体となるように宣言しています。 +% \changes{v1.2}{1995/11/24}{it, sl, sc の宣言を外した} +% \changes{v1.3b}{1997/01/29}{フォント定義ファイルのサイズ指定の調整} +% \changes{v1.3b}{1997/03/11}{すべてのサイズをロード可能にした} +% \begin{macrocode} +%<*JY1mc> +\DeclareKanjiFamily{JY1}{mc}{} +\DeclareRelationFont{JY1}{mc}{m}{}{OT1}{cmr}{m}{} +\DeclareRelationFont{JY1}{mc}{bx}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JY1}{mc}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10 + }{} +\DeclareFontShape{JY1}{mc}{bx}{n}{<->ssub*gt/m/n}{} +% +%<*JT1mc> +\DeclareKanjiFamily{JT1}{mc}{} +\DeclareRelationFont{JT1}{mc}{m}{}{OT1}{cmr}{m}{} +\DeclareRelationFont{JT1}{mc}{bx}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JT1}{mc}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10 + }{} +\DeclareFontShape{JT1}{mc}{bx}{n}{<->ssub*gt/m/n}{} +% +%<*JY1gt> +\DeclareKanjiFamily{JY1}{gt}{} +\DeclareRelationFont{JY1}{gt}{m}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JY1}{gt}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10 + }{} +\DeclareFontShape{JY1}{gt}{bx}{n}{<->ssub*gt/m/n}{} +% +%<*JT1gt> +\DeclareKanjiFamily{JT1}{gt}{} +\DeclareRelationFont{JT1}{gt}{m}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JT1}{gt}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10 + }{} +\DeclareFontShape{JT1}{gt}{bx}{n}{<->ssub*gt/m/n}{} +% +% \end{macrocode} +% +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/platex/base/plnews01.tex b/Master/texmf-dist/source/platex/base/plnews01.tex new file mode 100644 index 00000000000..76b77c02ecc --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews01.tex @@ -0,0 +1,234 @@ +%% <1997/02/04> +\documentclass{plnews} + +\publicationmonth{2} +\publicationyear{1997} +\publicationissue{1} +\author{中野 賢(\texttt{ken-na at ascii.co.jp})} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}の以前のバージョンからの更新箇所をまとめたものです。 + +現在のp\LaTeXe{}は、\LaTeX{}\texttt{<1996/12/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{docstripバッチファイル} +p\LaTeXe{}の.dtxファイルから内容を取り出すための +\textsf{docstrip}用バッチファイルをいくつかのファイルに分割しました。 + +.insファイルと作成されるファイルの関係は、つぎのとおりです。 + +\begin{quote} +\begin{description} +\item[plcore.ins]\mbox{}\\ + 全体を展開するときに用いる。 + 以下の{.ins}ファイルを展開するのと同等。 +\item[plfmt.ins]\mbox{}\\ + カーネル部分や付属パッケージファイルを作成するのに用いる。 +\item[plcls.ins]\mbox{}\\ + 標準クラスファイルを作成するのに用いる。 +\item[pldocs.ins]\mbox{}\\ + 付属の文書ファイルを処理するためのファイルを作成するのに用いる。 +\item[pl209.ins]\mbox{}\\ + 2.09互換モードで用いるファイルを作成するのに用いる。 +\end{description} +\end{quote} + +たとえば、クラスファイルだけを再度、作成したい場合は、つぎのように +platexコマンドでplcls.insファイルを処理します。 + +\begin{verbatim} + platex plcls.ins +\end{verbatim} + +すると、jarticle.clsやtarticle.clsなどの標準クラスファイルと、 +jsize10.cloなどの補助クラスファイルがカレントディレクトリに作成されます。 + + +\section{クラスファイル} +標準クラスファイル\{j,t\}\{aritlce,book,report\}クラスに対して行なわれた +変更はつぎのとおりです。 + +\subsection{本文領域の広いレイアウト} +j\LaTeX~2.09やp\LaTeX~2.09とともに使われていた、 +|a4j|, |a5j|, |b4j|,|b5j|, |a4p|, |a5p|, |b4p|,|b5p|のスタイルファイルと +同等のレイアウトをするためのクラスオプションを追加しました。 +これらのオプションを指定すると、デフォルトで設定されている本文領域よりも +広いレイアウトで文章を作成することができます。 + +オプション名は、以前のスタイルファイル名と同じです。 +最後が``j''で終わるものは横組専用、``p''で終わるものは縦横両用のスタイル +でしたが、p\LaTeXe{}ではとくに区別をしていません。 +``j''で終わるオプションも``p''で終わるオプションも縦横両用です。 + +上記の8つのクラスオプションは、用紙サイズの設定も含んでいます。 +つまり``b5j''を指定したときには用紙サイズがB5になります。 +これらのクラスオプションを指定するときは、p\LaTeXe{}で標準の|b5paper|など +の用紙サイズを指定するクラスオプションを省略することができます。 + +なお、上記のスタイルファイルでサポートしていた、ランドスケープ時の指定は +まだサポートしていません。 + +\subsection{数式内での日本語文字} +フォントファミリに日本語フォントを用いないようにするための +クラスオプション|disablejfam|を導入しました。 +ただし、p\LaTeX~2.09互換モードでは|disablejfam|オプションを認識しません。 +指定した場合はエラーになります。 + +このオプションを指定すると、数式内に日本語を直接、記述できなくなります。 +また、数式文字を切り替える|\mathmc|と|\mathgt|コマンドが宣言されませんので、 +これらのコマンドを使うとエラーになります。|disablejfam|を指定した状態で、 +数式内に日本語を記述する場合は|\textmc|や|\textgt|コマンドを用いてください。 +|\textmc|と|\textgt|はp\LaTeXe{}のフォーマットファイル内で宣言されています。 + +p\LaTeXe{}では、article, book, reportクラスなど、\LaTeX{}のクラスを用いても +文書を作成することもできますが、これらのクラスには数式内に日本語を直接記述 +する仕組みが用意されていません。 +これはp\LaTeXe{}のクラスで|disablejfam|を指定したのと同じ状態です。 +この場合も、|\textmc|や|\textgt|コマンドを用いれば数式内に日本語を記述する +ことはできます。ただし、日本語を用いた文書ファイルはp\LaTeXe{}以外では +処理できませんので、その文書ファイルの配布には注意してください。 + +|disablejfam|オプションを設けた意味の詳細については、 +「フォントファミリ」を参照してください。 + +\subsection{トンボ} +p\LaTeXe{}\texttt{<1996/03/05>}版でも、|tombow|オプションによって、 +裁断用のトンボを出力することができました。 +p\LaTeXe{}\texttt{<1997/02/01>}版では、トンボの脇にDVIファイルの作成日付 +を出力するように拡張しています。 +作成日付を出力したくない場合は、|tombow|オプションではなく、 +(最後の``w''のない)|tombo|オプションを指定してください。 + +また、p\LaTeX~2.09互換モードでトンボオプションを指定したときに、トンボが +おかしな場所に出力されるバグを修正してあります。 + + +\section{書体変更コマンド} +書体変更コマンドにもいくつかの修正が加えられました。 + +\subsection{互換モードでのコマンド} +p\LaTeX~2.09互換モードで用いられる|\rm|コマンドや|\it|コマンド +などの書体変更コマンドを欧文フォントだけを切り替えるようにしました。 +ただし|\mc|コマンドと|\gt|コマンドは和文フォントだけを切り替えます。 +また|\bf|コマンドは和文と欧文フォントの両方を切り替えます。 +これは、j\LaTeX~2.09やp\LaTeX~2.09での動作と完全に同じです。 + +p\LaTeXe{}の本来のモードで、従来の二文字コマンドを用いた場合は動作が +異なりますの 注意してください。互換モード以外のとき、二文字コマンドは、 +一度、|\normalfont|にリセットしてから、そのコマンドに対応する属性を +切り替えます。したがって、|\it\tt|という指定は|\tt|だけが有効 +であり、|\tt\it|という指定は|\it|の指定が有効です。 + +この動作は和文フォントに対してもあてはまります。すなわち|\it\gt|と +しても、和文フォントがゴシック体になるだけで、|\it|の影響は何も +受けません。ただし|gt|コマンド内で実行される|\normalfont|の影響で +欧文フォントは欧文のデフォルトフォントになります。 +逆に|\gt\it|の場合、欧文フォントはイタリック体になりますが、 +和文フォントは何も変わりません。この場合も|\it|コマンド内の +|\normalfont|により、和文フォントは和文デフォルトフォントになります。 + +p\LaTeXe{}の本来のモードで、 +和文フォントをゴシック体、欧文フォントをイタリック体にしたい場合は、 +|\gtfamily\itfamily|か|\itfamily\gtfamily|とします。 + +\subsection{数式文字フォント} +|\rm|コマンドで欧文フォントがローマン体の正体にならないバグを修正しました。 +|\bf|コマンドについても同様の修正がなされています。 + +|\section|や|\caption|で|\rm|や|\bf|を用いたとき、 +目次ファイルや図表目次ファイルなどに、コマンドが展開された +コードで出力されてしまうバグを修正しました。 + + +\subsection{フォントファミリ} +p\LaTeXe{}の特徴の一つに、数式内にも直接、日本語を記述することができる +ことが挙げられます。しかしAMSのパッケージやPostScript用のパッケージを +用いた場合、 +\begin{verbatim} + No room for a new \mathgroup . +\end{verbatim} +や +\begin{verbatim} + Too many math alphabets used in version + normal. +\end{verbatim} +などのエラーが表示される場合があります。 + +これらのエラーは、数式内に直接、記述できるフォントファミリとして\TeX{}が +扱えるのが最大16個ということから起こっています。このエラーを回避するには、 +用いるフォントファミリの数を16個以内にするしかありません。 + +そこで、p\LaTeXe{}では、日本語を数式内に直接記述はできなくなるけれども、 +必要なパッケージをロードできる(かもしれない)ようにするためのオプション +|disablejfam|をクラスファイルに用意しました。 +|disablejfam|オプションを指定すれば、フォントファミリを節約する +ことができます。ただし、宣言している数は一つだけですので、用いるパッケージ +によっては効果がないかもしれないことに注意をしてください。 + +参考に表\ref{famlist}に\LaTeX{}やp\LaTeX{}やパッケージ類で用いる +フォントファミリの一覧を示します。\LaTeX{}の4つは必須です。 + +同じ名前のファミリ名は重複して宣言されませんので、 +p\LaTeXe{}の2.09互換モードでも``mincho''と``gothic''の二つだけが宣言 +されることになります。``mincho'', ``mincho'', ``gothic''の三つではありません。 + +p\LaTeX~2.09互換モード時には、\LaTeX~2.09互換モード +の設定もロードするため、合計で$4+7+2=13$個を使うことになります。 + +psnfssのLucidaフォント関連パッケージは、noexpertオプションで2,~3個、 +抑制することができます。詳細はpsnfssのドキュメントを参照してください。 + +\begin{table*}[htb] +\caption{\label{famlist}フォントファミリの宣言箇所} +\begin{tabbing} +MMM\=p\LaTeX~2.09互換モード \=: クラスファイル :\=\+\kill +\LaTeX カーネル + \>: \>: operators, letters, symbols, largesymbols\\ +\LaTeX~2.09互換モード + \>: latex209.def \>: bold, sans, typewriter, italic, smallcaps, slanted\\ + \>: latexsym.sty \>: lasy\\ +p\LaTeXe + \>: クラスファイル \>: mincho\\ +p\LaTeX~2.09互換モード + \>: pl209.def \>: mincho, gothic\\ +AMSのパッケージ + \>: amsmath.sty \>: (none)\\ + \>: amstex.sty \>: AMSa, AMSb\\ + \>: amsfonts.sty\>: AMSa, AMSb\\ +balelパッケージ + \>: cyrmath.sty \>: cyrletters\\ +psnfssパッケージ + \>: mathptm.sty \>: operators, letters, symbols, largesymbols, bold, italic\\ + \>: lucbmath.sty\>: letters, mathupright, symbols, largesymbols, italics,\\ + \>\>: arrows, boldarrows, operators\\ + \>: lucbr.sty \>: letters, mathupright, symbols, largesymbols, italics,\\ + \>\>: arrows, boldarrows, operators\\ + \>: lucmath.sty \>: operators, letters, symbols, largesymbols, italics,\\ + \>\>: letters, mathupright, arrows, boldarrows\\ + \>: lucmtime.sty\>: letters, operators, mathupright, symbols, largesymbols,\\ + \>\>: italics, arrows, boldarrows +\end{tabbing} +\end{table*} + + + +\section{その他の情報} +最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +p\LaTeXe{}についてのお問い合わせやバグレポートなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews02.tex b/Master/texmf-dist/source/platex/base/plnews02.tex new file mode 100644 index 00000000000..b0326548b87 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews02.tex @@ -0,0 +1,122 @@ +%% <1997/07/02> +\documentclass{plnews} + +\publicationmonth{7} +\publicationyear{1997} +\publicationissue{2} +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1997/02/01>+2}からの更新箇所をまとめたものです。 + +このp\LaTeXe{}は、\LaTeX{}\texttt{<1997/06/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{クラスファイル} +日本語クラスファイルに関して、以下の変更を加えました。 + +\begin{itemize} +\item 縦組クラスで|\maketitle|によるタイトルを縦組で出力するようにした。 +\item 横組クラスで|a4j|や|b5j|などのオプションを指定したときの + トップマージンを大きくした。 +\item treport, tbookクラスで|\thefigure|コマンドが構文エラーになるのを + 修正した。 +\end{itemize} + +\section{フォント・セレクション} +日本語NFSS2における、 +\begin{itemize} +\item 縦組時に|\bfseries|を使うと後続の|\textgt|や|\gtfamily|などの + ゴシック切り替え命令が効かない +\end{itemize} +というバグを修正するために、以下のようにしました。 +\begin{itemize} +\item 和文エンコードの宣言を縦組用と横組用とで別のコマンドで行う +\end{itemize} +具体的には、つぎのコマンドで宣言をします。 + +\begin{tabbing} +****\=12345678\=12345678901234567890\kill +\>|\DeclareYokoKanjiEncoding|\\ +\> \> 横組用和文エンコードの宣言\\ +\>|\DeclareTateKanjiEncoding|\\ +\> \> 縦組用和文エンコードの宣言\\ +\end{tabbing} + +以前のバージョンからの|\DeclareKanjiEncoding|コマンドは +横組用和文エンコード宣言コマンドと同じ動作をします。 +|\DeclareKanjiEncoding|コマンドで縦組用和文エンコードを宣言している箇所は +|\DeclareTateKanjiEncoding|コマンドを用いて宣言するように修正してください。 + + +\section{強調コマンドでゴシックに} +従来、|\emph|や|\em|では和文フォントを切り替えることはしていませんでしたが、 +今回の版から強調時に|\gtfamily|にするようにしました。 +入れ子となった|\emph|や|\em|の中では|\mcfamily|を使います。 + +\section{改行マクロの変更に対応} +日本語\TeX{}の行頭禁則処理は、禁則対象文字の直前に、 +|\prekinsokupenalty|で指定されたペナルティの値を挿入することで行なっています。 +一方、改行コマンドは負のペナルティ($-10,000$)の値を挿入することで +改行を行なっています。このため、改行コマンドの直後に禁則文字があり、 +その禁則ペナルティの値が$10,000$の文字のとき、改行のためのペナルティと +禁則ペナルティの値が相殺されてしまい、改行されません。 + +\begin{quote} +\begin{verbatim} +あいうえお\\ +!かきくけこ +\end{verbatim} +\end{quote} + +そこでp\LaTeXe{}では、\LaTeXe{}の改行マクロに|\mbox{}|を入れることによって、 +改行マクロのペナルティと行頭禁則文字のペナルティが加算されることを防いで +いました。 + +ところが、\LaTeXe\ \texttt{<1996/12/01>}で改行コマンドが大幅に変更されて +いたため、p\LaTeXe{}で加えた処理が無効になっていました。 +今回の版で\LaTeXe{}の改行マクロ変更に対応しました。 + +また、以前の\LaTeXe{}の改行マクロでは、改行コマンドで|\mbox{}|が置かれて +いたので、 +\begin{quote} +\begin{verbatim} +\verb|*****|\\ +\verb| aiueo| +\end{verbatim} +\end{quote} +と書いた場合も正しく処理されていましたが、 +\LaTeXe\ \texttt{<1996/12/01>}以降の改行コマンドでは|\mbox{}|が置かれないため、 +|\\|の次の行の|\verb|の行頭の空白が無視されるという現象がおきていました。 + +\LaTeXe{}で正しく処理されるのは、|\verb|コマンドの最初に|\hbox{}|を入れている +からです。しかし、このボックスがあると|\xkanjiskip|が入らないため、 +p\LaTeXe{}では|\verb|の直後に|\hbox{}|を入れないようにしています。 + +|\verb|で|\hbox{}|が入らなくても、改行コマンドによって行頭に|\mbox{}|が入る +場合は、先頭の空白は空白として認識されていたのですが、 +\LaTeXe{}の改行マクロ変更によって、行頭の|\mbox{}|が挿入されなくなったために、 +\TeX{}が無視すべき行頭の空白と解釈される結果となっていました。 +今回の対応で、この問題も同時に解決されています。 + +\section{その他の情報} +最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +p\LaTeXe{}についてのバグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews03.tex b/Master/texmf-dist/source/platex/base/plnews03.tex new file mode 100644 index 00000000000..59d5fed3c1d --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews03.tex @@ -0,0 +1,80 @@ +%% <1998/02/17> +\documentclass{plnews} + +\publicationyear{1998} +\publicationmonth{2} +\publicationissue{3} +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1998/02/01>}版について、 +p\LaTeXe{}\texttt{<1997/07/02>}版からの更新箇所をまとめたものです。 + +このp\LaTeXe{}は、\LaTeX{}\texttt{<1997/12/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{パッチの取り込み} +plpatch.ltxで提供していた、つぎの修正を取り込みました。 + +\begin{itemize} +\item 小文字のファイル名のフォント定義ファイル(.fdファイル)をロードする +ための修正。 +\item |\\|コマンドの直前の空白を無視するための修正。 +\end{itemize} + +\section{クラスファイルの修正} +日本語クラスファイル(1.1e)に対して、以下の変更を加えました。 + +\begin{itemize} +\item 縦組クラスで書体の大きさを変更したとき、ベースラインがずれる(1.1f)。 +\item onesideオプションを指定したとき、section レベルの文字列が柱に + 出力されない(1.1g)。 +\item landscapeオプション指定時のレイアウトパラメータの修正(1.1h)。 +\item jreport, jbookクラスで、onesideオプションを指定し、ページスタイルを + bothstyleにすると、コンパイルエラーになる(1.1i)。 +\end{itemize} + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}(p2.1.5)では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +p\LaTeXe{}では|$TEXMF/tex/platex/base/|ディレクトリにhyphen.cfgを +用意して、不用意に他のハイフンパターンを読み込まないようにしてあります。 + + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews04.tex b/Master/texmf-dist/source/platex/base/plnews04.tex new file mode 100644 index 00000000000..0f7a1a283f4 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews04.tex @@ -0,0 +1,85 @@ +%% <1998/09/01> +\documentclass{plnews} + +\publicationyear{1998}% 発行年 +\publicationmonth{9}% 発行月 +\publicationissue{4}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1998/09/01>}版について、 +p\LaTeXe{}\texttt{<1998/02/17>}版からの更新箇所をまとめたものです。 +これまでの変更点については、\textsf{plnews*.tex}やChanges.txtを +参照してください。 + +このp\LaTeXe{}は、\LaTeX{}\texttt{<1998/06/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{NFSS2関連} +\begin{itemize} +\item |DeclareFixedCommand|をプリアンブル部でしか使えないようにしていたのを +修正しました。 +\end{itemize} + +\section{パッチの取り込み} +\texttt{<1998/02/17>}版へのパッチとして提供していた、 +つぎの修正を取り込みました。 +\begin{itemize} +\item \textsf{jclasses.dtx}: + \verb|\rightmark|コマンドの引数に\verb|today|コマンドを修正した + とき、出力される日付が「平成元年」になってしまうのを修正 + (\textsf{pl980409.patch})。 +\item \textsf{jclasses.dtx}: + reportとbookクラスで、番号の付かない見出しレベルのペナルティを + \verb|\@M|に修正(\textsf{pl980323.patch})。 +\item \textsf{tascmac.sty}: + calcパッケージとともに用いたとき、 + \verb|screen|環境、\verb|itembox|環境、\verb|boxnote|環境が + エラーになるのを修正(\textsf{pl980227.patch})。 +\end{itemize} + + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews05.tex b/Master/texmf-dist/source/platex/base/plnews05.tex new file mode 100644 index 00000000000..c0ecf5be8e5 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews05.tex @@ -0,0 +1,67 @@ +%% <1999/04/05> +\documentclass{plnews} + +\publicationyear{1999}% 発行年 +\publicationmonth{4}% 発行月 +\publicationissue{5}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1999/04/05>}版について、 +前回の版(\texttt{<1998/09/01>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\textsf{plnews*.tex}やChanges.txtを +参照してください。\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の +ltnewsファイルを参照してください。 + +\section{前バージョンからの修正個所} +\begin{itemize} +\item 和文デフォルトフォントを変更しても、文書の先頭では反映されない + のを修正した(ありがとう、山本@理科大さん)。 +\item \verb|\\|コマンドにオプションを付けた場合、その後ろに余計な + 空白が入ってしまうのを修正した(ありがとう、鈴木@京大さん)。 +\item \LaTeX \texttt{<1998/12/01>}に対応した。 +\end{itemize} + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews06.tex b/Master/texmf-dist/source/platex/base/plnews06.tex new file mode 100644 index 00000000000..03b400e1664 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews06.tex @@ -0,0 +1,137 @@ +%% <2000/11/03> +\documentclass{plnews} + +\publicationyear{2000}% 発行年 +\publicationmonth{11}% 発行月 +\publicationissue{6}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<2000/11/03>}版について、 +前回の版(\texttt{<1999/08/09>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\textsf{plnews*.tex}やChanges.txtを +参照してください。\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の +ltnewsファイルを参照してください。 + +\section{前バージョンからの主な修正個所} +\begin{itemize} +\item 配布形態をte\TeX{}ライブラリの形式に変更した。 +\item |nidanfloat|パッケージを付け加えた。 +\item |\text..|コマンドの左側に|\xkanjiskip|が入らないのを修正(ありがと +う、乙部@東大さん) +\item tarticle, tbook, treportで、文頭の全角開き括弧類が下がる現象に対処。 +|\adjustbaseline|を修正しました。 +\item \LaTeX \texttt{<2000/06/01>}に対応した。 +\end{itemize} + + +\section{te\TeX{}ライブラリ形式での配布} +\textit{\TeX{} Live}というTUGで配布している\TeX{}システムを集めた +CD--ROMがあり、TUGboat購読者にはこれがTUGboatと一緒に定期的に配布されて +います。te\TeX{}(Thomas Esserによる)は\textit{\TeX{} Live}用に集められ +た\TeX{}のことです。 + +te\TeX{}のTDS(\textit{\TeX{} Directory Structure})に従った配布物には、 +ポーランド語の\LaTeX{}用に|platex|というディレクトリが含まれており、 +p\TeX{}のplatexと重なります。この問題を避けるために、p\TeX{}用のディレク +トリを|texmf|直下に|texmf/ptex|と作り、p\TeX{}ではそちらを優先して使うよ +うにし、te\TeX{}ライブラリに合わせた形でp\TeX{}関連のライブラリをまとめ +て|ptex-texmf-*.tar.gz|として配布しています。 + +このディレクトリ構成は従来のディレクトリ構成と異なっており、\LaTeXe{}の +|*.ins|にはディレクトリ名を記述するので、te\TeX{}用の配布物とは別に、こ +れまでのようにp\LaTeXe{}のパッケージを作ると、ディレクトリ名の記述だけが +異なり、他は全く同じ2種類の配布物が出来上がることになります。この状態は +望ましくないので、\TeX{}の世界全体がte\TeX{}にシフトしてきていることも考 +慮し\footnote{例えば、オリジナルのdvipsの最新版はte\TeX{}に含まれるもの +だけとなっています。}、p\LaTeXe{}の配布もte\TeX{}ライブラリ形式での配布 +形態に絞ることにしました。今後p\LaTeXe{}のバージョンアップは、 +|ptex-texmf*.tar.gz|アーカイブに含まれる形で行なうことになります。 + + +\section{nidanfloatパッケージの使い方} +|nidanfloat|パッケージは、二段組時に段抜きのフロートをページ下部にも配置 +できるようにするためのパッケージです。通常は、以下のような使い方になるで +しょう。ページ下部に1段の幅に収まらない|filename.eps|を出力する場合です。 +\begin{verbatim} +\documentclass[twocolumn]{jarticle} +\usepackage{graphics} +\usepackage{nidanfloat} +\begin{document} + <本文> +\begin{figure*}[b] +\includegraphics{filename.eps} +\caption{キャプション} +\end{figure*} + <本文> +\end{document} +\end{verbatim} +このように、二段組で|\usepackage{nidanfloat}|をプリアンブルに指定して、 +|figure|環境のオプションで|b|を指定します。オプションの意味は、通常の +|figure|環境と同じです。|figure|環境のオプションを指定しない場合は、デフォ +ルトで|tb|が指定されたものと見なされます。 + +その他、追加されたパラメータなどに付いては、|nidanfloat.dtx|をご覧くださ +い。 + + +\section{tarticle, tbook, treportで、文頭の全角開き括弧類が下がる問題} +tarticle, tbook, treportで、文頭の全角開き括弧類が下がるという現象のご指 +摘を頂きました。このアキは、|\adustbaseline|で出力されていたものです。具 +体的には、|\tbaselineshift|に2度続けて値を指定すると、その後にある全角開 +き括弧類の前に余分なアキが出力されるようです。|\adustbaseline|では、縦組 +のベースライン位置を補正する際に|\tbaselineshift|を初期化し、その後に計 +算値を設定するということをしていたために、その直後に全角開き括弧類がくる +と余分なアキが出力されていたものです。|\tbaselineshift|への連続した値の +設定を行なわなければこの問題は起きないので、このバージョンで +|\adustbaseline|の最初で行なっていた|\tbaselineshift|の初期化を行なわな +いように変更しました。 + + +\section{\LaTeX \texttt{<2000/06/01>}に対応} +\LaTeX{}のバージョンアップが今回から1年毎になりましたので、p\LaTeXe{}の +更新も基本的に今後は\LaTeX{}に合わせて1年毎になります。 + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews07.tex b/Master/texmf-dist/source/platex/base/plnews07.tex new file mode 100644 index 00000000000..292a6a367d4 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews07.tex @@ -0,0 +1,106 @@ +%% <2001/10/04> +\documentclass{plnews} + +\publicationyear{2001}% 発行年 +\publicationmonth{09}% 発行月 +\publicationissue{7}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<2001/09/04>}版について、 +前回の版(\texttt{<2000/11/03>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\file{plnews*.tex}や\file{Changes.txt}を +参照してください。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の\file{ltnews*.tex}などを +参照してください。 + + +\section{使用および配付条件の変更} +p\LaTeXe{}の配付および利用条件を「(変更済み)BSDライセンス」にしました。 +内容については、\file{COPYRIGHT}ファイルを参照してください。 + + +\section{nidanfloatパッケージ} +nidanfloatパッケージは、最終ページの左右カラムの高さを均一に +して出力するようになっていました。 + +この機能は、左カラム用に保持している内容と、右カラム用の内容を +一度まとめ、再び2分割するだけの簡略した実装で実現されています。 + +そのため、左カラムだけで収まる量しかない場合、ページ下部への出力を +指定した(2段抜きでない)フロートは右カラムの下に置かれます。 +また、|\newpage|コマンドでカラムを変更しても、 +ページ出力時に左カラム用の内容とまとめられ、分割位置が調整されるので、 +指定した|\newpage|コマンドの位置でカラムが変わりません。 + +そこで、最終ページの高さ調整機能を使うかどうかを制御するための +パッケージオプションを導入しました。 + +自動調整するには、パッケージをロードするときに``balance''オプションを +指定してください。 +\begin{verbatim} +\usepackage[balance]{nidanfloat} +\end{verbatim} + +逆に、調整しないようにするには、オプション``nobalance''を指定します。 +\begin{verbatim} +\usepackage[nobalance]{nidanfloat} +\end{verbatim} + +デフォルトは\textbf{nobalance}にしてあります。 + + +\section{その他の主な修正箇所} +次のような不具合の修正や仕様の変更をしました。 + +\begin{itemize} +\item |\enlargethispage|コマンドを用いた場合、脚注と本文が重なってしまう。 +\item |\chpater|コマンドと|\chapter*|コマンドで見出しの出力位置が異なる。 +\item |\adjustbaseline|で調整量が合っていない。 +\item |\pbox|コマンドでzオプションを指定するとエラーになる。 +\item 目次のページ番号の書体を|\rmfamily|から|\normalfont|に変更しました。 +\end{itemize} + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plnews08.tex b/Master/texmf-dist/source/platex/base/plnews08.tex new file mode 100644 index 00000000000..1473686523d --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plnews08.tex @@ -0,0 +1,111 @@ +%% <2001/10/04> +\documentclass{plnews} + +\publicationyear{2004}% 発行年 +\publicationmonth{08}% 発行月 +\publicationissue{8}% 番号 +\author{田中 禎之(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<2004/08/10>}版について、 +前回の版(\texttt{<2001/09/04>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\file{plnews*.tex}や\file{Changes.txt}を +参照してください。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の\file{ltnews*.tex}などを +参照してください。 + + +\section{和文エンコーディング切り替え対応} +これまでは和文エンコーディングにはJY1,JT1のみしか使用できませんでしたが、 +新たにエンコーディングを定義して使用できるようにしました。 + +和文エンコーディングは以下のマクロで定義します。 + +\begin{itemize} +\item |\DeclareYokoKanjiEncoding{<エンコーディング名>}{<実行コード>}{<実行コード>}|\\ + 横書き用の和文エンコーディングを宣言する。 + 引数は|\DeclareFontEncoding|と同じ。 +\item |\DeclareTateKanjiEncoding{<エンコーディング名>}{<実行コード>}{<実行コード>}|\\ + 縦書き用の和文エンコーディングを宣言する。 + 引数は|\DeclareFontEncoding|と同じ。 +\item |\KanjiEncodingPair{<横エンコーディング名>}{<縦エンコーディング名>}|\\ + 横書きと縦書きの和文エンコーディングを関連付ける。 +\end{itemize} + +横書きと縦書きのエンコーディングは以下のように必ず|\KanjiEncodingPair|で +対応を関連付けてから使用します。 +関連付けられたエンコーディングは|\yoko|, |\tate|の実行時に切り替わります。 + +\begin{verbatim} + : +\DeclareYokoKanjiEncoding{NY1}{}{} +\DeclareYokoKanjiEncoding{NT1}{}{} +\KanjiEncodingPair{NY1}{NT1} + : +\begin{document} + : +\fontencoding{NY1} + : +\selectfont + : +\end{verbatim} + +現時点では|\DeclareTextCompositeCommand|のようなエンコーディングで動作を +切り替えるためのマクロには対応していません。そのため、フォントの組み合わせを +変更する程度にしか利用できません。 + +\section{その他の主な修正箇所} +次のような不具合の修正や仕様の変更をしました。 + +\begin{itemize} +\item |verbatim|環境で余計な前後空きが発生しないように|\fontfamily|を修正。 +\item |\ascii|,|\Ascii|,|\ASCII|マクロのエラーを修正。 +\item 和文フォントサイズの基準値の設定を修正。 +\item 縦組スタイルで|\flushbottom|しないように修正。 +\item |\part|,|\chapter|の直後でインデントが発生しないバグを修正。 +\item 見出しの前後の空きを調整。 +\item \LaTeX 2003/12/01版での動作を確認。 +\end{itemize} + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/Master/texmf-dist/source/platex/base/plpatch.ltx b/Master/texmf-dist/source/platex/base/plpatch.ltx new file mode 100644 index 00000000000..61ea5177217 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plpatch.ltx @@ -0,0 +1,12 @@ +%%%% +%%%% Patch file for the pLaTeX2e kernel dated 2006/01/04 +%%%% (2006/01/04) +%%%% + +% This patch will not work with any other release. +\def\pfmtversion@topatch{2006/11/10} + +% This denotes minor level. +\def\ppatch@level{0} + +\endinput diff --git a/Master/texmf-dist/source/platex/base/plvers.dtx b/Master/texmf-dist/source/platex/base/plvers.dtx new file mode 100644 index 00000000000..628c5af4ac0 --- /dev/null +++ b/Master/texmf-dist/source/platex/base/plvers.dtx @@ -0,0 +1,162 @@ +% \iffalse meta-comment +%% File: plvers +% +% Copyright 1995-2006 ASCII Corporation. +% +% This file is part of the pLaTeX2e system. +% ----------------------------------------- +% +% \fi +% +% \CheckSum{92} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +%<*driver> +% \fi +\ProvidesFile{plvers.dtx}[2006/11/10 v1.0q pLaTeX Kernel (Version Info)] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{plvers.dtx} +\author{Ken Nakano \& Hideaki Togashi} +\title{\filename} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \section{バージョンの設定} +% まず、このディストリビューションでのp\LaTeXe{}の日付とバージョン番号 +% を定義します。また、p\LaTeXe{}が起動されたときに表示される文字列の +% 設定もします。 +% +% \changes{v1.0}{1995/05/16}{p\LaTeXe\ 用に\file{ltvers.dtx}を修正} +% \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}版用に修正} +% \changes{v1.0b}{1996/01/31}{\LaTeX\ \texttt{!<1995/12/01!>}版用に修正} +% \changes{v1.0c}{1997/01/11}{\LaTeX\ \texttt{!<1996/06/01!>}版用に修正} +% \changes{v1.0d}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版用に修正} +% \changes{v1.0e}{1997/07/02}{\LaTeX\ \texttt{!<1997/06/01!>}版用に修正} +% \changes{v1.0f}{1998/02/17}{\LaTeX\ \texttt{!<1997/12/01!>}版用に修正} +% \changes{v1.0g}{1998/09/01}{\LaTeX\ \texttt{!<1998/06/01!>}版用に修正} +% \changes{v1.0h}{1999/04/05}{\LaTeX\ \texttt{!<1998/12/01!>}版用に修正} +% \changes{v1.0i}{1999/08/09}{\LaTeX\ \texttt{!<1999/06/01!>}版用に修正} +% \changes{v1.0j}{2000/02/29}{\LaTeX\ \texttt{!<1999/12/01!>}版用に修正} +% \changes{v1.0k}{2000/11/03}{\LaTeX\ \texttt{!<2000/06/01!>}版用に修正} +% \changes{v1.0l}{2001/09/04}{\LaTeX\ \texttt{!<2001/06/01!>}版用に修正} +% \changes{v1.0m}{2004/08/10}{\LaTeX\ \texttt{!<2003/12/01!>}版対応確認} +% \changes{v1.0n}{2005/01/04}{plfonts.dtxバグ修正} +% \changes{v1.0o}{2006/01/04}{plfonts.dtxバグ修正} +% \changes{v1.0p}{2006/06/27}{plfonts.dtx LaTeX <2005/12/01>対応} +% \changes{v1.0q}{2006/11/10}{plfonts.dtxバグ修正} +% +% このバージョンのp\LaTeXe{}は、次のバージョンの\LaTeX{}\footnote{% +% LaTeX authors: Johannes Braams, David Carlisle, Alan Jeffrey, +% Leslie Lamport, Frank Mittelbach, Chris Rowley, Rainer Sch\"opf}を +% もとにしています。 +% \begin{macrocode} +%<2ekernel>\def\fmtname{LaTeX2e} +%<2ekernel>\def\fmtversion{2003/12/01} +% \end{macrocode} +% +% p\LaTeXe{}のフォーマットファイル名とバージョンです。 +% +% \begin{macrocode} +%<*plcore> +\def\pfmtname{pLaTeX2e} +\def\pfmtversion{2006/11/10} +% +% \end{macrocode} +% +% \subsection{パッチファイルのロード} +% +% 次の部分は、p\LaTeXe{}のパッチファイルをロードするためのコードです。 +% バグを修正するためのパッチを配布するかもしれません。 +% \begin{macrocode} +%<*plfinal> +\IfFileExists{plpatch.ltx} + {\typeout{************************************^^J% + * Appliying patch file plpatch.ltx *^^J% + ************************************} + \def\pfmtversion@topatch{unknown} + \input{plpatch.ltx} + \ifx\pfmtversion\pfmtversion@topatch + \ifx\ppatch@level\@undefined + \typeout{^^J^^J^^J% + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J% + !! Patch file `plpatch.ltx' (for version <\pfmtversion@topatch>)^^J% + !! is not suitable for version <\pfmtversion> of pLaTeX.^^J^^J% + !! Please check if iniptex found an old patch file:^^J% + !! --- if so, rename it or delete it, and redo the^^J% + !! iniptex run.^^J% + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}% + \batchmode \@@end + \fi + \else + \typeout{^^J^^J^^J% + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J% + !! Patch file `plpatch.ltx' (for version <\pfmtversion@topatch>)^^J% + !! is not suitable for version <\pfmtversion> of pLaTeX.^^J% + !!^^J% + !! Please check if iniptex found an old patch file:^^J% + !! --- if so, rename it or delete it, and redo the^^J% + !! iniptex run.^^J% + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}% + \batchmode \@@end + \fi + \let\pfmtversion@topatch\relax + }{} +% \end{macrocode} +% +% 起動時に表示される文字列です。 +% \LaTeX{}にパッチがあてられている場合は、それも表示します。 +% \begin{macrocode} +\ifx\patch@level\@undefined + \ifx\ppatch@level\@undefined + \everyjob{\typeout{% + \pfmtname\space<\pfmtversion>\space + (based on \fmtname\space<\fmtversion>)}} + \else + \everyjob{\typeout{% + \pfmtname\space<\pfmtversion>+\ppatch@level\space + (based on \fmtname\space<\fmtversion>)}} + \fi +\else + \ifx\ppatch@level\@undefined + \everyjob{\typeout{% + \pfmtname\space<\pfmtversion>\space + (based on \fmtname\space<\fmtversion>\space + patch level \patch@level)}} + \else + \everyjob{\typeout{% + \pfmtname\space<\pfmtversion>+\ppatch@level\space + (based on \fmtname\space<\fmtversion>\space + patch level \patch@level)}} + \fi +\fi +% +% \end{macrocode} +% +% \Finale +% +\endinput -- cgit v1.2.3