diff options
Diffstat (limited to 'macros/jptex/latex/uplatex/ukinsoku.dtx')
-rw-r--r-- | macros/jptex/latex/uplatex/ukinsoku.dtx | 588 |
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 |