texlive[74837] Master/texmf-dist: luatexja (3apr25)

commits+karl at tug.org commits+karl at tug.org
Thu Apr 3 21:49:59 CEST 2025


Revision: 74837
          https://tug.org/svn/texlive?view=revision&revision=74837
Author:   karl
Date:     2025-04-03 21:49:58 +0200 (Thu, 03 Apr 2025)
Log Message:
-----------
luatexja (3apr25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/luatex/luatexja/README
    trunk/Master/texmf-dist/doc/luatex/luatexja/lltjp-geometry.pdf
    trunk/Master/texmf-dist/doc/luatex/luatexja/lltjp-geometry.tex
    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/ltjclasses.dtx
    trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls
    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/ltjsize10.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo
    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/ltjtarticle.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo
    trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo
    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/lltjp-footmisc.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore-241201.sty

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/README
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexja/README	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/doc/luatex/luatexja/README	2025-04-03 19:49:58 UTC (rev 74837)
@@ -1,4 +1,4 @@
-The LuaTeX-ja Package 20250208.0
+The LuaTeX-ja Package 20250401.0
 --------------------------------
 Copyright (c) 2011--2025 The LuaTeX-ja project
 License: modified BSD (see COPYING)
@@ -42,7 +42,7 @@
 2. If you must/want to install manually:
 
    a. Download the source archive from CTAN,
-      or tagged as 20250208.0 in the Git repository by
+      or tagged as 20250401.0 in the Git repository by
       <https://github.com/luatexja/luatexja/archive/refs/tags/$VER.zip>
 
    b. Extract the archive and process following three files by LuaLaTeX
@@ -92,4 +92,4 @@
   This file and ltj-kinsoku.lua are not used anymore.
   (Do not remove ltj-kinsoku.tex.)
 
-Last commit date: Sat Feb 8 21:26:17 2025 +0900
+Last commit date: Tue Apr 1 14:58:28 2025 +0900

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

Modified: trunk/Master/texmf-dist/doc/luatex/luatexja/lltjp-geometry.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexja/lltjp-geometry.tex	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/doc/luatex/luatexja/lltjp-geometry.tex	2025-04-03 19:49:58 UTC (rev 74837)
@@ -1,6 +1,6 @@
 %#! lualatex
-\documentclass[a4paper,10ptj]{ltjsarticle}
-\usepackage[textwidth=42\zw, lines=42, footskip=2\zh, verbose]{geometry}
+\documentclass[a4paper,14Q]{ltjsarticle}
+\usepackage[textwidth=43\zw, lines=42, footskip=2\zh, verbose]{geometry}
 \usepackage{listings,amsmath,booktabs,lltjext,bxghost}
 \usepackage{unicode-math}
 \setmathfont{Latin Modern Math}
@@ -34,7 +34,7 @@
 
 \title{\Pkg{lltjp-geometry}パッケージ}
 \author{\LuaTeX-jaプロジェクト\null%
-  \thanks{\url{http://osdn.jp/projects/luatex-ja/wiki/FrontPage}}}
+  \thanks{\url{https://github.com/luatexja/luatexja/}}}
 \begin{document}
 \maketitle
 
@@ -237,8 +237,8 @@
 位置が狂う危険があるため,
 \Pkg{geometry}パッケージでは
 \begin{quote}
- \texttt{lines}オプション指定時,\cs{topskip}の値を最低でも
- \cs{strutbox}の高さ($0.7\cs{baselineskip}$)まで引き上げる
+ \texttt{lines}オプション指定時には,\cs{topskip}の値を最低でも
+ \cs{strutbox}の高さ\\($0.7\cs{baselineskip}$)まで引き上げる
 \end{quote}
 という仕様になっている.
 
@@ -245,8 +245,8 @@
 縦組の場合は,\cs{strutbox}に対応するボックスは\cs{tstrutbox}であるため,
 \Pkg{lltjp-geometry}では
 \begin{quote}
- \texttt{lines}オプション指定時,\cs{topskip}の値を最低でも
- \emph{\cs{tstrutbox}の高さ}($\cs{baselineskip}/2$)まで引き上げる
+ \texttt{lines}オプション指定時には,\cs{topskip}の値を最低でも
+ \emph{\cs{tstrutbox}の高さ}\\($\cs{baselineskip}/2$)まで引き上げる
 \end{quote}
 という挙動にした.見かけ上は\cs{topskip}の値制限が緩くなったが,前節で述べたように
 欧文フォントのベースラインは和文に合うように下にずらされるので,

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	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/doc/luatex/luatexja/luatexja.dtx	2025-04-03 19:49:58 UTC (rev 74837)
@@ -7,7 +7,7 @@
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 
 %<en>\documentclass[a4paper,titlepage]{article}
-%<ja>\documentclass[a4paper,10ptj,titlepage]{ltjsarticle}
+%<ja>\documentclass[a4paper,14Q,titlepage]{ltjsarticle}
 
 %%%%%%%%
 \makeatletter
@@ -15,13 +15,13 @@
 \def\pgfsysdriver{pgfsys-pdftex.def}
 \usepackage{metalogo,amsmath,array,tikz,pict2e,multienum,float,mathtools}
 \usepackage{booktabs,multicol,luatexja-ruby}
-\usepackage[all]{xy}
 \usepackage{lltjext,alltt,comment}
 
 %%%%%%%% fonts
 \usepackage{luatexja-otf}
+\usepackage[libertinus]{newtxmath}
 \usepackage[no-math]{fontspec}
-\setmainfont[Ligatures=TeX,RawFeature=-notdef]{Linux Libertine O}
+\setmainfont[Ligatures=TeX,RawFeature=-notdef]{Libertinus Serif}
 \setmonofont[RawFeature=-notdef, Ligatures=CommonOff, %CharacterVariant={31,45,61,36},
 %<en>  Scale=0.8132073118633364, FakeStretch=1.183236,
 %<ja>  Scale=MatchLowercase, FakeStretch=1.137121,
@@ -33,9 +33,7 @@
 \setsansfont[Scale=MatchLowercase,Ligatures=TeX,RawFeature=-notdef]{Linux Biolinum O}
 \usepackage[match]{luatexja-fontspec}
 \usepackage[haranoaji]{luatexja-preset}
-\usepackage{unicode-math}
 \setmonojfont{HaranoAjiGothic-Regular.otf}
-\setmathfont[Scale=MatchLowercase]{XITSMath}
 \newjfontface\KOZM{KozMinPr6N-Regular.otf}
 
 \setLaTeXa{\scshape a}
@@ -52,10 +50,10 @@
 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
     {3.25ex \@plus1ex \@minus.2ex}%
     {-1em}%
-    {\normalfont\normalsize\bfseries\raisebox{.2ex}{$\mdlgblksquare\mkern1mu$}}}
+    {\normalfont\normalsize\bfseries\raisebox{.2ex}{$\blacksquare\mkern1mu$}}}
 %</en>
 %<*ja>
-\usepackage[textwidth=44\zw, lines=41, footskip=6mm]{geometry}
+\usepackage[textwidth=45\zw, lines=41, footskip=6mm]{geometry}
 \usepackage{luatexja-adjust}%\ltjdisableadjust
 \advance\leftmargini-1\zw
 %</ja>
@@ -88,13 +86,17 @@
     \fboxsep=0.5pt\fbox{\hbox to0.75em{\hss\tiny \oalign{\hss#1\hss\crcr\hss#2\hss\crcr}\hss}}}}\hss}%
 }
 
+\usepackage{accsupp}
 \usepackage{listings,showexpl,enumitem}
 \lstset{
   basicstyle=\ttfamily\small, pos=r, breaklines=true,
-  numbers=none, rframe={}, basewidth=0.5em, numberstyle=\tiny, numbersep=0.5em,
-  explpreset={numberstyle=\tiny, numbers=left, numbersep=1em, columns=fixed},
+  numbers=none, rframe={}, basewidth=0.5em, numberstyle=\scriptsize, numbersep=0.5em,
+  explpreset={numberstyle=\scriptsize, numbers=left, numbersep=1em, columns=fixed},
   morecomment=[l]{\%}, commentstyle=\color{green}
 }
+\renewcommand{\thelstnumber}{% Line number printing mechanism
+    \protect\BeginAccSupp{ActualText={}}\arabic{lstnumber}\protect\EndAccSupp{}%
+  }
 % Suppress output from showexpl to stdout.
 \makeatletter
 \let\SX at Info\relax
@@ -151,6 +153,7 @@
 %</ja>
 
 %%%%%%%% definition env.
+\let\openbox\relax
 \usepackage{amsthm}
 \theoremstyle{definition}
 %<en>\newtheorem{defn}{Definition}
@@ -220,6 +223,9 @@
 \protected\def\DParam#1{\eghostguarded{\hypertarget{fld:#1}{\underline{\smash{\textsf{#1}}}}}} % parameter name (definition)
 \def\Pkg#1{\texorpdfstring{\textsf{#1}}{#1}} % packages/classes
 
+\usepackage[all]{xy}
+\xypdfon
+
 \begin{document}
 \lstset{
   vscmd=\IVSB
@@ -1149,18 +1155,20 @@
 \pLaTeX ではそのように変更されており,
 さらに\cs{raggedbottom}命令を実行した後でも脚注は常にページの下端に固定されるようになっている.
 
-\LuaTeX-jaでは「欧文クラスの中にちょっとだけ日本語を入れる」という利用も考慮し,
-脚注とボトムフロートの順序,及び\cs{raggedbottom}時の脚注の垂直位置は\LaTeX 通りとした.
-これらを制御するには以下の手段がある:
-\begin{itemize}
- \item \pLaTeX のように,脚注をボトムフロートの下に組む場合には
-  \Pkg{stfloats}パッケージを利用して
+\emph{脚注とボトムフロートの順序,及び\cs{raggedbottom}時の脚注の垂直位置は,
+\LuaTeX-jaパッケージはとくに変更しない}
+\footnote{\LuaTeX-jaを「欧文の中にちょっとだけ日本語を入れる」ため使うことも考慮したためである}が,
+これら2点については,以下のような制御手段がある:
+
+\begin{description}
+  \item[\LaTeXe\ 2024-12-01以前]
+  \Pkg{footmisc}パッケージか\Pkg{stfloats}パッケージを利用する.
+  例えば\Pkg{stfloats}パッケージを利用して脚注をボトムフロートの下に組む場合は,次のようにする:
   \begin{lstlisting}
     \usepackage{stfloats}\fnbelowfloat
   \end{lstlisting}
-  とする.この状況から「脚注をボトムフロートの上に組む」という\LaTeX の標準の挙動に戻したければ,
-  \Pkg{stfloats}パッケージの\cs{fnunderfloat}命令を使用する.
-  \item \cs{raggedbottom}時の脚注の垂直位置は,\cs{iffnfixbottom}という真偽値で制御する.
+
+  また,\cs{raggedbottom}時の脚注の垂直位置は,\cs{iffnfixbottom}という真偽値で制御する.
   \begin{description}
     \item[偽(\cs{fnfixbottomfalse})の場合] \LaTeX 標準と同じく,本文と脚注の間の空白は\cs{skip}\cs{footins}のみ.
     従って脚注の垂直位置はページにより変動する.
@@ -1167,17 +1175,34 @@
     \item[真(\cs{fnfixbottomtrue})の場合] \pLaTeX や\Pkg{footmisc}パッケージを\texttt{bottom}オプションで
     読み込んだ場合のように,脚注は常にページの下端に固定される.
   \end{description}
-\item ただし,\LuaTeX-jaが提供する「互換クラス」(\Pkg{ltjclasses}, \Pkg{ltjsclasses})では,
-  \pLaTeX と合わせるために以下のようにしている:
+  \item[\LaTeXe\ 2025-06-01以降]
+  \LaTeXe 本体の提供する\texttt{build/column/outputbox}ソケットを利用する.
+  このソケットには1つのプラグを選択して挿すことができるが,
+  「脚注を下端に」という目的で使えるプラグは以下の通りである:
   \begin{itemize}
-    \item \cs{fnfixbottomtrue}が自動的に実行される
-    \item \Pkg{stfloats}パッケージが\LuaTeX から参照できる場所にあった場合は
-    自動的に読み込み,\cs{fnbelowfloat}を実行する.
+    \item \texttt{space-floats-footnotes}プラグ:
+    余分の空白→ボトムフロート→脚注の順に出力する.
+    \lstinline+\usepackage[bottomfloats,belowfloats]{footmisc}+の場合の組み方.
+    \item \texttt{floats-space-footnotes}プラグ:
+    ボトムフロート→余分の空白→脚注の順に出力する.
+    \lstinline+\usepackage[bottom]{footmisc}+の場合の組み方.
+    \item \texttt{floats-footnotes-platex}プラグ:
+    \pLaTeX の挙動を再現したもの.
   \end{itemize}
-\end{itemize}
-なお,\Pkg{stfloats}パッケージを使う代わりに,
-\Pkg{footmisc}パッケージを \texttt{bottom}オプションを指定して読み込む
-という「解決法」もある.
+  たとえば\texttt{floats-footnotes-platex}プラグを挿す場合は,次のようにする:
+  \begin{lstlisting}
+    \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+  \end{lstlisting}
+  \item[「互換クラス」\Pkg{ltjclasses}, \Pkg{ltjsclasses}の挙動]
+  \pLaTeX と合わせるために,以下のようにしている:
+  \begin{description}
+    \item[\LaTeXe\ 2024-12-01以前]
+      \cs{iffnfixbottom}を真にし,かつ\\
+      \lstinline+\fnfixbottomtrue\usepackage{stfloats}\fnbelowfloat+を実行する.
+    \item[\LaTeXe\ 2025-06-01以降]
+      \texttt{build/column/outputbox}ソケットに\texttt{floats-footnotes-platex}プラグを挿す.
+  \end{description}
+\end{description}
 %</ja>
 %%% ↑は英訳しない
 
@@ -2440,7 +2465,7 @@
 $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$,
 $\sqrt{A}-\underline{X}+\frac{あ3}{2あ}-\vcenter{\hbox{aお}}$
 \end{lstlisting}\\
-\noalign{\vskip-\origbaselineskip}
+\noalign{\vskip-0\origbaselineskip}
 \midrule
 \emph{\pTeX~(p4.0.0)}&
 {\ltjsetparameter{yalbaselineshift=10pt}%
@@ -2449,7 +2474,7 @@
 $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 $\sqrt{A}-\underline{X}
   +\frac{\lower10pt\hbox{\scalebox{0.7}{あ}}\>3}{2\>\lower10pt\hbox{\scalebox{0.7}{あ}}}-\vcenter{\hbox{aお}}$
-\par}\\\noalign{\vskip-\origbaselineskip}\midrule
+\par}\\\noalign{\vskip-0\origbaselineskip}\midrule
 \emph{\LuaTeX-ja}&
 {\ltjsetparameter{yalbaselineshift=10pt}%
 数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
@@ -2456,7 +2481,7 @@
 $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$,
 $\sqrt{A}-\underline{X}+\frac{あ\>3}{2あ}-\vcenter{\hbox{aお}}$
 \par}\\
-\noalign{\vskip-\origbaselineskip}
+\noalign{\vskip-0\origbaselineskip}
 \bottomrule
 \end{tabular}
 \end{table}
@@ -3877,7 +3902,7 @@
 
 以上の事情に対応するため,\LuaTeX-jaでは,標準で
 \emph{CJK互換漢字・CJK互換漢字補助の文字には\Pkg{luaotfload}パッケージによる処理は働かない}ようにしている.
-この機能を無効化するには,他のOpenType機能と同じように\texttt{-ltjpci}指定を行えば良い(\autoref{fig:ltjpci}参照).
+この機能を無効化するには,他のOpenType機能と同じように\>\texttt{-ltjpci}指定を行えば良い(\autoref{fig:ltjpci}参照).
 \texttt{ltjksp}と同様に,\texttt{-ltjpci}, \texttt{+ltjpci}を複数回指定した場合は,
 最後に指定したものが有効となる.
 %</ja>
@@ -4102,7 +4127,7 @@
 \directlua{luatexja.jfont.register_vert_replace{[!$i_1$!]=!$v_1$!, [!$i_2$!]=!$v_2$!, ...}}
 	\end{lstlisting}
   を実行する.
-  \verb+luatexja.jfont.register_vert_replace+による変更はこの関数の\emph{実行後}に定義される
+  \verb+luatexja.jfont.register_vert_replace+による変更はこの関数の\emph{実行後に定義}される
   フォントについてのみ有効である.
   
 \end{itemize}
@@ -9042,9 +9067,22 @@
 So one should not change the value of this dimension.
 %</en>
 %<*ja>
-\cs{jQ} は写植で用いられた$1\,\textrm{Q}=0.25\,\textrm{mm}$%
-(「級」とも書かれる)に等しい.したがって,
+\cs{jQ}は写真植字で用いられた$1\,\textrm{Q}=0.25\,\textrm{mm}$%
+(「級」とも書かれる)を格納している.したがって,
 この寸法レジスタの値を変更してはならない.
+
+なお,\TeX では長さはスケールド・ポイント($2^{-16}\,\textrm{pt}$)を最小単位としており,
+実際の値は$46616\,\textrm{sp}\simeq 0.249994662\textrm{mm}$である
+  \footnote{%
+  $0.25\,\textrm{mm}\simeq 46616.99527\,\textrm{sp}$なので
+  $46617\,\textrm{sp}\simeq 0.250000025\,\textrm{mm}$の方が近いが,
+  \TeX で「\texttt{\cs{dimen0}=0.25mm}」とすると,\cs{dimen0}の値は$46616\,\textrm{sp}$となる.
+  }.
+そのため,次のように若干の誤差が出ることは気をつけてほしい.
+\begin{LTXexample}[width=0.3\textwidth]
+\dimen0=1000\jQ \the\dimen0, % ==> 46616000 sp
+\dimen0=250mm   \the\dimen0  % ==> 46616995 sp
+\end{LTXexample}
 %</ja>
 
 \dim{jH}
@@ -9054,8 +9092,8 @@
 This \cs{jH} is the same \cs{dimen} register as \cs{jQ}.
 %</en>
 %<*ja>
-同じく写植で用いられていた単位として「歯」があり,これも$0.25\,\textrm{mm}$と
-等しい.この \cs{jH} は \cs{jQ} と同じ寸法レジスタを指す.
+同じく写真植字で用いられていた単位として「歯」があり,これも$0.25\,\textrm{mm}$と
+等しい.この\cs{jH}は\cs{jQ}と同じ寸法レジスタを指す.
 %</ja>
 
 \dim{ltj at dimen@zw}
@@ -9066,7 +9104,7 @@
 %</en>
 %<*ja>
 現在の和文フォントの「全角幅」を保持する一時レジスタ.
-\cs{zw} 命令は,このレジスタを適切な値に設定した後,
+\cs{zw}命令は,このレジスタを適切な値に設定した後,
 「このレジスタ自体を返す」.
 %</ja>
 
@@ -9636,13 +9674,13 @@
 
 \cs{ltjsetparameter}~and~\cs{ltjglobalsetparameter} automatically sets
 \texttt{luatexja.isglobal}. Its meaning is the following.
-\begin{align}
+\begin{align*}
  \texttt{luatexja.isglobal} =
 \begin{cases*}
  \texttt{'global'}&(global assignment),\\
  \texttt{''}&(local assignment).
 \end{cases*}
-\end{align}
+\end{align*}
 This is determined not only by command name
 (\cs{ltjsetparameter}~or~\cs{ltjglobalsetparameter}),
 but also by the value of \cs{globaldefs}.
@@ -9660,13 +9698,13 @@
 \end{lstlisting}
 のように定義すれば良いだけである.
 なお,パラメータ指定がグローバルかローカルかどうかを示す\texttt{luatexja.isglobal}が,
-\begin{align}
+\begin{align*}
  \texttt{luatexja.isglobal} =
 \begin{cases*}
  \texttt{'global'}&(パラメータ設定はグローバル),\\
  \texttt{''}&(パラメータ設定はローカル).
 \end{cases*}
-\end{align}
+\end{align*}
 として自動的にセットされる\footnote{命令が\cs{ltjglobalsetparameter}かどうかだけでは
 なく,実行時の\cs{globaldefs}の値にも依存して定まる.}.
 %</ja>
@@ -9783,7 +9821,7 @@
 \end{itemize}
 また,状態遷移は,\autoref{fig:ptexipro}のようになっており,図中の数字は
 カテゴリーコードを表している.最初の3状態は\TeX の入力処理部と同じであり,
-図中から状態$K$と「$j$」と書かれた矢印を取り除けば,\TeX の入力処理部と同
+図中から状態$K$と「J」と書かれた矢印を取り除けば,\TeX の入力処理部と同
 じものになる.
 
 この図から分かることは,
@@ -9801,7 +9839,7 @@
 \begin{tikzpicture}[
   ->, auto, shorten >=1pt
 ]
-\node [shape=rectangle, font=\scriptsize] (init) at (2,7) {start};
+\node [shape=rectangle, font=\footnotesize] (init) at (2,7) {start};
 \node [shape=circle,draw, fill=b_cyan] (newline) at (4,7) {$N$};
 \node [shape=circle,draw, fill=b_cyan] (midline) at (4,4) {$M$};
 \node [shape=circle,draw, fill=b_cyan] (skipspc) at (8,7) {$S$};
@@ -9820,7 +9858,7 @@
       (newline) edge [loop right]    node {10} (newline)
       (scanacs) edge [bend left]     node [left=3,below]{$(*)$} (skipspc)
       (scanacs) edge [bend right]    node [right=30,above=20]{$(*)$} (midline)
-      (midline) edge                 node {5\ [\sp]} (endm)
+      (midline) edge                 node {5\ [\,\sp\,]} (endm)
       (midline) edge [loop left]     node {G, O} (midline)
       (skipspc) edge                 node [right] {5} (ends)
       (newline) edge                 node {5 [\cs{par}]} (endn);
@@ -9844,9 +9882,9 @@
  and ending of group (usually \verb+}+).
 \item[\textsf{J}] Japanese characters.
 \item[\textsf{5}] \textit{end-of-line} (usually \verb+^+\verb+^J+).
-\item[\textsf{10}] space (usually \sp).
+\item[\textsf{10}] space (usually \sp\,).
 \item[\textsf{O}] other characters, whose category code is in $\{3,4,6,7,8,11,12,13\}$.
-\item[\textsf{[\sp]}, \textsf{[\cs{par}]}]
+\item[\textsf{[\,\sp\,]}, \textsf{[\cs{par}]}]
 emits a space, or~\cs{par}.
 \end{description}
 \end{minipage}
@@ -9906,7 +9944,7 @@
 \paragraph{Remark}
 The following example shows the major difference from the behavior of \pTeX.
 \begin{LTXexample}
-\fontspec[Ligatures=TeX]{Linux Libertine O}
+\fontspec[Ligatures=TeX]{Libertinus Serif}
 \ltjsetparameter{autoxspacing=false}
 \ltjsetparameter{jacharrange={-6}}xあ
 y\ltjsetparameter{jacharrange={+6}}zい
@@ -10012,7 +10050,7 @@
 \LuaTeX(-ja)では入力の変換は基本的に行わず,
 文字の合成は使用しているフォントのOpenType機能に委ねるという立場であったが,
 \Pkg{luaotfload}~v3.19以降では,標準でNFCへのUnicode正規化を行っている.
-そのため,バージョン2023****.0以降では,\LuaTeX-jaによる自前の変換\footnote{バージョン20220103.0で実装した.}は
+そのため,バージョン20230409.0以降では,\LuaTeX-jaによる自前の変換\footnote{バージョン20220103.0で実装した.}は
 行わないようにしている.
 %</ja>
 
@@ -10100,22 +10138,31 @@
 \item[(b)] An accent attached to $p$ by \cs{accent}.
 %</en>
 %<*ja>
-\item[(b)] \cs{accent} による$p$に付随したアクセント.
+\item[(b)] \cs{accent}による$p$に付随したアクセント.
 %</ja>
+
+%<*en>
+\item[(c)] A kern for~re-spacing the~glyph $p$, from \texttt{palt}~feature etc.
+  The subtype of this node is~0.
+%</en>
+%<*ja>
+\item[(c)] OpenTypeの\texttt{palt}機能などに由来する,$p$の位置補正を行うための$p$の直前/直後に配置されたカーン.
+  これらのsubtypeは0.
+%</ja>
 \end{enumerate}
-\[
+\begin{gather*}
 \overbrace{%
- \Node{kern}{$\mathit{subtype}=2$}\longrightarrow
+ \Node{kern}{$\textrm{subtype}=2$}\longrightarrow
 \left\{\begin{array}{c}
 \Node{glyph}{accent}\\\noalign{\medskip}
 \Node{hbox}{accent (shifted vert.)}
 \end{array}\right\}\longrightarrow
-\Node{kern}{$\mathit{subtype}=2$}}^{\text{(b)}}
+\Node{kern}{$\textrm{subtype}=2$}}^{\text{(b)}}
 \longrightarrow
 \Node{glyph}{$p$}\longrightarrow
 \overbrace{%
 \Node{kern}{italic corr.}}^{\text{(a)}}
-\]
+\end{gather*}
 
 %<*en>
 In this case, the \textit{id} is \textit{id\_jglyph}.
@@ -10261,7 +10308,7 @@
 まず,段落/hboxの一番最初にあるクラスタ\textit{Np}を探索する.
 hboxの場合は何の問題もないが,段落の場合では以下のノード達を事前に読み飛ばしておく:
 \begin{itemize}
-\item \cs{parindent} 由来のhbox($\mathit{subtype}=3$)
+\item \cs{parindent} 由来のhbox($\textrm{subtype}=3$)
 \item \textit{subtype}が44~(\textit{user\_defined})でないようなwhatsit
 \end{itemize}
 これは,\cs{parindent}由来のhboxがクラスタを構成しないようにするためである.
@@ -10324,8 +10371,51 @@
 以後,\emph{典型的な例として,クラスタ\textit{Nq}と\textit{Np}が共に\textsf{\textmd{和文A}}である場合を見ていこう,}
 この場合が全ての場合の基本となる.
 
+\paragraph{カーニングの算出}
+クラスタ\textit{Np}の先頭がsubtype~0のカーン$k$である場合,$k$は次の2つを合計した量である:
+\begin{itemize}
+  \item $\mathit{Nq}.\mathit{last}$,~$\mathit{Np}.\mathit{head}$という2つの\textbf{JAchar}の間に入るカーニング
+  \item OpenTypeの\texttt{palt}機能などによる,$\mathit{Np}.\mathit{head}$の位置補正
+\end{itemize}
+たとえば
+\begin{lstlisting}
+\jfont\KMPK = KozMinPr6N-Regular.otf:jfm=prop;+palt;+kern at 10pt
+\KMPK アイ
+\end{lstlisting}
+からは,次のノード列が得られる:
+\begin{equation}
+\overbrace{%
+ {\mathop{\Node{kern}{$-0.4$\,pt}}\limits_{\textrm{subtype}=0}}\longrightarrow
+ \Node{glyph}{\cs{KMPK}, `ア'}\longrightarrow
+ {\mathop{\Node{kern}{$-0.5$\,pt}}\limits_{\textrm{subtype}=0}}}^{\mathit{Nq}}\longrightarrow
+\overbrace{%
+ {\mathop{\Node{kern}{$-1.2$\,pt}}\limits_{\textrm{subtype}=0}}\longrightarrow
+ \Node{glyph}{\cs{KMPK}, `イ'}\longrightarrow
+ {\mathop{\Node{kern}{$-0.6$\,pt}}\limits_{\textrm{subtype}=0}}}^{\mathit{Np}}
+\label{eq:node1}
+\end{equation}
+ここで,subtypeの値が0であるカーンは行分割でも除去されない.また
+3つ目のカーン$-1.2$\,ptは,カーニング$-0.9$\,ptと「イ」の位置補正$-0.3\,pt$の和である.
+「ア」「イ」間で行分割が起こる場合,前者$-0.9$\,pt分はなくなってほしいが,後者$-0.3$\,pt分は残ることが望ましい.
+
+そのため,\LuaTeX-jaでは\autoref{eq:node1}というノード列を
+\begin{equation*}
+\overbrace{%
+ {\mathop{\Node{kern}{$-0.4$\,pt}}\limits_{\textrm{subtype}=0}}\longrightarrow
+ \Node{glyph}{\cs{KMPK}, `ア'}\longrightarrow
+ {\mathop{\Node{kern}{$-0.5$\,pt}}\limits_{\textrm{subtype}=0}}}^{\mathit{Nq}}
+ \mathrel{\mathop{\longrightarrow}\limits^{(*)}}
+\overbrace{%
+ {\mathop{\Node{kern}{$-0.9$\,pt}}\limits_{\textrm{subtype}=1}}\longrightarrow
+ {\mathop{\Node{kern}{$-0.3$\,pt}}\limits_{\textrm{subtype}=0}}\longrightarrow
+ \Node{glyph}{\cs{KMPK}, `イ'}\longrightarrow
+ {\mathop{\Node{kern}{$-0.6$\,pt}}\limits_{\textrm{subtype}=0}}}^{\mathit{Np}}
+\end{equation*}
+と変換し,$(*)$の箇所にJFMグルーを挿入することになる.
+
+  
 \paragraph{「右空白」の算出}
-まず,「右空白」にあたる量を算出する.通常はこれが,隣り合った2つの\textbf{JAchar}間に入る空白量となる.
+次に,「右空白」にあたる量を算出する.通常はこれが,隣り合った2つの\textbf{JAchar}間に入る空白量となる.
 \begin{description}
 \item[JFM由来{[M]}] JFMの文字クラス指定によって入る空白を以下によって求める.この段階で空白量が未定義(未指定)だった場合,
       デフォルト値\Param{kanjiskip}を採用することとなるので,次へ.
@@ -10394,7 +10484,7 @@
 \end{lstlisting}
 という3フォントを考え,
 \[
- \overbrace{\Node{glyph}{\cs{ foo}, `あ'}}^{p}
+ \overbrace{\Node{glyph}{\cs{foo}, `あ'}}^{p}
 \longrightarrow \overbrace{\Node{glyph}{\cs{bar}, `い'}}^{q}
 \longrightarrow \overbrace{\Node{glyph}{\cs{baz}, `う'}}^{r}
 \]

Modified: trunk/Master/texmf-dist/source/luatex/luatexja/ltjclasses.dtx
===================================================================
--- trunk/Master/texmf-dist/source/luatex/luatexja/ltjclasses.dtx	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/source/luatex/luatexja/ltjclasses.dtx	2025-04-03 19:49:58 UTC (rev 74837)
@@ -141,6 +141,7 @@
 % \changes{v1.8f-ltj-22}{2022-04-11}{kern featureが有効になっていたのを修正.}
 % \changes{v1.8f-ltj-23}{2022-09-12}{|\stockwidth|がカーネルで定義される可能性に対応.}
 % \changes{v1.8f-ltj-24}{2024-12-13}{TOCファイルに\cs{rensuji}を書き出すことをやめた}
+% \changes{v1.8f-ltj-25}{2025-03-28}{\LaTeXe~2025-06-01の更新に追従.}
 % \fi
 %
 % \iffalse
@@ -170,7 +171,7 @@
 %<11pt&bk>\ProvidesFile{ltjtbk11.clo}
 %<12pt&bk>\ProvidesFile{ltjtbk12.clo}
 %</tate>
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
 %<article|report|book> Standard LuaLaTeX-ja class]
 %<10pt|11pt|12pt>  Standard LuaLaTeX-ja file (size option)]
 %<*driver>
@@ -3082,6 +3083,7 @@
 %   そうでないときと違うのを修正(ありがとう、鈴木@津さん)}
 % \changes{v1.7a}{2016/11/16}{replace \cs{reset at font} with
 %    \cs{normalfont} (sync with classes.dtx v1.3c)}
+% \changes{v1.8f-ltj-25}{2025-03-28}{見出しのPDF taggingが働かない問題を修正.}
 %    \begin{macrocode}
 \def\@makechapterhead#1{\hbox{}%
   \vskip2\Cvs
@@ -3096,7 +3098,7 @@
      \addtolength\@tempdima{-\wd\z@}%
      \unhbox\z@\nobreak
 %<book>    \fi
-     \vtop{\hsize\@tempdima#1}%
+     \vtop{\hsize\@tempdima#1\par}%
    \else
      #1\relax
    \fi}\nobreak\vskip3\Cvs}
@@ -3123,6 +3125,7 @@
 %   そうでないときと違うのを修正(ありがとう、鈴木@津さん)}
 % \changes{v1.7a}{2016/11/16}{replace \cs{reset at font} with
 %    \cs{normalfont} (sync with classes.dtx v1.3c)}
+% \changes{v1.8f-ltj-25}{2025-03-28}{見出しのPDF taggingが働かない問題を修正.}
 %    \begin{macrocode}
 \def\@makeschapterhead#1{\hbox{}%
   \vskip2\Cvs
@@ -3131,7 +3134,7 @@
    \normalfont\huge\bfseries
    \leavevmode
    \setlength\@tempdima{\linewidth}%
-   \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}
+   \vtop{\hsize\@tempdima#1\par}}\vskip3\Cvs}
 %</report|book>
 %    \end{macrocode}
 % \end{macro}
@@ -4663,20 +4666,27 @@
 % \end{macro}
 % \end{macro}
 %
-% |stfloats|パッケージがシステムにインストールされている場合は、このパッケージを使って
-% p\LaTeX の標準時と同じようにボトムフロートの下に脚注が組まれるようにします。
+% \pLaTeX の標準時と同じようにボトムフロートの下に脚注が組まれるようにします。
+% \LaTeXe~2025-06-01より以前のバージョンでは|stfloats|パッケージを使います。
 % \changes{v1.0d}{1996/02/29}{articleとreportのデフォルトを
 %                              \pstyle{plain}に修正}
 % \changes{v1.4}{2002/04/09}{縦組スタイルで\cs{flushbottom}しないようにした}
 % [2017-02-19 LTJ] p\LaTeX とLua\TeX-jaの|\@makecol|が違うことを
 %   考慮していなかった。
+%
+% \changes{v1.8f-ltj-25}{2025-03-28}{\LaTeXe~2025-06-01の更新に追従.}
+% [2025-03-28 LTJ] \LaTeXe~2025-06-01での変更に追従.
 %    \begin{macrocode}
 %<book>\pagestyle{headings}
 %<!book>\pagestyle{plain}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx
===================================================================
--- trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/source/luatex/luatexja/ltjsclasses.dtx	2025-04-03 19:49:58 UTC (rev 74837)
@@ -44,7 +44,7 @@
 %<*driver>
 \ProvidesFile{ltjsclasses.dtx}
 %</driver>
-  [2023/07/26 ltjsclasses ]
+  [2025-03-28 ltjsclasses ]
 %<*driver>
 \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
 \documentclass[disablejfam]{ltjsarticle}
@@ -2727,37 +2727,32 @@
 % の整数倍にならなくてもいいから前の行と重ならないようにしました。
 %
 %    \begin{macrocode}
-\def\@startsection#1#2#3#4#5#6{%
-  \if at noskipsec \leavevmode \fi
-  \par
-% 見出し上の空きを \@tempskipa にセットする
-  \@tempskipa #4\relax
-% \@afterindent は見出し直後の段落を字下げするかどうかを表すスイッチ
-  \if at english \@afterindentfalse \else \@afterindenttrue \fi
-% 見出し上の空きが負なら見出し直後の段落を字下げしない
-  \ifdim \@tempskipa <\z@
-    \@tempskipa -\@tempskipa \@afterindentfalse
-  \fi
-  \if at nobreak
-    \everypar{}%
-  \else
-    \addpenalty\@secpenalty
-% 次の行は削除
-%   \addvspace\@tempskipa
-% 次の \noindent まで追加
-    \ifdim \@tempskipa >\z@
-      \if at slide\else
-        \null
-        \vspace*{-\baselineskip}%
+\def\ltjs at patching@startsection{%
+  \ExplSyntaxOn
+  \patchcmd{\@startsection}{%
+    \@afterindenttrue
+  }{%
+    \if at english \@afterindentfalse \else \@afterindenttrue \fi
+  }{}{}
+  \patchcmd{\@startsection}{%
+    \addvspace\@tempskipa
+  }{%
+      \ifdim \@tempskipa >\z@
+        \if at slide\else
+          \null
+          \vspace*{-\baselineskip}%
+        \fi
+        \vskip\@tempskipa
       \fi
-      \vskip\@tempskipa
-    \fi
-  \fi
-  \noindent
-% 追加終わり
-  \@ifstar
-    {\@ssect{#3}{#4}{#5}{#6}}%
-    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+  }{}{}
+  \ExplSyntaxOff
+}
+\ltjs at patching@startsection
+\let\ltjs at orig@startsection=\@startsection
+\AtBeginDocument{%
+  \ifx\@startsection\ltjs at orig@startsection\else\expandafter\ltjs at patching@startsection\fi
+  \let\ltjs at patching@startsection\undefined
+}
 %    \end{macrocode}
 %
 % |\@sect| と |\@xsect| は,
@@ -5679,11 +5674,13 @@
 % \paragraph{ページ設定}
 %
 % ページ設定の初期化です。
-% |stfloats|パッケージがシステムにインストールされている場合は,このパッケージを使って
 % \pLaTeX の標準時と同じようにボトムフロートの下に脚注が組まれるようにします。
+% \LaTeXe~2025-06-01より以前のバージョンでは|stfloats|パッケージを使います。
 %
 % [2017-02-19] \pLaTeX とLua\TeX-jaの|\@makecol|が違うことを
 %   考慮していませんでした。
+%
+% [2025-03-28 LTJ] \LaTeXe~2025-06-01での変更に追従.
 %    \begin{macrocode}
 %<article>\if at slide \pagestyle{empty} \else \pagestyle{plain} \fi
 %<book>\if at report \pagestyle{plain} \else \pagestyle{headings} \fi
@@ -5690,8 +5687,12 @@
 %<report|kiyou>\pagestyle{plain}
 %<jspf>\pagestyle{headings}
 \pagenumbering{arabic}
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua	2025-04-03 19:49:58 UTC (rev 74837)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.jfmglue',
-  date = '2024-10-12',
+  date = '2025-03-31',
   description = 'Insertion process of JFM glues, [x]kanjiskip and others',
 })
 luatexja.jfmglue = luatexja.jfmglue or {}
@@ -196,7 +196,7 @@
       end
       if pid==id_kern then
          local pa = get_attr_icflag(p)
-         if pa==IC_PROCESSED then
+         if (pa==IC_PROCESSED) or (getsubtype(p)==0) then
             -- do nothing
          elseif getsubtype(p)==2 then
             p = node_next(node_next(p));
@@ -273,12 +273,24 @@
 do -- 001 -----------------------------------------------
 
 local traverse = node.direct.traverse
+local getproperty = node.direct.getproperty
 local function check_next_ickern(lp)
    local lx = Np.nuc
-   while lp and getid(lp) == id_kern and ( getsubtype(lp)==0 or
-     getsubtype(lp)==3 or ITALIC == get_attr_icflag(lp)) do
-     set_attr(lp, attr_icflag, IC_PROCESSED)
-     lx, lp = lp, node_next(lp)
+   local already_rightkern = false
+   while lp and getid(lp) == id_kern do
+      if (getsubtype(lp)==3) or (ITALIC == get_attr_icflag(lp)) then
+         set_attr(lp, attr_icflag, IC_PROCESSED)
+         lx, lp = lp, node_next(lp)
+      elseif getsubtype(lp)==0 then
+         local np = getproperty(Np.nuc)
+         if already_rightkern then break
+         else 
+            if type(np)=='table' and np.injections and np.injections.rightkern~=0 then
+               set_attr(lp, attr_icflag, PROCESSED)
+               lx, lp = lp, node_next(lp); already_rightkern = true
+            else break end
+         end
+      else break end
    end
    Np.last = lx; return lp
 end
@@ -285,7 +297,6 @@
 
 local function calc_np_pbox(lp, last)
    local first, nc = (not Np.first), nil
-   --local lpa = get_attr_icflag(lp)==PACKED and PACKED or KINSOKU -- KINSOKU: dummy
    local lpa = get_attr_icflag(lp)
    Np.first = Np.first or lp; Np.id = id_pbox
    set_attr(lp, attr_icflag, get_attr_icflag(lp))
@@ -535,6 +546,9 @@
          set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
          set_attr(lp, attr_icflag, PROCESSED);
          return calc_np_aux_glyph_common(lp, true)
+      elseif getsubtype(lp)==0 then
+         Np.first = Np.first or lp; set_attr(lp, attr_icflag, PROCESSED)
+         return false, node_next(lp)
       else
          Np.first = Np.first or lp
          Np.id = id_kern; set_attr(lp, attr_icflag, PROCESSED)
@@ -754,7 +768,7 @@
 -- 和文文字間の JFM glue を node 化
 local function new_jfm_glue(mc, bc, ac)
 -- bc, ac: char classes
-   local g = mc[bc][ac]
+   local g = mc[bc] and mc[bc][ac]
    if g then
        if g[1] then
           local k = node_new(id_kern, 1); setkern(k, g[1])
@@ -981,6 +995,30 @@
 end
 
 -------------------- 隣接した「塊」間の処理
+local inspect_np_first
+do
+local getkern = node.direct.getkern
+local font_getfont, round = font.getfont, tex.round
+inspect_np_first = function()
+-- Np.first は leftkern => palt 等の位置補正由来か kern 等のカーニング由来かを調べ
+-- 後者の部分を explicit kern として Np.first の前に挿入する
+   local pn = Np.nuc; if getid(pn)~=id_glyph then return end
+   local pf = getfont(pn); if getfont(Nq.nuc)~=pf then return end
+   if ltju.specified_feature(pf, 'kern') then
+      local qc, pc = Nq.char, Np.char; local kern
+      ltju.loop_over_feat(pf, { kern=true }, 
+         function(i,k) if i==qc and type(k)=='table' and k[pc] then kern = k[pc] end end,
+         false, 'gpos_pair')
+      local pft = font_getfont(pf); kern = round((kern or 0)/pft.units*pft.size)
+      if kern==getkern(Np.first) then setfield(Np.first, 'subtype', 1)
+      elseif kern~=0 then
+         local k = node_new(id_kern, 1); set_attr(k, attr_icflag, PROCESSED)
+         setkern(k, kern); setkern(Np.first, getkern(Np.first)-kern)
+         insert_before(head, Np.first, k); Np.first = k
+      end
+   end
+end
+end
 
 local function combine_spc(name)
    return (Np[name] or Nq[name]) and ((Np[name]~=0) and (Nq[name]~=0))
@@ -1037,6 +1075,9 @@
    local qid = Nq.id
    if qid==id_jglyph or ((qid==id_pbox or qid==id_pbox_w) and Nq.met) then
       local g, k
+      if getid(Np.first)==id_kern and getsubtype(Np.first)==0 then
+          inspect_np_first()
+      end
       if non_ihb_flag then g, k = calc_ja_ja_glue() end -- M->K
       if not g then g = get_kanjiskip() end
       handle_penalty_normal(Nq.post, Np.pre, g);

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -24,7 +24,7 @@
 %%% patch for LaTeX
 \usepackage{lltjfont}
 \usepackage{lltjdefs}
-\usepackage{lltjcore}
+\@ifl at t@r\fmtversion{2025-06-01}{\usepackage{lltjcore}}{\usepackage{lltjcore-241201}}
 \RequirePackage{lltjp-atbegshi}
 
 %%% patching commands

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua	2025-04-03 19:49:58 UTC (rev 74837)
@@ -126,16 +126,17 @@
 end
 aux.loop_over_duplicates = loop_over_duplicates
 
-local function loop_over_feat(id, feature_name, func, universal)
+local function loop_over_feat(id, feature_name, func, universal, typ)
 -- feature_name: like { vert=true, vrt2 = true, ...}
 -- func: return non-nil iff abort this fn
 -- universal: true iff look up all (script, lang) pair
+  typ = typ or 'gsub_single'
   local t = (type(id)=="table") and id or getfont(id)
   if t and t.resources and t.resources.sequences then -- HARF: not executed
     for _,i in pairs(t.resources.sequences) do
       if i.order[1] and feature_name[i.order[1]] then
         local f = i.features and i.features[i.order[1]]
-        if i.type == 'gsub_single' and i.steps
+        if i.type == typ and i.steps
           and f and (universal or (f[t.properties.script] and f[t.properties.script][t.properties.language])) then
           for _,j in pairs(i.steps) do
             if type(j)=='table' then
@@ -151,8 +152,8 @@
     end
   end
 end
+
 aux.loop_over_feat = loop_over_feat
-
 local vert_vrt2 = { vert=true, vrt2=true }
 function aux.replace_vert_variant(id, c)
   return loop_over_feat(id, vert_vrt2,

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua	2025-04-03 19:49:58 UTC (rev 74837)
@@ -47,6 +47,7 @@
 local STCK  = luatexja.userid_table.STCK
 local DIR   = luatexja.userid_table.DIR
 local JA_AL_BDD = luatexja.userid_table.JA_AL_BDD
+local KERN_ORIGIN = luatexja.userid_table.KERN_ORIGIN
 local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
 
 local dir_tate = luatexja.dir_table.dir_tate
@@ -110,7 +111,7 @@
                      setfield(b, 'type', 100); setfield(b, 'user_id', JA_AL_BDD);
                      insert_before(head, p, b)
                   end
-                  setlang(p, lang_ja);
+                  setlang(p, lang_ja)
                   ltjs_orig_char_table[p], prev_chartype = pc, 2
                elseif prev_chartype==2 then
                   local b = node_new(id_whatsit,sid_user);

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjarticle}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
  Standard LuaLaTeX-ja class]
 \RequirePackage{luatexja}
 \newcounter{@paper}
@@ -828,8 +828,12 @@
 \pagestyle{plain}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjbk10.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xpt{15}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjbk11.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xipt{15.5}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjbk12.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xiipt{16.5}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjbook}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
  Standard LuaLaTeX-ja class]
 \RequirePackage{luatexja}
 \newcounter{@paper}
@@ -534,7 +534,7 @@
      \addtolength\@tempdima{-\wd\z@}%
      \unhbox\z@\nobreak
     \fi
-     \vtop{\hsize\@tempdima#1}%
+     \vtop{\hsize\@tempdima#1\par}%
    \else
      #1\relax
    \fi}\nobreak\vskip3\Cvs}
@@ -548,7 +548,7 @@
    \normalfont\huge\bfseries
    \leavevmode
    \setlength\@tempdima{\linewidth}%
-   \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}
+   \vtop{\hsize\@tempdima#1\par}}\vskip3\Cvs}
 \newcommand{\section}{\@startsection{section}{1}{\z@}%
    {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
    {.5\Cvs \@plus.3\Cvs}%
@@ -932,8 +932,12 @@
 \pagestyle{headings}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjreport}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
  Standard LuaLaTeX-ja class]
 \RequirePackage{luatexja}
 \newcounter{@paper}
@@ -530,7 +530,7 @@
      \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1\zw}%
      \addtolength\@tempdima{-\wd\z@}%
      \unhbox\z@\nobreak
-     \vtop{\hsize\@tempdima#1}%
+     \vtop{\hsize\@tempdima#1\par}%
    \else
      #1\relax
    \fi}\nobreak\vskip3\Cvs}
@@ -544,7 +544,7 @@
    \normalfont\huge\bfseries
    \leavevmode
    \setlength\@tempdima{\linewidth}%
-   \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}
+   \vtop{\hsize\@tempdima#1\par}}\vskip3\Cvs}
 \newcommand{\section}{\@startsection{section}{1}{\z@}%
    {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
    {.5\Cvs \@plus.3\Cvs}%
@@ -929,8 +929,12 @@
 \pagestyle{plain}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsarticle}
-  [2023/07/26 ltjsclasses ]
+  [2025-03-28 ltjsclasses ]
 \def\jsc at clsname{ltjsarticle}
 \def\Cjascale{0.924715}
 \RequirePackage{luatexja}
@@ -767,30 +767,32 @@
     \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi
   }
 \fi
-\def\@startsection#1#2#3#4#5#6{%
-  \if at noskipsec \leavevmode \fi
-  \par
-  \@tempskipa #4\relax
-  \if at english \@afterindentfalse \else \@afterindenttrue \fi
-  \ifdim \@tempskipa <\z@
-    \@tempskipa -\@tempskipa \@afterindentfalse
-  \fi
-  \if at nobreak
-    \everypar{}%
-  \else
-    \addpenalty\@secpenalty
-    \ifdim \@tempskipa >\z@
-      \if at slide\else
-        \null
-        \vspace*{-\baselineskip}%
+\def\ltjs at patching@startsection{%
+  \ExplSyntaxOn
+  \patchcmd{\@startsection}{%
+    \@afterindenttrue
+  }{%
+    \if at english \@afterindentfalse \else \@afterindenttrue \fi
+  }{}{}
+  \patchcmd{\@startsection}{%
+    \addvspace\@tempskipa
+  }{%
+      \ifdim \@tempskipa >\z@
+        \if at slide\else
+          \null
+          \vspace*{-\baselineskip}%
+        \fi
+        \vskip\@tempskipa
       \fi
-      \vskip\@tempskipa
-    \fi
-  \fi
-  \noindent
-  \@ifstar
-    {\@ssect{#3}{#4}{#5}{#6}}%
-    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+  }{}{}
+  \ExplSyntaxOff
+}
+\ltjs at patching@startsection
+\let\ltjs at orig@startsection=\@startsection
+\AtBeginDocument{%
+  \ifx\@startsection\ltjs at orig@startsection\else\expandafter\ltjs at patching@startsection\fi
+  \let\ltjs at patching@startsection\undefined
+}
 \def\@sect#1#2#3#4#5#6[#7]#8{%
   \ifnum #2>\c at secnumdepth
     \let\@svsec\@empty
@@ -1668,8 +1670,12 @@
 \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
 \if at slide \pagestyle{empty} \else \pagestyle{plain} \fi
 \pagenumbering{arabic}
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsbook}
-  [2023/07/26 ltjsclasses ]
+  [2025-03-28 ltjsclasses ]
 \def\jsc at clsname{ltjsbook}
 \def\Cjascale{0.924715}
 \RequirePackage{luatexja}
@@ -782,30 +782,32 @@
     \par\vskip 1.5em
   }
 \fi
-\def\@startsection#1#2#3#4#5#6{%
-  \if at noskipsec \leavevmode \fi
-  \par
-  \@tempskipa #4\relax
-  \if at english \@afterindentfalse \else \@afterindenttrue \fi
-  \ifdim \@tempskipa <\z@
-    \@tempskipa -\@tempskipa \@afterindentfalse
-  \fi
-  \if at nobreak
-    \everypar{}%
-  \else
-    \addpenalty\@secpenalty
-    \ifdim \@tempskipa >\z@
-      \if at slide\else
-        \null
-        \vspace*{-\baselineskip}%
+\def\ltjs at patching@startsection{%
+  \ExplSyntaxOn
+  \patchcmd{\@startsection}{%
+    \@afterindenttrue
+  }{%
+    \if at english \@afterindentfalse \else \@afterindenttrue \fi
+  }{}{}
+  \patchcmd{\@startsection}{%
+    \addvspace\@tempskipa
+  }{%
+      \ifdim \@tempskipa >\z@
+        \if at slide\else
+          \null
+          \vspace*{-\baselineskip}%
+        \fi
+        \vskip\@tempskipa
       \fi
-      \vskip\@tempskipa
-    \fi
-  \fi
-  \noindent
-  \@ifstar
-    {\@ssect{#3}{#4}{#5}{#6}}%
-    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+  }{}{}
+  \ExplSyntaxOff
+}
+\ltjs at patching@startsection
+\let\ltjs at orig@startsection=\@startsection
+\AtBeginDocument{%
+  \ifx\@startsection\ltjs at orig@startsection\else\expandafter\ltjs at patching@startsection\fi
+  \let\ltjs at patching@startsection\undefined
+}
 \def\@sect#1#2#3#4#5#6[#7]#8{%
   \ifnum #2>\c at secnumdepth
     \let\@svsec\@empty
@@ -1762,8 +1764,12 @@
 \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
 \if at report \pagestyle{plain} \else \pagestyle{headings} \fi
 \pagenumbering{arabic}
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjsize10.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xpt{15}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjsize11.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xipt{15.5}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjsize12.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xiipt{16.5}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjskiyou}
-  [2023/07/26 ltjsclasses ]
+  [2025-03-28 ltjsclasses ]
 \def\jsc at clsname{ltjskiyou}
 \def\Cjascale{0.924715}
 \RequirePackage{luatexja}
@@ -728,30 +728,32 @@
     \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi
   }
 \fi
-\def\@startsection#1#2#3#4#5#6{%
-  \if at noskipsec \leavevmode \fi
-  \par
-  \@tempskipa #4\relax
-  \if at english \@afterindentfalse \else \@afterindenttrue \fi
-  \ifdim \@tempskipa <\z@
-    \@tempskipa -\@tempskipa \@afterindentfalse
-  \fi
-  \if at nobreak
-    \everypar{}%
-  \else
-    \addpenalty\@secpenalty
-    \ifdim \@tempskipa >\z@
-      \if at slide\else
-        \null
-        \vspace*{-\baselineskip}%
+\def\ltjs at patching@startsection{%
+  \ExplSyntaxOn
+  \patchcmd{\@startsection}{%
+    \@afterindenttrue
+  }{%
+    \if at english \@afterindentfalse \else \@afterindenttrue \fi
+  }{}{}
+  \patchcmd{\@startsection}{%
+    \addvspace\@tempskipa
+  }{%
+      \ifdim \@tempskipa >\z@
+        \if at slide\else
+          \null
+          \vspace*{-\baselineskip}%
+        \fi
+        \vskip\@tempskipa
       \fi
-      \vskip\@tempskipa
-    \fi
-  \fi
-  \noindent
-  \@ifstar
-    {\@ssect{#3}{#4}{#5}{#6}}%
-    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+  }{}{}
+  \ExplSyntaxOff
+}
+\ltjs at patching@startsection
+\let\ltjs at orig@startsection=\@startsection
+\AtBeginDocument{%
+  \ifx\@startsection\ltjs at orig@startsection\else\expandafter\ltjs at patching@startsection\fi
+  \let\ltjs at patching@startsection\undefined
+}
 \def\@sect#1#2#3#4#5#6[#7]#8{%
   \ifnum #2>\c at secnumdepth
     \let\@svsec\@empty
@@ -1632,8 +1634,12 @@
 \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
 \pagestyle{plain}
 \pagenumbering{arabic}
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjspf}
-  [2023/07/26 ltjsclasses ]
+  [2025-03-28 ltjsclasses ]
 \def\jsc at clsname{ltjspf}
 \def\Cjascale{0.903375}
 \RequirePackage{luatexja}
@@ -656,30 +656,32 @@
     \centerline{\parbox{157\jsc at mmm}{\textsf{Keywords:}\\ \small\@keywords}}
   \fi
   \vskip 1.5em}
-\def\@startsection#1#2#3#4#5#6{%
-  \if at noskipsec \leavevmode \fi
-  \par
-  \@tempskipa #4\relax
-  \if at english \@afterindentfalse \else \@afterindenttrue \fi
-  \ifdim \@tempskipa <\z@
-    \@tempskipa -\@tempskipa \@afterindentfalse
-  \fi
-  \if at nobreak
-    \everypar{}%
-  \else
-    \addpenalty\@secpenalty
-    \ifdim \@tempskipa >\z@
-      \if at slide\else
-        \null
-        \vspace*{-\baselineskip}%
+\def\ltjs at patching@startsection{%
+  \ExplSyntaxOn
+  \patchcmd{\@startsection}{%
+    \@afterindenttrue
+  }{%
+    \if at english \@afterindentfalse \else \@afterindenttrue \fi
+  }{}{}
+  \patchcmd{\@startsection}{%
+    \addvspace\@tempskipa
+  }{%
+      \ifdim \@tempskipa >\z@
+        \if at slide\else
+          \null
+          \vspace*{-\baselineskip}%
+        \fi
+        \vskip\@tempskipa
       \fi
-      \vskip\@tempskipa
-    \fi
-  \fi
-  \noindent
-  \@ifstar
-    {\@ssect{#3}{#4}{#5}{#6}}%
-    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+  }{}{}
+  \ExplSyntaxOff
+}
+\ltjs at patching@startsection
+\let\ltjs at orig@startsection=\@startsection
+\AtBeginDocument{%
+  \ifx\@startsection\ltjs at orig@startsection\else\expandafter\ltjs at patching@startsection\fi
+  \let\ltjs at patching@startsection\undefined
+}
 \def\@sect#1#2#3#4#5#6[#7]#8{%
   \ifnum #2>\c at secnumdepth
     \let\@svsec\@empty
@@ -1526,8 +1528,12 @@
 \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
 \pagestyle{headings}
 \pagenumbering{arabic}
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -38,7 +38,7 @@
 %%   Right brace   \}     Tilde         \~}
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjsreport}
-  [2023/07/26 ltjsclasses ]
+  [2025-03-28 ltjsclasses ]
 \def\jsc at clsname{ltjsreport}
 \def\Cjascale{0.924715}
 \RequirePackage{luatexja}
@@ -755,30 +755,32 @@
     \ifvoid\@abstractbox\else\centerline{\box\@abstractbox}\vskip1.5em\fi
   }
 \fi
-\def\@startsection#1#2#3#4#5#6{%
-  \if at noskipsec \leavevmode \fi
-  \par
-  \@tempskipa #4\relax
-  \if at english \@afterindentfalse \else \@afterindenttrue \fi
-  \ifdim \@tempskipa <\z@
-    \@tempskipa -\@tempskipa \@afterindentfalse
-  \fi
-  \if at nobreak
-    \everypar{}%
-  \else
-    \addpenalty\@secpenalty
-    \ifdim \@tempskipa >\z@
-      \if at slide\else
-        \null
-        \vspace*{-\baselineskip}%
+\def\ltjs at patching@startsection{%
+  \ExplSyntaxOn
+  \patchcmd{\@startsection}{%
+    \@afterindenttrue
+  }{%
+    \if at english \@afterindentfalse \else \@afterindenttrue \fi
+  }{}{}
+  \patchcmd{\@startsection}{%
+    \addvspace\@tempskipa
+  }{%
+      \ifdim \@tempskipa >\z@
+        \if at slide\else
+          \null
+          \vspace*{-\baselineskip}%
+        \fi
+        \vskip\@tempskipa
       \fi
-      \vskip\@tempskipa
-    \fi
-  \fi
-  \noindent
-  \@ifstar
-    {\@ssect{#3}{#4}{#5}{#6}}%
-    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+  }{}{}
+  \ExplSyntaxOff
+}
+\ltjs at patching@startsection
+\let\ltjs at orig@startsection=\@startsection
+\AtBeginDocument{%
+  \ifx\@startsection\ltjs at orig@startsection\else\expandafter\ltjs at patching@startsection\fi
+  \let\ltjs at patching@startsection\undefined
+}
 \def\@sect#1#2#3#4#5#6[#7]#8{%
   \ifnum #2>\c at secnumdepth
     \let\@svsec\@empty
@@ -1756,8 +1758,12 @@
 \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
 \pagestyle{plain}
 \pagenumbering{arabic}
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjtarticle}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
  Standard LuaLaTeX-ja class]
 \RequirePackage{luatexja}
 \newcounter{@paper}
@@ -832,8 +832,12 @@
 \pagestyle{plain}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjtbk10.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xpt{17}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjtbk11.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xipt{17}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjtbk12.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xiipt{18}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjtbook}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
  Standard LuaLaTeX-ja class]
 \RequirePackage{luatexja}
 \newcounter{@paper}
@@ -538,7 +538,7 @@
      \addtolength\@tempdima{-\wd\z@}%
      \unhbox\z@\nobreak
     \fi
-     \vtop{\hsize\@tempdima#1}%
+     \vtop{\hsize\@tempdima#1\par}%
    \else
      #1\relax
    \fi}\nobreak\vskip3\Cvs}
@@ -552,7 +552,7 @@
    \normalfont\huge\bfseries
    \leavevmode
    \setlength\@tempdima{\linewidth}%
-   \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}
+   \vtop{\hsize\@tempdima#1\par}}\vskip3\Cvs}
 \newcommand{\section}{\@startsection{section}{1}{\z@}%
    {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
    {.5\Cvs \@plus.3\Cvs}%
@@ -936,8 +936,12 @@
 \pagestyle{headings}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltjtreport}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
  Standard LuaLaTeX-ja class]
 \RequirePackage{luatexja}
 \newcounter{@paper}
@@ -534,7 +534,7 @@
      \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1\zw}%
      \addtolength\@tempdima{-\wd\z@}%
      \unhbox\z@\nobreak
-     \vtop{\hsize\@tempdima#1}%
+     \vtop{\hsize\@tempdima#1\par}%
    \else
      #1\relax
    \fi}\nobreak\vskip3\Cvs}
@@ -548,7 +548,7 @@
    \normalfont\huge\bfseries
    \leavevmode
    \setlength\@tempdima{\linewidth}%
-   \vtop{\hsize\@tempdima#1}}\vskip3\Cvs}
+   \vtop{\hsize\@tempdima#1\par}}\vskip3\Cvs}
 \newcommand{\section}{\@startsection{section}{1}{\z@}%
    {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
    {.5\Cvs \@plus.3\Cvs}%
@@ -933,8 +933,12 @@
 \pagestyle{plain}
 \pagenumbering{arabic}
 \raggedbottom
-\fnfixbottomtrue % 2017-02-19
-\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+\@ifl at t@r\fmtversion{2025-06-01}{%
+  \AssignSocketPlug{build/column/outputbox}{floats-footnotes-platex}
+}{%
+  \fnfixbottomtrue % 2017-02-19
+  \IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{}
+}
 \if at twocolumn
   \twocolumn
   \sloppy

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjtsize10.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xpt{17}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjtsize11.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xipt{17}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo	2025-04-03 19:49:58 UTC (rev 74837)
@@ -23,7 +23,7 @@
 %% File: ltjclasses.dtx
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltjtsize12.clo}
-  [2024-12-13 v1.8f-ltj-24
+  [2025-03-28 v1.8f-ltj-25
   Standard LuaLaTeX-ja file (size option)]
 \renewcommand{\normalsize}{%
     \@setfontsize\normalsize\@xiipt{18}%

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua	2025-04-03 19:49:58 UTC (rev 74837)
@@ -420,12 +420,20 @@
 
 local prefix, inner_depth
 local utfchar = utf.char
+local function print_attr(p)
+--    local s= "      ==> "
+--    local n = p.attr.next
+--    while n do
+--        s = s .. ' [' .. tostring(n.number) .. ']=' .. tostring(n.value)
+--        n = node_next(n)
+--    end
+--    print(s)
+end
 local function debug_show_node_X(p,print_fn, limit, inner_depth)
    local k = prefix
    local s
    local pt, pic = node_type(p.id), (get_attr(p, attr_icflag) or 0) --% icflag_table.PROCESSED_BEGIN_FLAG
-   local base = prefix .. '[' .. string.format('%7d', node.direct.todirect(p)) 
-     .. ', ' .. tostring(get_attr(p, 27)) .. '] '
+   local base = prefix .. '[' .. string.format('%7d', node.direct.todirect(p)) .. '] '
      .. string.format('%X', pic) .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
    if pt == 'glyph' then
       s = base .. ' '
@@ -437,7 +445,7 @@
          s = s .. ' off: (' .. print_scaled(p.xoffset)
                .. ',' .. print_scaled(p.yoffset) .. ')'
       end
-      print_fn(s)
+      print_fn(s); print_attr(p)
    elseif pt=='hlist' or pt=='vlist' or pt=='unset'or pt=='ins' then
       if pt=='ins' then
          s = base .. '(' .. print_scaled(p.height) .. '+'
@@ -510,9 +518,11 @@
       print_fn(s)
    elseif pt == 'kern' then
       s = base .. ' ' .. print_scaled(p.kern) .. 'pt'
-      if p.subtype==2 then
+      if p.subtype==0 then
+         s = s .. ' (font)'
+      elseif p.subtype==2 then
          s = s .. ' (for accent)'
-      elseif pic==icflag_table.IC_PROCESSED then
+      elseif p.subtype==3 or pic==icflag_table.IC_PROCESSED then
          s = s .. ' (italic correction)'
       elseif pic==icflag_table.LINEEND then
          s = s .. ' (end-of-line)'
@@ -520,7 +530,7 @@
          and pic<icflag_table.KANJI_SKIP then
          s = s .. ' (from JFM: priority ' .. pic-icflag_table.FROM_JFM .. ')'
       end
-      print_fn(s)
+      print_fn(s); print_attr(p)
    elseif pt == 'penalty' then
       s = base .. ' ' .. tostring(p.penalty)
       if pic==icflag_table.KINSOKU then s = s .. ' (for kinsoku)' end

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -27,7 +27,7 @@
 \newif\ifltj at disablejfam
 
 %%%% VERSION
-\def\LuaTeXjaversion{20250208.0}
+\def\LuaTeXjaversion{20250401.0}
 
 %% Check if LaTeX is used.
 \begingroup\expandafter\expandafter\expandafter\endgroup

Added: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore-241201.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore-241201.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore-241201.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -0,0 +1,364 @@
+%
+% lltjcore-241201.sty: derived from plcore.dtx in pLaTeX.
+% This file is used for LaTeX2e <=2024-12-01.
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{lltjcore-241201}[2025-03-02 Patch to LaTeX2e Kernel for LuaTeX-ja]
+\RequirePackage{etoolbox}
+
+%%% expl3
+\RequirePackage{expl3}
+\ExplSyntaxOn
+\cs_set_eq:NN \platex_direction_yoko: \yoko
+\cs_set_eq:NN \platex_direction_tate: \tate
+\cs_set_eq:NN \platex_direction_dtou: \dtou
+\cs_set_eq:NN \platex_direction_utod: \utod % LuaTeX-ja specific
+\prg_new_conditional:Npnn \platex_if_box_yoko:N #1 { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{boxdir}{#1} = 4 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_conditional:Npnn \platex_if_box_utod:N #1 { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{boxdir}{#1} = 11 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_eq_conditional:NNn \platex_if_box_tate_math:N \platex_if_box_utod:N { p, T, F, TF }
+\prg_new_conditional:Npnn \platex_if_box_tate_nomath:N #1 { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{boxdir}{#1} = 3 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_conditional:Npnn \platex_if_box_tate:N #1 { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{boxdir}{#1} = 3 \scan_stop:
+      \prg_return_true:
+    \else: \if_int_compare:w \ltjgetparameter{boxdir}{#1} = 11 \scan_stop: % utod
+      \prg_return_true:
+    \else
+      \prg_return_false:
+    \fi: \fi:}
+\prg_new_conditional:Npnn \platex_if_box_dtou:N #1 { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{boxdir}{#1} = 1 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_conditional:Npnn \platex_if_direction_yoko: { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{direction} = 4 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_conditional:Npnn \platex_if_direction_utod: { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{direction} = 11 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_eq_conditional:NNn
+  \platex_if_direction_tate_math: \platex_if_direction_utod: { p, T, F, TF }
+\prg_new_conditional:Npnn \platex_if_direction_tate_nomath: { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{direction} = 3 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\prg_new_conditional:Npnn \platex_if_direction_tate: { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{direction} = 3 \scan_stop:
+      \prg_return_true:
+    \else: \if_int_compare:w \ltjgetparameter{direction} = 11 \scan_stop: % utod
+      \prg_return_true:
+    \else
+      \prg_return_false:
+    \fi: \fi:}
+\prg_new_conditional:Npnn \platex_if_direction_dtou: { p, T, F, TF }
+  { \if_int_compare:w \ltjgetparameter{direction} = 1 \scan_stop:
+      \prg_return_true: \else: \prg_return_false: \fi: }
+\ExplSyntaxOff
+
+\def\cleardoublepage{\clearpage\if at twoside
+  \ifodd\c at page
+    \ifnum\ltjgetparameter{direction}=3
+      \hbox{}\thispagestyle{empty}\newpage
+      \if at twocolumn\hbox{}\newpage\fi
+    \fi
+  \else
+    \ifnum\ltjgetparameter{direction}=4
+      \hbox{}\thispagestyle{empty}\newpage
+      \if at twocolumn\hbox{}\newpage\fi
+    \fi
+  \fi\fi}
+
+\patchcmd\@vtryfc{\global\setbox\@outputbox\vbox{}}
+  {\global\setbox\@outputbox\vbox{%
+     \unless\ifnum\ltjgetparameter{direction}=4
+       \primitive\everypar{}\hskip\z@\fi
+  }}{}{}
+
+\newif\iftombow \tombowfalse
+\newif\iftombowdate \tombowdatetrue
+\newdimen\@tombowwidth
+\setlength{\@tombowwidth}{.1\p@}
+\newbox\@TL\newbox\@Tl
+\newbox\@TC
+\newbox\@TR\newbox\@Tr
+\newbox\@BL\newbox\@Bl
+\newbox\@BC
+\newbox\@BR\newbox\@Br
+\newbox\@CL
+\newbox\@CR
+\font\@bannerfont=file:lmmono9-regular.otf % cmtt9 in pLaTeX
+\newtoks\@bannertoken
+\@bannertoken{}
+\def\maketombowbox{%
+  \setbox\@TL\hbox to\z@{\yoko\hss
+      \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@
+      \vrule height10mm width\@tombowwidth depth\z@
+      \iftombowdate
+        \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}%
+      \fi}%
+  \setbox\@Tl\hbox to\z@{\yoko\hss
+      \vrule width10mm height\@tombowwidth depth\z@
+      \vrule height\dimexpr 10mm+\@tombowbleed\relax  width\@tombowwidth depth\z@}%
+  \setbox\@TC\hbox{\yoko
+      \vrule width10mm height\@tombowwidth depth\z@
+      \vrule height10mm width\@tombowwidth depth\z@
+      \vrule width10mm height\@tombowwidth depth\z@}%
+  \setbox\@TR\hbox to\z@{\yoko
+      \vrule height10mm width\@tombowwidth depth\z@
+      \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@\hss}%
+  \setbox\@Tr\hbox to\z@{\yoko
+      \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@
+      \vrule width10mm height\@tombowwidth depth\z@\hss}%
+  \setbox\@BL\hbox to\z@{\yoko\hss
+      \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@
+      \vrule depth10mm width\@tombowwidth height\z@}%
+  \setbox\@Bl\hbox to\z@{\yoko\hss
+      \vrule width10mm depth\@tombowwidth height\z@
+      \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@}%
+  \setbox\@BC\hbox{\yoko
+      \vrule width10mm depth\@tombowwidth height\z@
+      \vrule depth10mm width\@tombowwidth height\z@
+      \vrule width10mm depth\@tombowwidth height\z@}%
+  \setbox\@BR\hbox to\z@{\yoko
+      \vrule depth10mm width\@tombowwidth height\z@
+      \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@\hss}%
+  \setbox\@Br\hbox to\z@{\yoko
+      \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@
+      \vrule width10mm depth\@tombowwidth height\z@\hss}%
+  \setbox\@CL\hbox to\z@{\yoko\hss
+      \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
+      \vrule height10mm depth10mm width\@tombowwidth}%
+  \setbox\@CR\hbox to\z@{\yoko
+      \vrule height10mm depth10mm width\@tombowwidth
+      \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}%
+}
+\def\@outputtombow{%
+  \iftombow
+  \vbox to\z@{\kern\dimexpr-10mm-\@tombowbleed\relax
+    \boxmaxdepth\maxdimen
+      \moveleft\@tombowbleed\vbox to\@@paperheight{%
+	  \color at begingroup
+	  \@tombowcolor
+      \hbox to\@@paperwidth{\hskip\@tombowbleed\relax
+         \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}%
+      \kern-10mm%
+      \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}%
+      \vfill
+      \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}%
+      \vfill
+      \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}%
+      \kern-10mm%
+      \hbox to\@@paperwidth{\hskip\@tombowbleed\relax
+         \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}%
+      \color at endgroup
+    }\vss
+  }%
+  \fi
+}
+\def\@tombowcolor{\normalcolor}
+\def\@tombowbleed{3mm}
+\def\@tombowreset@@paper{%
+   \@@topmargin \topmargin % only for compatibility
+   \iftombow
+     \@@paperwidth\dimexpr\paperwidth+2\dimexpr\@tombowbleed\relax
+     \@@paperheight\dimexpr\paperheight+10mm+2\dimexpr\@tombowbleed\relax
+     \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax
+   \fi
+}
+\newdimen\@@paperheight
+\newdimen\@@paperwidth
+\newdimen\@@topmargin % not used by LuaTeX-ja; only to avoid existing codes
+\patchcmd\@outputpage{\begingroup\let\protect\noexpand}{% tate direction
+\begingroup
+  \ifnum\ltjgetparameter{direction}=4\else
+    \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@
+  \fi
+  \directlua{luatexja.lineskip.setting_backup()}
+  \let \protect \noexpand
+}{}{}
+\patchcmd\@outputpage{% supply \yoko
+    \set at typeset@protect
+    \aftergroup \endgroup
+}{%
+    \yoko \set at typeset@protect
+    \aftergroup \endgroup
+}{}{}
+\patchcmd\@outputpage{\let\@thefoot\@oddfoot\let\@themargin\oddsidemargin}{% tate direction
+  \let\@thefoot\@oddfoot
+  \ifnum\ltjgetparameter{direction}=3 \let\@themargin\evensidemargin
+  \else\let\@themargin\oddsidemargin\fi
+}{}{}
+\patchcmd\@outputpage{\let\@thefoot\@evenfoot\let\@themargin\evensidemargin}{% tate direction
+  \let\@thefoot\@evenfoot
+  \ifnum\ltjgetparameter{direction}=3 \let\@themargin\oddsidemargin
+  \else\let\@themargin\evensidemargin\fi
+}{}{}
+
+% 将来は shipout hook で書き直したい
+\patchcmd\@outputpage{\vskip\topmargin}{\vskip\topmargin\iftombow\vskip1in\fi}{}{}
+\patchcmd\@outputpage{\reset at font}{\@tombowreset@@paper\reset at font}{}{}
+\patchcmd\@outputpage{\@begindvi}{\@begindvi\@outputtombow}{}{}
+\patchcmd\@outputpage{\stepcounter{page}}%
+  {\stepcounter{page}\directlua{luatexja.lineskip.setting_restore()}}{}{}
+
+%
+\pretocmd\@floatboxreset{\pltx at save@float at dir}{}{}
+\patchcmd\@endfloatbox{\outer at nobreak}{\outer at nobreak\pltx at check@float at dir}{}{}
+\def\pltx at save@float at dir{%
+  \edef\pltx at float@dir at first{\ltjgetparameter{direction}}}
+\def\pltx at check@float at dir{%
+  \ifx\pltx at float@dir at first\@undefined\else
+    \ifnum\ltjgetparameter{direction}=\pltx at float@dir at first\else
+      \pltx at err@float at dir
+    \fi
+  \fi}
+\def\pltx at err@float at dir{%
+  \@latex at error{Direction change inside float!?\MessageBreak
+    Use \noexpand\layoutcaption provided in \string\usepackage{lltjext}}\@ehc}
+%%% Remove extra xkanjiskip
+\begingroup
+\@ifpackageloaded{hyperref}
+  {\ifdefined\real at setref\def\ltj at setrefprefix{real}\else\def\ltj at setrefprefix{}\fi}
+  {\def\ltj at setrefprefix{}}
+\expandafter\gdef\csname \ltj at setrefprefix @setref\endcsname#1#2#3{%
+  \ifx#1\relax
+    \protect\G at refundefinedtrue
+    \nfss at text{\reset at font\bfseries ??}%
+    \@latex at warning{Reference `#3' on page \thepage \space
+              undefined}%
+  \else
+    \expandafter#2#1\@empty\@empty\@empty\protect\@setref@{}% change \null to \protect\@setref@{}
+  \fi}
+\gdef\@setref@{\ifhmode\spacefactor\@m\fi}
+\endgroup
+\if at compatibility\else
+\def\verb{\relax\ifmmode\hbox\else\leavevmode\vadjust{}\fi
+  \bgroup
+    \verb at eol@error \let\do\@makeother \dospecials
+    \verbatim at font\@noligs
+    \language\l at nohyphenation
+    \@ifstar\@sverb\@verb}
+\fi
+\patchcmd{\do at noligs}{\kern\z@}{\vadjust{}}{}{} % reported by p_typo
+\gdef\@stopfield{%
+  \inhibitglue\@tempskipa\lastskip\unskip
+  \hskip\@tempskipa\color at endgroup\egroup}
+%%%%%% footnote
+\renewcommand\@makefnmark{%
+  \unless\ifnum\ltjgetparameter{direction}=3
+    \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}%
+  \else\hbox{\yoko \@textsuperscript{\normalfont\@thefnmark}}\fi}
+\pretocmd{\footnote}{\inhibitglue}{}{}
+\pretocmd{\footnotemark}{\inhibitglue}{}{}
+\def\@ltj at process@makefnmark#1{%
+  \unless\ifnum\ltjgetparameter{direction}=3 #1%
+  \else\hbox to\z@{\hskip-.25\zw\raise.9\zh#1\hss}\fi%
+}%
+\ifdefined\@kernel at process@makefnmark %% 2022-06-01 latex-lab?
+  \let\ltj at orig@kernel at process@makefnmark=\@kernel at process@makefnmark
+  \def\@kernel at process@makefnmark#1{\ltj at orig@kernel at process@makefnmark{\@ltj at process@makefnmark#1}}
+\else
+  \patchcmd{\@footnotemark}{\@makefnmark}{\@ltj at process@makefnmark\@makefnmark}{}{}
+\fi
+\long\def\@iiiparbox#1#2[#3]#4#5{%
+  \leavevmode
+  \@pboxswfalse
+  \setlength\@tempdima{#4}%
+  \@begin at tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
+    \ifx\relax#2\else
+      \setlength\@tempdimb{#2}%
+      \edef\@parboxto{to\the\@tempdimb}%
+    \fi
+    \if#1b\vbox
+    \else\if #1t\vtop
+    \else\ifmmode\vcenter
+    \else\@pboxswtrue\null$\vcenter% !!!
+    \fi\fi\fi
+    \@parboxto{\let\hss\vss\let\unhbox\unvbox
+       \csname bm@#3\endcsname}%
+    \if at pboxsw \m at th$\null\fi% !!!
+  \@end at tempboxa}
+\DeclareRobustCommand\underline[1]{%
+  \relax
+  \ifmmode\@@underline{#1}%
+  \else \leavevmode\null$\@@underline{\hbox{#1}}\m at th$\null\relax\fi}
+
+\patchcmd\@finalstrut{\nobreak}{\nobreak\ltjfakeboxbdd}{}{}
+
+\newif\iffnfixbottom
+\newif\ifltj at ftn@unvboxed
+%%% @makecol
+\def\pltx at adjust@wd at outputbox{%
+  \unless\ifnum\ltjgetparameter{direction}=4
+    \vbox{\primitive\everypar{}\hskip\z@}%
+   \fi}
+\patchcmd\@makecol{\vskip -\dimen@\@textbottom}%
+  {\pltx at adjust@wd at outputbox
+   \vskip -\dimen@
+   \ifltj at ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
+\patchcmd\@makecol{\vskip\skip\footins}{\iffnfixbottom\vskip\z@\@plus.0001fil\fi\vskip\skip\footins}{}{}
+\patchcmd\@makecol{\ifvoid\footins}{\ifvoid\footins\ltj at ftn@unvboxedfalse}{}{}
+\patchcmd\@makecol{\setbox\@outputbox \vbox}{\ltj at ftn@unvboxedtrue\setbox\@outputbox \vbox}{}{}
+\let\ltj at orig@makecol=\@makecol
+
+\patchcmd\@makespecialcolbox{\@textbottom}{\ifltj at ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
+
+\def\@gnewline #1{%
+  \ifvmode
+    \@nolnerr
+  \else
+    \unskip \reserved at e {\reserved at f#1}\nobreak \hfil \break \null
+    % \null は \break の効果が行頭禁則文字で打ち消されないために必要
+  \ignorespaces
+\fi}
+
+
+%%%%%% tabular (platex/#43) \@tabclassz
+\def\ltj at sharp{\relax\pltx at next@inhibitglue\ltjfakeboxbdd\ignorespaces\@sharp\unskip\ltjfakeboxbdd}
+\def\@tabclassz{%
+  \ifcase\@lastchclass
+    \@acolampacol
+  \or
+    \@ampacol
+  \or
+  \or
+  \or
+    \@addamp
+  \or
+    \@acolampacol
+  \or
+    \@firstampfalse\@acol
+  \fi
+  \edef\@preamble{%
+    \@preamble{%
+      \ifcase\@chnum
+        \hfil\hskip1sp\ltj at sharp\hfil
+      \or
+        \hskip1sp\ltj at sharp\hfil
+      \or
+        \hfil\hskip1sp\ltj at sharp
+      \fi}}}
+\patchcmd\@classv{%
+   \ignorespaces\@sharp
+}{%
+   \everypar\expandafter{\the\everypar\ltjfakeboxbdd}\ignorespaces\@sharp\unskip
+}{}{}
+\patchcmd{\@tabular}{\leavevmode}{\leavevmode\null}{}{}
+\apptocmd{\endtabular}{\null}{}{}
+\expandafter \let \csname endtabular*\endcsname = \endtabular
+
+%%%%%% tabbing (platex/#53)
+\patchcmd\@startline{\strut}{\strut\inhibitglue}{}{}
+\def\ltj at unhbox@curfield{\ltjfakeboxbdd\unhbox\@curfield\ltjfakeboxbdd}
+%\patchcmd\@contfield{\unhbox\@curfield}{\ltj at unhbox@curfield}{}{}
+\patchcmd\@addfield{\unhbox\@curfield}{\ltj at unhbox@curfield}{}{}
+
+\def\mathsm at sh#1#2{%
+  \setbox\z@\hbox{\ltj at yablshift0$\m at th#1{#2}$}%
+  {}\finsm at sh}
+
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore-241201.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -3,7 +3,8 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjcore}[2025-01-12 Patch to LaTeX2e Kernel for LuaTeX-ja]
+\ProvidesPackage{lltjcore}[2025-04-01
+  Patch to LaTeX2e Kernel for LuaTeX-ja (for LaTeX2e >=2025-06-01)]
 \RequirePackage{etoolbox}
 
 %%% expl3
@@ -77,6 +78,7 @@
        \primitive\everypar{}\hskip\z@\fi
   }}{}{}
 
+%%%%%% tombow
 \newif\iftombow \tombowfalse
 \newif\iftombowdate \tombowdatetrue
 \newdimen\@tombowwidth
@@ -171,14 +173,21 @@
 \newdimen\@@paperheight
 \newdimen\@@paperwidth
 \newdimen\@@topmargin % not used by LuaTeX-ja; only to avoid existing codes
-\patchcmd\@outputpage{\begingroup\let\protect\noexpand}{% tate direction
-\begingroup
+
+%%%%%% output routine
+\AddToHook{build/page/reset}[lltjcore]{%
   \ifnum\ltjgetparameter{direction}=4\else
     \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@
+    \let\@themargin\evensidemargin
+    \let\evensidemargin\oddsidemargin
+    \let\oddsidemargin\@themargin
   \fi
-  \directlua{luatexja.lineskip.setting_backup()}
-  \let \protect \noexpand
-}{}{}
+  \directlua{luatexja.lineskip.setting_backup()}%
+}
+\AddToHook{build/page/after}[lltjcore]{%
+  \directlua{luatexja.lineskip.setting_restore()}%
+}
+
 \patchcmd\@outputpage{% supply \yoko
     \set at typeset@protect
     \aftergroup \endgroup
@@ -186,25 +195,32 @@
     \yoko \set at typeset@protect
     \aftergroup \endgroup
 }{}{}
-\patchcmd\@outputpage{\let\@thefoot\@oddfoot\let\@themargin\oddsidemargin}{% tate direction
-  \let\@thefoot\@oddfoot
-  \ifnum\ltjgetparameter{direction}=3 \let\@themargin\evensidemargin
-  \else\let\@themargin\oddsidemargin\fi
-}{}{}
-\patchcmd\@outputpage{\let\@thefoot\@evenfoot\let\@themargin\evensidemargin}{% tate direction
-  \let\@thefoot\@evenfoot
-  \ifnum\ltjgetparameter{direction}=3 \let\@themargin\oddsidemargin
-  \else\let\@themargin\evensidemargin\fi
-}{}{}
 
-% 将来は shipout hook で書き直したい
+\NewSocketPlug {build/column/outputbox}{floats-footnotes-platex} {%
+  \@outputbox at reinsertbskip
+  \@outputbox at attachfloats
+  \@if at footnotes@TF
+    {\@outputbox at append{\@textbottom}\let\@textbottom\relax}%
+    {}%
+  \@outputbox at appendfootnotes
+}
+
+\newif\iffnfixbottom % only for old codes
+
+% \@make at normalcolbox
+\def\pltx at adjust@wd at outputbox{%
+  \unless\ifnum\ltjgetparameter{direction}=4
+    \vbox{\primitive\everypar{}\hskip\z@}%
+   \fi}
+\patchcmd{\@make at normalcolbox}{\vskip -\@outputbox at depth\@textbottom}%
+  {\pltx at adjust@wd at outputbox\vskip -\@outputbox at depth\@textbottom}{}{}%
+
+% トンボ対応用.将来は shipout hook で書き直したい
 \patchcmd\@outputpage{\vskip\topmargin}{\vskip\topmargin\iftombow\vskip1in\fi}{}{}
 \patchcmd\@outputpage{\reset at font}{\@tombowreset@@paper\reset at font}{}{}
 \patchcmd\@outputpage{\@begindvi}{\@begindvi\@outputtombow}{}{}
-\patchcmd\@outputpage{\stepcounter{page}}%
-  {\stepcounter{page}\directlua{luatexja.lineskip.setting_restore()}}{}{}
 
-%
+%%%%%% direction of floats
 \pretocmd\@floatboxreset{\pltx at save@float at dir}{}{}
 \patchcmd\@endfloatbox{\outer at nobreak}{\outer at nobreak\pltx at check@float at dir}{}{}
 \def\pltx at save@float at dir{%
@@ -218,7 +234,8 @@
 \def\pltx at err@float at dir{%
   \@latex at error{Direction change inside float!?\MessageBreak
     Use \noexpand\layoutcaption provided in \string\usepackage{lltjext}}\@ehc}
-%%% Remove extra xkanjiskip
+
+%%%%%% Remove extra xkanjiskip
 \begingroup
 \@ifpackageloaded{hyperref}
   {\ifdefined\real at setref\def\ltj at setrefprefix{real}\else\def\ltj at setrefprefix{}\fi}
@@ -230,7 +247,7 @@
     \@latex at warning{Reference `#3' on page \thepage \space
               undefined}%
   \else
-    \expandafter#2#1\protect\@setref@{}% change \null to \protect\@setref@{}
+    \expandafter#2#1\@empty\@empty\@empty\protect\@setref@{}% change \null to \protect\@setref@{}
   \fi}
 \gdef\@setref@{\ifhmode\spacefactor\@m\fi}
 \endgroup
@@ -246,6 +263,7 @@
 \gdef\@stopfield{%
   \inhibitglue\@tempskipa\lastskip\unskip
   \hskip\@tempskipa\color at endgroup\egroup}
+
 %%%%%% footnote
 \renewcommand\@makefnmark{%
   \unless\ifnum\ltjgetparameter{direction}=3
@@ -257,12 +275,8 @@
   \unless\ifnum\ltjgetparameter{direction}=3 #1%
   \else\hbox to\z@{\hskip-.25\zw\raise.9\zh#1\hss}\fi%
 }%
-\ifdefined\@kernel at process@makefnmark %% 2022-06-01 latex-lab?
-  \let\ltj at orig@kernel at process@makefnmark=\@kernel at process@makefnmark
-  \def\@kernel at process@makefnmark#1{\ltj at orig@kernel at process@makefnmark{\@ltj at process@makefnmark#1}}
-\else
-  \patchcmd{\@footnotemark}{\@makefnmark}{\@ltj at process@makefnmark\@makefnmark}{}{}
-\fi
+\let\ltj at orig@kernel at process@makefnmark=\@kernel at process@makefnmark
+\def\@kernel at process@makefnmark#1{\ltj at orig@kernel at process@makefnmark{\@ltj at process@makefnmark#1}}
 \long\def\@iiiparbox#1#2[#3]#4#5{%
   \leavevmode
   \@pboxswfalse
@@ -286,24 +300,8 @@
   \ifmmode\@@underline{#1}%
   \else \leavevmode\null$\@@underline{\hbox{#1}}\m at th$\null\relax\fi}
 
-\newif\iffnfixbottom
-\newif\ifltj at ftn@unvboxed
-%%% @makecol
-\def\pltx at adjust@wd at outputbox{%
-  \unless\ifnum\ltjgetparameter{direction}=4
-    \vbox{\primitive\everypar{}\hskip\z@}%
-   \fi}
-\patchcmd\@makecol{\vskip -\dimen@\@textbottom}%
-  {\pltx at adjust@wd at outputbox
-   \vskip -\dimen@
-   \ifltj at ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
-\patchcmd\@makecol{\vskip\skip\footins}{\iffnfixbottom\vskip\z@\@plus.0001fil\fi\vskip\skip\footins}{}{}
-\patchcmd\@makecol{\ifvoid\footins}{\ifvoid\footins\ltj at ftn@unvboxedfalse}{}{}
-\patchcmd\@makecol{\setbox\@outputbox \vbox}{\ltj at ftn@unvboxedtrue\setbox\@outputbox \vbox}{}{}
-\let\ltj at orig@makecol=\@makecol
+\patchcmd\@finalstrut{\nobreak}{\nobreak\ltjfakeboxbdd}{}{}
 
-\patchcmd\@makespecialcolbox{\@textbottom}{\ifltj at ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
-
 \def\@gnewline #1{%
   \ifvmode
     \@nolnerr
@@ -313,7 +311,6 @@
   \ignorespaces
 \fi}
 
-
 %%%%%% tabular (platex/#43) \@tabclassz
 \def\ltj at sharp{\relax\pltx at next@inhibitglue\ltjfakeboxbdd\ignorespaces\@sharp\unskip\ltjfakeboxbdd}
 \def\@tabclassz{%
@@ -354,7 +351,6 @@
 %\patchcmd\@contfield{\unhbox\@curfield}{\ltj at unhbox@curfield}{}{}
 \patchcmd\@addfield{\unhbox\@curfield}{\ltj at unhbox@curfield}{}{}
 
-%\def\m at th{\mathsurround\z@\ltj at yablshift0 }
 \def\mathsm at sh#1#2{%
   \setbox\z@\hbox{\ltj at yablshift0$\m at th#1{#2}$}%
   {}\finsm at sh}

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -6,4 +6,4 @@
 \ProvidesPackage{lltjp-footmisc}[2024-07-22 Patch to footmisc for LuaTeX-ja]
 
 \patchcmd{\@makenormalcolbox}{\vskip -\@outputbox at depth\@textbottom}%
-  {\pltx at adjust@wd at outputbox\vskip -\@outputbox at depth\@textbottom}{}{}%
+  {\pltx at adjust@wd at outputbox\vskip -\@outputbox at depth\@textbottom}{}{}%
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -1,5 +1,5 @@
 %
-% lltjp-listings.sty 2022-05-22
+% lltjp-listings.sty 2025-04-01
 %
 
 \NeedsTeXFormat{LaTeX2e}
@@ -130,11 +130,30 @@
   \fi
   \lst at Append#1}
 
+%
+\def\ltj at lst@Append at ivs#1{%
+% \lst at token: ABC...DE ==> ABC...D{E#1}
+  \@temptokena{}\def\@@tempa{}%
+  \expandafter\ltj at lst@Append at ivs@\the\lst at token\@empty\@empty
+  \lst at token\@temptokena%
+  \edef\@@tempa{{\@@tempa#1}}%
+  \lst at token\expandafter\expandafter\expandafter\expandafter%
+  \expandafter\expandafter\expandafter{\expandafter\expandafter%
+  \expandafter\the\expandafter\lst at token\@@tempa}%
+}
+\def\ltj at lst@Append at ivs@#1#2{%
+  \@temptokena\expandafter\expandafter\expandafter\expandafter%
+  \expandafter\expandafter\expandafter{\expandafter\expandafter%
+  \expandafter\the\expandafter\@temptokena\@@tempa}\def\@@tempa{#1}%
+  \ifx#2\@empty\else
+  \expandafter\expandafter\expandafter\ltj at lst@Append at ivs@\expandafter#2\fi
+}
+
 % 漢字用異体字セレクタ命令
 \def\ltj at lst@ProcessIVS#1{%
   \lst at whitespacefalse
   \if at ltj@lst at vsraw
-    \lst at Append#1\advance\lst at length\m at ne
+    \ltj at lst@Append at ivs#1%
   \else
     \lst at TrackNewLines\lst at OutputLostSpace \lst at PrintToken
     \setbox\@tempboxa\hbox to 2\lst at width{\hss
@@ -149,7 +168,7 @@
 \def\ltj at lst@ProcessVS#1{%
   \lst at whitespacefalse
   \if at ltj@lst at vsraw
-    \lst at Append#1\advance\lst at length\m at ne
+    \ltj at lst@Append at ivs#1%
   \else
     \lst at TrackNewLines\lst at OutputLostSpace \lst at PrintToken
     \setbox\@tempboxa\hbox to 2\lst at width{\hss
@@ -206,7 +225,7 @@
   \expandafter\expandafter\expandafter\lst at InsideConvert%
   \expandafter{\the\@temptokena}\lst at arg\lst at DeInit\egroup}
 \def\ltj at lstinline@#1{%
-  \edef\ltj at lst@temp{\the\catcode`#1}
+  \edef\ltj at lst@temp{\the\catcode`#1}%
   \lst at Init\relax\catcode`#1\ltj at lst@temp
   \ifnum\ltj at lst@temp=\active
     \begingroup\lccode`\~=`#1\relax

Modified: trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty	2025-04-02 23:42:04 UTC (rev 74836)
+++ trunk/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty	2025-04-03 19:49:58 UTC (rev 74837)
@@ -1,5 +1,5 @@
 %
-% lltjp-stfloats.sty 2021-03-25
+% lltjp-stfloats.sty 2025-03-28
 %
 
 \NeedsTeXFormat{LaTeX2e}
@@ -7,21 +7,43 @@
 \RequirePackage{stfloats}
 \RequirePackage{etoolbox}
 
-\newif\ifltj at stfloats@fnbelowfloat
 \let\ltj at fn@makecol=\fn at makecol
-\ifx\@makecol\ltj at fn@makecol\ltj at stfloats@fnbelowfloattrue\fi % \fnbelowfloat 発行済
+\ifx\@makecol\ltj at fn@makecol\@tempswatrue\fi % \fnbelowfloat 発行済
 \let\ltj at fn@makecol=\relax
 \global\let\org at makecol\ltj at orig@makecol
 
-\patchcmd\fn at makecol{\vskip -\dimen@\@textbottom}%
-  {\pltx at adjust@wd at outputbox
-   \vskip -\dimen@
-   \ifltj at ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
-\patchcmd\fn at makecol{\vskip\skip\footins}{\iffnfixbottom\vskip\z@\@plus.0001fil\fi\vskip\skip\footins}{}{}
-\patchcmd\fn at makecol{\ifvoid\footins}{\ifvoid\footins\ltj at ftn@unvboxedfalse}{}{}
-\patchcmd\fn at makecol{\setbox\@outputbox \vbox}{\ltj at ftn@unvboxedtrue\setbox\@outputbox \vbox}{}{}
+%%%%%% <= LaTeX2e 2024-12-01
+\def\ltj at stfloats@patch at old@ltx{%
+  \patchcmd\fn at makecol{\vskip -\dimen@\@textbottom}%
+    {\pltx at adjust@wd at outputbox
+     \vskip -\dimen@
+     \ifltj at ftn@unvboxed\iffnfixbottom\else\@textbottom\fi\else\@textbottom\fi}{}{}
+  \patchcmd\fn at makecol{\vskip\skip\footins}{\iffnfixbottom\vskip\z@\@plus.0001fil\fi\vskip\skip\footins}{}{}
+  \patchcmd\fn at makecol{\ifvoid\footins}{\ifvoid\footins\ltj at ftn@unvboxedfalse}{}{}
+  \patchcmd\fn at makecol{\setbox\@outputbox \vbox}{\ltj at ftn@unvboxedtrue\setbox\@outputbox \vbox}{}{}
+  \if at tempswa
+    \global\let\@makecol\fn at makecol
+  \fi
+  \let\ltj at stfloats@patch at old@ltx\undefined
+  \endinput
+}
 
-\ifltj at stfloats@fnbelowfloat
-  \global\let\@makecol\fn at makecol
-\fi
+\@ifl at t@r\fmtversion{2025-06-01}{}{\ltj at stfloats@patch at old@ltx}
+%%%%%% >= LaTeX2e 2025-06-01
+\def\fnbelowfloat{%
+  \iffnfixbottom
+    \AssignSocketPlug{build/column/outputbox}{space-floats-footnotes}%
+  \else
+    \AssignSocketPlug {build/column/outputbox}{floats-footnotes}%
+  \fi
+}
+\def\fnunderfloat{%
+  \iffnfixbottom
+    \AssignSocketPlug {build/column/outputbox}{space-footnotes-floats}%
+  \else
+    \AssignSocketPlug {build/column/outputbox}{footnotes-floats}%
+  \fi
+}
+\if at tempswa\fnbelowfloat\fi
+
 \endinput



More information about the tex-live-commits mailing list.