OSDN Git Service

Dnode -> node.direct (WIP)
[luatex-ja/luatexja.git] / src / ltjspf.cls
index 9ce09dc..1a153c4 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjspf}
-  [2016/03/21 ]
+  [2016/03/31 ltjsclasses ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
 \newif\if@slide
 \@slidefalse
 \def\ltjs@magscale{1}
-\DeclareOption{slide}{\@slidetrue\def\ltjs@magscale{3.58318}\@landscapetrue\@titlepagetrue}
-\DeclareOption{8pt} {\def\ltjs@magscale{.83333}}% 1.2^(-1)
-\DeclareOption{9pt} {\def\ltjs@magscale{.91287}}% 1.2^(-0.5}
+\DeclareOption{slide}{\@slidetrue\def\ltjs@magscale{3.583}\@landscapetrue\@titlepagetrue}
+\DeclareOption{8pt} {\def\ltjs@magscale{0.83}}% 1.2^(-1)
+\DeclareOption{9pt} {\def\ltjs@magscale{0.913}}% 1.2^(-0.5}
 \DeclareOption{10pt}{\def\ltjs@magscale{1}}
-\DeclareOption{11pt}{\def\ltjs@magscale{1.0954}}% 1.2^0.5
-\DeclareOption{12pt}{\def\ltjs@magscale{1.2}}
-\DeclareOption{14pt}{\def\ltjs@magscale{1.44}}
+\DeclareOption{11pt}{\def\ltjs@magscale{1.095}}% 1.2^0.5
+\DeclareOption{12pt}{\def\ltjs@magscale{1.200}}
+\DeclareOption{14pt}{\def\ltjs@magscale{1.440}}
 \DeclareOption{17pt}{\def\ltjs@magscale{1.728}}
 \DeclareOption{20pt}{\def\ltjs@magscale{2}}
-\DeclareOption{21pt}{\def\ltjs@magscale{2.0736}}
-\DeclareOption{25pt}{\def\ltjs@magscale{2.48832}}
-\DeclareOption{30pt}{\def\ltjs@magscale{2.98598}}
-\DeclareOption{36pt}{\def\ltjs@magscale{3.58318}}
-\DeclareOption{43pt}{\def\ltjs@magscale{4.29982}}
-\DeclareOption{12Q} {\def\ltjs@magscale{.92308}}% 1pt*12Q/13Q
-\DeclareOption{14Q} {\def\ltjs@magscale{1.07692}}% 1pt*14Q/13Q
-\DeclareOption{10ptj}{\def\ltjs@magscale{1.08547}}% 1pt*10bp/13Q
-\DeclareOption{10.5ptj}{\def\ltjs@magscale{1.13974}}
-\DeclareOption{11ptj}{\def\ltjs@magscale{1.19402}}
-\DeclareOption{12ptj}{\def\ltjs@magscale{1.30256}}
+\DeclareOption{21pt}{\def\ltjs@magscale{2.074}}
+\DeclareOption{25pt}{\def\ltjs@magscale{2.488}}
+\DeclareOption{30pt}{\def\ltjs@magscale{2.986}}
+\DeclareOption{36pt}{\def\ltjs@magscale{3.583}}
+\DeclareOption{43pt}{\def\ltjs@magscale{4.300}}
+\DeclareOption{12Q} {\def\ltjs@magscale{0.923}}% 1pt*12Q/13Q
+\DeclareOption{14Q} {\def\ltjs@magscale{1.077}}% 1pt*14Q/13Q
+\DeclareOption{10ptj}{\def\ltjs@magscale{1.085}}% 1pt*10bp/13Q
+\DeclareOption{10.5ptj}{\def\ltjs@magscale{1.139}}
+\DeclareOption{11ptj}{\def\ltjs@magscale{1.194}}
+\DeclareOption{12ptj}{\def\ltjs@magscale{1.302}}
 \newif\if@ltjs@mag@xreal
-\@ltjs@mag@xrealfalse
+\@ltjs@mag@xrealtrue
 \DeclareOption{xreal}{\@ltjs@mag@xrealtrue}
 \DeclareOption{noxreal}{\@ltjs@mag@xrealfalse}
 \DeclareOption{real}{\@ltjs@mag@xrealfalse}
 \ifdim\ltjs@mpt=1.0954\p@ \renewcommand{\@ptsize}{1}\else
 \ifdim\ltjs@mpt=1.2\p@    \renewcommand{\@ptsize}{2}\else
 \renewcommand{\@ptsize}{-20}\fi\fi
-\if@ltjs@mag@xreal
-  \RequirePackage{type1cm}
+\if@ltjs@mag@xreal\RequirePackage{type1cm}
+\ifdim\ltjs@mpt=\p@\else
   \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax
   \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax
+  \newluafunction\ltjs@@magnify@font@calc
   \begingroup\catcode`\%=12\relax
   \directlua{
-    function luatexja.round_pt(a)
-      local s = luatexja.print_scaled(math.floor(0.5+a*65536))
-      return (s:match('%.0$')) and s:sub(1,-3) or s
+    local getdimen, mpt=tex.getdimen, tex.getdimen('ltjs@mpt')/65536
+    local t = lua.get_functions_table()
+    t[\the\ltjs@@magnify@font@calc] = function()
+      tex.sprint(math.floor(0.5+mpt*getdimen('dimen@')))
+    end
+    function luatexja.ltjs_unmagnify_fsize(a)
+      local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536))
+      tex.sprint( (s:match('%.0$')) and s:sub(1,-3) or s )
     end
   }
   \endgroup
         }}%
      \else
         \dimen@\@tempb\relax
-        \edef\@tempb{ at\directlua{%
-          tex.sprint(math.floor(0.5+\ltjs@magscale*tex.getdimen('dimen@')))
-        }sp}%
+        \edef\@tempb{ at\luafunction\ltjs@@magnify@font@calc sp}%
      \fi
      \edef\@tempa{\def\noexpand\external@font{\@tempa\@tempb}}
   }
   \let\ltjs@orig@get@external@font=\get@external@font
   \def\get@external@font{%
-    \edef\f@size{\directlua{%
-      tex.sprint(luatexja.round_pt(\f@size/\ltjs@magscale))}}%
+    \edef\f@size{\directlua{luatexja.ltjs_unmagnify_fsize(\f@size)}}%
     \ltjs@orig@get@external@font
     \begingroup
       \edef\@tempa{\external@font\space at\space at}%
       \expandafter\ltjs@magnify@external@font\@tempa\@nil
     \expandafter\endgroup\@tempa
   }
-\fi
+\fi\fi
 \setlength{\@tempdima}{\paperwidth}
 \setlength{\@tempdimb}{\paperheight}
 \iftombow