summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx')
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx154
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----------------