%% %% jpneduenumerate.sty %% for making handouts of Japanese high school mathematics %% %% Copyright (C) 2022 Yukoh KUSAKABE (screen-name) %% https://www.metaphysica.info/ %% https://twitter.com/metaphysicainfo %% %% This package released under %% [the MIT license](https://ctan.org/license/mit). %% % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jpneduenumerate}[2022/06/29 v1.0] % % %% \if@jpneduenumerate@meaning % \newif\if@jpneduenumerate@meaning % \@jpneduenumerate@meaningfalse % % % %% [meaning] % \DeclareOption{meaning}{\@jpneduenumerate@meaningtrue} % % % \ExecuteOptions{} % \ProcessOptions\relax % %% replace defaluts % for \setlist \RequirePackage{enumitem} % % for \getrefnumber \RequirePackage{refcount} % % for \ajroman \ajRoman \RequirePackage{otf} % % % If you do not use pLaTeX, LaTeX cannot use 'zw'. % In that case, please write \usepackage{bxjacalcux}. \setlist{nosep,leftmargin=2zw,itemindent=1zw,labelsep=1.15zw,listparindent=1zw} \setlist[itemize,1]{label=\textbf{\textperiodcentered}} \renewcommand{\labelenumi}{(\arabic{enumi})} \renewcommand{\labelenumii}{(\alph{enumii})} %% % % Asterisked envionments don't have parindent. % %% \begin{itemize*} \newenvironment{itemize*}% {\begin{itemize}[nosep,leftmargin=3zw,itemindent=0zw,labelsep=1.15zw]}% {\end{itemize}} % %% \begin{enumerate*} \newenvironment{enumerate*}% {\begin{enumerate}[nosep,leftmargin=3zw,itemindent=0zw,labelsep=1.15zw]}% {\end{enumerate}} % %% \begin{romanenumerate} %% \begin{romanenumerate*} \newenvironment{romanenumerate}% {\begin{enumerate}[nosep,leftmargin=2zw,itemindent=1zw,labelsep=1.15zw,listparindent=1zw]% \renewcommand{\labelenumi}{(\ajLabel\ajroman{enumi})}% \renewcommand{\labelenumii}{(\alph{enumii})}% }% {\end{enumerate}} \newenvironment{romanenumerate*}% {\begin{enumerate}[nosep,leftmargin=3zw,itemindent=0zw,labelsep=1.15zw]% \renewcommand{\labelenumi}{(\ajLabel\ajroman{enumi})}% \renewcommand{\labelenumii}{(\alph{enumii})}% }% {\end{enumerate}} % %% \begin{Romanenumerate} %% \begin{Romanenumerate*} \newenvironment{Romanenumerate}% {\begin{enumerate}[nosep,leftmargin=2zw,itemindent=1zw,labelsep=1.15zw,listparindent=1zw]% \renewcommand{\labelenumi}{(\ajLabel\ajRoman{enumi})}% \renewcommand{\labelenumii}{(\alph{enumii})}% }% {\end{enumerate}} \newenvironment{Romanenumerate*}% {\begin{enumerate}[nosep,leftmargin=3zw,itemindent=0zw,labelsep=1.15zw]% \renewcommand{\labelenumi}{(\ajLabel\ajRoman{enumi})}% \renewcommand{\labelenumii}{(\alph{enumii})}% }% {\end{enumerate}} % %% \begin{caseenumerate} %% \begin{caseenumerate*} %% \begin{stepenumerate} %% \begin{stepenumerate*} \newenvironment{caseenumerate}% {\begin{romanenumerate}}% {\end{romanenumerate}} \newenvironment{caseenumerate*}% {\begin{romanenumerate*}}% {\end{romanenumerate*}} \newenvironment{stepenumerate}% {\begin{Romanenumerate}}% {\end{Romanenumerate}} \newenvironment{stepenumerate*}% {\begin{Romanenumerate*}}% {\end{Romanenumerate*}} %% % %% \@jpneduenumerate@zwspace \chardef\@jpneduenumerate@zwspace=\jis"2121\relax % %% \@jpneduenumerate@makenumber % Non-stared macros are heading ones. % Stared macros are non-heading ones. \newcommand{\@jpneduenumerate@makenumber}[2]{% \expandafter\newcommand\csname #1\endcsname% {\@ifstar{\csname @jpneduenumerate#1@star\endcsname}{\csname @jpneduenumerate#1@nostar\endcsname}}% \expandafter\newcommand\csname @jpneduenumerate#1@star\endcsname[1]% {#2}% \expandafter\newcommand\csname @jpneduenumerate#1@nostar\endcsname[1]% {\noindent#2\hspace{0.5zw}}} % %% Refs % \ref{<\labelenumii of romanenumerate and Romanenumerate>} doesn't work. \@jpneduenumerate@makenumber{parenref}{(\ref{#1})} \@jpneduenumerate@makenumber{romanref}{\ajroman{\getrefnumber{#1}}} \@jpneduenumerate@makenumber{parenromanref}{(\ajroman{\getrefnumber{#1}})} \@jpneduenumerate@makenumber{Romanref}{\ajRoman{\getrefnumber{#1}}} \@jpneduenumerate@makenumber{parenRomanref}{(\ajRoman{\getrefnumber{#1}})} % %%* ENUMERATE GENERATOR %% \@jpneduenumeratetext@makenumber \newcommand{\@jpneduenumeratetext@makenumber}[2]{% % make the counter \newcounter{jpneduenumeratetext#1counter}% \setcounter{jpneduenumeratetext#1counter}{0}% %* print only counter number \@jpneduenumerate@makenumber{#1number}{#2}% % step \expandafter\newcommand\csname #1numberauto\endcsname% {\refstepcounter{jpneduenumeratetext#1counter}\csname thejpneduenumeratetext#1counter\endcsname}% % keep \expandafter\newcommand\csname #1numberkeep\endcsname% {\csname thejpneduenumeratetext#1counter\endcsname}% % reset \expandafter\newcommand\csname #1numberreset\endcsname% {\setcounter{jpneduenumeratetext#1counter}{0}}% %* %* print counter % Non-asterisked macros are heading. % Asterisked macros are not heading. % step \expandafter\newcommand\csname #1auto\endcsname% {\@ifstar{\csname @ghostheadingdefault#1auto@star\endcsname}{\csname @ghostheadingdefault#1auto@nostar\endcsname}}% \expandafter\newcommand\csname @ghostheadingdefault#1auto@star\endcsname% {\csname @jpneduenumerate#1number@star\endcsname{\csname #1numberauto\endcsname}}% \expandafter\newcommand\csname @ghostheadingdefault#1auto@nostar\endcsname% {\csname @jpneduenumerate#1number@nostar\endcsname{\csname #1numberauto\endcsname}}% % keep \expandafter\newcommand\csname #1keep\endcsname% {\@ifstar{\csname @ghostheadingdefault#1keep@star\endcsname}{\csname @ghostheadingdefault#1keep@nostar\endcsname}}% \expandafter\newcommand\csname @ghostheadingdefault#1keep@star\endcsname% {\csname @jpneduenumerate#1number@star\endcsname{\csname #1numberkeep\endcsname}}% \expandafter\newcommand\csname @ghostheadingdefault#1keep@nostar\endcsname% {\csname #1number\endcsname{\csname #1numberkeep\endcsname}}% % reset (same as numberreset) \expandafter\newcommand\csname #1reset\endcsname% {\setcounter{jpneduenumeratetext#1counter}{0}}% %* } %% %%* % %% Numbers \@jpneduenumeratetext@makenumber{square}{\mbox{\@jpneduenumerate@zwspace\kern-1zw\framebox[1.5em]{\vphantom{\raisebox{2pt}{1}\raisebox{-2pt}{1}}#1}\kern-1zw\@jpneduenumerate@zwspace}} \@jpneduenumeratetext@makenumber{question}{\mbox{\@jpneduenumerate@zwspace\kern-1zw\framebox[1.5em]{\vphantom{\raisebox{2pt}{1}\raisebox{-2pt}{1}}#1}\kern-1zw\@jpneduenumerate@zwspace}} % NG: \mbox{(#1)} \@jpneduenumeratetext@makenumber{subquestion}{\:(#1)} \@jpneduenumeratetext@makenumber{enumerate}{\:(#1)} \@jpneduenumeratetext@makenumber{case}{\mbox{(\ajroman{#1})}} \@jpneduenumeratetext@makenumber{step}{\mbox{(\ajRoman{#1})}} %% % %% Refs \@jpneduenumerate@makenumber{squareref}{\@jpneduenumerate@zwspace\kern-1zw\framebox[1.5em]{\vphantom{\raisebox{2pt}{1}\raisebox{-2pt}{1}}\ref{#1}}\kern-1zw\@jpneduenumerate@zwspace} \@jpneduenumerate@makenumber{questionref}{\@jpneduenumerate@zwspace\kern-1zw\framebox[1.5em]{\vphantom{\raisebox{2pt}{1}\raisebox{-2pt}{1}}\ref{#1}}\kern-1zw\@jpneduenumerate@zwspace} % \@jpneduenumerate@makenumber{questionref}{\mbox{\@jpneduenumerate@zwspace\kern-1zw\framebox[1.3em]{\ref{#1}}\kern-1zw\@jpneduenumerate@zwspace}} \@jpneduenumerate@makenumber{subquestionref}{\:\mbox{(\ref{#1})}} \@jpneduenumerate@makenumber{enumerateref}{\:\mbox{(\ref{#1})}} \@jpneduenumerate@makenumber{caseref}{\refused{#1}\mbox{(\ajroman{\getrefnumber{#1}})}} \@jpneduenumerate@makenumber{stepref}{\refused{#1}\mbox{(\ajRoman{\getrefnumber{#1}})}} % %%* AVOID ERROR of COUNTER %% case \renewcommand{\caseauto}{\@ifstar{\@jpneduenumeratetext@avoid@caseauto@star}{\@jpneduenumeratetext@avoid@caseauto@nostar}} \newcommand{\@jpneduenumeratetext@avoid@caseauto@star}{% \refstepcounter{jpneduenumeratetextcasecounter}% \@jpneduenumeratecasenumber@star{\value{jpneduenumeratetextcasecounter}}% } \newcommand{\@jpneduenumeratetext@avoid@caseauto@nostar}{% \refstepcounter{jpneduenumeratetextcasecounter}% \casenumber{\value{jpneduenumeratetextcasecounter}}% } \renewcommand{\casekeep}{\@ifstar{\@jpneduenumeratetext@avoid@casekeep@star}{\@jpneduenumeratetext@avoid@casekeep@nostar}} \newcommand{\@jpneduenumeratetext@avoid@casekeep@star}{% \@jpneduenumeratecasenumber@star{\value{jpneduenumeratetextcasecounter}}% } \newcommand{\@jpneduenumeratetext@avoid@casekeep@nostar}{% \casenumber{\value{jpneduenumeratetextcasecounter}}% } %% % %% step \renewcommand{\stepauto}{\@ifstar{\@jpneduenumeratetext@avoid@stepauto@star}{\@jpneduenumeratetext@avoid@stepauto@nostar}} \newcommand{\@jpneduenumeratetext@avoid@stepauto@star}{% \refstepcounter{jpneduenumeratetextstepcounter}% \@jpneduenumeratestepnumber@star{\value{jpneduenumeratetextstepcounter}}% } \newcommand{\@jpneduenumeratetext@avoid@stepauto@nostar}{% \refstepcounter{jpneduenumeratetextstepcounter}% \stepnumber{\value{jpneduenumeratetextstepcounter}}% } \renewcommand{\stepkeep}{\@ifstar{\@jpneduenumeratetext@avoid@stepkeep@star}{\@jpneduenumeratetext@avoid@stepkeep@nostar}} \newcommand{\@jpneduenumeratetext@avoid@stepkeep@star}{% \@jpneduenumeratestepnumber@star{\value{jpneduenumeratetextstepcounter}}% } \newcommand{\@jpneduenumeratetext@avoid@stepkeep@nostar}{% \stepnumber{\value{jpneduenumeratetextstepcounter}}% } %% %%* % %% \equationreset \DeclareRobustCommand{\equationreset}{\setcounter{equation}{0}} % %% \question \providecommand{\question}{\@ifstar{\@jpneduenum@question@star}{\@jpneduenum@question@nostar}} \DeclareRobustCommand{\@jpneduenum@question@star}{\questionauto*} \DeclareRobustCommand{\@jpneduenum@question@nostar}{% \setcounter{equation}{0}% \setcounter{jpneduenumeratetextsubquestioncounter}{0}% \setcounter{jpneduenumeratetextenumeratecounter}{0}% \setcounter{jpneduenumeratetextcasecounter}{0}% \setcounter{jpneduenumeratetextstepcounter}{0}% \questionauto} % %% \subquestion \providecommand{\subquestion}{\@ifstar{\@jpneduenum@subquestion@star}{\@jpneduenum@subquestion@nostar}} \DeclareRobustCommand{\@jpneduenum@subquestion@star}{\subquestionauto*} \DeclareRobustCommand{\@jpneduenum@subquestion@nostar}{% \setcounter{jpneduenumeratetextcasecounter}{0}% \setcounter{jpneduenumeratetextstepcounter}{0}% \subquestionauto} % %% \case \providecommand{\case}{\@ifstar{\@jpneduenum@case@star}{\@jpneduenum@case@nostar}} \DeclareRobustCommand{\@jpneduenum@case@star}{\caseauto*} \DeclareRobustCommand{\@jpneduenum@case@nostar}{\caseauto} % %% \step \providecommand{\step}{\@ifstar{\@jpneduenum@step@star}{\@jpneduenum@step@nostar}} \DeclareRobustCommand{\@jpneduenum@step@star}{\stepauto*} \DeclareRobustCommand{\@jpneduenum@step@nostar}{\stepauto} % %% EOF