% \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} % % \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} % % \end{macrocode} % % \Finale % \endinput