% warichu.sty % by Shinsaku Fujita % Copyright (C) S. Fujita (1995,1996,1998,1999). All rights reserved. % Version 1.00 1995/09/09 % Version 1.01 1996/04/07 % Version 1.02 1998/08/24 % Version 1.03 1999/12/14 % % 作成者: 藤田眞作 % fujitas@chem.kit.ac.jp % % 藤田眞作著「LaTeX本づくりの八衢」所載 % % Version 1.02 1998/08/24 % 縦組み用の\twarichuを追加 % % 藤田眞作著「続LaTeX2e階梯・縦組編」所載 % % Version 1.03 1999/12/14 by S. Fujita % ぶら下げができるように改良 % 藤田眞作著「入門・縦横文書術」所載 % %\typeout{Option Style `warichu' by S. Fujita} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\def\j@urnalname{warichu} %\def\versi@ndate{August 24, 1998} %\def\versi@nno{ver1.02} %\def\copyrighth@lder{SF} % Shinsaku Fujita %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\j@urnalname{warichu} \def\versi@ndate{December 14, 1999} \def\versi@nno{ver1.03} \def\copyrighth@lder{S. Fujita} % Shinsaku Fujita %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \typeout{Option Style `\j@urnalname' (\versi@nno) <\versi@ndate>\space [\copyrighth@lder]} \typeout{藤田眞作著「LaTeX本づくりの八衢」所載} \typeout{藤田眞作著「続LaTeX2e階梯・縦組編」所載} \typeout{藤田眞作著「入門・縦横文書術」所載} % % pLaTeXe vs LaTeX % \@ifundefined{tbaselineshift} {\tbaselineshift=0pt}{} % % ************************** % * warichu size selection * % ************************** \let\warisize=\tiny % % **************************************************** % * For separating an augument list to each argument * % **************************************************** % delimiter == as A==B== ... ==Z % \long\def\@fordbleq#1:=#2\do#3{% % \edef\@fortmp{#2} % 1996/04/07 by Shinsaku Fujita \expandafter\def\expandafter\@fortmp\expandafter{#2}% \ifx\@fortmp\@empty \else% \expandafter\@dbleql@@p#2==\@nil==\@nil\@@#1{#3}\fi} \long\def\@dbleql@@p#1==#2==#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else% #5\def#4{#2}\ifx #4\@nnil \else#5\@idbleql@@p #3\@@#4{#5}\fi\fi} \long\def\@idbleql@@p#1==#2\@@#3#4{\def#3{#1}\ifx #3\@nnil% % \let\@nextwhile=\@fornoop \else% \expandafter\@fornoop \else% % #4\relax\let\@nextwhile=\@idbleql@@p\fi\@nextwhile#2\@@#3{#4}} #4\relax\expandafter\@idbleql@@p\fi#2\@@#3{#4}} % % \@warichu{割注文字列} % \newif\ifnakabu \nakabufalse \def\warilineskip{% \baselineskip=-1000pt \lineskip=.1zh \lineskiplimit=\maxdimen} \def\wariparfill{\kanjiskip=0pt plus1fil minus.1zw% \let\xkanjiskip=\kanjiskip% \parfillskip=0pt} \let\warichuowari=\relax %%\let\warichuowari=\wariparfill % \def\@warichu#1{\leavevmode% \setbox0=\hbox{\warisize #1}% \setbox1=\hbox{\warisize あ}% \dimen1=.5\ht1 \dimen0=0pt \@tempcnta=\z@ \@whiledim\dimen0<\wd0\do% {\advance\dimen0 by\wd1 \advance\@tempcnta\@ne}% %\typeout{文字数\the\@tempcnta; 長さ\the\dimen0; 文字列長さ\the\wd0} \dimen2=\dimen0 \advance\dimen2 -\wd0 \ifdim\dimen2<0.05pt% \typeout{OK #1; \the\@tempcnta} \ifodd\@tempcnta \advance\@tempcnta\@ne\fi \divide\@tempcnta by2\relax \dimen0=\the\@tempcnta \wd1\relax \else \divide\dimen0 by2\relax \fi \ifnakabu\dimen0=\hsize\fi \setbox2=\vbox{\hsize=\dimen0\warilineskip \warisize\noindent #1\warichuowari}% \leavevmode\lower\dimen1\hbox{\box2}} % % \w@richu{前部割注==中部割注== ... ==後部割注} % \newif\ifwarigaki \warigakifalse \def\w@richu#1{% \@tempcnta=0 \@fordbleq\member:=#1\do{\global\advance\@tempcnta\@ne}% \ifnum\@tempcnta=1\relax \ifwarigaki \begingroup\let\warichuowari=\relax\@warichu{#1}% \else \begingroup\let\warichuowari=\relax(\@warichu{#1})% \fi\endgroup \else \@tempcntb=0 \@fordbleq\member:=#1\do{% \advance\@tempcntb\@ne \ifnum\@tempcntb=1 \begingroup\let\warichuowari=\wariparfill \ifwarigaki \expandafter\@warichu{\member}% \else (\expandafter\@warichu{\member}% \fi\endgroup\break \else \ifnum\@tempcntb=\@tempcnta \begingroup \let\warichuowari=\relax \ifwarigaki \expandafter\@warichu{\member} \else \expandafter\@warichu{\member})% \fi\endgroup \else \begingroup\nakabutrue\let\warichuowari=\wariparfill \expandafter\@warichu{\member}\endgroup\break \fi\fi}% \fi} % % 横組み用割注命令 % \warichu{親文字}{前部割注==中部割注== ... ==後部割注} % \def\warichu#1#2{\warigakifalse #1\hskip.25\xkanjiskip\w@richu{#2}} % % 横組み用割書命令 % \warigaki{前部割注==中部割注== ... ==後部割注} % \def\warigaki#1{\warigakitrue\hskip.25\xkanjiskip\w@richu{#1}} % % 縦組み割注用括弧 % 全角括弧を二分鋳込みにしておく % \def\warikakkol{\hbox to.5zw{\hss\kern-.5zw(}\kern0pt} \def\warikakkor{\kern0pt\hbox to.5zw{)\kern-.5zw\hss}} % % 変更 % \def\Warikakkol{\hskip.16667zw\hbox to.33333zw{\hss\kern-.66667zw(}% \kern0pt} \def\Warikakkor{\kern0pt\hbox to.33333zw{)\kern-.66667zw\hss}% \hskip.16667zw} \newif\ifburasage\burasagefalse % % 縦組み用割注 % % ぶら下げができるように改良 % 1999/12/14 by S. Fujita % \def\@twarichu#1{\leavevmode% \setbox0=\hbox{\warisize #1}% \setbox1=\hbox{\warisize あ}% \dimen1=.5\ht1 \dimen0=0pt \@tempcnta=\z@ \@whiledim\dimen0<\wd0\do% {\advance\dimen0 by\wd1 \advance\@tempcnta\@ne}% %\typeout{文字数\the\@tempcnta; 長さ\the\dimen0; 文字列長さ\the\wd0}% \dimen2=\dimen0 \advance\dimen2 -\wd0 \ifdim\dimen2<0.05pt %{\let\。=\relax\let\、=\relax \typeout{OK #1; \the\@tempcnta}}% \ifodd\@tempcnta \advance\@tempcnta\@ne\fi \divide\@tempcnta by2\relax \dimen0=\the\@tempcnta \wd1\relax %{\let\。=\relax\let\、=\relax \typeout{OK/2 #1; \the\@tempcnta}}% \else \divide\dimen0 by2\relax\fi \ifnakabu\dimen0=\hsize\fi %%%%% \setbox2=\vbox{\hsize=\dimen0\warilineskip \warichuowari \warisize\noindent #1% \hbox to\dimen0{ \hfill}}%%全角空白 \setbox2=\vbox{\hsize=\dimen0\unvbox2\setbox4=\lastbox}% \setbox2=\vbox{\hsize=\dimen0\unvbox2\unskip}% %%%% \leavevmode \dimen3=\ht2 \divide\dimen3 by2 \dimen4=\dimen3 \advance\dimen3 by\tbaselineshift \advance\dimen3 by-.1zw \advance\dimen4 by-\tbaselineshift \advance\dimen4 by.1zw \dp2=\dimen4\ht2=\dimen3\box2}% %% %% 縦組み用割注 %% %\def\@twarichu#1{\leavevmode% %\setbox0=\hbox{\warisize #1}% %\setbox1=\hbox{\warisize あ}% %\dimen1=.5\ht1 \dimen0=0pt \@tempcnta=\z@ %\@whiledim\dimen0<\wd0\do% %{\advance\dimen0 by\wd1 \advance\@tempcnta\@ne}% %%\typeout{文字数\the\@tempcnta; 長さ\the\dimen0; 文字列長さ\the\wd0} %\dimen2=\dimen0 \advance\dimen2 -\wd0 %\ifdim\dimen2<0.05pt% \typeout{OK #1; \the\@tempcnta} % \ifodd\@tempcnta \advance\@tempcnta\@ne\fi % \divide\@tempcnta by2\relax % \dimen0=\the\@tempcnta \wd1\relax %\else % \divide\dimen0 by2\relax %\fi %\ifnakabu\dimen0=\hsize\fi % \setbox2=\vbox{\hsize=\dimen0\warilineskip % \warisize\noindent #1\warichuowari}% %% \leavevmode\lower\dimen1\hbox{\box2}} % \leavevmode % \dimen3=\ht2 \divide\dimen3 by2 % \dimen4=\dimen3 % \advance\dimen3 by\tbaselineshift % \advance\dimen3 by-.075zw % \advance\dimen4 by-\tbaselineshift % \advance\dimen4 by.075zw % \dp2=\dimen4\ht2=\dimen3\box2} % % \tw@richu{前部割注==中部割注== ... ==後部割注} % \def\tw@richu#1{% \ifwarigaki \let\warikakkol=\relax \let\warikakkor=\relax\fi \fboxsep=0pt \@tempcnta=0 \@fordbleq\member:=#1\do{\global\advance\@tempcnta\@ne}% \ifnum\@tempcnta=1\relax %括弧を付ける \begingroup\let\warichuowari=\relax \ifx\warisize\tiny\warikakkol\else{\large\warikakkol}\fi \@twarichu{#1}% \ifburasage\kern.125zw\fi%八分アキadded 1999/12/15 \ifx\warisize\tiny\warikakkor\else{\large\warikakkor}\fi \endgroup \else \@tempcntb=0 \@fordbleq\member:=#1\do{% \advance\@tempcntb\@ne \ifnum\@tempcntb=1 \begingroup\let\warichuowari=\wariparfill %左括弧を付ける \ifx\warisize\tiny\warikakkol\else{\large\warikakkol}\fi \expandafter\@twarichu{\member}\endgroup\break \else \ifnum\@tempcntb=\@tempcnta \begingroup \let\warichuowari=\relax %右括弧を付ける \expandafter\@twarichu{\member}% \ifburasage\kern.125zw\fi%八分アキadded 1999/12/15 \ifx\warisize\tiny\warikakkor\else{\large\warikakkor}\fi \endgroup \else \begingroup\nakabutrue\let\warichuowari=\wariparfill \expandafter\@twarichu{\member}\endgroup\break \fi\fi}% \fi} % % % % %\def\tw@richu#1{% %\ifwarigaki \let\warikakkol=\relax %\let\warikakkor=\relax\fi %\fboxsep=0pt %\@tempcnta=0 %\@fordbleq\member:=#1\do{\global\advance\@tempcnta\@ne}% %\ifnum\@tempcnta=1\relax %%括弧を付ける % \begingroup\let\warichuowari=\relax % \ifx\warisize\tiny\warikakkol\else{\large\warikakkol}\fi % \@twarichu{#1}% % \ifx\warisize\tiny\warikakkor\else{\large\warikakkor}\fi % \endgroup %\else % \@tempcntb=0 % \@fordbleq\member:=#1\do{% % \advance\@tempcntb\@ne % \ifnum\@tempcntb=1 % \begingroup\let\warichuowari=\wariparfill %%左括弧を付ける % \ifx\warisize\tiny\warikakkol\else{\large\warikakkol}\fi % \expandafter\@twarichu{\member}\endgroup\break % \else % \ifnum\@tempcntb=\@tempcnta % \begingroup \let\warichuowari=\relax %%右括弧を付ける % \expandafter\@twarichu{\member}% % \ifx\warisize\tiny\warikakkor\else{\large\warikakkor}\fi % \endgroup % \else % \begingroup\nakabutrue\let\warichuowari=\wariparfill % \expandafter\@twarichu{\member}\endgroup\break % \fi\fi}% % \fi} % % % % 縦組み用割注命令 % \twarichu{親文字}{前部割注==中部割注== ... ==後部割注} % \def\twarichu#1#2{\warigakifalse #1\hskip.25\xkanjiskip\tw@richu{#2}} % % 縦組み用割書命令 % \twarigaki{前部割注==中部割注== ... ==後部割注} % \def\twarigaki#1{\warigakitrue\hskip.25\xkanjiskip\tw@richu{#1}} \endinput