summaryrefslogtreecommitdiff
path: root/macros/jptex/latex/uplatex/ukinsoku.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/jptex/latex/uplatex/ukinsoku.dtx')
-rw-r--r--macros/jptex/latex/uplatex/ukinsoku.dtx588
1 files changed, 588 insertions, 0 deletions
diff --git a/macros/jptex/latex/uplatex/ukinsoku.dtx b/macros/jptex/latex/uplatex/ukinsoku.dtx
new file mode 100644
index 0000000000..a5e55f6148
--- /dev/null
+++ b/macros/jptex/latex/uplatex/ukinsoku.dtx
@@ -0,0 +1,588 @@
+% \iffalse meta-comment
+%% File: ukinsoku.dtx
+%
+% pLaTeX kinsoku file:
+% Copyright 1995 ASCII Corporation.
+% and modified for upLaTeX
+%
+% Copyright (c) 2010 ASCII MEDIA WORKS
+% Copyright (c) 2016 Takuji Tanaka
+% Copyright (c) 2016-2021 Japanese TeX Development Community
+%
+% This file is part of the upLaTeX2e system (community edition).
+% --------------------------------------------------------------
+%
+% \fi
+%
+%
+% \setcounter{StandardModuleDepth}{1}
+% \StopEventually{}
+%
+% \iffalse
+% \changes{v1.0-u00}{2011/05/07}{p\LaTeX{}用からup\LaTeX{}用に修正。}
+% \changes{v1.0-u01}{2017/08/02}{U+00B7 (MIDDLE DOT; JIS X 0213)の
+% 前禁則ペナルティをU+30FBと同じ値に設定、注意点を明文化}
+% \changes{v1.0b}{2017/08/05}{%、&、\%、\&の禁則ペナルティが
+% 誤っていたのを修正(post $\rightarrow$ pre)}
+% \changes{v1.0b-u01}{2017/08/05}{p\LaTeX{}の変更に追随}
+% \changes{v1.0b-u02}{2018/01/27}{up\TeX{}の将来の変更に備え、
+% Latin-1 Supplementのうち属性がLatinのもの
+% (Latin-1 letters)をコードポイントで指定}
+% \changes{v1.0b-u03}{2018/04/08}{\LaTeX\ 2018-04-01対策}
+% \changes{v1.0b-u04}{2019/01/29}{内部Unicode化されていることを確認}
+% \changes{v1.0b-u05}{2019/05/19}{up\TeX~v1.24の\cs{kcatcode}の既定値のバグ回避}
+% \changes{v1.0b-u06}{2019/09/22}{バグ回避コードがかえって有害なため除去}
+% \changes{v1.0c}{2020/09/28}{!の\cs{inhibitxspcode}を設定}
+% \changes{v1.0c-u06}{2020/09/28}{p\LaTeX{}の変更に追随}
+% \changes{v1.0d}{2021/03/04}{:の\cs{inhibitxspcode}と:の\cs{xspcode}を設定}
+% \changes{v1.0d-u06}{2021/03/04}{p\LaTeX{}の変更に追随}
+% \fi
+%
+% \iffalse
+%<*driver>
+\NeedsTeXFormat{pLaTeX2e}
+% \fi
+\ProvidesFile{ukinsoku.dtx}[2021/03/04 v1.0d-u06 upLaTeX Kernel]
+% \iffalse
+\documentclass{jltxdoc}
+\GetFileInfo{ukinsoku.dtx}
+\title{禁則パラメータ\space\fileversion}
+\author{Ken Nakano \& TTK}
+\date{作成日:\filedate}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% このファイルは、禁則と文字間スペースの設定について説明をしています。
+% 日本語\TeX{}の機能についての詳細は、『日本語\TeX テクニカルブックI』を
+% 参照してください。
+%
+% なお、このファイルのコード部分は、
+% p\TeX{}やp\LaTeX{}で配布されている\file{kinsoku.tex}に、
+% JIS X 0213の定義文字などの設定を追加したものです。
+% このファイルは内部コードUnicode (|uptex|)なup\TeX{}エンジンで読まれる
+% 必要があります。
+% \changes{v1.0-u00}{2011/05/07}{p\LaTeX{}用からup\LaTeX{}用に修正。}
+% \changes{v1.0b-u04}{2019/01/29}{内部コードがUnicodeであることを確認}
+%
+% \begin{macrocode}
+%<*plcore>
+\ifnum\ucs"3000="3000 \else
+ \errhelp{Please try to run (e)uptex with option
+ `-kanji-internal=uptex'.}%
+ \errmessage{This file should be read with
+ internal Kanji encoding Unicode}\@@end
+\fi
+% \end{macrocode}
+%
+% \changes{v1.0b-u05}{2019/05/19}{up\TeX~v1.24の\cs{kcatcode}の既定値のバグ回避}
+% \changes{v1.0b-u06}{2019/09/22}{バグ回避コードがかえって有害なため除去}
+%
+% \section{禁則}
+%
+% ある文字を行頭禁則の対象にするには、|\prebreakpenalty|に正の値を指定します。
+% ある文字を行末禁則の対象にするには、|\postbreakpenalty|に正の値を指定します。
+% 数値が大きいほど、行頭、あるいは行末で改行されにくくなります。
+%
+% \subsection{半角文字に対する禁則}
+% ここでは、半角文字に対する禁則の設定を行なっています。
+% \changes{v1.0b}{2017/08/05}{%、&、\%、\&の禁則ペナルティが
+% 誤っていたのを修正(post $\rightarrow$ pre)}
+%
+% \begin{macrocode}
+%%
+%% 行頭、行末禁則パラメータ
+%%
+%% 1byte characters
+\prebreakpenalty`!=10000
+\prebreakpenalty`"=10000
+\postbreakpenalty`\#=500
+\postbreakpenalty`\$=500
+\prebreakpenalty`\%=500
+\prebreakpenalty`\&=500
+\postbreakpenalty`\`=10000
+\prebreakpenalty`'=10000
+\prebreakpenalty`)=10000
+\postbreakpenalty`(=10000
+\prebreakpenalty`*=500
+\prebreakpenalty`+=500
+\prebreakpenalty`-=10000
+\prebreakpenalty`.=10000
+\prebreakpenalty`,=10000
+\prebreakpenalty`/=500
+\prebreakpenalty`;=10000
+\prebreakpenalty`?=10000
+\prebreakpenalty`:=10000
+\prebreakpenalty`]=10000
+\postbreakpenalty`[=10000
+% \end{macrocode}
+%
+% \subsection{全角文字に対する禁則}
+% ここでは、全角文字に対する禁則の設定を行なっています。
+%
+% up\TeX{}/up\LaTeX{}の場合、JIS X 0213(日本)・KS C 5601(韓国)・
+% GB2312(中国)・Big5(台湾)などの文字集合に含まれる、
+% いわゆる全角文字の一部が、8-bit Latinと同じコードポイントを
+% 共有します。すなわち、同じコードポイントが、CJKトークンとしても
+% non-CJKトークンとしても有効に扱われることがあります。
+% 以下に例を示します\footnote{ここで表示しているnon-CJKトークンと
+% して扱われた結果は、up\LaTeX{}のデフォルト従属欧文エンコーディング
+% であるT1の場合のものです。}。
+% {\font\lmr=rm-lmr10\lmr
+% \begin{itemize}
+% \item \texttt{0xA1}: \kchar"A1 (CJK) vs. \char"A1\ (non-CJK)
+% \item \texttt{0xAB}: \kchar"AB (CJK) vs. \char"AB\ (non-CJK)
+% \item \texttt{0xB7}: \kchar"B7 (CJK) vs. \char"B7\ (non-CJK)
+% \item \texttt{0xB9}: \kchar"B9 (CJK) vs. \char"B9\ (non-CJK)
+% \item …
+% \end{itemize}}
+% \file{ukinsoku.tex}ではCJKトークンを優先した禁則設定を行っています。
+% この設定により、同じコードポイントをnon-CJKトークンとして扱う場合に
+% 予期せずLatin-1の文字が禁則対象になってしまいます。
+% 問題が起きた場合は禁則の設定を調整してください。
+% \changes{v1.0-u01}{2017/08/02}{U+00B7 (MIDDLE DOT; JIS X 0213)の
+% 前禁則ペナルティをU+30FBと同じ値に設定、注意点を明文化}
+% \changes{v1.0b-u02}{2018/01/27}{up\TeX{}の将来の変更に備え、
+% Latin-1 Supplementのうち属性がLatinのもの
+% (Latin-1 letters)をコードポイントで指定}
+%
+% なお、以下で複数回登場する |"AA| と |"BA| はそれぞれªとºですが、
+% \LaTeXe\ 2018-04-01でUTF-8入力になった影響で、これらの文字は
+% |macrocode| 環境内のコードに(たとえ |%| に続くコメントであっても)
+% 書けなくなってしまったようです。これらの文字で
+% docstrip処理中にエラー
+%\begin{verbatim}
+% ! Argument of \@font@info has an extra }.
+%\end{verbatim}
+% が出ないように、コメントからも削除しました。
+% \changes{v1.0b-u03}{2018/04/08}{\LaTeX\ 2018-04-01対策}
+%
+% \changes{v1.0d}{2021/03/04}{:の\cs{xspcode}を設定}
+% \begin{macrocode}
+%%全角文字
+\prebreakpenalty`、=10000
+\prebreakpenalty`。=10000
+\prebreakpenalty`,=10000
+\prebreakpenalty`.=10000
+\prebreakpenalty`・=10000
+\prebreakpenalty`:=10000
+\prebreakpenalty`;=10000
+\prebreakpenalty`?=10000
+\prebreakpenalty`!=10000
+\prebreakpenalty`゛=10000%\jis"212B
+\prebreakpenalty`゜=10000%\jis"212C
+\prebreakpenalty`´=10000%\jis"212D
+\postbreakpenalty``=10000%\jis"212E
+\prebreakpenalty`々=10000%\jis"2139
+\prebreakpenalty`…=250%\jis"2144
+\prebreakpenalty`‥=250%\jis"2145
+\postbreakpenalty`‘=10000%\jis"2146
+\prebreakpenalty`’=10000%\jis"2147
+\postbreakpenalty`“=10000%\jis"2148
+\prebreakpenalty`”=10000%\jis"2149
+\prebreakpenalty`)=10000
+\postbreakpenalty`(=10000
+\prebreakpenalty`}=10000
+\postbreakpenalty`{=10000
+\prebreakpenalty`]=10000
+\postbreakpenalty`[=10000
+%%\postbreakpenalty`‘=10000
+%%\prebreakpenalty`’=10000
+\postbreakpenalty`〔=10000%\jis"214C
+\prebreakpenalty`〕=10000%\jis"214D
+\postbreakpenalty`〈=10000%\jis"2152
+\prebreakpenalty`〉=10000%\jis"2153
+\postbreakpenalty`《=10000%\jis"2154
+\prebreakpenalty`》=10000%\jis"2155
+\postbreakpenalty`「=10000%\jis"2156
+\prebreakpenalty`」=10000%\jis"2157
+\postbreakpenalty`『=10000%\jis"2158
+\prebreakpenalty`』=10000%\jis"2159
+\postbreakpenalty`【=10000%\jis"215A
+\prebreakpenalty`】=10000%\jis"215B
+\prebreakpenalty`ー=10000
+\prebreakpenalty`+=200
+\prebreakpenalty`−=200% U+2212 MINUS SIGN
+\prebreakpenalty`-=200% U+FF0D FULLWIDTH HYPHEN-MINUS
+\prebreakpenalty`==200
+\postbreakpenalty`#=200
+\postbreakpenalty`$=200
+\prebreakpenalty`%=200
+\prebreakpenalty`&=200
+\prebreakpenalty`ぁ=150
+\prebreakpenalty`ぃ=150
+\prebreakpenalty`ぅ=150
+\prebreakpenalty`ぇ=150
+\prebreakpenalty`ぉ=150
+\prebreakpenalty`っ=150
+\prebreakpenalty`ゃ=150
+\prebreakpenalty`ゅ=150
+\prebreakpenalty`ょ=150
+\prebreakpenalty`ゎ=150%\jis"246E
+\prebreakpenalty`ァ=150
+\prebreakpenalty`ィ=150
+\prebreakpenalty`ゥ=150
+\prebreakpenalty`ェ=150
+\prebreakpenalty`ォ=150
+\prebreakpenalty`ッ=150
+\prebreakpenalty`ャ=150
+\prebreakpenalty`ュ=150
+\prebreakpenalty`ョ=150
+\prebreakpenalty`ヮ=150%\jis"256E
+\prebreakpenalty`ヵ=150%\jis"2575
+\prebreakpenalty`ヶ=150%\jis"2576
+%% kinsoku JIS X 0208 additional
+\prebreakpenalty`ヽ=10000
+\prebreakpenalty`ヾ=10000
+\prebreakpenalty`ゝ=10000
+\prebreakpenalty`ゞ=10000
+%%
+%% kinsoku JIS X 0213
+%%
+\prebreakpenalty`〳=10000
+\prebreakpenalty`〴=10000
+\prebreakpenalty`〵=10000
+\prebreakpenalty`〻=10000
+\postbreakpenalty`⦅=10000
+\prebreakpenalty`⦆=10000
+\postbreakpenalty`⦅=10000
+\prebreakpenalty`⦆=10000
+\postbreakpenalty`〘=10000
+\prebreakpenalty`〙=10000
+\postbreakpenalty`〖=10000
+\prebreakpenalty`〗=10000
+\postbreakpenalty`«=10000
+\prebreakpenalty`»=10000
+\postbreakpenalty`〝=10000
+\prebreakpenalty`〟=10000
+\prebreakpenalty`‼=10000
+\prebreakpenalty`⁇=10000
+\prebreakpenalty`⁈=10000
+\prebreakpenalty`⁉=10000
+\postbreakpenalty`¡=10000
+\postbreakpenalty`¿=10000
+\prebreakpenalty`ː=10000
+\prebreakpenalty`·=10000
+\prebreakpenalty"AA=10000
+\prebreakpenalty"BA=10000
+\prebreakpenalty`¹=10000
+\prebreakpenalty`²=10000
+\prebreakpenalty`³=10000
+\postbreakpenalty`€=10000
+\prebreakpenalty`ゕ=150
+\prebreakpenalty`ゖ=150
+\prebreakpenalty`ㇰ=150
+\prebreakpenalty`ㇱ=150
+\prebreakpenalty`ㇲ=150
+\prebreakpenalty`ㇳ=150
+\prebreakpenalty`ㇴ=150
+\prebreakpenalty`ㇵ=150
+\prebreakpenalty`ㇶ=150
+\prebreakpenalty`ㇷ=150
+\prebreakpenalty`ㇸ=150
+\prebreakpenalty`ㇹ=150
+%%\prebreakpenalty`ㇷ゚=150
+\prebreakpenalty`ㇺ=150
+\prebreakpenalty`ㇻ=150
+\prebreakpenalty`ㇼ=150
+\prebreakpenalty`ㇽ=150
+\prebreakpenalty`ㇾ=150
+\prebreakpenalty`ㇿ=150
+%%
+%% kinsoku JIS X 0212
+%%
+%%\postbreakpenalty`¡=10000
+%%\postbreakpenalty`¿=10000
+%%\prebreakpenalty"BA=10000
+%%\prebreakpenalty"AA=10000
+\prebreakpenalty`™=10000
+%%
+%% kinsoku 半角片仮名
+%%
+\prebreakpenalty`。=10000
+\prebreakpenalty`、=10000
+\prebreakpenalty`゙=10000
+\prebreakpenalty`゚=10000
+\prebreakpenalty`」=10000
+\postbreakpenalty`「=10000
+% \end{macrocode}
+%
+% \section{文字間のスペース}
+%
+% ある英字の前後と、その文字に隣合う漢字に挿入されるスペースを制御するには、
+% |\xspcode|を用います。
+%
+% ある漢字の前後と、その文字に隣合う英字に挿入されるスペースを制御するには、
+% |\inhibitxspcode|を用います。
+%
+% \subsection{ある英字と前後の漢字の間の制御}
+% ここでは、英字に対する設定を行なっています。
+%
+% 指定する数値とその意味は次のとおりです。
+%
+% \begin{center}
+% \begin{tabular}{ll}
+% 0 & 前後の漢字の間での処理を禁止する。\\
+% 1 & 直前の漢字との間にのみ、スペースの挿入を許可する。\\
+% 2 & 直後の漢字との間にのみ、スペースの挿入を許可する。\\
+% 3 & 前後の漢字との間でのスペースの挿入を許可する。\\
+% \end{tabular}
+% \end{center}
+%
+% \begin{macrocode}
+%%
+%% xspcode
+\xspcode`(=1
+\xspcode`)=2
+\xspcode`[=1
+\xspcode`]=2
+\xspcode``=1
+\xspcode`'=2
+\xspcode`:=2
+\xspcode`;=2
+\xspcode`,=2
+\xspcode`.=2
+%% for 8bit Latin
+\xspcode"80=3
+\xspcode"81=3
+\xspcode"82=3
+\xspcode"83=3
+\xspcode"84=3
+\xspcode"85=3
+\xspcode"86=3
+\xspcode"87=3
+\xspcode"88=3
+\xspcode"89=3
+\xspcode"8A=3
+\xspcode"8B=3
+\xspcode"8C=3
+\xspcode"8D=3
+\xspcode"8E=3
+\xspcode"8F=3
+\xspcode"90=3
+\xspcode"91=3
+\xspcode"92=3
+\xspcode"93=3
+\xspcode"94=3
+\xspcode"95=3
+\xspcode"96=3
+\xspcode"97=3
+\xspcode"98=3
+\xspcode"99=3
+\xspcode"9A=3
+\xspcode"9B=3
+\xspcode"9C=3
+\xspcode"9D=3
+\xspcode"9E=3
+\xspcode"9F=3
+\xspcode"A0=3
+\xspcode"A1=3
+\xspcode"A2=3
+\xspcode"A3=3
+\xspcode"A4=3
+\xspcode"A5=3
+\xspcode"A6=3
+\xspcode"A7=3
+\xspcode"A8=3
+\xspcode"A9=3
+\xspcode"AA=3
+\xspcode"AB=3
+\xspcode"AC=3
+\xspcode"AD=3
+\xspcode"AE=3
+\xspcode"AF=3
+\xspcode"B0=3
+\xspcode"B1=3
+\xspcode"B2=3
+\xspcode"B3=3
+\xspcode"B4=3
+\xspcode"B5=3
+\xspcode"B6=3
+\xspcode"B7=3
+\xspcode"B8=3
+\xspcode"B9=3
+\xspcode"BA=3
+\xspcode"BB=3
+\xspcode"BC=3
+\xspcode"BD=3
+\xspcode"BE=3
+\xspcode"BF=3
+\xspcode"C0=3
+\xspcode"C1=3
+\xspcode"C2=3
+\xspcode"C3=3
+\xspcode"C4=3
+\xspcode"C5=3
+\xspcode"C6=3
+\xspcode"C7=3
+\xspcode"C8=3
+\xspcode"C9=3
+\xspcode"CA=3
+\xspcode"CB=3
+\xspcode"CC=3
+\xspcode"CD=3
+\xspcode"CE=3
+\xspcode"CF=3
+\xspcode"D0=3
+\xspcode"D1=3
+\xspcode"D2=3
+\xspcode"D3=3
+\xspcode"D4=3
+\xspcode"D5=3
+\xspcode"D6=3
+\xspcode"D7=3
+\xspcode"D8=3
+\xspcode"D9=3
+\xspcode"DA=3
+\xspcode"DB=3
+\xspcode"DC=3
+\xspcode"DD=3
+\xspcode"DE=3
+\xspcode"DF=3
+\xspcode"E0=3
+\xspcode"E1=3
+\xspcode"E2=3
+\xspcode"E3=3
+\xspcode"E4=3
+\xspcode"E5=3
+\xspcode"E6=3
+\xspcode"E7=3
+\xspcode"E8=3
+\xspcode"E9=3
+\xspcode"EA=3
+\xspcode"EB=3
+\xspcode"EC=3
+\xspcode"ED=3
+\xspcode"EE=3
+\xspcode"EF=3
+\xspcode"F0=3
+\xspcode"F1=3
+\xspcode"F2=3
+\xspcode"F3=3
+\xspcode"F4=3
+\xspcode"F5=3
+\xspcode"F6=3
+\xspcode"F7=3
+\xspcode"F8=3
+\xspcode"F9=3
+\xspcode"FA=3
+\xspcode"FB=3
+\xspcode"FC=3
+\xspcode"FD=3
+\xspcode"FE=3
+\xspcode"FF=3
+% \end{macrocode}
+%
+% \subsection{ある漢字と前後の英字の間の制御}
+% ここでは、漢字に対する設定を行なっています。
+%
+% 指定する数値とその意味は次のとおりです。
+%
+% \begin{center}
+% \begin{tabular}{ll}
+% 0 & 前後の英字との間にスペースを挿入することを禁止する。\\
+% 1 & 直前の英字との間にスペースを挿入することを禁止する。\\
+% 2 & 直後の英字との間にスペースを挿入することを禁止する。\\
+% 3 & 前後の英字との間でのスペースの挿入を許可する。\\
+% \end{tabular}
+% \end{center}
+%
+% \changes{v1.0c}{2020/09/28}{!の\cs{inhibitxspcode}を設定}
+% \changes{v1.0d}{2021/03/04}{:の\cs{inhibitxspcode}を設定}
+% \begin{macrocode}
+%%
+%% inhibitxspcode
+\inhibitxspcode`、=1
+\inhibitxspcode`。=1
+\inhibitxspcode`,=1
+\inhibitxspcode`.=1
+\inhibitxspcode`:=1
+\inhibitxspcode`;=1
+\inhibitxspcode`?=1
+\inhibitxspcode`!=1
+\inhibitxspcode`)=1
+\inhibitxspcode`(=2
+\inhibitxspcode`]=1
+\inhibitxspcode`[=2
+\inhibitxspcode`}=1
+\inhibitxspcode`{=2
+\inhibitxspcode`‘=2
+\inhibitxspcode`’=1
+\inhibitxspcode`“=2
+\inhibitxspcode`”=1
+\inhibitxspcode`〔=2
+\inhibitxspcode`〕=1
+\inhibitxspcode`〈=2
+\inhibitxspcode`〉=1
+\inhibitxspcode`《=2
+\inhibitxspcode`》=1
+\inhibitxspcode`「=2
+\inhibitxspcode`」=1
+\inhibitxspcode`『=2
+\inhibitxspcode`』=1
+\inhibitxspcode`【=2
+\inhibitxspcode`】=1
+\inhibitxspcode`—=0% U+2014 EM DASH
+\inhibitxspcode`―=0% U+2015 HORIZONTAL BAR
+\inhibitxspcode`〜=0% U+301C WAVE DASH
+\inhibitxspcode`~=0% U+FF5E FULLWIDTH TILDE
+\inhibitxspcode`…=0
+\inhibitxspcode`¥=0% U+00A5 YEN SIGN
+\inhibitxspcode`¥=0% U+FFE5 FULLWIDTH YEN SIGN
+\inhibitxspcode`°=1
+\inhibitxspcode`′=1
+\inhibitxspcode`″=1
+%%
+%% inhibitxspcode JIS X 0213
+%%
+\inhibitxspcode`⦅=2
+\inhibitxspcode`⦆=1
+\inhibitxspcode`⦅=2
+\inhibitxspcode`⦆=1
+\inhibitxspcode`〘=2
+\inhibitxspcode`〙=1
+\inhibitxspcode`〖=2
+\inhibitxspcode`〗=1
+\inhibitxspcode`«=2
+\inhibitxspcode`»=1
+\inhibitxspcode`〝=2
+\inhibitxspcode`〟=1
+\inhibitxspcode`‼=1
+\inhibitxspcode`⁇=1
+\inhibitxspcode`⁈=1
+\inhibitxspcode`⁉=1
+\inhibitxspcode`¡=2
+\inhibitxspcode`¿=2
+\inhibitxspcode"AA=1
+\inhibitxspcode"BA=1
+\inhibitxspcode`¹=1
+\inhibitxspcode`²=1
+\inhibitxspcode`³=1
+\inhibitxspcode`€=2
+%%
+%% inhibitxspcode JIS X 0212
+%%
+%%\inhibitxspcode`¡=2
+%%\inhibitxspcode`¿=2
+%%\inhibitxspcode"BA=1
+%%\inhibitxspcode"AA=1
+\inhibitxspcode`™=1
+%%
+%% inhibitxspcode 半角片仮名
+%%
+\inhibitxspcode`。=1
+\inhibitxspcode`、=1
+\inhibitxspcode`「=2
+\inhibitxspcode`」=1
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</plcore>
+% \end{macrocode}
+%
+% \Finale
+%
+\endinput