diff options
author | Karl Berry <karl@freefriends.org> | 2018-10-03 22:43:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-10-03 22:43:40 +0000 |
commit | 55845302274b6cfc093524d6b32db3b1747626c5 (patch) | |
tree | 59475b9b3a6a7c6695513ddb7846f3524eccabae /Master/texmf-dist/source/latex/bxjscls | |
parent | 6a571d522b6eef2ec3644ce4a87d392c6685be32 (diff) |
bxjscls (3oct18)
git-svn-id: svn://tug.org/texlive/trunk@48823 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls')
-rw-r--r-- | Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 154 |
1 files changed, 76 insertions, 78 deletions
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx index 25c2ebb2b99..1570a052166 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -56,7 +56,8 @@ %<*driver> \ProvidesFile{bxjscls.dtx} %</driver> - [2018/09/04 v1.9c BXJS document classes] + [2018/10/03 v1.9d BXJS document classes] +% [2018/09/04 v1.9c BXJS document classes] % [2018/08/20 v1.9b BXJS document classes] % [2018/07/20 v1.9a BXJS document classes] % based on jsclasses [2018/06/23] @@ -7870,8 +7871,9 @@ % \begin{ZRnote} % 環境変数 |SOURCE_DATE_EPOCH|/|FORCE_SOURCE_DATE| が % 設定されている場合は“今日”が過去・未来の日付になる可能性がある。 -% その場合、和暦表記は1970年から平成の終わりまでの期間でのみサポートする。 -% \Note 新元号が公表されたら対応する。 +% BXJSクラスでは、和暦の扱いは |bxwareki| パッケージに任せることを +% 原則とする。 +% ただし、|bxwareki| が使えない場合は自前で処理する。 % \end{ZRnote} % % \begin{macrocode} @@ -7914,52 +7916,41 @@ \fi % \end{macrocode} % +% \begin{macro}{\ifbxjs@bxwareki@avail} +% |bxwareki| パッケージが使用できるか。 +% \begin{macrocode} +\newif\ifbxjs@bxwareki@avail +\IfFileExists{bxwareki.sty}{% + \RequirePackage{bxwareki}[]% + \bxjs@bxwareki@availtrue}{} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\jayear} % 和暦における年の表記(元号+年数)。 % \begin{macro}{\heisei} % 年数を表す整数レジスタで、 % 元号が「平成」である場合にのみ定義される。 -% \Note 一般の年数の整数レジスタは |\bxjs@jayear| で、 -% |\heisei| はこれの別名になる。 -% \begin{macrocode} -\newcount\bxjs@jayear -\let\bxjs@gengo\@empty \bxjs@jayear\year -\@tempcnta=\the\year\two@digits\month\two@digits\day\relax -\ifnum\@tempcnta<19700101 -\else\ifnum\@tempcnta<19890108 - \def\bxjs@gengo{昭和}\advance\bxjs@jayear-1925\relax - \let\heisei\bxjs@jayear -\else\ifnum\@tempcnta<20190501 - \def\bxjs@gengo{平成}\advance\bxjs@jayear-1988\relax - \let\heisei\bxjs@jayear -\else -% \end{macrocode} -% 現在が新元号である場合。 -% |bxwareki| とかムニャムニャとかを試してみる。 -% \begin{macrocode} - \IfFileExists{bxwareki.sty}{\IfFileExists{bxwareki2019.def}{% - \RequirePackage{bxwareki}[]% - \let\bxjs@gengo\WarekiGengo - }{}}{}% - \if l\jsEngine \ifx\bxjs@gengo\@empty - \toks@{} - \directlua{pcall(function() - tex.toks[0] = bxjs.get_new_gengo() - end)} - \edef\bxjs@gengo{\the\toks@} - \fi\fi +% \begin{macrocode} +\ifbxjs@bxwareki@avail + \let\jayear\warekiyear + \def\bxjs@tmpa{H}\ifx\bxjs@tmpa\warekigengoinitial + \newcount\heisei \heisei=\value{warekiyear} + \fi % \end{macrocode} -% 新元号が既知の場合にのみ、和暦の年を求める。 +% |bxwareki| が使えない場合のフォールバック処理。 +% 平成のみに対応する。 % \begin{macrocode} - \ifx\bxjs@gengo\@empty\else \advance\bxjs@jayear-2018\relax \fi -\fi\fi\fi -\edef\jayear{% - \ifx\bxjs@gengo\@empty \the\bxjs@jayear\bxjs@iai - \else \bxjs@onxp{\bxjs@gengo}% - \ifnum\bxjs@jayear=\@ne \bxjs@unxp{元}% - \else \bxjs@iai\the\bxjs@jayear\bxjs@iai - \fi - \fi} +\else + \@tempcnta=\the\year\two@digits\month\two@digits\day\relax + \ifnum\@tempcnta<19890108 \else \ifnum\@tempcnta<20190501 + \newcount\heisei \heisei\year \advance\heisei-1988\relax + \fi\fi + \ifnum \ifx\heisei\@undefined\z@\else\heisei\fi >\@ne + \edef\jayear{\bxjs@unxp{平成}\bxjs@iai \the\heisei \bxjs@iai} + \else \edef\jayear{\the\year \bxjs@iai} + \fi +\fi % \end{macrocode} % \end{macro} % \end{macro} @@ -7967,6 +7958,17 @@ % \begin{macro}{\today} % 英語、西暦、和暦で場合分けをする。 % \begin{macrocode} +\let\bxjs@next\relax +\ifbxjs@bxwareki@avail + \ifx\warekigengo\@empty\else + \def\bxjs@next{\bxjs@onxp{\warekitoday}} + \fi +\else\ifnum \ifx\heisei\@undefined\z@\else\heisei\fi >\@ne + \def\bxjs@next{% + \bxjs@unxp{平成}\bxjs@iai\number\heisei\bxjs@iai\bxjs@unxp{年}% + \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% + \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}} +\fi\fi \edef\bxjs@today{% \if@english \ifcase\month\or @@ -7974,15 +7976,13 @@ July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year \else - \noexpand\bxjs@if@use@seireki{% + \ifx\bxjs@next\relax \expandafter\@firstoftwo + \else \noexpand\bxjs@if@use@seireki + \fi {% \number\year\bxjs@iai\bxjs@unxp{年}% \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% - }{% - \bxjs@onxp{\jayear}\bxjs@unxp{年}% - \bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}% - \bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}% - }% + }{\bxjs@next}% \fi} \let\today\bxjs@today % \end{macrocode} @@ -10497,9 +10497,13 @@ \def\bxjs@pandoc@lang@ja{% \expandafter\let\csname ver@babel.sty\endcsname\@undefined \edef\bxjs@next{% - \noexpand\RequirePackage[\bxjs@lang@pkg@options]{babel}[]% + \noexpand\RequirePackage[\bxjs@lang@pkg@options,english]{babel}[]% }\bxjs@next - \RequirePackage[main=japanese]{pxbabel}[]} + \if j\jsEngine + \RequirePackage[main=japanese]{pxbabel}[]% + \else + \RequirePackage{bxorigcapt}[]% + \fi} % \end{macrocode} % \end{macro} % @@ -10787,32 +10791,6 @@ }\fi % \end{macrocode} % -% 新元号のムニャムニャ。 -% \begin{macrocode} -\begingroup - \catcode`\~=12 \let\0\relax \let\1\relax \let\2\relax - \directlua{ - if not bxjs then bxjs = {} end - function bxjs.get_new_gengo() - local lc_time = nil - local ok, ret = pcall(function() - assert(os.type == "unix") - lc_time = os.setlocale(nil, "time") - assert(os.setlocale("ja_JP.utf8", "time") or - os.setlocale("ja_JP.UTF-8", "time")) - local heisei = "\229\185\179\230\136\144" - local kanji = "[\228-\233][\128-\191][\128-\191]" - local gh = os.date("\037EC", 1500000000) - local gn = os.date("\037EC", 1600000000) - assert(gh == heisei and gn ~= heisei and - gn:match("^"..kanji..kanji.."$")) - return gn - end) - os.setlocale(lc_time, "time") - return ok and ret or "" - end} -\endgroup -% \end{macrocode} % 以上。 % \begin{macrocode} \fi @@ -11417,6 +11395,25 @@ FE70,FFF0,% % \end{macro} % %^^A---------------- +%\subsection{パッケージオプション} +% +% |english| オプションが指定されている場合、|\ldots| の調整を抑止する。 +% \Note つまり、「グローバルの |english| オプション」が指定されている +% 場合も抑止の対象になる。 +% BXJSクラスの英語モードを想定しているが、それ以外の場合でも、 +% 一般的な{\LaTeX}の習慣として、グローバルの |english| は +% 「その文書の基底言語が英語である」ことを示す。 +% \begin{macrocode} +\newif\ifbxjsp@english +\DeclareOption{english}{\bxjsp@englishtrue} +% \end{macrocode} +% +% オプション定義はおしまい。 +% \begin{macrocode} +\ProcessOptions* +% \end{macrocode} +% +%^^A---------------- %\subsection{パッケージ読込の阻止} % % \begin{macro}{\pandocSkipLoadFile} @@ -11547,10 +11544,11 @@ FE70,FFF0,% % \end{macro} % % |\ldots| の実装を置き換える。 +% \Note B|english| オプション指定時は置き換えない。 % \begin{macrocode} -\g@addto@macro\bxjs@begin@document@hook{% +\AtBeginDocument{% \let\bxjsp@org@ldots\ldots - \let\ldots\pandocLdots} + \ifbxjsp@english\else \let\ldots\pandocLdots \fi} % \end{macrocode} % %^^A---------------- |