%%% Package Version 2002 V5.0 2002.10.31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TeX 版 \nagamaru マクロ % 1994/09/28 Kouichi Matsuda % kmatsuda@math.hokudai.ac.jp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % LaTeX 版では \萌芽的研究 および \広領域 の2つの % マクロは項目を楕円でかこんでくれます (実際には、 % \nagamaru マクロ) が、LaTeX の picture 環境を使用 % しているため、TeX 版では何もしない。 % 去年、これが、非常にくやしかったので(笑)、TeX 版 % でも、\nagamaru マクロを使えるようにしてみました。 % % 実際には、\nagamaru マクロは、次の三箇所の変更 % \setlength{\unitlength}{1sp} -> \unitlength=1sp % \begin{picture} -> \picture % \end{picture} -> \endpicture % の他は LaTeX 版と同じです。 % % そのため、LaTeX から、picture 環境のあたりの必要 % 最小限の定義をひろってきます。 % 多分、これ以上は、削れないと思うのですが… % % 使用法: % このファイルを、kakenhi.mac の最後に付け足せば % \nagamaru マクロで楕円を描いてくれます。 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \catcode`\@=11 % This allows us to modify PLAIN macros. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 以下、lfonts.tex (25 Nov 1991) および latex.tex % (25 Mar 1992) から、必要部分 (フォントと picture % 環境の circle および oval あたり) を抜き出します。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% %%%%% Additional fonts: % File LFONTS - Version of 25 November 1991 % line & circle fonts \font\tenln = line10 \font\tenlnw = linew10 \font\tencircw = lcirclew10% 21 Nov 89 : circlew10 -> lcirclew10 %%%%% %%%%% Picture environment: % LATEX VERSION 2.09 <25 March 1992> % Copyright (C) 1992 by Leslie Lamport % **************************************** % * THE PICTURE ENVIRONMENT * % **************************************** \newdimen\@wholewidth \newdimen\@halfwidth \newdimen\unitlength \unitlength =1pt \newbox\@picbox \newdimen\@picht % \def\picture(#1,#2){\@ifnextchar({\@picture(#1,#2)}{\@picture(#1,#2)(0,0)}} % \def\@picture(#1,#2)(#3,#4){\@picht #2\unitlength \setbox\@picbox\hbox to #1\unitlength\bgroup \hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup\ignorespaces} % \def\endpicture{\egroup\hss\egroup\ht\@picbox\@picht \dp\@picbox\z@\mbox{\box\@picbox}} % \long\def\put(#1,#2)#3{\@killglue\raise#2\unitlength\hbox to \z@{\kern #1\unitlength #3\hss}\ignorespaces} % \def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}} % \def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth} % % CIRCLES AND OVALS \newif\if@ovt \newif\if@ovb \newif\if@ovl \newif\if@ovr \newdimen\@ovxx % also used as \@nagax \newdimen\@ovyy % also used as \@nagay \newdimen\@ovdx % also used as \@nagaxx \newdimen\@ovdy % also used as \@nagayy \newdimen\@ovro \newdimen\@ovri % \def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@ \@tempcnta\@tempdima \@tempdima 4\p@ \divide\@tempcnta\@tempdima \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne \else \@warning{Oval too small}\fi \multiply\@tempcnta 4\relax \setbox \@tempboxa \hbox{\@circlefnt \char \@tempcnta}\@tempdima \wd \@tempboxa} % \def\@put#1#2#3{\raise #2\hbox to \z@{\hskip #1#3\hss}} % \def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}} % \def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx #1\unitlength \@ovyy #2\unitlength \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi \advance \@tempdimb -2\p@ \@getcirc \@tempdimb \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ \@circlefnt \setbox\@tempboxa \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi \if@ovt \@ovhorz \kern -\@ovxx \fi \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup} % \def\@ovvert#1#2{\vbox to\@ovyy{% \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip \else \kern \@ovri \kern \@ovdy \fi \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax \hbox{\char \@tempcntb}% \else \kern \@ovdy \kern \@ovro \fi}} % \def\@ovhorz{\hbox to \@ovxx{\kern \@ovro \if@ovr \else \kern \@ovdx \fi \leaders \hrule \@height \@wholewidth \hfil \if@ovl \else \kern \@ovdx \fi \kern \@ovri}} % %%%%% %%%%% end of Picture environment. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % さらに、上のマクロ達に必要なものを抜き出します。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% %%%%% Additional definitions. % \def\@height{height} \def\@width{width} % %%%%% %%%%% Followings are required. %%%%% (especially \raisebox is required in \nagamaru): \def\raisebox#1{\@ifnextchar[{\@argrsbox{#1}}{\@rsbox{#1}}} % \def\@ifnextchar#1#2#3{\let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet \@tempc\@ifnch} \def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi \fi \@tempd} % \def\@argrsbox#1[#2]{% \@ifnextchar[{\@iirsbox{#1}[#2]}{\@irsbox{#1}[#2]}} % %%%%% %%%%% \@tempboxa is required \@getcirc: \newbox\@tempboxa \long\def\@iirsbox#1[#2][#3]#4{\setbox\@tempboxa \hbox {\raise #1\hbox{#4}}\ht\@tempboxa#2\dp\@tempboxa#3\leavevmode\box\@tempboxa} % %%%%% %%%%% \@whiledim is required \@killglue: \def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi} \def\@iwhiledim#1{\ifdim #1\let\@nextwhile\@iwhiledim \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}} % %%%%% %%%%% \@tfor is required in \@oval: \def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\@empty \else \@tforloop#2\@nil\@nil\@@#1{#3}\fi} \def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil \let\@nextwhile\@fornoop \else #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}} % \def\@nnil{\@nil} \def\@fornoop#1\@@#2#3{} % %%%%% %%%%% Followings are required in \@oval: \newdimen\@tempdima \newdimen\@tempdimb % %%%%% %%%%% Followings are required in \@ovvert: \newcount\@tempcnta \newcount\@tempcntb % %%%%% %%%%% Followings are required (especially \makebox): \def\makebox{\@ifnextchar ({\@makepicbox}{\@ifnextchar [{\@makebox}{\mbox}}} % \def\mbox#1{\leavevmode\hbox{#1}} % \def\@makepicbox(#1,#2){\leavevmode\@ifnextchar [{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}} % \long\def\@imakepicbox(#1,#2)[#3]#4{\vbox to#2\unitlength {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss \let\mb@t\vss \@tfor\@tempa :=#3\do{\expandafter\let \csname mb@\@tempa\endcsname\relax}% \mb@t\hbox to #1\unitlength{\mb@l #4\mb@r}\mb@b}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 最後に、kakenhi.sty から \nagamaru マクロを一部 % 変更して持って来ます。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% % \nagamaru{xyz} : encircled string 'xyz'. 'xyz' can be a 'tabular' % July 2, 1992 \let\@nagax=\@ovxx \let\@nagaxx=\@ovdx \let\@nagay=\@ovyy \let\@nagayy=\@ovdy \newbox\@nagabox \def\nagamaru#1{{% \unitlength=1sp% LaTeX 版は \setlength{\unitlength}{1sp}% \setbox\@nagabox=\hbox{\vrule width0pt height0.9zh depth0.1zh#1}% \@nagax=\ht\@nagabox\advance\@nagax by 0.7zw% \@nagay=\dp\@nagabox\advance\@nagay by 0.7zh% \@nagayy=\dp\@nagabox\advance\@nagayy by 0.5zh% \raisebox{-1\@nagayy}[\@nagax][\@nagay]{% \@nagax=\wd\@nagabox\advance\@nagax by 1zw% \@nagay=\ht\@nagabox\advance\@nagay by \dp\@nagabox\advance\@nagay by 1zh% \picture(\number\@nagax,\number\@nagay)(0,0)% % LaTeX 版は \begin{picture}(\number\@nagax,\number\@nagay)(0,0)% \thicklines% \@nagaxx=\@nagax\divide\@nagaxx by 2% \@nagayy=\@nagay\divide\@nagayy by 2% \divide\@nagay by 131072 \multiply\@nagay by 131071% omajinai \put(\number\@nagaxx,\number\@nagayy){\oval(\number\@nagax,\number\@nagay)}% \put(\number\@nagaxx,\number\@nagayy){\makebox(0,0){#1}}% \endpicture}% % LaTeX 版は \end{picture}}% }} % %%%%% %%%%% end of definition (\nagamaru). % \catcode`\@=12%