diff options
Diffstat (limited to 'Master/texmf-dist/source/luatex')
17 files changed, 10188 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjclasses.dtx b/Master/texmf-dist/source/luatex/luatexja/ltjclasses.dtx new file mode 100644 index 00000000000..aca978c08cd --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjclasses.dtx @@ -0,0 +1,4190 @@ +% \iffalse meta-comment +%% File: ltjclasses.dtx +% ----------------------------------------- +% Original: jclasses.dtx +% +% Copyright 1995-2001 ASCII Corporation. +% +% This file is part of the pLaTeX2e system. +% ----------------------------------------- +% +% \fi +% +% \CheckSum{4475} +%% \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さん。} +% \changes{v1.6-ltj}{2011/09/27}{jclasses.dtx v1.6 をベースに Lua\LaTeX-ja 用に修正。} +% \fi +% +% \iffalse +\NeedsTeXFormat{LaTeX2e} +%<*driver> +\ProvidesFile{ltjclasses.dtx} +%</driver> +%<*yoko> +%<article>\ProvidesClass{ltjarticle} +%<report>\ProvidesClass{ltjreport} +%<book>\ProvidesClass{ltjbook} +%<10pt&!bk>\ProvidesFile{ltjsize10.clo} +%<11pt&!bk>\ProvidesFile{ltjsize11.clo} +%<12pt&!bk>\ProvidesFile{ltjsize12.clo} +%<10pt&bk>\ProvidesFile{ltjbk10.clo} +%<11pt&bk>\ProvidesFile{ltjbk11.clo} +%<12pt&bk>\ProvidesFile{ltjbk12.clo} +%</yoko> +%<*tate> +%<article>\ProvidesClass{ltjtarticle} +%<report>\ProvidesClass{ltjtreport} +%<book>\ProvidesClass{ltjtbook} +%<10pt&!bk>\ProvidesFile{ltjtsize10.clo} +%<11pt&!bk>\ProvidesFile{ltjtsize11.clo} +%<12pt&!bk>\ProvidesFile{ltjtsize12.clo} +%<10pt&bk>\ProvidesFile{ltjtbk10.clo} +%<11pt&bk>\ProvidesFile{ltjtbk11.clo} +%<12pt&bk>\ProvidesFile{ltjtbk12.clo} +%</tate> + [2011/10/03 v1.6-ltj +%<article|report|book> Standard LuaLaTeX-ja class] +%<10pt|11pt|12pt> Standard LuaLaTeX-ja file (size option)] +%<*driver> +] +\documentclass{ltjltxdoc} +\GetFileInfo{ltjclasses.dtx} +\usepackage[unicode]{hyperref} +\title{Lua\LaTeX-ja用 \texttt{jclasses} 互換クラス} +\author{Lua\TeX-ja プロジェクト} +\date{\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \section{はじめに} +% このファイルは、Lua\LaTeX-ja 用の |jclasses| 互換クラスファイルです。 +% v1.6 をベースに作成しています。 +% \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{\|} +% +% \subsection{\texttt{jclasses.dtx} からの主な変更点} +% 全ての変更点を知りたい場合は、|jclasses.dtx| と |ltjclasses.dtx| で |diff| を +% とって下さい。 +% \begin{itemize} +% \item |disablejfam| オプションを無効化。もし +% \begin{quotation} +% |! LaTeX Error: Too many math alphabets used in version ****.| +% \end{quotation} +% のエラーが起こった場合は、|lualatex-math| パッケージを読み込んでみて下さい。 +% \item 出力 PDF の用紙サイズが自動的に設定されるようにしてあります。 +% \item \cs{if西暦}、\cs{西暦}、\cs{和暦}をそれぞれ\cs{ifSeireki}, \cs{Seireki}, +% \cs{Wareki} に変更してあります。これはデフォルトの漢字のカテゴリコードが12で +% あるためです。 +% \end{itemize} +% +% \section{Lua\TeX-ja の読み込み} +% 最初に |luatexja| を読み込みます。 +% \begin{macrocode} +%<*article|report|book> +\RequirePackage{luatexja} +% \end{macrocode} +% +% \section{オプションスイッチ} +% ここでは、後ほど使用するいくつかのコマンドやスイッチを定義しています。 +% +% \begin{macro}{\c@@paper} +% 用紙サイズを示すために使います。 +% A4, A5, B4, B5 用紙はそれぞれ、1, 2, 3, 4 として表されます。 +% \begin{macrocode} +\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 +%<article>\@titlepagefalse +%<report|book>\@titlepagetrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@openright} +% chapterレベルを奇数ページからはじめるかどうかのスイッチです。 +% reportクラスのデフォルトは、``no''です。 +% bookクラスのデフォルトは、``yes''です。 +% \begin{macrocode} +%<!article>\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} +%<book>\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}.} +% \LaTeXe~2.09互換モードで、スタイルオプションにa4j, a5pなどが指定された +% ときの動作をエミュレートするためのフラグです。 +% \begin{macrocode} +\newif\if@stysize \@stysizefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@mathrmmc} +% 和欧文両対応の数式文字コマンドを有効にするときに用いるフラグです。 +% マクロの展開順序が複雑になるのを避けるため、 +% デフォルトでは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|オプションが指定されると、用紙サイズに合わせてトンボを出力します。 +% このとき、トンボの脇にPDFを作成した日付が出力されます。 +% 作成日付の出力を抑制するには、|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{面付けオプション} +% このオプションが指定されると、トンボオプションを指定したときと同じ +% 位置に文章を出力します。作成したPDFをフィルムに面付け出力する場合など +% に指定をします。 +% \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{組方向オプション} +% このオプションが指定されると、縦組で組版をします。 +% しかし Lua\TeX-ja ではまだ縦組は未対応なのでコメントアウトします。 +% \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} +%<!article>\if@compatibility +%<book>\@openrighttrue +%<!article>\else +%<!article>\DeclareOption{openright}{\@openrighttrue} +%<!article>\DeclareOption{openany}{\@openrightfalse} +%<!article>\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\TeX では数式ファミリの数が16個だったので日本語ファミリ宣言を抑制する +% |disablejfam| オプションが用意されていましたが、Lua\TeX では Omega 拡張が +% 取り込まれて数式ファミリは256個まで使用できるため、このオプションは必要ありません。 +% ただし、\LaTeXe カーネルでは未だに数式ファミリの数は16個に制限されているので、 +% 実際に使用可能な数式ファミリの数を増やすためには |lualatex-math| パッケージを +% 読み込む必要があることに注意が必要です。 +% +% |mathrmmc|オプションは、 +% |\mathrm|と|\mathbf|を和欧文両対応にするためのクラスオプションです。 +% \changes{v1.1d}{1992/02/04}{disablejfamの判断を間違えてたのを修正} +% \begin{macrocode} +\if@compatibility + \@mathrmmctrue +\else + \DeclareOption{disablejfam}{% + \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} + \DeclareOption{mathrmmc}{\@mathrmmctrue} +\fi +% \end{macrocode} +% +% +% \subsection{ドラフトオプション} +% |draft|オプションを指定すると、オーバフルボックスの起きた箇所に、 +% 5ptの罫線が引かれます。 +% \begin{macrocode} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +%</article|report|book> +% \end{macrocode} +% +% \subsection{オプションの実行} +% オプションの実行、およびサイズクラスのロードを行ないます。 +% \begin{macrocode} +%<*article|report|book> +%<*article> +%<tate>\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate} +%<yoko>\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} +%</article> +%<*report> +%<tate>\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate} +%<yoko>\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} +%</report> +%<*book> +%<tate>\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate} +%<yoko>\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} +%</book> +\ProcessOptions\relax +%<book&tate>\input{ltjtbk1\@ptsize.clo} +%<!book&tate>\input{ltjtsize1\@ptsize.clo} +%<book&yoko>\input{ltjbk1\@ptsize.clo} +%<!book&yoko>\input{ltjsize1\@ptsize.clo} +% \end{macrocode} +% 縦組用クラスファイルの場合は、ここで\file{plext.sty}が読み込まれていました。 +% Lua\TeX-ja でどうなるかは未定です。 +% \changes{v1.0e}{1996/03/21}{\cs{usepackage} to \cs{RequirePackage}} +% \begin{macrocode} +%<tate>%\RequirePackage{plext} +%</article|report|book> +% \end{macrocode} +% +% \section{フォント} +% +% Lua\LaTeX-jaの標準では、OTFパッケージ由来のメトリックが使われるようになっています。 +% 本クラスでは、「p\TeX の組版と互換性をできだけ持たせる」例を提示するため、 +% \begin{itemize} +% \item メトリックを\texttt{min10.tfm}ベースの\texttt{jfm-min.lua}に変更。 +% \item 明朝とゴシックは両方とも\texttt{jfm-min.lua}を用いるが、 +% 和文処理用グルー挿入時には「違うメトリックを使用」として思わせる。 +% \item p\TeX と同様に、「異なるメトリックの2つの和文文字」の間には、両者から定める +% グルーを両方挿入する。 +% \item calllback を利用し、標準で用いる\texttt{jfm-min.lua}を、段落始めの括弧が全角二分下がりになるように内部で変更している。 +% +% \end{itemize} +% +% \begin{macrocode} +%<*article|report|book> +\directlua{luatexbase.add_to_callback('luatexja.load_jfm', + function (ji, jn) ji.chars['parbdd'] = 0; return ji end, + 'ltj.jclasses_load_jfm', 1)} +{\jfont\g=psft:Ryumin-Light:jfm=min } % loading jfm-min.lua +\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.962216] psft:Ryumin-Light:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] psft:GothicBBB-Medium:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} +\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +%</article|report|book> +% \end{macrocode} +% +% ここでは、\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@ +%</10pt> +%<*11pt> + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +%</11pt> +%<*12pt> + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +%</12pt> + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +% \end{macrocode} +% +% ここで、ノーマルフォントを選択し、初期化をします。 +% このとき、縦組モードならば、デフォルトのエンコードを変更します。 +% \begin{macrocode} +%<tate>\def\kanjiencodingdefault{JT3}% +%<tate>\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{lltjfont.sty}で定義 +% されています。 +% \begin{macrocode} +\setbox0\hbox{\char"3000}% 全角スペース +\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}% +%</10pt> +%<*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}% +%</11pt> +%<*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}% +%</12pt> + \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}% +%</10pt> +%<*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}% +%</11pt> +%<*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}% +%</12pt> + \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}} +%</10pt> +%<*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}} +%</11pt> +%<*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 +%</12pt> +%</10pt|11pt|12pt> +% \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 +%<tate> \setlength\columnsep{3\Cwd} +%<yoko> \setlength\columnsep{2\Cwd} +\else + \setlength\columnsep{10\p@} +\fi +\setlength\columnseprule{0\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\pdfpagewidth} +% \begin{macro}{\pdfpageheight} +% 出力の PDF の用紙サイズをここで設定しておきます。 +% |tombow| が真のときは2インチ足しておきます。 +% \begin{macrocode} +\setlength{\@tempdima}{\paperwidth} +\setlength{\@tempdimb}{\paperheight} +\iftombow + \advance \@tempdima 2in + \advance \@tempdimb 2in +\fi +\setlength{\pdfpagewidth}{\@tempdima} +\setlength{\pdfpageheight}{\@tempdimb} +% \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@} +%</10pt|11pt|12pt> +% \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 +%</article|report|book> +% \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 +%</tate> +%<*yoko> +%<!bk>\setlength\headsep{25\p@} +%<10pt&bk>\setlength\headsep{.25in} +%<11pt&bk>\setlength\headsep{.275in} +%<12pt&bk>\setlength\headsep{.275in} +%</yoko> +\setlength\topskip{1\Cht} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footskip} +% |\footskip|は、本文領域の下端とフッタの下端との距離です。 +% フッタのボックスの高さを示す、|\footheight|は削除されました。 +% \begin{macrocode} +%<tate>\setlength\footskip{14mm} +%<*yoko> +%<!bk>\setlength\footskip{30\p@} +%<10pt&bk>\setlength\footskip{.35in} +%<11pt&bk>\setlength\footskip{.38in} +%<12pt&bk>\setlength\footskip{30\p@} +%</yoko> +% \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 +%<yoko> \setlength\textwidth{.8\paperwidth} +%<tate> \setlength\textwidth{.8\paperheight} + \else +%<yoko> \setlength\textwidth{.7\paperwidth} +%<tate> \setlength\textwidth{.7\paperheight} + \fi + \else +% \end{macrocode} +% 2eモード:デフォルト設定 +% \begin{macrocode} +%<tate> \setlength\@tempdima{\paperheight} +%<yoko> \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} +%<tate> \addtolength\@tempdima{-1.3in} +%<yoko&10pt> \setlength\@tempdimb{327\p@} +%<yoko&11pt> \setlength\@tempdimb{342\p@} +%<yoko&12pt> \setlength\@tempdimb{372\p@} +%<tate&10pt> \setlength\@tempdimb{67\Cwd} +%<tate&11pt> \setlength\@tempdimb{61\Cwd} +%<tate&12pt> \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 +%<yoko> \addtolength\textheight{\topskip} +%<bk&yoko> \addtolength\textheight{\baselineskip} +%<tate> \addtolength\textheight{\Cht} +%<tate> \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 +%<tate&bk> \setlength\textheight{.75\paperwidth} +%<tate&!bk> \setlength\textheight{.78\paperwidth} +%<yoko&bk> \setlength\textheight{.70\paperheight} +%<yoko&!bk> \setlength\textheight{.75\paperheight} +% \end{macrocode} +% 2eモード:デフォルト値 +% \begin{macrocode} + \else +%<tate> \setlength\@tempdima{\paperwidth} +%<yoko> \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} +%<yoko> \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 +%<!bk> \setlength\topmargin{27\p@} +%<10pt&bk> \setlength\topmargin{.75in} +%<11pt&bk> \setlength\topmargin{.73in} +%<12pt&bk> \setlength\topmargin{.73in} + \fi +%</yoko> +%<*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} +%</tate> +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +%<tate> \addtolength\topmargin{-\textwidth} +%<yoko> \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 +%<yoko> \addtolength\topmargin{-2.0in} +%<tate> \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 +%<tate> \setlength\marginparsep{15\p@} +%<yoko> \setlength\marginparsep{10\p@} +\fi +%<tate>\setlength\marginparpush{7\p@} +%<*yoko> +%<10pt>\setlength\marginparpush{5\p@} +%<11pt>\setlength\marginparpush{5\p@} +%<12pt>\setlength\marginparpush{7\p@} +%</yoko> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\oddsidemargin} +% \begin{macro}{\evensidemargin} +% \begin{macro}{\marginparwidth} +% まず、互換モードでの長さを示します。 +% +% 互換モード、縦組の場合: +% \begin{macrocode} +\if@compatibility +%<tate> \setlength\oddsidemargin{0\p@} +%<tate> \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} +%</bk> +% \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 +%</!bk> +% \end{macrocode} +% 互換モード、横組、二段組の場合: +% \begin{macrocode} + \if@twocolumn + \setlength\oddsidemargin {30\p@} + \setlength\evensidemargin {30\p@} + \setlength\marginparwidth {48\p@} + \fi +%</yoko> +% \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} +%<tate> \addtolength\@tempdima{-\textheight} +%<yoko> \addtolength\@tempdima{-\textwidth} +% \end{macrocode} +% +% |\oddsidemargin|を計算します。 +% \begin{macrocode} + \if@twoside +%<tate> \setlength\oddsidemargin{.6\@tempdima} +%<yoko> \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} +%<tate> \addtolength\evensidemargin{-\textheight} +%<yoko> \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 +%</yoko> +% \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} +%</tate> + \@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@} +%</10pt> +%<*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@} +%</11pt> +%<*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@} +%</12pt> +% \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@} +%</10pt> +%<*11pt> +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +%</11pt> +%<*12pt> +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +%</12pt> +% \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} +%</10pt> +%<*11pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +%</11pt> +%<*12pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{10\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +%</12pt> +% \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} +%</10pt> +%<*11pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +%</11pt> +%<*12pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{10\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +%</12pt> +%</10pt|11pt|12pt> +% \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} +% つぎの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}として +% 設定されるため、一つの文書でのページ番号の位置が上下に出力される +% ことになります。 +% +% そこで、ここでは\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 +%<yoko> \def\@evenhead{\thepage\hfil}% +%<yoko> \def\@oddhead{\hfil\thepage}% +%<tate> \def\@evenhead{\hfil\thepage}% +%<tate> \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 +%<yoko> \def\@evenfoot{\thepage\hfil}% +%<yoko> \def\@oddfoot{\hfil\thepage}% +%<tate> \def\@evenfoot{\hfil\thepage}% +%<tate> \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 +%<yoko> \def\@evenhead{\thepage\hfil\leftmark}% +%<yoko> \def\@oddhead{{\rightmark}\hfil\thepage}% +%<tate> \def\@evenhead{{\leftmark}\hfil\thepage}% +%<tate> \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1\zw\fi + ##1}}% +%</article> +%<*report|book> + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne +%<book> \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw +%<book> \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}}% +%</report|book> + } +% \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 +%<yoko> \def\@oddhead{{\rightmark}\hfil\thepage}% +%<tate> \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1\zw\fi + ##1}}% +%</article> +%<*report|book> +\def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne +%<book> \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw +%<book> \fi + \fi + ##1}}% +%</report|book> + } +\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 +%</yoko> +%<*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 +%</tate> + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1\zw\fi + ##1}}% +%</article> +%<*report|book> +\def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne +%<book> \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw +%<book> \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}}% +%</report|book> + } +% \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 +%<yoko> \def\@oddhead{\hfil\rightmark}% +%<yoko> \def\@oddfoot{\hfil\thepage}% +%<tate> \def\@oddhead{\rightmark\hfil}% +%<tate> \def\@oddfoot{\thepage\hfil}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1\zw\fi + ##1}}% +%</article> +%<*report|book> + \def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne +%<book> \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw +%<book> \fi + \fi + ##1}}% +%</report|book> + } +\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 +%<yoko> \def\@evenhead{\thepage\hfil\leftmark}% +%<yoko> \def\@oddhead{{\rightmark}\hfil\thepage}% +%<tate> \def\@evenhead{{\leftmark}\hfil\thepage}% +%<tate> \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\@gobbletwo +%<!article> \let\chaptermark\@gobble + \let\sectionmark\@gobble +%<article> \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} + {% +%<book> \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} + {% +%<book> \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 +%<tate> \let\thanks\p@thanks + \let\footnote\thanks +% \end{macrocode} +% \changes{v1.1d}{1997/02/12}{縦組クラスの表紙を縦書きにするようにした} +% \begin{macrocode} +%<tate> \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 +%<tate> \vfil{\centering\@thanks}\vfil\null +%<tate> \egroup +%<yoko> \@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 1\zw\noindent + \hbox to 2\zw{\hss\@makefnmark}##1}% +%</tate> +%<*yoko> + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% +%</yoko> + \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}% +%<yoko> \let\footnote\thanks +%<tate> \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 +%</article|report> +% \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} +%<!article>\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} +%<article>\setcounter{secnumdepth}{3} +%<!article>\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] +%</book|report> +%<article>\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}} +%<article>\renewcommand{\thesection}{\rensuji{\@arabic\c@section}} +%<*report|book> +\renewcommand{\thechapter}{\rensuji{\@arabic\c@chapter}} +\renewcommand{\thesection}{\thechapter・\rensuji{\@arabic\c@section}} +%</report|book> +\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}} +%</tate> +%<*yoko> +\renewcommand{\thepart}{\@Roman\c@part} +%<article>\renewcommand{\thesection}{\@arabic\c@section} +%<*report|book> +\renewcommand{\thechapter}{\@arabic\c@chapter} +\renewcommand{\thesection}{\thechapter.\@arabic\c@section} +%</report|book> +\renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} +\renewcommand{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection} +\renewcommand{\theparagraph}{% + \thesubsubsection.\@arabic\c@paragraph} +\renewcommand{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph} +%</yoko> +% \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} +%</report|book> +% \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} +%</book> +% \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} +%</article> +% \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} +%</report|book> +% \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{1\zw}#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} +%</article> +% \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} +%</report|book> +% \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} +%</article> +% \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} +%</report|book> +% \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} +%</report|book> +% \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 +%<book> \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter\space\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% +%<book> \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}% +%<book> \if@mainmatter + \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1\zw}% + \addtolength\@tempdima{-\wd\z@}% + \unhbox\z@\nobreak +%<book> \fi + \vtop{\hsize\@tempdima#1}% + \else + #1\relax + \fi}\nobreak\vskip3\Cvs} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@schapter} +% このマクロは、章見出しに番号を付けないときに呼び出されます。 +% \begin{macrocode} +\def\@schapter#1{% +%<article> \if@twocolumn\@topnewpage[\@makeschapterhead{#1}]\else + \@makeschapterhead{#1}\@afterheading +%<article> \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} +%</report|book> +% \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}% +%<tate> \renewcommand{\thesection}{\rensuji{\@Alph\c@section}}} +%<yoko> \renewcommand{\thesection}{\@Alph\c@section}} +%</article> +% \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% +%<tate> \renewcommand{\thechapter}{\rensuji{\@Alph\c@chapter}}} +%<yoko> \renewcommand{\thechapter}{\@Alph\c@chapter}} +%</report|book> +% \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 +%</article|report|book> +% \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@} +%</10pt> +%<*11pt> + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +%</11pt> +%<*12pt> + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +%</12pt> +\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@ +%</10pt> +%<*11pt> + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +%</11pt> +%<*12pt> + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ +%</12pt> + \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} +%</10pt|11pt|12pt> +% \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}} +%</tate> +%<*yoko> +\renewcommand{\theenumi}{\@arabic\c@enumi} +\renewcommand{\theenumii}{\@alph\c@enumii} +\renewcommand{\theenumiii}{\@roman\c@enumiii} +\renewcommand{\theenumiv}{\@Alph\c@enumiv} +%</yoko> +% \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} +%</tate> +%<*yoko> +\newcommand{\labelenumi}{\theenumi.} +\newcommand{\labelenumii}{(\theenumii)} +\newcommand{\labelenumiii}{\theenumiii.} +\newcommand{\labelenumiv}{\theenumiv.} +%</yoko> +% \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@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@enumdepth=\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \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@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@itemdepth =\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \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=1\zw \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} +%<article>\newcounter{figure} +%<report|book>\newcounter{figure}[chapter] +%<*tate> +%<article>\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}} +%</report|book> +%</tate> +%<*yoko> +%<article>\renewcommand{\thefigure}{\@arabic\c@figure} +%<*report|book> +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@figure} +%</report|book> +%</yoko> +% \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} +%<tate>\def\fnum@figure{\figurename\thefigure} +%<yoko>\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} +%<article>\newcounter{table} +%<report|book>\newcounter{table}[chapter] +%<*tate> +%<article>\renewcommand{\thetable}{\rensuji{\@arabic\c@table}} +%<*report|book> +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@table}} +%</report|book> +%</tate> +%<*yoko> +%<article>\renewcommand{\thetable}{\@arabic\c@table} +%<*report|book> +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@table} +%</report|book> +%</yoko> +% \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} +%<tate>\def\fnum@table{\tablename\thetable} +%<yoko>\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\hskip1\zw#2}% + \else\sbox\@tempboxa{#1: #2}% + \fi + \ifdim \wd\@tempboxa >\hsize + \iftdir #1\hskip1\zw#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} +%<article>\renewcommand{\theequation}{\@arabic\c@equation} +%<*report|book> +\@addtoreset{equation}{chapter} +\renewcommand{\theequation}{% + \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +%</report|book> +% \end{macrocode} +% \end{macro} +% +% +% \section{フォントコマンド} +% まず、数式内に日本語を直接、記述するために数式記号用文字に +% ``JY3/mc/m/n''を登録します。数式バージョンがboldの場合は、 +% ``JY3/gt/m/n''を用います。 +% これらは、|\mathmc|, |\mathgt|として登録されます。 +% また、日本語数式ファミリとして|\symmincho|がこの段階で設定されます。 +% |mathrmmc|オプションが指定されていた場合には、これに引き続き +% |\mathrm|と|\mathbf|を和欧文両対応にするための作業がなされます。この際、 +% 他のマクロとの衝突を避けるため|\AtBeginDocument| +% を用いて展開順序を遅らせる必要があります。 +% +% \textbf{変更} +% +% \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。} +% \LaTeX{} 2.09 +% compatibility mode では和文数式フォントfam が2重定義されていた +% ので、その部分を変更しました。 +% \begin{macrocode} +\if@compatibility\else + \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} +\fi +\if@mathrmmc + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} +}% +\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} +%<article>\setcounter{tocdepth}{3} +%<!article>\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 +%<yoko>\setlength\toclineskip{\z@} +%<tate>\setlength\toclineskip{2\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\numberline} +% \begin{macro}{\@lnumwidth} +% |\numberline|マクロの定義を示します。オリジナルの定義では、ボックスの幅を +% |\@tempdima|にしていますが、この変数はいろいろな箇所で使われますので、 +% 期待した値が入らない場合があります。 +% +% たとえば、|lltjfont.sty|での|\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 +%<tate>\@temptokena{\rensuji{\thepage}}}% +%<yoko>\@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 +%</report|book> +%<article> \section*{\contentsname +%<!article> \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + }\@starttoc{toc}% +%<report|book> \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@part} +% partレベルの目次です。 +% \begin{macrocode} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax +%<article> \addpenalty{\@secpenalty}% +%<!article> \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + {\leavevmode\large\bfseries + \setlength\@lnumwidth{4\zw}% + #1\hfil\nobreak + \hbox to\@pnumwidth{\hss#2}}\par + \nobreak +%<article> \if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% +%<article> \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{4\zw}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} +%</report|book> +% \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} +%</article> +% \end{macrocode} +% +% \begin{macrocode} +%<*report|book> +%<tate>\newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{4\zw}} +%<yoko>\newcommand*{\l@section}{\@dottedtocline{1}{1.5em}{2.3em}} +%</report|book> +% \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}{1\zw}{4\zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\zw}{6\zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{3\zw}{8\zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\zw}{9\zw}} +%</article> +%<*report|book> +\newcommand*{\l@subsection} {\@dottedtocline{2}{2\zw}{6\zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3\zw}{8\zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{4\zw}{9\zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{5\zw}{10\zw}} +%</report|book> +%</tate> +%<*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}} +%</article> +%<*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}} +%</report|book> +%</yoko> +% \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 +%</report|book> +%<article> \section*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% +%<report|book> \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@figure} +% 図目次の体裁です。 +% \begin{macrocode} +%<tate>\newcommand*{\l@figure}{\@dottedtocline{1}{1\zw}{4\zw}} +%<yoko>\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 +%</report|book> +%<article> \section*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% +%<report|book> \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] +%<article>{\section*{\refname\@mkboth{\refname}{\refname}}% +%<report|book>{\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@ +%<article> \twocolumn[\section*{\indexname}]% +%<report|book> \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} +%<!article>\@addtoreset{footnote}{chapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefntext} +% このマクロにしたがって脚注が組まれます。 +% +% |\@makefnmark|は脚注記号を組み立てるマクロです。 +% \begin{macrocode} +%<*tate> +\newcommand\@makefntext[1]{\parindent 1\zw + \noindent\hbox to 2\zw{\hss\@makefnmark}#1} +%</tate> +%<*yoko> +\newcommand\@makefntext[1]{\parindent 1em + \noindent\hbox to 1.8em{\hss\@makefnmark}#1} +%</yoko> +% \end{macrocode} +% \end{macro} +% +% +% \section{今日の日付} +% 組版時における現在の日付を出力します。 +% +% \iffalse meta-comment! +% 注意:ここで \DisableCrossrefs, \EnableCrossrefs をしているのは、 +% platex jclasses.dtx で dvi を作るときにエラーになるため。 +% \fi +% \DisableCrossrefs +% \begin{macro}{\ifSeireki} +% \begin{macro}{\Seireki} +% \begin{macro}{\Wareki} +% \changes{v1.0h}{1996/12/17}{Typo:和歴 to 和暦} +% |\today|コマンドの`年'を、 +% 西暦か和暦のどちらで出力するかを指定するコマンドです。 +% \begin{macrocode} +\newif\ifSeireki \Seirekifalse +\def\Seireki{\Seirekitrue} +\def\Wareki{\Seirekifalse} +% \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 + \ifSeireki + \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 + \ifSeireki + \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}{部} +%<report|book>\newcommand{\prechaptername}{第} +%<report|book>\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} +%<article>\newcommand{\refname}{参考文献} +%<report|book>\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}{付 録} +%<article|report>\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} +%<book>\pagestyle{headings} +%<!book>\pagestyle{plain} +\pagenumbering{arabic} +\raggedbottom +\if@twocolumn + \twocolumn + \sloppy +\else + \onecolumn +\fi +% \end{macrocode} +% |\@mparswitch|は傍注を左右(縦組では上下)どちらのマージンに +% 出力するかの指定です。偽の場合、傍注は一方の側にしか出力されません。 +% このスイッチを真とすると、とくに縦組の場合、奇数ページでは本文の上に、 +% 偶数ページでは本文の下に傍注が出力されますので、おかしなことになります。 +% +% また、縦組のときには、傍注を本文の下に出すようにしています。 +% |\reversemarginpar|とすると本文の上側に出力されます。 +% ただし、二段組の場合は、つねに隣接するテキスト側のマージンに出力されます。 +% \begin{macrocode} +%<*tate> +\normalmarginpar +\@mparswitchfalse +%</tate> +%<*yoko> +\if@twoside + \@mparswitchtrue +\else + \@mparswitchfalse +\fi +%</yoko> +%</article|report|book> +% \end{macrocode} +% +% +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjclasses.ins b/Master/texmf-dist/source/luatex/luatexja/ltjclasses.ins new file mode 100644 index 00000000000..36931de1816 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjclasses.ins @@ -0,0 +1,28 @@ +% +% ltjclasses.ins +% + +\input docstrip +\keepsilent + +\generateFile{ltjarticle.cls}{f}{\from{ltjclasses.dtx}{article,yoko}} +\generateFile{ltjreport.cls}{f}{\from{ltjclasses.dtx}{report,yoko}} +\generateFile{ltjbook.cls}{f}{\from{ltjclasses.dtx}{book,yoko}} +\generateFile{ltjsize10.clo}{f}{\from{ltjclasses.dtx}{10pt,yoko}} +\generateFile{ltjsize11.clo}{f}{\from{ltjclasses.dtx}{11pt,yoko}} +\generateFile{ltjsize12.clo}{f}{\from{ltjclasses.dtx}{12pt,yoko}} +\generateFile{ltjbk10.clo}{f}{\from{ltjclasses.dtx}{10pt,bk,yoko}} +\generateFile{ltjbk11.clo}{f}{\from{ltjclasses.dtx}{11pt,bk,yoko}} +\generateFile{ltjbk12.clo}{f}{\from{ltjclasses.dtx}{12pt,bk,yoko}} + +%% \generateFile{ltjtarticle.cls}{f}{\from{ltjclasses.dtx}{article,tate}} +%% \generateFile{ltjtreport.cls}{f}{\from{ltjclasses.dtx}{report,tate}} +%% \generateFile{ltjtbook.cls}{f}{\from{ltjclasses.dtx}{book,tate}} +%% \generateFile{ltjtsize10.clo}{f}{\from{ltjclasses.dtx}{10pt,tate}} +%% \generateFile{ltjtsize11.clo}{f}{\from{ltjclasses.dtx}{11pt,tate}} +%% \generateFile{ltjtsize12.clo}{f}{\from{ltjclasses.dtx}{12pt,tate}} +%% \generateFile{ltjtbk10.clo}{f}{\from{ltjclasses.dtx}{10pt,bk,tate}} +%% \generateFile{ltjtbk11.clo}{f}{\from{ltjclasses.dtx}{11pt,bk,tate}} +%% \generateFile{ltjtbk12.clo}{f}{\from{ltjclasses.dtx}{12pt,bk,tate}} + +\endbatchfile diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjlist.lua b/Master/texmf-dist/source/luatex/luatexja/ltjlist.lua new file mode 100644 index 00000000000..dbe8e82bcc6 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjlist.lua @@ -0,0 +1,24 @@ +print("% This file is automatically generated by ltjlist.lua.") + +function inner(a, b, c) + print("\\ltj@@listing@jpset{" .. a .. "}{" .. b .. "}") +end +function innerN(a, b, c) + print("\\ltj@@listing@jpsetN{" .. a .. "}{" + .. b .. "}{" .. c .. "}") +end +k = arg[1] +t = {{0x2000, 0xFEFF, "BMP"}, {0x20000, 0x2FFFF, "SIP"}} +for g, v in pairs(t) do + print("\\message{" .. v[3] .. "}") + for x = v[1],v[2],k do + inner(x, x+k-1, "\\lst@ProcessJALetter") + end +end + +print("\\message{Hankaku}") +innerN(0xFF00, 0xFF60, "\\lst@ProcessJALetter") +innerN(0xFF61, 0xFF9F, "\\lst@ProcessJALetterHalf") +innerN(0xFFE0, 0xFFE5, "\\lst@ProcessJALetter") + +print("\\message{done.}") diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjltxdoc.dtx b/Master/texmf-dist/source/luatex/luatexja/ltjltxdoc.dtx new file mode 100644 index 00000000000..549f847ed35 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjltxdoc.dtx @@ -0,0 +1,191 @@ +% \iffalse meta-comment +%% File: ltjltxdoc.dtx +% ------------------------------------- +% Original: jltxdoc.dtx +% +% Copyright 1995,1996,1997 ASCII Corporation. +% +% This file is part of pLaTeX2e system. +% ------------------------------------- +% +% \fi +% +% \CheckSum{137} +%% \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}を変更} +% \changes{v1.0b-ltj}{2011/09/27}{Lua\LaTeX-ja 用に修正} +% \fi +% +% \iffalse +%<class> +%<class>\NeedsTeXFormat{LaTeX2e} +%<class>\ProvidesClass{ltjltxdoc}[2011/10/03 v1.0b-ltj Standard LuaLaTeX-ja file] +%<*driver> +\documentclass{ltjltxdoc} +\GetFileInfo{ltjltxdoc.cls} +\title{Lua\LaTeX-jaドキュメント記述用クラス} +\author{Lua\TeX-ja プロジェクト} +\date{\filedate} +\begin{document} + \maketitle + \DocInput{ltjltxdoc.dtx} +\end{document} +%</driver> +% \fi +% +% \file{ltjltxdoc}クラスは、\file{ltxdoc}をテンプレートにして、日本語用の +% 修正を加えています。 +% \begin{macrocode} +%<*class> +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ltxdoc}} +\ProcessOptions +\LoadClass{ltxdoc} +% \end{macrocode} +% \file{ltxdoc} の読み込み後に \file{luatexja} を読み込みます。 +% \begin{macrocode} +\RequirePackage{luatexja} +% \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{1\zw} +% \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|環境は、環境内に指定された内容を罫線で囲って出力をします。 +% 第一引数は、出力するボックスの高さです。 +% このマクロ内では縦組になることに注意してください。 +% \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}{alxspmode} +% コマンド名の|\|と16進数を示すための|"|の前にもスペースが入るよう、 +% これらの|alxspmode|の値を変更します。 +% \changes{v1.0b}{1997/07/29}{\cs{}と\texttt{"}の\cs{xspcode}を変更} +% \changes{v1.0b-ltj}{2011/09/27}{\cs{xspcode}→\cs{ltjsetparameter{alxspmode={...}}}} +% \begin{macrocode} +\ltjsetparameter{alxspmode={"5C,3}} %% \ +\ltjsetparameter{alxspmode={"22,3}} %% " +%</class> +% \end{macrocode} +% \end{macro} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjltxdoc.ins b/Master/texmf-dist/source/luatex/luatexja/ltjltxdoc.ins new file mode 100644 index 00000000000..e07f3bf3652 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjltxdoc.ins @@ -0,0 +1,10 @@ +% +% ltjltxdoc.ins +% + +\input docstrip +\keepsilent + +\generateFile{ltjltxdoc.cls}{f}{\from{ltjltxdoc.dtx}{class}} + +\endbatchfile diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx b/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx new file mode 100644 index 00000000000..3d222f45aa8 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx @@ -0,0 +1,4954 @@ +% \iffalse meta-comment +%% File: ltjsclasses.dtx +% ----------------------------------------- +% Original: jsclasses.dtx +% +% pLaTeX2ε新ドキュメントクラス +% +% これは LaTeX3 Project の classes.dtx と株式会社アスキーの jclasses.dtx +% に基づいて奥村 <okumura@edu.mie-u.ac.jp> が改変したものです。 +% 奥村の改変部分については何の権利も主張しません。 +% オリジナルの著作権の許す範囲で自由にご利用ください。 +% +% [2002-12-19] いろいろなものに収録していただく際にライセンスを明確にする +% 必要が生じてきました。アスキーのものが最近はmodified BSDライセンスになっ +% ていますので,私のものもそれに準じてmodified BSDとすることにします。 +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% Copyright 1995-1999 ASCII Corporation. +% ----------------------------------------- +% +% \fi +% \CheckSum{4855} +%% \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 \~} +% +% \iffalse +% +% \begin{macrocode} +%<article|book|jspf|kiyou>\NeedsTeXFormat{LaTeX2e} +%<article>\ProvidesClass{ltjsarticle} +%<book>\ProvidesClass{ltjsbook} +%<jspf>\ProvidesClass{ltjspf} +%<kiyou>\ProvidesClass{ltjskiyou} +%<*driver> +\ProvidesFile{ltjsclasses.dtx} +%</driver> + [2011/10/03 ] +%<*driver> +\documentclass{ltjsarticle} +\usepackage{doc} +\usepackage[unicode]{hyperref} +\addtolength{\textwidth}{-1in} +\addtolength{\evensidemargin}{1in} +\addtolength{\oddsidemargin}{1in} +\addtolength{\marginparwidth}{1in} +\setlength\marginparpush{0pt} +% \OnlyDescription +\DisableCrossrefs +\setcounter{StandardModuleDepth}{1} +\GetFileInfo{ltjsclasses.dtx} +\CodelineNumbered +\begin{document} +\DocInput{ltjsclasses.dtx} +\end{document} +%</driver> +% \end{macrocode} +% +% \fi +% +% \title{Lua\LaTeX-ja 用 \texttt{jsclasses} 互換クラス} +% \author{Lua\TeX-ja プロジェクト} +% \date{\filedate} +% \maketitle +% \tableofcontents +% +% \MakeShortVerb{\|} +% +% \section{はじめに} +% +% これは奥村晴彦先生による |jsclasses.dtx| を Lua\LaTeX-ja 用に改変したものです。 +% 次のドキュメントクラス(スタイルファイル)を生成します。 +% \begin{quote} +% \begin{tabular}{lll} +% $\langle$\textsf{article}$\rangle$ & \texttt{ltjsarticle.cls} & 論文・レポート用 \\ +% $\langle$\textsf{book}$\rangle$ & \texttt{ltjsbook.cls} & 書籍用 \\ +% $\langle$\textsf{jspf}$\rangle$ & \texttt{ltjspf.cls} & 某学会誌用 \\ +% $\langle$\textsf{kiyou}$\rangle$ & \texttt{ltjskiyou.cls} & 某紀要用 +% \end{tabular} +% \end{quote} +% +% |ltjclasses| と違うのは以下の点です。 +% +% \paragraph{サイズオプションの扱いが違う} +% +% |ltjclasses| では本文のポイント数を指定するオプションがあり +% ましたが,ポイント数は10,11,12しかなく,それぞれ別のクラスオプション +% ファイルを読み込むようになっていました。しかも,標準の10ポイント以外で +% は多少フォントのバランスが崩れることがあり,あまり便利ではありませんで +% した。ここでは文字サイズを増すとページを小さくし,\TeX の |\mag| プリ +% ミティブで全体的に拡大するという手を使って,9ポイントや21,25,30,36, +% 43ポイント,12Q,14Qの指定を可能にしています。 +% +% \subsection{\texttt{jsclasses.dtx} からの主な変更点} +% 全ての変更点を知りたい場合は,|jsclasses.dtx| と |ltjsclasses.dtx| で |diff| を +% とって下さい。 +% \begin{itemize} +% \item フォントメトリック関係のオプション |winjis| は単に無視されます。 +% \item 標準では |jfm-ujis.lua|(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。 +% \item |uplatex| オプションを削除してあります。 +% \item |disablejfam| オプションが無効になっています。もし +% \begin{quotation} +% |! LaTeX Error: Too many math alphabets used in version ****.| +% \end{quotation} +% のエラーが起こった場合は,|lualatex-math| パッケージを読み込んでみて下さい。 +% \item |papersize| オプションの指定に関わらず PDF のページサイズは適切に +% 設定されます。 +% \item Lua\TeX-ja 同梱のメトリックを用いる限りは,段落の頭にグルーは挿入されません。 +% そのため,オリジナルの |jsclasses.dtx| 内にあったhack(|\everyparhook|)は不要になったので, +% 削除しました。 +% \item 「\texttt{amsmath} との衝突の回避」のコードは,上流で既に対処されているうえ, +% これがあると |grfext.sty| を読み込んだ際にエラーを引き起こすので削除しました。 +% \item |\小|,|\上小|,|\if西暦|,|\西暦|,|\和暦|をそれぞれ +% |\Shou|, |\UeShou|, |\ifSeireki|, |\Seireki|, |\Wareki| に変更してあります。 +% これはデフォルトの漢字のカテゴリコードが12であるためです。 +% \end{itemize} +% +% \StopEventually +% +% 以下では実際のコードに即して説明します。 +% \section{Lua\TeX-ja の読み込み} +% +% まず,|luatexja| を読み込みます。 +% \begin{macrocode} +\RequirePackage{luatexja} +% \end{macrocode} +% +% \section{オプション} +% +% これらのクラスは |\documentclass{ltjsarticle}| +% あるいは |\documentclass[オプション]{ltjsarticle}| +% のように呼び出します。 +% +% 最初に,オプションに関連するいくつかのコマンドやスイッチ(論理変数)を定 +% 義します。 +% +% \begin{macro}{\if@restonecol} +% +% 段組のときに真になる論理変数です。 +% +% \begin{macrocode} +\newif\if@restonecol +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@titlepage} +% +% これを真にすると表題,概要を独立したページに出力します。 +% +% \begin{macrocode} +\newif\if@titlepage +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@openright} +% +% |\chapter|,|\part| を奇数ページ起こしにするかどうかです。 +% 書籍では真が標準です。 +% +% \begin{macrocode} +%<book>\newif\if@openright +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@mainmatter} +% +% 真なら本文,偽なら前付け・後付けです。 +% 偽なら |\chapter| で章番号が出ません。 +% +% \begin{macrocode} +%<book>\newif\if@mainmatter \@mainmattertrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@enablejfam} +% +% 和文フォントを数式フォントとして登録するかどうかを示すスイッチです。 +% 実際には用いられません。 +% +% \begin{macrocode} +\newif\if@enablejfam \@enablejfamtrue +% \end{macrocode} +% \end{macro} +% +% 以下で各オプションを宣言します。 +% +% \paragraph{用紙サイズ} +% +% JISやISOのA0判は面積 $1\,\mathrm{m}^2$,縦横比 $1:\sqrt{2}$ +% の長方形の辺の長さを mm 単位に切り捨てたものです。 +% これを基準として順に半截しては mm 単位に切り捨てたものがA1,A2,…です。 +% +% B判はJISとISOで定義が異なります。 +% JISではB0判の面積が $1.5\,\mathrm{m}^2$ ですが, +% ISOではB1判の辺の長さがA0判とA1判の辺の長さの幾何平均です。 +% したがってISOのB0判は $1000\,\mathrm{mm} \times 1414\,\mathrm{mm}$ です。 +% このため,\LaTeXe の \texttt{b5paper} +% は $250\,\mathrm{mm} \times 176\,\mathrm{mm}$ ですが, +% \pLaTeXe の \texttt{b5paper} +% は $257\,\mathrm{mm} \times 182\,\mathrm{mm}$ になっています。 +% ここでは\pLaTeXe にならってJISに従いました。 +% +% デフォルトは \texttt{a4paper} です。 +% +% \texttt{b5var}(B5変形,182mm×230mm), +% \texttt{a4var}(A4変形,210mm×283mm)を追加しました。 +% +% \begin{macrocode} +\DeclareOption{a3paper}{% + \setlength\paperheight {420mm}% + \setlength\paperwidth {297mm}} +\DeclareOption{a4paper}{% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper}{% + \setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} +\DeclareOption{a6paper}{% + \setlength\paperheight {148mm}% + \setlength\paperwidth {105mm}} +\DeclareOption{b4paper}{% + \setlength\paperheight {364mm}% + \setlength\paperwidth {257mm}} +\DeclareOption{b5paper}{% + \setlength\paperheight {257mm}% + \setlength\paperwidth {182mm}} +\DeclareOption{b6paper}{% + \setlength\paperheight {182mm}% + \setlength\paperwidth {128mm}} +\DeclareOption{a4j}{% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5j}{% + \setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} +\DeclareOption{b4j}{% + \setlength\paperheight {364mm}% + \setlength\paperwidth {257mm}} +\DeclareOption{b5j}{% + \setlength\paperheight {257mm}% + \setlength\paperwidth {182mm}} +\DeclareOption{a4var}{% + \setlength\paperheight {283mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{b5var}{% + \setlength\paperheight {230mm}% + \setlength\paperwidth {182mm}} +\DeclareOption{letterpaper}{% + \setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{legalpaper}{% + \setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} +\DeclareOption{executivepaper}{% + \setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} +% \end{macrocode} +% +% \paragraph{横置き} +% +% 用紙の縦と横の長さを入れ換えます。 +% +% \begin{macrocode} +\newif\if@landscape +\@landscapefalse +\DeclareOption{landscape}{\@landscapetrue} +% \end{macrocode} +% +% \paragraph{slide} +% +% オプション \texttt{slide} を新設しました。 +% +% \begin{macrocode} +\newif\if@slide +\@slidefalse +% \end{macrocode} +% +% \paragraph{サイズオプション} +% +% 10pt,11pt,12pt のほかに,8pt,9pt,14pt,17pt,21pt,25pt,30pt,36pt,43pt を追加しました。 +% これは等比数列になるように選んだものです(従来の 20pt も残しました)。 +% |\@ptsize| の定義が変だったのでご迷惑をおかけしましたが, +% 標準的なドキュメントクラスと同様にポイント数から10を引いたものに直しました。 +% +% [2003-03-22] 14Qオプションを追加しました。 +% +% [2003-04-18] 12Qオプションを追加しました。 +% +% \begin{macrocode} +\newcommand{\@ptsize}{0} +\DeclareOption{slide}{\@slidetrue\renewcommand{\@ptsize}{26}\@landscapetrue\@titlepagetrue} +\DeclareOption{8pt}{\renewcommand{\@ptsize}{-2}} +\DeclareOption{9pt}{\renewcommand{\@ptsize}{-1}} +\DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} +\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} +\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} +\DeclareOption{14pt}{\renewcommand{\@ptsize}{4}} +\DeclareOption{17pt}{\renewcommand{\@ptsize}{7}} +\DeclareOption{20pt}{\renewcommand{\@ptsize}{10}} +\DeclareOption{21pt}{\renewcommand{\@ptsize}{11}} +\DeclareOption{25pt}{\renewcommand{\@ptsize}{15}} +\DeclareOption{30pt}{\renewcommand{\@ptsize}{20}} +\DeclareOption{36pt}{\renewcommand{\@ptsize}{26}} +\DeclareOption{43pt}{\renewcommand{\@ptsize}{33}} +\DeclareOption{12Q}{\renewcommand{\@ptsize}{1200}} +\DeclareOption{14Q}{\renewcommand{\@ptsize}{1400}} +% \end{macrocode} +% +% \paragraph{トンボオプション} +% +% トンボ(crop marks)を出力します。 +% 実際の処理は |lltjcore.sty| で行います。 +% オプション \texttt{tombow} で日付付きのトンボ, +% オプション \texttt{tombo} で日付なしのトンボを出力します。 +% これらはアスキー版のままです。 +% カウンタ |\hour|,|\minute| は |luatexja-compat.sty| で宣言されています。 +% +% \begin{macrocode} +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta +\DeclareOption{tombow}{% + \tombowtrue \tombowdatetrue + \setlength{\@tombowwidth}{.1\p@}% + \@bannertoken{% + \jobname\space(\number\year-\two@digits\month-\two@digits\day + \space\two@digits\hour:\two@digits\minute)}% + \maketombowbox} +\DeclareOption{tombo}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{.1\p@}% + \maketombowbox} +% \end{macrocode} +% +% \paragraph{面付け} +% +% オプション \texttt{mentuke} で幅ゼロのトンボを出力します。 +% 面付けに便利です。これもアスキー版のままです。 +% +% \begin{macrocode} +\DeclareOption{mentuke}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \maketombowbox} +% \end{macrocode} +% +% \paragraph{両面,片面オプション} +% +% \texttt{twoside} で奇数ページ・偶数ページのレイアウトが変わります。 +% +% [2003-04-29] \texttt{vartwoside} でどちらのページも傍注が右側になります。 +% +% \begin{macrocode} +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} +\DeclareOption{vartwoside}{\@twosidetrue \@mparswitchfalse} +% \end{macrocode} +% +% \paragraph{二段組} +% +% \texttt{twocolumn} で二段組になります。 +% +% \begin{macrocode} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +% \end{macrocode} +% +% \paragraph{表題ページ} +% +% \texttt{titlepage} で表題・概要を独立したページに出力します。 +% +% \begin{macrocode} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +% \end{macrocode} +% +% \paragraph{右左起こし} +% +% 書籍では章は通常は奇数ページ起こしになりますが, +% \texttt{openany} で偶数ページからでも始まるようになります。 +% +% \begin{macrocode} +%<book>\DeclareOption{openright}{\@openrighttrue} +%<book>\DeclareOption{openany}{\@openrightfalse} +% \end{macrocode} +% +% \paragraph{eqnarray環境と数式の位置} +% +% 森本さんのご教示にしたがって前に移動しました。 +% +% \begin{environment}{eqnarray} +% +% \LaTeX の |eqnarray| 環境では |&| でできるアキが大きすぎる +% ようですので,少し小さくします。 +% また,中央の要素も |\displaystyle| にします。 +% +% \begin{macrocode} +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil + &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr} +% \end{macrocode} +% \end{environment} +% +% \texttt{leqno} で数式番号が左側になります。 +% \texttt{fleqn} で数式が本文左端から一定距離のところに出力されます。 +% 森本さんにしたがって訂正しました。 +% +% \begin{macrocode} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}% +% fleqn用のeqnarray環境の再定義 + \def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue\m@th + \global\@eqcnt\z@ + \tabskip\mathindent + \let\\=\@eqncr + \setlength\abovedisplayskip{\topsep}% + \ifvmode + \addtolength\abovedisplayskip{\partopsep}% + \fi + \addtolength\abovedisplayskip{\parskip}% + \setlength\belowdisplayskip{\abovedisplayskip}% + \setlength\belowdisplayshortskip{\abovedisplayskip}% + \setlength\abovedisplayshortskip{\abovedisplayskip}% + $$\everycr{}\halign to\linewidth% $$ + \bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil + &\global\@eqcnt\tw@ + $\displaystyle{##}$\hfil \tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip\cr + }} +% \end{macrocode} +% +% \paragraph{文献リスト} +% +% 文献リストをopen形式(著者名や書名の後に改行が入る)で出力します。 +% これは使われることはないのでコメントアウトしてあります。 +% +% \begin{macrocode} +% \DeclareOption{openbib}{% +% \AtEndOfPackage{% +% \renewcommand\@openbib@code{% +% \advance\leftmargin\bibindent +% \itemindent -\bibindent +% \listparindent \itemindent +% \parsep \z@}% +% \renewcommand\newblock{\par}}} +% \end{macrocode} +% +% \paragraph{数式フォントとして和文フォントを登録しないオプション} +% +% p\TeX では数式中では16通りのフォントしか使えませんでしたが,Lua\TeX では +% Omega 拡張が取り込まれていて256通りのフォントが使えます。 +% ただし,\LaTeXe カーネルでは未だに数式ファミリの数は16個に制限されているので, +% 実際に使用可能な数式ファミリの数を増やすためには |lualatex-math| パッケージを +% 読み込む必要があることに注意が必要です。 +% +% \begin{macrocode} +\DeclareOption{disablejfam}{% + \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} +% \end{macrocode} +% +% \paragraph{ドラフト} +% +% \texttt{draft} でoverfull boxの起きた行末に5ptの罫線を引きます。 +% +% \begin{macrocode} +\newif\ifdraft +\DeclareOption{draft}{\drafttrue \setlength\overfullrule{5pt}} +\DeclareOption{final}{\draftfalse \setlength\overfullrule{0pt}} +% \end{macrocode} +% +% \paragraph{和文フォントメトリックの選択} +% +% ここではOTFパッケージのメトリックを元とした,|jfm-ujis.lua|メトリックを標準で使います。 +% 古い \texttt{min10},\texttt{goth10} 互換のメトリックを使いたいときは \texttt{mingoth} +% というオプションを指定します。 +% p\TeX でよく利用される \texttt{jis} フォントメトリックと互換のメトリックを使いたい場合は, +% \texttt{ptexjis} というオプションを指定します。 +% \texttt{winjis} メトリックは用済みのため,\texttt{winjis} オプションは無視されます。 +% +% \begin{macrocode} +\newif\ifmingoth +\mingothfalse +\newif\ifjisfont +\jisfontfalse +\newif\ifptexjis +\ptexjisfalse +\DeclareOption{winjis}{% + \ClassWarningNoLine{\@currname}{The class option 'winjis' is obsolete}} +\DeclareOption{uplatex}{% + \ClassWarningNoLine{\@currname}{The class option 'uplatex' is obsolete}} +\DeclareOption{mingoth}{\mingothtrue} +\DeclareOption{ptexjis}{\ptexjistrue} +\DeclareOption{jis}{\jisfonttrue} +% \end{macrocode} +% +% \paragraph{papersizeスペシャルの利用} +% +% |ltjsclasses| では |papersize| オプションの有無に関わらず, +% PDF のページサイズは適切に設定されます。 +% +% \begin{macrocode} +\newif\ifpapersize +\papersizefalse +\DeclareOption{papersize}{\papersizetrue} +% \end{macrocode} +% +% \paragraph{英語化} +% +% オプション \texttt{english} を新設しました。 +% +% \begin{macrocode} +\newif\if@english +\@englishfalse +\DeclareOption{english}{\@englishtrue} +% \end{macrocode} +% +% \paragraph{ltjsreport相当} +% +% オプション \texttt{report} を新設しました。 +% +% \begin{macrocode} +%<*book> +\newif\if@report +\@reportfalse +\DeclareOption{report}{\@reporttrue\@openrightfalse\@twosidefalse\@mparswitchfalse} +%</book> +% \end{macrocode} +% +% \paragraph{オプションの実行} +% +% デフォルトのオプションを実行します。 +% |multicols| や |url| を |\RequirePackage| するのはやめました。 +% +% \begin{macrocode} +%<article>\ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final} +%<book>\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} +%<jspf>\ExecuteOptions{a4paper,twoside,twocolumn,notitlepage,fleqn,final} +%<kiyou>\ExecuteOptions{a4paper,twoside,twocolumn,notitlepage,final} +\ProcessOptions +% \end{macrocode} +% +% 後処理 +% +% \begin{macrocode} +\if@slide + \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} +\fi +\if@landscape + \setlength\@tempdima {\paperheight} + \setlength\paperheight{\paperwidth} + \setlength\paperwidth {\@tempdima} +\fi +% \end{macrocode} +% +% \paragraph{基準となる行送り} +% +% \begin{macro}{\n@baseline} +% +% 基準となる行送りをポイント単位で表したものです。 +% +% \begin{macrocode} +%<article|book>\if@slide\def\n@baseline{13}\else\def\n@baseline{16}\fi +%<jspf>\def\n@baseline{14.554375} +%<kiyou>\def\n@baseline{14.897} +% \end{macrocode} +% \end{macro} +% +% \paragraph{拡大率の設定} +% +% サイズの変更は\TeX のプリミティブ |\mag| を使って行います。 +% 9ポイントについては行送りも若干縮めました。 +% サイズについては全面的に見直しました。 +% +% [2008-12-26] 1000 / |\mag| に相当する |\inv@mag| を定義しました。 +% |truein| を使っていたところを |\inv@mag in| に直しましたので, +% |geometry| パッケージと共存できると思います。 +% なお,新ドキュメントクラス側で |10pt| 以外にする場合の注意: +% \begin{itemize} +% \item |geometry| 側でオプション |truedimen| を指定してください。 +% \item |geometry| 側でオプション |mag| は使えません。 +% \end{itemize} +% +% \begin{macrocode} +\def\inv@mag{1} +\ifnum\@ptsize=-2 + \mag 833 + \def\inv@mag{1.20048} + \def\n@baseline{15}% +\fi +\ifnum\@ptsize=-1 + \mag 913 % formerly 900 + \def\inv@mag{1.09529} + \def\n@baseline{15}% +\fi +\ifnum\@ptsize=1 + \mag 1095 % formerly 1100 + \def\inv@mag{0.913242} +\fi +\ifnum\@ptsize=2 + \mag 1200 + \def\inv@mag{0.833333} +\fi +\ifnum\@ptsize=4 + \mag 1440 + \def\inv@mag{0.694444} +\fi +\ifnum\@ptsize=7 + \mag 1728 + \def\inv@mag{0.578704} +\fi +\ifnum\@ptsize=10 + \mag 2000 + \def\inv@mag{0.5} +\fi +\ifnum\@ptsize=11 + \mag 2074 + \def\inv@mag{0.48216} +\fi +\ifnum\@ptsize=15 + \mag 2488 + \def\inv@mag{0.401929} +\fi +\ifnum\@ptsize=20 + \mag 2986 + \def\inv@mag{0.334896} +\fi +\ifnum\@ptsize=26 + \mag 3583 + \def\inv@mag{0.279096} +\fi +\ifnum\@ptsize=33 + \mag 4300 + \def\inv@mag{0.232558} +\fi +\ifnum\@ptsize=1200 + \mag 923 + \def\inv@mag{1.0834236} +\fi +\ifnum\@ptsize=1400 + \mag 1077 + \def\inv@mag{0.928505} +\fi +%<*kiyou> +\mag 977 +\def\inv@mag{1.02354} +%</kiyou> +\setlength\paperwidth{\inv@mag\paperwidth}% +\setlength\paperheight{\inv@mag\paperheight}% +% \end{macrocode} +% +% \paragraph{PDF の用紙サイズの設定} +% +% \begin{macro}{\pdfpagewidth} +% \begin{macro}{\pdfpageheight} +% 出力の PDF の用紙サイズをここで設定しておきます。 +% |tombow| が真のときは2インチ足しておきます。 +% \begin{macrocode} +\setlength{\@tempdima}{\paperwidth} +\setlength{\@tempdimb}{\paperheight} +\iftombow + \advance \@tempdima 2in + \advance \@tempdimb 2in +\fi +\setlength{\pdfpagewidth}{\@tempdima} +\setlength{\pdfpageheight}{\@tempdimb} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{和文フォントの選択} +% +% JISの1ポイントは0.3514mm(約1/72.28インチ), +% PostScriptの1ポイントは1/72インチですが, +% \TeX では1/72.27インチを1pt(ポイント), +% 1/72インチを1bp(ビッグポイント)と表します。 +% QuarkXPressなどのDTPソフトは標準で1/72インチを1ポイント +% としますが,以下ではすべて1/72.27インチを1ptとしています。 +% 1インチは定義により25.4mmです。 +% +% \pTeX (アスキーが日本語化した\TeX )では,例えば従来のフォントメトリック +% \texttt{min10} やJISフォントメトリックでは「公称10ポイントの和文フォントは, +% 実際には9.62216ptで出力される(メトリック側で0.962216倍される)」という +% 仕様になっています。 +% 一方,Lua\TeX-jaの提供するメトリックでは,そのようなことはありません。 +% 公称10ポイントの和文フォントは,10ポイントで出力されます。 +% +% この|ltjsclasses|でも,派生元の|jsclasses|と同じように, +% この公称10ポイントのフォントをここでは13級に縮小して +% 使うことにします。そのためには,$13\,\textrm{Q}/10\,\textrm{pt}\simeq 0.924872$ 倍 +% すればいいことになります。 +% +% +% \begin{macrocode} +%<*!jspf> +\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax +\ifmingoth + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min}{} +\else + \ifptexjis + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=jis}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=jis}{} + \else + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=ujis}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=ujis}{} + \fi +\fi +%</!jspf> +% \end{macrocode} +% +% これにより,公称10ポイントの和文フォントを0.924872倍したことにより, +% 約9.25ポイント, +% DTPで使う単位(1/72インチ)では9.21ポイントということになり, +% 公称10ポイントといっても実は9ポイント強になります。 +% +% 某学会誌では, +% 和文フォントをPostScriptの9ポイントにするために, +% $0.9*72.27/72 \simeq 0.903375$ 倍します。 +% +% \begin{macrocode} +%<*jspf> +\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax +\ifmingoth + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=min}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=min}{} +\else + \ifptexjis + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=jis}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=jis}{} + \else + \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] psft:Ryumin-Light:jfm=ujis}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] psft:GothicBBB-Medium:jfm=ujis}{} + \fi +\fi +%</jspf> +% \end{macrocode} +% +% 和文でイタリック体,斜体,サンセリフ体, +% タイプライタ体の代わりにゴシック体を使うことにします。 +% +% [2003-03-16] イタリック体,斜体について,和文でゴシックを当てていましたが, +% 数学の定理環境などで多量のイタリック体を使うことがあり,ゴシックに +% すると黒々となってしまうという弊害がありました。 +% |amsthm| を使わない場合は定理の本文が明朝になるように |\newtheorem| +% 環境を手直ししてしのいでいましたが, +% \TeX が数学で多用されることを考えると,イタリック体に明朝体を +% 当てたほうがいいように思えてきましたので, +% イタリック体・斜体に対応する和文を明朝体に変えることにしました。 +% +% [2004-11-03] |\rmfamily| も和文対応にしました。 +% +% \begin{macrocode} +\DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{} +\DeclareFontShape{JY3}{mc}{m}{sl}{<->ssub*mc/m/n}{} +\DeclareFontShape{JY3}{mc}{m}{sc}{<->ssub*mc/m/n}{} +\DeclareFontShape{JY3}{gt}{m}{it}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY3}{gt}{m}{sl}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY3}{mc}{bx}{it}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY3}{mc}{bx}{sl}{<->ssub*gt/m/n}{} +% \DeclareFontShape{JT3}{mc}{bx}{n}{<->ssub*gt/m/n}{} +% \DeclareFontShape{JT3}{gt}{bx}{n}{<->ssub*gt/m/n}{} +%% \DeclareFontShape{JT3}{mc}{m}{it}{<->ssub*mc/m/n}{} +%% \DeclareFontShape{JT3}{mc}{m}{sl}{<->ssub*mc/m/n}{} +%% \DeclareFontShape{JT3}{mc}{m}{sc}{<->ssub*mc/m/n}{} +%% \DeclareFontShape{JT3}{gt}{m}{it}{<->ssub*gt/m/n}{} +%% \DeclareFontShape{JT3}{gt}{m}{sl}{<->ssub*gt/m/n}{} +%% \DeclareFontShape{JT3}{mc}{bx}{it}{<->ssub*gt/m/n}{} +%% \DeclareFontShape{JT3}{mc}{bx}{sl}{<->ssub*gt/m/n}{} +\DeclareRobustCommand\rmfamily + {\not@math@alphabet\rmfamily\mathrm + \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont} +\DeclareRobustCommand\sffamily + {\not@math@alphabet\sffamily\mathsf + \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont} +\DeclareRobustCommand\ttfamily + {\not@math@alphabet\ttfamily\mathtt + \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} +% \end{macrocode} +%% +% Lua\TeX-jaでは和文組版に伴うグルーはノードベースで挿入するようになり,また +% 欧文・和文間のグルーとイタリック補正は干渉しないようになりました。 +% まだ「和文の斜体」についてはLua\LaTeX カーネル側でまともな対応がされていませんが, +% |jsclasses.dtx|で行われていた|\textmc|, |\textgt|の再定義は不要のように思われます。 +% +% |jsclasses.dtx| 中で行われていた |\reDeclareMathAlphabet| の再定義は削除。 +% +% \begin{macrocode} +\AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}% +% \end{macrocode} +% +% \begin{macro}{\textsterling} +% +% これは |\pounds| 命令で実際に呼び出される文字です。 +% 従来からのOT1エンコーディングでは |\$| のイタリック体が |\pounds| +% なので \texttt{cmti} が使われていましたが, +% 1994年春からは \texttt{cmu}(upright italic,直立イタリック体) +% に変わりました。 +% しかし \texttt{cmu} はその性格からして実験的なものであり, +% |\pounds| 以外で使われるとは思えないので, +% ここでは \texttt{cmti} に戻してしまいます。 +% +% [2003-08-20] Computer Modernフォントを使う機会も減り,T1エンコーディング +% が一般的になってきました。この定義はもうあまり意味がないので消します。 +% +% \begin{macrocode} +% \DeclareTextCommand{\textsterling}{OT1}{{\itshape\char`\$}} +% \end{macrocode} +% \end{macro} +% +% 「〒515」の記号と数字の間に四分アキが入らないようにします。 +% +% \begin{macrocode} +\ltjsetparameter{jaxspmode={`〒,2}} +% \end{macrocode} +% +% 「CやC++では……」と書くと,C++の直後に四分アキが入らないのでバランスが悪くなります。 +% 四分アキが入るようにしました。\% の両側も同じです。 +% +% \begin{macrocode} +\ltjsetparameter{alxspmode={`+,3}} +\ltjsetparameter{alxspmode={`\%,3}} +% \end{macrocode} +% +% \begin{macro}{\@} +% +% \LaTeX の |\def\@{\spacefactor\@m}| という定義(|\@m| は1000) +% では |I watch TV\@.| と書くと V とピリオドのペアカーニングが効かなくなります。 +% そこで,次のような定義に直し,|I watch TV.\@| と書くことにします。 +% +% \begin{macrocode} +\def\@{\spacefactor3000\space} +% \end{macrocode} +% \end{macro} +% +% \section{フォントサイズ} +% +% フォントサイズを変える命令(|\normalsize|,|\small| など) +% の実際の挙動の設定は,三つの引数をとる命令 |\@setfontsize| を使って, +% たとえば +% \begin{quote} +% |\@setfontsize{\normalsize}{10}{16}| +% \end{quote} +% のようにして行います。これは +% \begin{quote} +% |\normalsize| は10ポイントのフォントを使い,行送りは16ポイントである +% \end{quote} +% という意味です。 +% ただし,処理を速くするため, +% 以下では10と同義の\LaTeX の内部命令 |\@xpt| を使っています。 +% この |\@xpt| の類は次のものがあり,\LaTeX 本体で定義されています。 +%\begin{verbatim} +% \@vpt 5 \@vipt 6 \@viipt 7 +% \@viiipt 8 \@ixpt 9 \@xpt 10 +% \@xipt 10.95 \@xiipt 12 \@xivpt 14.4 +%\end{verbatim} +% +% \begin{macro}{\@setfontsize} +% +% ここでは |\@setfontsize| の定義を少々変更して, +% 段落の字下げ |\parindent|, +% 和文文字間のスペース |kanjiskip|, +% 和文・欧文間のスペース |xkanjiskip| を変更しています。 +% +% |kanjiskip| は |luatexja-latex.sty| で |0pt plus 0.4pt minus 0.4pt| に +% 設定していますが, +% これはそもそも文字サイズの変更に応じて変わるべきものです。 +% それに,プラスになったりマイナスになったりするのは, +% 追い出しと追い込みの混在が生じ,統一性を欠きます。 +% なるべく追い出しになるようにプラスの値だけにしたいところですが, +% ごくわずかなマイナスは許すことにしました。 +% +% |xkanjiskip| については,四分つまり全角の1/4を標準として, +% 追い出すために三分あるいは二分まで延ばすのが一般的ですが, +% ここではTimesやPalatinoのスペースがほぼ四分であることに着目して, +% これに一致させています。これなら書くときにスペースを空けても +% 空けなくても同じ出力になります。 +% +% |\parindent| については,0(以下)でなければ全角幅(|1\zw|)に直します。 +% +% [2008-02-18] |english| オプションで |\parindent| を 1em にしました。 +% +% \begin{macrocode} +\def\@setfontsize#1#2#3{% +% \@nomath#1% + \ifx\protect\@typeset@protect + \let\@currsize#1% + \fi + \fontsize{#2}{#3}\selectfont + \ifdim\parindent>\z@ + \if@english + \parindent=1em + \else + \parindent=1\zw + \fi + \fi + \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}} + \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else + \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}} + \fi} +% \end{macrocode} +% \end{macro} +% +% これらのグルーをもってしても行分割ができない場合は, +% |\emergencystretch| に訴えます。 +% +% \begin{macrocode} +\emergencystretch 3\zw +% \end{macrocode} +% +% \begin{macro}{\ifnarrowbaselines} +% \begin{macro}{\narrowbaselines} +% \begin{macro}{\widebaselines} +% +% 欧文用に行間を狭くする論理変数と,それを真・偽にするためのコマンドです。 +% +% [2003-06-30] 数式に入るところで |\narrowbaselines| +% を実行しているので |\abovedisplayskip| 等が初期化 +% されてしまうというshintokさんのご指摘に対して, +% しっぽ愛好家さんが次の修正を教えてくださいました。 +% +% [2008-02-18] |english| オプションで最初の段落のインデントをしないようにしました。 +% +% TODO: Hasumiさん [qa:54539] のご指摘は考慮中です。 +% +% \begin{macrocode} +\newif\ifnarrowbaselines +\if@english + \narrowbaselinestrue +\fi +\def\narrowbaselines{% + \narrowbaselinestrue + \skip0=\abovedisplayskip + \skip2=\abovedisplayshortskip + \skip4=\belowdisplayskip + \skip6=\belowdisplayshortskip + \@currsize\selectfont + \abovedisplayskip=\skip0 + \abovedisplayshortskip=\skip2 + \belowdisplayskip=\skip4 + \belowdisplayshortskip=\skip6\relax} +\def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\normalsize} +% +% 標準のフォントサイズと行送りを選ぶコマンドです。 +% +% 本文10ポイントのときの行送りは, +% 欧文の標準クラスファイルでは12ポイント, +% アスキーの和文クラスファイルでは15ポイントになっていますが, +% ここでは16ポイントにしました。 +% ただし |\narrowbaselines| で欧文用の12ポイントになります。 +% +% 公称10ポイントの和文フォントが約9.25ポイント +% (アスキーのものの0.961倍)であることもあり, +% 行送りがかなりゆったりとしたと思います。 +% 実際,$16/9.25 \approx 1.73$ であり, +% 和文の推奨値の一つ「二分四分」(1.75) +% に近づきました。 +% +% \begin{macrocode} +\renewcommand{\normalsize}{% + \ifnarrowbaselines + \@setfontsize\normalsize\@xpt\@xiipt + \else + \@setfontsize\normalsize\@xpt{\n@baseline}% + \fi +% \end{macrocode} +% +% 数式の上のアキ(|\abovedisplayskip|), +% 短い数式の上のアキ(|\abovedisplayshortskip|), +% 数式の下のアキ(|\belowdisplayshortskip|)の設定です。 +% +% [2003-02-16] ちょっと変えました。 +% +% [2009-08-26] \TeX\ Q\,\&\,A 52569から始まる議論について逡巡して +% いましたが,結局,微調節してみることにしました。 +% +% \begin{macrocode} + \abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayskip 9\p@ \@plus3\p@ \@minus4\p@ + \belowdisplayshortskip \belowdisplayskip +% \end{macrocode} +% +% 最後に,リスト環境のトップレベルのパラメータ |\@listI| を, +% |\@listi| にコピーしておきます。|\@listI| の設定は後で出てきます。 +% +% \begin{macrocode} + \let\@listi\@listI} +% \end{macrocode} +% +% ここで実際に標準フォントサイズで初期化します。 +% +% \begin{macrocode} +\normalsize +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\Cht} +% \begin{macro}{\Cdp} +% \begin{macro}{\Cwd} +% \begin{macro}{\Cvs} +% \begin{macro}{\Chs} +% +% 基準となる長さの設定をします。 +% \texttt{lltjfont.dtx} で宣言されている +% パラメータに実際の値を設定します。 +% たとえば |\Cwd| は |\normalfont| の全角幅(|1\zw|)です。 +% +% \begin{macrocode} +\setbox0\hbox{\char"3000}% 全角スペース +\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| と同様に設定します。 +% 行送りは,|\normalsize| が16ポイントなら, +% 割合からすれば $16 \times 0.9 = 14.4$ ポイントになりますが, +% |\small| の使われ方を考えて,ここでは和文13ポイント, +% 欧文11ポイントとします。 +% また,|\topsep| と |\parsep| は,元はそれぞれ $4 \pm 2$,$2 \pm 1$ +% ポイントでしたが,ここではゼロ(|\z@|)にしました。 +% +% \begin{macrocode} +\newcommand{\small}{% + \ifnarrowbaselines +%<!kiyou> \@setfontsize\small\@ixpt{11}% +%<kiyou> \@setfontsize\small{8.8888}{11}% + \else +%<!kiyou> \@setfontsize\small\@ixpt{13}% +%<kiyou> \@setfontsize\small{8.8888}{13.2418}% + \fi + \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayskip \abovedisplayskip + \belowdisplayshortskip \belowdisplayskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ + \parsep \z@ + \itemsep \parsep}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footnotesize} +% +% |\footnotesize| も同様です。 +% |\topsep| と |\parsep| は,元はそれぞれ $3 \pm 1$,$2 \pm 1$ +% ポイントでしたが,ここではゼロ(|\z@|)にしました。 +% +% \begin{macrocode} +\newcommand{\footnotesize}{% + \ifnarrowbaselines +%<!kiyou> \@setfontsize\footnotesize\@viiipt{9.5}% +%<kiyou> \@setfontsize\footnotesize{8.8888}{11}% + \else +%<!kiyou> \@setfontsize\footnotesize\@viiipt{11}% +%<kiyou> \@setfontsize\footnotesize{8.8888}{13.2418}% + \fi + \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayskip \abovedisplayskip + \belowdisplayshortskip \belowdisplayskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ + \parsep \z@ + \itemsep \parsep}} +% \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{macro}{\HUGE} +% +% それ以外のサイズは,本文に使うことがないので, +% 単にフォントサイズと行送りだけ変更します。 +% 特に注意すべきは |\large| で, +% これは二段組のときに節見出しのフォントとして使い, +% 行送りを |\normalsize| と同じにすることによって, +% 節見出しが複数行にわたっても段間で行が揃うようにします。 +% +% [2004-11-03] |\HUGE| を追加。 +% +% \begin{macrocode} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\if@twocolumn +%<!kiyou> \newcommand{\large}{\@setfontsize\large\@xiipt{\n@baseline}} +%<kiyou> \newcommand{\large}{\@setfontsize\large{11.111}{\n@baseline}} +\else +%<!kiyou> \newcommand{\large}{\@setfontsize\large\@xiipt{17}} +%<kiyou> \newcommand{\large}{\@setfontsize\large{11.111}{17}} +\fi +%<!kiyou>\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +%<kiyou>\newcommand{\Large}{\@setfontsize\Large{12.222}{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\newcommand{\HUGE}{\@setfontsize\HUGE{30}{40}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% 別行立て数式の中では |\narrowbaselines| にします。 +% 和文の行送りのままでは,行列や場合分けの行送り, +% 連分数の高さなどが不釣合いに大きくなるためです。 +% +% 本文中の数式の中では |\narrowbaselines| にしていません。 +% 本文中ではなるべく行送りが変わるような大きいものを使わず, +% 行列は |amsmath| の |smallmatrix| 環境を使うのがいいでしょう。 +% +% \begin{macrocode} +\everydisplay=\expandafter{\the\everydisplay \narrowbaselines} +% \end{macrocode} +% +% しかし,このおかげで別行数式の上下のスペースが少し違ってしまいました。 +% とりあえず |amsmath| の |equation| 関係は |okumacro| のほうで逃げていますが, +% もっとうまい逃げ道があればお教えください。 +% +% 見出し用のフォントは |\bfseries| 固定ではなく,|\headfont| +% という命令で定めることにします。 +% これは太ゴシックが使えるときは |\sffamily| |\bfseries| +% でいいと思いますが,通常の中ゴシックでは単に |\sffamily| +% だけのほうがよさそうです。 +% 『p\LaTeXe 美文書作成入門』(1997年)では |\sffamily| +% |\fontseries{sbc}| として新ゴMと合わせましたが, +% |\fontseries{sbc}| はちょっと幅が狭いように感じました。 +% +% \begin{macrocode} +% \newcommand{\headfont}{\bfseries} +\newcommand{\headfont}{\gtfamily\sffamily} +% \newcommand{\headfont}{\sffamily\fontseries{sbc}\selectfont} +% \end{macrocode} +% +% \section{レイアウト} +% +% \paragraph{二段組} +% +% \begin{macro}{\columnsep} +% \begin{macro}{\columnseprule} +% +% |\columnsep| は二段組のときの左右の段間の幅です。 +% 元は10ptでしたが,|2\zw|にしました。 +% このスペースの中央に |\columnseprule| の幅の罫線が引かれます。 +% +% \begin{macrocode} +%<!kiyou>\setlength\columnsep{2\zw} +%<kiyou>\setlength\columnsep{28truebp} +\setlength\columnseprule{0\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \paragraph{段落} +% +% \begin{macro}{\lineskip} +% \begin{macro}{\normallineskip} +% \begin{macro}{\lineskiplimit} +% \begin{macro}{\normallineskiplimit} +% +% 上下の行の文字が |\lineskiplimit| より接近したら, +% |\lineskip| より近づかないようにします。 +% 元は0ptでしたが1ptに変更しました。 +% \texttt{normal...} の付いた方は保存用です。 +% +% \begin{macrocode} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\setlength\lineskiplimit{1\p@} +\setlength\normallineskiplimit{1\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\baselinestretch} +% +% 実際の行送りが |\baselineskip| の何倍かを表すマクロです。たとえば +% \begin{quote} +% |\renewcommand{\baselinestretch}{2}| +% \end{quote} +% とすると,行送りが通常の2倍になります。ただし, +% これを設定すると,たとえ |\baselineskip| が伸縮するように +% 設定しても,行送りの伸縮ができなくなります。 +% 行送りの伸縮はしないのが一般的です。 +% +% \begin{macrocode} +\renewcommand{\baselinestretch}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\parskip} +% \begin{macro}{\parindent} +% +% |\parskip| は段落間の追加スペースです。 +% 元は 0pt plus 1pt になっていましたが,ここではゼロにしました。 +% |\parindent| は段落の先頭の字下げ幅です。 +% +% \begin{macrocode} +\setlength\parskip{0\p@} +\if@slide + \setlength\parindent{0\zw} +\else + \setlength\parindent{1\zw} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@lowpenalty} +% \begin{macro}{\@medpenalty} +% \begin{macro}{\@highpenalty} +% +% |\nopagebreak|,|\nolinebreak| は引数に応じて次のペナルティ値 +% のうちどれかを選ぶようになっています。 +% ここはオリジナル通りです。 +% +% \begin{macrocode} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\interlinepenalty} +% +% 段落中の改ページのペナルティです。デフォルトは 0 です。 +% +% \begin{macrocode} +% \interlinepenalty 0 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\brokenpenalty} +% +% ページの最後の行がハイフンで終わる際のペナルティです。 +% デフォルトは 100 です。 +% +% \begin{macrocode} +% \brokenpenalty 100 +% \end{macrocode} +% \end{macro} +% +% \subsection{ページレイアウト} +% +% \paragraph{縦方向のスペース} +% +% \begin{macro}{\headheight} +% \begin{macro}{\topskip} +% +% |\topskip| は本文領域上端と本文1行目のベースラインとの距離です。 +% あまりぎりぎりの値にすると,本文中に $\int$ のような高い文字が +% 入ったときに1行目のベースラインが他のページより下がってしまいます。 +% ここでは本文の公称フォントサイズ(10pt)にします。 +% +% [2003-06-26] |\headheight| はヘッダの高さで, +% 元は12ptでしたが,新ドキュメントクラスでは |\topskip| +% と等しくしていました。ところが,|fancyhdr| パッケージ +% で |\headheight| が小さいとおかしいことになるようです +% ので,2倍に増やしました。代わりに,版面の上下揃えの +% 計算では |\headheight| ではなく |\topskip| を使う +% ことにしました。 +% +% \begin{macrocode} +\setlength\topskip{10\p@} +\if@slide + \setlength\headheight{0\p@} +\else + \setlength\headheight{2\topskip} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footskip} +% +% |\footskip| は本文領域下端とフッタ下端との距離です。 +% 標準クラスファイルでは,book で0.35in(約8.89mm), +% book 以外で30pt(約10.54mm)となっていましたが, +% ここではA4判のときちょうど1cmとなるように, +% |\paperheight| の0.03367倍(最小 |\baselineskip|)としました。 +% 書籍については,フッタは使わないことにして,ゼロにしました。 +% +% \begin{macrocode} +%<*article|kiyou> +\if@slide + \setlength\footskip{0pt} +\else + \setlength\footskip{0.03367\paperheight} + \ifdim\footskip<\baselineskip + \setlength\footskip{\baselineskip} + \fi +\fi +%</article|kiyou> +%<jspf>\setlength\footskip{9mm} +%<*book> +\if@report + \setlength\footskip{0.03367\paperheight} + \ifdim\footskip<\baselineskip + \setlength\footskip{\baselineskip} + \fi +\else + \setlength\footskip{0pt} +\fi +%</book> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\headsep} +% +% |\headsep| はヘッダ下端と本文領域上端との距離です。 +% 元は book で18pt(約6.33mm), +% それ以外で25pt(約8.79mm)になっていました。 +% ここでは article は |\footskip| $-$ |\topskip| としました。 +% +% \begin{macrocode} +%<*article> +\if@slide + \setlength\headsep{0\p@} +\else + \setlength\headsep{\footskip} + \addtolength\headsep{-\topskip} +\fi +%</article> +%<*book> +\if@report + \setlength\headsep{\footskip} + \addtolength\headsep{-\topskip} +\else + \setlength\headsep{6mm} +\fi +%</book> +%<*jspf> +\setlength\headsep{9mm} +\addtolength\headsep{-\topskip} +%</jspf> +%<*kiyou> +\setlength\headheight{0\p@} +\setlength\headsep{0\p@} +%</kiyou> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maxdepth} +% +% |\maxdepth| は本文最下行の最大の深さで, +% plain \TeX や\LaTeX~2.09では4ptに固定でした。 +% \LaTeX2e では |\maxdepth| $+$ |\topskip| を本文フォントサイズ +% の1.5倍にしたいのですが,|\topskip| は本文フォントサイズ +% (ここでは10pt)に等しいので,結局 |\maxdepth| は |\topskip| +% の半分の値(具体的には5pt)にします。 +% +% \begin{macrocode} +\setlength\maxdepth{.5\topskip} +% \end{macrocode} +% \end{macro} +% +% \paragraph{本文の幅と高さ} +% +% \begin{macro}{\fullwidth} +% +% 本文の幅が全角40文字を超えると読みにくくなります。 +% そこで,書籍の場合に限って, +% 紙の幅が広いときは外側のマージンを余分にとって全角40文字に押え, +% ヘッダやフッタは本文領域より広く取ることにします。 +% このときヘッダやフッタの幅を表す |\fullwidth| という長さを定義します。 +% +% \begin{macrocode} +\newdimen\fullwidth +% \end{macrocode} +% +% この |\fullwidth| は article では紙幅 |\paperwidth|の0.76倍を超えない +% 全角幅の整数倍(二段組では全角幅の偶数倍)にします。0.76倍という数値は +% A4縦置きの場合に紙幅から約2インチを引いた値になるように選びました。 +% book では紙幅から36ミリを引いた値にしました。 +% +% \begin{macro}{\textwidth} +% +% 書籍以外では本文領域の幅 |\textwidth| は |\fullwidth| と等しくします。 +% |article| ではA4縦置きで49文字となります。 +% 某学会誌スタイルでは|50\zw|(25文字×2段)+段間8mmとします。 +% +% \begin{macrocode} +%<*article> +\if@slide + \setlength\fullwidth{0.9\paperwidth} +\else + \setlength\fullwidth{0.76\paperwidth} +\fi +\if@twocolumn \@tempdima=2\zw \else \@tempdima=1\zw \fi +\divide\fullwidth\@tempdima \multiply\fullwidth\@tempdima +\setlength\textwidth{\fullwidth} +%</article> +%<*book> +\if@report + \setlength\fullwidth{0.76\paperwidth} +\else + \setlength\fullwidth{\paperwidth} + \addtolength\fullwidth{-36mm} +\fi +\if@twocolumn \@tempdima=2\zw \else \@tempdima=1\zw \fi +\divide\fullwidth\@tempdima \multiply\fullwidth\@tempdima +\setlength\textwidth{\fullwidth} +\if@report \else + \if@twocolumn \else + \ifdim \fullwidth>40\zw + \setlength\textwidth{40\zw} + \fi + \fi +\fi +%</book> +%<*jspf> +\setlength\fullwidth{50\zw} +\addtolength\fullwidth{8mm} +\setlength\textwidth{\fullwidth} +%</jspf> +%<*kiyou> +\setlength\fullwidth{48\zw} +\addtolength\fullwidth{\columnsep} +\setlength\textwidth{\fullwidth} +%</kiyou> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\textheight} +% +% 紙の高さ |\paperheight| は,1インチと |\topmargin| +% と |\headheight| と |\headsep| と |\textheight| +% と |\footskip| とページ下部の余白を加えたものです。 +% +% 本文部分の高さ |\textheight| は, +% 紙の高さ |\paperheight| の0.83倍から, +% ヘッダの高さ,ヘッダと本文の距離,本文とフッタ下端の距離, +% |\topskip| を引き, +% それを |\baselineskip| の倍数に切り捨て, +% 最後に |\topskip| を加えます。 +% 念のため0.1ポイント余分に加えておきます。 +% 0.83倍という数値は,A4縦置きの場合に紙の高さから +% 上下マージン各約1インチを引いた値になるように選びました。 +% +% 某学会誌スタイルでは44行にします。 +% +% [2003-06-26] |\headheight| を |\topskip| に直しました。 +% 以前はこの二つは値が同じであったので,変化はないはずです。 +% +% \begin{macrocode} +%<*article|book> +\if@slide + \setlength{\textheight}{0.95\paperheight} +\else + \setlength{\textheight}{0.83\paperheight} +\fi +\addtolength{\textheight}{-\topskip} +\addtolength{\textheight}{-\headsep} +\addtolength{\textheight}{-\footskip} +\addtolength{\textheight}{-\topskip} +\divide\textheight\baselineskip +\multiply\textheight\baselineskip +%</article|book> +%<jspf>\setlength{\textheight}{51\baselineskip} +%<kiyou>\setlength{\textheight}{47\baselineskip} +\addtolength{\textheight}{\topskip} +\addtolength{\textheight}{0.1\p@} +%<jspf>\setlength{\mathindent}{10mm} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\marginparsep} +% \begin{macro}{\marginparpush} +% +% |\marginparsep| は欄外の書き込みと本文との間隔です。 +% |\marginparpush| は欄外の書き込みどうしの最小の間隔です。 +% +% \begin{macrocode} +\setlength\marginparsep{\columnsep} +\setlength\marginparpush{\baselineskip} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\oddsidemargin} +% \begin{macro}{\evensidemargin} +% +% それぞれ奇数ページ,偶数ページの左マージンから1インチ引いた値です。 +% 片面印刷では |\oddsidemargin| が使われます。 +% \TeX は上・左マージンに |1truein| を挿入しますが, +% トンボ関係のオプションが指定されると |lltjcore.sty| +% はトンボの内側に |1in| のスペース(|1truein| ではなく)を挿入するので, +% 場合分けしています。 +% +% [2011-10-03] Lua\TeX{} (pdf\TeX?) では |1truein| ではなく +% |1in| になるようです。 +% +% \begin{macrocode} +\setlength{\oddsidemargin}{\paperwidth} +\addtolength{\oddsidemargin}{-\fullwidth} +\setlength{\oddsidemargin}{.5\oddsidemargin} +\addtolength{\oddsidemargin}{-1in} +\setlength{\evensidemargin}{\oddsidemargin} +\if@mparswitch + \addtolength{\evensidemargin}{\fullwidth} + \addtolength{\evensidemargin}{-\textwidth} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\marginparwidth} +% +% |\marginparwidth| は欄外の書き込みの横幅です。 +% 外側マージンの幅(|\evensidemargin| $+$ 1インチ)から1センチを引き, +% さらに |\marginparsep|(欄外の書き込みと本文のアキ)を引いた値に +% しました。最後に|1\zw|の整数倍に切り捨てます。 +% +% \begin{macrocode} +\setlength\marginparwidth{\paperwidth} +\addtolength\marginparwidth{-\oddsidemargin} +\addtolength\marginparwidth{-1in} +\addtolength\marginparwidth{-\textwidth} +\addtolength\marginparwidth{-1cm} +\addtolength\marginparwidth{-\marginparsep} +\@tempdima=1\zw +\divide\marginparwidth\@tempdima +\multiply\marginparwidth\@tempdima +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\topmargin} +% +% 上マージン(紙の上端とヘッダ上端の距離) +% から1インチ引いた値です。 +% +% [2003-06-26] |\headheight| を |\topskip| に直しました。 +% 以前はこの二つは値が同じであったので,変化はないはずです。 +% +% [2011-10-03] ここも |\oddsidemargin| のときと同様に |-\inv@mag in| ではなく +% |-1in| にします。 +% +% \begin{macrocode} +\setlength\topmargin{\paperheight} +\addtolength\topmargin{-\textheight} +\if@slide + \addtolength\topmargin{-\headheight} +\else + \addtolength\topmargin{-\topskip} +\fi +\addtolength\topmargin{-\headsep} +\addtolength\topmargin{-\footskip} +\setlength\topmargin{0.5\topmargin} +%<kiyou>\setlength\topmargin{81truebp} +\addtolength\topmargin{-1in} +% \end{macrocode} +% \end{macro} +% +% \paragraph{脚注} +% +% \begin{macro}{\footnotesep} +% +% 各脚注の頭に入る支柱(strut)の高さです。 +% 脚注間に余分のアキが入らないように, +% |\footnotesize| の支柱の高さ(行送りの0.7倍)に等しくします。 +% +% \begin{macrocode} +{\footnotesize\global\setlength\footnotesep{\baselineskip}} +\setlength\footnotesep{0.7\footnotesep} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footins} +% +% |\skip\footins| は本文の最終行と最初の脚注との間の距離です。 +% 標準の10ポイントクラスでは 9 plus 4 minus 2 ポイントになっていますが, +% 和文の行送りを考えてもうちょっと大きくします。 +% +% \begin{macrocode} +\setlength{\skip\footins}{16\p@ \@plus 5\p@ \@minus 2\p@} +% \end{macrocode} +% \end{macro} +% +% \paragraph{フロート関連} +% +% フロート(図,表)関連のパラメータは\LaTeXe 本体で定義されていますが, +% ここで設定変更します。本文ページ(本文とフロートが共存するページ) +% ちなみに,カウンタは内部では |\c@| を名前に冠したマクロになっています。 +% とフロートだけのページで設定が異なります。 +% +% \begin{macro}{\c@topnumber} +% +% |topnumber| カウンタは本文ページ上部のフロートの最大数です。 +% +% [2003-08-23] ちょっと増やしました。 +% +% \begin{macrocode} +\setcounter{topnumber}{9} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\topfraction} +% +% 本文ページ上部のフロートが占有できる最大の割合です。 +% フロートが入りやすいように,元の値 0.7 を 0.8 [2003-08-23: 0.85] に変えてあります。 +% +% \begin{macrocode} +\renewcommand{\topfraction}{.85} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@bottomnumber} +% +% |bottomnumber| カウンタは本文ページ下部のフロートの最大数です。 +% +% [2003-08-23] ちょっと増やしました。 +% +% \begin{macrocode} +\setcounter{bottomnumber}{9} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bottomfraction} +% +% 本文ページ下部のフロートが占有できる最大の割合です。元は 0.3 でした。 +% +% \begin{macrocode} +\renewcommand{\bottomfraction}{.8} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@totalnumber} +% +% |totalnumber| カウンタは本文ページに入りうるフロートの最大数です。 +% +% [2003-08-23] ちょっと増やしました。 +% +% \begin{macrocode} +\setcounter{totalnumber}{20} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textfraction} +% +% 本文ページに最低限入らなければならない本文の割合です。 +% フロートが入りやすいように元の 0.2 を 0.1 に変えました。 +% +% \begin{macrocode} +\renewcommand{\textfraction}{.1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\floatpagefraction} +% +% フロートだけのページでのフロートの最小割合です。 +% これも 0.5 を 0.8 に変えてあります。 +% +% \begin{macrocode} +\renewcommand{\floatpagefraction}{.8} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@dbltopnumber} +% +% 二段組のとき本文ページ上部に出力できる +% 段抜きフロートの最大数です。 +% +% [2003-08-23] ちょっと増やしました。 +% +% \begin{macrocode} +\setcounter{dbltopnumber}{9} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dbltopfraction} +% +% 二段組のとき本文ページ上部に出力できる +% 段抜きフロートが占めうる最大の割合です。 +% 0.7 を 0.8 に変えてあります。 +% +% \begin{macrocode} +\renewcommand{\dbltopfraction}{.8} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dblfloatpagefraction} +% +% 二段組のときフロートだけのページに入るべき +% 段抜きフロートの最小割合です。 +% 0.5 を 0.8 に変えてあります。 +% +% \begin{macrocode} +\renewcommand{\dblfloatpagefraction}{.8} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\floatsep} +% \begin{macro}{\textfloatsep} +% \begin{macro}{\intextsep} +% +% |\floatsep| はページ上部・下部のフロート間の距離です。 +% |\textfloatsep| はページ上部・下部のフロートと本文との距離です。 +% |\intextsep| は本文の途中に出力されるフロートと本文との距離です。 +% +% \begin{macrocode} +\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@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dblfloatsep} +% \begin{macro}{\dbltextfloatsep} +% +% 二段組のときの段抜きのフロートについての値です。 +% +% \begin{macrocode} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\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| はフロート間に入ります。 +% +% \begin{macrocode} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\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} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{ページスタイル}\label{sec:pagestyle} +% +% ページスタイルとして,\LaTeXe (欧文版)の標準クラス +% では |empty|,|plain|,|headings|,|myheadings| があります。 +% このうち |empty|,|plain| スタイルは\LaTeXe 本体 +% で定義されています。 +% +% アスキーのクラスファイルでは |headnombre|,|footnombre|, +% |bothstyle|,|jpl@in| が追加されていますが, +% ここでは欧文標準のものだけにしました。 +% +% ページスタイルは |\ps@...| の形のマクロで定義されています。 +% +% \begin{macro}{\@evenhead} +% \begin{macro}{\@oddhead} +% \begin{macro}{\@evenfoot} +% \begin{macro}{\@oddfoot} +% +% |\@oddhead|,|\@oddfoot|,|\@evenhead|,|\@evenfoot| は +% 偶数・奇数ページの柱(ヘッダ,フッタ)を出力する命令です。 +% これらは |\fullwidth| 幅の |\hbox| の中で呼び出されます。 +% |\ps@...| の中で定義しておきます。 +% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% 柱の内容は,|\chapter| が呼び出す |\chaptermark{何々}|, +% |\section| が呼び出す |\sectionmark{何々}| で設定します。 +% 柱を扱う命令には次のものがあります。 +% +% \begin{quote} +% \begin{tabbing} +% |\markboth{左}{右} | \= 両方の柱を設定します。\\ +% |\markright{右}| \> 右の柱を設定します。\\ +% |\leftmark| \> 左の柱を出力します。\\ +% |\rightmark| \> 右の柱を出力します。 +% \end{tabbing} +% \end{quote} +% +% 柱を設定する命令は,右の柱が左の柱の下位にある場合は十分まともに +% 動作します。たとえば左マークを |\chapter|,右マークを |\section| +% で変更する場合がこれにあたります。 +% しかし,同一ページに複数の |\markboth| があると, +% おかしな結果になることがあります。 +% +% |\tableofcontents| のような命令で使われる |\@mkboth| は, +% |\ps@...| コマンド中で |\markboth| か |\@gobbletwo|(何もしない) +% に |\let| されます。 +% +% \begin{macro}{\ps@empty} +% +% |empty| ページスタイルの定義です。 +% \LaTeX 本体で定義されているものをコメントアウトした形で +% 載せておきます。 +% +% \begin{macrocode} +% \def\ps@empty{% +% \let\@mkboth\@gobbletwo +% \let\@oddhead\@empty +% \let\@oddfoot\@empty +% \let\@evenhead\@empty +% \let\@evenfoot\@empty} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ps@plainhead} +% \begin{macro}{\ps@plainfoot} +% \begin{macro}{\ps@plain} +% +% |plainhead| はシンプルなヘッダだけのページスタイルです。 +% +% |plainfoot| はシンプルなフッタだけのページスタイルです。 +% +% |plain| は |book| では |plainhead|,それ以外では |plainfoot| になります。 +% +% \begin{macrocode} +\def\ps@plainfoot{% + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \def\@oddfoot{\normalfont\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +\def\ps@plainhead{% + \let\@mkboth\@gobbletwo + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi + \hbox to \fullwidth{\textbf{\thepage}\hfil}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \hbox to \fullwidth{\hfil\textbf{\thepage}}\hss}} +%<book>\if@report \let\ps@plain\ps@plainfoot \else \let\ps@plain\ps@plainhead \fi +%<!book>\let\ps@plain\ps@plainfoot +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ps@headings} +% +% |headings| スタイルはヘッダに見出しとページ番号を出力します。 +% ここではヘッダにアンダーラインを引くようにしてみました。 +% +% まず article の場合です。 +% +% \begin{macrocode} +%<*article|kiyou> +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{\if@mparswitch \hss \fi + \underline{\hbox to \fullwidth{\textbf{\thepage}\hfil\leftmark}}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \underline{% + \hbox to \fullwidth{{\rightmark}\hfil\textbf{\thepage}}}\hss}% + \let\@mkboth\markboth + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection \hskip1\zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection \hskip1\zw\fi + ##1}}% + } +\else % if not twoside + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{% + \underline{% + \hbox to \fullwidth{{\rightmark}\hfil\textbf{\thepage}}}\hss}% + \let\@mkboth\markboth + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection \hskip1\zw\fi + ##1}}} +\fi +%</article|kiyou> +% \end{macrocode} +% +% 次は book の場合です。 +% +% \begin{macrocode} +%<*book> +\def\ps@headings{% + \let\@oddfoot\@empty + \let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi + \underline{\hbox to \fullwidth{\ltjsetparameter{autoxspacing={true}} + \textbf{\thepage}\hfil\leftmark}}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{\underline{\hbox to \fullwidth{\ltjsetparameter{autoxspacing={true}} + {\if@twoside\rightmark\else\leftmark\fi}\hfil\textbf{\thepage}}}\hss}% + \let\@mkboth\markboth + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection \hskip1\zw\fi + ##1}}}% +%</book> +% \end{macrocode} +% +% 最後は学会誌の場合です。 +% +% \begin{macrocode} +%<*jspf> +\def\ps@headings{% + \def\@oddfoot{\normalfont\hfil\thepage\hfil} + \def\@evenfoot{\normalfont\hfil\thepage\hfil} + \def\@oddhead{\normalfont\hfil \@title \hfil} + \def\@evenhead{\normalfont\hfil プラズマ・核融合学会誌\hfil}} +%</jspf> +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\ps@myheadings} +% +% |myheadings| ページスタイルではユーザが |\markboth| や |\markright| で +% 柱を設定するため,ここでの定義は非常に簡単です。 +% +% [2004-01-17] 渡辺徹さんのパッチを適用しました。 +% +% \begin{macrocode} +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{% + \if@mparswitch \hss \fi% + \hbox to \fullwidth{\thepage\hfil\leftmark}% + \if@mparswitch\else \hss \fi}% + \def\@oddhead{% + \hbox to \fullwidth{\rightmark\hfil\thepage}\hss}% + \let\@mkboth\@gobbletwo +%<book> \let\chaptermark\@gobble + \let\sectionmark\@gobble +%<!book> \let\subsectionmark\@gobble +} +% \end{macrocode} +% \end{macro} +% +% \section{文書のマークアップ} +% +% \subsection{表題} +% +% \begin{macro}{\title} +% \begin{macro}{\author} +% \begin{macro}{\date} +% +% これらは\LaTeX 本体で次のように定義されています。 +% ここではコメントアウトした形で示します。 +% +% \begin{macrocode} +% \newcommand*{\title}[1]{\gdef\@title{#1}} +% \newcommand*{\author}[1]{\gdef\@author{#1}} +% \newcommand*{\date}[1]{\gdef\@date{#1}} +% \date{\today} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\etitle} +% \begin{macro}{\eauthor} +% \begin{macro}{\keywords} +% +% 某学会誌スタイルで使う英語のタイトル,英語の著者名,キーワード,メールアドレスです。 +% +% \begin{macrocode} +%<*jspf> +\newcommand*{\etitle}[1]{\gdef\@etitle{#1}} +\newcommand*{\eauthor}[1]{\gdef\@eauthor{#1}} +\newcommand*{\keywords}[1]{\gdef\@keywords{#1}} +\newcommand*{\email}[1]{\gdef\authors@mail{#1}} +\newcommand*{\AuthorsEmail}[1]{\gdef\authors@mail{author's e-mail:\ #1}} +%</jspf> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\plainifnotempty} +% +% 従来の標準クラスでは,文書全体のページスタイルを |empty| に +% しても表題のあるページだけ |plain| になってしまうことが +% ありました。これは |\maketitle| の定義中 +% に |\thispagestyle|\hspace{0pt}|{plain}| が入っている +% ためです。この問題を解決するために, +% 「全体のページスタイルが |empty| でないなら +% このページのスタイルを |plain| にする」という次の +% 命令を作ることにします。 +% +% \begin{macrocode} +\def\plainifnotempty{% + \ifx \@oddhead \@empty + \ifx \@oddfoot \@empty + \else + \thispagestyle{plainfoot}% + \fi + \else + \thispagestyle{plainhead}% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maketitle} +% +% 表題を出力します。 +% 著者名を出力する部分は,欧文の標準クラスファイルでは |\large|, +% 和文のものでは |\Large| になっていましたが,ここでは |\large| +% にしました。 +% +% \begin{macrocode} +%<*article|book|kiyou> +\if@titlepage + \newcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \null\vfil + \if@slide + {\footnotesize \@date}% + \begin{center} + \mbox{} \\[1\zw] + \large + {\maybeblue\hrule height0pt depth2pt\relax}\par + \smallskip + \@title + \smallskip + {\maybeblue\hrule height0pt depth2pt\relax}\par + \vfill + {\small \@author}% + \end{center} + \else + \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}% + \end{center}% + \fi + \par + \@thanks\vfil\null + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\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 + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\advance\leftskip 3\zw + \parindent 1\zw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\zw}##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 + \plainifnotempty + \@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\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 + {\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 +%<article|kiyou> \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi + } +\fi +%</article|book|kiyou> +%<*jspf> +\newcommand{\maketitle}{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\advance\leftskip 3\zw + \parindent 1\zw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\zw}##1}% + \twocolumn[\@maketitle]% + \plainifnotempty + \@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty +% \global\let\@title\@empty % \@title は柱に使う + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + \ifx\authors@mail\@undefined\else{% + \def\@makefntext{\advance\leftskip 3\zw \parindent -3\zw}% + \footnotetext[0]{\itshape\authors@mail}% + }\fi + \global\let\authors@mail\@undefined} +\def\@maketitle{% + \newpage\null + \vskip 6em % used to be 2em + \begin{center} + \let\footnote\thanks + \ifx\@title\@undefined\else{\LARGE\headfont\@title\par}\fi + \lineskip .5em + \ifx\@author\@undefined\else + \vskip 1em + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par + \fi + \ifx\@etitle\@undefined\else + \vskip 1em + {\large \@etitle \par}% + \fi + \ifx\@eauthor\@undefined\else + \vskip 1em + \begin{tabular}[t]{c}% + \@eauthor + \end{tabular}\par + \fi + \vskip 1em + \@date + \end{center} + \vskip 1.5em + \centerline{\box\@abstractbox} + \ifx\@keywords\@undefined\else + \vskip 1.5em + \centerline{\parbox{157mm}{\textsf{Keywords:}\\ \small\@keywords}} + \fi + \vskip 1.5em} +%</jspf> +% \end{macrocode} +% \end{macro} +% +% \subsection{章・節} +% +% \paragraph{構成要素} +% +% |\@startsection| マクロは6個の必須引数と,オプションとして |*| と +% 1個のオプション引数と1個の必須引数をとります。 +% +% \begin{quote} +% |\@startsection{名}{レベル}{字下げ}{前アキ}{後アキ}{スタイル}| \\ +% | *[別見出し]{見出し}| +% \end{quote} +% +% それぞれの引数の意味は次の通りです。 +% +% \begin{description} +% \item[名] ユーザレベルコマンドの名前です(例: section)。 +% \item[レベル] 見出しの深さを示す数値です +% (chapter=1, section=2, \ldots )。 +% この数値が |secnumdepth| 以下のとき見出し番号を出力します。 +% \item[字下げ] 見出しの字下げ量です。 +% \item[前アキ] この値の絶対値が見出し上側の空きです。 +% 負の場合は,見出し直後の段落をインデントしません。 +% \item[後アキ] 正の場合は,見出しの下の空きです。 +% 負の場合は,絶対値が見出しの右の空きです +% (見出しと同じ行から本文を始めます)。 +% \item[スタイル] 見出しの文字スタイルの設定です。 +% \item[\texttt{*}] この \texttt{*} 印がないと,見出し番号を付け, +% 見出し番号のカウンタに1を加算します。 +% \item[別見出し] 目次や柱に出力する見出しです。 +% \item[見出し] 見出しです。 +% \end{description} +% +% 見出しの命令は通常 |\@startsection| とその最初の6個の引数として +% 定義されます。 +% +% 次は |\@startsection| の定義です。 +% 情報処理学会論文誌スタイルファイル(\texttt{ipsjcommon.sty}) +% を参考にさせていただきましたが,完全に行送りが |\baselineskip| +% の整数倍にならなくてもいいから前の行と重ならないようにしました。 +% +% \begin{macrocode} +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec \leavevmode \fi + \par +% 見出し上の空きを \@tempskipa にセットする + \@tempskipa #4\relax +% \@afterindent は見出し直後の段落を字下げするかどうかを表すスイッチ + \if@english \@afterindentfalse \else \@afterindenttrue \fi +% 見出し上の空きが負なら見出し直後の段落を字下げしない + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty +% 次の行は削除 +% \addvspace\@tempskipa +% 次の \noindent まで追加 + \ifdim \@tempskipa >\z@ + \if@slide\else + \null + \vspace*{-\baselineskip}% + \fi + \vskip\@tempskipa + \fi + \fi + \noindent +% 追加終わり + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +% \end{macrocode} +% +% |\@sect| と |\@xsect| は, +% 前のアキがちょうどゼロの場合にもうまくいくように,多少変えてあります。 +% +% \begin{macrocode} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi +% 見出し後の空きを \@tempskipa にセット + \@tempskipa #5\relax +% 条件判断の順序を入れ換えました + \ifdim \@tempskipa<\z@ + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% 目次にフルネームを載せるなら #8 + \else + \begingroup + \interlinepenalty \@M % 下から移動 + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% +% \interlinepenalty \@M % 上に移動 + #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% 目次にフルネームを載せるならここは #8 + \fi + \@xsect{#5}} +% \end{macrocode} +% +% 二つ挿入した |\everyparhook| のうち後者が |\paragraph| 類の後で2回実行され, +% それ以降は前者が実行されます。 +% +% [2011-10-05] Lua\TeX-jaでは|\everyparhook|は不要なので削除。 +% +% \begin{macrocode} +\def\@xsect#1{% +% 見出しの後ろの空きを \@tempskipa にセット + \@tempskipa #1\relax +% 条件判断の順序を変えました + \ifdim \@tempskipa<\z@ + \@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + {\setbox\z@\lastbox}% + \clubpenalty\@M + \begingroup \@svsechd \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \else + \clubpenalty \@clubpenalty + \everypar{}% + \fi}% + \else + \par \nobreak + \vskip \@tempskipa + \@afterheading + \fi + \if@slide + {\vskip-6pt\maybeblue\hrule height0pt depth1pt\vskip7pt\relax}% + \fi + \par % 2000-12-18 + \ignorespaces} +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa<\z@ + \def\@svsechd{#4{\hskip #1\relax #5}}% + \else + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \fi + \@xsect{#3}} +% \end{macrocode} +% +% \paragraph{柱関係の命令} +% +% \begin{macro}{\chaptermark} +% \begin{macro}{\sectionmark} +% \begin{macro}{\subsectionmark} +% \begin{macro}{\subsubsectionmark} +% \begin{macro}{\paragraphmark} +% \begin{macro}{\subparagraphmark} +% +% |\...mark| の形の命令を初期化します(第\ref{sec:pagestyle}節参照)。 +% |\chaptermark| 以外は\LaTeX 本体で定義済みです。 +% +% \begin{macrocode} +\newcommand*\chaptermark[1]{} +% \newcommand*{\sectionmark}[1]{} +% \newcommand*{\subsectionmark}[1]{} +% \newcommand*{\subsubsectionmark}[1]{} +% \newcommand*{\paragraphmark}[1]{} +% \newcommand*{\subparagraphmark}[1]{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \paragraph{カウンタの定義} +% +% \begin{macro}{\c@secnumdepth} +% +% |secnumdepth| は第何レベルの見出しまで +% 番号を付けるかを決めるカウンタです。 +% +% \begin{macrocode} +%<!book>\setcounter{secnumdepth}{3} +%<book>\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} +% +% 見出し番号のカウンタです。 +% |\newcounter| の第1引数が新たに作るカウンタです。 +% これは第2引数が増加するたびに 0 に戻されます。 +% 第2引数は定義済みのカウンタです。 +% +% \begin{macrocode} +\newcounter{part} +%<book>\newcounter{chapter} +%<book>\newcounter{section}[chapter] +%<!book>\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} +% +% カウンタの値を出力する命令 |\the何々| を定義します。 +% +% カウンタを出力するコマンドには次のものがあります。 +% +% \begin{quote} +% |\arabic{COUNTER} | 1, 2, 3, \ldots \\ +% |\roman{COUNTER} | i, ii, iii, \ldots \\ +% |\Roman{COUNTER} | I, II, III, \ldots \\ +% |\alph{COUNTER} | a, b, c, \ldots \\ +% |\Alph{COUNTER} | A, B, C, \ldots \\ +% |\kansuji{COUNTER} | 一, 二, 三, \ldots +% \end{quote} +% +% 以下ではスペース節約のため |@| の付いた内部表現を多用しています。 +% +% \begin{macrocode} +\renewcommand{\thepart}{\@Roman\c@part} +%<!book>% \renewcommand{\thesection}{\@arabic\c@section} +%<!book>\renewcommand{\thesection}{\presectionname\@arabic\c@section\postsectionname} +%<!book>\renewcommand{\thesubsection}{\@arabic\c@section.\@arabic\c@subsection} +%<*book> +\renewcommand{\thechapter}{\@arabic\c@chapter} +\renewcommand{\thesection}{\thechapter.\@arabic\c@section} +\renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} +%</book> +\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| を空に再定義します。 +% +% [2003-03-02] |\@secapp| は外しました。 +% +% \begin{macrocode} +%<book>\newcommand{\@chapapp}{\prechaptername} +%<book>\newcommand{\@chappos}{\postchaptername} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \paragraph{前付,本文,後付} +% +% 本のうち章番号があるのが「本文」, +% それ以外が「前付」「後付」です。 +% +% \begin{macro}{\frontmatter} +% +% ページ番号をローマ数字にし,章番号を付けないようにします。 +% +% \begin{macrocode} +%<*book> +\newcommand\frontmatter{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \@mainmatterfalse + \pagenumbering{roman}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mainmatter} +% +% ページ番号を算用数字にし,章番号を付けるようにします。 +% +% \begin{macrocode} +\newcommand\mainmatter{% +% \if@openright + \cleardoublepage +% \else +% \clearpage +% \fi + \@mainmattertrue + \pagenumbering{arabic}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\backmatter} +% +% 章番号を付けないようにします。ページ番号の付け方は変わりません。 +% +% \begin{macrocode} +\newcommand\backmatter{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \@mainmatterfalse} +%</book> +% \end{macrocode} +% \end{macro} +% +% \paragraph{部} +% +% \begin{macro}{\part} +% +% 新しい部を始めます。 +% +% |\secdef| を使って見出しを定義しています。 +% このマクロは二つの引数をとります。 +% +% \begin{quote} +% |\secdef{星なし}{星あり}| +% \end{quote} +% +% \begin{description} +% \item[星なし] \texttt{*} のない形の定義です。 +% \item[星あり] \texttt{*} のある形の定義です。 +% \end{description} +% +% |\secdef| は次のようにして使います。 +% +%\begin{verbatim} +% \def\chapter { ... \secdef \CMDA \CMDB } +% \def\CMDA [#1]#2{....} % \chapter[...]{...} の定義 +% \def\CMDB #1{....} % \chapter*{...} の定義 +%\end{verbatim} +% +% まず |book| クラス以外です。 +% +% \begin{macrocode} +%<*!book> +\newcommand\part{% + \if@noskipsec \leavevmode \fi + \par + \addvspace{4ex}% + \if@english \@afterindentfalse \else \@afterindenttrue \fi + \secdef\@part\@spart} +%</!book> +% \end{macrocode} +% +% |book| スタイルの場合は,少し複雑です。 +% +% \begin{macrocode} +%<*book> +\newcommand\part{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{empty}% 欧文用標準スタイルでは plain + \if@twocolumn + \onecolumn + \@restonecoltrue + \else + \@restonecolfalse + \fi + \null\vfil + \secdef\@part\@spart} +%</book> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@part} +% +% 部の見出しを出力します。 +% |\bfseries| を |\headfont| に変えました。 +% +% |book| クラス以外では |secnumdepth| が $-1$ より大きいとき +% 部番号を付けます。 +% +% \begin{macrocode} +%<*!book> +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1\zw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\parindent\z@ + \raggedright + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\headfont\prepartname\thepart\postpartname + \par\nobreak + \fi + \huge \headfont #2% + \markboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} +%</!book> +% \end{macrocode} +% +% |book| クラスでは |secnumdepth| が $-2$ より大きいとき部番号を付けます。 +% +% \begin{macrocode} +%<*book> +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1\zw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\headfont \prepartname\thepart\postpartname + \par\vskip20\p@ + \fi + \Huge \headfont #2\par}% + \@endpart} +%</book> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@spart} +% +% 番号を付けない部です。 +% +% \begin{macrocode} +%<*!book> +\def\@spart#1{{% + \parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \huge \headfont #1\par}% + \nobreak + \vskip 3ex + \@afterheading} +%</!book> +%<*book> +\def\@spart#1{{% + \centering + \interlinepenalty \@M + \normalfont + \Huge \headfont #1\par}% + \@endpart} +%</book> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@endpart} +% +% |\@part| と |\@spart| の最後で実行されるマクロです。 +% 両面印刷のときは白ページを追加します。 +% 二段組のときには,二段組に戻します。 +% +% \begin{macrocode} +%<*book> +\def\@endpart{\vfil\newpage + \if@twoside + \null + \thispagestyle{empty}% + \newpage + \fi + \if@restonecol + \twocolumn + \fi} +%</book> +% \end{macrocode} +% \end{macro} +% +% \paragraph{章} +% +% \begin{macro}{\chapter} +% +% 章の最初のページスタイルは,全体が |empty| でなければ |plain| に +% します。 +% また,|\@topnum| を 0 にして, +% 章見出しの上に図や表が来ないようにします。 +% +% \begin{macrocode} +%<*book> +\newcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \plainifnotempty % 元: \thispagestyle{plain} + \global\@topnum\z@ + \if@english \@afterindentfalse \else \@afterindenttrue \fi + \secdef\@chapter\@schapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@chapter} +% +% 章見出しを出力します。 +% |secnumdepth| が0以上かつ |\@mainmatter| が真のとき章番号を出力します。 +% +% \begin{macrocode} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\thechapter\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline + {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}% + #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@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makechapterhead} +% +% 実際に章見出しを組み立てます。 +% |\bfseries| を |\headfont| に変えました。 +% +% \begin{macrocode} +\def\@makechapterhead#1{% + \vspace*{2\Cvs}% 欧文は50pt + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \huge\headfont \@chapapp\thechapter\@chappos + \par\nobreak + \vskip \Cvs % 欧文は20pt + \fi + \fi + \interlinepenalty\@M + \Huge \headfont #1\par\nobreak + \vskip 3\Cvs}} % 欧文は40pt +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@schapter} +% +% |\chapter*{...}| コマンドの本体です。 +% |\chaptermark| を補いました。 +% +% \begin{macrocode} +\def\@schapter#1{% + \chaptermark{#1}% + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}\@afterheading + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makeschapterhead} +% +% 番号なしの章見出しです。 +% +% \begin{macrocode} +\def\@makeschapterhead#1{% + \vspace*{2\Cvs}% 欧文は50pt + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \Huge \headfont #1\par\nobreak + \vskip 3\Cvs}} % 欧文は40pt +%</book> +% \end{macrocode} +% \end{macro} +% +% \paragraph{下位レベルの見出し} +% +% \begin{macro}{\section} +% +% 欧文版では |\@startsection| の第4引数を負にして最初の段落の +% 字下げを禁止していますが, +% 和文版では正にして字下げするようにしています。 +% +% 段組のときはなるべく左右の段が狂わないように工夫しています。 +% +% \begin{macrocode} +\if@twocolumn + \newcommand{\section}{% +%<jspf>\ifx\maketitle\relax\else\maketitle\fi + \@startsection{section}{1}{\z@}% +%<!kiyou> {0.6\Cvs}{0.4\Cvs}% +%<kiyou> {\Cvs}{0.5\Cvs}% +% {\normalfont\large\headfont\@secapp}} + {\normalfont\large\headfont\raggedright}} +\else + \newcommand{\section}{% + \if@slide\clearpage\fi + \@startsection{section}{1}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ + {.5\Cvs \@plus.3\Cdp}% 後アキ +% {\normalfont\Large\headfont\@secapp}} + {\normalfont\Large\headfont\raggedright}} +\fi +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\subsection} +% +% 同上です。 +% +% \begin{macrocode} +\if@twocolumn + \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {\z@}{\z@}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ + {.5\Cvs \@plus.3\Cdp}% 後アキ + {\normalfont\large\headfont}} +\fi +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\subsubsection} +% \begin{macrocode} +\if@twocolumn + \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {\z@}{\z@}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% + {\z@}% + {\normalfont\normalsize\headfont}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\paragraph} +% +% 見出しの後ろで改行されません。 +% +% \begin{macrocode} +\if@twocolumn + \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {\z@}{-1\zw}% 改行せず 1\zw のアキ +%<jspf> {\normalfont\normalsize\headfont}} +%<!jspf> {\normalfont\normalsize\headfont ■}} +\else + \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% + {-1\zw}% 改行せず 1\zw のアキ +%<jspf> {\normalfont\normalsize\headfont}} +%<!jspf> {\normalfont\normalsize\headfont ■}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subparagraph} +% +% 見出しの後ろで改行されません。 +% +% \begin{macrocode} +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {\z@}{-1\zw}% + {\normalfont\normalsize\headfont}} +% \end{macrocode} +% \end{macro} +% +% \subsection{リスト環境} +% +% 第 $k$ レベルのリストの初期化をするのが |\@list|$k$ です +% ($k = \mathtt{i}, \mathtt{ii}, \mathtt{iii}, \mathtt{iv}$)。 +% |\@list|$k$ は |\leftmargin| を |\leftmargin|$k$ に設定します。 +% +% \begin{macro}{\leftmargini} +% +% 二段組であるかないかに応じてそれぞれ 2em,2.5em でしたが, +% ここでは全角幅の2倍にしました。 +% +% [2002-05-11] |3\zw| に変更しました。 +% +% [2005-03-19] 二段組は |2\zw| に戻しました。 +% +% \begin{macrocode} +\if@slide + \setlength\leftmargini{1\zw} +\else + \if@twocolumn + \setlength\leftmargini{2\zw} + \else + \setlength\leftmargini{3\zw} + \fi +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\leftmarginii} +% \begin{macro}{\leftmarginiii} +% \begin{macro}{\leftmarginiv} +% \begin{macro}{\leftmarginv} +% \begin{macro}{\leftmarginvi} +% +% |ii|,|iii|,|iv| は |\labelsep| と +% それぞれ `(m)',`vii.',`M.' の幅との和より大きくする +% ことになっています。ここでは全角幅の整数倍に丸めました。 +% +% \begin{macrocode} +\if@slide + \setlength\leftmarginii {1\zw} + \setlength\leftmarginiii{1\zw} + \setlength\leftmarginiv {1\zw} + \setlength\leftmarginv {1\zw} + \setlength\leftmarginvi {1\zw} +\else + \setlength\leftmarginii {2\zw} + \setlength\leftmarginiii{2\zw} + \setlength\leftmarginiv {2\zw} + \setlength\leftmarginv {1\zw} + \setlength\leftmarginvi {1\zw} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelsep} +% \begin{macro}{\labelwidth} +% +% |\labelsep| はラベルと本文の間の距離です。 +% |\labelwidth| はラベルの幅です。 +% これは二分に変えました。 +% +% \begin{macrocode} +\setlength \labelsep {0.5\zw} % .5em +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\partopsep} +% +% リスト環境の前に空行がある場合, +% |\parskip| と |\topsep| に |\partopsep| を +% 加えた値だけ縦方向の空白ができます。 +% 0 に改変しました。 +% +% \begin{macrocode} +\setlength\partopsep{\z@} % {2\p@ \@plus 1\p@ \@minus 1\p@} +% \end{macrocode} +% \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}{\@listi} +% \begin{macro}{\@listI} +% +% |\@listi| は |\leftmargin|,|\parsep|,|\topsep|,|\itemsep| などの +% トップレベルの定義をします。 +% この定義は,フォントサイズコマンドによって変更されます +% (たとえば |\small| の中では小さい値に設定されます)。 +% このため,|\normalsize| がすべてのパラメータを戻せるように, +% |\@listI| で |\@listi| のコピーを保存します。 +% 元の値はかなり複雑ですが,ここでは簡素化してしまいました。 +% 特に最初と最後に行送りの半分の空きが入るようにしてあります。 +% アスキーの標準スタイルでは +% トップレベルの |itemize|,|enumerate| 環境でだけ +% 最初と最後に行送りの半分の空きが入るようになっていました。 +% +% [2004-09-27] |\topsep| のグルー $_{-0.1}^{+0.2}$ |\baselineskip| +% を思い切って外しました。 +% +% \begin{macrocode} +\def\@listi{\leftmargin\leftmargini + \parsep \z@ + \topsep 0.5\baselineskip + \itemsep \z@ \relax} +\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} +% +% 第2〜6レベルのリスト環境のパラメータの設定です。 +% +% \begin{macrocode} +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep\parsep} +\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} +% +% \paragraph{enumerate環境} +% +% |enumerate| 環境はカウンタ |enumi|,|enumii|,|enumiii|, +% |enumiv| を使います。|enum|$n$ は第 $n$ レベルの番号です。 +% +% \begin{macro}{\theenumi} +% \begin{macro}{\theenumii} +% \begin{macro}{\theenumiii} +% \begin{macro}{\theenumiv} +% +% 出力する番号の書式を設定します。 +% これらは\LaTeX 本体(\texttt{ltlists.dtx} 参照)で定義済みですが, +% ここでは表し方を変えています。 +% |\@arabic|,|\@alph|,|\@roman|,|\@Alph| はそれぞれ +% 算用数字,小文字アルファベット,小文字ローマ数字,大文字アルファベット +% で番号を出力する命令です。 +% +% \begin{macrocode} +\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| 環境の番号を出力する命令です。 +% 第2レベル以外は最後に欧文のピリオドが付きますが, +% これは好みに応じて取り払ってください。 +% 第2レベルの番号のかっこは和文用に換え, +% その両側に入る余分なグルーを |\inhibitglue| で +% 取り除いています。 +% +% \begin{macrocode} +\newcommand{\labelenumi}{\theenumi.} +\newcommand{\labelenumii}{\inhibitglue(\theenumii)\inhibitglue} +\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} +% +% |\p@enum|$n$ は |\ref| コマンドで |enumerate| 環境の第 $n$ レベルの +% 項目が参照されるときの書式です。 +% これも第2レベルは和文用かっこにしました。 +% +% \begin{macrocode} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi\inhibitglue(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \paragraph{itemize環境} +% +% \begin{macro}{\labelitemi} +% \begin{macro}{\labelitemii} +% \begin{macro}{\labelitemiii} +% \begin{macro}{\labelitemiv} +% |itemize| 環境の第 $n$ レベルのラベルを作るコマンドです。 +% \begin{macrocode} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \paragraph{description環境} +% +% \begin{environment}{description} +% +% 本来の |description| 環境では,項目名が短いと,説明部分の頭が +% それに引きずられて左に出てしまいます。 +% これを解決した新しい |description| の実装です。 +% +% \begin{macrocode} +\newenvironment{description}{% + \list{}{% + \labelwidth=\leftmargin + \labelsep=1\zw + \advance \labelwidth by -\labelsep + \let \makelabel=\descriptionlabel}}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\descriptionlabel} +% +% |description| 環境のラベルを出力するコマンドです。 +% 好みに応じて |#1| の前に適当な空き +% (たとえば |\hspace{1\zw}|)を入れるのもいいと思います。 +% +% \begin{macrocode} +\newcommand*\descriptionlabel[1]{\normalfont\headfont #1\hfil} +% \end{macrocode} +% \end{macro} +% +% \paragraph{概要} +% +% \begin{environment}{abstract} +% +% 概要(要旨,梗概)を出力する環境です。 +% |book| クラスでは各章の初めにちょっとしたことを書くのに使います。 +% |titlepage| オプション付きの |article| クラスでは, +% 独立したページに出力されます。 +% |abstract| 環境は元は |quotation| 環境で作られていましたが, +% |quotation| 環境の右マージンをゼロにしたので, +% |list| 環境で作り直しました。 +% +% JSPFスタイルでは実際の出力は |\maketitle| で行われます。 +% +% \begin{macrocode} +%<*book> +\newenvironment{abstract}{% + \begin{list}{}{% + \listparindent=1\zw + \itemindent=\listparindent + \rightmargin=0pt + \leftmargin=5\zw}\item[]}{\end{list}\vspace{\baselineskip}} +%</book> +%<*article|kiyou> +\newbox\@abstractbox +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + \headfont \abstractname + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \ifx\maketitle\relax + \section*{\abstractname}% + \else + \global\setbox\@abstractbox\hbox\bgroup + \begin{minipage}[b]{\textwidth} + \small\parindent1\zw + \begin{center}% + {\headfont \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \list{}{% + \listparindent\parindent + \itemindent \listparindent + \rightmargin \leftmargin}% + \item\relax + \fi + \else + \small + \begin{center}% + {\headfont \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \list{}{% + \listparindent\parindent + \itemindent \listparindent + \rightmargin \leftmargin}% + \item\relax + \fi}{\if@twocolumn + \ifx\maketitle\relax + \else + \endlist\end{minipage}\egroup + \fi + \else + \endlist + \fi} +\fi +%</article|kiyou> +%<*jspf> +\newbox\@abstractbox +\newenvironment{abstract}{% + \global\setbox\@abstractbox\hbox\bgroup + \begin{minipage}[b]{157mm}{\sffamily Abstract}\par + \small + \if@english \parindent6mm \else \parindent1\zw \fi}% + {\end{minipage}\egroup} +%</jspf> +% \end{macrocode} +% \end{environment} +% +% \paragraph{キーワード} +% +% \begin{environment}{keywords} +% +% キーワードを準備する環境です。 +% 実際の出力は |\maketitle| で行われます。 +% +% \begin{macrocode} +%<*jspf> +%\newbox\@keywordsbox +%\newenvironment{keywords}{% +% \global\setbox\@keywordsbox\hbox\bgroup +% \begin{minipage}[b]{157mm}{\sffamily Keywords:}\par +% \small\parindent0\zw}% +% {\end{minipage}\egroup} +%</jspf> +% \end{macrocode} +% \end{environment} +% +% \paragraph{verse環境} +% +% \begin{environment}{verse} +% +% 詩のための |verse| 環境です。 +% +% \begin{macrocode} +\newenvironment{verse}{% + \let \\=\@centercr + \list{}{% + \itemsep \z@ + \itemindent -2\zw % 元: -1.5em + \listparindent\itemindent + \rightmargin \z@ + \advance\leftmargin 2\zw}% 元: 1.5em + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \paragraph{quotation環境} +% +% \begin{environment}{quotation} +% +% 段落の頭の字下げ量を1.5emから |\parindent| に変えました。 +% また,右マージンを 0 にしました。 +% +% \begin{macrocode} +\newenvironment{quotation}{% + \list{}{% + \listparindent\parindent + \itemindent\listparindent + \rightmargin \z@}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \paragraph{quote環境} +% +% \begin{environment}{quote} +% +% |quote| 環境は,段落がインデントされないことを除き, +% |quotation| 環境と同じです。 +% +% \begin{macrocode} +\newenvironment{quote}% + {\list{}{\rightmargin\z@}\item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \paragraph{定理など} +% +% |ltthm.dtx| 参照。たとえば次のように定義します。 +%\begin{verbatim} +% \newtheorem{definition}{定義} +% \newtheorem{axiom}{公理} +% \newtheorem{theorem}{定理} +%\end{verbatim} +% +% [2001-04-26] 定理の中はイタリック体になりましたが, +% これでは和文がゴシック体になってしまうので, +% |\itshape| を削除しました。 +% +% [2009-08-23] |\bfseries| を |\headfont| に直し, +% |\labelsep| を |1\zw| にし,括弧を全角にしました。 +% +% \begin{macrocode} +\def\@begintheorem#1#2{\trivlist\labelsep=1\zw + \item[\hskip \labelsep{\headfont #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\zw + \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} +% \end{macrocode} +% +% \begin{environment}{titlepage} +% +% タイトルを独立のページに出力するのに使われます。 +% +% \begin{macrocode} +\newenvironment{titlepage}{% +%<book> \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi} +% \end{macrocode} +% \end{environment} +% +% \paragraph{付録} +% +% \begin{macro}{\appendix} +% +% 本文と付録を分離するコマンドです。 +% +% \begin{macrocode} +%<*!book> +\newcommand{\appendix}{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\presectionname{\appendixname}% + \gdef\postsectionname{}% +% \gdef\thesection{\@Alph\c@section}% [2003-03-02] + \gdef\thesection{\presectionname\@Alph\c@section\postsectionname}% + \gdef\thesubsection{\@Alph\c@section.\@arabic\c@subsection}} +%</!book> +%<*book> +\newcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\@chappos{}% + \gdef\thechapter{\@Alph\c@chapter}} +%</book> +% \end{macrocode} +% \end{macro} +% +% \subsection{パラメータの設定} +% +% \paragraph{arrayとtabular環境} +% +% \begin{macro}{\arraycolsep} +% +% |array| 環境の列間には |\arraycolsep| の2倍の幅の空きが入ります。 +% +% \begin{macrocode} +\setlength\arraycolsep{5\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tabcolsep} +% +% |tabular| 環境の列間には |\tabcolsep| の2倍の幅の空きが入ります。 +% +% \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} +% +% \paragraph{tabbing環境} +% +% \begin{macro}{\tabbingsep} +% +% |\'| コマンドで入るアキです。 +% +% \begin{macrocode} +\setlength\tabbingsep{\labelsep} +% \end{macrocode} +% \end{macro} +% +% \paragraph{minipage環境} +% +% \begin{macro}{\@mpfootins} +% +% |minipage| 環境の脚注の |\skip|\hspace{0pt}|\@mpfootins| +% は通常のページの |\skip|\hspace{0pt}|\footins| +% と同じ働きをします。 +% +% \begin{macrocode} +\skip\@mpfootins = \skip\footins +% \end{macrocode} +% \end{macro} +% +% \paragraph{framebox環境} +% +% \begin{macro}{\fboxsep} +% +% |\fbox|,|\framebox| で内側のテキストと枠との間の空きです。 +% +% \begin{macro}{\fboxrule} +% +% |\fbox|,|\framebox| の罫線の幅です。 +% +% \begin{macrocode} +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \paragraph{equationとeqnarray環境} +% +% \begin{macro}{\theequation} +% +% 数式番号を出力するコマンドです。 +% +% \begin{macrocode} +%<!book>\renewcommand \theequation {\@arabic\c@equation} +%<*book> +\@addtoreset{equation}{chapter} +\renewcommand\theequation + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation} +%</book> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jot} +% +% |eqnarray| の行間に余分に入るアキです。 +% デフォルトの値をコメントアウトして示しておきます。 +% +% \begin{macrocode} +% \setlength\jot{3pt} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@eqnnum} +% +% 数式番号の形式です。 +% デフォルトの値をコメントアウトして示しておきます。 +% +% |\inhibitglue(\theequation)\inhibitglue| のように和文かっこ +% を使うことも可能です。 +% +% \begin{macrocode} +% \def\@eqnnum{(\theequation)} +% \end{macrocode} +% \end{macro} +% +% |amsmath| パッケージを使う場合は |\tagform@| を次のように修正します。 +% +% \begin{macrocode} +% \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}} +% \end{macrocode} +% +% \subsection{フロート} +% +% タイプ \texttt{TYPE} のフロートオブジェクトを +% 扱うには,次のマクロを定義します。 +% \begin{description} +% \item[\texttt{\bslash fps@TYPE}] +% フロートを置く位置(float placement specifier)です。 +% \item[\texttt{\bslash ftype@TYPE}] +% フロートの番号です。2の累乗(1,2,4,\ldots )でなければなりません。 +% \item[\texttt{\bslash ext@TYPE}] +% フロートの目次を出力するファイルの拡張子です。 +% \item[\texttt{\bslash fnum@TYPE}] +% キャプション用の番号を生成するマクロです。 +% \item[\texttt{\bslash @makecaption}{\meta{num}}{\meta{text}}] +% キャプションを出力するマクロです。 +% \meta{num} は |\fnum@...| の生成する番号, +% \meta{text} はキャプションのテキストです。 +% テキストは適当な幅の |\parbox| に入ります。 +% \end{description} +% +% \paragraph{figure環境} +% +% \begin{macro}{\c@figure} +% +% 図番号のカウンタです。 +% +% \begin{macro}{\thefigure} +% +% 図番号を出力するコマンドです。 +% +% \begin{macrocode} +%<*!book> +\newcounter{figure} +\renewcommand \thefigure {\@arabic\c@figure} +%</!book> +%<*book> +\newcounter{figure}[chapter] +\renewcommand \thefigure + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} +%</book> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fps@figure} +% \begin{macro}{\ftype@figure} +% \begin{macro}{\ext@figure} +% \begin{macro}{\fnum@figure} +% +% |figure| のパラメータです。 +% |\figurename| の直後に |~| が入っていましたが, +% ここでは外しました。 +% +% \begin{macrocode} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\nobreak\thefigure} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{figure} +% \begin{environment}{figure*} +% +% |*| 形式は段抜きのフロートです。 +% +% \begin{macrocode} +\newenvironment{figure}% + {\@float{figure}}% + {\end@float} +\newenvironment{figure*}% + {\@dblfloat{figure}}% + {\end@dblfloat} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \paragraph{table環境} +% +% \begin{macro}{\c@table} +% \begin{macro}{\thetable} +% +% 表番号カウンタと表番号を出力するコマンドです。 +% アスキー版では |\thechapter.| が |\thechapter{}・| になっていますが, +% ここではオリジナルのままにしています。 +% +% \begin{macrocode} +%<*!book> +\newcounter{table} +\renewcommand\thetable{\@arabic\c@table} +%</!book> +%<*book> +\newcounter{table}[chapter] +\renewcommand \thetable + {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} +%</book> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fps@table} +% \begin{macro}{\ftype@table} +% \begin{macro}{\ext@table} +% \begin{macro}{\fnum@table} +% +% |table| のパラメータです。 +% |\tablename| の直後に |~| が入っていましたが, +% ここでは外しました。 +% +% \begin{macrocode} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\nobreak\thetable} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{table} +% \begin{environment}{table*} +% +% |*| は段抜きのフロートです。 +% +% \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| コマンドにより呼び出され, +% 実際にキャプションを出力するコマンドです。 +% 第1引数はフロートの番号, +% 第2引数はテキストです。 +% +% \begin{macro}{\abovecaptionskip} +% \begin{macro}{\belowcaptionskip} +% +% それぞれキャプションの前後に挿入されるスペースです。 +% |\belowcaptionskip| が0になっていましたので, +% キャプションを表の上につけた場合にキャプションと表が +% くっついてしまうのを直しました。 +% +% \begin{macrocode} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{5\p@} % 元: 10\p@ +\setlength\belowcaptionskip{5\p@} % 元: 0\p@ +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% 実際のキャプションを出力します。 +% オリジナルと異なり,文字サイズを |\small| にし, +% キャプションの幅を2cm狭くしました。 +% +% [2003-11-05] ロジックを少し変えてみました。 +% +% \begin{macrocode} +%<*!jspf> +% \long\def\@makecaption#1#2{{\small +% \advance\leftskip1cm +% \advance\rightskip1cm +% \vskip\abovecaptionskip +% \sbox\@tempboxa{#1\hskip1\zw\relax #2}% +% \ifdim \wd\@tempboxa >\hsize +% #1\hskip1\zw\relax #2\par +% \else +% \global \@minipagefalse +% \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% +% \fi +% \vskip\belowcaptionskip}} +\long\def\@makecaption#1#2{{\small + \advance\leftskip .0628\linewidth + \advance\rightskip .0628\linewidth + \vskip\abovecaptionskip + \sbox\@tempboxa{#1\hskip1\zw\relax #2}% + \ifdim \wd\@tempboxa <\hsize \centering \fi + #1\hskip1\zw\relax #2\par + \vskip\belowcaptionskip}} +%</!jspf> +%<*jspf> +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{\small\sffamily #1\quad #2}% + \ifdim \wd\@tempboxa >\hsize + {\small\sffamily + \list{#1}{% + \renewcommand{\makelabel}[1]{##1\hfil} + \itemsep \z@ + \itemindent \z@ + \labelsep \z@ + \labelwidth 11mm + \listparindent\z@ + \leftmargin 11mm}\item\relax #2\endlist} + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +%</jspf> +% \end{macrocode} +% \end{macro} +% +% \section{フォントコマンド} +% +% ここでは\LaTeX~2.09で使われていたコマンドを定義します。 +% これらはテキストモードと数式モードのどちらでも動作します。 +% これらは互換性のためのもので, +% できるだけ |\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} +% +% 数式モード以外では何もしません(警告を出します)。 +% +% \begin{macrocode} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{相互参照} +% +% \subsection{目次の類} +% +% |\section| コマンドは |.toc| ファイルに次のような行を出力します。 +% \begin{quote} +% |\contentsline{section}{タイトル}{ページ}| +% \end{quote} +% たとえば |\section| に見出し番号が付く場合,上の「タイトル」は +% \begin{quote} +% |\numberline{番号}{見出し}| +% \end{quote} +% となります。 +% この「番号」は |\thesection| コマンドで生成された見出し番号です。 +% +% |figure| 環境の |\caption| コマンドは |.lof| ファイルに +% 次のような行を出力します。 +% \begin{quote} +% |\contentsline{figure}{\numberline{番号}{キャプション}{ページ}| +% \end{quote} +% この「番号」は |\thefigure| コマンドで生成された図番号です。 +% +% |table| 環境も同様です。 +% +% |\contentsline{...}| は |\l@...| というコマンドを実行するので, +% あらかじめ |\l@chapter|,|\l@section|,|\l@figure| などを +% 定義しておかなければなりません。 +% これらの多くは |\@dottedtocline| コマンドを使って定義します。 +% これは +% \begin{quote} +% |\@dottedtocline{レベル}{インデント}{幅}{タイトル}{ページ}| +% \end{quote} +% という書式です。 +% \begin{description} +% \item[レベル] この値が |tocdepth| 以下のときだけ出力されます。 +% |\chapter| はレベル0,|\section| はレベル1,等々です。 +% \item[インデント] 左側の字下げ量です。 +% \item[幅] 「タイトル」に |\numberline| コマンドが含まれる場合, +% 節番号が入る箱の幅です。 +% \end{description} +% +% \begin{macro}{\@pnumwidth} +% +% ページ番号の入る箱の幅です。 +% +% \begin{macro}{\@tocrmarg} +% +% 右マージンです。 +% |\@tocrmarg| $\ge$ |\@pnumwidth| とします。 +% +% \begin{macro}{\@dotsep} +% +% 点の間隔です(単位 mu)。 +% +% \begin{macro}{\c@tocdepth} +% +% 目次ページに出力する見出しレベルです。 +% 元は \texttt{article} で3,その他で2でしたが, +% ここでは一つずつ減らしています。 +% +% \begin{macrocode} +\newcommand\@pnumwidth{1.55em} +\newcommand\@tocrmarg{2.55em} +\newcommand\@dotsep{4.5} +%<!book>\setcounter{tocdepth}{2} +%<book>\setcounter{tocdepth}{1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \paragraph{目次} +% +% \begin{macro}{\tableofcontents} +% +% 目次を生成します。 +% +% \begin{macrocode} +\newcommand{\tableofcontents}{% +%<*book> + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname}% + \@mkboth{\contentsname}{}% +%</book> +%<*!book> + \section*{\contentsname}% + \@mkboth{\contentsname}{\contentsname}% +%</!book> + \@starttoc{toc}% +%<book> \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@part} +% +% 部の目次です。 +% +% \begin{macrocode} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax +%<!book> \addpenalty\@secpenalty +%<book> \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent \z@ +% \@pnumwidth should be \@tocrmarg +% \rightskip \@pnumwidth + \rightskip \@tocrmarg + \parfillskip -\rightskip + {\leavevmode + \large \headfont + \setlength\@lnumwidth{4\zw}% + #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \nobreak +%<book> \global\@nobreaktrue +%<book> \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@chapter} +% +% 章の目次です。|\@lnumwidth| を|4.683\zw|に増やしました。 +% +% \begin{macrocode} +%<*book> +\newcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{1.0em \@plus\p@} +% \vskip 1.0em \@plus\p@ % book.clsでは↑がこうなっている + \begingroup + \parindent\z@ +% \rightskip\@pnumwidth + \rightskip\@tocrmarg + \parfillskip-\rightskip + \leavevmode\headfont + \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683\zw}\fi + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} +%</book> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@section} +% +% 節の目次です。 +% +% \begin{macrocode} +%<*!book> +\newcommand*{\l@section}[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty{\@secpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ +% \rightskip\@pnumwidth + \rightskip\@tocrmarg + \parfillskip-\rightskip + \leavevmode\headfont + \setlength\@lnumwidth{4\zw}% 元1.5em [2003-03-02] + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \endgroup + \fi} +%</!book> +% \end{macrocode} +% +% インデントと幅はそれぞれ1.5em,2.3emでしたが, +% |1\zw|,|3.683\zw|に変えました。 +% +% \begin{macrocode} +%<book>\newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{3.683\zw}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@subsection} +% \begin{macro}{\l@subsubsection} +% \begin{macro}{\l@paragraph} +% \begin{macro}{\l@subparagraph} +% +% さらに下位レベルの目次項目の体裁です。 +% あまり使ったことがありませんので,要修正かもしれません。 +% +% \begin{macrocode} +%<*!book> +% \newcommand*{\l@subsection} {\@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*{\l@subsection} {\@dottedtocline{2}{1\zw}{3\zw}} +% \newcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\zw}{3\zw}} +% \newcommand*{\l@paragraph} {\@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{3\zw}{3\zw}} +% \newcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\zw}{3\zw}} +%</!book> +%<*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}} +%</book> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\numberline} +% \begin{macro}{\@lnumwidth} +% +% 欧文版\LaTeX では |\numberline{...}| は幅 |\@tempdima| の箱に左詰め +% で出力する命令ですが, +% アスキー版では |\@tempdima| の代わりに |\@lnumwidth| という変数 +% で幅を決めるように再定義しています。 +% 後続文字が全角か半角かでスペースが変わらないように |\hspace| +% を入れておきました。 +% +% \begin{macrocode} +\newdimen\@lnumwidth +\def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}\hspace{0pt}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dottedtocline} +% +% \LaTeX 本体(\texttt{ltsect.dtx} 参照)での定義と同じですが, +% |\@tempdima| を |\@lnumwidth| に変えています。 +% +% \begin{macrocode} +\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill \nobreak\hb@xt@\@pnumwidth{% + \hfil\normalfont \normalcolor #5}\par}\fi} +% \end{macrocode} +% \end{macro} +% +% \paragraph{図目次と表目次} +% +% \begin{macro}{\listoffigures} +% +% 図目次を出力します。 +% +% \begin{macrocode} +\newcommand{\listoffigures}{% +%<*book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listfigurename}% + \@mkboth{\listfigurename}{}% +%</book> +%<*!book> + \section*{\listfigurename}% + \@mkboth{\listfigurename}{\listfigurename}% +%</!book> + \@starttoc{lof}% +%<book> \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@figure} +% +% 図目次の項目を出力します。 +% +% \begin{macrocode} +\newcommand*{\l@figure}{\@dottedtocline{1}{1\zw}{3.683\zw}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listoftables} +% +% 表目次を出力します。 +% +% \begin{macrocode} +\newcommand{\listoftables}{% +%<*book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listtablename}% + \@mkboth{\listtablename}{}% +%</book> +%<*!book> + \section*{\listtablename}% + \@mkboth{\listtablename}{\listtablename}% +%</!book> + \@starttoc{lot}% +%<book> \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} +% +% オープンスタイルの参考文献で使うインデント幅です。 +% 元は 1.5em でした。 +% +% \begin{macrocode} +\newdimen\bibindent +\setlength\bibindent{2\zw} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{thebibliography} +% +% 参考文献リストを出力します。 +% +% \begin{macrocode} +\newenvironment{thebibliography}[1]{% + \global\let\presectionname\relax + \global\let\postsectionname\relax +%<article|jspf> \section*{\refname}\@mkboth{\refname}{\refname}% +%<*kiyou> + \vspace{1.5\baselineskip} + \subsubsection*{\refname}\@mkboth{\refname}{\refname}% + \vspace{0.5\baselineskip} +%</kiyou> +%<book> \chapter*{\bibname}\@mkboth{\bibname}{}% +%<book> \addcontentsline{toc}{chapter}{\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}}% +%<kiyou> \small + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\newblock} +% +% |\newblock| はデフォルトでは小さなスペースを生成します。 +% +% \begin{macrocode} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@openbib@code} +% +% |\@openbib@code| はデフォルトでは何もしません。 +% この定義は |openbib| オプションによって変更されます。 +% +% \begin{macrocode} +\let\@openbib@code\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@biblabel} +% +% |\bibitem[...]| のラベルを作ります。 +% \texttt{ltbibl.dtx} の定義の半角 [] を全角[]に変え, +% 余分なスペースが入らないように |\inhibitglue| ではさみました。 +% とりあえずコメントアウトしておきますので,必要に応じて生かしてください。 +% +% \begin{macrocode} +% \def\@biblabel#1{\inhibitglue[#1]\inhibitglue} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cite} +% \begin{macro}{\@cite} +% \begin{macro}{\@citex} +% +% 文献の番号を出力する部分は \texttt{ltbibl.dtx} で定義されていますが, +% コンマとかっこを和文フォントにするには次のようにします。 +% とりあえずコメントアウトしておきましたので,必要に応じて生かしてください。 +% かっこの前後に入るグルーを |\inhibitglue| で取っていますので, +% オリジナル同様,\verb*+Knuth~\cite{knu} + のように半角空白 +% で囲んでください。 +% +% \begin{macrocode} +% \def\@citex[#1]#2{% +% \let\@citea\@empty +% \@cite{\@for\@citeb:=#2\do +% {\@citea\def\@citea{,\inhibitglue\penalty\@m\ }% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi +% \@ifundefined{b@\@citeb}{\mbox{\normalfont\bfseries ?}% +% \G@refundefinedtrue +% \@latex@warning +% {Citation `\@citeb' on page \thepage \space undefined}}% +% {\hbox{\csname b@\@citeb\endcsname}}}}{#1}} +% \def\@cite#1#2{\inhibitglue[{#1\if@tempswa ,#2\fi}]\inhibitglue} +% \end{macrocode} +% +% 引用番号を上ツキの 1)のようなスタイルにするには次のようにします。 +% |\cite| の先頭に |\unskip| を付けて先行のスペース(\verb|~| も) +% を帳消しにしています。 +% +% \begin{macrocode} +% \DeclareRobustCommand\cite{\unskip +% \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} +% \def\@cite#1#2{$^{\hbox{\scriptsize{#1\if@tempswa +% ,\inhibitglue\ #2\fi})}}$} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{索引} +% +% \begin{environment}{theindex} +% +% 2〜3段組の索引を作成します。 +% 最後が偶数ページのときにマージンがずれる現象を直しました(Thanks: 藤村さん)。 +% +% \begin{macrocode} +\newenvironment{theindex}{% 索引を3段組で出力する環境 + \if@twocolumn + \onecolumn\@restonecolfalse + \else + \clearpage\@restonecoltrue + \fi + \columnseprule.4pt \columnsep 2\zw + \ifx\multicols\@undefined +%<book> \twocolumn[\@makeschapterhead{\indexname}% +%<book> \addcontentsline{toc}{chapter}{\indexname}]% +%<!book> \def\presectionname{}\def\postsectionname{}% +%<!book> \twocolumn[\section*{\indexname}]% + \else + \ifdim\textwidth<\fullwidth + \setlength{\evensidemargin}{\oddsidemargin} + \setlength{\textwidth}{\fullwidth} + \setlength{\linewidth}{\fullwidth} +%<book> \begin{multicols}{3}[\chapter*{\indexname}% +%<book> \addcontentsline{toc}{chapter}{\indexname}]% +%<!book> \def\presectionname{}\def\postsectionname{}% +%<!book> \begin{multicols}{3}[\section*{\indexname}]% + \else +%<book> \begin{multicols}{2}[\chapter*{\indexname}% +%<book> \addcontentsline{toc}{chapter}{\indexname}]% +%<!book> \def\presectionname{}\def\postsectionname{}% +%<!book> \begin{multicols}{2}[\section*{\indexname}]% + \fi + \fi +%<book> \@mkboth{\indexname}{}% +%<!book> \@mkboth{\indexname}{\indexname}% + \plainifnotempty % \thispagestyle{plain} + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem + \raggedright + \footnotesize\narrowbaselines + }{ + \ifx\multicols\@undefined + \if@restonecol\onecolumn\fi + \else + \end{multicols} + \fi + \clearpage + } +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@idxitem} +% \begin{macro}{\subitem} +% \begin{macro}{\subsubitem} +% +% 索引項目の字下げ幅です。|\@idxitem| は |\item| の項目の字下げ幅です。 +% +% \begin{macrocode} +\newcommand{\@idxitem}{\par\hangindent 4\zw} % 元 40pt +\newcommand{\subitem}{\@idxitem \hspace*{2\zw}} % 元 20pt +\newcommand{\subsubitem}{\@idxitem \hspace*{3\zw}} % 元 30pt +% \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} +% +% \begin{macro}{\seename} +% \begin{macro}{\alsoname} +% +% 索引の |\see|,|\seealso| コマンドで出力されるものです。 +% デフォルトはそれぞれ \emph{see},\emph{see also} という英語ですが, +% ここではとりあえず両方とも「→」に変えました。 +% $\Rightarrow$(|$\Rightarrow$|)などでもいいでしょう。 +% +% \begin{macrocode} +\newcommand\seename{\if@english see\else →\fi} +\newcommand\alsoname{\if@english see also\else →\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{脚注} +% +% \begin{macro}{\footnote} +% \begin{macro}{\footnotemark} +% +% 和文の句読点・閉じかっこ類の直後で用いた際に +% 余分なアキが入るのを防ぐため, +% |\inhibitglue| を入れることにします。 +% +% \begin{macrocode} +\let\footnotes@ve=\footnote +\def\footnote{\inhibitglue\footnotes@ve} +\let\footnotemarks@ve=\footnotemark +\def\footnotemark{\inhibitglue\footnotemarks@ve} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@makefnmark} +% +% 脚注番号を付ける命令です。 +% ここでは脚注番号の前に記号 $*$ を付けています。 +% 「注1」の形式にするには |\textasteriskcentered| +% を |注\kern0.1em| にしてください。 +% |\@xfootnotenext| と合わせて, +% もし脚注番号が空なら記号も出力しないようにしてあります。 +% +% [2002-04-09] インプリメントの仕方を変えたため消しました。 +% +% \begin{macrocode} +% \def\@makefnmark{\hbox{\@textsuperscript{\normalfont +% \ifx\@thefnmark\@empty\else +% \textasteriskcentered +% \fi +% \@thefnmark}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thefootnote} +% +% 脚注番号に * 印が付くようにしました。 +% ただし,番号がゼロのときは * 印も脚注番号も付きません。 +% +% [2003-08-15] |\textasteriskcentered| ではフォントによって +% 下がりすぎるので変更しました。 +% +% \begin{macrocode} +\def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} +% \end{macrocode} +% +% 「注1」の形式にするには次のようにしてください。 +% +% \begin{macrocode} +% \def\thefootnote{\ifnum\c@footnote>\z@注\kern0.1\zw\@arabic\c@footnote\fi} +% \end{macrocode} +% +% \end{macro} +% +% \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} +% +% 脚注番号は章ごとにリセットされます。 +% +% \begin{macrocode} +%<book>\@addtoreset{footnote}{chapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotetext} +% +% 脚注で |\verb| が使えるように改変してあります。 +% Jeremy Gibbons, \textit{\TeX\ and TUG NEWS}, +% Vol.~2, No.~4 (1993), p.~9) +% +% \begin{macrocode} +\long\def\@footnotetext{% + \insert\footins\bgroup + \normalfont\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}% + \futurelet\next\fo@t} +\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t + \else \let\next\f@t\fi \next} +\def\f@@t{\bgroup\aftergroup\@foot\let\next} +\def\f@t#1{#1\@foot} +\def\@foot{\@finalstrut\strutbox\color@endgroup\egroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefntext} +% +% 実際に脚注を出力する命令です。 +% |\@makefnmark| は脚注の番号を出力する命令です。 +% ここでは脚注が左端から一定距離に来るようにしてあります。 +% +% \begin{macrocode} +\newcommand\@makefntext[1]{% + \advance\leftskip 3\zw + \parindent 1\zw + \noindent + \llap{\@makefnmark\hskip0.3\zw}#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@xfootnotenext} +% +% 最初の |\footnotetext{...}| は番号が付きません。 +% 著者の所属などを脚注の欄に書くときに便利です。 +% +% すでに |\footnote| を使った後なら |\footnotetext[0]{...}| +% とすれば番号を付けない脚注になります。 +% ただし,この場合は脚注番号がリセットされてしまうので, +% 工夫が必要です。 +% +% [2002-04-09] インプリメントの仕方を変えたため消しました。 +% +% \begin{macrocode} +% \def\@xfootnotenext[#1]{% +% \begingroup +% \ifnum#1>\z@ +% \csname c@\@mpfn\endcsname #1\relax +% \unrestored@protected@xdef\@thefnmark{\thempfn}% +% \else +% \unrestored@protected@xdef\@thefnmark{}% +% \fi +% \endgroup +% \@footnotetext} +% \end{macrocode} +% \end{macro} +% +% \section{いろいろなロゴ} +% +% \LaTeX 関連のロゴを作り直します。 +% +% \begin{macro}{\Shou} +% \begin{macro}{\UeShou} +% +% 文字を小さめに出したり上寄りに小さめに出したりする命令です。 +% +% \begin{macrocode} +\def\Shou#1{\hbox{$\m@th$% + \csname S@\f@size\endcsname + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + #1}} +\def\UeShou#1{{\sbox\z@ T\vbox to\ht0{\Shou{#1}\vss}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\TeX} +% \begin{macro}{\LaTeX} +% +% これらは \texttt{ltlogos.dtx} で定義されていますが, +% TimesやHelveticaでも見栄えがするように若干変更しました。 +% +% [2003-06-12] Palatinoも加えました(要調整)。 +% +% \begin{macrocode} +\def\cmrTeX{% + \ifdim \fontdimen\@ne\font >\z@ + T\kern-.25em\lower.5ex\hbox{E}\kern-.125emX\@ + \else + T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@ + \fi} +\def\cmrLaTeX{% + \ifdim \fontdimen\@ne\font >\z@ + L\kern-.32em\UeShou{A}\kern-.22em\cmrTeX + \else + L\kern-.36em\UeShou{A}\kern-.15em\cmrTeX + \fi} +\def\sfTeX{T\kern-.1em\lower.4ex\hbox{E}\kern-.07emX\@} +\def\sfLaTeX{L\kern-.25em\UeShou{A}\kern-.08em\sfTeX} +\def\ptmTeX{% + \ifdim \fontdimen\@ne\font >\z@ + T\kern-.12em\lower.37ex\hbox{E}\kern-.02emX\@ + \else + T\kern-.07em\lower.37ex\hbox{E}\kern-.05emX\@ + \fi} +\def\ptmLaTeX{% + \ifdim \fontdimen\@ne\font >\z@ + L\kern-.2em\UeShou{A}\kern-.1em\ptmTeX + \else + L\kern-.3em\UeShou{A}\kern-.1em\ptmTeX + \fi} +\def\pncTeX{% + \ifdim \fontdimen\@ne\font >\z@ + T\kern-.2em\lower.5ex\hbox{E}\kern-.08emX\@ + \else + T\kern-.13em\lower.5ex\hbox{E}\kern-.13emX\@ + \fi} +\def\pncLaTeX{% + \ifdim \fontdimen\@ne\font >\z@ + L\kern-.3em\UeShou{A}\kern-.1em\pncTeX + \else + L\kern-.3em\UeShou{A}\kern-.1em\pncTeX + \fi} +\def\pplTeX{% + \ifdim \fontdimen\@ne\font >\z@ + T\kern-.17em\lower.32ex\hbox{E}\kern-.15emX\@ + \else + T\kern-.12em\lower.34ex\hbox{E}\kern-.1emX\@ + \fi} +\def\pplLaTeX{% + \ifdim \fontdimen\@ne\font >\z@ + L\kern-.27em\UeShou{A}\kern-.12em\pplTeX + \else + L\kern-.3em\UeShou{A}\kern-.15em\pplTeX + \fi} +\def\ugmTeX{% + \ifdim \fontdimen\@ne\font >\z@ + T\kern-.1em\lower.32ex\hbox{E}\kern-.06emX\@ + \else + T\kern-.12em\lower.34ex\hbox{E}\kern-.1emX\@ + \fi} +\def\ugmLaTeX{% + \ifdim \fontdimen\@ne\font >\z@ + L\kern-.2em\UeShou{A}\kern-.13em\ugmTeX + \else + L\kern-.3em\UeShou{A}\kern-.13em\ugmTeX + \fi} +\DeclareRobustCommand{\TeX}{% + \def\@tempa{cmr}% + \ifx\f@family\@tempa\cmrTeX + \else + \def\@tempa{ptm}% + \ifx\f@family\@tempa\ptmTeX + \else + \def\@tempa{txr}% + \ifx\f@family\@tempa\ptmTeX + \else + \def\@tempa{pnc}% + \ifx\f@family\@tempa\pncTeX + \else + \def\@tempa{ppl}% + \ifx\f@family\@tempa\pplTeX + \else + \def\@tempa{ugm}% + \ifx\f@family\@tempa\ugmTeX + \else\sfTeX + \fi + \fi + \fi + \fi + \fi + \fi} + +\DeclareRobustCommand{\LaTeX}{% + \def\@tempa{cmr}% + \ifx\f@family\@tempa\cmrLaTeX + \else + \def\@tempa{ptm}% + \ifx\f@family\@tempa\ptmLaTeX + \else + \def\@tempa{txr}% + \ifx\f@family\@tempa\ptmLaTeX + \else + \def\@tempa{pnc}% + \ifx\f@family\@tempa\pncLaTeX + \else + \def\@tempa{ppl}% + \ifx\f@family\@tempa\pplLaTeX + \else + \def\@tempa{ugm}% + \ifx\f@family\@tempa\ugmLaTeX + \else\sfLaTeX + \fi + \fi + \fi + \fi + \fi + \fi} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% +% \begin{macro}{\LaTeXe} +% +% |\LaTeXe| コマンドの |\mbox{\m@th ...| で始まる新しい定義では +% 直後の和文との間に |xkanjiskip| が入りません。また, +% |mathptmx| パッケージなどと併用すると,最後の $\varepsilon$ が +% 下がりすぎてしまいます。そのため,ちょっと手を加えました。 +% +% \begin{macrocode} +\DeclareRobustCommand{\LaTeXe}{$\mbox{% + \if b\expandafter\@car\f@series\@nil\boldmath\fi + \LaTeX\kern.15em2\raisebox{-.37ex}{$\textstyle\varepsilon$}}$} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pTeX} +% \begin{macro}{\pLaTeX} +% \begin{macro}{\pLaTeXe} +% +% \pTeX ,\pLaTeXe のロゴを出す命令です。 +% +% \begin{macrocode} +\def\pTeX{p\kern-.05em\TeX} +\def\pLaTeX{p\LaTeX} +\def\pLaTeXe{p\LaTeXe} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\AmSTeX} +% +% \texttt{amstex.sty} で定義されています。 +% +% \begin{macrocode} +\def\AmSTeX{\protect\AmS-\protect\TeX{}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\BibTeX} +% \begin{macro}{\SliTeX} +% +% これらは \texttt{doc.dtx} から取ったものです。 +% ただし,|\BibTeX| だけはちょっと修正しました。 +% +% \begin{macrocode} +% \@ifundefined{BibTeX} +% {\def\BibTeX{{\rmfamily B\kern-.05em% +% \textsc{i\kern-.025em b}\kern-.08em% +% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} +\DeclareRobustCommand{\BibTeX}{B\kern-.05em\Shou{I\kern-.025em B}% + \ifx\f@family\cmr\kern-.08em\else\kern-.15em\fi\TeX} +\DeclareRobustCommand{\SliTeX}{% + S\kern-.06emL\kern-.18em\UeShou{I}\kern -.03em\TeX} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{初期設定} +% +% \paragraph{いろいろな語} +% +% \begin{macro}{\prepartname} +% \begin{macro}{\postpartname} +% \begin{macro}{\prechaptername} +% \begin{macro}{\postchaptername} +% \begin{macro}{\presectionname} +% \begin{macro}{\postsectionname} +% \begin{macrocode} +\newcommand{\prepartname}{\if@english Part~\else 第\fi} +\newcommand{\postpartname}{\if@english\else 部\fi} +%<book>\newcommand{\prechaptername}{\if@english Chapter~\else 第\fi} +%<book>\newcommand{\postchaptername}{\if@english\else 章\fi} +\newcommand{\presectionname}{}% 第 +\newcommand{\postsectionname}{}% 節 +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\contentsname} +% \begin{macro}{\listfigurename} +% \begin{macro}{\listtablename} +% \begin{macrocode} +\newcommand{\contentsname}{\if@english Contents\else 目次\fi} +\newcommand{\listfigurename}{\if@english List of Figures\else 図目次\fi} +\newcommand{\listtablename}{\if@english List of Tables\else 表目次\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refname} +% \begin{macro}{\bibname} +% \begin{macro}{\indexname} +% \begin{macrocode} +\newcommand{\refname}{\if@english References\else 参考文献\fi} +\newcommand{\bibname}{\if@english Bibliography\else 参考文献\fi} +\newcommand{\indexname}{\if@english Index\else 索引\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% \begin{macrocode} +%<!jspf>\newcommand{\figurename}{\if@english Fig.~\else 図\fi} +%<jspf>\newcommand{\figurename}{Fig.~} +%<!jspf>\newcommand{\tablename}{\if@english Table.~\else 表\fi} +%<jspf>\newcommand{\tablename}{Table~} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\appendixname} +% \begin{macro}{\abstractname} +% \begin{macrocode} +\newcommand{\appendixname}{\if@english Appendix~\else 付録\fi} +%<!book>\newcommand{\abstractname}{\if@english Abstract\else 概要\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \paragraph{今日の日付} +% +% \LaTeX で処理した日付を出力します。 +% |ltjarticle| などと違って,標準を西暦にし,余分な空白が入らないように改良しました。 +% 和暦にするには |\Wareki| と書いてください。 +% +% \begin{macro}{\today} +% \begin{macrocode} +\newif\ifSeireki \Seirekitrue +\def\Seireki{\Seirekitrue} +\def\Wareki{\Seirekifalse} +\newcount\heisei \heisei\year \advance\heisei-1988\relax +\def\today{% + \if@english + \ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year + \else + \ifSeireki + \number\year 年 + \number\month 月 + \number\day 日 + \else + 平成\number\heisei 年 + \number\month 月 + \number\day 日 + \fi + \fi} +% \end{macrocode} +% \end{macro} +% +% \paragraph{ハイフネーション例外} +% +% \TeX のハイフネーションルールの補足です(ペンディング:eng-lish) +% +% \begin{macrocode} +\hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} +% \end{macrocode} +% +% \paragraph{ページ設定} +% +% ページ設定の初期化です。 +% +% \begin{macrocode} +%<article|kiyou>\if@slide \pagestyle{empty} \else \pagestyle{plain} \fi +%<book>\if@report \pagestyle{plain} \else \pagestyle{headings} \fi +%<jspf>\pagestyle{headings} +\pagenumbering{arabic} +\if@twocolumn + \twocolumn + \sloppy + \flushbottom +\else + \onecolumn + \raggedbottom +\fi +\if@slide + \renewcommand\kanjifamilydefault{\gtdefault} + \renewcommand\familydefault{\sfdefault} + \raggedright + \ltjsetparameter{xkanjiskip={0.1em}}\relax +\fi +% \end{macrocode} +% +% 以上です。 +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.ins b/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.ins new file mode 100644 index 00000000000..f8c000d0837 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.ins @@ -0,0 +1,12 @@ +% +% ltjsclasses.ins +% + +\input docstrip.tex +\keepsilent +\generateFile{ltjsarticle.cls}{f}{\from{ltjsclasses.dtx}{article}} +\generateFile{ltjsbook.cls}{f}{\from{ltjsclasses.dtx}{book}} +\generateFile{ltjspf.cls}{f}{\from{ltjsclasses.dtx}{jspf}} +\generateFile{ltjskiyou.cls}{f}{\from{ltjsclasses.dtx}{kiyou}} + +\endbatchfile diff --git a/Master/texmf-dist/source/luatex/luatexja/luatexja-kinsoku_make.tex b/Master/texmf-dist/source/luatex/luatexja/luatexja-kinsoku_make.tex new file mode 100644 index 00000000000..a19c90487cc --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/luatexja-kinsoku_make.tex @@ -0,0 +1,17 @@ +\parindent0pt +\output={\shipout\box255} +\tt\catcode`\_=12 +\def\{{\char'173 }\def\}{\char'175} +\toks0={\%} +\def\postbreakpenalty{\out\toks0={\string\setpostbreakpenalty\{}\count600 }% +\def\prebreakpenalty{\out\toks0={\string\setprebreakpenalty\{}\count600 }% +\def\inhibitxspcode{\out\toks0={\string\setinhibitxspcode\{}\count600 }% +\def\xspcode{\out\toks0={\string\setxspcode\{}\count600 }% +\catcode`\=13 +\def={\count601 }%\ +\def\out{\par\the\toks0 \the\count600\}\{\the\count601\}} +\input ukinsoku +\end + +% euptex pte-kinsoku-make ; dvitype -output-level=1 pte-kinsoku-make +% | grep "\[" | sed "s/\[\(.*\)\]/\1/" > pte-kinsoku.tex
\ No newline at end of file diff --git a/Master/texmf-dist/source/luatex/luatexja/mk-rmlgbm-data.tex b/Master/texmf-dist/source/luatex/luatexja/mk-rmlgbm-data.tex new file mode 100644 index 00000000000..d3b7cddf44b --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/mk-rmlgbm-data.tex @@ -0,0 +1,80 @@ +%#! lualatex +\documentclass{article} + +\usepackage{luaotfload} +\usepackage{luacode} + +\begin{luacode} +function mkrmlgbm(nonfilename,opfilename) + local fontdata = containers.read(fonts.otf.cache, nonfilename) + + -- from fonts.otf.otf_to_tfm() + local tfmdata + fontdata.shared = fontdata.shared or { + featuredata = { }, + anchorhash = { }, + initialized = false, + } + tfmdata = fonts.otf.copy_to_tfm(fontdata) + tfmdata.unique = tfmdata.unique or { } + tfmdata.shared = tfmdata.shared or { } -- combine + local shared = tfmdata.shared + shared.otfdata = fontdata + shared.features = features -- default + shared.dynamics = { } + shared.processes = { } + tfmdata.luatex = fontdata.luatex + tfmdata.indices = fontdata.luatex.indices + tfmdata.unicodes = fontdata.luatex.unicodes + tfmdata.marks = fontdata.luatex.marks + tfmdata.originals = fontdata.luatex.originals + tfmdata.changed = { } + tfmdata.has_italic = fontdata.metadata.has_italic + if not tfmdata.language then tfmdata.language = 'dflt' end + if not tfmdata.script then tfmdata.script = 'dflt' end + _, shared.features = fonts.otf.set_features(tfmdata,fonts.define.check(features,fonts.otf.features.default)) + + -- from fonts.otf.read_from_open_type() + tfmdata = fonts.tfm.scale(tfmdata, 655360) + + -- delete extra data + fontdata.subfonts = nil + fontdata.metadata = {} + fontdata.pfminfo = {} + fontdata.luatex.filename = 'dummy.otf' + fontdata.luatex.foundfilename = nil + fontdata.size = nil + fontdata.time = nil + fontdata.glyphs = nil + fontdata.luatex.indices = nil + fontdata.luatex.unicodes = nil + fontdata.luatex.originals = nil + fontdata.luatex.tounicode = nil + tfmdata.indices = nil + tfmdata.descriptions = {} + + tfmdata.psname = '' + tfmdata.filename = '' + tfmdata.fontname = '' + tfmdata.fullname = '' + tfmdata.name = '' + tfmdata.embedding = 'no' + tfmdata.cache = 'yes' + + for k, v in pairs(tfmdata.characters) do + tfmdata.characters[k].height = nil + end + + -- for luaotfload + fontdata.pfminfo.os2_capheight = 0 + + table.tofile(opfilename, tfmdata, 'return', false, true, false) +end +mkrmlgbm('AdobeMingStd-Light', 'luatexja-cid-std-adobe-cns1.lua') +mkrmlgbm('AdobeSongStd-Light', 'luatexja-cid-std-adobe-gb1.lua') +mkrmlgbm('KozMinPr6N-Regular', 'luatexja-cid-std-adobe-japan1.lua') +mkrmlgbm('AdobeMyungjoStd-Medium', 'luatexja-cid-std-adobe-korea1.lua') +\end{luacode} + +\begin{document} +\end{document} diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/Blocks.txt b/Master/texmf-dist/source/luatex/luatexja/tool/Blocks.txt new file mode 100644 index 00000000000..50df2e1d311 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/Blocks.txt @@ -0,0 +1,240 @@ +# Blocks-6.0.0.txt +# Date: 2010-06-04, 11:12:00 PDT [KW] +# +# Unicode Character Database +# Copyright (c) 1991-2010 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ +# +# Note: The casing of block names is not normative. +# For example, "Basic Latin" and "BASIC LATIN" are equivalent. +# +# Format: +# Start Code..End Code; Block Name + +# ================================================ + +# Note: When comparing block names, casing, whitespace, hyphens, +# and underbars are ignored. +# For example, "Latin Extended-A" and "latin extended a" are equivalent. +# For more information on the comparison of property values, +# see UAX #44: http://www.unicode.org/reports/tr44/ +# +# All code points not explicitly listed for Block +# have the value No_Block. + +# Property: Block +# +# @missing: 0000..10FFFF; No_Block + +0000..007F; Basic Latin +0080..00FF; Latin-1 Supplement +0100..017F; Latin Extended-A +0180..024F; Latin Extended-B +0250..02AF; IPA Extensions +02B0..02FF; Spacing Modifier Letters +0300..036F; Combining Diacritical Marks +0370..03FF; Greek and Coptic +0400..04FF; Cyrillic +0500..052F; Cyrillic Supplement +0530..058F; Armenian +0590..05FF; Hebrew +0600..06FF; Arabic +0700..074F; Syriac +0750..077F; Arabic Supplement +0780..07BF; Thaana +07C0..07FF; NKo +0800..083F; Samaritan +0840..085F; Mandaic +0900..097F; Devanagari +0980..09FF; Bengali +0A00..0A7F; Gurmukhi +0A80..0AFF; Gujarati +0B00..0B7F; Oriya +0B80..0BFF; Tamil +0C00..0C7F; Telugu +0C80..0CFF; Kannada +0D00..0D7F; Malayalam +0D80..0DFF; Sinhala +0E00..0E7F; Thai +0E80..0EFF; Lao +0F00..0FFF; Tibetan +1000..109F; Myanmar +10A0..10FF; Georgian +1100..11FF; Hangul Jamo +1200..137F; Ethiopic +1380..139F; Ethiopic Supplement +13A0..13FF; Cherokee +1400..167F; Unified Canadian Aboriginal Syllabics +1680..169F; Ogham +16A0..16FF; Runic +1700..171F; Tagalog +1720..173F; Hanunoo +1740..175F; Buhid +1760..177F; Tagbanwa +1780..17FF; Khmer +1800..18AF; Mongolian +18B0..18FF; Unified Canadian Aboriginal Syllabics Extended +1900..194F; Limbu +1950..197F; Tai Le +1980..19DF; New Tai Lue +19E0..19FF; Khmer Symbols +1A00..1A1F; Buginese +1A20..1AAF; Tai Tham +1B00..1B7F; Balinese +1B80..1BBF; Sundanese +1BC0..1BFF; Batak +1C00..1C4F; Lepcha +1C50..1C7F; Ol Chiki +1CD0..1CFF; Vedic Extensions +1D00..1D7F; Phonetic Extensions +1D80..1DBF; Phonetic Extensions Supplement +1DC0..1DFF; Combining Diacritical Marks Supplement +1E00..1EFF; Latin Extended Additional +1F00..1FFF; Greek Extended +2000..206F; General Punctuation +2070..209F; Superscripts and Subscripts +20A0..20CF; Currency Symbols +20D0..20FF; Combining Diacritical Marks for Symbols +2100..214F; Letterlike Symbols +2150..218F; Number Forms +2190..21FF; Arrows +2200..22FF; Mathematical Operators +2300..23FF; Miscellaneous Technical +2400..243F; Control Pictures +2440..245F; Optical Character Recognition +2460..24FF; Enclosed Alphanumerics +2500..257F; Box Drawing +2580..259F; Block Elements +25A0..25FF; Geometric Shapes +2600..26FF; Miscellaneous Symbols +2700..27BF; Dingbats +27C0..27EF; Miscellaneous Mathematical Symbols-A +27F0..27FF; Supplemental Arrows-A +2800..28FF; Braille Patterns +2900..297F; Supplemental Arrows-B +2980..29FF; Miscellaneous Mathematical Symbols-B +2A00..2AFF; Supplemental Mathematical Operators +2B00..2BFF; Miscellaneous Symbols and Arrows +2C00..2C5F; Glagolitic +2C60..2C7F; Latin Extended-C +2C80..2CFF; Coptic +2D00..2D2F; Georgian Supplement +2D30..2D7F; Tifinagh +2D80..2DDF; Ethiopic Extended +2DE0..2DFF; Cyrillic Extended-A +2E00..2E7F; Supplemental Punctuation +2E80..2EFF; CJK Radicals Supplement +2F00..2FDF; Kangxi Radicals +2FF0..2FFF; Ideographic Description Characters +3000..303F; CJK Symbols and Punctuation +3040..309F; Hiragana +30A0..30FF; Katakana +3100..312F; Bopomofo +3130..318F; Hangul Compatibility Jamo +3190..319F; Kanbun +31A0..31BF; Bopomofo Extended +31C0..31EF; CJK Strokes +31F0..31FF; Katakana Phonetic Extensions +3200..32FF; Enclosed CJK Letters and Months +3300..33FF; CJK Compatibility +3400..4DBF; CJK Unified Ideographs Extension A +4DC0..4DFF; Yijing Hexagram Symbols +4E00..9FFF; CJK Unified Ideographs +A000..A48F; Yi Syllables +A490..A4CF; Yi Radicals +A4D0..A4FF; Lisu +A500..A63F; Vai +A640..A69F; Cyrillic Extended-B +A6A0..A6FF; Bamum +A700..A71F; Modifier Tone Letters +A720..A7FF; Latin Extended-D +A800..A82F; Syloti Nagri +A830..A83F; Common Indic Number Forms +A840..A87F; Phags-pa +A880..A8DF; Saurashtra +A8E0..A8FF; Devanagari Extended +A900..A92F; Kayah Li +A930..A95F; Rejang +A960..A97F; Hangul Jamo Extended-A +A980..A9DF; Javanese +AA00..AA5F; Cham +AA60..AA7F; Myanmar Extended-A +AA80..AADF; Tai Viet +AB00..AB2F; Ethiopic Extended-A +ABC0..ABFF; Meetei Mayek +AC00..D7AF; Hangul Syllables +D7B0..D7FF; Hangul Jamo Extended-B +D800..DB7F; High Surrogates +DB80..DBFF; High Private Use Surrogates +DC00..DFFF; Low Surrogates +E000..F8FF; Private Use Area +F900..FAFF; CJK Compatibility Ideographs +FB00..FB4F; Alphabetic Presentation Forms +FB50..FDFF; Arabic Presentation Forms-A +FE00..FE0F; Variation Selectors +FE10..FE1F; Vertical Forms +FE20..FE2F; Combining Half Marks +FE30..FE4F; CJK Compatibility Forms +FE50..FE6F; Small Form Variants +FE70..FEFF; Arabic Presentation Forms-B +FF00..FFEF; Halfwidth and Fullwidth Forms +FFF0..FFFF; Specials +10000..1007F; Linear B Syllabary +10080..100FF; Linear B Ideograms +10100..1013F; Aegean Numbers +10140..1018F; Ancient Greek Numbers +10190..101CF; Ancient Symbols +101D0..101FF; Phaistos Disc +10280..1029F; Lycian +102A0..102DF; Carian +10300..1032F; Old Italic +10330..1034F; Gothic +10380..1039F; Ugaritic +103A0..103DF; Old Persian +10400..1044F; Deseret +10450..1047F; Shavian +10480..104AF; Osmanya +10800..1083F; Cypriot Syllabary +10840..1085F; Imperial Aramaic +10900..1091F; Phoenician +10920..1093F; Lydian +10A00..10A5F; Kharoshthi +10A60..10A7F; Old South Arabian +10B00..10B3F; Avestan +10B40..10B5F; Inscriptional Parthian +10B60..10B7F; Inscriptional Pahlavi +10C00..10C4F; Old Turkic +10E60..10E7F; Rumi Numeral Symbols +11000..1107F; Brahmi +11080..110CF; Kaithi +12000..123FF; Cuneiform +12400..1247F; Cuneiform Numbers and Punctuation +13000..1342F; Egyptian Hieroglyphs +16800..16A3F; Bamum Supplement +1B000..1B0FF; Kana Supplement +1D000..1D0FF; Byzantine Musical Symbols +1D100..1D1FF; Musical Symbols +1D200..1D24F; Ancient Greek Musical Notation +1D300..1D35F; Tai Xuan Jing Symbols +1D360..1D37F; Counting Rod Numerals +1D400..1D7FF; Mathematical Alphanumeric Symbols +1F000..1F02F; Mahjong Tiles +1F030..1F09F; Domino Tiles +1F0A0..1F0FF; Playing Cards +1F100..1F1FF; Enclosed Alphanumeric Supplement +1F200..1F2FF; Enclosed Ideographic Supplement +1F300..1F5FF; Miscellaneous Symbols And Pictographs +1F600..1F64F; Emoticons +1F680..1F6FF; Transport And Map Symbols +1F700..1F77F; Alchemical Symbols +20000..2A6DF; CJK Unified Ideographs Extension B +2A700..2B73F; CJK Unified Ideographs Extension C +2B740..2B81F; CJK Unified Ideographs Extension D +2F800..2FA1F; CJK Compatibility Ideographs Supplement +E0000..E007F; Tags +E0100..E01EF; Variation Selectors Supplement +F0000..FFFFF; Supplementary Private Use Area-A +100000..10FFFF; Supplementary Private Use Area-B + +# EOF
\ No newline at end of file diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/blocks2defcharrange.rb b/Master/texmf-dist/source/luatex/luatexja/tool/blocks2defcharrange.rb new file mode 100644 index 00000000000..186d0ba94d7 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/blocks2defcharrange.rb @@ -0,0 +1,25 @@ +#! /usr/bin/ruby + +# The following script converts Blocks.txt +# (http://unicode.org/Public/UNIDATA/Blocks.txt) +# to the character range definitions of LuaTeX-ja. + +# USAGE: ruby blocks2defcharrange.rb > unicodeBlocks.tex + +count = 1 +open("Blocks.txt", "r").each_line {|line| + if line =~ /#/ + line = $` + end + if line =~ /^\s*$/ + next + end + if line =~ /([0-9a-f]+)\.\.([0-9a-f]+); (.*)/i + bcharcode = $1 + echarcode = $2 + blockname = $3 + print "\\defcharrange{", count + print "}{\"", bcharcode, "-\"", echarcode, "} % ", blockname, "\n" + count += 1 + end +} diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb b/Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb new file mode 100644 index 00000000000..21f6e7728ce --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb @@ -0,0 +1,51 @@ +#! /usr/bin/ruby +# -*- coding: utf-8 -*- + +# The following script converts a set of chars except "\s", as Ruby defines, +# to the character range definition of LuaTeX-ja. + +# USAGE: ruby __FILE__ ifile rangeNo [> ofile] + +# Example (in Japanese) +# 教育漢字リスト (http://www.aozora.gr.jp/kanji_table/kyouiku_list.zip) +# に対して適用したいとき. +# 1. kyoikukanji.txt に対して,コメント部分の先頭に # をつける編集を加える; +# 2. ruby chars2defcharrange.rb kyoikukanji.txt 210 > kyoikukanjiChars.tex +# を実行する. + +def print_usage() + print "USAGE: ruby ", __FILE__, "ifile rangeNo [> ofile]\n" +end + +if __FILE__ == $0 + # コマンドライン引数の処理 + if ARGV.length < 2 + print_usage() + exit + end + ifile = ARGV[0] + rangeNo = ARGV[1] + + # 対象文字列の作成 + string = "" + open(ifile, "r").each_line{|line| + if line =~ /#/ + line = $` + end + line.gsub!(/\s/){} + string += line + } + + # 10 進 unicode code point 配列に変換 + decs = string.unpack("U*") + + # print + print "\defcharrange{", rangeNo, "}{" + decs.each_with_index{|code, index| + if index != 0 + print "," + end + print "\"", code.to_s(16) + } + print "}\n" +end diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/jfm-readable.rb b/Master/texmf-dist/source/luatex/luatexja/tool/jfm-readable.rb new file mode 100644 index 00000000000..d60ad2efa59 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/jfm-readable.rb @@ -0,0 +1,25 @@ +#! /usr/bin/ruby +# -*- coding: utf-8 -*- + +# The following script converts Unicode codepoints as 0x???? to real characters. + +# USAGE: ruby __FILE__ ifile [> ofile] + +def print_usage() + print "USAGE: ruby ", __FILE__, "ifile [> ofile]\n" +end + +if __FILE__ == $0 + # コマンドライン引数の処理 + if ARGV.length < 1 + print_usage() + exit + end + ifile = ARGV[0] + + print "-- -*- coding: utf-8 -*-\n" + open(ifile, "r").each_line{|line| + line.gsub!(/0x[0-9a-fA-F]*/){|s| s.to_s + "(" + [s.to_i(0)].pack("U*") + ")"} + print line + } +end diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/jisx0208table.tex b/Master/texmf-dist/source/luatex/luatexja/tool/jisx0208table.tex new file mode 100644 index 00000000000..f3de6b982ec --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/jisx0208table.tex @@ -0,0 +1,112 @@ +%#! euptex +% cat jisx0208table.log | tr -s '\n' > ../src/luatexja/jisx0208.lua +% の後,少々修正 +\catcode`\!=1 +\catcode`\?=2 + +\catcode`@11 +\def\@firstoftwo#1#2{#1} +\def\@secondoftwo#1#2{#2} +\def\ifnumcomp#1#2#3{% + \ifnum\numexpr#1\relax#2\numexpr#3\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\def\truncdiv#1#2{% + \ifnumcomp{#1}<{(#1)/(#2)*(#2)}{% + \numexpr(#1)/(#2)-1% + }{% + \numexpr(#1)/(#2)% + }% +} +\def\hex#1{% + \ifnumcomp{#1}<0{}{\hn@i{#1}{}}% +} +\def\hn@i#1#2{% + \ifnumcomp{#1}<{16} + {% + \hn@digit{#1}#2% + }{% + \expandafter\hn@ii\expandafter{% + \the\numexpr\truncdiv{#1}{16}% + }{#1}{#2}% + }% +} +\def\hn@ii#1#2#3{% + \expandafter\hn@i\expandafter{% + \number\numexpr#1\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter{% + \hn@digit{(#2)-16*(#1)}#3}% +} +\begingroup +\catcode`012\catcode`112\catcode`212\catcode`312\catcode`412 +\catcode`512\catcode`612\catcode`712\catcode`812\catcode`912 +\catcode`A12\catcode`B12\catcode`C12\catcode`D12\catcode`E12 +\catcode`F12 +\gdef\hn@digit#1{% + \ifcase\numexpr#1\relax 0% + \or \expandafter 1% + \or \expandafter 2% + \or \expandafter 3% + \or \expandafter 4% + \or \expandafter 5% + \or \expandafter 6% + \or \expandafter 7% + \or \expandafter 8% + \or \expandafter 9% + \or \expandafter A% + \or \expandafter B% + \or \expandafter C% + \or \expandafter D% + \or \expandafter E% + \or \expandafter F% + \fi +} +\endgroup + + +\catcode`\{=12 +\catcode`\}=12 +\def\folio!? + +\newcount\ku +\newcount\ten +\newcount\tmp +\newcount\tmpa +\newcount\tmpb +\font\tt=cmtt10 at 10pt\tt\baselineskip=12pt\parindent=0pt\parskip=0pt + +\catcode`\_=12 +\message!^^Jluatexbase.provides_module({? +\message!^^J name = 'luatexja.jisx0208'})? +\message!^^Jmodule('luatexja.jisx0208', package.seeall)? +\message!^^Jtable_jisx0208_uptex = {? + +\ku=1 +\loop + \tmp=\ku \multiply\tmp"100 \advance\tmp"2020 %" + ! \ten=1 + \loop + \advance\tmp1 + \tmpa=\jis\tmp \tmpb=\tmp\advance\tmpb-"2020%" + \ifnum\tmpa=0\else + \ifnum\tmpa>256 + \kansujichar1=\tmpa + \message!^^J [0x\hex\tmpb] = 0x\hex\tmpa, --(\kansuji1)? + \else + \message!^^J [0x\hex\tmpb] = 0x\hex\tmpa, ? + \fi + \fi + \advance\ten 1 + \ifnum\ten<95\relax\repeat + ? + \advance\ku 1 +\ifnum\ku<95\relax\repeat + +\message!^^J}? + +\end diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/kyoikukanji.txt b/Master/texmf-dist/source/luatex/luatexja/tool/kyoikukanji.txt new file mode 100644 index 00000000000..76c48a6fd7d --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/kyoikukanji.txt @@ -0,0 +1,19 @@ +#教育漢字・学年別漢字配当表 + +#★第一学年★(80字) +一 右 雨 円 王 音 下 火 花 貝 学 気 九 休 玉 金 空 月 犬 見 五 口 校 左 三 山 子 四 糸 字 耳 七 車 手 十 出 女 小 上 森 人 水 正 生 青 夕 石 赤 千 川 先 早 草 足 村 大 男 竹 中 虫 町 天 田 土 二 日 入 年 白 八 百 文 木 本 名 目 立 力 林 六 + +#★第二学年★(160字) +引 羽 雲 園 遠 何 科 夏 家 歌 画 回 会 海 絵 外 角 楽 活 間 丸 岩 顔 汽 記 帰 弓 牛 魚 京 強 教 近 兄 形 計 元 言 原 戸 古 午 後 語 工 公 広 交 光 考 行 高 黄 合 谷 国 黒 今 才 細 作 算 止 市 矢 姉 思 紙 寺 自 時 室 社 弱 首 秋 週 春 書 少 場 色 食 心 新 親 図 数 西 声 星 晴 切 雪 船 線 前 組 走 多 太 体 台 地 池 知 茶 昼 長 鳥 朝 直 通 弟 店 点 電 刀 冬 当 東 答 頭 同 道 読 内 南 肉 馬 売 買 麦 半 番 父 風 分 聞 米 歩 母 方 北 毎 妹 万 明 鳴 毛 門 夜 野 友 用 曜 来 里 理 話 + +#★第三学年★(200字) +悪 安 暗 医 委 意 育 員 院 飲 運 泳 駅 央 横 屋 温 化 荷 界 開 階 寒 感 漢 館 岸 起 期 客 究 急 級 宮 球 去 橋 業 曲 局 銀 区 苦 具 君 係 軽 血 決 研 県 庫 湖 向 幸 港 号 根 祭 皿 仕 死 使 始 指 歯 詩 次 事 持 式 実 写 者 主 守 取 酒 受 州 拾 終 習 集 住 重 宿 所 暑 助 昭 消 商 章 勝 乗 植 申 身 神 真 深 進 世 整 昔 全 相 送 想 息 速 族 他 打 対 待 代 第 題 炭 短 談 着 注 柱 丁 帳 調 追 定 庭 笛 鉄 転 都 度 投 豆 島 湯 登 等 動 童 農 波 配 倍 箱 畑 発 反 坂 板 皮 悲 美 鼻 筆 氷 表 秒 病 品 負 部 服 福 物 平 返 勉 放 味 命 面 問 役 薬 由 油 有 遊 予 羊 洋 葉 陽 様 落 流 旅 両 緑 礼 列 練 路 和 + +#★第四学年★(200字) +愛 案 以 衣 位 囲 胃 印 英 栄 塩 億 加 果 貨 課 芽 改 械 害 街 各 覚 完 官 管 関 観 願 希 季 紀 喜 旗 器 機 議 求 泣 救 給 挙 漁 共 協 鏡 競 極 訓 軍 郡 径 型 景 芸 欠 結 建 健 験 固 功 好 候 航 康 告 差 菜 最 材 昨 札 刷 殺 察 参 産 散 残 士 氏 史 司 試 児 治 辞 失 借 種 周 祝 順 初 松 笑 唱 焼 象 照 賞 臣 信 成 省 清 静 席 積 折 節 説 浅 戦 選 然 争 倉 巣 束 側 続 卒 孫 帯 隊 達 単 置 仲 貯 兆 腸 低 底 停 的 典 伝 徒 努 灯 堂 働 特 得 毒 熱 念 敗 梅 博 飯 飛 費 必 票 標 不 夫 付 府 副 粉 兵 別 辺 変 便 包 法 望 牧 末 満 未 脈 民 無 約 勇 要 養 浴 利 陸 良 料 量 輪 類 令 冷 例 歴 連 老 労 録 + +#★第五学年★(185字) +圧 移 因 永 営 衛 易 益 液 演 応 往 桜 恩 可 仮 価 河 過 賀 快 解 格 確 額 刊 幹 慣 眼 基 寄 規 技 義 逆 久 旧 居 許 境 均 禁 句 群 経 潔 件 券 険 検 限 現 減 故 個 護 効 厚 耕 鉱 構 興 講 混 査 再 災 妻 採 際 在 財 罪 雑 酸 賛 支 志 枝 師 資 飼 示 似 識 質 舎 謝 授 修 述 術 準 序 招 承 証 条 状 常 情 織 職 制 性 政 勢 精 製 税 責 績 接 設 舌 絶 銭 祖 素 総 造 像 増 則 測 属 率 損 退 貸 態 団 断 築 張 提 程 適 敵 統 銅 導 徳 独 任 燃 能 破 犯 判 版 比 肥 非 備 俵 評 貧 布 婦 富 武 復 複 仏 編 弁 保 墓 報 豊 防 貿 暴 務 夢 迷 綿 輸 余 預 容 略 留 領 + +#★第六学年★(181字) +異 遺 域 宇 映 延 沿 我 灰 拡 革 閣 割 株 干 巻 看 簡 危 机 揮 貴 疑 吸 供 胸 郷 勤 筋 系 敬 警 劇 激 穴 絹 権 憲 源 厳 己 呼 誤 后 孝 皇 紅 降 鋼 刻 穀 骨 困 砂 座 済 裁 策 冊 蚕 至 私 姿 視 詞 誌 磁 射 捨 尺 若 樹 収 宗 就 衆 従 縦 縮 熟 純 処 署 諸 除 将 傷 障 城 蒸 針 仁 垂 推 寸 盛 聖 誠 宣 専 泉 洗 染 善 奏 窓 創 装 層 操 蔵 臓 存 尊 宅 担 探 誕 段 暖 値 宙 忠 著 庁 頂 潮 賃 痛 展 討 党 糖 届 難 乳 認 納 脳 派 拝 背 肺 俳 班 晩 否 批 秘 腹 奮 並 陛 閉 片 補 暮 宝 訪 亡 忘 棒 枚 幕 密 盟 模 訳 郵 優 幼 欲 翌 乱 卵 覧 裏 律 臨 朗 論 diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/kyoikukanjiChars.tex b/Master/texmf-dist/source/luatex/luatexja/tool/kyoikukanjiChars.tex new file mode 100644 index 00000000000..82ff1ebfbee --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/kyoikukanjiChars.tex @@ -0,0 +1 @@ +defcharrange{210}{"4e00,"53f3,"96e8,"5186,"738b,"97f3,"4e0b,"706b,"82b1,"8c9d,"5b66,"6c17,"4e5d,"4f11,"7389,"91d1,"7a7a,"6708,"72ac,"898b,"4e94,"53e3,"6821,"5de6,"4e09,"5c71,"5b50,"56db,"7cf8,"5b57,"8033,"4e03,"8eca,"624b,"5341,"51fa,"5973,"5c0f,"4e0a,"68ee,"4eba,"6c34,"6b63,"751f,"9752,"5915,"77f3,"8d64,"5343,"5ddd,"5148,"65e9,"8349,"8db3,"6751,"5927,"7537,"7af9,"4e2d,"866b,"753a,"5929,"7530,"571f,"4e8c,"65e5,"5165,"5e74,"767d,"516b,"767e,"6587,"6728,"672c,"540d,"76ee,"7acb,"529b,"6797,"516d,"5f15,"7fbd,"96f2,"5712,"9060,"4f55,"79d1,"590f,"5bb6,"6b4c,"753b,"56de,"4f1a,"6d77,"7d75,"5916,"89d2,"697d,"6d3b,"9593,"4e38,"5ca9,"9854,"6c7d,"8a18,"5e30,"5f13,"725b,"9b5a,"4eac,"5f37,"6559,"8fd1,"5144,"5f62,"8a08,"5143,"8a00,"539f,"6238,"53e4,"5348,"5f8c,"8a9e,"5de5,"516c,"5e83,"4ea4,"5149,"8003,"884c,"9ad8,"9ec4,"5408,"8c37,"56fd,"9ed2,"4eca,"624d,"7d30,"4f5c,"7b97,"6b62,"5e02,"77e2,"59c9,"601d,"7d19,"5bfa,"81ea,"6642,"5ba4,"793e,"5f31,"9996,"79cb,"9031,"6625,"66f8,"5c11,"5834,"8272,"98df,"5fc3,"65b0,"89aa,"56f3,"6570,"897f,"58f0,"661f,"6674,"5207,"96ea,"8239,"7dda,"524d,"7d44,"8d70,"591a,"592a,"4f53,"53f0,"5730,"6c60,"77e5,"8336,"663c,"9577,"9ce5,"671d,"76f4,"901a,"5f1f,"5e97,"70b9,"96fb,"5200,"51ac,"5f53,"6771,"7b54,"982d,"540c,"9053,"8aad,"5185,"5357,"8089,"99ac,"58f2,"8cb7,"9ea6,"534a,"756a,"7236,"98a8,"5206,"805e,"7c73,"6b69,"6bcd,"65b9,"5317,"6bce,"59b9,"4e07,"660e,"9cf4,"6bdb,"9580,"591c,"91ce,"53cb,"7528,"66dc,"6765,"91cc,"7406,"8a71,"60aa,"5b89,"6697,"533b,"59d4,"610f,"80b2,"54e1,"9662,"98f2,"904b,"6cf3,"99c5,"592e,"6a2a,"5c4b,"6e29,"5316,"8377,"754c,"958b,"968e,"5bd2,"611f,"6f22,"9928,"5cb8,"8d77,"671f,"5ba2,"7a76,"6025,"7d1a,"5bae,"7403,"53bb,"6a4b,"696d,"66f2,"5c40,"9280,"533a,"82e6,"5177,"541b,"4fc2,"8efd,"8840,"6c7a,"7814,"770c,"5eab,"6e56,"5411,"5e78,"6e2f,"53f7,"6839,"796d,"76bf,"4ed5,"6b7b,"4f7f,"59cb,"6307,"6b6f,"8a69,"6b21,"4e8b,"6301,"5f0f,"5b9f,"5199,"8005,"4e3b,"5b88,"53d6,"9152,"53d7,"5dde,"62fe,"7d42,"7fd2,"96c6,"4f4f,"91cd,"5bbf,"6240,"6691,"52a9,"662d,"6d88,"5546,"7ae0,"52dd,"4e57,"690d,"7533,"8eab,"795e,"771f,"6df1,"9032,"4e16,"6574,"6614,"5168,"76f8,"9001,"60f3,"606f,"901f,"65cf,"4ed6,"6253,"5bfe,"5f85,"4ee3,"7b2c,"984c,"70ad,"77ed,"8ac7,"7740,"6ce8,"67f1,"4e01,"5e33,"8abf,"8ffd,"5b9a,"5ead,"7b1b,"9244,"8ee2,"90fd,"5ea6,"6295,"8c46,"5cf6,"6e6f,"767b,"7b49,"52d5,"7ae5,"8fb2,"6ce2,"914d,"500d,"7bb1,"7551,"767a,"53cd,"5742,"677f,"76ae,"60b2,"7f8e,"9f3b,"7b46,"6c37,"8868,"79d2,"75c5,"54c1,"8ca0,"90e8,"670d,"798f,"7269,"5e73,"8fd4,"52c9,"653e,"5473,"547d,"9762,"554f,"5f79,"85ac,"7531,"6cb9,"6709,"904a,"4e88,"7f8a,"6d0b,"8449,"967d,"69d8,"843d,"6d41,"65c5,"4e21,"7dd1,"793c,"5217,"7df4,"8def,"548c,"611b,"6848,"4ee5,"8863,"4f4d,"56f2,"80c3,"5370,"82f1,"6804,"5869,"5104,"52a0,"679c,"8ca8,"8ab2,"82bd,"6539,"68b0,"5bb3,"8857,"5404,"899a,"5b8c,"5b98,"7ba1,"95a2,"89b3,"9858,"5e0c,"5b63,"7d00,"559c,"65d7,"5668,"6a5f,"8b70,"6c42,"6ce3,"6551,"7d66,"6319,"6f01,"5171,"5354,"93e1,"7af6,"6975,"8a13,"8ecd,"90e1,"5f84,"578b,"666f,"82b8,"6b20,"7d50,"5efa,"5065,"9a13,"56fa,"529f,"597d,"5019,"822a,"5eb7,"544a,"5dee,"83dc,"6700,"6750,"6628,"672d,"5237,"6bba,"5bdf,"53c2,"7523,"6563,"6b8b,"58eb,"6c0f,"53f2,"53f8,"8a66,"5150,"6cbb,"8f9e,"5931,"501f,"7a2e,"5468,"795d,"9806,"521d,"677e,"7b11,"5531,"713c,"8c61,"7167,"8cde,"81e3,"4fe1,"6210,"7701,"6e05,"9759,"5e2d,"7a4d,"6298,"7bc0,"8aac,"6d45,"6226,"9078,"7136,"4e89,"5009,"5de3,"675f,"5074,"7d9a,"5352,"5b6b,"5e2f,"968a,"9054,"5358,"7f6e,"4ef2,"8caf,"5146,"8178,"4f4e,"5e95,"505c,"7684,"5178,"4f1d,"5f92,"52aa,"706f,"5802,"50cd,"7279,"5f97,"6bd2,"71b1,"5ff5,"6557,"6885,"535a,"98ef,"98db,"8cbb,"5fc5,"7968,"6a19,"4e0d,"592b,"4ed8,"5e9c,"526f,"7c89,"5175,"5225,"8fba,"5909,"4fbf,"5305,"6cd5,"671b,"7267,"672b,"6e80,"672a,"8108,"6c11,"7121,"7d04,"52c7,"8981,"990a,"6d74,"5229,"9678,"826f,"6599,"91cf,"8f2a,"985e,"4ee4,"51b7,"4f8b,"6b74,"9023,"8001,"52b4,"9332,"5727,"79fb,"56e0,"6c38,"55b6,"885b,"6613,"76ca,"6db2,"6f14,"5fdc,"5f80,"685c,"6069,"53ef,"4eee,"4fa1,"6cb3,"904e,"8cc0,"5feb,"89e3,"683c,"78ba,"984d,"520a,"5e79,"6163,"773c,"57fa,"5bc4,"898f,"6280,"7fa9,"9006,"4e45,"65e7,"5c45,"8a31,"5883,"5747,"7981,"53e5,"7fa4,"7d4c,"6f54,"4ef6,"5238,"967a,"691c,"9650,"73fe,"6e1b,"6545,"500b,"8b77,"52b9,"539a,"8015,"9271,"69cb,"8208,"8b1b,"6df7,"67fb,"518d,"707d,"59bb,"63a1,"969b,"5728,"8ca1,"7f6a,"96d1,"9178,"8cdb,"652f,"5fd7,"679d,"5e2b,"8cc7,"98fc,"793a,"4f3c,"8b58,"8cea,"820e,"8b1d,"6388,"4fee,"8ff0,"8853,"6e96,"5e8f,"62db,"627f,"8a3c,"6761,"72b6,"5e38,"60c5,"7e54,"8077,"5236,"6027,"653f,"52e2,"7cbe,"88fd,"7a0e,"8cac,"7e3e,"63a5,"8a2d,"820c,"7d76,"92ad,"7956,"7d20,"7dcf,"9020,"50cf,"5897,"5247,"6e2c,"5c5e,"7387,"640d,"9000,"8cb8,"614b,"56e3,"65ad,"7bc9,"5f35,"63d0,"7a0b,"9069,"6575,"7d71,"9285,"5c0e,"5fb3,"72ec,"4efb,"71c3,"80fd,"7834,"72af,"5224,"7248,"6bd4,"80a5,"975e,"5099,"4ff5,"8a55,"8ca7,"5e03,"5a66,"5bcc,"6b66,"5fa9,"8907,"4ecf,"7de8,"5f01,"4fdd,"5893,"5831,"8c4a,"9632,"8cbf,"66b4,"52d9,"5922,"8ff7,"7dbf,"8f38,"4f59,"9810,"5bb9,"7565,"7559,"9818,"7570,"907a,"57df,"5b87,"6620,"5ef6,"6cbf,"6211,"7070,"62e1,"9769,"95a3,"5272,"682a,"5e72,"5dfb,"770b,"7c21,"5371,"673a,"63ee,"8cb4,"7591,"5438,"4f9b,"80f8,"90f7,"52e4,"7b4b,"7cfb,"656c,"8b66,"5287,"6fc0,"7a74,"7d79,"6a29,"61b2,"6e90,"53b3,"5df1,"547c,"8aa4,"540e,"5b5d,"7687,"7d05,"964d,"92fc,"523b,"7a40,"9aa8,"56f0,"7802,"5ea7,"6e08,"88c1,"7b56,"518a,"8695,"81f3,"79c1,"59ff,"8996,"8a5e,"8a8c,"78c1,"5c04,"6368,"5c3a,"82e5,"6a39,"53ce,"5b97,"5c31,"8846,"5f93,"7e26,"7e2e,"719f,"7d14,"51e6,"7f72,"8af8,"9664,"5c06,"50b7,"969c,"57ce,"84b8,"91dd,"4ec1,"5782,"63a8,"5bf8,"76db,"8056,"8aa0,"5ba3,"5c02,"6cc9,"6d17,"67d3,"5584,"594f,"7a93,"5275,"88c5,"5c64,"64cd,"8535,"81d3,"5b58,"5c0a,"5b85,"62c5,"63a2,"8a95,"6bb5,"6696,"5024,"5b99,"5fe0,"8457,"5e81,"9802,"6f6e,"8cc3,"75db,"5c55,"8a0e,"515a,"7cd6,"5c4a,"96e3,"4e73,"8a8d,"7d0d,"8133,"6d3e,"62dd,"80cc,"80ba,"4ff3,"73ed,"6669,"5426,"6279,"79d8,"8179,"596e,"4e26,"965b,"9589,"7247,"88dc,"66ae,"5b9d,"8a2a,"4ea1,"5fd8,"68d2,"679a,"5e55,"5bc6,"76df,"6a21,"8a33,"90f5,"512a,"5e7c,"6b32,"7fcc,"4e71,"5375,"89a7,"88cf,"5f8b,"81e8,"6717,"8ad6,} diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/unicodeBlocks.tex b/Master/texmf-dist/source/luatex/luatexja/tool/unicodeBlocks.tex new file mode 100644 index 00000000000..204b242b7fe --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/unicodeBlocks.tex @@ -0,0 +1,209 @@ +\defcharrange{1}{"0000-"007F} % Basic Latin +\defcharrange{2}{"0080-"00FF} % Latin-1 Supplement +\defcharrange{3}{"0100-"017F} % Latin Extended-A +\defcharrange{4}{"0180-"024F} % Latin Extended-B +\defcharrange{5}{"0250-"02AF} % IPA Extensions +\defcharrange{6}{"02B0-"02FF} % Spacing Modifier Letters +\defcharrange{7}{"0300-"036F} % Combining Diacritical Marks +\defcharrange{8}{"0370-"03FF} % Greek and Coptic +\defcharrange{9}{"0400-"04FF} % Cyrillic +\defcharrange{10}{"0500-"052F} % Cyrillic Supplement +\defcharrange{11}{"0530-"058F} % Armenian +\defcharrange{12}{"0590-"05FF} % Hebrew +\defcharrange{13}{"0600-"06FF} % Arabic +\defcharrange{14}{"0700-"074F} % Syriac +\defcharrange{15}{"0750-"077F} % Arabic Supplement +\defcharrange{16}{"0780-"07BF} % Thaana +\defcharrange{17}{"07C0-"07FF} % NKo +\defcharrange{18}{"0800-"083F} % Samaritan +\defcharrange{19}{"0840-"085F} % Mandaic +\defcharrange{20}{"0900-"097F} % Devanagari +\defcharrange{21}{"0980-"09FF} % Bengali +\defcharrange{22}{"0A00-"0A7F} % Gurmukhi +\defcharrange{23}{"0A80-"0AFF} % Gujarati +\defcharrange{24}{"0B00-"0B7F} % Oriya +\defcharrange{25}{"0B80-"0BFF} % Tamil +\defcharrange{26}{"0C00-"0C7F} % Telugu +\defcharrange{27}{"0C80-"0CFF} % Kannada +\defcharrange{28}{"0D00-"0D7F} % Malayalam +\defcharrange{29}{"0D80-"0DFF} % Sinhala +\defcharrange{30}{"0E00-"0E7F} % Thai +\defcharrange{31}{"0E80-"0EFF} % Lao +\defcharrange{32}{"0F00-"0FFF} % Tibetan +\defcharrange{33}{"1000-"109F} % Myanmar +\defcharrange{34}{"10A0-"10FF} % Georgian +\defcharrange{35}{"1100-"11FF} % Hangul Jamo +\defcharrange{36}{"1200-"137F} % Ethiopic +\defcharrange{37}{"1380-"139F} % Ethiopic Supplement +\defcharrange{38}{"13A0-"13FF} % Cherokee +\defcharrange{39}{"1400-"167F} % Unified Canadian Aboriginal Syllabics +\defcharrange{40}{"1680-"169F} % Ogham +\defcharrange{41}{"16A0-"16FF} % Runic +\defcharrange{42}{"1700-"171F} % Tagalog +\defcharrange{43}{"1720-"173F} % Hanunoo +\defcharrange{44}{"1740-"175F} % Buhid +\defcharrange{45}{"1760-"177F} % Tagbanwa +\defcharrange{46}{"1780-"17FF} % Khmer +\defcharrange{47}{"1800-"18AF} % Mongolian +\defcharrange{48}{"18B0-"18FF} % Unified Canadian Aboriginal Syllabics Extended +\defcharrange{49}{"1900-"194F} % Limbu +\defcharrange{50}{"1950-"197F} % Tai Le +\defcharrange{51}{"1980-"19DF} % New Tai Lue +\defcharrange{52}{"19E0-"19FF} % Khmer Symbols +\defcharrange{53}{"1A00-"1A1F} % Buginese +\defcharrange{54}{"1A20-"1AAF} % Tai Tham +\defcharrange{55}{"1B00-"1B7F} % Balinese +\defcharrange{56}{"1B80-"1BBF} % Sundanese +\defcharrange{57}{"1BC0-"1BFF} % Batak +\defcharrange{58}{"1C00-"1C4F} % Lepcha +\defcharrange{59}{"1C50-"1C7F} % Ol Chiki +\defcharrange{60}{"1CD0-"1CFF} % Vedic Extensions +\defcharrange{61}{"1D00-"1D7F} % Phonetic Extensions +\defcharrange{62}{"1D80-"1DBF} % Phonetic Extensions Supplement +\defcharrange{63}{"1DC0-"1DFF} % Combining Diacritical Marks Supplement +\defcharrange{64}{"1E00-"1EFF} % Latin Extended Additional +\defcharrange{65}{"1F00-"1FFF} % Greek Extended +\defcharrange{66}{"2000-"206F} % General Punctuation +\defcharrange{67}{"2070-"209F} % Superscripts and Subscripts +\defcharrange{68}{"20A0-"20CF} % Currency Symbols +\defcharrange{69}{"20D0-"20FF} % Combining Diacritical Marks for Symbols +\defcharrange{70}{"2100-"214F} % Letterlike Symbols +\defcharrange{71}{"2150-"218F} % Number Forms +\defcharrange{72}{"2190-"21FF} % Arrows +\defcharrange{73}{"2200-"22FF} % Mathematical Operators +\defcharrange{74}{"2300-"23FF} % Miscellaneous Technical +\defcharrange{75}{"2400-"243F} % Control Pictures +\defcharrange{76}{"2440-"245F} % Optical Character Recognition +\defcharrange{77}{"2460-"24FF} % Enclosed Alphanumerics +\defcharrange{78}{"2500-"257F} % Box Drawing +\defcharrange{79}{"2580-"259F} % Block Elements +\defcharrange{80}{"25A0-"25FF} % Geometric Shapes +\defcharrange{81}{"2600-"26FF} % Miscellaneous Symbols +\defcharrange{82}{"2700-"27BF} % Dingbats +\defcharrange{83}{"27C0-"27EF} % Miscellaneous Mathematical Symbols-A +\defcharrange{84}{"27F0-"27FF} % Supplemental Arrows-A +\defcharrange{85}{"2800-"28FF} % Braille Patterns +\defcharrange{86}{"2900-"297F} % Supplemental Arrows-B +\defcharrange{87}{"2980-"29FF} % Miscellaneous Mathematical Symbols-B +\defcharrange{88}{"2A00-"2AFF} % Supplemental Mathematical Operators +\defcharrange{89}{"2B00-"2BFF} % Miscellaneous Symbols and Arrows +\defcharrange{90}{"2C00-"2C5F} % Glagolitic +\defcharrange{91}{"2C60-"2C7F} % Latin Extended-C +\defcharrange{92}{"2C80-"2CFF} % Coptic +\defcharrange{93}{"2D00-"2D2F} % Georgian Supplement +\defcharrange{94}{"2D30-"2D7F} % Tifinagh +\defcharrange{95}{"2D80-"2DDF} % Ethiopic Extended +\defcharrange{96}{"2DE0-"2DFF} % Cyrillic Extended-A +\defcharrange{97}{"2E00-"2E7F} % Supplemental Punctuation +\defcharrange{98}{"2E80-"2EFF} % CJK Radicals Supplement +\defcharrange{99}{"2F00-"2FDF} % Kangxi Radicals +\defcharrange{100}{"2FF0-"2FFF} % Ideographic Description Characters +\defcharrange{101}{"3000-"303F} % CJK Symbols and Punctuation +\defcharrange{102}{"3040-"309F} % Hiragana +\defcharrange{103}{"30A0-"30FF} % Katakana +\defcharrange{104}{"3100-"312F} % Bopomofo +\defcharrange{105}{"3130-"318F} % Hangul Compatibility Jamo +\defcharrange{106}{"3190-"319F} % Kanbun +\defcharrange{107}{"31A0-"31BF} % Bopomofo Extended +\defcharrange{108}{"31C0-"31EF} % CJK Strokes +\defcharrange{109}{"31F0-"31FF} % Katakana Phonetic Extensions +\defcharrange{110}{"3200-"32FF} % Enclosed CJK Letters and Months +\defcharrange{111}{"3300-"33FF} % CJK Compatibility +\defcharrange{112}{"3400-"4DBF} % CJK Unified Ideographs Extension A +\defcharrange{113}{"4DC0-"4DFF} % Yijing Hexagram Symbols +\defcharrange{114}{"4E00-"9FFF} % CJK Unified Ideographs +\defcharrange{115}{"A000-"A48F} % Yi Syllables +\defcharrange{116}{"A490-"A4CF} % Yi Radicals +\defcharrange{117}{"A4D0-"A4FF} % Lisu +\defcharrange{118}{"A500-"A63F} % Vai +\defcharrange{119}{"A640-"A69F} % Cyrillic Extended-B +\defcharrange{120}{"A6A0-"A6FF} % Bamum +\defcharrange{121}{"A700-"A71F} % Modifier Tone Letters +\defcharrange{122}{"A720-"A7FF} % Latin Extended-D +\defcharrange{123}{"A800-"A82F} % Syloti Nagri +\defcharrange{124}{"A830-"A83F} % Common Indic Number Forms +\defcharrange{125}{"A840-"A87F} % Phags-pa +\defcharrange{126}{"A880-"A8DF} % Saurashtra +\defcharrange{127}{"A8E0-"A8FF} % Devanagari Extended +\defcharrange{128}{"A900-"A92F} % Kayah Li +\defcharrange{129}{"A930-"A95F} % Rejang +\defcharrange{130}{"A960-"A97F} % Hangul Jamo Extended-A +\defcharrange{131}{"A980-"A9DF} % Javanese +\defcharrange{132}{"AA00-"AA5F} % Cham +\defcharrange{133}{"AA60-"AA7F} % Myanmar Extended-A +\defcharrange{134}{"AA80-"AADF} % Tai Viet +\defcharrange{135}{"AB00-"AB2F} % Ethiopic Extended-A +\defcharrange{136}{"ABC0-"ABFF} % Meetei Mayek +\defcharrange{137}{"AC00-"D7AF} % Hangul Syllables +\defcharrange{138}{"D7B0-"D7FF} % Hangul Jamo Extended-B +\defcharrange{139}{"D800-"DB7F} % High Surrogates +\defcharrange{140}{"DB80-"DBFF} % High Private Use Surrogates +\defcharrange{141}{"DC00-"DFFF} % Low Surrogates +\defcharrange{142}{"E000-"F8FF} % Private Use Area +\defcharrange{143}{"F900-"FAFF} % CJK Compatibility Ideographs +\defcharrange{144}{"FB00-"FB4F} % Alphabetic Presentation Forms +\defcharrange{145}{"FB50-"FDFF} % Arabic Presentation Forms-A +\defcharrange{146}{"FE00-"FE0F} % Variation Selectors +\defcharrange{147}{"FE10-"FE1F} % Vertical Forms +\defcharrange{148}{"FE20-"FE2F} % Combining Half Marks +\defcharrange{149}{"FE30-"FE4F} % CJK Compatibility Forms +\defcharrange{150}{"FE50-"FE6F} % Small Form Variants +\defcharrange{151}{"FE70-"FEFF} % Arabic Presentation Forms-B +\defcharrange{152}{"FF00-"FFEF} % Halfwidth and Fullwidth Forms +\defcharrange{153}{"FFF0-"FFFF} % Specials +\defcharrange{154}{"10000-"1007F} % Linear B Syllabary +\defcharrange{155}{"10080-"100FF} % Linear B Ideograms +\defcharrange{156}{"10100-"1013F} % Aegean Numbers +\defcharrange{157}{"10140-"1018F} % Ancient Greek Numbers +\defcharrange{158}{"10190-"101CF} % Ancient Symbols +\defcharrange{159}{"101D0-"101FF} % Phaistos Disc +\defcharrange{160}{"10280-"1029F} % Lycian +\defcharrange{161}{"102A0-"102DF} % Carian +\defcharrange{162}{"10300-"1032F} % Old Italic +\defcharrange{163}{"10330-"1034F} % Gothic +\defcharrange{164}{"10380-"1039F} % Ugaritic +\defcharrange{165}{"103A0-"103DF} % Old Persian +\defcharrange{166}{"10400-"1044F} % Deseret +\defcharrange{167}{"10450-"1047F} % Shavian +\defcharrange{168}{"10480-"104AF} % Osmanya +\defcharrange{169}{"10800-"1083F} % Cypriot Syllabary +\defcharrange{170}{"10840-"1085F} % Imperial Aramaic +\defcharrange{171}{"10900-"1091F} % Phoenician +\defcharrange{172}{"10920-"1093F} % Lydian +\defcharrange{173}{"10A00-"10A5F} % Kharoshthi +\defcharrange{174}{"10A60-"10A7F} % Old South Arabian +\defcharrange{175}{"10B00-"10B3F} % Avestan +\defcharrange{176}{"10B40-"10B5F} % Inscriptional Parthian +\defcharrange{177}{"10B60-"10B7F} % Inscriptional Pahlavi +\defcharrange{178}{"10C00-"10C4F} % Old Turkic +\defcharrange{179}{"10E60-"10E7F} % Rumi Numeral Symbols +\defcharrange{180}{"11000-"1107F} % Brahmi +\defcharrange{181}{"11080-"110CF} % Kaithi +\defcharrange{182}{"12000-"123FF} % Cuneiform +\defcharrange{183}{"12400-"1247F} % Cuneiform Numbers and Punctuation +\defcharrange{184}{"13000-"1342F} % Egyptian Hieroglyphs +\defcharrange{185}{"16800-"16A3F} % Bamum Supplement +\defcharrange{186}{"1B000-"1B0FF} % Kana Supplement +\defcharrange{187}{"1D000-"1D0FF} % Byzantine Musical Symbols +\defcharrange{188}{"1D100-"1D1FF} % Musical Symbols +\defcharrange{189}{"1D200-"1D24F} % Ancient Greek Musical Notation +\defcharrange{190}{"1D300-"1D35F} % Tai Xuan Jing Symbols +\defcharrange{191}{"1D360-"1D37F} % Counting Rod Numerals +\defcharrange{192}{"1D400-"1D7FF} % Mathematical Alphanumeric Symbols +\defcharrange{193}{"1F000-"1F02F} % Mahjong Tiles +\defcharrange{194}{"1F030-"1F09F} % Domino Tiles +\defcharrange{195}{"1F0A0-"1F0FF} % Playing Cards +\defcharrange{196}{"1F100-"1F1FF} % Enclosed Alphanumeric Supplement +\defcharrange{197}{"1F200-"1F2FF} % Enclosed Ideographic Supplement +\defcharrange{198}{"1F300-"1F5FF} % Miscellaneous Symbols And Pictographs +\defcharrange{199}{"1F600-"1F64F} % Emoticons +\defcharrange{200}{"1F680-"1F6FF} % Transport And Map Symbols +\defcharrange{201}{"1F700-"1F77F} % Alchemical Symbols +\defcharrange{202}{"20000-"2A6DF} % CJK Unified Ideographs Extension B +\defcharrange{203}{"2A700-"2B73F} % CJK Unified Ideographs Extension C +\defcharrange{204}{"2B740-"2B81F} % CJK Unified Ideographs Extension D +\defcharrange{205}{"2F800-"2FA1F} % CJK Compatibility Ideographs Supplement +\defcharrange{206}{"E0000-"E007F} % Tags +\defcharrange{207}{"E0100-"E01EF} % Variation Selectors Supplement +\defcharrange{208}{"F0000-"FFFFF} % Supplementary Private Use Area-A +\defcharrange{209}{"100000-"10FFFF} % Supplementary Private Use Area-B |