OSDN Git Service

Added lltjp-everyshi.sty
[luatex-ja/luatexja.git] / src / ltjsclasses.dtx
index ebe2c0c..f00552d 100644 (file)
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2018/09/23 ltjsclasses ]
+  [2019/11/23 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
-\documentclass{ltjsarticle}
+\documentclass[disablejfam]{ltjsarticle}
 \usepackage{hypdoc}
 \hypersetup{unicode=true}
 \begingroup
  \suppressfontnotfounderror=1
  \global\font\testfont=file:KozMinPr6N-Regular.otf
+ \global\font\testfonta=file:HaranoAjiMincho-Regular.otf
 \endgroup
-\ifx\testfont\nullfont
+\ifx\testfonta\nullfont\ifx\testfont\nullfont
   \usepackage[ipaex,nfssonly]{luatexja-preset}
 \else
   \usepackage[kozuka-pr6n,nfssonly]{luatexja-preset}
-\fi  
+\fi\else
+  \usepackage[haranoaji,nfssonly]{luatexja-preset}
+\fi
+\let\testfont\undefined\let\testfonta\undefined
+\usepackage{unicode-math}
+\setmathfont{Latin Modern Math}
 \ltjsetparameter{alxspmode={`\*,allow}}
 \ltjsetparameter{alxspmode={`\\,allow}}
 %%%%\usepackage{unicode-math}
 % \item 標準では\texttt{jfm-ujis.lua}(Lua\TeX-ja標準のメトリック,OTFパッケージのものがベース)を使用します。
 % \item \texttt{uplatex}オプション,\texttt{autodetect-engine}オプションを
 % 削除してあります(前者ではエラーを出すようにしています)。
-% \item \texttt{disablejfam}オプションが無効になっています。もし
+% \item \texttt{disablejfam}オプションはクラス側では何もしません(ただLua\TeX-ja本体に
+% 渡されるだけです).もし
 % \begin{quotation}
 %   |! LaTeX Error: Too many math alphabets used in version ****.|
 % \end{quotation}
 % 実際に使用可能な数式ファミリの数を増やすためには\texttt{lualatex-math}パッケージを
 % 読み込む必要があることに注意が必要です。
 %
+% [2018-10-08 LTJ] Lua\TeX-ja本体が\texttt{disablejfam}オプションをサポートしたので,
+% クラスファイルからは削除します.
+%
+% [2019-08-12 LTJ] ……と思いましたが,``Unused global option(s): [disablejfam]''警告が
+% 出てしまいますので,「何もしない」クラスオプションとして形だけ定義します.
 %    \begin{macrocode}
-\DeclareOption{disablejfam}{%
-  \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}}
+%<*article|report|book>
+\DeclareOption{disablejfam}{}
+%</article|report|book>
 %    \end{macrocode}
 %
 % \paragraph{ドラフト}
 %
 %    \begin{macrocode}
 \AtBeginDocument{%
-  \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}
-  \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}%
+  \unless\ifltj@disablejfam
+    \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}
+    \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}
+  \fi
+}%
 %    \end{macrocode}
 %
 % \begin{macro}{\textsterling}
 % \paragraph{今日の日付}
 %
 % \LaTeX で処理した日付を出力します。
-% |ltjarticle| などと違って,標準を西暦にし,余分な空白が入らないように改良しました。
+% ^^A |jarticle| などと違って,標準を西暦にし,
+% ^^A 余分な空白が入らないように改良しました。
+% ^^A -- 2018年7月以降は |jarticle| なども標準が西暦,
+% ^^A -- 2019年4月以降は余分な空白が入らなくなっています。
 % 和暦にするには |\和暦| と書いてください。
+% ちなみにこの文章の作成日は西暦では{\西暦\today}で,
+% 和暦では{\和暦\today}です。
 %
 % \begin{macro}{\today}
 %    \begin{macrocode}
 \def\西暦{\西暦true}
 \def\和暦{\西暦false}
 \newcount\heisei \heisei\year \advance\heisei-1988\relax
+\def\pltx@today@year@#1{%
+  \ifnum\numexpr\year-#1=1 元\else
+    \ifnum\ltjgetparameter{direction}=3
+      \kansuji\numexpr\year-#1\relax
+    \else
+      \number\numexpr\year-#1\relax\nobreak
+    \fi
+  \fi 年
+}
+\def\pltx@today@year{%
+  \ifnum\numexpr\year*10000+\month*100+\day<19890108
+    昭和\pltx@today@year@{1925}%
+  \else\ifnum\numexpr\year*10000+\month*100+\day<20190501
+    平成\pltx@today@year@{1988}%
+  \else
+    令和\pltx@today@year@{2018}%
+  \fi\fi}
 \def\today{%
   \if@english
     \ifcase\month\or
       January\or February\or March\or April\or May\or June\or
       July\or August\or September\or October\or November\or December\fi
       \space\number\day, \number\year
+  \else\if西暦
+    \ifnum\ltjgetparameter{direction}=3 \kansuji\year
+    \else\number\year\nobreak\fi 年
   \else
-    \if西暦
-      \number\year 年
-      \number\month 月
-      \number\day 日
-    \else
-      平成\number\heisei 年
-      \number\month 月
-      \number\day 日
-    \fi
-  \fi}
+    \pltx@today@year
+  \fi
+  \ifnum\ltjgetparameter{direction}=3
+    \kansuji\month 月
+    \kansuji\day 日
+  \else
+    \number\month\nobreak 月
+    \number\day\nobreak 日
+  \fi\fi}
 %    \end{macrocode}
 % \end{macro}
 %