OSDN Git Service

Merge branch 'kmaeda_fontspec' into kitagawa_test
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Fri, 20 Jun 2014 10:19:22 +0000 (19:19 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Fri, 20 Jun 2014 10:19:22 +0000 (19:19 +0900)
COPYING
doc/ltjsclasses.pdf
src/addons/luatexja-adjust.sty
src/ltj-jfmglue.lua
src/ltjsarticle.cls
src/ltjsbook.cls
src/ltjsclasses.dtx
src/ltjskiyou.cls
src/ltjspf.cls
src/luatexja-core.sty
src/patches/lltjfont.sty

diff --git a/COPYING b/COPYING
index bb732b6..ba2ed9a 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Copyright (c) 2011--2013 The LuaTeX-ja project, All rights reserved.
+Copyright (c) 2011--2014 The LuaTeX-ja project, All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -14,7 +14,7 @@ modification, are permitted provided that the following conditions are met:
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE LUATEX-JA PROJECT OR CONTRIBUTORS BE LIABLE 
+DISCLAIMED. IN NO EVENT SHALL THE LUATEX-JA PROJECT OR CONTRIBUTORS BE LIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
index 24f1be4..c42dbc6 100644 (file)
Binary files a/doc/ltjsclasses.pdf and b/doc/ltjsclasses.pdf differ
index cdfad90..b25e706 100644 (file)
@@ -82,6 +82,7 @@
 \expandafter\endinput\fi\relax
 
 %%------------------
+
 %! Main part of luatexja-adjust
 \RequireLuaTeXjaSubmodule{adjust}
 
   \ifltj@japaram@adjust\ltjenableadjust\else\ltjdisableadjust\fi
 }
 
-\ifltj@in@latex
-  \RequirePackage{expl3}
-  \ExplSyntaxOn
-  \cs_new:Nn \ltj_adjust_inittable: {
-    % To be filled...
-  }
-  \cs_new:Nn \ltj_adjust_appendtable:n {
-    % To be filled
-  }
-  \clist_new:N \l_ltj_adjust_priority
-  \define@key[ltj]{japaram}{adjustpriority}{% COMMA LIST
-    \clist_set:Nx \l_ltj_adjust_priority {#1}
-    \ltj_adjust_inittable:
-    \clist_map_function:NN \l_ltj_adjust_priority \ltj_adjust_appendtable:n
-  }
-  \ExplSyntaxOff
-\fi
 
 %%------------------ all done
 \ltj@adjust@AtEnd
index eb01747..9486c32 100644 (file)
@@ -9,6 +9,7 @@ luatexbase.provides_module({
 module('luatexja.jfmglue', package.seeall)
 local err, warn, info, log = luatexbase .errwarinf(_NAME)
 
+luatexja.load_module('base');      local ltjb = luatexja.base
 luatexja.load_module('stack');     local ltjs = luatexja.stack
 luatexja.load_module('jfont');     local ltjf = luatexja.jfont
 local pairs = pairs
@@ -100,11 +101,16 @@ local function fast_find_char_class(c,m)
 end
 
 -- 文字クラスの決定
-local function slow_find_char_class(c, m, oc)
-   local xc = c or oc
-   local cls = ltjf_find_char_class(oc, m)
-   if xc ~= oc and  cls==0 then cls = ltjf_find_char_class(-xc, m) end
-   return cls, xc
+local slow_find_char_class
+do
+   slow_find_char_class = function (c, m, oc)
+      local cls = ltjf_find_char_class(oc, m)
+      if not c and  cls==0 then 
+        return ltjf_find_char_class(-c, m), oc
+      else
+        return cls, oc
+      end
+   end
 end
 
 local zero_glue = node_new(id_glue)
index 62ddad7..3d31a05 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsarticle}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index 813909f..4e3e12b 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsbook}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index 80b488c..6bff584 100644 (file)
@@ -22,7 +22,7 @@
 %  -----------------------------------------
 %
 % \fi
-% \CheckSum{5202}
+% \CheckSum{5203}
 %% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -50,7 +50,7 @@
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2014/03/28 ]
+  [2014/05/14 ]
 %<*driver>
 \documentclass{ltjsarticle}
 \usepackage{doc}
 %
 % [2008-02-18] |english| オプションで |\parindent| を 1em にしました。
 %
+% [2014-05-14 LTJ] |\ltjsetparameter|の実行は時間がかかるので,
+% |\ltjsetkanjiskip| と |\ltjsetxkanjiskip|(両者とも,
+% 実行前には |\ltj@setpar@global| の実行が必要)にしました.
+%
 %    \begin{macrocode}
 \def\@setfontsize#1#2#3{%
 % \@nomath#1%
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide 
+    \ltjsetxkanjiskip{0.1em} 
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 %    \end{macrocode}
 % \end{macro}
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 %    \end{macrocode}
 %
index 145d94b..1311dec 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjskiyou}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index b56a234..fab8f0c 100644 (file)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjspf}
-  [2014/03/28 ]
+  [2014/05/14 ]
 \RequirePackage{luatexja}
 \newif\if@restonecol
 \newif\if@titlepage
       \parindent=1\zw
     \fi
   \fi
-  \ltjsetparameter{kanjiskip={0\zw plus .1\zw minus .01\zw}}
-  \if@slide \ltjsetparameter{xkanjiskip={0.1em}} \else
-    \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}
+  \ltj@setpar@global
+  \ltjsetkanjiskip{0pt plus .1\zw minus .01\zw}
+  \if@slide
+    \ltjsetxkanjiskip{0.1em}
+  \else
+    \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em}
   \fi}
 \emergencystretch 3\zw
 \newif\ifnarrowbaselines
   \renewcommand\kanjifamilydefault{\gtdefault}
   \renewcommand\familydefault{\sfdefault}
   \raggedright
-  \ltjsetparameter{xkanjiskip={0.1em}}\relax
+  \ltj@setpar@global
+  \ltjsetxkanjiskip{0.1em}\relax
 \fi
 \endinput
 %%
index d0a4a47..b4fd007 100644 (file)
   \fi}
 
 % [x]]kanjiskip = <dimen>
-\define@key[ltj]{japaram}{kanjiskip}{%              % SKIP
+\define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip{#1}}
+\define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip{#1}}
+\protected\def\ltjsetkanjiskip#1{%                  % SKIP
   \directlua{%
     local d = \ltj@safe@glue{#1}
     luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d)
-}}
-\define@key[ltj]{japaram}{xkanjiskip}{%             % SKIP
+}\ignorespaces}
+\protected\def\ltjsetxkanjiskip#1{%                  % SKIP
   \directlua{%
     local d = \ltj@safe@glue{#1}
     luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d)
-}}
+}\ignorespaces}
+
 
 % jcharwidowpenalty = <count>
 \define@key[ltj]{japaram}{jcharwidowpenalty}{%      %COUNT
     \else\directlua{luatexja.isglobal=''}\fi
 }
 \protected\def\ltjsetparameter#1{%
-  \ltj@setpar@global\setkeys[ltj]{japaram}{#1}\ignorespaces}
+  \ltj@setpar@global\setkeys[ltj]{japaram}{#1}%
+  \ignorespaces}
 \protected\def\ltjglobalsetparameter#1{%
   \relax\ifnum\globaldefs<0\directlua{luatexja.isglobal=''}%
     \else\directlua{luatexja.isglobal='global'}\fi%
-  \setkeys[ltj]{japaram}{#1}\ignorespaces}
+  \setkeys[ltj]{japaram}{#1}%
+  \ignorespaces}
 
 %%%%%%%% \ltjgetparameter
 \def\ltj@@decl@array@param#1{%
   {\ltj@@getparam@one{#1}}%
 }
 \def\ltj@@getparam@one#1{%
-  \directlua{luatexja.ext_get_parameter_unary('#1')}}%
+  \directlua{luatexja.ext_get_parameter_unary('#1')}%
+}%
 \def\ltj@@getparam@two#1#2{%
   \directlua{luatexja.ext_get_parameter_binary('#1', \ltj@safe@num@or{nil}{#2})}%
 }
   {\ltj@@getjfontnumber#1%
    \directlua{luatexja.jfont.clear_alt_font(\the\ltj@tempcntc)}}\ignorespaces}
 
-
 %%------------------ Load module for the format
 
 \ifltj@in@latex                 %<*LaTeX>
index 2933844..0adf522 100644 (file)
@@ -1,6 +1,6 @@
 %
 % lltjfont.sty: derived from plfonts.dtx in pLaTeX.
-% 
+%
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{lltjfont}[2014/01/23 Patch to NFSS2 for LuaTeX-ja]
       \else
         %\directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{#2}')}\ifin@%
         %  \usekanji{#2}{#3}{#4}{#5}%
-        %  \let\font\tfont
+        %  \global\let#1\gettfont
         %\else
           \useroman{#2}{#3}{#4}{#5}%
           \global\expandafter\let\expandafter#1\the\font
   }
 \def\DLMfontsw@standard#1#2#3{#1{#2{#3}}}
 \def\reDeclareMathAlphabet#1#2#3{%
-  \ifdefined#2 
+  \ifdefined#2
     \@temptokena\expandafter{#2}%
   \else
     \@temptokena{#2}%
 }
 \newif\if@knjcmd
 \def\userelfont{\@knjcmdtrue}
-\DeclareRobustCommand\selectfont{%
+
+
+\RequirePackage{everysel}
+\let\ltj@@EverySelectfont@Init=\@EverySelectfont@Init
+\expandafter\expandafter\expandafter\let
+\expandafter\expandafter\csname ltj@@orig@selectfont\endcsname\csname selectfont\space\endcsname
+\@EverySelectfont@Init
+\def\@EverySelectfont@Init{%
+  \expandafter\let\csname selectfont\space \endcsname \ltj@@orig@selectfont
+  \ltj@@EverySelectfont@Init
+}
+\def\ltj@selectfont@patch{%
   \let\tmp@error@fontshape\error@fontshape
   \let\error@fontshape\error@kfontshape
   \directlua{luatexja.jfont.is_kyenc('\luatexluaescapestring{\k@encoding}')}\ifin@%
       \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha
     %\fi
   \fi
+%
   \let\k@encoding\cy@encoding
   \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
   \pickup@jfont
   \font@name
+  \ltj@@does@alt@set{\curr@kfontshape}%
+    % alt fonts の定義
+    \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}%
+    % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
+    \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
+  \fi
+%
   \edef\tmp@item{{\k@encoding}}\expandafter\def\expandafter\k@encoding\tmp@item
   \kenc@update
   \let\error@fontshape\tmp@error@fontshape
+%
   \if@knjcmd \@knjcmdfalse
     \expandafter\ifx
     \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax
       \expandafter\ifx
          \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax
       \else
-         \csname rel@\k@encoding/\k@family/\k@series/all\endcsname
+         \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\selectfont
+         % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり
       \fi
     \else
-       \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname
+       \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\selectfont
+       % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり
     \fi
   \fi
-  \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}%
-  \pickup@font
-  \font@name
-  \enc@update
-  \ifx\f@linespread\baselinestretch \else
-    \set@fontsize\baselinestretch\f@size\f@baselineskip
-  \fi
-  \size@update
-% ここからは altfont 用
-  \ltj@@does@alt@set{\curr@kfontshape}%
-    % alt fonts の定義
-    \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}%
-    % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
-    \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
-  \fi
 }
+\EverySelectfont{\ltj@selectfont@patch}
+\def\@EverySelectfont@Init{\let\@EverySelectfont@Init\undefined}
+
 \def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}}
 \KanjiEncodingPair{JY3}{JT3}
 \def\set@fontsize#1#2#3{%
 \newbox\adjust@box
 \newdimen\adjust@dimen
 \def\adjustbaseline{%
-    \setbox\adjust@box\hbox{\ltjsetparameter{yjabaselineshift=\z@}あ}%
+    \setbox\adjust@box\hbox{\ltj@ykblshift=0あ}%
     \cht\ht\adjust@box
     \cdp\dp\adjust@box
     \cwd\wd\adjust@box
     \chs\cwd
     \cHT\cht \advance\cHT\cdp
   % \iftdir
-  %   \setbox\adjust@box\hbox{\tbaselineshift\z@ M}%
+  %   \setbox0\hbox{\tate\ltjsetparameter{tjabaselineshift=\z@}あ}%
+  %   \setbox\adjust@box\hbox{\tate\ltjsetparameter{talbaselineshift=\z@}M}%
   %   \adjust@dimen\ht\adjust@box
   %   \advance\adjust@dimen\dp\adjust@box
-  %   \advance\adjust@dimen-\cHT
+  %   \advance\adjust@dimen-\ht0
   %   \divide\adjust@dimen\tw@
-  %   \advance\adjust@dimen\cdp
+  %   \advance\adjust@dimen0.5\dp0
   %   \advance\adjust@dimen-\dp\adjust@box
-  %   \tbaselineshift\adjust@dimen
+  %   \ltjsetparameter{talbaselineshift=\adjust@dimen}
   % \fi
   }
 \DeclareRobustCommand\romanencoding[1]{%
     \ifx\ltj@temp\empty\ltj@tempcntb="10FFFF\else\ltj@tempcntb=#2\fi\relax%"
   \fi
   \directlua{luatexja.jfont.set_alt_font_latex(
-    \the\ltj@tempcnta,\the\ltj@tempcntb, 
+    \the\ltj@tempcnta,\the\ltj@tempcntb,
     '\luatexluaescapestring{\ltj@temp@afont}',
     '\luatexluaescapestring{\ltj@temp@bfont}')}%
   }