OSDN Git Service

ltj[s]classes: \stockwidth, \stockheight
[luatex-ja/luatexja.git] / src / ltjsarticle.cls
index d844d12..5de7ff1 100644 (file)
@@ -38,8 +38,9 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsarticle}
-  [2018/07/30 ltjsclasses ]
+  [2022/09/12 ltjsclasses ]
 \def\jsc@clsname{ltjsarticle}
+\def\Cjascale{0.924715}
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
@@ -193,8 +194,7 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
       &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
     \tabskip\z@skip\cr
     }}
-\DeclareOption{disablejfam}{%
-  \ClassWarningNoLine{\jsc@clsname}{The class option 'disablejfam' is obsolete}}
+\DeclareOption{disablejfam}{}
 \DeclareOption{draft}{\setlength\overfullrule{5pt}}
 \DeclareOption{final}{\setlength\overfullrule{0pt}}
 \newif\ifmingoth
@@ -249,13 +249,15 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
   \begingroup\catcode`\%=12\relax
   \directlua{
     local getdimen, mpt=tex.getdimen, tex.getdimen('jsc@mpt')/65536
+    local floor, cnt_dimen_at = math.floor, luatexbase.registernumber 'dimen@'
+    local print_scaled, sprint = luatexja.print_scaled, tex.sprint
     local t = lua.get_functions_table()
     t[\the\ltjs@@magnify@font@calc] = function()
-      tex.sprint(-2,math.floor(0.5+mpt*getdimen('dimen@')))
+      sprint(-2,floor(0.5+mpt*getdimen(cnt_dimen_at)))
     end
     function luatexja.ltjs_unmagnify_fsize(a)
-      local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536))
-      tex.sprint(-2, (s:match('%.0$')) and s:sub(1,-3) or s )
+      local s = print_scaled(floor(0.5+a/mpt*65536))
+      sprint(-2, (s:match('%.0$')) and s:sub(1,-3) or s )
     end
   }
   \endgroup
@@ -285,8 +287,8 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
 \newskip\jsc@smallskipamount
 \jsc@smallskipamount=3\jsc@mpt plus 1\jsc@mpt minus 1\jsc@mpt
 \iftombow
-  \newlength{\stockwidth}
-  \newlength{\stockheight}
+  \ifdefined\stockwidth\else\newlength{\stockwidth}\fi
+  \ifdefined\stockheight\else\newlength{\stockheight}\fi
   \setlength{\stockwidth}{\paperwidth}
   \setlength{\stockheight}{\paperheight}
   \advance \stockwidth 2in
@@ -307,22 +309,16 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
     \setlength{\pageheight}{\paperheight}
   \fi
 \fi
- \def\Cjascale{0.924715}
 \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
 \ifmingoth
-  \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=min}{}
-  \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=min}{}
+  \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:-kern;jfm=min}{}
+  \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:-kern;jfm=min}{}
 \else
   \ifptexjis
-    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=jis}{}
-    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=jis}{}
-  \else
-    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=ujis}{}
-    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=ujis}{}
+    \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:-kern;jfm=jis}{}
+    \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:-kern;jfm=jis}{}
   \fi
 \fi
-\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=ujisv}{}
-\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=ujisv}{}
 \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{}
 \DeclareFontShape{JY3}{mc}{b}{n}{<->ssub*gt/m/n}{}
@@ -352,8 +348,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
 \renewcommand\jttdefault{\gtdefault}\@ltj@match@familytrue
 %%
 \AtBeginDocument{%
-  \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}
-  \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}}%
+  \unless\ifltj@disablejfam
+    \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}
+    \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}
+  \fi
+}%
 \ltjsetparameter{jaxspmode={`!,2}}
 \ltjsetparameter{jaxspmode={`〒,1}}
 \ltjsetparameter{alxspmode={`+,3}}
@@ -1033,11 +1032,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}%
 \renewcommand{\theenumiii}{\@roman\c@enumiii}
 \renewcommand{\theenumiv}{\@Alph\c@enumiv}
 \newcommand{\labelenumi}{\theenumi.}
-\newcommand{\labelenumii}{\inhibitglue(\theenumii)\inhibitglue}
+\newcommand{\labelenumii}{\inhibitglue (\theenumii)\inhibitglue}
 \newcommand{\labelenumiii}{\theenumiii.}
 \newcommand{\labelenumiv}{\theenumiv.}
 \renewcommand{\p@enumii}{\theenumi}
-\renewcommand{\p@enumiii}{\theenumi\inhibitglue(\theenumii)}
+\renewcommand{\p@enumiii}{\theenumi\inhibitglue (\theenumii)}
 \renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
 \newcommand\labelitemi{\textbullet}
 \newcommand\labelitemii{\normalfont\bfseries \textendash}
@@ -1387,6 +1386,7 @@ class has defined the old font commands like\MessageBreak
     \splittopskip\footnotesep
     \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
     \hsize\columnwidth \@parboxrestore
+    \def\@currentcounter{footnote}%
     \protected@edef\@currentlabel{%
        \csname p@footnote\endcsname\@thefnmark
     }%
@@ -1403,7 +1403,7 @@ class has defined the old font commands like\MessageBreak
   \advance\leftskip 3\zw
   \parindent 1\zw
   \noindent
-  \llap{\@makefnmark\hskip0.3\zw}#1}
+  \hb@xt@\z@{\hss\@makefnmark\hskip0.3\zw}#1}
 \let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if@noparitem
@@ -1629,23 +1629,42 @@ class has defined the old font commands like\MessageBreak
 \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}
 \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
 \if@slide \pagestyle{empty} \else \pagestyle{plain} \fi
 \pagenumbering{arabic}