%%
%% This is file `okumacro.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% okumacro.dtx  (with options: `okumacro')
%% 
%% Maintained on GitHub: https://github.com/texjporg/jsclasses
%% 
\ifx\epTeXinputencoding\undefined\else
  \epTeXinputencoding utf8 % ^^A added (2017-10-04)
\fi
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{okumacro}[2025/05/10 okumura, texjporg]
\providecommand{\rubyfamily}{}
\def\kanjistrut{\iftdir
  \vrule \@height0.5zw \@depth0.5zw \@width\z@
\else
  \vrule \@height0.88zw \@depth0.12zw \@width\z@
\fi}
\chardef\okumacro@zsp=\jis"2121\relax
\newcommand{\ruby}[3][0zw]{%
  \okumacro@zsp
  \kern-1zw\relax
  \dimen3=\f@size\p@
  \setbox1=\hbox{#2}%
  \setbox3=\hbox{\rubyfamily\fontsize{0.5\dimen3}{0pt}\selectfont #3}%
  \dimen1=#1\relax
  \ifdim\dimen1=\z@
    \ifdim\wd1>\wd3 \dimen1=\wd1 \else \dimen1=\wd3 \fi
  \else
    \ifdim\dimen1<\wd1
      \dimen1=\wd1
    \fi
  \fi
  \hbox{%
    \kanjiskip=0pt plus 2fil
    \xkanjiskip=0pt plus 2fil
    \vbox{%
      \hbox to \dimen1{\rubyfamily
        \fontsize{0.5\dimen3}{0pt}\selectfont \kanjistrut
        \ifdim\dimen1<\wd3
          \hss\unhbox3\hss
        \else
          \hfil\unhbox3\hfil
        \fi
      }%
      \nointerlineskip
      \hbox to \dimen1{\kanjistrut\hfil\unhbox1\hfil}}}%
      \kern-1zw\relax\okumacro@zsp}
\def\kenten#1{%
  \okumacro@zsp
  \kern-1zw\relax
  \setbox1=\hbox to\z@{\hbox to 1zw{\hss ・\hss}\hss}%
  \ht1=.63zw
  \@kenten#1\end\relax
  \kern-1zw\relax\okumacro@zsp}
\def\@kenten#1#2{%
  \ifx#1\end \let\next=\relax \else
    \raise.75zw\copy1\nobreak #1\ifx#2\end\else\hskip\kanjiskip\relax\fi
    \let\next=\@kenten
  \fi\next#2}
\newcommand{\kintou}[2]{%
  \leavevmode
  \hbox to #1{%
    \kanjiskip=0pt plus 1fil minus 1fil
    \xkanjiskip=\kanjiskip
    #2}}
\newcommand{\曜}{{\@tempcnta=\year \@tempcntb=\month
  \ifnum \@tempcntb<3
    \advance \@tempcnta by -1
    \advance \@tempcntb by 12
  \fi
  \multiply \@tempcntb by 13
  \advance \@tempcntb by 8
  \divide \@tempcntb by 5
  \advance \@tempcntb by \@tempcnta
  \divide \@tempcnta by 4
  \advance \@tempcntb by \@tempcnta
  \divide \@tempcnta by 25
  \advance \@tempcntb by -\@tempcnta
  \divide \@tempcnta by 4
  \advance \@tempcntb by \@tempcnta
  \advance \@tempcntb by \day
  \@tempcnta=\@tempcntb
  \divide \@tempcntb by 7
  \multiply \@tempcntb by 7
  \advance \@tempcnta by -\@tempcntb
  \ifcase \@tempcnta 日\or 月\or 火\or 水\or 木\or 金\or 土\fi}}
\def\挨拶{\noindent 拝啓\hspace{1zw}\ifcase\month\or
  厳寒\or 春寒\or 早春\or 陽春\or 新緑\or 向暑\or
  猛暑\or 残暑\or 初秋\or 仲秋\or 晩秋\or 初冬\fi
  の候，ますますご清栄のこととお喜び申し上げます。}
\def\myallowbreak{\@ifnextchar\egroup{}{\penalty\exhyphenpenalty}{}}
\begingroup
  \catcode`\-=\active
  \catcode`\.=\active
  \catcode`\/=\active
  \gdef\mytth@@k{%
    \catcode`\-=\active \def-{\char`\-\myallowbreak}%
    \catcode`\.=\active \def.{\char`\.\myallowbreak}%
    \catcode`\/=\active \def/{\char`\/\myallowbreak}%
  }
\endgroup
\def\mytt{\ttfamily
  \catcode`\#=12
  \catcode`\&=12
  \catcode`\^=12
  \catcode`\~=12
  \catcode`\_=12
  \chardef\{=`\{
  \chardef\}=`\}
  \chardef\_=`\_
  \def\\{\char"5C\penalty\exhyphenpenalty{}}% バックスラッシュ
  \spaceskip=.32em plus.16em minus.09em
  \frenchspacing
  \noautoxspacing
  \mytth@@k}
\DeclareRobustCommand{\yen}{{\ooalign{Y\crcr\hss=\hss}}}
\providecommand{\BS}{\texttt{\char"5C}}
{\catcode`\|=\z@ \catcode`\\=12|gdef|bslash{\}}
\newcommand{\asciibar}{%
  \makebox[0.525em]{\rule[-0.2ex]{0.15ex}{0.7ex}\kern-0.15ex
    \rule[0.8ex]{0.15ex}{0.7ex}}}
\def\−−{―\kern-.5zw―\kern-.5zw―}
\def\――{―\kern-.5zw―\kern-.5zw―}
\ifnum\jis"2121="3000 % upTeX check
  \begingroup
    \kansujichar1="FF0D
    \kansujichar2="2014
    \expandafter\expandafter\expandafter\gdef
    \expandafter\csname\expandafter\kansuji\expandafter1%
    \expandafter\endcsname\kansuji1{―\kern-.5zw―\kern-.5zw―}
    \expandafter\expandafter\expandafter\gdef
    \expandafter\csname\expandafter\kansuji\expandafter2%
    \expandafter\endcsname\kansuji2{―\kern-.5zw―\kern-.5zw―}
  \endgroup
\fi
\newcommand{\removept}[2]{%
  \edef#2{\expandafter\@removePT\the#1}}
{\catcode`p=12 \catcode`t=12 \gdef\@removePT#1pt{#1}}
\newcommand{\okukeytop}[1]{{\leavevmode\kern1pt
  \setbox1=\hbox{\normalfont\sffamily [}%
  \dimen1=\ht1
  \removept{\dimen1}{\tempC}%
  \setbox0=\hbox{\normalfont\sffamily #1}%
  \dp0=0pt
  \dimen0=\wd0
  \ifdim\dimen0<\ht1 \dimen0=\ht1 \fi
  \advance \dimen0 by 5pt
  \removept{\dimen0}{\tempA}%
  \divide \dimen0 by 2
  \removept{\dimen0}{\tempB}%
  \unitlength=1pt
  \advance \dimen1 by 2pt
  \hbox{\vrule height\dimen1 depth2pt width0pt}%
  \begin{picture}(\tempA,\tempC)
    \put(0,0){\line(0,1){\tempC}}
    \put(\tempA,0){\line(0,1){\tempC}}
    \put(\tempB,0){\oval(\tempA,4)[b]}
    \put(\tempB,\tempC){\oval(\tempA,4)[t]}
    \put(\tempB,0){\makebox(0,0)[b]{\box0}}
  \end{picture}\kern1pt}}
\expandafter\ifx\csname ver@tascmac.sty\endcsname\relax
  \newcommand{\keytop}{\okukeytop}
\else
  \renewcommand{\keytop}{\okukeytop}
\fi
\def\RETMARK{{\unitlength=1pt
  \setbox0=\hbox{\normalfont\ttfamily [}%
  \dimen0=\ht0
  \removept{\dimen0}{\tempA}%
  \advance \dimen0 by -1pt
  \removept{\dimen0}{\tempB}%
  \begin{picture}(\tempA,\tempA)
    \put(\tempA,1){\line(0,1){\tempB}}
    \put(\tempA,1){\vector(-1,0){\tempA}}
  \end{picture}}}
\newcommand{\okureturn}{\okukeytop{\RETMARK}}
\expandafter\ifx\csname ver@tascmac.sty\endcsname\relax
  \newcommand{\return}{\okureturn}
\else
  \renewcommand{\return}{\okureturn}
\fi
\newcommand{\upkey}{\raisebox{-2pt}{%
  \setlength{\unitlength}{1pt}%
  \thinlines
  \begin{picture}(14,9)
    \put(7,2){\vector(0,1){8}}
    \put(1,2){\line(0,1){7}}
    \put(13,2){\line(0,1){7}}
    \put(7,9){\oval(12,4)[t]}
    \put(7,2){\oval(12,4)[b]}
  \end{picture}%
}}
\newcommand{\downkey}{\raisebox{-2pt}{%
  \setlength{\unitlength}{1pt}%
  \thinlines
  \begin{picture}(14,9)
    \put(7,10){\vector(0,-1){8}}
    \put(1,2){\line(0,1){7}}
    \put(13,2){\line(0,1){7}}
    \put(7,9){\oval(12,4)[t]}
    \put(7,2){\oval(12,4)[b]}
  \end{picture}%
}}
\newcommand{\rightkey}{\raisebox{-2pt}{%
  \setlength{\unitlength}{1pt}%
  \thinlines
  \begin{picture}(14,9)
    \put(3,6){\vector(1,0){8}}
    \put(1,2){\line(0,1){7}}
    \put(13,2){\line(0,1){7}}
    \put(7,9){\oval(12,4)[t]}
    \put(7,2){\oval(12,4)[b]}
  \end{picture}%
}}
\newcommand{\leftkey}{\raisebox{-2pt}{%
  \setlength{\unitlength}{1pt}%
  \thinlines
  \begin{picture}(14,9)
    \put(11,6){\vector(-1,0){8}}
    \put(1,2){\line(0,1){7}}
    \put(13,2){\line(0,1){7}}
    \put(7,9){\oval(12,4)[t]}
    \put(7,2){\oval(12,4)[b]}
  \end{picture}%
}}
\newcommand{\MARU}[1]{{%
    \ooalign{\hfil
      \@ifundefined{scalebox}{%
        #1\/\hfil\crcr\raise.167ex}{\raise.1zw\hbox{\scalebox{0.8}{#1\/}}\hfil\crcr\raise.1zw}%
      \hbox{\fontencoding{OMS}\fontfamily{cmsy}\fontseries{m}\fontshape{n}\selectfont
        \char"0D}}}}
\newcommand{\PiC}{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
\newcommand{\PiCTeX}{\PiC\kern-.11em\TeX}
\newcommand{\JTeX}{\leavevmode\lower.5ex\hbox{J}\kern-.17em\TeX}
\newcommand{\JLaTeX}{\leavevmode\lower.5ex\hbox{\rm J}\kern-.17em\LaTeX}
\DeclareRobustCommand{\JBibTeX}{$\m@th\mbox{%
  \lower.5ex\hbox{J}\kern-.05em\BibTeX}$}
\newcommand{\pTeXsT}{p\kern-.21em\TeX\kern-.10em s\kern-.21em T}
\newcommand{\iTeX}{\accent'27\i\TeX}
\newcommand{\MlTeX}{M\kern-.1667em\lower.5ex\hbox{L}\kern-.25em\TeX}
\newenvironment{dangerous}{%
  \vspace{3pt}%
  \begin{list}{\ding{"2E}}{%
    \setlength{\leftmargin}{3zw}%
    \setlength{\itemindent}{0pt}%
    \setlength{\labelwidth}{2zw}%
    \setlength{\labelsep}{6pt}%
    \setlength{\rightmargin}{0pt}%
    \setlength{\itemsep}{0.5\baselineskip}%
    \setlength{\parsep}{0pt}%
    \setlength{\topsep}{0.5\baselineskip}%
    \setlength{\partopsep}{0pt}%
    \setlength{\listparindent}{0zw}%
  }\small}{\end{list}}
\newcommand{\namelistlabel}[1]{\hspace{1zw}#1\hfil}
\newenvironment{namelist}[1]{%
  \begin{list}{}{%
    \let\makelabel=\namelistlabel
    \settowidth{\labelwidth}{#1}%
    \addtolength{\labelwidth}{2zw}%
    \setlength{\leftmargin}{\labelwidth}%
    \setlength{\labelsep}{0pt}%
  }}{\end{list}}
\newenvironment{mybibliography}[1]{%
   \list{\@biblabel{\@arabic\c@enumiv}}%
        {\settowidth\labelwidth{\@biblabel{#1}}%
         \leftmargin\labelwidth
         \advance\leftmargin\labelsep
         \@openbib@code
         \@nmbrlisttrue\def\@listctr{enumiv}%
         \let\p@enumiv\@empty
         \renewcommand\theenumiv{\@arabic\c@enumiv}}%
   \sloppy
   \clubpenalty4000
   \@clubpenalty\clubpenalty
   \widowpenalty4000%
   \sfcode`\.\@m}
  {\def\@noitemerr
    {\@latex@warning{Empty `mybibliography' environment}}%
   \endlist}
\newenvironment{FRAME}{\begin{trivlist}\item[]
  \hrule width\linewidth
  \hbox to \linewidth\bgroup
    \advance\linewidth by -30pt
    \hsize=\linewidth
    \vrule\hfill
    \vbox\bgroup
      \vskip15pt
      \def\thempfootnote{\arabic{mpfootnote}}% 脚注を算用数字に
      \begin{minipage}{\linewidth}}{%
      \end{minipage}\vskip15pt
    \egroup\hfill\vrule
  \egroup\hrule width\linewidth
  \end{trivlist}}
\newcommand{\SHUTTEN}[1]{%
  \par\nobreak\removelastskip\rightline{\small#1}\medbreak}
\expandafter\ifx\csname ver@tascmac.sty\endcsname\relax
  \newdimen\@scw
  \newbox\scb@x
\fi
\newenvironment{okuscreen}[1][1]%
 {\def\screensc@le{#1}\@scw=\linewidth \advance \@scw by -20pt
  \dimen1=#1\p@\relax
  \@tempcnta=\dimen1\relax
  \@tempcntb=65536\relax
  \divide\@scw by \@tempcnta
  \multiply\@scw by \@tempcntb
  \setbox\scb@x=\hbox\bgroup\begin{minipage}[b]{\@scw}}%
     % または \setbox\scb@x=\vbox\bgroup\advance \linewidth by -20pt \relax
 {\end{minipage}\egroup
  \dimen0=\linewidth \removept{\dimen0}{\hsPT}%
  \divide \dimen0 by 2 \removept{\dimen0}{\hhsPT}%
  \dimen0=\dp\scb@x \advance \dimen0 by 5pt
  \advance \dimen0 by -.5\cdp %% !
  \removept{\dimen0}{\hdxPT}%
  \advance \dimen0 by \ht\scb@x \advance \dimen0 by 5pt
  \advance \dimen0 by -.5\cdp %% !
  \removept{\dimen0}{\htxPT}%
  \begin{flushleft}
    \vspace{6.5pt}%
    \begin{picture}(\hsPT,\htxPT)
      \put(\hhsPT,\htxPT){\oval(\hsPT,10)[t]}
      \put(0,0){\line(0,1){\htxPT}}
      \put(\hsPT,0){\line(0,1){\htxPT}}
      \put(\hhsPT,0){\oval(\hsPT,10)[b]}
      \put(10,\hdxPT){\ifdim\screensc@le pt=1pt \box\scb@x
                 \else\scalebox{\screensc@le}[1]{\box\scb@x}\fi}
    \end{picture}%
  \end{flushleft}}
\let\screen\okuscreen \let\endscreen\endokuscreen
\newdimen\EXAMPLEWIDTH
\newenvironment{EXAMPLE}{\begin{flushleft}\EXAMPLEWIDTH=\linewidth
  }{\end{flushleft}}
\newenvironment{IN}{%
  \makebox[35pt][l]{\small\fbox{入力}}%
  \advance \linewidth by -35pt
  \begin{minipage}[t]{\linewidth}}{%
  \end{minipage}\\[6pt]}
\newenvironment{OUT}{%
  \makebox[35pt][l]{\small\fbox{出力}}%
  \advance \linewidth by -35pt
  \begin{minipage}[t]{\linewidth}}{%
  \end{minipage}}
\newcommand{\INEX}{\medbreak\noindent
  \framebox[\columnwidth][l]{\small\hskip2zw 入力}\nobreak
  \begin{quote}\small}
\newcommand{\OUTEX}{\end{quote}
  \framebox[\columnwidth][l]{\small\hskip2zw 出力}\nobreak
  \begin{quotation}\small}
\newcommand{\ENDEX}{\end{quotation}\bigbreak}
\newcommand{\ENDEXC}[1]{\end{quotation}\nobreak
  \begin{flushright}\footnotesize#1\end{flushright}\bigbreak}

\def\okumacro@pageref#1{%
  \expandafter\expandafter\expandafter
      \okumacro@pageref@a\csname r@#1\endcsname{0}\@nil}
\def\okumacro@pageref@a#1#2#3\@nil{#2}
\def\whichpage#1{%
  \expandafter\ifx\csname r@#1\endcsname\relax
  \else
    \@tempcnta\okumacro@pageref{#1}\relax
    \advance\@tempcnta-\c@page
    \ifnum\@tempcnta=0
    \else
      \ifnum\@tempcnta=1 （次ページ）
      \else
        \ifnum\@tempcnta=-1 （前ページ）
        \else （\okumacro@pageref{#1}ページ）
        \fi
      \fi
    \fi
  \fi}
\expandafter\ifx\csname ver@tascmac.sty\endcsname\relax
  \newdimen\shaderule \shaderule 5\p@
\fi
\def\okushadebox{\dimen0\linewidth \advance\dimen0-20\p@
  \advance\dimen0-2\fboxrule \advance\dimen0-\shaderule
  \setbox\@tempboxa=\hbox\bgroup\minipage{\dimen0}}
\def\endokushadebox{\endminipage\egroup\dimen0=10\p@ \advance\dimen0-\fboxrule
  \setbox\@tempboxa=\hbox{\kern\dimen0\unhbox\@tempboxa\kern\dimen0}%
  \setbox0=\vbox{\hrule\@height \fboxrule
  \hbox{\vrule\@width \fboxrule \hskip-\fboxrule
  \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}%
  \hskip-\fboxrule\vrule \@width \fboxrule}\hrule \@height \fboxrule}%
  \dimen0=\ht0 \advance\dimen0-\shaderule
  \hbox{\hbox to \shaderule{\copy0\hss}\kern \z@
  \vrule\@width\wd0\@height\z@\@depth\shaderule\hskip-\shaderule
  \vrule\@width\shaderule\@height\dimen0}}
\let\shadebox\okushadebox \let\endshadebox\endokushadebox
\def\sankoumark{{\small ★}}
\newenvironment{sankou}{\vspace{3pt}%
  \begin{list}{}{%
    \setlength{\leftmargin}{3zw}%
    \setlength{\itemindent}{0pt}%
    \setlength{\labelwidth}{2zw}%
    \setlength{\labelsep}{6pt}%
    \setlength{\rightmargin}{0pt}%
    \setlength{\itemsep}{0pt}%
    \setlength{\parsep}{0pt}%
    \setlength{\topsep}{0.5\baselineskip}%
    \setlength{\partopsep}{0pt}%
    \setlength{\listparindent}{0zw}%
  }\item[\sankoumark]\small}{\end{list}}
\def\toimark{{\small\bf 【問】}}
\newenvironment{toi}{\vspace{3pt}%
  \begin{list}{}{%
    \setlength{\leftmargin}{3zw}%
    \setlength{\itemindent}{0pt}%
    \setlength{\labelwidth}{2zw}%
    \setlength{\labelsep}{6pt}%
    \setlength{\rightmargin}{0pt}%
    \setlength{\itemsep}{0pt}%
    \setlength{\parsep}{3pt plus 1pt minus 1pt}%
    \setlength{\topsep}{3pt plus 1pt minus 1pt}%
    \setlength{\partopsep}{3pt plus 6pt minus 1pt}%
    \setlength{\listparindent}{0zw}%
  }\item[\toimark]\small}{\end{list}}
\providecommand{\eps}{\varepsilon}
\def\LEQQ{\mathrel{\mathpalette\gl@align<}}
\def\GEQQ{\mathrel{\mathpalette\gl@align>}}
\def\gl@align#1#2{\lower.6ex\vbox{\baselineskip\z@skip\lineskip\z@
    \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
\def\APPROX{\mathrel{\mathpalette\ap@align{\smash.}}}
\def\ap@align#1#2{\lower.2ex\vbox{\baselineskip\z@skip\lineskip\z@
    \def\finsm@sh{\ht\z@.2ex \dp\z@.2ex \box\z@}%
    \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr#2\crcr}}}
%%% Fractions like 1/2 by DEK (TUGboat, 6(1):36, TeXbook (Excercise 11.6))
\def\FRAC#1#2{\leavevmode\kern.1em
  \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
  /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
\newcommand{\hk}{\hspace{\kanjiskip}}
\newcommand{\hx}{\hspace{\xkanjiskip}}
\newcommand{\3}{\penalty300 }
\newcommand{\5}{\penalty50 }          % \penalty\exhyphenpenalty
\newcommand{\ANGLE}[1]{%
  $\langle$\kern0pt\nobreak{#1}\kern0pt\nobreak$\rangle$}
\newcommand{\株}{\hspace{\kanjiskip}\<（株）\<\hspace{\kanjiskip}}
\endinput
%%
%% End of file `okumacro.sty'.
