summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/luatexja/src
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/generic/luatexja/src')
-rw-r--r--macros/luatex/generic/luatexja/src/lltjext.sty4
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-base.sty15
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-direction.lua24
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-kinsoku.tex (renamed from macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex)44
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-latex.sty77
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-plain.sty12
-rw-r--r--macros/luatex/generic/luatexja/src/ltjclasses.dtx13
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja-compat.sty22
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja-core.sty26
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja.lua22
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja.sty4
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjdefs.sty15
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty62
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty52
14 files changed, 225 insertions, 167 deletions
diff --git a/macros/luatex/generic/luatexja/src/lltjext.sty b/macros/luatex/generic/luatexja/src/lltjext.sty
index 9e1421b130..d19db9ab61 100644
--- a/macros/luatex/generic/luatexja/src/lltjext.sty
+++ b/macros/luatex/generic/luatexja/src/lltjext.sty
@@ -738,7 +738,6 @@
\lineskip\z@skip\baselineskip\z@skip\@preamble}
\def\endarray{\crcr\egroup\egroup\@end@alignbox\@arrayright}
}
-
\@ifpackageloaded{array}{%
\let\tabular=\ltj@lltjext@orig@tabular
\let\array=\ltj@lltjext@orig@array
@@ -746,8 +745,7 @@
}{%
\let\ltj@lltjext@orig@tabular\relax
\let\ltj@lltjext@orig@array\relax
- \RequirePackage{filehook,etoolbox}
- \AtEndOfPackageFile{array}{\ltj@lltjext@patch@array}
+ \ltj@ExecuteAfterPackage{array}{\ltj@lltjext@patch@array}
}
%%%%%%%%%%%%%%%% LuaTeX-ja original
diff --git a/macros/luatex/generic/luatexja/src/ltj-base.sty b/macros/luatex/generic/luatexja/src/ltj-base.sty
index 605797f3a3..622b387723 100644
--- a/macros/luatex/generic/luatexja/src/ltj-base.sty
+++ b/macros/luatex/generic/luatexja/src/ltj-base.sty
@@ -13,7 +13,7 @@
\ifltj@in@latex %<*LaTeX>
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{ltj-base}[2020-07-27]
+ \ProvidesPackage{ltj-base}[2020-08-04]
\fi %</LaTeX>
%%------------------ Tiny helpers
@@ -96,13 +96,6 @@
%! plain であるか.
\ltj@csletcs{ifltj@in@plain}{iffalse}
-%% \ltj@require@package{<package>}{<date>}
-%! サブパッケージを読み込む. LaTeX では \RequirePackage、それ以外では
-%! \input を使う. <date> は必須だが空でもよい.
-\def\ltj@require@package#1#2{
- \RequirePackage{#1}[#2]
-}
-
%% \ltj@print{<message>}
%! 端末への出力.
\let\ltj@print\typeout
@@ -116,11 +109,6 @@
\ltj@csletcs{ifltj@in@plain}{iffalse}
\fi
-%% \ltj@require@package{<package>}{<date>}
-\def\ltj@require@package#1#2{
- \input #1.sty\relax
-}
-
%% \ltj@print{<message>}
\def\ltj@print#1{
\immediate\write16{#1}
@@ -299,6 +287,7 @@
%% from Sonja Maus, ``Looking Ahead for a <box>'',
%% TUGBoat, 11, No. 4, 1990.
\newbox\ltj@afbox
+\directlua{luatexja.afbox_number=\the\ltj@afbox}
\protected\def\ltj@afterbox#1{%
\def\ltj@afb@xarg{#1}%
\afterassignment\ltj@afb@x
diff --git a/macros/luatex/generic/luatexja/src/ltj-direction.lua b/macros/luatex/generic/luatexja/src/ltj-direction.lua
index 523397d804..4c6c3b6bd7 100644
--- a/macros/luatex/generic/luatexja/src/ltj-direction.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-direction.lua
@@ -900,8 +900,7 @@ do
local sd = to_direct(s)
local box_dir = get_box_dir(sd, dir_yoko)
if box_dir%dir_math_mod ~= list_dir then
- setbox(
- 'ltj@afbox',
+ setbox('ltj@afbox',
to_node(copy_list(make_dir_whatsit(sd, sd, list_dir, 'box_move')))
-- copy_list しないとリストの整合性が崩れる……?
)
@@ -1059,8 +1058,7 @@ do
local finalize_inner
local function finalize_dir_node(db,new_dir)
local b = getlist(db)
- if getid(b)==id_whatsit and getsubtype(b)==sid_user
- and getfield(b, 'user_id')==DIR then
+ while b and ((getid(b)~=id_hlist) and (getid(b)~=id_vlist)) do
local ob = b; b = node_remove(b,b); setfield(db, 'head', b);
node_free(ob)
end
@@ -1115,19 +1113,21 @@ do
end
end
end
- local getbox = tex.getbox
+ local getbox, shipout = tex.getbox, tex.shipout
local setbox, copy = node.direct.setbox, node.direct.copy
- local lua_mem_kb = 0
- function luatexja.direction.finalize()
- local a = to_direct(tex.getbox("AtBeginShipoutBox"))
+ local afbox
+ function luatexja.direction.shipout()
+ start_time_measure 'box_primitive_hook'
+ if (not afbox) and luatexja.afbox_number then afbox = luatexja.afbox_number end
+ local a = to_direct(getbox 'ltj@afbox')
local a_dir = get_box_dir(a, dir_yoko)
if a_dir~=dir_yoko then
local b = create_dir_node(a, a_dir, dir_yoko, false)
setfield(b, 'head', a); a = b
end
- setfield(shipout_temp, 'head', a)
- finalize_inner(shipout_temp)
- setbox('global', "AtBeginShipoutBox", copy(getlist(shipout_temp)))
- setfield(shipout_temp, 'head',nil)
+ setfield(shipout_temp, 'head', a); finalize_inner(shipout_temp)
+ setbox(afbox, copy(getlist(shipout_temp))); setfield(shipout_temp, 'head',nil)
+ shipout(afbox)
+ stop_time_measure 'box_primitive_hook'
end
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex b/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
index 5d25ff0f11..d5b9c183b7 100644
--- a/macros/luatex/generic/luatexja/src/ltj-kinsoku_make.tex
+++ b/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
@@ -1,27 +1,22 @@
-%#!luatex ltj-kinsoku_make.tex
-%\tracingall
-\input luatexja.sty
-
-\catcode`\@=11
\ltj@tempcnta="0%"
\loop\ifnum\ltj@tempcnta<"100%"
\ltjsetparameter{alxspmode={\ltj@tempcnta,0}}%
\advance\ltj@tempcnta by1
\repeat
-\ltj@tempcnta=`\0%"
-\loop\ifnum\ltj@tempcnta<`\:%"
+\ltj@tempcnta=`0%"
+\loop\ifnum\ltj@tempcnta<`:%"
\ltjsetparameter{alxspmode={\ltj@tempcnta,3}}%
\advance\ltj@tempcnta by1
\repeat
-\ltj@tempcnta=`\A%"
-\loop\ifnum\ltj@tempcnta<`\[%"
+\ltj@tempcnta=`A%"
+\loop\ifnum\ltj@tempcnta<`[%"
\ltjsetparameter{alxspmode={\ltj@tempcnta,3}}%
\advance\ltj@tempcnta by1
\repeat
-\ltj@tempcnta=`\a%"
+\ltj@tempcnta=`a%"
\loop\ifnum\ltj@tempcnta<`\{%"
\ltjsetparameter{alxspmode={\ltj@tempcnta,3}}%
\advance\ltj@tempcnta by1
@@ -446,11 +441,28 @@
\ltjsetparameter{jaxspmode={`「,preonly}}
\ltjsetparameter{jaxspmode={`」,postonly}}
-\catcode`\_=12
-\directlua{
- s = table.copy(luatexja.stack.charprop_stack_table[0])
- s.kanjiskip = nil; s.xkanjiskip = nil
- table.tofile('ltj-kinsoku.lua', s, 'return', false, true, false)
+\ltjsetparameter{%
+ kanjiskip=\z@ plus .4pt minus .5pt,
+ xkanjiskip=2.40554pt plus 1pt minus 1pt,
+ yalbaselineshift=\z@, yjabaselineshift=\z@,
+ jcharwidowpenalty=500
}
-\bye
+% default setting of kansujichar (luatexja-compat)
+\define@key[ltj]{japaram}{kansujichar}{\ltj@@set@stack{KSJ}{0}{0x7FFFFFFF}#1 }
+
+\ltjsetparameter{kansujichar={0,`〇}}
+\ltjsetparameter{kansujichar={1,`一}}
+\ltjsetparameter{kansujichar={2,`二}}
+\ltjsetparameter{kansujichar={3,`三}}
+\ltjsetparameter{kansujichar={4,`四}}
+\ltjsetparameter{kansujichar={5,`五}}
+\ltjsetparameter{kansujichar={6,`六}}
+\ltjsetparameter{kansujichar={7,`七}}
+\ltjsetparameter{kansujichar={8,`八}}
+\ltjsetparameter{kansujichar={9,`九}}
+
+\directlua{%
+ local s = table.copy(luatexja.stack.charprop_stack_table[0])
+ luatexja.base.save_cache('ltj-kinsoku_default', {s, version=1})
+}
diff --git a/macros/luatex/generic/luatexja/src/ltj-latex.sty b/macros/luatex/generic/luatexja/src/ltj-latex.sty
index ca774fe8cd..55fd5d4ebd 100644
--- a/macros/luatex/generic/luatexja/src/ltj-latex.sty
+++ b/macros/luatex/generic/luatexja/src/ltj-latex.sty
@@ -12,7 +12,7 @@
\def\luatexjalatexLoaded{\endinput}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ltj-latex}[2020-05-17 LaTeX support of LuaTeX-ja]
+\ProvidesPackage{ltj-latex}[2020-08-08 LaTeX support of LuaTeX-ja]
% cleanup at end of the document
%\let\ltj@@orig@end=\@@end
@@ -27,45 +27,49 @@
\usepackage{lltjcore}
%%% patching commands
-\RequirePackage{filehook}
-
-\def\ltj@pkgpatch@im#1{%
- \@ifnextchar[{\ltj@pkgpatch@im@{#1}}{\ltj@pkgpatch@im@{#1}[lltjp-#1]}}%]
-\def\ltj@pkgpatch@im@#1[#2]{%
- \AtEndOfPackageFile*{#1}{%
- \@ifpackageloaded{#2}{}{%
- \@namedef{ver@#2.\@pkgextension}{0000/00/00}%dummy
- \if\catcode`@=11\let\ltj@temp\relax\else
- \edef\ltj@temp{\noexpand\catcode`@=\the\catcode`@\relax}\makeatletter
- \fi
- \@@input{#2.\@pkgextension}\ltj@temp
- }%
+\newif\ifltj@ltfilehook@avail
+\@ifl@t@r\fmtversion{2020-10-01}{%
+ \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltfilehook@availtrue\fi
+ \else\ltj@ltfilehook@availtrue\fi
+}{}
+\ifltj@ltfilehook@avail
+ \def\@@ltj@ExecuteAfterPackage#1{\AddToHook{package/after/#1}}
+ \def\@@ltj@ExecuteBeforePackage#1{\AddToHook{package/before/#1}}
+ \def\ltj@ExecuteAfterPackage{\@ifstar\@@ltj@ExecuteAfterPackage@star\@@ltj@ExecuteAfterPackage}
+ \def\@@ltj@ExecuteAfterPackage@star#1#2{%
+ \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteAfterPackage{#1}{#2}}%
+ }
+ \def\ltj@ExecuteBeforePackage{\@ifstar\@@ltj@ExecuteBeforePackage@star\@@ltj@ExecuteBeforePackage}
+ \def\@@ltj@ExecuteBeforePackage@star#1#2{%
+ \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteBeforePackage{#1}{#2}}%
+ }
+\else
+ \RequirePackage{filehook}
+ \let\ltj@ExecuteAfterPackage=\AtEndOfPackageFile
+ \let\ltj@ExecuteBeforePackage=\AtBeginOfPackageFile
+\fi
+\def\ltj@pkgpatch@im#1{\@ifnextchar[{\ltj@pkgpatch@im@{#1}}{\ltj@pkgpatch@im@{#1}[lltjp-#1]}}%]
+\def\ltj@pkgpatch@im@#1[#2]{\ltj@ExecuteAfterPackage*{#1}{\ltj@pkgpatch@im@@{#2}}}
+\def\ltj@pkgpatch@im@@#1{%
+ \@ifpackageloaded{#1}{}{%
+ \if\catcode`@=11\let\ltj@temp\relax\else
+ \edef\ltj@temp{\noexpand\catcode`@=\the\catcode`@\relax}\makeatletter
+ \fi
+ \@@input{#1.\@pkgextension}\ltj@temp
}%
}
-\def\ltj@pkgpatch#1{%
- \@ifnextchar[{\ltj@pkgpatch@@{#1}}{\ltj@pkgpatch@@{#1}[lltjp-#1]}}%]
-\def\ltj@pkgpatch@@#1[#2]{%
- \gpreto\@begindocumenthook{%
- \@ifpackageloaded{#1}{%
- \@ifpackageloaded{#2}{}{\RequirePackage{#2}}%
- }{}%
+\def\ltj@pkgpatch#1{\@ifnextchar[{\ltj@pkgpatch@{#1}}{\ltj@pkgpatch@{#1}[lltjp-#1]}}%]
+\ifltj@ltfilehook@avail
+ \def\ltj@pkgpatch@@{\AddToHook{env/document/before}[luatexja.autopatch]}
+\else
+ \def\ltj@pkgpatch@@{\gpreto\@begindocumenthook}
+\fi
+\def\ltj@pkgpatch@#1[#2]{%
+ \ltj@pkgpatch@@{%
+ \@ifpackageloaded{#1}{\@ifpackageloaded{#2}{}{\RequirePackage{#2}}}{}%
}%
}
-
-%%% default parameters
-\directlua{
- local s = kpse.find_file('ltj-kinsoku.lua', 'tex')
- luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {}
-}
-
-\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .5pt,
- xkanjiskip=.25\zw plus 1pt minus 1pt,
- autospacing, autoxspacing, jacharrange={-1},
- yalbaselineshift=\z@, yjabaselineshift=\z@,
- jcharwidowpenalty=500, differentjfm=paverage
-}
-
\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
%%% patch for packages
@@ -83,7 +87,8 @@
\ltj@pkgpatch@im{unicode-math}
\ltj@pkgpatch@im{siunitx}
\ltj@pkgpatch@im{microtype}
-\ltj@pkgpatch@im{everyshi}
+
+\ifltj@ltshipout@avail\else\ltj@pkgpatch@im{everyshi}\fi
\RequirePackage{lltjp-geometry}
diff --git a/macros/luatex/generic/luatexja/src/ltj-plain.sty b/macros/luatex/generic/luatexja/src/ltj-plain.sty
index 16e71e1060..58baa9ff9d 100644
--- a/macros/luatex/generic/luatexja/src/ltj-plain.sty
+++ b/macros/luatex/generic/luatexja/src/ltj-plain.sty
@@ -57,16 +57,8 @@
\def\gt{\tengt\tentgt}
\mc
-\directlua{
- local s = kpse.find_file('ltj-kinsoku.lua', 'tex')
- luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {}
-}
-
-\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .4pt,
- xkanjiskip=.25\zw plus 1pt minus 1pt,
- autospacing, autoxspacing, jacharrange={-1},
- yalbaselineshift=\z@, yjabaselineshift=\z@,
- jcharwidowpenalty=500, differentjfm=paverage,
+\ltjsetparameter{%
+ autospacing, autoxspacing, differentjfm=paverage,
jatextfont={0, \tenmin}, jascriptfont={0, \sevenmin},
jascriptscriptfont={0, \fivemin},
}
diff --git a/macros/luatex/generic/luatexja/src/ltjclasses.dtx b/macros/luatex/generic/luatexja/src/ltjclasses.dtx
index dd156b3393..a868bcb58e 100644
--- a/macros/luatex/generic/luatexja/src/ltjclasses.dtx
+++ b/macros/luatex/generic/luatexja/src/ltjclasses.dtx
@@ -133,6 +133,7 @@
% 新設の|ptexmin|オプション指定時にのみ行うようにした。
% 句読点を「、」「。」に統一。}
% \changes{v1.8e-ltj-19}{2020/07/27}{|everyshi|パッケージへのパッチを別パッケージへ分離。}
+% \changes{v1.8e-ltj-20}{2020/08/03}{\LaTeX~2020-10-01への対応.}
% \fi
%
% \iffalse
@@ -4706,8 +4707,12 @@
% \section{各種パッケージへの対応}
% もともと縦組での利用を想定されていないいくつかのパッケージについて、
% 補正するためのコードを記述しておきます。
-% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます)
-% の機能を用いています。
+%% この節のコードは|filehook|パッケージ(Lua\TeX-ja読み込み時に自動でロードされます)
+%% の機能を用いています。
+%
+% [2020-08-03 LTJ] \LaTeX\~2020-10-01に対応するため、Lua\TeX-jaの提供する命令
+% (|filehook|パッケージの命令の別名か、新\LaTeX のフック機構を利用して同様の内容を書いたもの)
+% に置き換えました。
%
% \subsection{\texttt{ftnright}パッケージ}
% 脚注番号の書式が|ftnright|パッケージによって勝手に書き換えられるので、
@@ -4715,8 +4720,8 @@
% \changes{v1.7d}{2017/02/19}{コード追加}
% \begin{macrocode}
%<*article|report|book>
-\AtBeginOfPackageFile*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext}
-\AtEndOfPackageFile*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext}
+\ltj@ExecuteBeforePackage*{ftnright}{\let\ltjt@orig@@makefntext=\@makefntext}
+\ltj@ExecuteAfterPackage*{ftnright}{\let\@makefntext=\ltjt@orig@@makefntext}
%</article|report|book>
% \end{macrocode}
%
diff --git a/macros/luatex/generic/luatexja/src/luatexja-compat.sty b/macros/luatex/generic/luatexja/src/luatexja-compat.sty
index f55bf51114..2d6d053979 100644
--- a/macros/luatex/generic/luatexja/src/luatexja-compat.sty
+++ b/macros/luatex/generic/luatexja/src/luatexja-compat.sty
@@ -65,7 +65,7 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja-compat}[2018/03/29 Compatibility with pTeX]
+ \ProvidesPackage{luatexja-compat}[2020-08-08 Compatibility with pTeX]
\fi %</LaTeX>
% Load core module if not yet.
@@ -99,26 +99,10 @@
\def\sjis{\ltj@code@conv{sjis}}
\def\ucs{\ltj@code@conv{ucs}}
-\def\ltj@code@conv#1{%
- \directlua{luatexja.compat.from_#1(token.scan_int())}%
-}
-
-\def\kansuji{%
- \directlua{luatexja.compat.to_kansuji(token.scan_int())}%
-}
+\def\ltj@code@conv#1{\directlua{luatexja.compat.from_#1(token.scan_int())}}
+\def\kansuji{\directlua{luatexja.compat.to_kansuji(token.scan_int())}}
\define@key[ltj]{japaram}{kansujichar}{\ltj@@set@stack{KSJ}{0}{0x7FFFFFFF}#1 }
-
-\ltjsetparameter{kansujichar={0,`〇}}
-\ltjsetparameter{kansujichar={1,`一}}
-\ltjsetparameter{kansujichar={2,`二}}
-\ltjsetparameter{kansujichar={3,`三}}
-\ltjsetparameter{kansujichar={4,`四}}
-\ltjsetparameter{kansujichar={5,`五}}
-\ltjsetparameter{kansujichar={6,`六}}
-\ltjsetparameter{kansujichar={7,`七}}
-\ltjsetparameter{kansujichar={8,`八}}
-\ltjsetparameter{kansujichar={9,`九}}
\ltj@@decl@array@param{kansujichar}
\ifltj@in@latex
diff --git a/macros/luatex/generic/luatexja/src/luatexja-core.sty b/macros/luatex/generic/luatexja/src/luatexja-core.sty
index 4acc74cb32..fee1a78a2f 100644
--- a/macros/luatex/generic/luatexja/src/luatexja-core.sty
+++ b/macros/luatex/generic/luatexja/src/luatexja-core.sty
@@ -65,7 +65,7 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja-core}[2020-07-27 Core of LuaTeX-ja]
+ \ProvidesPackage{luatexja-core}[2020-08-08 Core of LuaTeX-ja]
\fi %</LaTeX>
%% Load prerequisite packages.
@@ -80,7 +80,6 @@
\RequirePackage{xkeyval} [2012/10/14] % v2.6b
\RequirePackage{etoolbox}
\RequirePackage{lltjp-atbegshi}
- \AtBeginShipoutInit
\IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{}
\else %<*!LaTeX>
\input luatexbase.sty
@@ -88,8 +87,6 @@
\input ltxcmds.sty
\input pdftexcmds.sty
\input xkeyval
- \input lltjp-atbegshi.sty
- \AtBeginShipoutInit
\fi %</LaTeX>
\endlinechar=-1 %
@@ -619,7 +616,7 @@
%%%% \hbox, \vbox, \vtop
\setbox\z@\hbox{%
- \primitive\everymath{}
+ \primitive\everymath{}%
$\directlua{% This value depends on the version of LuaTeX.
luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode
}$%
@@ -655,8 +652,6 @@
\protected\def\ltj@@reset@badness{\luafunction\ltj@@reset@badness@inner}
-\AtBeginShipout{\directlua{luatexja.direction.finalize()}}
-
%%%% \raise, \lower, \moveleft, \moveright
\newluafunction\ltj@@lua@raisebox@inner
\directlua{
@@ -686,6 +681,7 @@
%%%%\vsplit
\let\ltj@@orig@vsplit=\vsplit
\protected\def\vsplit{\directlua{luatexja.direction.vsplit()}}
+
%%%% \vcenter
\let\ltj@@orig@vcenter=\vcenter
\protected\def\vcenter{\ltj@afterbox\ltj@@vcenter\vbox}
@@ -693,6 +689,21 @@
\ltj@@lua@raisebox\ltj@@orig@vcenter{\box\ltj@afbox}%
}
+%%%% \shipout
+\newluafunction\ltj@@lua@shipout@inner
+\directlua{
+ local t = lua.get_functions_table()
+ t[\the\ltj@@lua@shipout@inner]=luatexja.direction.shipout
+}
+\protected\luadef\ltj@@lua@shipout\ltj@@lua@shipout@inner
+\protected\def\ltj@shipout{\ltj@afterbox\ltj@@lua@shipout}
+\ifprimitive\shipout\let\shipout\ltj@shipout\fi
+\ifcsname tex_shipout:D\endcsname
+ \expandafter\let\csname tex_shipout:D\endcsname\ltj@shipout
+\fi
+\ifdefined\AtBeginShipoutOriginalShipout
+ \let\AtBeginShipoutOriginalShipout\ltj@shipout
+\fi
%%%% \unhbox and \unvbox
\newluafunction\ltj@@lua@unboxcheckdir@inner
\directlua{
@@ -745,6 +756,7 @@
%%------------------ Load module for the format
+\directlua{luatexja.load_kinsoku()}
\ifltj@in@latex %<*LaTeX>
\RequirePackage{ltj-latex}
\else\ifltj@in@plain %<*plain>
diff --git a/macros/luatex/generic/luatexja/src/luatexja.lua b/macros/luatex/generic/luatexja/src/luatexja.lua
index 988f51955e..074d050276 100644
--- a/macros/luatex/generic/luatexja/src/luatexja.lua
+++ b/macros/luatex/generic/luatexja/src/luatexja.lua
@@ -347,6 +347,22 @@ do
end
end
+do
+ local cache_ver = 1 -- must be same as ltj-kinsoku.tex
+ local cache_outdate_fn = function (t) return t.version~=cache_ver end
+ local t = ltjs.charprop_stack_table
+ function luatexja.load_kinsoku()
+ for i,_ in pairs(t) do t[i]=nil end
+ local kinsoku = ltjb.load_cache('ltj-kinsoku_default',cache_outdate_fn)
+ if kinsoku and kinsoku[1] then
+ t[0] = kinsoku[1]
+ else
+ t[0] = {}; tex.print(cat_lp, '\\input ltj-kinsoku.tex\\relax')
+ end
+ luatexja.load_kinsoku=nil
+ end
+end
+
-- debug
do
@@ -372,8 +388,7 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
local k = prefix
local s
local pt, pic = node_type(p.id), (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG
- local base = prefix .. string.format('%X', pic)
- .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
+ local base = prefix .. string.format('%X', pic) .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
if pt == 'glyph' then
s = base .. ' '
.. (p.char<0xF0000 and utfchar(p.char) or '')
@@ -505,6 +520,9 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
for i=1,#p.data do
print_fn(s .. ' [' .. i .. '] = ' .. tostring(p.data[i].csname))
end
+ elseif p.subtype==16 then
+ s = s .. ' mode=' .. p.mode .. ', literal="' .. p.data .. '"'
+ print_fn(s)
else
print_fn(s)
end
diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty
index d51b575f76..0f16a8c190 100644
--- a/macros/luatex/generic/luatexja/src/luatexja.sty
+++ b/macros/luatex/generic/luatexja/src/luatexja.sty
@@ -35,13 +35,13 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja}[2020-08-02 Japanese Typesetting with Lua(La)TeX]
+ \ProvidesPackage{luatexja}[2020-08-08 Japanese Typesetting with Lua(La)TeX]
\DeclareOption{disablejfam}{\ltj@disablejfamtrue}
\DeclareOption*{}
\ProcessOptions\relax
\fi %</LaTeX>
%%%% VERSION
-\def\LuaTeXjaversion{20200802.0}
+\def\LuaTeXjaversion{20200808.0}
\directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty b/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
index e0dba37547..76a3147036 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
@@ -3,12 +3,10 @@
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjdefs}[2020/03/16 Default font settings of LuaTeX-ja]
+\ProvidesPackage{lltjdefs}[2020-08-08 Default font settings of LuaTeX-ja]
\ifdefined\ltj@stdmcfont\else\def\ltj@stdmcfont{file:HaranoAjiMincho-Regular.otf}\fi
\ifdefined\ltj@stdgtfont\else\def\ltj@stdgtfont{file:HaranoAjiGothic-Medium.otf}\fi
-%\ifdefined\ltj@stdmcfont\else\def\ltj@stdmcfont{IPAExMincho}\fi
-%\ifdefined\ltj@stdgtfont\else\def\ltj@stdgtfont{IPAExGothic}\fi
\ifdefined\ltj@stdyokojfm\else\def\ltj@stdyokojfm{ujis}\fi
\ifdefined\ltj@stdtatejfm\else\def\ltj@stdtatejfm{ujisv}\fi
\InputIfFileExists{luatexja.cfg}{%
@@ -34,11 +32,9 @@
\newcommand\kanjiencodingdefault{JY3}
\newcommand\kanjifamilydefault{\mcdefault}
\newcommand\kanjiseriesdefault{\mddefault}
-\ifdefined\@rmfamilyhook
- %% LaTeX 2020-02-02
+\ifdefined\@rmfamilyhook%% LaTeX 2020-02-02
\newcommand\kanjishapedefault{\shapedefault}
-\else
- %% LaTeX 2019-10-01
+\else %% LaTeX 2019-10-01
\newcommand\kanjishapedefault{\updefault}
\fi
@@ -78,8 +74,7 @@
\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{}
\unless\ifltj@disablejfam
- \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n}
- \jfam\symmincho
+ \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n}\jfam\symmincho
\SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n}
\DeclareSymbolFontAlphabet{\mathmc}{mincho}
\DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n}
@@ -132,6 +127,8 @@
\expandafter\patchcmd\csname em \endcsname{\itshape}{\gtfamily\itshape}{}{}
\def\eminnershape{\mcfamily \upshape}
+\ltjsetparameter{autospacing, autoxspacing, differentjfm=paverage}
+
\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF}
\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF}
\ltjdefcharrange{3}{%
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
index ecdfd48c22..8512023874 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
@@ -2,23 +2,40 @@
% lltjp-atbegshi.sty
%
-\ifdefined\NeedsTeXFormat
- \NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{lltjp-atbegshi}[2020-07-30 Patch to atbegshi for LuaTeX-ja]
- \RequirePackage{atbegshi}
-\else
- \input atbegshi.sty
-\fi
+\newif\ifltj@ltshipout@avail
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{lltjp-atbegshi}[2020-08-08 Patching \string\shipout\space hooks for LuaTeX-ja]
+\@ifl@t@r\fmtversion{2020-10-01}{%
+ \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltshipout@availtrue\fi
+ \else\ltj@ltshipout@availtrue\fi
+}{}
+\ifltj@ltshipout@avail\else\RequirePackage{atbegshi}\fi
+
+% concept: execute all hooks inside yoko direction \vbox
-%--------------------------------------
-% following codes are almost copied from
-% pxatbegshi.sty 2019/09/07 v0.5 (in platex-tools bundle, by H. Yamashita).
+\ifltj@ltshipout@avail
+%<*ltshipout>-----------------------------------
+%
+\RequirePackage{expl3}
+\ExplSyntaxOn\makeatletter
+\box_new:N \l__platex_shipout_dummy_box
+\pretocmd {\__shipout_execute_cont:}
+ {\tex_setbox:D \l__platex_shipout_dummy_box \tex_vbox:D \c_group_begin_token \yoko } {} {}
+\apptocmd {\__shipout_execute_cont:} {\c_group_end_token} {} {}
+\ExplSyntaxOff
+%</ltshipout>-----------------------------------
+
+\else
+\AtBeginShipoutInit
+%<*atbegshi>-------------------------------------
+% patching atbegshi.sty
+%%% following codes are almost copied from
+%%% pxatbegshi.sty 2019/09/07 v0.5 (in platex-tools bundle, by H. Yamashita).
%% internal macros are locally effective
\begingroup
-%--------------------------------------- helpers
-
+% helpers
%% unique tokens
\def\pxabgs@mark{\pxabgs@mark@}
\def\pxabgs@fin{\pxabgs@fin@}
@@ -27,29 +44,25 @@
\def\pxabgs@patch@cmd#1#2#3{%
\ifx#1\relax\else
\def\pxabgs@next##1#2##2\pxabgs@mark##3\pxabgs@fin{%
- \ifx\pxabgs@mark##3\pxabgs@mark
- \let#1\relax
+ \ifx\pxabgs@mark##3\pxabgs@mark\let#1\relax
\else
- \def\pxabgs@fragment{##2}%
- \def#1{##1#3##2}%
+ \def\pxabgs@fragment{##2}\def#1{##1#3##2}%
\fi}%
\expandafter\pxabgs@next#1\pxabgs@mark#2\pxabgs@mark\pxabgs@fin
\fi
}
-%---------------------------------------
-
-% concept: execute all hooks inside yoko direction \vbox
-
% prepare
-\let\pxabgs@AtBegShi@Output\AtBegShi@Output
+\ifdefined\AtBegShi@Output
+ \let\pxabgs@AtBegShi@Output\AtBegShi@Output
+\else\let\pxabgs@AtBegShi@Output\relax\fi
% try first patch
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
{\let\AtBegShi@OrgProtect\protect}%
{\setbox8\vbox\bgroup\yoko\let\AtBegShi@OrgProtect\protect}
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
- {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}%
- {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup}
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}%
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup}
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
{%
\begingroup
@@ -75,5 +88,6 @@
\endgroup
%% internal macros are no longer effective
-
+%</atbegshi>-------------------------------------
+\fi
\endinput
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
index 9b8f1fc7a1..eba249fa5e 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
@@ -3,7 +3,7 @@
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-geometry}[2020/02/25 Patch to geometry for LuaTeX-ja with vertical writing mode]
+\ProvidesPackage{lltjp-geometry}[2020-08-05 Patch to geometry for LuaTeX-ja with vertical writing mode]
\RequirePackage{expl3}
\ifdefined\if@ltj@@geometry@tate\expandafter\endinput\fi
\newif\if@ltj@@geometry@tate
@@ -29,33 +29,65 @@
}
\fi
-\RequirePackage{filehook}
+%============================================
+\unless\ifdefined\ltj@ExecuteAfterPackage
+\expandafter\newif\csname ifltj@ltfilehook@avail\endcsname
+\@ifl@t@r\fmtversion{2020-10-01}{%
+ \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltfilehook@availtrue\fi
+ \else\ltj@ltfilehook@availtrue\fi
+}{}
+\ifltj@ltfilehook@avail
+ \def\@@ltj@ExecuteAfterPackage#1{\AddToHook{package/after/#1}}
+ \def\@@ltj@ExecuteBeforePackage#1{\AddToHook{package/before/#1}}
+ \def\ltj@ExecuteAfterPackage{\@ifstar\@@ltj@ExecuteAfterPackage@star\@@ltj@ExecuteAfterPackage}
+ \def\@@ltj@ExecuteAfterPackage@star#1#2{%
+ \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteAfterPackage{#1}{#2}}%
+ }
+ \def\ltj@ExecuteBeforePackage{\@ifstar\@@ltj@ExecuteBeforePackage@star\@@ltj@ExecuteBeforePackage}
+ \def\@@ltj@ExecuteBeforePackage@star#1#2{%
+ \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteBeforePackage{#1}{#2}}%
+ }
+\else
+ \RequirePackage{filehook}
+ \let\ltj@ExecuteAfterPackage=\AtEndOfPackageFile
+ \let\ltj@ExecuteBeforePackage=\AtBeginOfPackageFile
+\fi
+\fi
+%============================================
+
\RequirePackage{etoolbox}
\newif\ifGm@ltj@layoutswitch
\let\orig@PackageWarningNoLine=\PackageWarningNoLine
% define ifGm@swap@papersize if it is undefined
\expandafter\newif\csname ifGm@swap@papersize\endcsname
-\AtBeginOfPackageFile{geometry}{%
+\ExplSyntaxOn
+\ltj@ExecuteBeforePackage{geometry}{%
\edef\Gm@ltj@topskip{\the\topskip}
\edef\Gm@ltj@headsep{\the\headsep}
\edef\Gm@ltj@footskip{\the\footskip}
+\bool_set_false:N \l_tmpa_bool
\ifluatex
- \ifnum\ltjgetparameter{direction}=3 \@ltj@@geometry@tatetrue\fi
+ \ifnum\ltjgetparameter{direction}=3 \bool_set_true:N \l_tmpa_bool \fi
\else
- \@gobble\iftrue\csname iftdir\endcsname\@ltj@@geometry@tatetrue\fi
+ \@gobble\iftrue\csname iftdir\endcsname \bool_set_true:N \l_tmpa_bool \fi
\fi
-\csname tl_if_in:NnT\endcsname\@begindocumenthook{\tate}{\@ltj@@geometry@tatetrue}
-\if@ltj@@geometry@tate
+\ifltj@ltfilehook@avail
+ \prop_map_inline:Nn \g__hook_begindocument_code_prop
+ { \tl_if_in:nnT {#2} {\tate} {\bool_set_true:N \l_tmpa_bool} }
+\else
+ \tl_if_in:NnT \@begindocumenthook {\tate} {\bool_set_true:N \l_tmpa_bool}
+\fi
+\bool_if:NT \l_tmpa_bool {
\if@ltj@@geometry@forceoff
\@ltj@@geometry@tatefalse
\else
\let\PackageWarningNoLine\@gobbletwo% 警告抑止
\fi
-\fi
}
-
-\AtEndOfPackageFile{geometry}{%
+}
+\ExplSyntaxOff
+\ltj@ExecuteAfterPackage{geometry}{%
\let\PackageWarningNoLine=\orig@PackageWarningNoLine
\if@ltj@@geometry@tate
\let\PackageWarningNoLine=\orig@PackageWarningNoLine