texlive[44217] Master/texmf-dist: luatexja (5may17)

commits+karl at tug.org commits+karl at tug.org
Sat May 6 00:50:45 CEST 2017


Revision: 44217
          http://tug.org/svn/texlive?view=revision&revision=44217
Author:   karl
Date:     2017-05-06 00:50:45 +0200 (Sat, 06 May 2017)
Log Message:
-----------
luatexja (5may17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/luatex/luatexja/README
    trunk/Master/texmf-dist/doc/luatex/luatexja/ltjclasses.pdf
    trunk/Master/texmf-dist/doc/luatex/luatexja/ltjsclasses.pdf
    trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja-en.pdf
    trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja-ja.pdf
    trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx
    trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-adjust.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ruby.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec-immediate.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-xunicode.sty

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/README
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexja/README	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/doc/luatex/luatexja/README	2017-05-05 22:50:45 UTC (rev 44217)
@@ -1,4 +1,4 @@
-The LuaTeX-ja Package 20170401.0
+The LuaTeX-ja Package 20170505.0
 --------------------------------
 Copyright (c) 2011--2017 The LuaTeX-ja project
 License: modified BSD (see COPYING)
@@ -40,9 +40,9 @@
 2. If you must/want to install manually:
 
    a. Download the source archive from CTAN,
-      or tagged as 20170401.0 in the Git repository by
+      or tagged as 20170505.0 in the Git repository by
       <http://git.osdn.jp/view?p=luatex-ja/luatexja.git
-                              ;a=snapshot;h=refs/tags/20170401.0;sf=tgz>
+                              ;a=snapshot;h=refs/tags/20170505.0;sf=tgz>
 
    b. Extract the archive and process following three files by LuaLaTeX
       to generate classes for Japanese typesetting:
@@ -87,4 +87,4 @@
 
 * src/*.{ins.dtx} and src/ltj-kinsoku_make.tex are not needed in regular use.
 
-Last commit date: Sat Apr 1 16:02:29 2017 +0900
+Last commit date: Fri May 5 21:25:22 2017 +0900

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/ltjclasses.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/ltjsclasses.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja-ja.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx	2017-05-05 22:50:45 UTC (rev 44217)
@@ -117,10 +117,12 @@
 %<*en>
 \title{The \LuaTeX-ja package}
 \author{The \LuaTeX-ja project team}
+\date{\LuaTeXjaversion~(\today)}
 %</en>
 %<*ja>
 \title{\LuaTeX-jaパッケージ}
 \author{\LuaTeX-jaプロジェクトチーム}
+\date{\LuaTeXjaversion(\today)}
 %</ja>
 \hypersetup{%
 	unicode,
@@ -6062,6 +6064,65 @@
 \end{itemize}
 
 
+\subsection{\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}}
+%<*en>
+Sometimes \texttt{'parbdd'}~and~\texttt{'boxbdd'} specifications~look like ``fail'',
+especially in paragraphs inside list environments.
+This is because \cs{everypar} inserts some nodes such as boxes and kerns, so
+the ``first letter'' in a paragraph is in fact not the first letter.
+%</en>
+%<*ja>
+リスト環境内での\cs{item}で始まる各項目などでは,
+「段落最初の鍵括弧が余計に半角字下げされる」など,
+JFMにある\texttt{'parbdd'}, \texttt{'boxbdd'}の指定が見かけ上破綻していることがある.
+
+これは\TeX が\cs{everypar}を用いて段落開始時に記号類や空白などを挿入してしまっているため,
+段落最初の鍵括弧が実際には段落最初のノードではないことに起因する.以下に例を示した.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ああああああああ\par % for comparison
+「ああああああ \par            % normal paragraph
+
+\everypar{\null}
+「ああああああ \par            % ???
+\end{LTXexample}
+%<*en>
+\cs{ltjfakeboxbdd}~and~\cs{ltjfakeparbegin} primitives resolve this situation.
+\begin{itemize}
+  \item \cs{ltjfakeparbegin} creates a node which indicates
+  ``beginning of an indented paragraph'' to the insertion process of \textbf{JAglue}.
+ \item \cs{ltjfakeboxbdd} creates a node which indicates
+  ``beginning/ending of a box'' to the insertion process of \textbf{JAglue}.
+\end{itemize}
+As an example, the example above can be improved as follows:
+%</en>
+%<*ja>
+\cs{ltjfakeboxbdd}, \cs{ltjfakeparbegin}はこの状況を改善する命令である.
+実際には\cs{everypar}の末尾にこれらを追加するという使い方がほとんどになるだろう.
+\begin{itemize}
+  \item \cs{ltjfakeparbegin}は,実行された箇所が「インデントあり段落の開始」であると\LuaTeX-jaの
+  和文処理グルー挿入処理に認識させる.この命令の直前に\textbf{JAchar}があった場合,
+  この文字の後ろに入るグルー等の処理については未定義である
+  \footnote{%
+    この命令と同等の内容は,\cs{dirrctlua}の形で\Pkg{ltjsclasses}内で以前から使われていた.
+    一般ユーザでも利用しやすくするため,20170505.0版では新たに命令として定義した.
+  }.
+  \item \cs{ltjfakeboxbdd}は,実行された箇所が「ボックスの先頭と末尾」であると\LuaTeX-jaの
+  和文処理グルー挿入処理に認識させる.
+\end{itemize}
+例えば,先ほどの例に対して適用すると,次のようになる.
+%</ja>
+\begin{LTXexample}[width=0.3\textwidth]
+\parindent1\zw
+\noindent ああああああああ\par % for comparison
+「ああああああ \par            % normal paragraph
+
+\everypar{\null\ltjfakeparbegin}
+「ああああああ \par
+\end{LTXexample}
+
+
 \subsection{\cs{ltjdeclarealtfont}}
 \label{ssec-altfont}
 %<*en>

Modified: trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx
===================================================================
--- trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx	2017-05-05 22:50:45 UTC (rev 44217)
@@ -2814,7 +2814,7 @@
         \begingroup \@svsechd \endgroup
         \unskip
         \@tempskipa #1\relax
-        \hskip -\@tempskipa\@inhibitglue
+        \hskip -\@tempskipa\ltjfakeparbegin
       \else
         \clubpenalty \@clubpenalty
         \everypar{}%
@@ -5180,10 +5180,13 @@
 % する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる
 % ため,うまく働きませんでした。形を変えて復活させます。
 %
+% [2017-04-03 LTJ] 従来クラフファイルで定義していた |\@inhibitglue| は,
+% Lua\TeX-jaのコアに |\ltjfakeparbegin| として正式に追加されたのでリネームします.
+%
 % |\item| 命令の直後です。
 %
 %    \begin{macrocode}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if at noparitem
     \@donoparitem
@@ -5226,7 +5229,7 @@
     \else
       \clubpenalty \@clubpenalty
       \everypar{}%
-    \fi\@inhibitglue}%
+    \fi\ltjfakeparbegin}%
   \if at noitemarg
     \@noitemargfalse
     \if at nmbrlist

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-adjust.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-adjust.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-adjust.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -64,7 +64,7 @@
   \expandafter\let\csname ifltj at in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-adjust}[2016/05/15]
+  \ProvidesPackage{luatexja-adjust}[2017/05/05]
 \fi                             %</LaTeX>
 
 % Load core module if not yet.
@@ -71,7 +71,7 @@
 % xkeyval.sty is already required in luatexja.sty.
 \ifx\luatexjacoreLoaded\@undefined
   \ifltj at in@latex                 %<*LaTeX>
-    \RequirePackage{luatexja}[2016/05/15]
+    \RequirePackage{luatexja}
   \else                           %<*!LaTeX>
     \input luatexja.sty %
   \fi                             %</LaTeX>

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -68,7 +68,7 @@
   \expandafter\let\csname ifltj at in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-ajmacros}[2014/07/02]
+  \ProvidesPackage{luatexja-ajmacros}[2017/05/05]
 \fi                             %</LaTeX>
 
 %%------------------

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luatexja-fontspec-24}[2016/01/30 fontspec support of LuaTeX-ja]
+\ProvidesPackage{luatexja-fontspec-24}[2017/04/19 fontspec support of LuaTeX-ja]
 \RequirePackage{l3keys2e,luatexja}
 \ExplSyntaxOn
 
@@ -138,7 +138,7 @@
   }
   \clist_set:Nx \g__fontspec_default_fontopts_clist {
     YokoFeatures = { JFM=ujis }, TateFeatures = { JFM=ujisv },
-    Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off,
+    Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off, Script=CJK, 
     \g__ltj_fontspec_default_fontopts_clist
   }
   \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-25c.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luatexja-fontspec-25c}[2017/01/23 fontspec support of LuaTeX-ja]
+\ProvidesPackage{luatexja-fontspec-25c}[2017/05/05 fontspec support of LuaTeX-ja]
 \RequirePackage{l3keys2e,luatexja}
 \ExplSyntaxOn
 
@@ -140,7 +140,7 @@
   }
   \clist_set:Nx \g__fontspec_default_fontopts_clist {
     YokoFeatures = { JFM=ujis }, TateFeatures = { JFM=ujisv },
-    Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off,
+    Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off, Script=CJK,
     \g__ltj_fontspec_default_fontopts_clist
   }
   \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luatexja-fontspec}[2017/01/23 fontspec support of LuaTeX-ja]
+\ProvidesPackage{luatexja-fontspec}[2017/05/05 fontspec support of LuaTeX-ja]
 \RequirePackage{l3keys2e,luatexja}
 \ExplSyntaxOn
 

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-otf.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -64,13 +64,13 @@
   \expandafter\let\csname ifltj at in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-otf}[2016/05/15]
+  \ProvidesPackage{luatexja-otf}[2017/05/05]
 \fi                             %</LaTeX>
 
 % Load core module if not yet.
 \ifx\luatexjacoreLoaded\@undefined
   \ifltj at in@latex                 %<*LaTeX>
-    \RequirePackage{luatexja}[2016/05/15]
+    \RequirePackage{luatexja}
   \else                           %<*!LaTeX>
     \input luatexja.sty %
   \fi                             %</LaTeX>
@@ -94,7 +94,7 @@
 
 %% Load ajmacros
 \ifltj at in@latex                 %<*LaTeX>
-  \RequirePackage{luatexja-ajmacros}[2014/07/02]
+  \RequirePackage{luatexja-ajmacros}
 \else                           %<*!LaTeX>
   \input luatexja-ajmacros.sty %
 \fi                             %</LaTeX>

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -1,5 +1,5 @@
 % luatexja-preset.sty
-\ProvidesPackage{luatexja-preset}[2017/03/21 Japanese font presets]
+\ProvidesPackage{luatexja-preset}[2017/05/05 Japanese font presets]
 
 \RequirePackage{expl3,l3keys2e}
 \RequirePackage{luatexja}
@@ -227,7 +227,20 @@
   }
 }
 
+% Source Han {Serif,Sans}
+\ltjpreset_declare_option:nn{sourcehan}{
+  \ltjpreset_set_multi:n {
+    Source~Han~Serif~Regular, % mc/m
+    Source~Han~Serif~Bold,    % mc/bx
+    Source~Han~Sans~Normal,   % gt/m  (multi)
+    Source~Han~Sans~Bold,     % gt/bx
+    Source~Han~Sans~Medium,   % gt/m  (uni)
+    Source~Han~Sans~Heavy,    % gt/eb
+    Source~Han~Sans~Heavy     % mg/m
+  }
+}
 
+
 % ipa, ipaex, ms
 \ltjpreset_declare_option:nn{ipa}{
   \ltjpreset_set_uni:nn { IPAMincho } { IPAGothic }
@@ -379,23 +392,23 @@
   \DeclareFontShape{JY3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
     {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
     : jfm=\tl_use:N \ltjpreset_use_jfm_yoko_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl
-    ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }}
+    ; script=cjk \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }}
   } {}
   \DeclareFontShape{JT3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
     {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
     : jfm=\tl_use:N \ltjpreset_use_jfm_tate_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl;
-    ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }}
+    ; script=cjk \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }}
   } {}
   \bool_if:NT \l_ltjpreset_expert_bool {
     \DeclareFontShape{JY3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
       {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
       : jfm=\tl_use:N \ltjpreset_use_jfm_yoko_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
-      ; script=kana}
+      ; script=kana }
     } {}
     \DeclareFontShape{JT3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp]
       {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3"
       : jfm=\tl_use:N \ltjpreset_use_jfm_tate_tl ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby
-      ; script=kana}
+      ; script=kana }
     } {}
   }
 }
@@ -463,6 +476,7 @@
   \tl_use:N \l_ltjpreset_kanji_shape_tl,
   YokoFeatures = { JFM = \tl_use:N \ltjpreset_use_jfm_yoko_tl },
   TateFeatures = { JFM = \tl_use:N \ltjpreset_use_jfm_tate_tl },
+  Script=CJK,
 }
 
 \bool_if:NT \l_ltjpreset_expert_bool {

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ruby.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ruby.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ruby.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -4,7 +4,7 @@
 
 % LaTeX only!
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luatexja-ruby}[2015/12/29 v0.23]
+\ProvidesPackage{luatexja-ruby}[2017/05/05 v0.23]
 \RequirePackage{luatexja}
 
 %%------------------

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjext}[2017/03/28 v1.2f-ltj-5 Macros for vertical writing]
+\ProvidesPackage{lltjext}[2017/05/05 v1.2g-ltj-5 Macros for vertical writing]
 \RequirePackage{luatexja}
 
 {\catcode`\*=11
@@ -78,36 +78,35 @@
 % \begin{itemize}
 % \item 周囲の組方向が横組かつ組方向が|<y>|, |<z>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき、\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
-%   \item |[c]|指定のとき、\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき、\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
 % \end{itemize}
 % \item 周囲の組方向が横組かつ組方向が|<t>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき、\\表組の上端が周囲の和文ベースラインと一致
-%   \item |[c]|指定のとき、\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき、\\表組の下端が周囲の和文ベースラインと一致
+%   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
 % \end{itemize}
 % \item 周囲の組方向が縦組かつ組方向が|<y>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき、\\表組の上端が周囲の和文ベースラインと一致
-%   \item |[c]|指定のとき、\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき、\\表組の下端が周囲の和文ベースラインと一致
+%   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
 % \end{itemize}
 % \item 周囲の組方向が縦組かつ組方向が|<t>|指定の場合
 % \begin{itemize}
-%   \item |[t]|指定のとき、\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
-%   \item |[c]|指定のとき、\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%   \item |[b]|指定のとき、\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
+%   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置)
 % \end{itemize}
 % \item 周囲の組方向が縦組かつ組方向が|<z>|指定の場合
 %  [TODO] 未定!
 %^^A \begin{itemize}
-%^^A   \item |[t]|指定のとき、\\表組の上端が周囲の和文ベースラインと一致
-%^^A   \item |[c]|指定のとき、\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
-%^^A   \item |[b]|指定のとき、\\表組の下端が周囲の和文ベースラインと一致
+%^^A   \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致
+%^^A   \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%^^A   \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致
 %^^A \end{itemize}
-% \end{itemize}
 \def\fork at array@option<#1>[#2]{%
 \ifnum\ltjgetparameter{direction}=4 % yoko
   \ifx\box at dir\yoko
@@ -124,10 +123,10 @@
   \else
     \if #2t\relax
        \def\@begin at alignbox{\vtop\bgroup\kern\z@\vbox}%
-       \let\@end at alignbox\egroup%
+       \let\@end at alignbox\egroup
     \else\if #2b\relax
-       \let\@begin at alignbox\vbox
-       \let\@end at alignbox\relax
+       \def\@begin at alignbox{\vbox\bgroup\vbox}%
+       \def\@end at alignbox{\kern\z@\egroup}%
     \else
        \let\@begin at alignbox\vcenter
        \let\@end at alignbox\relax
@@ -137,10 +136,10 @@
   \ifx\box at dir\yoko
     \if #2t\relax
        \def\@begin at alignbox{\vtop\bgroup\kern\z@\vbox}%
-       \def\@end at alignbox{\egroup}%
+       \let\@end at alignbox\egroup
     \else\if #2b\relax
-       \let\@begin at alignbox\vbox
-       \let\@end at alignbox\relax
+       \def\@begin at alignbox{\vbox\bgroup\vbox}%
+       \def\@end at alignbox{\kern\z@\egroup}%
     \else
       \let\@begin at alignbox\vcenter
         \let\@end at alignbox\relax
@@ -172,7 +171,7 @@
   \ifx\box at dir\yoko
     \if #2t\relax
       \def\@begin at alignbox{\vtop\bgroup\kern\z@\vbox}%
-      \def\@end at alignbox{\egroup}%
+      \let\@end at alignbox\egroup
     \else\if #2b\relax
       \def\@begin at alignbox{\vbox\bgroup\vbox}%
       \def\@end at alignbox{\kern\z@\egroup}%
@@ -415,6 +414,41 @@
        \let\hss\vss\let\unhbox\unvbox
        \csname bm@#4\endcsname}\@end at parbox
   \@end at tempboxa}
+% コミュニティ版では、アスキー版で不自然だった|\parbox|の箱と
+% 周囲の本文との揃え位置を修正し、以下のように設計しました。
+% \begin{itemize}
+% \item 周囲の組方向が横組かつ組方向が|<y>|, |<z>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致
+% \end{itemize}
+% \item 周囲の組方向が横組かつ組方向が|<t>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致
+% \end{itemize}
+% \item 周囲の組方向が縦組かつ組方向が|<y>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致
+% \end{itemize}
+% \item 周囲の組方向が縦組かつ組方向が|<t>|指定の場合
+% \begin{itemize}
+%   \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致
+%   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%   \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致
+% \end{itemize}
+% \item 周囲の組方向が縦組かつ組方向が|<z>|指定の場合
+%  [TODO] 未定!
+%^^A \begin{itemize}
+%^^A   \item |[t]|指定のとき\\箱の上端が周囲の和文ベースラインと一致
+%^^A   \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下)
+%^^A   \item |[b]|指定のとき\\箱の下端が周囲の和文ベースラインと一致
+%^^A \end{itemize}
+% \end{itemize}
 \def\fork at parbox@option<#1>[#2]{%
   \let\box at dir\relax
   \if #1z\relax
@@ -436,7 +470,6 @@
        \else \let\box at dir\utod
     \fi
   \fi
-%%% now almost same as \fork at array@option
 \ifnum\ltjgetparameter{direction}=4 % yoko
   \ifx\box at dir\yoko
     \if #2t\relax
@@ -455,11 +488,11 @@
     \fi\fi
   \else
     \if #2t\relax
-       \def\@begin at parbox{\vtop\bgroup\kern\z@\vbox}%
-       \def\@end at parbox{\egroup}%
+       \def\@begin at parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+       \let\@end at parbox\egroup
     \else\if #2b\relax
-       \let\@begin at parbox\vbox
-       \let\@end at parbox\relax
+       \def\@begin at parbox{\lower\cdp\vbox\bgroup\vbox}%
+       \def\@end at parbox{\kern\z@\egroup}%
     \else
       \ifmmode
         \let\@begin at parbox\vcenter\let\@end at parbox\relax
@@ -472,11 +505,11 @@
 \else\ifnum\ltjgetparameter{direction}=1 % dtou
   \ifx\box at dir\yoko
     \if #2t\relax
-       \def\@begin at parbox{\vtop\bgroup\kern\z@\vbox}
-       \def\@end at parbox{\egroup}
+       \def\@begin at parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+       \let\@end at parbox\egroup
     \else\if #2b\relax
-       \let\@begin at parbox\vbox
-       \let\@end at parbox\relax
+       \def\@begin at parbox{\lower\cdp\vbox\bgroup\vbox}%
+       \def\@end at parbox{\kern\z@\egroup}%
     \else
       \ifmmode
         \let\@begin at parbox\vcenter\let\@end at parbox\relax
@@ -519,10 +552,10 @@
 \else % tate, utod
   \ifx\box at dir\yoko
     \if #2t\relax
-      \def\@begin at parbox{\vtop\bgroup\kern\z@\vbox}%
-      \def\@end at parbox{\egroup}%
+      \def\@begin at parbox{\raise\cht\vtop\bgroup\kern\z@\vbox}%
+      \let\@end at parbox\egroup
     \else\if #2b\relax
-      \def\@begin at parbox{\vbox\bgroup\vbox}%
+      \def\@begin at parbox{\lower\cdp\vbox\bgroup\vbox}%
       \def\@end at parbox{\kern\z@\egroup}%
     \else
       \ifmmode
@@ -567,7 +600,7 @@
 }
 
 %%% pbox
-\def\pbox{\leavevmode\@ifnextchar<{\X at makePbox}{\X at makePbox<Z>}}
+\DeclareRobustCommand\pbox{\leavevmode\@ifnextchar<{\X at makePbox}{\X at makePbox<Z>}}
 \def\X at makePbox<#1>{%
   \@ifnextchar[{\@imakePbox<#1>}{\@imakePbox<#1>[-5\p@]}}
 \def\@imakePbox<#1>[#2]{\@ifnextchar[%]
@@ -593,8 +626,9 @@
        \else \let\box at dir\utod
     \fi
   \fi
-    \ifdim #2 <\z@ \hbox{\box at dir#4}\else
-    \hbox to#2{\box at dir
+    \setlength{\@tempdima}{#2}%
+    \ifdim\@tempdima<\z@ \hbox{\box at dir#4}\else
+    \hb at xt@\@tempdima{\box at dir
                \if #3l\relax\else\hss\fi
                #4\relax
                \if #3r\relax\else\hss\fi}\fi\egroup}

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -13,7 +13,7 @@
 
 \ifltj at in@latex                 %<*LaTeX>
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{ltj-base}[2016/05/15]
+  \ProvidesPackage{ltj-base}[2017/05/05]
 \fi                             %</LaTeX>
 
 %%------------------ Tiny helpers

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.charrange',
-  date = '2014/06/03',
+  date = '2017/05/05',
   description = 'Handling the range of Japanese characters',
 })
 module('luatexja.charrange', package.seeall)

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.jfmglue',
-  date = '2016/04/03',
+  date = '2017/05/05',
   description = 'Insertion process of JFM glues and kanjiskip',
 })
 module('luatexja.jfmglue', package.seeall)
@@ -28,22 +28,28 @@
 local getlist = node.direct.getlist
 local getchar = node.direct.getchar
 local getsubtype = node.direct.getsubtype
-
+local if_lang_ja
+do
+    local lang_ja = luatexja.lang_ja
+    local getlang = node.direct.getlang
+    if_lang_ja = getlang 
+      and function (n) return getlang(n)==lang_ja end
+      or  function (n) return getfield(n,'lang')==lang_ja end
+end
+  
 local has_attr = node.direct.has_attribute
 local set_attr = node.direct.set_attribute
 local insert_before = node.direct.insert_before
 local insert_after = node.direct.insert_after
 local node_next = node.direct.getnext
-local round = tex.round
 local ltjd_make_dir_whatsit = ltjd.make_dir_whatsit
 local ltjf_font_metric_table = ltjf.font_metric_table
 local ltjf_find_char_class = ltjf.find_char_class
 local node_new = node.direct.new
 local node_copy = node.direct.copy
-local node_remove = node.direct.remove
 local node_tail = node.direct.tail
 local node_free = node.direct.free
-local node_end_of_math = node.direct.end_of_math
+local node_remove = node.direct.remove
 
 local id_glyph = node.id('glyph')
 local id_hlist = node.id('hlist')
@@ -64,13 +70,7 @@
 local id_pbox      = 257 -- already processed nodes (by \unhbox)
 local id_pbox_w    = 258 -- cluster which consists of a whatsit
 local sid_user = node.subtype('user_defined')
-local lang_ja = luatexja.lang_ja
 
-local sid_start_link = node.subtype('pdf_start_link')
-local sid_start_thread = node.subtype('pdf_start_thread')
-local sid_end_link = node.subtype('pdf_end_link')
-local sid_end_thread = node.subtype('pdf_end_thread')
-
 local ITALIC       = luatexja.icflag_table.ITALIC
 local PACKED       = luatexja.icflag_table.PACKED
 local KINSOKU      = luatexja.icflag_table.KINSOKU
@@ -235,7 +235,7 @@
       local first_char = first_char
       if first_char then
          if getid(first_char)==id_glyph then
-	    if getfield(first_char, 'lang') == lang_ja then
+	    if if_lang_ja(first_char) then
 	       set_np_xspc_jachar_hbox(Nx, first_char)
 	    else
 	       set_np_xspc_alchar(Nx, getchar(first_char),first_char, 1)
@@ -304,7 +304,7 @@
 local function calc_np_aux_glyph_common(lp, acc_flag)
    Np.nuc = lp
    Np.first= (Np.first or lp)
-   if getfield(lp, 'lang') == lang_ja then
+   if if_lang_ja(lp) then
       Np.id = id_jglyph
       local m, mc, cls = set_np_xspc_jachar(Np, lp)
       local npi, npf
@@ -329,7 +329,7 @@
 	    lp=lx; break
 	 else
 	    local lid = getid(lx)
-	    if lid==id_glyph and getfield(lx, 'lang') ~= lang_ja then
+	    if lid==id_glyph and not if_lang_ja(lx) then
 	       -- 欧文文字
 	       last_glyph = lx; set_attr(lx, attr_icflag, PROCESSED); Np.last = lx
 	       y_adjust = has_attr(lx,attr_ablshift) or 0
@@ -397,7 +397,12 @@
 end
 local calc_np_auxtable
 do
+local node_end_of_math = node.direct.end_of_math
 local dir_tate = luatexja.dir_table.dir_tate
+local sid_start_link = node.subtype('pdf_start_link')
+local sid_start_thread = node.subtype('pdf_start_thread')
+local sid_end_link = node.subtype('pdf_end_link')
+local sid_end_thread = node.subtype('pdf_end_thread')
 calc_np_auxtable = {
    [id_glyph] = calc_np_aux_glyph_common,
    [id_hlist] = function(lp)
@@ -599,12 +604,11 @@
 	 c = getchar(x)
 	 Nx.pre  = table_current_stack[PRE + c]  or 0
 	 Nx.post = table_current_stack[POST + c] or 0
-	 Nx.xspc = table_current_stack[XSP  + c] or 3
       else
 	 Nx.pre, Nx.post = 0, 0
-         Nx.xspc = table_current_stack[XSP - 1] or 3
       end
       Nx.met = nil
+      Nx.xspc = table_current_stack[XSP  + c] or 3
       Nx.auto_xspc = (has_attr(x, attr_autoxspc)==1)
    end
    local set_np_xspc_alchar = set_np_xspc_alchar
@@ -615,7 +619,7 @@
       local s = Nx.last_char
       if s then
 	 if getid(s)==id_glyph then
-	    if getfield(s, 'lang') == lang_ja then
+	    if if_lang_ja(s) then
 	       set_np_xspc_jachar_hbox(Nx, s)
 	    else
 	       set_np_xspc_alchar(Nx, getchar(s), s, 2)
@@ -731,6 +735,7 @@
 -------------------- 和文文字間空白量の決定
 local calc_ja_ja_aux
 do
+   local round = tex.round
    local bg_ag = 2*id_glue - id_glue
    local bg_ak = 2*id_glue - id_kern
    local bk_ag = 2*id_kern - id_glue
@@ -1001,7 +1006,7 @@
 -- (anything) .. (和文文字で始まる hlist)
 local function handle_np_ja_hlist()
    local qid = Nq.id
-   if qid==id_jglyph or ((qid==id_pbox or Nq.id == id_pbox_w) and Nq.met) then
+   if qid==id_jglyph or ((qid==id_pbox or qid == id_pbox_w) and Nq.met) then
       local g = non_ihb_flag and get_OB_skip(0) or get_kanjiskip() -- O_B->K
       handle_penalty_normal(Nq.post, 0, g); real_insert(g)
    elseif Nq.met then  -- Nq.id==id_hlist
@@ -1205,6 +1210,7 @@
 do
    local IHB  = luatexja.userid_table.IHB
    local BPAR = luatexja.userid_table.BPAR
+   local BOXB = luatexja.userid_table.BOXB
    local node_prev = node.direct.getprev
    local node_write = node.direct.write
 
@@ -1227,11 +1233,32 @@
       node_write(tn)
    end
 
+   -- Node for indicating a head/end of a box
+   function create_boxbdd_node()
+      local tn = node_new(id_whatsit, sid_user)
+      setfield(tn, 'user_id', BOXB)
+      setfield(tn, 'type', 100)
+      setfield(tn, 'value', 1)
+      node_write(tn)
+   end
+
    local function whatsit_callback(Np, lp, Nq)
       if Np and Np.nuc then return Np
       elseif Np and getfield(lp, 'user_id') == BPAR then
          Np.first = lp; Np.nuc = lp; Np.last = lp
          return Np
+      elseif Np and getfield(lp, 'user_id') == BOXB then
+	 Np.first = lp; Np.nuc = lp; Np.last = lp
+	 if Nq then
+	    if Nq.met then
+	       Np.class = fast_find_char_class('parbdd', Nq.met)
+            end
+            Np.met = Nq.met; Np.pre = 0; Np.post = 0; Np.xspc = 0
+            Np.auto_xspc = false
+         end	 
+         return Np
+      else
+	 return Np
       end
    end
 
@@ -1247,6 +1274,18 @@
             Nq.auto_xspc = false
          end
          head = node_remove(head, y)
+         node_free(y)
+       elseif not s and getfield(Nq.nuc, 'user_id') == BOXB then
+         local x, y = node_prev(Nq.nuc), Nq.nuc
+         Nq.first, Nq.nuc, Nq.last = x, x, x
+         if Np then
+            if Np.met then
+               Nq.class = fast_find_char_class('boxbdd', Np.met)
+            end
+            Nq.met = Np.met; Nq.pre = 0; Nq.post = 0; Nq.xspc = 0
+            Nq.auto_xspc = false
+         end
+         head = node_remove(head, y)
 	 node_free(y)
       end
       return s

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.jfont',
-  date = '2016/04/03',
+  date = '2017/05/05',
   description = 'Loader for Japanese fonts',
 })
 module('luatexja.jfont', package.seeall)

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -12,7 +12,7 @@
 \def\luatexjalatexLoaded{\endinput}
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ltj-latex}[2017/03/12 LaTeX support of LuaTeX-ja]
+\ProvidesPackage{ltj-latex}[2017/05/05 LaTeX support of LuaTeX-ja]
 
 % LaTeX2e 2017/05/01 で行われる対策
 \ifx\document at default@language \@undefined

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -14,7 +14,7 @@
 \ifltj at in@latex                 %<*LaTeX>
   \NeedsTeXFormat{LaTeX2e}
   \PackageWarning{ltj-plain}{Don't load this package directly; load luatexja.sty instead.}
-  \ProvidesPackage{ltj-plain}[2016/05/15]
+  \ProvidesPackage{ltj-plain}[2017/05/05]
 \fi                             %</LaTeX>
 
 %%------------------

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -17,6 +17,7 @@
 local getchar =  node.direct.getchar
 local getfield =  node.direct.getfield
 local getsubtype =  node.direct.getsubtype
+local getlang = node.direct.getlang or function (n) return getfield(n,'lang') end
 
 local pairs = pairs
 local floor = math.floor
@@ -51,6 +52,10 @@
 local dir_tate = luatexja.dir_table.dir_tate
 local lang_ja = luatexja.lang_ja
 
+local setlang = node.direct.setlang or function(n,l) setfield(n,'lang',l) end 
+local setfont = node.direct.setfont or function(n,l) setfield(n,'font',l) end 
+local setchar = node.direct.setchar or function(n,l) setfield(n,'char',l) end 
+
 ------------------------------------------------------------------------
 -- MAIN PROCESS STEP 1: replace fonts
 ------------------------------------------------------------------------
@@ -97,10 +102,9 @@
 	    local pid = getid(p)
 	    while pid==id_glyph do
 	       local pc = getchar(p)
-	       if (has_attr(p, attr_icflag) or 0)<=0 and is_ucs_in_japanese_char(p, pc) then
-		  setfield(p, 'font', 
-			   ltjf_replace_altfont(has_attr(p, attr_curjfnt) or getfont(p), pc))
-		  setfield(p, 'lang', lang_ja)
+	       if has_attr(p, attr_icflag, 0) and is_ucs_in_japanese_char(p, pc) then
+		  setfont(p, ltjf_replace_altfont(has_attr(p, attr_curjfnt) or getfont(p), pc))
+		  setlang(p, lang_ja)
 		  ltjs_orig_char_table[p] = pc
 	       end
 	       p = node_next(p); pid = getid(p)
@@ -126,8 +130,12 @@
 local font_getfont = font.getfont
 local function set_box_stack_level(head, mode)
    local box_set, cl = 0, tex.currentgrouplevel + 1
-   for _,p  in pairs(wt) do
-      if mode and getfield(p, 'value')==cl then box_set = 1 end; node_free(p)
+   if mode then
+      for _,p  in pairs(wt) do
+         if getfield(p, 'value')==cl then box_set = 1 end; node_free(p)
+      end
+   else
+      for _,p  in pairs(wt) do node_free(p) end
    end
    ltjs_report_stack_level(tex_getcount('ltj@@stack') + box_set)
    for _,p  in pairs(wtd) do
@@ -135,14 +143,13 @@
    end
    if ltjs.list_dir == dir_tate then
       for p in node.direct.traverse_id(id_glyph,to_direct(head)) do
-         if (has_attr(p, attr_icflag) or 0)<=0 and getfield(p, 'lang')==lang_ja then
-            local pc = ltjs_orig_char_table[p]
-	    local nf = ltjf_replace_altfont( has_attr(p, attr_curtfnt) or getfont(p) , pc)
-	    setfield(p, 'font', nf)
+         if has_attr(p, attr_icflag, 0) and getlang(p)==lang_ja then
+	    local nf = ltjf_replace_altfont( has_attr(p, attr_curtfnt) or getfont(p) , ltjs_orig_char_table[p])
+	    setfont(p, nf)
 	    if ltjf_font_metric_table[nf].vert_activated then
 	       local pc = getchar(p)
 	       pc = (ltjf_font_extra_info[nf] and ltjf_font_extra_info[nf][pc] and ltjf_font_extra_info[nf][pc].vform)
-	       if pc and font_getfont(nf).characters[pc] then setfield(p, 'char', pc) end
+	       if pc and font_getfont(nf).characters[pc] then setchar(p,  pc) end
 	    end
 	 end
       end

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.ruby',
-  date = '2015/09/18',
+  date = '2017/05/05',
   description = 'Ruby annotation',
 })
 module('luatexja.ruby', package.seeall)
@@ -673,9 +673,9 @@
 ----------------------------------------------------------------
 do
    local RIPRE  = luatexja.stack_table_index.RIPRE
-   local function whatsit_callback(Np, lp, Nq, bsl)
+   local function whatsit_callback(Np, lp, Nq)
       if Np.nuc then return Np
-      elseif getfield(lp, 'user_id') == RUBY_PRE then
+      elseif  getfield(lp, 'user_id') == RUBY_PRE then
          Np.first, Np.nuc, Np.last = lp, lp, lp
          local lpv = getfield(lp, 'value')
          local x = node_next(node_next(lpv))
@@ -711,6 +711,8 @@
             set_attr(lpv, attr_ruby_maxprep, 0)
          end
          return Np
+      else
+        return Np
       end
    end
    luatexbase.add_to_callback("luatexja.jfmglue.whatsit_getinfo", whatsit_callback,

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -14,7 +14,20 @@
 local getlist = node.direct.getlist
 local getchar = node.direct.getchar
 local getsubtype = node.direct.getsubtype
+local getdepth = node.direct.getdepth or function(n) return getfield(n,'depth') end
+local getwhd = node.direct.getwhd or function(n)
+  return getfield(n,'width'), getfield(n,'height'),getfield(n,'depth') end
 
+local setwhd = node.direct.setwhd or function(n,w,h,d)
+  setfield(n,'width',w); setfield(n,'height',h); setfield(n,'depth',d) end
+local setchar = node.direct.setchar or function(n,c) setfield(n,'char',c) end
+local setnext = node.direct.setnext or function(n,c) setfield(n,'next',c) end
+local setdir = node.direct.setdir or function(n,c) setfield(n,'dir',c) end
+local setoffsets = node.direct.setoffsets or function(n,x,y)
+  setfield(n,'xoffset',x); setfield(n,'yoffset',y)  end
+local getoffsets = node.direct.getoffsets or function(n)
+  return getfield(n,'xoffset'), getfield(n,'yoffset')  end
+
 local node_traverse_id = node.direct.traverse_id
 local node_traverse = node.direct.traverse
 local node_new = node.direct.new
@@ -21,7 +34,7 @@
 local node_copy = node.direct.copy
 local node_remove = node.direct.remove
 local node_tail = node.direct.tail
-local node_next = node.direct.getnext or node.next
+local node_next = node.direct.getnext
 local has_attr = node.direct.has_attribute
 local set_attr = node.direct.set_attribute
 local node_insert_before = node.direct.insert_before
@@ -83,12 +96,10 @@
    local kbl = has_attr(p, attr_ykblshift) or 0
    --
    -- f*: whd specified in JFM
-   local fwidth, pwidth = char_data.width, getfield(p, 'width')
-   fwidth = fwidth or pwidth
-   local fheight, pheight = char_data.height, getfield(p, 'height')
-   fheight = fheight or pheight
-   local fdepth, pdepth =  char_data.depth,getfield(p, 'depth')
-   fdepth = fdepth or pdepth
+   local pwidth, pheight,pdepth = getwhd(p)
+   local fwidth = char_data.width or pwidth
+   local fheight= char_data.height or pheight
+   local fdepth = char_data.depth or pdepth
    if pwidth==fwidth then
       -- 補正後glyph node は ht: p.height - kbl - down, dp: p.depth + min(0, kbl+down) を持つ
       -- 設定されるべき寸法: ht: fheight - kbl, dp: fdepth + kbl
@@ -95,17 +106,16 @@
       local ht_diff = fheight + fshift.down - pheight
       local dp_diff = fdepth  + kbl - pdepth - min(kbl + fshift.down, 0)
       if ht_diff == 0 and dp_diff ==0 then -- offset only
-	 set_attr(p, attr_icflag, PROCESSED)
-	 setfield(p, 'xoffset', getfield(p, 'xoffset') - fshift.left)
-	 setfield(p, 'yoffset', getfield(p, 'yoffset') - kbl - fshift.down)
+         set_attr(p, attr_icflag, PROCESSED)
+         local xo, yo = getoffsets(p)
+	 setoffsets(p, xo - fshift.left, yo - kbl - fshift.down)
 	 return node_next(p), head, p
       elseif ht_diff >= 0 and dp_diff >=0 then -- rule
 	 local box = node_new(id_rule,rule_subtype)
-	 setfield(p, 'yoffset', getfield(p, 'yoffset') - kbl - fshift.down)
-	 setfield(box, 'width', 0)
-	 setfield(box, 'height', fheight - kbl)
-	 setfield(box, 'depth', fdepth + kbl)
-	 setfield(box, 'dir', dir)
+         local xo, yo = getoffsets(p)
+	 setoffsets(p, xo, yo - kbl - fshift.down)
+	 setwhd(box, 0, fheight - kbl, fdepth + kbl)
+	 setdir(box, dir)
 	 set_attr(box, attr_icflag, PACKED)
 	 set_attr(p, attr_icflag, PROCESSED)
 	 head = p and node_insert_before(head, p, box)
@@ -116,17 +126,15 @@
 
    local q
    head, q = node_remove(head, p)
-   setfield(p, 'yoffset', getfield(p, 'yoffset') -fshift.down);
-   setfield(p, 'next', nil)
-   setfield(p, 'xoffset', getfield(p, 'xoffset')
-	       + char_data.align*(fwidth-pwidth) - fshift.left)
+   local xo, yo = getoffsets(p)
+   setoffsets(p, xo + char_data.align*(fwidth-pwidth) - fshift.left,
+              yo - fshift.down);
+   setnext(p, nil)
    local box = node_new(id_hlist)
-   setfield(box, 'width', fwidth)
-   setfield(box, 'height', fheight)
-   setfield(box, 'depth', fdepth)
+   setwhd(box, fwidth, fheight, fdepth)
    setfield(box, 'head', p)
    setfield(box, 'shift', kbl)
-   setfield(box, 'dir', dir)
+   setdir(box, dir)
    set_attr(box, attr_icflag, PACKED)
    head = q and node_insert_before(head, q, box)
       or node_insert_after(head, node_tail(head), box)
@@ -143,7 +151,7 @@
    do
       local pf = getfont(p)
       local pc = getchar(p)
-      setfield(p, 'char', pc)
+      setchar(p, pc)
       pwidth = ltjf_font_extra_info[pf] and  ltjf_font_extra_info[pf][pc]
 	 and ltjf_font_extra_info[pf][pc].vwidth
 	 and ltjf_font_extra_info[pf][pc].vwidth * met.size or (ascent+descent)
@@ -155,20 +163,17 @@
    fshift = call_callback("luatexja.set_width", fshift, met, char_data)
    local fheight = char_data.height or 0
    local fdepth  = char_data.depth or 0
-   local y_shift
-      = getfield(p, 'xoffset') + (has_attr(p,attr_tkblshift) or 0)
+   local xo, yo = getoffsets(p)
+   local y_shift = xo + (has_attr(p,attr_tkblshift) or 0)
    local q
    head, q = node_remove(head, p)
    local box = node_new(id_hlist)
-   setfield(box, 'width', fwidth)
-   setfield(box, 'height', fheight)
-   setfield(box, 'depth', fdepth)
+   setwhd(box, fwidth, fheight, fdepth)
    setfield(box, 'shift', y_shift)
-   setfield(box, 'dir', dir)
+   setdir(box, dir)
 
-   setfield(p, 'xoffset', - fshift.down)
-   setfield(p, 'yoffset', getfield(p, 'yoffset') -(ascent
-                                + char_data.align*(fwidth-pwidth) - fshift.left) )
+   setoffsets(p, -fshift.down,
+              yo -(ascent + char_data.align*(fwidth-pwidth) - fshift.left) )
    local ws = node_new(id_whatsit, sid_save)
    local wm = node_new(id_whatsit, sid_matrix)
    setfield(wm, 'data', '0 1 -1 0')
@@ -177,9 +182,9 @@
    local k3 = node_new(id_kern, 1); setfield(k3, 'kern', -getfield(p, 'width')-pwnh)
    local wr = node_new(id_whatsit, sid_restore)
    setfield(box, 'head', ws)
-   setfield(ws, 'next', wm);  setfield(wm, 'next', k2);
-   setfield(k2, 'next', p);   setfield(p, 'next', k3);
-   setfield(k3, 'next', wr);
+   setnext(ws, wm);  setnext(wm, k2);
+   setnext(k2, p);   setnext(p,  k3);
+   setnext(k3, wr);
 
    set_attr(box, attr_icflag, PACKED)
    head = q and node_insert_before(head, q, box)
@@ -200,12 +205,10 @@
    setfield(p, 'yoffset', -fshift.down)
    setfield(p, 'xoffset', getfield(p, 'xoffset') + char_data.align*(fwidth-pwidth) - fshift.left)
    local box = node_new(id_hlist);
-   setfield(box, 'width', fwidth)
-   setfield(box, 'height', fheight)
-   setfield(box, 'depth', fdepth)
+   setwhd(box, fwidth, fheight, fdepth)
    setfield(box, 'head', p)
    setfield(box, 'shift', y_shift)
-   setfield(box, 'dir', tex.mathdir)
+   setdir(box, tex.mathdir)
    set_attr(box, attr_icflag, PACKED)
    return box
 end
@@ -223,7 +226,7 @@
 	 elseif pid==id_rule then
 	    local v = has_attr(p,attr_ablshift) or 0
 	    setfield(p, 'height', getfield(p, 'height')-v)
-	    setfield(p, 'depth', getfield(p, 'depth')+v)
+	    setfield(p, 'depth', getdepth(p)+v)
 	    set_attr(p, attr_icflag, PROCESSED)
 	 elseif pid==id_glyph then
 	    -- 欧文文字; 和文文字は pid == id_hlist の場合で処理される
@@ -248,14 +251,14 @@
       local y_adjust, node_depth, adj_depth = 0, 0, 0
       for lp in node_traverse_id(id_glyph, head) do
 	 y_adjust = has_attr(lp,attr_ablshift) or 0
-	 node_depth = max(getfield(lp, 'depth') + min(y_adjust, 0), node_depth)
-	 adj_depth = (y_adjust>0) and max(getfield(lp, 'depth') + y_adjust, adj_depth) or adj_depth
+	 local ld = getdepth(lp)
+	 node_depth = max(ld + min(y_adjust, 0), node_depth)
+	 adj_depth = (y_adjust>0) and max(ld + y_adjust, adj_depth) or adj_depth
 	 setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust)
       end
       if adj_depth>node_depth then
 	 local r = node_new(id_rule,rule_subtype)
-	 setfield(r, 'width', 0); setfield(r, 'height', 0)
-	 setfield(r, 'depth', adj_depth); setfield(r, 'dir', tex_dir)
+	 setwhd(r, 0, 0, adj_depth); setdir(r, tex_dir)
 	 set_attr(r, attr_icflag, PROCESSED)
 	 if field=='post' then
 	    node_insert_after(head, head, r)

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.stack',
-  date = '2014/05/08',
+  date = '2017/05/05',
   description = 'LuaTeX-ja stack system',
 })
 module('luatexja.stack', package.seeall)

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls	2017-05-05 22:50:45 UTC (rev 44217)
@@ -837,7 +837,7 @@
         \begingroup \@svsechd \endgroup
         \unskip
         \@tempskipa #1\relax
-        \hskip -\@tempskipa\@inhibitglue
+        \hskip -\@tempskipa\ltjfakeparbegin
       \else
         \clubpenalty \@clubpenalty
         \everypar{}%
@@ -1402,7 +1402,7 @@
   \parindent 1\zw
   \noindent
   \llap{\@makefnmark\hskip0.3\zw}#1}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if at noparitem
     \@donoparitem
@@ -1445,7 +1445,7 @@
     \else
       \clubpenalty \@clubpenalty
       \everypar{}%
-    \fi\@inhibitglue}%
+    \fi\ltjfakeparbegin}%
   \if at noitemarg
     \@noitemargfalse
     \if at nmbrlist

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls	2017-05-05 22:50:45 UTC (rev 44217)
@@ -852,7 +852,7 @@
         \begingroup \@svsechd \endgroup
         \unskip
         \@tempskipa #1\relax
-        \hskip -\@tempskipa\@inhibitglue
+        \hskip -\@tempskipa\ltjfakeparbegin
       \else
         \clubpenalty \@clubpenalty
         \everypar{}%
@@ -1495,7 +1495,7 @@
   \parindent 1\zw
   \noindent
   \llap{\@makefnmark\hskip0.3\zw}#1}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if at noparitem
     \@donoparitem
@@ -1538,7 +1538,7 @@
     \else
       \clubpenalty \@clubpenalty
       \everypar{}%
-    \fi\@inhibitglue}%
+    \fi\ltjfakeparbegin}%
   \if at noitemarg
     \@noitemargfalse
     \if at nmbrlist

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls	2017-05-05 22:50:45 UTC (rev 44217)
@@ -799,7 +799,7 @@
         \begingroup \@svsechd \endgroup
         \unskip
         \@tempskipa #1\relax
-        \hskip -\@tempskipa\@inhibitglue
+        \hskip -\@tempskipa\ltjfakeparbegin
       \else
         \clubpenalty \@clubpenalty
         \everypar{}%
@@ -1367,7 +1367,7 @@
   \parindent 1\zw
   \noindent
   \llap{\@makefnmark\hskip0.3\zw}#1}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if at noparitem
     \@donoparitem
@@ -1410,7 +1410,7 @@
     \else
       \clubpenalty \@clubpenalty
       \everypar{}%
-    \fi\@inhibitglue}%
+    \fi\ltjfakeparbegin}%
   \if at noitemarg
     \@noitemargfalse
     \if at nmbrlist

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls	2017-05-05 22:50:45 UTC (rev 44217)
@@ -727,7 +727,7 @@
         \begingroup \@svsechd \endgroup
         \unskip
         \@tempskipa #1\relax
-        \hskip -\@tempskipa\@inhibitglue
+        \hskip -\@tempskipa\ltjfakeparbegin
       \else
         \clubpenalty \@clubpenalty
         \everypar{}%
@@ -1261,7 +1261,7 @@
   \parindent 1\zw
   \noindent
   \llap{\@makefnmark\hskip0.3\zw}#1}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if at noparitem
     \@donoparitem
@@ -1304,7 +1304,7 @@
     \else
       \clubpenalty \@clubpenalty
       \everypar{}%
-    \fi\@inhibitglue}%
+    \fi\ltjfakeparbegin}%
   \if at noitemarg
     \@noitemargfalse
     \if at nmbrlist

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls	2017-05-05 22:50:45 UTC (rev 44217)
@@ -825,7 +825,7 @@
         \begingroup \@svsechd \endgroup
         \unskip
         \@tempskipa #1\relax
-        \hskip -\@tempskipa\@inhibitglue
+        \hskip -\@tempskipa\ltjfakeparbegin
       \else
         \clubpenalty \@clubpenalty
         \everypar{}%
@@ -1488,7 +1488,7 @@
   \parindent 1\zw
   \noindent
   \llap{\@makefnmark\hskip0.3\zw}#1}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
 \def\@item[#1]{%
   \if at noparitem
     \@donoparitem
@@ -1531,7 +1531,7 @@
     \else
       \clubpenalty \@clubpenalty
       \everypar{}%
-    \fi\@inhibitglue}%
+    \fi\ltjfakeparbegin}%
   \if at noitemarg
     \@noitemargfalse
     \if at nmbrlist

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -65,13 +65,13 @@
   \expandafter\let\csname ifltj at in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-compat}[2015/05/09 Compatibility with pTeX]
+  \ProvidesPackage{luatexja-compat}[2017/05/05 Compatibility with pTeX]
 \fi                             %</LaTeX>
 
 % Load core module if not yet.
 \ifx\luatexjacoreLoaded\@undefined
   \ifltj at in@latex                 %<*LaTeX>
-    \RequirePackage{luatexja-core}[2013/05/14]
+    \RequirePackage{luatexja-core}
   \else                           %<*!LaTeX>
     \input luatexja-core.sty %
   \fi                             %</LaTeX>

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -65,7 +65,7 @@
   \expandafter\let\csname ifltj at in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja-core}[2016/05/15 Core of LuaTeX-ja]
+  \ProvidesPackage{luatexja-core}[2017/05/05 Core of LuaTeX-ja]
 \fi                             %</LaTeX>
 
 %% Load prerequisite packages.
@@ -189,7 +189,7 @@
 
 %%%%%%%% Load all sub-packages.
 \ifltj at in@latex                 %<*LaTeX>
-  \RequirePackage{ltj-base}   [2016/05/15]
+  \RequirePackage{ltj-base}
 \else                           %<*!LaTeX>
   \input ltj-base.sty %
 \fi                             %</LaTeX>
@@ -198,7 +198,12 @@
 \def\asluastring#1{'\luatexluaescapestring{\detokenize{#1}}'}
 
 %%%%%%%% Redefine \/
-\protected\def\/{\relax\directlua{luatexja.jfont.append_italic()}}
+\newluafunction\ltj@@italic at inner
+\directlua{
+  local t = lua.get_functions_table()
+  t[\the\ltj@@italic at inner] = luatexja.jfont.append_italic
+}
+\protected\def\/{\relax\luafunction\ltj@@italic at inner}
 
 %%%%%%%% \jfont\CS={...:...;jfm=metric;...}, \globaljfont
 \protected\def\jfont#1{%
@@ -205,16 +210,12 @@
   \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
 \protected\def\globaljfont#1{%
   \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true,  'yoko','\luatexluaescapestring{\noexpand#1}')}}
-\ifdefined\newluafunction
-  \newluafunction\ltj@@jfont at inner
-  \directlua{
-    local t = lua.get_functions_table()
-    t[\the\ltj@@jfont at inner] = luatexja.jfont.jfontdefY
-  }
-  \def\ltj@@jfont{\luafunction\ltj@@jfont at inner}
-\else
-  \def\ltj@@jfont{\directlua{luatexja.jfont.jfontdefY()}}
-\fi
+\newluafunction\ltj@@jfont at inner
+\directlua{
+  local t = lua.get_functions_table()
+  t[\the\ltj@@jfont at inner] = luatexja.jfont.jfontdefY
+}
+\def\ltj@@jfont{\luafunction\ltj@@jfont at inner}
 
 %%%%%%%% \tfont\CS={...:...;jfm=metric;...}, \globaltfont
 \protected\def\tfont#1{%
@@ -223,45 +224,39 @@
   \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true,  'tate','\luatexluaescapestring{\noexpand#1}')}}
 
 %%%%%%%% \zw, \zh
-\ifdefined\newluafunction
-  \newluafunction\ltj at zw@inner
-  \newluafunction\ltj at zh@inner
-  \directlua{
-    local t, setdimen, ltjf = lua.get_functions_table(), tex.setdimen, luatexja.jfont
-    t[\the\ltj at zw@inner] = function() setdimen('ltj at zw', ltjf.get_zw()) end
-    t[\the\ltj at zh@inner] = function() setdimen('ltj at zh', ltjf.get_zh()) end
-  }
-  \protected\def\zw{\luafunction\ltj at zw@inner\ltj at zw}
-  \protected\def\zh{\luafunction\ltj at zh@inner\ltj at zh}
-\else
-  \protected\def\zw{\directlua{tex.setdimen('ltj at zw', luatexja.jfont.get_zw())}\ltj at zw}
-  \protected\def\zh{\directlua{tex.setdimen('ltj at zh', luatexja.jfont.get_zh())}\ltj at zh}
-\fi
+\newluafunction\ltj at zw@inner
+\newluafunction\ltj at zh@inner
+\directlua{
+  local t, setdimen, ltjf = lua.get_functions_table(), tex.setdimen, luatexja.jfont
+  t[\the\ltj at zw@inner] = function() setdimen('ltj at zw', ltjf.get_zw()) end
+  t[\the\ltj at zh@inner] = function() setdimen('ltj at zh', ltjf.get_zh()) end
+}
+\protected\def\zw{\luafunction\ltj at zw@inner\ltj at zw}
+\protected\def\zh{\luafunction\ltj at zh@inner\ltj at zh}
 
 %%%%%%%% \inhibitglue
-\ifdefined\newluafunction
-  \newluafunction\ltj at reset@globaldefs at inner
-  \newluafunction\ltj at restore@globaldefs at inner
-  \newluafunction\ltj@@ihb at inner
-  \directlua{
-    local t = lua.get_functions_table()
-    t[\the\ltj at reset@globaldefs at inner] 
-       = function() luatexja.global_temp = tex.globaldefs; tex.globaldefs = 0 end
-    t[\the\ltj at restore@globaldefs at inner] 
-       = function() tex.globaldefs = luatexja.global_temp end
-    t[\the\ltj@@ihb at inner] = luatexja.jfmglue.create_inhibitglue_node
-  }
-  \protected\def\ltj at reset@globaldefs{\luafunction\ltj at reset@globaldefs at inner}
-  \protected\def\ltj at restore@globaldefs{\luafunction\ltj at restore@globaldefs at inner}
-  \protected\def\inhibitglue{\ifhmode\relax\luafunction\ltj@@ihb at inner\fi}
-\else
-  \protected\def\ltj at reset@globaldefs{%
-    \directlua{luatexja.global_temp = tex.globaldefs; tex.globaldefs = 0}}
-  \protected\def\ltj at restore@globaldefs{\directlua{tex.globaldefs = luatexja.global_temp}\relax}
-  \protected\def\inhibitglue{\ifhmode\ltj@@ihb\fi}
-  \def\ltj@@ihb{\relax\directlua{luatexja.jfmglue.create_inhibitglue_node()}}
-\fi
+\newluafunction\ltj at reset@globaldefs at inner
+\newluafunction\ltj at restore@globaldefs at inner
+\newluafunction\ltj@@ihb at inner
+\newluafunction\ltj@@fakeparbegin at inner
+\newluafunction\ltj@@fakeboxbdd at inner
+\directlua{
+  local t = lua.get_functions_table()
+  t[\the\ltj at reset@globaldefs at inner] 
+     = function() luatexja.global_temp = tex.globaldefs; tex.globaldefs = 0 end
+  t[\the\ltj at restore@globaldefs at inner] 
+     = function() tex.globaldefs = luatexja.global_temp end
+  t[\the\ltj@@ihb at inner] = luatexja.jfmglue.create_inhibitglue_node
+  t[\the\ltj@@fakeparbegin at inner] = luatexja.jfmglue.create_beginpar_node
+  t[\the\ltj@@fakeboxbdd at inner] = luatexja.jfmglue.create_boxbdd_node
+}
+\protected\def\ltj at reset@globaldefs{\luafunction\ltj at reset@globaldefs at inner}
+\protected\def\ltj at restore@globaldefs{\luafunction\ltj at restore@globaldefs at inner}
+\protected\def\inhibitglue{\ifhmode\relax\luafunction\ltj@@ihb at inner\fi}
+\protected\def\ltjfakeparbegin{\ifhmode\relax\luafunction\ltj@@fakeparbegin at inner\fi}
+\protected\def\ltjfakeboxbdd{\ifhmode\relax\luafunction\ltj@@fakeboxbdd at inner\fi}
 
+
 %%%%%%%% \ltjdefcharrange<name>{100-200,3000-,5000,...}
 \protected\def\ltjdefcharrange#1#2{%
   {\ltj at tempcntc=#1 \expandafter\ltj@@dcrange#2,,}\ignorespaces}
@@ -384,33 +379,21 @@
 % [x]]kanjiskip = <skip>
 \define at key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip#1}
 \define at key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip#1}
-\ifdefined\newluafunction
-  \newluafunction\ltjsetkanjiskip at inner
-  \newluafunction\ltjsetxkanjiskip at inner
-  \directlua{
-    local t, scan_glue = lua.get_functions_table(), token.scan_glue
-    local sss, sti = luatexja.stack.set_stack_skip, luatexja.stack_table_index
-    t[\the\ltjsetkanjiskip at inner] = function()
-      local d = scan_glue(); sss(sti.KSK, d); node.free(d)
-    end
-    t[\the\ltjsetxkanjiskip at inner] = function()
-      local d = scan_glue(); sss(sti.XSK, d); node.free(d)
-    end
-  }
-  \protected\def\ltjsetkanjiskip{\luafunction\ltjsetkanjiskip at inner}
-  \protected\def\ltjsetxkanjiskip{\luafunction\ltjsetxkanjiskip at inner}
-\else
-  \protected\def\ltjsetkanjiskip{%                  % SKIP
-    \directlua{%
-      local d = token.scan_glue()
-      luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d)
-  }}
-  \protected\def\ltjsetxkanjiskip{%                  % SKIP
-    \directlua{%
-      local d = token.scan_glue()
-      luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d)
-  }}
-\fi
+\newluafunction\ltjsetkanjiskip at inner
+\newluafunction\ltjsetxkanjiskip at inner
+\directlua{
+  local t, scan_glue = lua.get_functions_table(), token.scan_glue
+  local sss, sti = luatexja.stack.set_stack_skip, luatexja.stack_table_index
+  t[\the\ltjsetkanjiskip at inner] = function()
+    local d = scan_glue(); sss(sti.KSK, d); node.free(d)
+  end
+  t[\the\ltjsetxkanjiskip at inner] = function()
+    local d = scan_glue(); sss(sti.XSK, d); node.free(d)
+  end
+}
+\protected\def\ltjsetkanjiskip{\luafunction\ltjsetkanjiskip at inner}
+\protected\def\ltjsetxkanjiskip{\luafunction\ltjsetxkanjiskip at inner}
+
 % jcharwidowpenalty = <count>
 \define at key[ltj]{japaram}{jcharwidowpenalty}{%      %COUNT
   \ltj@@set at stack{JWP}{-10000}{10000}\z@#1 }
@@ -611,76 +594,42 @@
 }
 \setbox\z@\box\voidb at x
 \ifltj at everyhook@avail% using everyhook package
-  \ifdefined\newluafunction
-    \newluafunction\ltj@@box at dirhook
-    \directlua{
-      local t, ltjd = lua.get_functions_table(), luatexja.direction
-      t[\the\ltj@@box at dirhook] 
-        = function() ltjd.set_list_direction_hook() end
-    }
+  \newluafunction\ltj@@box at dirhook
+  \directlua{
+    local t, ltjd = lua.get_functions_table(), luatexja.direction
+    t[\the\ltj@@box at dirhook] 
+      = function() ltjd.set_list_direction_hook() end
+  }
   \PushPreHook{hbox}{\luafunction\ltj@@box at dirhook\aftergroup\ltj@@reset at badness}
   \PushPreHook{vbox}{\luafunction\ltj@@box at dirhook\aftergroup\ltj@@reset at badness}
-  \else
-    \PushPreHook{hbox}{%
-      \directlua{luatexja.direction.set_list_direction_hook()}%
-      \aftergroup\ltj@@reset at badness
-    }
-    \PushPreHook{vbox}{%
-      \directlua{luatexja.direction.set_list_direction_hook()}%
-      \aftergroup\ltj@@reset at badness
-    }
-  \fi
 \else
   \let\ltj@@everyhbox=\everyhbox\let\ltj@@everyvbox=\everyvbox
   \newtoks\ltj@@i at everyhbox\newtoks\ltj@@i at everyvbox
   \let\everyhbox=\ltj@@i at everyhbox\let\everyvbox=\ltj@@i at everyvbox
-  \ifdefined\newluafunction
-    \newluafunction\ltj@@box at dirhook
-    \directlua{
-      local t, ltjd = lua.get_functions_table(), luatexja.direction
-      t[\the\ltj@@box at dirhook] 
-        = function() ltjd.set_list_direction_hook() end
-    }
-    \ltj@@everyhbox{\luafunction\ltj@@box at dirhook
-      \aftergroup\ltj@@reset at badness\the\ltj@@i at everyhbox}
-    \ltj@@everyvbox{\luafunction\ltj@@box at dirhook
-      \aftergroup\ltj@@reset at badness\the\ltj@@i at everyvbox}
-  \else
-    \ltj@@everyhbox{%
-      \directlua{luatexja.direction.set_list_direction_hook()}%
-      \aftergroup\ltj@@reset at badness
-      \the\ltj@@i at everyhbox}
-    \ltj@@everyvbox{%
-      \directlua{luatexja.direction.set_list_direction_hook()}%
-      \aftergroup\ltj@@reset at badness
-      \the\ltj@@i at everyvbox}
-  \fi
-\fi
-
-\ifdefined\newluafunction
-  \newluafunction\ltj@@reset at badness@inner
+  \newluafunction\ltj@@box at dirhook
   \directlua{
-    local t = lua.get_functions_table()
-    t[\the\ltj@@reset at badness@inner] = function() 
-      if luatexja.global_temp then
-        tex.hbadness= tex.hbadness or luatexja.hbadness_temp
-        tex.vbadness= tex.vbadness or luatexja.vbadness_temp
-        tex.globaldefs= luatexja.global_temp or tex.globaldefs
-      end
-    end}
-  \protected\def\ltj@@reset at badness{\luafunction\ltj@@reset at badness@inner}
-\else
-  \protected\def\ltj@@reset at badness{%
-    \directlua{%
-      if luatexja.global_temp then
-        tex.hbadness= tex.hbadness or luatexja.hbadness_temp
-        tex.vbadness= tex.vbadness or luatexja.vbadness_temp
-        tex.globaldefs= luatexja.global_temp or tex.globaldefs
-      end
-    }%
+    local t, ltjd = lua.get_functions_table(), luatexja.direction
+    t[\the\ltj@@box at dirhook] 
+      = function() ltjd.set_list_direction_hook() end
   }
+  \ltj@@everyhbox{\luafunction\ltj@@box at dirhook
+    \aftergroup\ltj@@reset at badness\the\ltj@@i at everyhbox}
+  \ltj@@everyvbox{\luafunction\ltj@@box at dirhook
+    \aftergroup\ltj@@reset at badness\the\ltj@@i at everyvbox}
 \fi
 
+\newluafunction\ltj@@reset at badness@inner
+\directlua{
+  local t = lua.get_functions_table()
+  t[\the\ltj@@reset at badness@inner] = function() 
+    if luatexja.global_temp then
+      tex.hbadness= tex.hbadness or luatexja.hbadness_temp
+      tex.vbadness= tex.vbadness or luatexja.vbadness_temp
+      tex.globaldefs= luatexja.global_temp or tex.globaldefs
+    end
+  end}
+\protected\def\ltj@@reset at badness{\luafunction\ltj@@reset at badness@inner}
+
 \AtBeginShipout{\directlua{luatexja.direction.finalize()}}
 
 %%%% \raise, \lower, \moveleft, \moveright
@@ -765,7 +714,7 @@
 %%------------------ Load module for the format
 
 \ifltj at in@latex                 %<*LaTeX>
-  \RequirePackage{ltj-latex}[2016/05/15]
+  \RequirePackage{ltj-latex}
 \else\ifltj at in@plain            %<*plain>
   \input ltj-plain.sty %
 \fi\fi                          %</LaTeX|plain>

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua	2017-05-05 22:50:45 UTC (rev 44217)
@@ -82,6 +82,7 @@
 userid_table.STCK = luatexbase.newuserwhatsitid('stack_marker', 'luatexja') -- スタック管理
 userid_table.BPAR = luatexbase.newuserwhatsitid('begin_par',    'luatexja') -- 「段落始め」
 userid_table.DIR  = luatexbase.newuserwhatsitid('direction',    'luatexja') -- 組方向
+userid_table.BOXB = luatexbase.newuserwhatsitid('box_boundary', 'luatexja') -- 「ボックス始め・終わり」
 
 local dir_table = {}
 luatexja.dir_table = dir_table

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -34,8 +34,10 @@
   \expandafter\let\csname ifltj at in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja}[2016/05/12 Japanese Typesetting with Lua(La)TeX]
+  \ProvidesPackage{luatexja}[2017/05/05 Japanese Typesetting with Lua(La)TeX]
 \fi                             %</LaTeX>
+%%%% VERSION
+\def\LuaTeXjaversion{20170505.0}
 
 \directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs
 
@@ -42,8 +44,8 @@
 %% Load all sub-packages.
 \ifltj at in@latex                 %<*LaTeX>
   %% \RequirePackage{expl3} needed if the version of l3kernel is v6111
-  \RequirePackage{luatexja-core}  [2016/05/15]
-  \RequirePackage{luatexja-compat}[2013/05/14]
+  \RequirePackage{luatexja-core}
+  \RequirePackage{luatexja-compat}
 \else                           %<*!LaTeX>
   \input luatexja-core.sty %
   \input luatexja-compat.sty %

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjcore}[2017/03/12 Patch to LaTeX2e Kernel for LuaTeX-ja]
+\ProvidesPackage{lltjcore}[2017/05/05 Patch to LaTeX2e Kernel for LuaTeX-ja]
 
 \def\cleardoublepage{\clearpage\if at twoside
   \ifodd\c at page
@@ -290,5 +290,18 @@
   \ignorespaces
 \fi}
 
+\def\@no at lnbk #1[#2]{%
+  \ifvmode
+    \@nolnerr
+  \else
+    \@tempskipa\lastskip
+    \unskip
+    \penalty #1\@getpen{#2}%
+    \hskip\z@\relax %% added (2017/05/03)
+    \ifdim\@tempskipa>\z@
+      \hskip\@tempskipa
+      \ignorespaces
+    \fi
+  \fi}
 
 \endinput

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjdefs}[2016/05/05 Default font settings of LuaTeX-ja]
+\ProvidesPackage{lltjdefs}[2017/05/05 Default font settings of LuaTeX-ja]
 
 \def\ltj at stdmcfont{IPAExMincho}
 \def\ltj at stdgtfont{IPAExGothic}

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjfont}[2017/04/01 Patch to NFSS2 for LuaTeX-ja]
+\ProvidesPackage{lltjfont}[2017/05/05 Patch to NFSS2 for LuaTeX-ja]
 
 \def\ltj at chardef@text at cmd#1{%
   \let\@ifdefinable\@@ifdefinable%
@@ -405,65 +405,40 @@
                 \@height.7\baselineskip \@depth.3\baselineskip}%
      \let\size at update\relax}}
 
-\ifdefined\newluafunction
-  \newluafunction\ltj@@adjust at baseline@inner
-  \begingroup\catcode`\~=12
-  \directlua{%
-    local nulltable = {}
-    local t = lua.get_functions_table()
-    local getfont, dir_tate = font.getfont, luatexja.dir_table.dir_tate
-    local fmt, get_attr = luatexja.jfont.font_metric_table, tex.getattribute
-    local setdimen, set_attr = tex.setdimen, tex.setattribute
-    local dir = luatexja.unary_pars.direction
-    t[\the\ltj@@adjust at baseline@inner] = function()
-      local ft = fmt[get_attr('ltj at curtfnt')] or nulltable
+\newluafunction\ltj@@adjust at baseline@inner
+\begingroup\catcode`\~=12
+\directlua{%
+  local nulltable = {}
+  local t = lua.get_functions_table()
+  local getfont, dir_tate = font.getfont, luatexja.dir_table.dir_tate
+  local fmt, get_attr = luatexja.jfont.font_metric_table, tex.getattribute
+  local setdimen, set_attr = tex.setdimen, tex.setattribute
+  local dir = luatexja.unary_pars.direction
+  t[\the\ltj@@adjust at baseline@inner] = function()
+    local ft = fmt[get_attr('ltj at curtfnt')] or nulltable
+    ft = ft and ft.char_type or nulltable
+    local fk = ft and ft[0] or nulltable
+    local ht, dp, wd = fk.height or 0, fk.depth or 0,
+                       fk.width or ft.zw or 0
+    local fm 
+      = ((getfont(font.current()) or nulltable)
+        .characters or nulltable)[77] or nulltable %% 'M'
+    set_attr('ltj at tablshift',
+      0.5*((fm.height or 0)- (fm.depth or 0) - ht+ dp))
+    if dir() ~= dir_tate then
+      ft = fmt[get_attr('ltj at curjfnt')] or nulltable
       ft = ft and ft.char_type or nulltable
-      local fk = ft and ft[0] or nulltable
-      local ht, dp, wd = fk.height or 0, fk.depth or 0,
-                         fk.width or ft.zw or 0
-      local fm 
-        = ((getfont(font.current()) or nulltable)
-          .characters or nulltable)[77] or nulltable %% 'M'
-      set_attr('ltj at tablshift',
-        0.5*((fm.height or 0)- (fm.depth or 0) - ht+ dp))
-      if dir() ~= dir_tate then
-        ft = fmt[get_attr('ltj at curjfnt')] or nulltable
-        ft = ft and ft.char_type or nulltable
-        fk = ft and ft[0] or nulltable
-        ht, dp, wd = fk.height or 0, fk.depth or 0,
-                     fk.width or ft.zw or 0
-      end
-      setdimen('cht', ht); setdimen('cdp', dp)
-      setdimen('cwd', wd); setdimen('chs', wd)
-      setdimen('cHT', ht+dp)
+      fk = ft and ft[0] or nulltable
+      ht, dp, wd = fk.height or 0, fk.depth or 0,
+                   fk.width or ft.zw or 0
     end
-  }\endgroup
-  \def\adjustbaseline{\luafunction\ltj@@adjust at baseline@inner
-     \cvs\normalbaselineskip}
-\else
-  \newbox\adjust at box
-  \newbox\adjust at box@aux
-  \newdimen\adjust at dimen
-  \def\adjustbaseline{%
-    \setbox\adjust at box\hbox{%
-      \ltj at ykblshift\z@\ltj at tkblshift\z@ 漢}%
-    \cht\ht\adjust at box
-    \cdp\dp\adjust at box
-    \cwd\wd\adjust at box
-    \cvs\normalbaselineskip
-    \chs\cwd
-    \cHT\cht \advance\cHT\cdp
-    \setbox\adjust at box@aux\hbox{\tate\ltj at tkblshift\z@ 漢}%
-    \setbox\adjust at box\hbox{\tate\ltj at tablshift\z@ M}%
-    \adjust at dimen\ht\adjust at box
-    \advance\adjust at dimen\dp\adjust at box
-    \advance\adjust at dimen-\ht\adjust at box@aux
-    \divide\adjust at dimen\tw@
-    \advance\adjust at dimen0.5\dp\adjust at box@aux
-    \advance\adjust at dimen-\dp\adjust at box
-    \ltj at tablshift=\adjust at dimen
-  }
-\fi
+    setdimen('cht', ht); setdimen('cdp', dp)
+    setdimen('cwd', wd); setdimen('chs', wd)
+    setdimen('cHT', ht+dp)
+  end
+}\endgroup
+\def\adjustbaseline{\luafunction\ltj@@adjust at baseline@inner
+   \cvs\normalbaselineskip}
 \DeclareRobustCommand\romanencoding[1]{%
     \expandafter\ifx\csname T@#1\endcsname\relax
       \@latex at error{Encoding scheme `#1' unknown}\@eha

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec-immediate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec-immediate.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec-immediate.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-fontspec-immediate}[2017/01/28 Patch to fontspec for LuaTeX-ja]
+%%% \ProvidesPackage{lltjp-fontspec-immediate}[2017/01/28 Patch to fontspec for LuaTeX-ja]
 
 \RequirePackage{fontspec,luatexja}
 \ExplSyntaxOn

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-fontspec}[2017/01/28 Patch to fontspec for LuaTeX-ja]
+\ProvidesPackage{lltjp-fontspec}[2017/05/05 Patch to fontspec for LuaTeX-ja]
 
 \RequirePackage{fontspec,luatexja}
 \ExplSyntaxOn

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-footmisc}[2017/01/19 Patch to footmisc for LuaTeX-ja]
+\ProvidesPackage{lltjp-footmisc}[2017/05/05 Patch to footmisc for LuaTeX-ja]
 \RequirePackage{footmisc}
 
 \let  \if at tempswa  \ifFN at bottom

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-geometry}[2016/10/06 Patch to geometry for LuaTeX-ja with vertical writing mode]
+\ProvidesPackage{lltjp-geometry}[2017/05/05 Patch to geometry for LuaTeX-ja with vertical writing mode]
 \RequirePackage{ifluatex}
 
 \ifdefined\if at ltj@@geometry at tate\expandafter\endinput\fi

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-listings}[2016/03/31 Patch to listings for LuaTeX-ja]
+\ProvidesPackage{lltjp-listings}[2017/05/05 Patch to listings for LuaTeX-ja]
 \RequirePackage{listings,luatexbase-cctb}
 
 %%%%%%%%%%%%%%%% Japanese support

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-stfloats}[2017/02/19 Patch to stfloats for LuaTeX-ja]
+\ProvidesPackage{lltjp-stfloats}[2017/05/05 Patch to stfloats for LuaTeX-ja]
 
 \RequirePackage{stfloats,luatexja}
 \RequirePackage{etoolbox}

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -7,7 +7,7 @@
 % \dimen...=\ybaselineshift ==> \dimen...=\ltj at yablshift sp
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-tascmac}[2016/05/05 Patch to (t)ascmac for LuaTeX-ja]
+\ProvidesPackage{lltjp-tascmac}[2017/05/05 Patch to (t)ascmac for LuaTeX-ja]
 
 \RequirePackage{tascmac,luatexja}
 

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-unicode-math.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-unicode-math}[2015/10/28 Patch to unicode-math for LuaTeX-ja]
+\ProvidesPackage{lltjp-unicode-math}[2017/05/05 Patch to unicode-math for LuaTeX-ja]
 
 \RequirePackage{unicode-math,luatexja}
 

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-xunicode.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-xunicode.sty	2017-05-05 22:50:09 UTC (rev 44216)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-xunicode.sty	2017-05-05 22:50:45 UTC (rev 44217)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-xunicode}[2017/01/19 Patch to xunicode for LuaTeX-ja]
+\ProvidesPackage{lltjp-xunicode}[2017/05/05 Patch to xunicode for LuaTeX-ja]
 
 \def\XeTeXpicfile{}
 \RequirePackage{xunicode,luatexja}



More information about the tex-live-commits mailing list