% jdkintou.sty 
% by Shinsaku Fujita 
% Copyright (C) S. Fujita (1999). All rights reserved. 
% Version 1.00 1999/12/31
%
%  作成者: 藤田眞作
%          fujitas@chem.kit.ac.jp
%
%   藤田眞作著「入門・縦横文書術」所載
%
%\typeout{Option Style `jdkintou.sty' by S. Fujita}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\j@urnalname{jdkintou}
\def\versi@ndate{December 31, 1999}
\def\versi@nno{ver1.00}
\def\copyrighth@lder{SF} % Shinsaku Fujita
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\typeout{Option Style `\j@urnalname' (\versi@nno) <\versi@ndate>\space 
[\copyrighth@lder]}
\typeout{藤田眞作著「LaTeXまくろの八衢」所載}
\typeout{藤田眞作著「続LaTeX2e階梯・縦組編」所載}
\typeout{藤田眞作著「入門・縦横文書術」所載}
% **************
% * 自動均等割 * tatebook.cls(S. Fujita)より
% **************
\newif\ifjidoukintou \jidoukintoutrue
%
% \kintou
% by Shinsaku Fujita 1995/05/27
% 藤田眞作著「\LaTeX{}まくろの八衢」第24章参照。
% \leavevmode追加
%
\def\kintou#1#2{\leavevmode\hbox to#1{%
 \kanjiskip=0pt plus 1fill minus 1fill
 \xkanjiskip=\kanjiskip #2}}
%
% \jidoukintou 
% by Shinsaku Fujita 1995/05/27
% 藤田眞作著「\LaTeX{}まくろの八衢」第24章参照。
% \leavevmode追加
%
\def\jidoukintou#1{%自動均等割
%\settowidth{\@tempdima}{#1}%文字列の長さを測る
%\@jidoukintou{\@tempdima}{#1}}
\setbox9=\hbox{#1}%文字列の長さを測る
\leavevmode
\@jidoukintou{\wd9}{#1}}
\def\@jidoukintou#1#2{%条件判断の内部マクロ
\ifjidoukintou
 \ifdim#1<1.2zw \hbox{#2}%1文字
 \else\ifdim#1<2.4zw \kintou{4zw}{#2}%2文字
 \else\ifdim#1<3.4zw \kintou{5zw}{#2}%3文字
 \else\ifdim#1<4.4zw \kintou{6zw}{#2}%4文字
 \else\ifdim#1<5.4zw \kintou{6zw}{#2}%5文字
 \else #2%6文字以上
\fi\fi\fi\fi\fi\else #2\fi}
% **************
% * 自動均等割 *
% **************
% \jidoukintouII
% by Shinsaku Fujita 1998/09/06
% 藤田眞作著「続\LaTeXe{}階梯・縦組編」第9章参照。
%
\def\jidoukintouII#1{%自動均等割
\setbox9=\hbox{#1}%文字列の長さを測る
\leavevmode
\@jidoukintouII{\wd9}{#1}}
\def\@jidoukintouII#1#2{%条件判断の内部マクロ
\ifjidoukintou
 \ifdim#1<1.2zw \hbox{#2}%1文字
 \else\ifdim#1<2.4zw \kintou{4zw}{#2}%2文字
 \else\ifdim#1<3.4zw \kintou{5zw}{#2}%3文字
 \else\ifdim#1<4.4zw \kintou{5.5zw}{#2}%4文字
 \else\ifdim#1<5.4zw \kintou{6zw}{#2}%5文字
 \else #2%6文字以上
\fi\fi\fi\fi\fi\fi}
% ********
% * 字割 *
% ********
% \zenkakuwari 全角割
% \nibuwari 二分割
% \yonbuwari 四分割
% by Shinsaku Fujita 1999/12/31
\def\zenkakuwari#1{\leavevmode\hbox{%
\kanjiskip=1zw plus .5zw minus 0.125zw
\let\xkanjiskip=\kanjiskip #1}}
\def\nibuwari#1{\leavevmode\hbox{%
\kanjiskip=0.5zw plus .25zw minus 0.0625zw
\let\xkanjiskip=\kanjiskip #1}}
\def\yonbuwari#1{\leavevmode\hbox{%
\kanjiskip=0.25zw plus .125zw minus 0.031zw
\let\xkanjiskip=\kanjiskip #1}}
%
% ************
% * 文字扱い *
% ************
% \Mojiatukai
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
%
\newcount\kakkocnt%流用
\newif\ifyosokuon\yosokuonfalse
\def\zenkaku{\char\jis"2121}%全角アキ
\def\mojiatukai#1{\zenkaku\kern-1zw#1\kern-1zw\zenkaku}
\let\kanjiatukai=\mojiatukai%同義
\def\Mojiatukai#1{%
\if\noexpand#1\relax\else
\kakkocnt=`#1\relax\yosokuonfalse
\ifnum\kakkocnt=\jis"2139\relax
\yosokuontrue%
\else\ifnum\kakkocnt=\jis"2138\relax
\yosokuontrue%
\else
\ifnum\kakkocnt>\jis"2132\relax
 \ifnum\kakkocnt<\jis"2137\relax \yosokuontrue\else
  \ifnum\kakkocnt>\jis"2420\relax
   \ifnum\kakkocnt<\jis"242A\relax
    \ifodd\kakkocnt\relax \yosokuontrue\fi%%%%%
   \else
    \ifnum\kakkocnt=\jis"2443\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2463\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2465\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2467\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"246E\relax \yosokuontrue\else
  \ifnum\kakkocnt>\jis"2520\relax
   \ifnum\kakkocnt<\jis"252A\relax
    \ifodd\kakkocnt \else\yosokuontrue\fi%%%%%
   \else
    \ifnum\kakkocnt=\jis"2543\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2563\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2565\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2567\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"256E\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2575\relax \yosokuontrue\else
    \ifnum\kakkocnt=\jis"2576\relax \yosokuontrue%%%%%
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi
\ifyosokuon\mojiatukai{#1}\else#1\fi}
%
% **********
% * 均等割 *
% **********
% \KinTou
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
%
\def\KinTou#1#2{\leavevmode\kintou{#1}{%
\@tfor\mojimemb:=#2\do{%
\expandafter\Mojiatukai\mojimemb}}}
%
% ************
% * 文字判断 *
% ************
% \mojihandan
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
% 該当の文字が和字であれば\wajiswtrueを返す
%
%\newcount\kakkocnt%流用
\newif\ifwajisw\wajiswfalse
\newif\ifoujisw\oujiswfalse
\newif\ifowarisw \owariswfalse
\def\mojihandan#1{%
\if\noexpand#1\relax\else
\kakkocnt=`#1\relax\wajiswfalse
\ifnum\kakkocnt>\jis"2120\relax
\wajiswtrue\fi\fi}
%
% **************************
% * 強引な字割ためのグルー *
% **************************
% \kintouglue
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
% 直前の字と現在の字の間にグルーを入れる。
%
%  直前の字      現在の字
%  \oujiswtrue   \wajiswtrue  --- \hss 挿入
%  \oujiswfalse  \wajiswtrue  --- \hss 挿入
%  \oujiswtrue   \wajiswfalse --- \hss 挿入せず
%  \oujiswfalse  \wajiswfalse --- \hss 挿入
%
\def\kintouglue#1{\owariswfalse
\wajiswfalse\oujiswfalse
\@tfor\mojimemb:=#1\do{%
\ifwajisw\oujiswfalse\else\oujiswtrue\fi
\expandafter\mojihandan\mojimemb\relax
\ifowarisw\ifwajisw\hss\else\ifoujisw\relax\else\hss\fi\fi\fi
\mojimemb\owariswtrue}}
%
% **************
% * 強引な字割 *
% **************
\def\KinTouI#1#2{\leavevmode\hbox to#1{\kintouglue{#2}}}
%
% ********
% * 字割 *
% ********
% \ZenkakuWari 全角割
% \NibuWari 二分割
% \YonbuWari 四分割
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
%
\def\YonbuWari#1{\leavevmode\yonbuwari{%
\@tfor\mojimemb:=#1\do{%
\expandafter\Mojiatukai\mojimemb}}}
\def\NibuWari#1{\leavevmode\nibuwari{%
\@tfor\mojimemb:=#1\do{%
\expandafter\Mojiatukai\mojimemb}}}
\def\ZenkakuWari#1{\leavevmode\zenkakuwari{%
\@tfor\mojimemb:=#1\do{%
\expandafter\Mojiatukai\mojimemb}}}
%
% \jidouKinTou 
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
%
\def\jidouKinTou#1{%自動均等割
\setbox9=\hbox{#1}%文字列の長さを測る
\leavevmode
\@jidouKinTou{\wd9}{#1}}
\def\@jidouKinTou#1#2{%条件判断の内部マクロ
\ifjidoukintou
 \ifdim#1<1.2zw \hbox{#2}%1文字
 \else\ifdim#1<2.4zw \KinTou{4zw}{#2}%2文字
 \else\ifdim#1<3.4zw \KinTou{5zw}{#2}%3文字
 \else\ifdim#1<4.4zw \KinTou{6zw}{#2}%4文字
 \else\ifdim#1<5.4zw \KinTou{6zw}{#2}%5文字
 \else #2%6文字以上
\fi\fi\fi\fi\fi\else #2\fi}
% **************
% * 自動均等割 *
% **************
% \jidouKinTouII
% by Shinsaku Fujita 1999/12/31
% 藤田眞作著「入門・縦横文書術」(仮題)
%
\def\jidouKinTouII#1{%自動均等割
\setbox9=\hbox{#1}%文字列の長さを測る
\leavevmode
\@jidouKinTouII{\wd9}{#1}}
\def\@jidouKinTouII#1#2{%条件判断の内部マクロ
\ifjidoukintou
 \ifdim#1<1.2zw \hbox{#2}%1文字
 \else\ifdim#1<2.4zw \KinTou{4zw}{#2}%2文字
 \else\ifdim#1<3.4zw \KinTou{5zw}{#2}%3文字
 \else\ifdim#1<4.4zw \KinTou{5.5zw}{#2}%4文字
 \else\ifdim#1<5.4zw \KinTou{6zw}{#2}%5文字
 \else #2%6文字以上
\fi\fi\fi\fi\fi\fi}

\endinput

