summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bxjscls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-12-10 00:36:54 +0000
committerKarl Berry <karl@freefriends.org>2017-12-10 00:36:54 +0000
commit3a96dfe1775079b04b8fcfd108d2747bea3f835f (patch)
treecd6d621f8d82e61dbb707d43d0d8cd8b9773798f /Master/texmf-dist/source/latex/bxjscls
parent6c56b5f5fd8c901300518179a31ee34fcccd9e35 (diff)
bxjscls (9dec17)
git-svn-id: svn://tug.org/texlive/trunk@46027 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls')
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx96
1 files changed, 76 insertions, 20 deletions
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
index d0a7daf8242..3c39b42b9c5 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
@@ -68,7 +68,8 @@
%<*driver>
\ProvidesFile{bxjscls.dtx}
%</driver>
- [2017/10/21 v1.7 BXJS document classes]
+ [2017/12/09 v1.7a BXJS document classes]
+% [2017/10/21 v1.7 BXJS document classes]
% [2017/09/28 v1.6b BXJS document classes]
% [2017/09/24 v1.6a BXJS document classes]
% [2017/09/09 v1.6 BXJS document classes]
@@ -1801,6 +1802,16 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ifbxjs@fix@at@cmd}
+% 〔スイッチ〕 |fix-at-cmd| の指定値。
+% \begin{macrocode}
+\newif\ifbxjs@fix@at@cmd \bxjs@fix@at@cmdtrue
+\let\bxjs@kv@fixatcmd@true\bxjs@fix@at@cmdtrue
+\let\bxjs@kv@fixatcmd@false\bxjs@fix@at@cmdfalse
+\define@key{bxjs}{fix-at-cmd}[true]{\bxjs@set@keyval{fixatcmd}{#1}{}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ifbxjs@hyperref@enc}
% 〔スイッチ〕 |hyperref-enc| の指定値。
% \begin{macrocode}
@@ -2464,10 +2475,25 @@
% [2016-07-14] 2015-01-01の\LaTeX で,auxiliary filesに書き出されたときに
% スペースが食われないようにする修正が入りました。これに合わせて |{}| を補いました。
%
+% \begin{ZRnote}
+% BXJSクラスでの変更点:
+% \begin{itemize}
+% \item |fix-at-cmd| オプションが偽の場合は再定義しない。
+% \item 固定の3000でなく実際のピリオドのsfcode値を使う。
+% \item 「防御的な |\@|」での不具合を防ぐため、大文字直後の |\@|
+% は標準と同等の動作にする。
+% \end{itemize}
+% \end{ZRnote}
+%
% \begin{macrocode}
\chardef\bxjs@periodchar=`\.
-\bxjs@protected\def\bxjs@SE{\spacefactor\sfcode\bxjs@periodchar}
-\def\@{\bxjs@SE{}}
+\bxjs@protected\def\bxjs@SE{%
+ \ifnum\spacefactor<\@m \spacefactor\@m
+ \else \spacefactor\sfcode\bxjs@periodchar
+ \fi}
+\ifbxjs@fix@at@cmd
+ \def\@{\bxjs@SE{}}
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -7544,13 +7570,12 @@
% 和暦にするには |\和暦| と書いてください。
%
% \begin{ZRnote}
-% 環境変数 |SOURCE_DATE_EPOCH_TEX_PRIMITIVES| が設定されている場合は
-% “今日”が過去の日付になる可能性があるが、その場合、
-% 和暦表記は平成2年(1990年)以降でのみサポートする。
-% \Note “新元号”への対応?
+% 環境変数 |SOURCE_DATE_EPOCH|/|FORCE_SOURCE_DATE| が
+% 設定されている場合は“今日”が過去・未来の日付になる可能性がある。
+% その場合、和暦表記は1970年から平成の終わりまでの期間でのみサポートする。
+% \Note 新元号が公表されたら対応する。
% \end{ZRnote}
%
-% \begin{macro}{\today}
% \begin{macrocode}
\@tempswafalse
\if p\jsEngine \@tempswatrue \fi
@@ -7581,17 +7606,51 @@
\else \expandafter\@secondoftwo \fi}
}
\bxjs@decl@Seireki@cmds
-% \bxjs@unxp
-\let\bxjs@unxp\@firstofone
-\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded}
-% \bxjs@iai
+\let\bxjs@unxp\@firstofone \let\bxjs@onxp\@firstofone
+\bxjs@test@engine\unexpanded{\let\bxjs@unxp\unexpanded
+ \def\bxjs@onxp{\unexpanded\expandafter}}
\if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T
\def\bxjs@iai{\noexpand~}
\else \def\bxjs@iai{}
\fi
-% \heisei
-\newcount\heisei \heisei\year \advance\heisei-1988\relax
-% \today
+% \end{macrocode}
+%
+% \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
+% 新元号対応
+% \def\bxjs@gengo{新元号}\advance\bxjs@jayear-2018\relax
+\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}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\today}
+% 英語、西暦、和暦で場合分けをする。
+% \begin{macrocode}
\edef\bxjs@today{%
\if@english
\ifcase\month\or
@@ -7599,15 +7658,12 @@
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year
\else
- \ifnum\heisei>\@ne
- \expandafter\noexpand\expandafter\bxjs@if@use@seireki
- \else \expandafter\@firstoftwo
- \fi {%
+ \noexpand\bxjs@if@use@seireki{%
\number\year\bxjs@iai\bxjs@unxp{年}%
\bxjs@iai\number\month\bxjs@iai\bxjs@unxp{月}%
\bxjs@iai\number\day\bxjs@iai\bxjs@unxp{日}%
}{%
- \bxjs@unxp{平成}\bxjs@iai\number\heisei\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{日}%
}%