From f76939750d63d6088b9bdeac794ce3fdf33d1269 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 12 Feb 2023 03:01:46 +0000 Subject: CTAN sync 202302120301 --- macros/luatex/generic/luatexja/README | 10 ++-- macros/luatex/generic/luatexja/doc/luatexja-en.pdf | Bin 717362 -> 717552 bytes macros/luatex/generic/luatexja/doc/luatexja-ja.pdf | Bin 1149290 -> 1149508 bytes .../luatex/generic/luatexja/doc/luatexja-ruby.pdf | Bin 390299 -> 391556 bytes .../luatex/generic/luatexja/doc/luatexja-ruby.tex | 51 +++++++++++------ .../luatexja/src/addons/luatexja-preset.sty | 3 +- .../generic/luatexja/src/addons/luatexja-ruby.sty | 62 +++++++++++---------- .../luatex/generic/luatexja/src/ltj-direction.lua | 38 ++++++++++++- macros/luatex/generic/luatexja/src/ltj-ruby.lua | 15 ++++- .../luatex/generic/luatexja/src/luatexja-core.sty | 40 +++++++------ macros/luatex/generic/luatexja/src/luatexja.sty | 2 +- .../generic/luatexja/src/patches/lltjp-siunitx.sty | 22 ++++---- 12 files changed, 155 insertions(+), 88 deletions(-) (limited to 'macros/luatex/generic/luatexja') diff --git a/macros/luatex/generic/luatexja/README b/macros/luatex/generic/luatexja/README index 37dc20ad33..3d22e5b989 100644 --- a/macros/luatex/generic/luatexja/README +++ b/macros/luatex/generic/luatexja/README @@ -1,6 +1,6 @@ -The LuaTeX-ja Package 20221213.0 +The LuaTeX-ja Package 20230211.0 -------------------------------- -Copyright (c) 2011--2022 The LuaTeX-ja project +Copyright (c) 2011--2023 The LuaTeX-ja project License: modified BSD (see COPYING) LuaTeX-ja is a macro package for typesetting Japanese documents with LuaTeX. @@ -42,9 +42,9 @@ Installation 2. If you must/want to install manually: a. Download the source archive from CTAN, - or tagged as 20221213.0 in the Git repository by + or tagged as 20230211.0 in the Git repository by + ;a=snapshot;h=refs/tags/20230211.0;sf=tgz> b. Extract the archive and process following three files by LuaLaTeX to generate classes for Japanese typesetting: @@ -93,4 +93,4 @@ Notes This file and ltj-kinsoku.lua are not used anymore. (Do not remove ltj-kinsoku.tex.) -Last commit date: Tue Dec 13 21:57:47 2022 +0900 +Last commit date: Sat Feb 11 18:49:41 2023 +0900 diff --git a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf index 75c901924f..eefcf7ec7e 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf index d1f1628069..f073b1b74c 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf b/macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf index 870d9963ae..fd5a932b75 100644 Binary files a/macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf and b/macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf differ diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ruby.tex b/macros/luatex/generic/luatexja/doc/luatexja-ruby.tex index e51f4558bb..c7e05e8c51 100644 --- a/macros/luatex/generic/luatexja/doc/luatexja-ruby.tex +++ b/macros/luatex/generic/luatexja/doc/luatexja-ruby.tex @@ -10,6 +10,7 @@ \setmonojfont{HaranoAjiGothic-Regular.otf} \usepackage{unicode-math} \setmathfont{Latin Modern Math} +%\usepackage{lua-visual-debug} \def\emph#1{\textbf{\textgt{#1}}} \def\headfont{\normalfont\bfseries\gtfamily} @@ -168,12 +169,12 @@ plain \LuaTeX でのロードはまだサポートしておらず, \item[post=] 同様に,\underline{後文字進入許容量}を指定する.既定値は負(自動指定). \item[mode] 進入処理のモードを表すbit vector.下位2\,bitは,\texttt{pre}や -\texttt{post}が負である場合にしか効力を発揮しない.既定値は$(0001)_2 = 1$. +\texttt{post}が負である場合にしか効力を発揮しない.既定値は$(00001)_2 = 1$. \begin{description} \item[bit 0] 前後の\underline{文字への進入}を無効にするならば0,有効にするならば1. \item[bit 1] 前進入許容量$B$と後進入許容量$A$が異なった場合, そのまま処理する場合は0,小さい方に揃えるならば1. - \item[bit 2--3] ルビ文字の突出量から実際の前・後進入量の計算方法を指定する. + \item[bit 2--4] ルビ文字の突出量から実際の前・後進入量の計算方法を指定する. 詳しい計算方法については\ref{ssec:calc_intrusion}\nobreak 小節を参照. \end{description} \item[intrude\_jfmgk=] 進入量算出の際に,前後のJFMグルーの自然長を考慮するか否か.既定値は真. @@ -630,50 +631,68 @@ mode=9, stretch={1}{2}{1}, stretchruby={0}{0}{1} ルビ文字の突出量を$x$, 親文字の文字数を$k+1$,親文字の前に入る空白量・間の空白量・後ろの空白量の比を$p:q:r$とする. - このとき,\texttt{mode}のbit 2,~3の値によって$b$,~$a$を次のように算出する: + このとき,\texttt{mode}のbit 2--4の値によって$b$,~$a$を次のように算出する: \begin{description}[labelindent=\zw] - \item[00] $b=\min(B, xp/(p+kq+r))$, \ $a=\min(A, xr/(p+kq+r))$ - \item[01] $b=\min(B, x)$, \ $a=\min(A, \max(x-b,0))$ - \item[10] $a=\min(A, x)$, \ $b=\min(B, \max(x-a,0))$ - \item[11] $M=\min(B,A)$とおく.もし$x\le 2M$ならば$b=a=x/2$.そうでなければ + \item[000] $b=\min(B, xp/(p+kq+r))$, \ $a=\min(A, xr/(p+kq+r))$ + \item[001] $b=\min(B, x)$, \ $a=\min(A, \max(x-b,0))$ + \item[010] $a=\min(A, x)$, \ $b=\min(B, \max(x-a,0))$ + \item[011] $M=\min(B,A)$とおく.もし$x\le 2M$ならば$b=a=x/2$.そうでなければ \[ - b=\min\mleft(B, M + \frac{(x-2M)p}{p+kq+r}\mright),\qquad + b=\min\mleft(B, M + \frac{(x-2M)p}{p+kq+r}\mright),\quad a=\min\mleft(A, M + \frac{(x-2M)r}{p+kq+r}\mright). +\] + \item[100] $M=\min(B,A)$とおく.もし$x\le 2M$ならば$b=a=x/2$.そうでなければ +\[ + b=\min(B, x-M),\quad a=\min(A,x-M)\quad \mbox{(どちらかは必ず$M$となる)}. \] \end{description} +大雑把に言うと,最初の「000」は「組んだ後に進入量を決定」する方針, +それ以外は「進入量を先に決定し,その後で組む」方針である. 組み方の具体例を実際に示す.例示のため,平仮名にはルビが1字まで,「立」にはルビを 0.5字分までかけてよいことにしている. \begin{description}[labelindent=\zw] -\item[00]{\setkeys[ltj]{ruby}{mode=1}% +\item[000]{\setkeys[ltj]{ruby}{mode=1}% \ltjsetparameter{rubypreintrusion={`立,0.5}, rubypostintrusion={`立,0.5}}% は\ltjruby{美}{うつく}しい \quad は\ltjruby{聴衆}{ちようしゆう}と\quad は\ltjruby{暁}{あかつき}立\quad は\ltjruby{峠}{とうげ}立\quad -は\ltjruby{聴衆}{ちようしゆう}立\par} -\item[01]{\setkeys[ltj]{ruby}{mode=5}% +は\ltjruby{聴衆}{ちようしゆう}立\quad +は\ltjruby{聴衆}{ちようしゆう}達\par} +\item[001]{\setkeys[ltj]{ruby}{mode=5}% \ltjsetparameter{rubypreintrusion={`立,0.5}, rubypostintrusion={`立,0.5}}% は\ltjruby{美}{うつく}しい \quad は\ltjruby{聴衆}{ちようしゆう}と\quad は\ltjruby{暁}{あかつき}立\quad は\ltjruby{峠}{とうげ}立\quad -は\ltjruby{聴衆}{ちようしゆう}立\par} -\item[10]{% +は\ltjruby{聴衆}{ちようしゆう}立\quad +は\ltjruby{聴衆}{ちようしゆう}達\par} +\item[010]{% \setkeys[ltj]{ruby}{mode=9}% \ltjsetparameter{rubypreintrusion={`立,0.5}, rubypostintrusion={`立,0.5}}% は\ltjruby{美}{うつく}しい \quad は\ltjruby{聴衆}{ちようしゆう}と\quad は\ltjruby{暁}{あかつき}立\quad は\ltjruby{峠}{とうげ}立\quad -は\ltjruby{聴衆}{ちようしゆう}立\par} -\item[11]{\setkeys[ltj]{ruby}{mode=13}% +は\ltjruby{聴衆}{ちようしゆう}立\quad +は\ltjruby{聴衆}{ちようしゆう}達\par} +\item[011]{\setkeys[ltj]{ruby}{mode=13}% +\ltjsetparameter{rubypreintrusion={`立,0.5}, rubypostintrusion={`立,0.5}}% +は\ltjruby{美}{うつく}しい\quad +は\ltjruby{聴衆}{ちようしゆう}と\quad +は\ltjruby{暁}{あかつき}立\quad +は\ltjruby{峠}{とうげ}立\quad +は\ltjruby{聴衆}{ちようしゆう}立\quad +は\ltjruby{聴衆}{ちようしゆう}達\par} +\item[100]{\setkeys[ltj]{ruby}{mode=17}% \ltjsetparameter{rubypreintrusion={`立,0.5}, rubypostintrusion={`立,0.5}}% は\ltjruby{美}{うつく}しい\quad は\ltjruby{聴衆}{ちようしゆう}と\quad は\ltjruby{暁}{あかつき}立\quad は\ltjruby{峠}{とうげ}立\quad -は\ltjruby{聴衆}{ちようしゆう}立\par} +は\ltjruby{聴衆}{ちようしゆう}立\quad +は\ltjruby{聴衆}{ちようしゆう}達\par} \end{description} \end{enumerate} diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty index b1d5873ab6..ed2a9084e6 100644 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty +++ b/macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty @@ -519,7 +519,8 @@ \group_end: } - \msg_warning:nnx { luatexja-preset }{ scale }{ \Cjascale } + \fp_compare:nNnF \Cjascale = 1 + { \msg_warning:nnx { luatexja-preset }{ scale }{ \Cjascale } } % {1: encoding}{2: family}{3: series}{4: shape}{5: fontname}{6: feature}{7: scale} \cs_new:Nn \__ltjpreset_declare_font_shape:nnnnnnn { diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty index 1e50b1f680..e24164d1b6 100644 --- a/macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty +++ b/macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty @@ -4,7 +4,7 @@ % LaTeX only! \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-ruby}[2022-07-03 v0.53] +\ProvidesPackage{luatexja-ruby}[2023-01-21 v0.61] \RequirePackage{luatexja} %%------------------ @@ -32,14 +32,16 @@ %% attr_ruby_mode %% bit 0: intrusion を有効にするか(1: 有効) %% bit 1: 前後の intrusion 許容量を小さい方に揃える (1: yes) -%% bit 2, 3: intrusion をどう使って親文字を配置するか -%% 00: intrusion なしでとりあえず計算し,左右の突出分を進入に割り当てる -%% 01: pre-intrusion でまかなえるだけまかない,無理なら post- も使う -%% 10: post を優先 -%% 11: 2 min (pre,post) までは pre, post に均等配分しようとする -%% >=01 で,intrusion で賄えきれなかった場合はいつものように伸長する. -%% bit 4: 熟語ルビの際の処理方法(0: 常にグループ,1: 可能な限りブロックごとに) -%% ↑bit 4 は今は無効 +%% bit 2--4: intrusion をどう使って親文字を配置するか +%% 00: intrusion なしでとりあえず計算し,左右の突出分を進入に割り当てる +%% 01: pre-intrusion でまかなえるだけまかない,無理なら post- も使う +%% 10: post を優先 +%% 11: 2 min (pre,post) までは pre, post に均等配分しようとする +%% 100: 2 min (pre,post) までは pre, post に均等配分. +%% それでだめでも pre, post でまかなえるまでまかなう +%% ※ 01--100 で,intrusion で賄えきれなかった場合はいつものように伸長する. +%% bit 5: 熟語ルビの際の処理方法(0: 常にグループ,1: 可能な限りブロックごとに) +%% ↑bit 5 は今は無効 \ltj@@rkeydef{mode} %% intrusion 量強制固定(bit 0, bit 1 より優先,負数で「自動」) %% attr は sp 単位だが,ユーザーはルビ全角単位で指定する @@ -153,36 +155,36 @@ %%%%%%%% ZR さんの PXrubrica パッケージ中のコードから引用・改変 % \pxrr@decompbar: a|bc -> \ltj@@ruby@mark{a}\ltj@@ruby@mark{bc} -\let\pxrr@res\empty -\def\pxrr@ifx#1{% +\let\ltj@@ruby@res\empty +\def\ltj@@ruby@ifx#1{% \ifx#1\expandafter\@firstoftwo \else\expandafter\@secondoftwo \fi } -\def\pxrr@nil{\noexpand\pxrr@nil} -\def\pxrr@end{\noexpand\pxrr@end} -\def\pxrr@appto#1#2{% +\def\ltj@@ruby@nil{\noexpand\ltj@@ruby@nil} +\def\ltj@@ruby@end{\noexpand\ltj@@ruby@end} +\def\ltj@@ruby@appto#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } -\def\pxrr@decompbar#1{% - \let\pxrr@res\@empty - \pxrr@decompbar@loopa\pxrr@nil#1|\pxrr@end|% +\def\ltj@@ruby@decompbar#1{% + \let\ltj@@ruby@res\@empty + \ltj@@ruby@decompbar@loopa\ltj@@ruby@nil#1|\ltj@@ruby@end|% } -\def\pxrr@decompbar@loopa#1|{% - \expandafter\pxrr@decompbar@loopb\expandafter{\@gobble#1}% +\def\ltj@@ruby@decompbar@loopa#1|{% + \expandafter\ltj@@ruby@decompbar@loopb\expandafter{\@gobble#1}% } -\def\pxrr@decompbar@loopb#1{% - \pxrr@decompbar@loopc#1\relax\pxrr@nil{#1}% +\def\ltj@@ruby@decompbar@loopb#1{% + \ltj@@ruby@decompbar@loopc#1\relax\ltj@@ruby@nil{#1}% } -\def\pxrr@decompbar@loopc#1#2\pxrr@nil#3{% - \pxrr@ifx{#1\pxrr@end}{}{% - \ifx\pxrr@res\@empty - \def\pxrr@res{\ltj@@ruby@mark}% +\def\ltj@@ruby@decompbar@loopc#1#2\ltj@@ruby@nil#3{% + \ltj@@ruby@ifx{#1\ltj@@ruby@end}{}{% + \ifx\ltj@@ruby@res\@empty + \def\ltj@@ruby@res{\ltj@@ruby@mark}% \else - \pxrr@appto\pxrr@res{\ltj@@ruby@mark}% + \ltj@@ruby@appto\ltj@@ruby@res{\ltj@@ruby@mark}% \fi - \pxrr@appto\pxrr@res{{#3}}% - \pxrr@decompbar@loopa\pxrr@nil + \ltj@@ruby@appto\ltj@@ruby@res{{#3}}% + \ltj@@ruby@decompbar@loopa\ltj@@ruby@nil }% } %%%%%%%% ここまで @@ -200,8 +202,8 @@ luatexja.ruby.ruby_tmplist_p = \string{\string}}% \leavevmode\dimen0=\f@size pt\dimen1=\ltj@@rubyip@size\dimen0% % 引数展開,テーブルにセット - \pxrr@decompbar{#2}{\let\ltj@@ruby@mark\ltj@@ruby@sp\pxrr@res}% - \pxrr@decompbar{#3}{\let\ltj@@ruby@mark\ltj@@ruby@sr\pxrr@res}% + \ltj@@ruby@decompbar{#2}{\let\ltj@@ruby@mark\ltj@@ruby@sp\ltj@@ruby@res}% + \ltj@@ruby@decompbar{#3}{\let\ltj@@ruby@mark\ltj@@ruby@sr\ltj@@ruby@res}% {\fontsize{\ltj@@rubyip@size\dimen0}\z@\selectfont\ltj@@rubyip@fontcmd \global\dimen1=\zw\global\dimen2=\zh}% \directlua{% diff --git a/macros/luatex/generic/luatexja/src/ltj-direction.lua b/macros/luatex/generic/luatexja/src/ltj-direction.lua index 5321f232f4..0fbe0c664c 100644 --- a/macros/luatex/generic/luatexja/src/ltj-direction.lua +++ b/macros/luatex/generic/luatexja/src/ltj-direction.lua @@ -550,7 +550,41 @@ do local ltj_tempcnta = luatexbase.registernumber 'ltj@tempcnta' local getbox = tex.getbox local dir_backup - function luatexja.direction.unbox_check_dir(is_copy) + function luatexja.direction.unbox_check_dir() + start_time_measure 'box_primitive_hook' + local list_dir = get_dir_count()%dir_math_mod + local b = getbox(getcount(ltj_tempcnta)) + if b and getlist(to_direct(b)) then + local box_dir = get_box_dir(to_direct(b), dir_yoko) + if box_dir%dir_math_mod ~= list_dir then + ltjb.package_error( + 'luatexja', + "Incompatible direction list can't be unboxed", + 'I refuse to unbox a box in differrent direction.') + tex.sprint(cat_lp, '\\@gobbletwo') + else + dir_backup = nil + local bd = to_direct(b) + local hd = getlist(bd) + local nh = hd + while hd do + if getid(hd)==id_whatsit and getsubtype(hd)==sid_user + and getfield(hd, 'user_id')==DIR then + local d = hd + nh, hd = node_remove(nh, hd); node_free(d) + else + hd = node_next(hd) + end + end + setlist(bd, nh) + end + end + if luatexja.global_temp and tex.globaldefs~=luatexja.global_temp then + tex.globaldefs = luatexja.global_temp + end + stop_time_measure 'box_primitive_hook' + end + function luatexja.direction.uncopy_check_dir() start_time_measure 'box_primitive_hook' local list_dir = get_dir_count()%dir_math_mod local b = getbox(getcount(ltj_tempcnta)) @@ -572,7 +606,7 @@ do and getfield(hd, 'user_id')==DIR then local d = hd nh, hd = node_remove(nh, hd) - if is_copy==true and (not dir_backup) then + if not dir_backup then dir_backup = d; setnext(dir_backup, nil) else node_free(d) diff --git a/macros/luatex/generic/luatexja/src/ltj-ruby.lua b/macros/luatex/generic/luatexja/src/ltj-ruby.lua index 047b53ab58..29b6fe1998 100644 --- a/macros/luatex/generic/luatexja/src/ltj-ruby.lua +++ b/macros/luatex/generic/luatexja/src/ltj-ruby.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.ruby', - date = '2022-08-29', + date = '2022-12-31', description = 'Ruby annotation', }) luatexja.ruby = {} @@ -318,7 +318,7 @@ local function enlarge_parent(r, p, tmp_tbl, no_begin, no_end) local pre_intrusion, post_intrusion local ppre, pmid, ppost = tmp_tbl.ppre, tmp_tbl.pmid, tmp_tbl.ppost local mapre, mapost = tmp_tbl.mapre, tmp_tbl.mapost - local intmode = (tmp_tbl.mode//4)%4 + local intmode = (tmp_tbl.mode//4)%8 if no_begin then mapre = mapre + tmp_tbl.before_jfmgk end if no_end then mapost = mapost + tmp_tbl.after_jfmgk end if (tmp_tbl.mode%4 >=2) and (tmp_tbl.pre<0) and (tmp_tbl.post<0) then @@ -336,7 +336,7 @@ local function enlarge_parent(r, p, tmp_tbl, no_begin, no_end) post_intrusion = min(mapost, sumprot); pre_intrusion = min(mapre, max(sumprot-post_intrusion, 0)) p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) - else -- intmode == 3 + elseif intmode==3 then local n = min(mapre, mapost)*2 if n < sumprot then pre_intrusion = n/2; post_intrusion = n/2 @@ -346,6 +346,15 @@ local function enlarge_parent(r, p, tmp_tbl, no_begin, no_end) p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) pre_intrusion = min(mapre, pre_intrusion + round(ppre*getfield(p, 'glue_set')*65536)) post_intrusion = min(mapost, post_intrusion + round(ppost*getfield(p, 'glue_set')*65536)) + else -- intmode == 4 + if 2*min(mapre, mapost) > sumprot then + pre_intrusion = sumprot//2; post_intrusion = sumprot/2 + elseif mapre>=mapost then + pre_intrusion, post_intrusion = min(mapre, sumprot-mapost), mapost + else + pre_intrusion, post_intrusion = mapre, min(mapost, sumprot-mapre) + end + p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) end setshift(r, -pre_intrusion) local rwidth = rwidth - pre_intrusion - post_intrusion diff --git a/macros/luatex/generic/luatexja/src/luatexja-core.sty b/macros/luatex/generic/luatexja/src/luatexja-core.sty index c1f8c2c622..15d02be31b 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}[2022-08-24 Core of LuaTeX-ja] + \ProvidesPackage{luatexja-core}[2023-02-11 Core of LuaTeX-ja] \fi % %% Load prerequisite packages. @@ -228,8 +228,7 @@ \def\ltj@temp{#1}\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true, 'yoko')}} \newluafunction\ltj@@jfont@inner \directlua{ - local t = lua.get_functions_table() - t[\the\ltj@@jfont@inner] = luatexja.jfont.jfontdefY + (lua.get_functions_table())[\the\ltj@@jfont@inner] = luatexja.jfont.jfontdefY } \def\ltj@@jfont{\expandafter\expandafter\expandafter\luafunction\expandafter\ltj@@jfont@inner\ltj@temp} @@ -487,8 +486,7 @@ } \newluafunction\ltj@@getparam@one@inner \directlua{ - local t = lua.get_functions_table() - t[\the\ltj@@getparam@one@inner] = luatexja.ext_get_parameter_unary + (lua.get_functions_table())[\the\ltj@@getparam@one@inner] = luatexja.ext_get_parameter_unary } \luadef\ltj@@getparam@one\ltj@@getparam@one@inner \def\ltj@@getparam@two#1#2{% @@ -600,8 +598,7 @@ \let\ltj@@orig@insert\insert \newluafunction\ltj@@lua@populate@insertwhatsit@inner \directlua{ - local t = lua.get_functions_table() - t[\the\ltj@@lua@populate@insertwhatsit@inner] + (lua.get_functions_table())[\the\ltj@@lua@populate@insertwhatsit@inner] = luatexja.direction.populate_insertion_dir_whatsit } \luadef\ltj@@lua@populate@insertwhatsit\ltj@@lua@populate@insertwhatsit@inner @@ -673,8 +670,7 @@ %%%% \raise, \lower, \moveleft, \moveright \newluafunction\ltj@@lua@raisebox@inner \directlua{ - local t = lua.get_functions_table() - t[\the\ltj@@lua@raisebox@inner]=luatexja.direction.raise_box + (lua.get_functions_table())[\the\ltj@@lua@raisebox@inner]=luatexja.direction.raise_box } \protected\luadef\ltj@@lua@raisebox\ltj@@lua@raisebox@inner \let\ltj@@orig@raise\raise @@ -701,8 +697,12 @@ \let\moveright\ltj@@moveright %% PRIMITIVE %%%%\vsplit +\newluafunction\ltj@@vsplit@inner +\directlua{ + (lua.get_functions_table())[\the\ltj@@vsplit@inner]=luatexja.direction.vsplit +} \let\ltj@@orig@vsplit\vsplit -\protected\def\ltj@@vsplit{\directlua{luatexja.direction.vsplit()}} +\protected\def\ltj@@vsplit{\luafunction\ltj@@vsplit@inner} \let\vsplit\ltj@@vsplit %% PRIMITIVE %%%% \vcenter @@ -715,30 +715,34 @@ %%%% \unhbox and \unvbox \newluafunction\ltj@@lua@unboxcheckdir@inner +\newluafunction\ltj@@lua@uncopycheckdir@inner +\newluafunction\ltj@@lua@uncopy@restore@whatsit@inner \directlua{ local t = lua.get_functions_table() t[\the\ltj@@lua@unboxcheckdir@inner]=luatexja.direction.unbox_check_dir + t[\the\ltj@@lua@uncopycheckdir@inner]=luatexja.direction.uncopy_check_dir + t[\the\ltj@@lua@uncopy@restore@whatsit@inner]=luatexja.direction.uncopy_restore_whatsit } \luadef\ltj@@lua@unboxcheckdir\ltj@@lua@unboxcheckdir@inner +\luadef\ltj@@lua@uncopycheckdir\ltj@@lua@uncopycheckdir@inner +\luadef\ltj@@lua@uncopy@restore@whatsit\ltj@@lua@uncopy@restore@whatsit@inner \long\def \@gobbletwo #1#2{} \let\ltj@@orig@unhbox\unhbox \let\ltj@@orig@unvbox\unvbox \protected\def\ltj@@unhbox{\ltj@reset@globaldefs\afterassignment\ltj@@unhbox@\ltj@tempcnta} \protected\def\ltj@@unvbox{\ltj@reset@globaldefs\afterassignment\ltj@@unvbox@\ltj@tempcnta} -\protected\def\ltj@@unhbox@{\ltj@@lua@unboxcheckdir\ltj@@orig@unhbox\ltj@tempcnta} -\protected\def\ltj@@unvbox@{\ltj@@lua@unboxcheckdir\ltj@@orig@unvbox\ltj@tempcnta} +\protected\def\ltj@@unhbox@{\ltj@@lua@unboxcheckdir\expandafter\ltj@@orig@unhbox\the\ltj@tempcnta\relax} +\protected\def\ltj@@unvbox@{\ltj@@lua@unboxcheckdir\expandafter\ltj@@orig@unvbox\the\ltj@tempcnta\relax} \let\ltj@@orig@unhcopy\unhcopy \let\ltj@@orig@unvcopy\unvcopy \protected\def\ltj@@unhcopy{\ltj@reset@globaldefs\afterassignment\ltj@@unhcopy@\ltj@tempcnta} \protected\def\ltj@@unvcopy{\ltj@reset@globaldefs\afterassignment\ltj@@unvcopy@\ltj@tempcnta} \protected\def\ltj@@unhcopy@{% - \directlua{luatexja.direction.unbox_check_dir(true)}% - \ltj@@orig@unhcopy\ltj@tempcnta - \directlua{luatexja.direction.uncopy_restore_whatsit()}} + \ltj@@lua@uncopycheckdir\expandafter\ltj@@orig@unhcopy\the\ltj@tempcnta\relax + \ltj@@lua@uncopy@restore@whatsit}% \protected\def\ltj@@unvcopy@{% - \directlua{luatexja.direction.unbox_check_dir(true)}% - \ltj@@orig@unvcopy\ltj@tempcnta - \directlua{luatexja.direction.uncopy_restore_whatsit()}} + \ltj@@lua@uncopycheckdir\expandafter\ltj@@orig@unvcopy\the\ltj@tempcnta\relax + \ltj@@lua@uncopy@restore@whatsit}% \let\unhbox\ltj@@unhbox %% PRIMITIVE \let\unvbox\ltj@@unvbox %% PRIMITIVE \let\unhcopy\ltj@@unhcopy %% PRIMITIVE diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty index 00c3787684..d355b39003 100644 --- a/macros/luatex/generic/luatexja/src/luatexja.sty +++ b/macros/luatex/generic/luatexja/src/luatexja.sty @@ -27,7 +27,7 @@ \newif\ifltj@disablejfam %%%% VERSION -\def\LuaTeXjaversion{20221213.0} +\def\LuaTeXjaversion{20230211.0} %% Check if LaTeX is used. \begingroup\expandafter\expandafter\expandafter\endgroup diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty index 16c13cd7ae..9c4526c3fd 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty @@ -1,5 +1,5 @@ % -% lltjp-siunitx.sty 2022-12-12 +% lltjp-siunitx.sty 2022-12-14 % \NeedsTeXFormat{LaTeX2e} @@ -34,17 +34,15 @@ \cs_set_eq:NN \ltj_orig__siunitx_table_collect_begin:w \__siunitx_table_collect_begin:w \cs_set_protected:Npn \__siunitx_table_collect_begin:w #1 \relax { \ltj_orig__siunitx_table_collect_begin:w } -\AtBeginDocument{ - \cs_if_exist:NT \TblrNum - { \RenewDocumentCommand \TblrNum { m } - { - \__tblr_siunitx_process:Nn - { \cs_set_eq:NN \__siunitx_table_collect_begin:w - \ltj_orig__siunitx_table_collect_begin:w - \tablenum} - {#1} - } - } +\RenewDocumentCommand \tablenum { O { } m } + { + \mode_leave_vertical: + \group_begin: + \keys_set:nn { siunitx } {#1} + \siunitx_cell_begin:w + \relax \ignorespaces #2 + \siunitx_cell_end: + \group_end: } }% siunitx v3.00 end {% siunitx v2.xx -- cgit v1.2.3