%% %% This is file 'bxwareki-cd.def'. %% %% Copyright (c) 2018-2023 Takayuki YATO (aka. "ZR") %% GitHub: https://github.com/zr-tex8r %% Twitter: @zr_tex8r %% %% This package is distributed under the MIT License. %% % Note: This file contains 日本語 letters and must be encoded in UTF-8. %% file declaration \NeedsTeXFormat{LaTeX2e} \ProvidesFile{bxwareki-cd.def}[2023/07/07 v0.7] \ifbxwy@epTeXinputencoding@ok \epTeXinputencoding utf8 \fi %Note: The code in this file does NOT assume e-TeX extension. %--------------------------------------- helpers %% \bxwy@burst-`>... \let\bxwy@burst\romannumeral %% \bxwy@cond\ifXXX...\fi{}{} \@gobbletwo\if\if \def\bxwy@cond#1\fi{% #1\expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} %% \bxwy@catch@mk...\bxwy@mk \def\bxwy@catch@mk#1\bxwy@mk{#1} %--------------------------------------- kanji numerals %% \bxwy@Jkansuji{} % The kansuji-by-reading with use of ten-composites (廿, 卅). % NB. Only valid in range 0..99; otherwise fallback to \bxwy@jkansuji. \def\bxwy@Jkansuji#1{% \expandafter\bxwy@Jkansuji@a\number#1\bxwy@mk} \def\bxwy@Jkansuji@a#1\bxwy@mk{% \ifnum#1<\bxwy@jk@x \bxwy@jkansuji@a#1\bxwy@mk \else\ifnum#1<\bxwy@jk@c \bxwy@Jkansuji@b#1% \else \bxwy@jkansuji@a#1\bxwy@mk \fi\fi} \def\bxwy@Jkansuji@b#1#2{% \ifcase#1\relax \or 十\or 廿\or 卅% \else \csname bxwy@jcd/#1\endcsname 十% \fi \ifnum#2>\z@ \csname bxwy@jcd/#2\endcsname \fi} %--------------------------------------- custom date format %% \warekicustomdate{} % Renders the date in the form specified by the options. % [calendar] def. seireki; w = wareki; % [numerals] def. western numerals; k = kansuji; j = kansuji-by-reading; % J = kansuji-by-reading, with ten-composites (廿, 卅); % [month names] def. by numbers; o = 異名 (old month names); % O = Izumo-style 異名 (use 神在月 instead of 神無月); \def\warekicustomdate#1{% \bxwy@custom@date@parse@opt{#1}\bxwy@custom@date@a} \def\bxwy@custom@date@a#1{% \expandafter\bxwy@custom@date@b\bxwy@date#1} \def\bxwy@custom@date@b#1#2#3#4#5#6{% % y,m,d,calendar,numerals,monthname \if \ifx\warekigengo\@empty-\else#4\fi w% wareki \warekigengo \ifnum\c@warekiyear=\@ne 元% \else \bxwy@custom@date@number#5\c@warekiyear \fi \else % seireki \if#5-#1\bxwy@S% western \else \bxwy@kansuji{#1}% kansuji/-j/-J \fi \fi 年% \if#6-\bxwy@custom@date@number#5{#2}月% month by number \else \bxwy@custom@date@month#6{#2}% month name \fi \bxwy@custom@date@number#5{#3}日} \def\bxwy@custom@date@number#1#2{% \if#1k\bxwy@kansuji{#2}% kansuji \else\if#1j\bxwy@jkansuji{#2}% kansuji-j \else\if#1J\bxwy@Jkansuji{#2}% kansuji-J \else % western \bxwy@S \expandafter\bxwy@catch@mk\number#2\bxwy@mk \bxwy@S \fi\fi\fi} \def\bxwy@custom@date@month#1#2{% \ifnum#2=\z@\else\ifcase#2\relax \or 睦月\or 如月\or 弥生\or 卯月\or 皐月\or 水無月% \or 文月\or 葉月\or 長月% \or \if#1O神在月\else 神無月\fi \or 霜月\or 師走% \fi\fi} %% \bxwy@custom@date@parse@opt{}\CScont \def\bxwy@custom@date@parse@opt#1{% \bxwy@cd@parse@opt@a#1\bxwy@mk---} \def\bxwy@cd@parse@opt@a{% \expandafter\bxwy@cd@parse@opt@b\bxwy@burst-`>} \def\bxwy@cd@parse@opt@b#1{% \bxwy@cond\ifx#1\bxwy@mk\fi{\bxwy@cd@parse@opt@f}{% \expandafter\bxwy@cd@parse@opt@c\csname bxwy@cdpo@@#1\endcsname}} \def\bxwy@cd@parse@opt@c#1{% \bxwy@cond\ifx#1\relax\fi{\bxwy@cd@parse@opt@a}{% \bxwy@cd@parse@opt@d#1}} \def\bxwy@cd@parse@opt@d#1#2\bxwy@mk#3#4#5{% \expandafter\bxwy@cd@parse@opt@e\bxwy@burst-`>#1#3#4#5{#2}} \def\bxwy@cd@parse@opt@e#1#2#3#4{% \bxwy@cd@parse@opt@a#4\bxwy@mk#1#2#3} \def\bxwy@cd@parse@opt@f#1#2#3#4{% #4{#1#2#3}} % \def\bxwy@cdpo@@w#1#2#3{w#2#3} \def\bxwy@cdpo@@k#1#2#3{#1k#3} \def\bxwy@cdpo@@j#1#2#3{#1j#3} \def\bxwy@cdpo@@J#1#2#3{#1J#3} \def\bxwy@cdpo@@o#1#2#3{#1#2o} \def\bxwy@cdpo@@O#1#2#3{#1#2O} %--------------------------------------- all done \endinput %% EOF