From 3a96dfe1775079b04b8fcfd108d2747bea3f835f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 10 Dec 2017 00:36:54 +0000 Subject: bxjscls (9dec17) git-svn-id: svn://tug.org/texlive/trunk@46027 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 96 +++++++++++++++++----- 1 file changed, 76 insertions(+), 20 deletions(-) (limited to 'Master/texmf-dist/source/latex') 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} % - [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{日}% }% -- cgit v1.2.3