texlive[60225] Master/texmf-dist: jlreq (12aug21)

commits+karl at tug.org commits+karl at tug.org
Thu Aug 12 22:32:00 CEST 2021


Revision: 60225
          http://tug.org/svn/texlive?view=revision&revision=60225
Author:   karl
Date:     2021-08-12 22:31:59 +0200 (Thu, 12 Aug 2021)
Log Message:
-----------
jlreq (12aug21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/jlreq/README-ja.md
    trunk/Master/texmf-dist/doc/latex/jlreq/README.md
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.pdf
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html
    trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.pdf
    trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
    trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
    trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/README-ja.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/README-ja.md	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/README-ja.md	2021-08-12 20:31:59 UTC (rev 60225)
@@ -19,7 +19,7 @@
 ## 動作環境
 pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内部で読み込みます.
 
-* (常時):l3keys2e,etoolbox,lmodern
+* (常時):l3keys2e,lmodern
 * (LuaLaTeX非利用時):everyhook
 * (LuaLaTeX利用時):luatexja,luatexja-adjust
 
@@ -518,6 +518,9 @@
     - バグ修正
 * 2021-07-30
     - バグ修正
+* 2021-08-12
+    - `etoolbox`への直接の依存をなくした.
+    - バグ修正
 
 
 --------------

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/README.md	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/README.md	2021-08-12 20:31:59 UTC (rev 60225)
@@ -152,7 +152,8 @@
 * 2021-07-25
     - Load `ifthen` again. (Only for Re:VIEW, will be removed in future.)
     - Fixed bugs.
-* 2021-07-30
+* 2021-08-12
+    - Removed the direct dependence on `etoolbox` package.
     - Fixed a bug.
 
 

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html	2021-08-12 20:31:59 UTC (rev 60225)
@@ -103,7 +103,7 @@
 <h2 id="動作環境">動作環境</h2>
 <p>pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内部で読み込みます.</p>
 <ul>
-<li>(常時):l3keys2e,etoolbox,lmodern</li>
+<li>(常時):l3keys2e,lmodern</li>
 <li>(LuaLaTeX非利用時):everyhook</li>
 <li>(LuaLaTeX利用時):luatexja,luatexja-adjust</li>
 </ul>
@@ -624,6 +624,11 @@
 <ul>
 <li>バグ修正</li>
 </ul></li>
+<li>2021-08-12
+<ul>
+<li><code>etoolbox</code>への直接の依存をなくした.</li>
+<li>バグ修正</li>
+</ul></li>
 </ul>
 <hr />
 <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq">https://github.com/abenori/jlreq</a></p>

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

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html	2021-08-12 20:31:59 UTC (rev 60225)
@@ -240,6 +240,10 @@
 <ul>
 <li>expl3コードとの親和性を高めた.</li>
 </ul></li>
+<li>2021-08-12
+<ul>
+<li><code>etoolbox</code>に依存しないようにした.</li>
+</ul></li>
 </ul>
 <hr />
 <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq">https://github.com/abenori/jlreq</a></p>

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md	2021-08-12 20:31:59 UTC (rev 60225)
@@ -163,6 +163,8 @@
     - `\jlreqtrimmarkssetup`の`banner_font`が指定された場合,`\@bannerfont`を無視するようにした.
 * 2021-07-22
     - expl3コードとの親和性を高めた.
+* 2021-08-12
+    - `etoolbox`に依存しないようにした.
 
 
 --------------

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html	2021-08-12 20:31:59 UTC (rev 60225)
@@ -223,8 +223,6 @@
 <li>Extended <code>banner</code> in <code>\jlreqtrimmarkssetup</code>.</li>
 <li>Extended <code>bleed_margin</code>.</li>
 </ul></li>
-</ul>
-<ul>
 <li>2020-05-01
 <ul>
 <li><code>jlreq-trimmarks</code> outputs the contents in <code>\@bannertoken</code> when <code>banner</code> in <code>\jlreqtrimmarkssetup</code> is not used.</li>
@@ -231,12 +229,14 @@
 <li><code>\@bannertoken</code> is ignored when <code>banner</code> in <code>\jlreqtrimmarkssetup</code> is used.</li>
 <li><code>\@bannerfont</code> is ignored when <code>banner_font</code> in <code>\jlreqtrimmarkssetup</code> is used.</li>
 </ul></li>
-</ul>
-<ul>
 <li>2021-07-22
 <ul>
 <li>It has more compatibility with expl3.</li>
 </ul></li>
+<li>2021-08-12
+<ul>
+<li>Removed dependence on <code>etoolbox</code> package.</li>
+</ul></li>
 </ul>
 <hr />
 <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq">https://github.com/abenori/jlreq</a></p>

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md	2021-08-12 20:31:59 UTC (rev 60225)
@@ -151,12 +151,14 @@
 * 2019-04-01
     - Extended `banner` in `\jlreqtrimmarkssetup`.
     - Extended `bleed_margin`.
-- 2020-05-01
+* 2020-05-01
     - `jlreq-trimmarks` outputs the contents in `\@bannertoken` when `banner` in `\jlreqtrimmarkssetup` is not used.
     - `\@bannertoken` is ignored when `banner` in `\jlreqtrimmarkssetup` is used.
     - `\@bannerfont` is ignored when `banner_font` in `\jlreqtrimmarkssetup` is used.
 * 2021-07-22
     - It has more compatibility with expl3.
+* 2021-08-12
+    - Removed dependence on `etoolbox` package.
 
 
 --------------

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html	2021-08-12 20:31:59 UTC (rev 60225)
@@ -270,8 +270,9 @@
 <li>Load <code>ifthen</code> again. (Only for Re:VIEW, will be removed in future.)</li>
 <li>Fixed bugs.</li>
 </ul></li>
-<li>2021-07-30
+<li>2021-08-12
 <ul>
+<li>Removed the direct dependence on <code>etoolbox</code> package.</li>
 <li>Fixed a bug.</li>
 </ul></li>
 </ul>

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty	2021-08-12 20:31:59 UTC (rev 60225)
@@ -1,9 +1,9 @@
 % エンジン非依存のマクロ集
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-helpers}[2021/07/22 jlreq-helpers]
-\RequirePackage{etoolbox}
+\ProvidesPackage{jlreq-helpers}[2021/08/12 jlreq-helpers]
 
+\ExplSyntaxOn
 %. helper1
 \newcount\jlreq at tempcnta
 \newcount\jlreq at tempcntb
@@ -32,9 +32,9 @@
 \long\def\jlreq at deleteuntileendmark#1\jlreq at endmark{}
 
 \def\jlreq at expandafter@ii{\expandafter\expandafter\expandafter}
-\edef\jlreq at expandafter@iii{\expandonce{\jlreq at expandafter@ii}\noexpand\expandafter\expandonce{\jlreq at expandafter@ii}}
-\edef\jlreq at expandtwice#1{\expandonce{\jlreq at expandafter@ii}\noexpand\unexpanded\expandonce{\jlreq at expandafter@ii}{#1}}
-\edef\jlreq at expand@three#1{\expandonce{\jlreq at expandafter@iii}\noexpand\unexpanded\expandonce{\jlreq at expandafter@iii}{#1}}
+\edef\jlreq at expandafter@iii{\exp_not:o {\jlreq at expandafter@ii}\noexpand\expandafter\exp_not:o {\jlreq at expandafter@ii}}
+\edef\jlreq at expandtwice#1{\exp_not:o {\jlreq at expandafter@ii}\noexpand\unexpanded\exp_not:o {\jlreq at expandafter@ii}{#1}}
+\edef\jlreq at expand@three#1{\exp_not:o {\jlreq at expandafter@iii}\noexpand\unexpanded\exp_not:o {\jlreq at expandafter@iii}{#1}}
 
 % \jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@の形で使う
 % 二回展開すると,#1の先頭(ただし空白は無視される)を取り出す.#1が空の場合は\jlreq at uniqtoken,先頭が{の場合は\bgroupとなる
@@ -46,8 +46,8 @@
 % #1の先頭トークンが#2か(ただし#1が空ならば#2=\jlreq at uniqtoken,#1={ならば#2=\bgroupでTRUEとなる)
 \long\edef\jlreq at iffirsttoken#1#2{%
   % スペースチェック
-  \unexpanded{\expandafter\expandafter\expandafter\jlreq at deleteuntileendmark\expandafter\ifx\expandafter}\expandonce{\space}\noexpand\detokenize{#1}\unexpanded{\@undefined\jlreq at endmark\expandafter\@firstoftwo\else\jlreq at endmark\expandafter\@secondoftwo\fi}{%
-    \noexpand\ifx\expandonce{\space}#2\unexpanded{\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}%
+  \unexpanded{\expandafter\expandafter\expandafter\jlreq at deleteuntileendmark\expandafter\ifx\expandafter}\exp_not:o {\space}\noexpand\detokenize{#1}\unexpanded{\@undefined\jlreq at endmark\expandafter\@firstoftwo\else\jlreq at endmark\expandafter\@secondoftwo\fi}{%
+    \noexpand\ifx\exp_not:o {\space}#2\unexpanded{\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}%
   }{%
     \noexpand\jlreq at iffirsttoken@ignorespaces{#1}{#2}%
   }%
@@ -69,7 +69,7 @@
 % #1の先頭が引数なしのマクロか
 \long\def\jlreq at ifmacro@noargument#1{%
   \jlreq at ifempty{#1}{\@secondoftwo}{%
-    \jlreq at iffirsttoken{#1}{ }{\@secondoftwo}{%
+    \jlreq at iffirsttoken{#1}{~}{\@secondoftwo}{%
       \expandafter\expandafter\expandafter\jlreq at ifmacro@noargument@\jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@
 }}}
 \long\def\jlreq at ifmacro@noargument@#1{\expandafter\jlreq at ifmacro@noargument@@\expandafter{\meaning #1}}
@@ -146,7 +146,7 @@
     \def\jlreq at tempb{}% 消していない分を放り込んでいく
     \jlreq at tempatrue% 最初の\jlreq at tempbへの追加か.
     \jlreq at helper@removeelement@#2,\jlreq at endmark,%
-    \edef\jlreq at do{\unexpanded{\def#3}{\expandonce{\jlreq at tempb}}}%
+    \edef\jlreq at do{\unexpanded{\def#3}{\exp_not:o {\jlreq at tempb}}}%
   \expandafter\endgroup
   \jlreq at do
 }
@@ -154,7 +154,7 @@
   \jlreq at ifendmark{#1}{}{%
     \edef\@tempa{\unexpanded{#1}}%
     \ifx\jlreq at tempa\@tempa\expandafter\@gobble\else\expandafter\@firstofone\fi{%
-      \eappto\jlreq at tempb{\ifjlreq at tempa\else,\fi\unexpanded{#1}}%
+      \tl_put_right:Nx \jlreq at tempb{\ifjlreq at tempa\else,\fi\unexpanded{#1}}%
       \jlreq at tempafalse
     }%
     \jlreq at helper@removeelement@
@@ -174,6 +174,7 @@
 }
 % 空白を無視しない\@ifsart
 \newcommand*{\jlreq at ifstar}[2]{\jlreq at ifnextchar *{\edef\reserved at a*{\unexpanded{#1}}\reserved at a}{#2}}
+
 % カンマで区切って,その前と後ろを\jlreq at resulta,\jlreq at resultbに入れる
 % もしカンマがない場合は\ifjlreq at resultがfalseになる.
 \newcommand*{\jlreq at helper@dividebycomma}[1]{\jlreq at helper@dividebycomma@#1,\jlreq at endmark}
@@ -203,61 +204,6 @@
   \fi
 }
 
-% 簡易なkeyvalのパース.
-% \jlreq at parsekeyval*[family=jlreq at key]{ % *ありは\setkeys*を使う
-%  {key}{\def\val{#1}}
-%  {key1,key2}{\def\val{#1}} % key1=valとkey2=valを受け付けるようになる
-%  *{key}{\def\val{#1}} % デフォルト値を空文字列にする
-%  {key}[choice1,choice2]{\def\valchoice{#1}}
-%}{parse対象}
-%\newcommand*{\jlreq at parsekeyval}{%
-%  \@ifstar{\jlreq at helper@parsekeyval@{*}}{\jlreq at helper@parsekeyval@{}}%
-%}
-%\def\jlreq at helper@parsekeyval@#1{%
-%  \@ifnextchar[{\jlreq at helper@parsekeyval@@{#1}}{\jlreq at helper@parsekeyval@@{#1}[jlreq at key]}%
-%}
-%\long\def\jlreq at helper@parsekeyval@@#1[#2]#3#4{%
-%  \begingroup
-%    \def\jlreq at do{}% \setkeysの結果処理がここに入れられる(よってループ内で利用不可)
-%    \jlreq at helper@parsekeyval@@@{#2}#3{\jlreq at endmark}%
-%    \setkeys#1{#2}{#4}%
-%  \expandafter\endgroup
-%  \jlreq at do
-%}
-%\def\jlreq at helper@parsekeyval@@@#1#2#{%
-%  \jlreq at iffirsttoken@ignorespaces{#2}{*}{%
-%    \jlreq at helper@parsekeyval@@@definekeywithdefault{#1}%
-%  }{%
-%    \jlreq at helper@parsekeyval@@@@{#1}%
-%  }%
-%}
-%\long\def\jlreq at helper@parsekeyval@@@@#1#2{%
-%  \jlreq at ifendmark{#2}{}{%
-%    \@ifnextchar[{\jlreq at helper@parsekeyval@@@choicekey{#1}{#2}}{\jlreq at helper@parsekeyval@@@definekey{#1}{#2}}%
-%  }%
-%}
-%\long\def\jlreq at helper@parsekeyval@@@choicekey#1#2[#3]#4{%
-%  \@for\@tempa:=#2\do{%
-%    \edef\jlreq at next{\unexpanded{\define at choicekey{#1}}{\expandonce{\@tempa}}}%
-%    \jlreq at next{#3}{\eappto\jlreq at do{\unexpanded{#4}}}%
-%  }%
-%  \jlreq at helper@parsekeyval@@@{#1}%
-%}
-%\long\def\jlreq at helper@parsekeyval@@@definekeywithdefault#1#2#3{%
-%  \@for\@tempa:=#2\do{%
-%    \edef\jlreq at next{\unexpanded{\define at key{#1}}{\expandonce{\@tempa}}}%
-%    \jlreq at next[]{\eappto\jlreq at do{\unexpanded{#3}}}%
-%  }%
-%  \jlreq at helper@parsekeyval@@@{#1}%
-%}
-%\long\def\jlreq at helper@parsekeyval@@@definekey#1#2#3{%
-%  \@for\@tempa:=#2\do{%
-%    \edef\jlreq at next{\unexpanded{\define at key{#1}}{\expandonce{\@tempa}}}%
-%    \jlreq at next{\eappto\jlreq at do{\unexpanded{#3}}}%
-%  }%
-%  \jlreq at helper@parsekeyval@@@{#1}%
-%}
-
 % キー指定しないkeyval(独自実装)
 % \jlreq at parsekeyval@nokey{<action>}{<parse対象>}
 % action内では#1=key, #2=val
@@ -292,15 +238,15 @@
   \jlreq at remove@spaceandbracket{#2}{\jlreq at tempa}%
   \jlreq at remove@spaceandbracket{#3}{\jlreq at tempb}%
   \ifx\jlreq at tempb\@empty\else
-    \edef\@tempa{\noexpand\jlreq at parsekeyval@nokey at iv{#1}{\expandonce{\jlreq at tempb}}{\expandonce{\jlreq at tempa}}}%
+    \edef\@tempa{\noexpand\jlreq at parsekeyval@nokey at iv{#1}{\exp_not:o {\jlreq at tempb}}{\exp_not:o {\jlreq at tempa}}}%
     \@tempa
   \fi
   \jlreq at parsekeyval@nokey at i@wuniq\jlreq at uniqtoken
 }
 \long\def\jlreq at parsekeyval@nokey at iv#1#2#3{%
-  \eappto\jlreq at do{%
+  \tl_put_right:Nx \jlreq at do{%
     \unexpanded{\let\ifjlreq at parsekeyval@nokey at novalue}\jlreq at ifempty{#1}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}%
-    \expandonce{\jlreq at parsekeyval@nokey at execute{#2}{#3}}%
+    \exp_not:o {\jlreq at parsekeyval@nokey at execute{#2}{#3}}%
   }%
 }
 \long\def\jlreq at parsekeyval@nokey at removeequal#1{\jlreq at parsekeyval@nokey at removeequal@\jlreq at uniqtoken#1\jlreq at endmark}
@@ -307,33 +253,12 @@
 \long\def\jlreq at parsekeyval@nokey at removeequal@#1=\jlreq at endmark{\expandafter\unexpanded\expandafter{\@gobble#1}}
 
 % #1の先頭のスペースを削除し,#2に入れる.
-\long\def\jlreq at helper@trim#1#2{\edef#2{\jlreq at helper@trim at i{#1}}}
-\def\jlreq at do#1{% #1 = " "として後で実行
-  \long\def\jlreq at helper@trim at i##1{%
-    \jlreq at iffirsttoken{##1}{#1}%
-      % 先頭スペースの除去.{}を外さないために\jlreq at uniqtokenを前後にいったん挟む.
-      {\jlreq at helper@trim at ii##1\jlreq at uniqtoken\jlreq at endmark}%
-      % 後方スペースの除去.先頭に\jlreq at uniqtokenを加えて{}が外れるのを防ぐ.
-      {\jlreq at helper@trim at iii\jlreq at uniqtoken##1\jlreq at uniqtoken#1\jlreq at uniqtoken\jlreq at endmark}%
-  }
-  \long\def\jlreq at helper@trim at ii#1##1\jlreq at endmark{%
-    \expandafter\expandafter\expandafter\jlreq at helper@trim at i\jlreq at helper@trim at vi\jlreq at uniqtoken##1\jlreq at endmark
-  }
-  \long\def\jlreq at helper@trim at iii##1#1\jlreq at uniqtoken##2\jlreq at endmark{%
-    \jlreq at ifempty{##2}%
-      {\expandafter\jlreq at helper@trim at iv\jlreq at helper@trim at v##1\jlreq at endmark}%
-      {\jlreq at helper@trim at iii##1\jlreq at uniqtoken#1\jlreq at uniqtoken\jlreq at endmark}%
-  }%
-  \long\def\jlreq at helper@trim at iv##1{\expandafter\unexpanded\expandafter{\@gobble ##1}}
-  \long\def\jlreq at helper@trim at v##1\jlreq at uniqtoken\jlreq at endmark{{##1}}
-  \long\def\jlreq at helper@trim at vi##1\jlreq at uniqtoken\jlreq at endmark{\expandafter{\@gobble ##1}}
-}
-\jlreq at do{ }
+\long\def\jlreq at helper@trim#1#2{\edef#2{\tl_trim_spaces:n{#1}}}
 
 \long\def\jlreq at remove@spaceandbracket#1#2{%
   \begingroup
     \jlreq at helper@trim{#1}{\jlreq at tempa}%
-    \edef\jlreq at do{\unexpanded{\jlreq at remove@spaceandbracket@{#2}}\expandonce{\jlreq at tempa}\noexpand\jlreq at endmark}%
+    \edef\jlreq at do{\unexpanded{\jlreq at remove@spaceandbracket@{#2}}\exp_not:o {\jlreq at tempa}\noexpand\jlreq at endmark}%
   \expandafter\endgroup
   \jlreq at do
 }
@@ -368,7 +293,7 @@
     \ifx\jlreq at do\@undefined
       \edef\jlreq at do{\unexpanded{\jlreq at ifnextchar[{\jlreq at helper@switch at executeoption{#2}}{}}}%
     \else
-      \appto\jlreq at do{\@ifnextchar[{\jlreq at helper@removeoption}{}}%
+      \tl_put_right:Nn \jlreq at do{\@ifnextchar[{\jlreq at helper@removeoption}{}}%
     \fi
   \expandafter\endgroup
   \jlreq at do
@@ -413,7 +338,7 @@
 
 % 先頭にあるマクロを展開しまくった結果の先頭を#2に入れる.
 \newcommand{\jlreq at getfirsttoken@expandmacros}[2]{%
-  \jlreq at iffirsttoken{#1}{ }{\def#2{ }}{%
+  \jlreq at iffirsttoken{#1}{~}{\def#2{~}}{%
     \jlreq at ifempty{#1}{\def#2{}}{%
       \jlreq at ifmacro@noargument{#1}{%
         \expandafter\jlreq at getfirsttoken@expandmacros\expandafter{#1}{#2}%
@@ -428,7 +353,7 @@
 \long\def\jlreq at helper@checktokenlist#1#2{%
   \jlreq at ifendmark{#2}{\@firstoftwo}%
   {%
-    \jlreq at if{\ifnum0#1{#2}>0 \fi}%
+    \jlreq at if{\ifnum0#1{#2}>0~\fi}%
       {\jlreq at helper@checktokenlist{#1}}%
       {\expandafter\@secondoftwo\jlreq at deleteuntileendmark}%
   }%
@@ -449,7 +374,6 @@
   \ifx\@tempa\@tempb\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
 }
 
-\ExplSyntaxOn
 \newcommand*{\jlreq at helper@guessengine}{%
   \token_if_primitive:NTF \directlua {
     \let\jlreq at result=l
@@ -462,20 +386,19 @@
     }
   }
 }
-\ExplSyntaxOff
 
 % #1を\@undefinedに,既に\@undefinedならば#2{#1}を呼ぶ
 \newcommand*{\jlreq at helper@undefcs}[2]{%
-  \ifundef{#1}{#2{#1}}{\undef{#1}}%
+  \@ifundefined{\expandafter\@gobble\string #1}{#2{#1}}{\cs_undefine:N #1}%
 }
 % \if版
 \newcommand*{\jlreq at helper@undefif}[2]{%
-  \ifundef{#1}{#2{#1}}{%
+  \@ifundefined{\expandafter\@gobble\string #1}{%
     \edef\@tempa{\expandafter\@gobble\string#1}%
     \edef\@tempa{\expandafter\@gobbletwo\@tempa}%
-    \undef{#1}%
-    \expandafter\undef\expandafter{\csname\@tempa true\endcsname}%
-    \expandafter\undef\expandafter{\csname\@tempa false\endcsname}%
+    \cs_undefine:N #1%
+    \cs_undefine:c {\@tempa true}
+    \cs_undefine:c {\@tempa false}
   }%
 }
 
@@ -538,11 +461,11 @@
     \jlreq at tempdimb=\dimexpr\jlreq at tempdima + 1pt\relax
     % \jlreq at tempdimaと\jlreq at tempdimbで挟んでいく二分法
     \jlreq at tempcnta=0 % 無限ループを避けるためのカウンタ
-    \loop\ifnum\numexpr\ifdim\dimexpr\jlreq at tempdimb - \jlreq at tempdima\relax>1sp 1\else0\fi*\ifnum\jlreq at tempcnta<100 1\else 0\fi\relax=1
+    \loop\ifnum\numexpr\ifdim\dimexpr\jlreq at tempdimb - \jlreq at tempdima\relax>1sp 1\else0\fi*\ifnum\jlreq at tempcnta<100~1\else 0\fi\relax=1
       \jlreq at tempdimc=\dimexpr(\jlreq at tempdima+\jlreq at tempdimb)/2\relax
       \ifdim\strip at pt\jlreq at tempdimc\@tempdimb>\@tempdima\jlreq at tempdimb=\jlreq at tempdimc
       \else\jlreq at tempdima=\jlreq at tempdimc\fi
-      \advance\jlreq at tempcnta by 1
+      \advance\jlreq at tempcnta by 1\relax
     \repeat
     \edef\jlreq at do{\noexpand\jlreq at resultdimen=\the\jlreq at tempdima\noexpand\relax}%
   \expandafter\endgroup
@@ -549,7 +472,6 @@
   \jlreq at do
 }
 
-\def\jlreq at for@noexpand#1:={\@for#1:=\@empty}
 
 \def\jlreq at helper@swap#1#2{%
   \let\jlreq at helper@swaptoken=#1%
@@ -563,6 +485,7 @@
   #2=\jlreq at helper@swaptoken\relax
   \let\jlreq at helper@swaptoken=\@undefined
 }
+\ExplSyntaxOff
 
 \endinput
 

Modified: trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty	2021-08-12 20:31:59 UTC (rev 60225)
@@ -1,28 +1,36 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-trimmarks}[2021/07/22 jlreq-trimmarks]
-\RequirePackage{l3keys2e,etoolbox}
+\ProvidesPackage{jlreq-trimmarks}[2021/08/12 jlreq-trimmarks]
+\RequirePackage{l3keys2e}
 \RequirePackage{jlreq-helpers}
 
 \ExplSyntaxOn
-
 % check \tombowdatetrue
 \ifx\tombowdatetrue\@undefined
   \PackageError{jlreq-trimmarks}{This~package~only~works~with~pLaTeX,~upLaTeX~or~LuaTeX-ja}{\@ehc}
 \fi
 
-\newcommand*{\jlreq at trimmarks@undeferr}[1]{\PackageError{jlreq-trimmarks}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}}
-\newcommand*{\jlreq at trimmarks@afterpkg at addtodeletecs}[1]{%
-  \appto\jlreq at trimmarks@afterpkg at deletecslist{\jlreq at helper@undefcs{#1}{\jlreq at trimmarks@undeferr}}%
+\cs_set:Nn \__jlreq_trimmarks_undeferr:n {\ClassError{jlreq-trimmarks}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}}
+% クラスファイル内でしか使わないマクロをクラスファイル終了時に未定義にする
+\seq_new:N \g__jlreq_trimmarks_afterpkg_deletecs_seq
+\seq_new:N \g__jlreq_trimmarks_afterpkg_deleteif_seq
+\cs_set:Nn \__jlreq_trimmarks_afterpkg_addtodeletecs:N {
+  \seq_gput_right:Nn \g__jlreq_trimmarks_afterpkg_deletecs_seq {#1}
 }
-\newcommand*{\jlreq at trimmarks@afterpkg at addtodeleteif}[1]{%
-  \appto\jlreq at trimmarks@afterpkg at deletecslist{\jlreq at helper@undefif{#1}{\jlreq at trimmarks@undeferr}}%
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_afterpkg_addtodeletecs:N
+\cs_set:Nn \__jlreq_trimmarks_afterpkg_addtodeleteif:N {
+  \seq_gput_right:Nn \g__jlreq_trimmarks_afterpkg_deleteif_seq {#1}
 }
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@afterpkg at addtodeletecs}
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@afterpkg at addtodeleteif}
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_afterpkg_addtodeleteif:N
 \AtEndOfPackage{%
-  \jlreq at trimmarks@afterpkg at deletecslist
-  \jlreq at helper@undefcs{\jlreq at trimmarks@afterpkg at deletecslist}{\jlreq at trimmarks@undeferr}%
-  \undef{\jlreq at trimmarks@undeferr}%
+  \seq_map_inline:Nn \g__jlreq_trimmarks_afterpkg_deletecs_seq {
+    \jlreq at helper@undefcs{#1}{\__jlreq_trimmarks_undeferr:n}
+  }
+  \seq_map_inline:Nn \g__jlreq_trimmarks_afterpkg_deleteif_seq {
+    \jlreq at helper@undefif{#1}{\__jlreq_trimmarks_undeferr:n}
+  }
+  \cs_undefine:N \g__jlreq_trimmarks_afterpkg_deletecs_seq
+  \cs_undefine:N \g__jlreq_trimmarks_afterpkg_deleteif_seq
+  \cs_undefine:N \__jlreq_trimmarks_undeferr:n
 }
 
 \@ifclassloaded{jlreq}{\let\ifjlreq at trimmarks@jlreqloaded=\@firstoftwo}{\let\ifjlreq at trimmarks@jlreqloaded=\@secondoftwo}
@@ -47,18 +55,18 @@
   \@ifnextchar[{\jlreq at trimmarks@addpapersize@{#1}}{\jlreq at trimmarks@addpapersize@@{#1}}
 }
 \def\jlreq at trimmarks@addpapersize@#1[#2]{%
-  \edef\@tempa{\unexpanded{\jlreq at trimmarks@addpapersize@@{#1}}\csexpandonce{jlreq at helper@papersizelist@#2}}%
+  \edef\@tempa{\unexpanded{\jlreq at trimmarks@addpapersize@@{#1}}\exp_not:v {jlreq at helper@papersizelist@#2}}%
   \@tempa
 }
 \newcommand*{\jlreq at trimmarks@addpapersize@@}[3]{%
   \clist_map_variable:nNn {#1} \@tempa {
-    \eappto\jlreq at trimmarks@switchpapersize{{\expandonce{\@tempa}}{\unexpanded{\def\jlreq at resulta{#2}\def\jlreq at resultb{#3}}}}%
+    \tl_put_right:Nx \jlreq at trimmarks@switchpapersize {{\exp_not:o {\@tempa}}{\unexpanded{\def\jlreq at resulta{#2}\def\jlreq at resultb{#3}}}}%
   }%
 }
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@switchpapersize}
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@addpapersize}
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@addpapersize@}
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@addpapersize@@}
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@switchpapersize
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@addpapersize
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@addpapersize@
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@addpapersize@@
 
 \jlreq at trimmarks@addpapersize{a0,A0}[a0]
 \jlreq at trimmarks@addpapersize{a1,A1}[a1]
@@ -103,7 +111,7 @@
 % width -> \jlreq at resulta, height -> \jlreq at resultb
 \edef\jlreq at trimmarks@analyzepapersize#1{
   \noexpand\jlreq at switch{#1}{
-    \expandonce{\jlreq at trimmarks@switchpapersize}%
+    \exp_not:o {\jlreq at trimmarks@switchpapersize}%
     {%
       \noexpand\jlreq at helper@dividebycomma{#1}%
       \unexpanded{\ifjlreq at result\else}%
@@ -113,10 +121,10 @@
     }%
   }\noexpand\relax
 }
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@analyzepapersize}
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@analyzepapersize
 
 \keys_define:nn { jlreq-trimmarks } { trimmarks_paper .tl_set:N = \jlreq at trimmarks@option at papersize }
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@option at papersize}
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@option at papersize
 
 \newif\ifjlreq at trimmarks@digital \jlreq at trimmarks@digitaltrue
 \newif\ifjlreq at trimmarks@show \jlreq at trimmarks@showtrue
@@ -153,7 +161,7 @@
         \ifjlreq at parsekeyval@nokey at novalue{%
           \clist_map_variable:nNn { top,bottom,gutter,fore-edge } \jlreq at tempa {
           \epreto\jlreq at do{%
-              \noexpand\def\expandonce{\csname jlreq at trimmarks@bleed@\jlreq at tempa\endcsname}{##1}%
+              \noexpand\def\exp_not:o {\csname jlreq at trimmarks@bleed@\jlreq at tempa\endcsname}{##1}%
             }%
           }%
         }{%
@@ -161,8 +169,8 @@
             \str_if_eq_p:nn {##1} {top} || \str_if_eq_p:nn {##1} {bottom} ||
             \str_if_eq_p:nn {##1} {gutter} || \str_if_eq_p:nn {##1} {fore-edge}
           }{
-            \eappto\jlreq at do{%
-              \noexpand\def\expandonce{\csname jlreq at trimmarks@bleed@##1\endcsname}{##2}%
+            \tl_put_right:Nx \jlreq at do{%
+              \noexpand\def\exp_not:o {\csname jlreq at trimmarks@bleed@##1\endcsname}{##2}%
             }%
           }{%
             \PackageError{jlreq-trimmarks}{Unknown~position~`##1'~in~bleed_margin}{\@ehc}
@@ -176,7 +184,7 @@
 
 \newif\ifjlreq at trimmarks@landscape \jlreq at trimmarks@landscapefalse
 \keys_define:nn { jlreq-trimmarks } { landscape .code:n = {\jlreq at trimmarks@landscapetrue}, .value_forbidden:n = true }
-\jlreq at trimmarks@afterpkg at addtodeleteif{\ifjlreq at trimmarks@landscape}
+\__jlreq_trimmarks_afterpkg_addtodeleteif:N \ifjlreq at trimmarks@landscape
 
 \keys_set:nn { jlreq-trimmarks } {
   trimmarks_paper = {+2in},
@@ -219,7 +227,7 @@
     \edef\jlreq at trimmarks@paperheight{\jlreq at resultb}
   }
 }
-\jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@setpapersize}
+\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@setpapersize
 \expandafter\jlreq at trimmarks@setpapersize\expandafter{\jlreq at trimmarks@option at papersize}
 
 \ifx o\jlreq at trimmarks@driver
@@ -234,20 +242,20 @@
     \jlreq at parsekeyval@nokey{%
       \ifjlreq at parsekeyval@nokey at novalue{}{%
         \jlreq at switch{##1}{
-          {yoko}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}}
-          {horizontal}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}}
-          {tate}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}}
-          {vertial}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}}
-          {corner}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{corner@#1}{corner@#2}{##2}}}
-          {in-yoko}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}}
-          {in-horizontal}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}}
-          {in-tate}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}}
-          {in-vertial}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}}
+          {yoko}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}}
+          {horizontal}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}}
+          {tate}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}}
+          {vertial}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}}
+          {corner}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{corner@#1}{corner@#2}{##2}}}
+          {in-yoko}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}}
+          {in-horizontal}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}}
+          {in-tate}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}}
+          {in-vertial}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}}
         }%
       }%
     }{#3}%
     \jlreq at if{\ifx\jlreq at do\@empty\fi}{%
-      \appto\jlreq at do{\jlreq at trimmarks@setbanner@@{yoko@#1}{yoko@#2}{#3}}%
+      \tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{yoko@#1}{yoko@#2}{#3}}%
     }{}%
   \expandafter\endgroup
   \jlreq at do
@@ -259,16 +267,16 @@
     \jlreq at parsekeyval@nokey{%
       \ifjlreq at parsekeyval@nokey at novalue{}{%
         \jlreq at switch*{##1}{
-          {left}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{before@#1}{before@#2}{##2}}}
-          {right}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{after@#1}{after@#2}{##2}}}
-          {above}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{before@#1}{before@#2}{##2}}}
-          {below}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{after@#1}{after@#2}{##2}}}
-          {in}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@@{in@#1}{in@#2}{##2}}}
+          {left}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{before@#1}{before@#2}{##2}}}
+          {right}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{after@#1}{after@#2}{##2}}}
+          {above}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{before@#1}{before@#2}{##2}}}
+          {below}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{after@#1}{after@#2}{##2}}}
+          {in}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{in@#1}{in@#2}{##2}}}
         }%
       }%
     }{#3}%
     \jlreq at if{\ifx\jlreq at do\@empty\fi}{
-      \appto\jlreq at do{\jlreq at trimmarks@setbanner@@{before@#1}{before@#2}{#3}}%
+      \tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@@{before@#1}{before@#2}{#3}}%
     }{}%
   \expandafter\endgroup
   \jlreq at do
@@ -281,13 +289,13 @@
     \jlreq at parsekeyval@nokey{%
       \ifjlreq at parsekeyval@nokey at novalue{}{%
         \jlreq at switch*{##1}{
-          {odd}{\appto\jlreq at do{\expandafter\edef\csname jlreq at trimmarks@banner at odd@#1\endcsname{\unexpanded{##2}}}}
-          {even}{\appto\jlreq at do{\expandafter\edef\csname jlreq at trimmarks@banner at even@#2\endcsname{\unexpanded{##2}}}}
+          {odd}{\tl_put_right:Nn \jlreq at do{\expandafter\edef\csname jlreq at trimmarks@banner at odd@#1\endcsname{\unexpanded{##2}}}}
+          {even}{\tl_put_right:Nn \jlreq at do{\expandafter\edef\csname jlreq at trimmarks@banner at even@#2\endcsname{\unexpanded{##2}}}}
         }%
       }%
     }{#3}%
     \jlreq at if{\ifx\jlreq at do\@empty\fi}{
-      \appto\jlreq at do{%
+      \tl_put_right:Nn \jlreq at do{%
         \expandafter\edef\csname jlreq at trimmarks@banner at odd@#1\endcsname{\unexpanded{#3}}%
         \expandafter\edef\csname jlreq at trimmarks@banner at even@#2\endcsname{\unexpanded{#3}}%
       }%
@@ -325,39 +333,39 @@
           \let\jlreq at guttereven\jlreq at gutterodd
         \fi
         \jlreq at switch*{##1}{
-          {top-left}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top at left}{top at left}{##2}}}
-          {left-top}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top at left}{top at left}{##2}}}
-          {top-right}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top at right}{top at right}{##2}}}
-          {right-top}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top at right}{top at right}{##2}}}
-          {top-gutter}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at gutterodd}{top@\jlreq at guttereven}{##2}}}
-          {gutter-top}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at gutterodd}{top@\jlreq at guttereven}{##2}}}
-          {top-fore-edge}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at guttereven}{top@\jlreq at gutterodd}{##2}}}
-          {fore-edge-top}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at guttereven}{top@\jlreq at gutterodd}{##2}}}
-          {bottom-left}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom at left}{bottom at left}{##2}}}
-          {left-bottom}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom at left}{bottom at left}{##2}}}
-          {bottom-right}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom at right}{bottom at right}{##2}}}
-          {right-bottom}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom at right}{bottom at right}{##2}}}
-          {bottom-gutter}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at gutterodd}{bottom@\jlreq at guttereven}{##2}}}
-          {gutter-bottom}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at gutterodd}{bottom@\jlreq at guttereven}{##2}}}
-          {bottom-fore-edge}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at guttereven}{bottom@\jlreq at gutterodd}{##2}}}
-          {fore-edge-bottom}{\appto\jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at guttereven}{bottom@\jlreq at gutterodd}{##2}}}
-          {top-center}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{top at center}{top at center}{##2}}}
-          {center-top}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{top at center}{top at center}{##2}}}
-          {bottom-center}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{bottom at center}{bottom at center}{##2}}}
-          {center-bottom}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{bottom at center}{bottom at center}{##2}}}
-          {center-right}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center at right}{center at right}{##2}}}
-          {right-center}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center at right}{center at right}{##2}}}
-          {center-left}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center at left}{center at left}{##2}}}
-          {left-center}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center at left}{center at left}{##2}}}
-          {center-gutter}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at gutterodd}{center@\jlreq at guttereven}{##2}}}
-          {gutter-center}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at gutterodd}{center@\jlreq at guttereven}{##2}}}
-          {center-fore-edge}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at guttereven}{center@\jlreq at gutterodd}{##2}}}
-          {fore-edge-center}{\appto\jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at guttereven}{center@\jlreq at gutterodd}{##2}}}
+          {top-left}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top at left}{top at left}{##2}}}
+          {left-top}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top at left}{top at left}{##2}}}
+          {top-right}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top at right}{top at right}{##2}}}
+          {right-top}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top at right}{top at right}{##2}}}
+          {top-gutter}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at gutterodd}{top@\jlreq at guttereven}{##2}}}
+          {gutter-top}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at gutterodd}{top@\jlreq at guttereven}{##2}}}
+          {top-fore-edge}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at guttereven}{top@\jlreq at gutterodd}{##2}}}
+          {fore-edge-top}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top@\jlreq at guttereven}{top@\jlreq at gutterodd}{##2}}}
+          {bottom-left}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom at left}{bottom at left}{##2}}}
+          {left-bottom}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom at left}{bottom at left}{##2}}}
+          {bottom-right}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom at right}{bottom at right}{##2}}}
+          {right-bottom}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom at right}{bottom at right}{##2}}}
+          {bottom-gutter}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at gutterodd}{bottom@\jlreq at guttereven}{##2}}}
+          {gutter-bottom}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at gutterodd}{bottom@\jlreq at guttereven}{##2}}}
+          {bottom-fore-edge}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at guttereven}{bottom@\jlreq at gutterodd}{##2}}}
+          {fore-edge-bottom}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{bottom@\jlreq at guttereven}{bottom@\jlreq at gutterodd}{##2}}}
+          {top-center}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{top at center}{top at center}{##2}}}
+          {center-top}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{top at center}{top at center}{##2}}}
+          {bottom-center}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{bottom at center}{bottom at center}{##2}}}
+          {center-bottom}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{bottom at center}{bottom at center}{##2}}}
+          {center-right}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center at right}{center at right}{##2}}}
+          {right-center}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center at right}{center at right}{##2}}}
+          {center-left}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center at left}{center at left}{##2}}}
+          {left-center}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center at left}{center at left}{##2}}}
+          {center-gutter}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at gutterodd}{center@\jlreq at guttereven}{##2}}}
+          {gutter-center}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at gutterodd}{center@\jlreq at guttereven}{##2}}}
+          {center-fore-edge}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at guttereven}{center@\jlreq at gutterodd}{##2}}}
+          {fore-edge-center}{\tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner@{center@\jlreq at guttereven}{center@\jlreq at gutterodd}{##2}}}
         }%
       }%
     }{#1}%
     \jlreq at if{\ifx\jlreq at do\@empty\fi}{
-      \appto\jlreq at do{\jlreq at trimmarks@setbanner{top at left}{top at left}{#1}}%
+      \tl_put_right:Nn \jlreq at do{\jlreq at trimmarks@setbanner{top at left}{top at left}{#1}}%
     }{}%
     \jlreq at do
   },
@@ -398,7 +406,7 @@
     }%
   }%
 }
-\newcommand{\jlreqtrimmarkssetup}[1]{%
+\NewDocumentCommand { \jlreqtrimmarkssetup } { +m } {
   \keys_set:nn { jlreqtrimmarkssetup } {#1}
 }
 \@onlypreamble\jlreqtrimmarkssetup
@@ -868,12 +876,12 @@
     \ifjlreq at trimmarks@show at artbox /ArtBox~\jlreq at trimmarks@trimboxsize\fi
     /BleedBox~\jlreq at trimmarks@bleedboxsize at even
   }
-  \jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@pttobp}
-  \jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@trimboxsize}
-  \jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@bleedboxsize at odd}
-  \jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@bleedboxsize at even}
-  \jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@pdfattribute at odd}
-  \jlreq at trimmarks@afterpkg at addtodeletecs{\jlreq at trimmarks@pdfattribute at even}
+  \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@pttobp
+  \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@trimboxsize
+  \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@bleedboxsize at odd
+  \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@bleedboxsize at even
+  \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@pdfattribute at odd
+  \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq at trimmarks@pdfattribute at even
 
   \begingroup
     \c at page=1\relax
@@ -892,7 +900,7 @@
       \@tempa
     \fi
     \ifx f\jlreq at trimmarks@driver
-      \epreto\@outputtombow{\noexpand\special{pdf:~put~@thispage~<<\jlreq at trimmarks@pdfattribute at odd>>}}
+      \tl_put_left:Nx \@outputtombow {\noexpand\special{pdf:~put~@thispage~<<\jlreq at trimmarks@pdfattribute at odd>>}}
     \fi
     \ifx s\jlreq at trimmarks@driver
       \edef\@tempa{\noexpand\special{ps:SDict~begin~
@@ -905,19 +913,19 @@
   }{
     \ifx l\jlreq at trimmarks@driver
       % in \@outputtombow, it's too late
-      \epreto\@outputpage{%
+      \tl_put_left:Nx \@outputpage {%
         \unexpanded{\ifodd\c at page\pdfvariable} pageattr{\jlreq at trimmarks@pdfattribute at odd}%
         \unexpanded{\else\pdfvariable} pageattr{\jlreq at trimmarks@pdfattribute at even}\noexpand\fi
       }
     \fi
     \ifx f\jlreq at trimmarks@driver
-      \epreto\@outputtombow{%
+      \tl_put_left:Nx \@outputtombow {%
         \unexpanded{\ifodd\c at page\special}{pdf:~put~@thispage~<<\jlreq at trimmarks@pdfattribute at odd>>}%
         \unexpanded{\else\special}{pdf:~put~@thispage~<<\jlreq at trimmarks@pdfattribute at even>>}\noexpand\fi
       }
     \fi
     \ifx s\jlreq at trimmarks@driver
-      \epreto\@outputtombow{%
+      \tl_put_left:Nx \@outputtombow {%
         \unexpanded{\ifodd\c at page\special}{ps:SDict~begin~
           [~/TrimBox~\jlreq at trimmarks@trimboxsize /PAGE~pdfmark~
           \ifjlreq at trimmarks@show at artbox [~/ArtBox~\jlreq at trimmarks@trimboxsize /PAGE~pdfmark~\fi

Modified: trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls	2021-08-11 23:42:37 UTC (rev 60224)
+++ trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls	2021-08-12 20:31:59 UTC (rev 60225)
@@ -5,8 +5,8 @@
 %%
 % (based on JLReq 20200811 https://www.w3.org/TR/2020/NOTE-jlreq-20200811/)
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2021/07/30 jlreq]
-\RequirePackage{l3keys2e,etoolbox}
+\ProvidesClass{jlreq}[2021/08/12 jlreq]
+\RequirePackage{l3keys2e}
 \RequirePackage{ifthen}
 \RequirePackage{jlreq-helpers}
 
@@ -18,6 +18,7 @@
 \str_new:N \l_jlreq_tmpc_str
 \bool_new:N \l_jlreq_tmpa_bool
 \clist_new:N \l_jlreq_tmpa_clist
+\seq_new:N \l_jlreq_tmpa_seq
 \dim_new:N \l_jlreq_tmpa_dim
 \skip_new:N \l_jlreq_tmpa_skip
 \box_new:N \l_jlreq_tmpa_box
@@ -24,20 +25,28 @@
 \box_new:N \l_jlreq_tmpb_box
 \box_new:N \l_jlreq_tmpc_box
 
-\def\jlreq at undeferr#1{\ClassError{jlreq}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}}
+\cs_set:Nn \__jlreq_undeferr:n {\ClassError{jlreq}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}}
 % クラスファイル内でしか使わないマクロをクラスファイル終了時に未定義にする
-\def\jlreq at aftercls@addtodeletecs#1{%
-  \appto\jlreq at aftercls@deletecslist{\jlreq at helper@undefcs{#1}{\jlreq at undeferr}}%
+\seq_new:N \g__jlreq_aftercls_deletecs_seq
+\seq_new:N \g__jlreq_aftercls_deleteif_seq
+\cs_set:Nn \__jlreq_aftercls_addtodeletecs:N {
+  \seq_gput_right:Nn \g__jlreq_aftercls_deletecs_seq {#1}
 }
-\def\jlreq at aftercls@addtodeleteif#1{%
-  \appto\jlreq at aftercls@deletecslist{\jlreq at helper@undefif{#1}{\jlreq at undeferr}}%
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_aftercls_addtodeletecs:N
+\cs_set:Nn \__jlreq_aftercls_addtodeleteif:N {
+  \seq_gput_right:Nn \g__jlreq_aftercls_deleteif_seq {#1}
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at aftercls@addtodeletecs}
-\jlreq at aftercls@addtodeletecs{\jlreq at aftercls@addtodeleteif}
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_aftercls_addtodeleteif:N
 \AtEndOfClass{%
-  \jlreq at aftercls@deletecslist
-  \jlreq at helper@undefcs{\jlreq at aftercls@deletecslist}{\jlreq at undeferr}%
-  \undef{\jlreq at undeferr}%
+  \seq_map_inline:Nn \g__jlreq_aftercls_deletecs_seq {
+    \jlreq at helper@undefcs{#1}{\__jlreq_undeferr:n}
+  }
+  \seq_map_inline:Nn \g__jlreq_aftercls_deleteif_seq {
+    \jlreq at helper@undefif{#1}{\__jlreq_undeferr:n}
+  }
+  \cs_undefine:N \g__jlreq_aftercls_deletecs_seq
+  \cs_undefine:N \g__jlreq_aftercls_deleteif_seq
+  \cs_undefine:N \__jlreq_undeferr:n
 }
 
 % preambleにいるかのスイッチ
@@ -53,7 +62,7 @@
     \ClassError{jlreq}{Trying~to~save~#1~twice,~may~be~a~bug}{\@ehc}%
   }
   \begingroup
-    \edef\jlreq at do{\noexpand\let\expandonce{\csname jlreq at original@#1\endcsname}=\expandonce{\csname #1\endcsname}}
+    \edef\jlreq at do{\noexpand\let\exp_not:c {jlreq at original@#1}=\exp_not:c {#1}}
   \expandafter\endgroup
   \jlreq at do
 }
@@ -83,92 +92,85 @@
 \keys_define:nn { jlreq } { book .code:n = { \def\jlreq at article@type{book} }, book .value_forbidden:n = true }
 
 %.. 基本版面.まずは紙サイズ.
-\def\jlreq at switchpapersize{}
-\jlreq at aftercls@addtodeletecs{\jlreq at switchpapersize}
-% \jlreq at addpapersize{paper=に指定するもの}{単独オプション名}{横}{縦}
-
-\def\jlreq at addpapersize#1#2{%
-  \@ifnextchar[{\jlreq at addpapersize@{#1}{#2}}{\jlreq at addpapersize@@{#1}{#2}}%
+\tl_new:N \g__jlreq_papersizelist_tl
+\cs_set:Nn \__jlreq_addpapersize:nnn {
+  \exp_args:Nnnv \__jlreq_addpapersize_aux:nnn {#1}{#2}{jlreq at helper@papersizelist@#3}
 }
-\def\jlreq at addpapersize@#1#2[#3]{%
-  \edef\@tempa{\unexpanded{\jlreq at addpapersize@@{#1}{#2}}\csexpandonce{jlreq at helper@papersizelist@#3}}%
-  \@tempa
+\cs_set:Nn \__jlreq_addpapersize_aux:nnn {
+  \__jlreq_addpapersize_auxi:nnnn {#1}{#2}#3
 }
-\def\jlreq at addpapersize@@#1#2#3#4{%
-  \clist_map_variable:nNn {#1} \@tempa {
-    \eappto\jlreq at switchpapersize{{\expandonce{\@tempa}}{\unexpanded{\setlength{\paperwidth}{#3}\setlength{\paperheight}{#4}}}}%
-  }%
-  \clist_map_inline:nn {#2}  {
-    \keys_define:nn { jlreq } {
-      ##1 .code:n = { \setlength{\paperwidth}{#3}\setlength{\paperheight}{#4} },
-      ##1 .value_forbidden:n = true
-    }
+\cs_set:Nn \__jlreq_addpapersize_auxi:nnnn {
+  \clist_map_inline:nn {#1} {
+    \tl_gput_right:Nn \g__jlreq_papersizelist_tl { { ##1 } { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} } }
   }
+  \clist_map_inline:nn {#2} {
+    \keys_define:nn { jlreq } { ##1 .code:n = { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} } }
+  }
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at addpapersize}
-\jlreq at aftercls@addtodeletecs{\jlreq at addpapersize@}
-\jlreq at aftercls@addtodeletecs{\jlreq at addpapersize@@}
 \keys_define:nn { jlreq } {
   paper .code:n = {
-    \edef\jlreq at do{%
-      \unexpanded{\jlreq at switch{#1}}{\expandonce{\jlreq at switchpapersize}}%
-      [\unexpanded{%
-        \jlreq at helper@dividebycomma{#1}%
-        \ifjlreq at result
-          \setlength{\paperwidth}{\dimexpr\jlreq at resulta\relax}%
-          \setlength{\paperheight}{\dimexpr\jlreq at resultb\relax}%
-        \else
-          \ClassError{jlreq}{The~paper~#1~is~unknown}{\@ehc}%
-        \fi
-      }]%
-    }%
-    \jlreq at do
+    \str_case:nVF {#1} \g__jlreq_papersizelist_tl
+    {
+      \jlreq at helper@dividebycomma{#1}%
+      \legacy_if:nTF { jlreq at result } {
+        \setlength{\paperwidth}{\dimexpr\jlreq at resulta\relax}
+        \setlength{\paperheight}{\dimexpr\jlreq at resultb\relax}
+      } {
+        \ClassError { jlreq } { The~paper~#1~is~unknown } {\@ehc}
+      }
+    }
   }
 }
+
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize:nnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_aux:nnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_auxi:nnnn
+\__jlreq_aftercls_addtodeletecs:N \g__jlreq_papersizelist_tl
+
 % 紙サイズ一覧.b*はJIS B.
-\jlreq at addpapersize{a0,A0}{}[a0]
-\jlreq at addpapersize{a1,A1}{}[a1]
-\jlreq at addpapersize{a2,A2}{}[a2]
-\jlreq at addpapersize{a3,A3}{a3paper}[a3]
-\jlreq at addpapersize{a4,A4}{a4paper}[a4]
-\jlreq at addpapersize{a5,A5}{a5paper}[a5]
-\jlreq at addpapersize{a6,A6}{a6paper}[a6]
-\jlreq at addpapersize{a7,A7}{}[a7]
-\jlreq at addpapersize{a8,A8}{}[a8]
-\jlreq at addpapersize{a9,A9}{}[a9]
-\jlreq at addpapersize{a10,A10}{}[a10]
+\__jlreq_addpapersize:nnn{a0,A0}{}{a0}
+\__jlreq_addpapersize:nnn{a1,A1}{}{a1}
+\__jlreq_addpapersize:nnn{a2,A2}{}{a2}
+\__jlreq_addpapersize:nnn{a3,A3}{a3paper}{a3}
+\__jlreq_addpapersize:nnn{a4,A4}{a4paper}{a4}
+\__jlreq_addpapersize:nnn{a5,A5}{a5paper}{a5}
+\__jlreq_addpapersize:nnn{a6,A6}{a6paper}{a6}
+\__jlreq_addpapersize:nnn{a7,A7}{}{a7}
+\__jlreq_addpapersize:nnn{a8,A8}{}{a8}
+\__jlreq_addpapersize:nnn{a9,A9}{}{a9}
+\__jlreq_addpapersize:nnn{a10,A10}{}{a10}
 
-\jlreq at addpapersize{b0,B0}{}[b0]
-\jlreq at addpapersize{b1,B1}{}[b1]
-\jlreq at addpapersize{b2,B2}{}[b2]
-\jlreq at addpapersize{b3,B3}{}[b3]
-\jlreq at addpapersize{b4,B4}{b4paper}[b4]
-\jlreq at addpapersize{b5,B5}{b5paper}[b5]
-\jlreq at addpapersize{b6,B6}{b6paper}[b6]
-\jlreq at addpapersize{b7,B7}{}[b7]
-\jlreq at addpapersize{b8,B8}{}[b8]
-\jlreq at addpapersize{b9,B9}{}[b9]
-\jlreq at addpapersize{b10,B10}{}[b10]
+\__jlreq_addpapersize:nnn{b0,B0}{}{b0}
+\__jlreq_addpapersize:nnn{b1,B1}{}{b1}
+\__jlreq_addpapersize:nnn{b2,B2}{}{b2}
+\__jlreq_addpapersize:nnn{b3,B3}{}{b3}
+\__jlreq_addpapersize:nnn{b4,B4}{b4paper}{b4}
+\__jlreq_addpapersize:nnn{b5,B5}{b5paper}{b5}
+\__jlreq_addpapersize:nnn{b6,B6}{b6paper}{b6}
+\__jlreq_addpapersize:nnn{b7,B7}{}{b7}
+\__jlreq_addpapersize:nnn{b8,B8}{}{b8}
+\__jlreq_addpapersize:nnn{b9,B9}{}{b9}
+\__jlreq_addpapersize:nnn{b10,B10}{}{b10}
 
-\jlreq at addpapersize{c2,C2}{}[c2]
-\jlreq at addpapersize{c3,C3}{}[c3]
-\jlreq at addpapersize{c4,C4}{}[c4]
-\jlreq at addpapersize{c5,C5}{}[c5]
-\jlreq at addpapersize{c6,C6}{}[c6]
-\jlreq at addpapersize{c7,C7}{}[c7]
-\jlreq at addpapersize{c8,C8}{}[c8]
+\__jlreq_addpapersize:nnn{c2,C2}{}{c2}
+\__jlreq_addpapersize:nnn{c3,C3}{}{c3}
+\__jlreq_addpapersize:nnn{c4,C4}{}{c4}
+\__jlreq_addpapersize:nnn{c5,C5}{}{c5}
+\__jlreq_addpapersize:nnn{c6,C6}{}{c6}
+\__jlreq_addpapersize:nnn{c7,C7}{}{c7}
+\__jlreq_addpapersize:nnn{c8,C8}{}{c8}
 
-\jlreq at addpapersize{a4var}{}[a4var]
-\jlreq at addpapersize{b5var}{}[b5var]
+\__jlreq_addpapersize:nnn{a4var}{}{a4var}
+\__jlreq_addpapersize:nnn{b5var}{}{b5var}
 
-\jlreq at addpapersize{letter}{letterpaper}[letter]
-\jlreq at addpapersize{legal}{legalpaper}[legal]
-\jlreq at addpapersize{executive}{executivepaper}[executive]
-\jlreq at addpapersize{hagaki}{}[hagaki]
+\__jlreq_addpapersize:nnn{letter}{letterpaper}{letter}
+\__jlreq_addpapersize:nnn{legal}{legalpaper}{legal}
+\__jlreq_addpapersize:nnn{executive}{executivepaper}{executive}
+\__jlreq_addpapersize:nnn{hagaki}{}{hagaki}
 
 
 %.. フォントサイズ,行長,1ページあたりの行数で基本版面のサイズを決める(2.4.1.a)
-\jlreq at aftercls@addtodeletecs{\jlreq at option@fontsize}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@fontsize
 \keys_define:nn { jlreq } { fontsize .tl_set:N = \jlreq at option@fontsize }
 \keys_define:nn { jlreq } {
   10pt .code:n = {\def\jlreq at option@fontsize{10pt}}, 10pt .value_forbidden:n = true,
@@ -175,29 +177,29 @@
   11pt .code:n = {\def\jlreq at option@fontsize{11pt}}, 11pt .value_forbidden:n = true,
   12pt .code:n = {\def\jlreq at option@fontsize{12pt}}, 12pt .value_forbidden:n = true,
 }
-\keys_define:nn { jlreq } { jafontsize .tl_set:N = \jlreq at option@jafontsize}
-\keys_define:nn { jlreq } { jafontscale .tl_set:N = \jlreq at option@jafontscale}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@jafontsize}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@jafontscale}
+\keys_define:nn { jlreq } { jafontsize .tl_set:N = \jlreq at option@jafontsize }
+\keys_define:nn { jlreq } { jafontscale .tl_set:N = \jlreq at option@jafontscale }
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@jafontsize
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@jafontscale
 %.. 行の長さ
-\keys_define:nn { jlreq } { line_length .tl_set:N = \jlreq at option@line at length}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@line at length}
+\keys_define:nn { jlreq } { line_length .tl_set:N = \jlreq at option@line at length }
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@line at length
 %.. 1ページあたりの行数
-\keys_define:nn { jlreq } { number_of_lines .tl_set:N = \jlreq at option@number at of@lines}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@number at of@lines}
+\keys_define:nn { jlreq } { number_of_lines .tl_set:N = \jlreq at option@number at of@lines }
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@number at of@lines
 
 % 地の空き量,のどの空き量で配置位置を決める(2.4.1.b)省略されたら中央配置.
 %.. 天
-\keys_define:nn { jlreq } { head_space .tl_set:N = \jlreq at option@head at space}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@head at space}
+\keys_define:nn { jlreq } { head_space .tl_set:N = \jlreq at option@head at space }
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@head at space
 %.. 地
-\keys_define:nn { jlreq } { foot_space .tl_set:N = \jlreq at option@foot at space}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@foot at space}
+\keys_define:nn { jlreq } { foot_space .tl_set:N = \jlreq at option@foot at space }
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@foot at space
 %.. のど
-\keys_define:nn { jlreq } { gutter .tl_set:N = \jlreq at option@gutter}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@gutter}
+\keys_define:nn { jlreq } { gutter .tl_set:N = \jlreq at option@gutter }
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@gutter
 %.. 小口
-\jlreq at aftercls@addtodeletecs{\jlreq at option@fore at edge}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@fore at edge
 \keys_define:nn { jlreq } {
   fore_edge .tl_set:N = \jlreq at option@fore at edge,
   fore-edge .tl_set:N = \jlreq at option@fore at edge
@@ -206,13 +208,13 @@
 %.. 柱とノンブル
 % 本文とヘッダ/フッタの間の空き
 \keys_define:nn { jlreq } { headfoot_verticalposition .tl_set:N = \jlreq at option@headfoot at verticalpos}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@headfoot at verticalpos}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@headfoot at verticalpos
 % 柱やノンブルの左右の空き
 \keys_define:nn { jlreq } { headfoot_sidemargin .tl_set:N = \jlreq at headfoot@sidemargin}
 
 %.. 段間
 \keys_define:nn { jlreq } { column_gap .tl_set:N = \jlreq at option@column at gap}
-\jlreq at aftercls@addtodeletecs{\jlreq at option@column at gap}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@column at gap
 
 %.. 行送り,指定無しの場合は文字サイズの1.7倍とする.(1.5から2倍が好ましい:2.4.2.d 注3)
 \keys_define:nn { jlreq } {
@@ -219,7 +221,7 @@
   baselineskip .tl_set:N = \jlreq at option@baselineskip,
   linegap .code:n = { \def\jlreq at option@baselineskip{1zw + #1} }
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at option@baselineskip}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@baselineskip
 
 %.. 組み方系
 % 行頭に括弧が来たときの配置:3.1.5
@@ -231,16 +233,16 @@
 % jsarticleと同じkanjiskipを使う
 \newif\ifjlreq at narrow@kanjiskip\jlreq at narrow@kanjiskipfalse
 \keys_define:nn { jlreq } { narrow_kanjiskip .code:n = {\jlreq at narrow@kanjiskiptrue}, narrow_kanjiskip .value_forbidden:n = true}
-\jlreq at aftercls@addtodeleteif{\ifjlreq at narrow@kanjiskip}
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at narrow@kanjiskip
 
 %.. 注
 % 傍注のタイプ
 \keys_define:nn { jlreq } { sidenote_length .tl_set:N = \jlreq at option@sidenote at length }
-\jlreq at aftercls@addtodeletecs{\jlreq at option@sidenote at length}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at option@sidenote at length
 
 %.. 逆ノンブル
 \newif\ifjlreq at option@use at reverse@pagination
-\jlreq at aftercls@addtodeleteif{\ifjlreq at option@use at reverse@pagination}
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at option@use at reverse@pagination
 \jlreq at option@use at reverse@paginationfalse
 \keys_define:nn { jlreq } { use_reverse_pagination .code:n = {\jlreq at option@use at reverse@paginationtrue}, use_reverse_pagination .value_forbidden:n = true }
 
@@ -250,7 +252,7 @@
 \newif\if at landscape\@landscapefalse
 \newif\if at tate \@tatefalse
 \newif\ifjlreq at option@titlepage \jlreq at option@titlepagefalse % titlepageかnotitlepageかが指定された
-\jlreq at aftercls@addtodeleteif{\ifjlreq at option@titlepage}
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at option@titlepage
 \keys_define:nn { jlreq } { landscape .code:n = {\@landscapetrue}, landscape .value_forbidden:n = true }
 \keys_define:nn { jlreq } { tombo .code:n = {\ClassWarningNoLine{jlreq}{The~option~`tombo'~is~not~supported~by~jlreq~class.~Please~use~the~jlreq-trimmarks~package}} }
 \keys_define:nn { jlreq } { tombow .code:n = {\ClassWarningNoLine{jlreq}{The~option~`tombow'~is~not~supported~by~jlreq~class.~Please~use~the~jlreq-trimmarks~package}} }
@@ -258,7 +260,7 @@
 \keys_define:nn { jlreq } { tate .code:n = { \@tatetrue }, tate .value_forbidden:n = true}
 
 \newif\ifjlreq at option@twoside\jlreq at option@twosidefalse % onesideかtwosideが指定された
-\jlreq at aftercls@addtodeleteif{\ifjlreq at option@twoside}
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at option@twoside
 \keys_define:nn { jlreq } { oneside .code:n = { \@twosidefalse\@mparswitchfalse\jlreq at option@twosidetrue }, oneside .value_forbidden:n = true }
 \keys_define:nn { jlreq } { twoside .code:n = { \@twosidetrue\@mparswitchtrue\jlreq at option@twosidetrue }, twoside .value_forbidden:n = true }
 \keys_define:nn { jlreq } { onecolumn .code:n = { \@twocolumnfalse }, onecolumn .value_forbidden:n = true }
@@ -269,19 +271,18 @@
 \keys_define:nn { jlreq } { final .code:n = { \setlength\overfullrule{0pt} }, final .value_forbidden:n = true }
 \newif\if at openright
 \newif\ifjlreq at option@open \jlreq at option@openfalse % openrightかopenanyが指定された
-\jlreq at aftercls@addtodeleteif{\ifjlreq at option@open}
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at option@open
 \keys_define:nn { jlreq } { openright .code:n = { \@openrighttrue\jlreq at option@opentrue }, openright .value_forbidden:n = true}
 \keys_define:nn { jlreq } { openany .code:n = { \@openrightfalse\jlreq at option@opentrue }, openany .value_forbidden:n = true}
 \keys_define:nn { jlreq } { leqno .code:n = { \input{leqno.clo } }, leqno .value_forbidden:n = true}
 \keys_define:nn { jlreq } { fleqn .code:n = { \input{fleqn.clo } }, fleqn .value_forbidden:n = true}
 \newif\ifjlreq at option@enablejfam \jlreq at option@enablejfamtrue
-\jlreq at aftercls@addtodeleteif{\ifjlreq at option@enablejfam}
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at option@enablejfam
 \keys_define:nn { jlreq } { disablejfam .code:n = { \jlreq at option@enablejfamfalse }, disablejfam .value_forbidden:n = true}
 
 \def\jlreq at note#1{}
 \keys_define:nn { jlreq } { jlreq_notes .code:n = { \def\jlreq at note##1{\message{^^JJLReq note: ##1^^J}}}, jlreq_notes .value_forbidden:n = true}
 
-%\ExecuteOptionsX{article_type=article,paper=a4,open_bracket_pos=zenkaku_tentsuki,onecolumn,final}
 \keys_set:nn { jlreq } {
   article_type=article,paper=a4,
   number_of_lines={},line_length = {},
@@ -317,7 +318,7 @@
 }
 % \jlreqsetupの最後に必ず実行される処理を入れる.
 \cs_set:Nn \__jlreq_jlreqsetup_addtofinally:n { \tl_gput_right:Nx \g__jlreq_jlreqsetup_finally_tl { \exp_not:n {#1} } }
-\jlreq at aftercls@addtodeletecs{\__jlreq_jlreqsetup_addtofinally:n}
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_jlreqsetup_addtofinally:n
 \@onlypreamble\jlreqsetup
 
 % エンジンの設定
@@ -352,7 +353,7 @@
 \else
   \RequirePackage{everyhook}
   \def\jlreq at jfmname@prefix{}
-  \jlreq at aftercls@addtodeletecs{\jlreq at jfmname@prefix}
+  \__jlreq_aftercls_addtodeletecs:N \jlreq at jfmname@prefix
   \ifjlreq at burasage\edef\jlreq at jfmname@prefix{b\jlreq at jfmname@prefix}\fi
   \str_if_eq:VnT \jlreq at open@bracket at pos { zenkakunibu_nibu } {
     \edef\jlreq at jfmname@prefix { \jlreq at jfmname@prefix z }
@@ -360,8 +361,8 @@
   \ifx u\jlreq at engine\edef\jlreq at jfmname@prefix{u\jlreq at jfmname@prefix}\fi
   \edef\jlreq at jfmname{\jlreq at jfmname@prefix jlreq} % JFMの名前
   \edef\jlreq at jfmnameg{\jlreq at jfmname@prefix jlreqg} % ゴシックなJFMの名前
-  \jlreq at aftercls@addtodeletecs{\jlreq at jfmname}
-  \jlreq at aftercls@addtodeletecs{\jlreq at jfmnameg}
+  \__jlreq_aftercls_addtodeletecs:N \jlreq at jfmname
+  \__jlreq_aftercls_addtodeletecs:N \jlreq at jfmnameg
 \fi
 
 % (u)pLaTeXの場合ここで初めて\epTeXinputencodingが発行されるので,
@@ -599,7 +600,7 @@
     \jlreq at getfirsttoken@expandmacros{\jlreq at nextchar}{\jlreq at tempa}%
     \expandafter\jlreq at ifletter\expandafter{\jlreq at tempa}{%
       \jlreq at calc@jfmglue{\char\jlreq at lastnodechar}{\jlreq at tempa}%
-%      \message{fixjfm Insert: \the\jlreq at resultskip}%
+%      \message{fixjfm,~before~lastnodechar~=~\the\jlreq at lastnodechar,~after~=~\meaning\jlreq at nextchar,~Insert:~\the\jlreq at resultskip}
       \edef\jlreq at do{%
         \noexpand\hskip\the\jlreq at resultskip\space
         \noexpand\inhibitglue
@@ -655,7 +656,7 @@
 \else
   \def\jlreq at expand@optionfontsize#1{\dimexpr#1\relax}
 \fi
-\jlreq at aftercls@addtodeletecs{\jlreq at expand@optionfontsize}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at expand@optionfontsize
 \ifx\jlreq at option@fontsize\@empty
   \ifx\jlreq at option@jafontsize\@empty
     \jlreq at fontsize=10pt
@@ -696,7 +697,7 @@
 \fi
 \jlreq at divide{\jlreq at jafontsize}{\jlreq at fontsize}
 \edef\jlreq at jafontscale{\strip at pt\jlreq at resultdimen}
-\jlreq at aftercls@addtodeletecs{\jlreq at jafontscale}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at jafontscale
 \ifx l\jlreq at engine
   \jlreq at saveoriginalcs{DeclareFontShape}
     \def\DeclareFontShape#1#2#3#4#5#6{
@@ -737,9 +738,8 @@
   \DeclareFontShape{\jlreq at tatekanjiencoding}{mc}{m}{n-jidori}{<->s*[\jlreq at jafontscale]\jlreq at tempa jlreq-v-jidori}{}
   \DeclareFontShape{\jlreq at tatekanjiencoding}{gt}{m}{n-jidori}{<->s*[\jlreq at jafontscale]\jlreq at tempa jlreqg-v-jidori}{}
 \fi
-\clist_set:NV  \l_jlreq_tmpa_clist \jlreq at yokokanjiencoding
-\clist_push:NV \l_jlreq_tmpa_clist \jlreq at tatekanjiencoding
-\clist_map_inline:Nn \l_jlreq_tmpa_clist {% #1 = encoding
+
+\exp_args:Nx \clist_map_inline:nn {\jlreq at yokokanjiencoding,\jlreq at tatekanjiencoding} {% #1 = encoding
   \clist_map_inline:nn { n,it,sl,sc } {% ##1 = shape
     \clist_map_inline:nn { m,b,bx,sb,c } {% ####1 = series
       \bool_if:nF { \str_if_eq_p:nn {##1} {n} && \str_if_eq_p:nn {####1} {m} } {
@@ -792,7 +792,7 @@
 \ifx l\jlreq at engine
   % \itemの直後は折り返し行頭と同じにする.
   \cs_set:Nn \__jlreq_hook_everypar: {}
-  \def\item{%
+  \renewcommand*{\item}{%
     \cs_set:Nn \__jlreq_hook_everypar: { \cs_set:Nn \__jlreq_hook_everypar: {} \inhibitglue }
     \expandafter\everypar\expandafter{\the\everypar\__jlreq_hook_everypar:}
     \jlreq at useoriginalcs{item}%
@@ -804,13 +804,13 @@
   % 行頭括弧に対して\inhibitglueを入れたりする命令を作る
   % \jlreq at charlist@openingbracketsの各括弧に対して,\ifx\jlreq at nextchar 「1\fiみたいなのが並んだのを作る
   \def\jlreq at tempa{}
-  \def\jlreq at do#1{\jlreq at ifendmark{#1}{}{\appto\jlreq at tempa{\ifx\jlreq at nextchar#11\fi}\jlreq at do}}
+  \def\jlreq at do#1{\jlreq at ifendmark{#1}{}{\tl_put_right:Nn \jlreq at tempa{\ifx\jlreq at nextchar#11\fi}\jlreq at do}}
   \expandafter\jlreq at do\jlreq at charlist@openingbrackets\jlreq at endmark
   % JFM glueの伸び縮みで行頭括弧が揃わないのを防ぐために常に\inhibitglueを入れる.
   \str_if_eq:VnTF \jlreq at open@bracket at pos { nibu_tentsuki } {
-    \edef\jlreq at openbracket@hook at ii{\noexpand\ifnum0\expandonce{\jlreq at tempa}>0~\unexpanded{\hskip -.5\jlreq at zw\inhibitglue}\noexpand\fi}
+    \edef\jlreq at openbracket@hook at ii{\noexpand\ifnum0\exp_not:o {\jlreq at tempa}>0~\unexpanded{\hskip -.5\jlreq at zw\inhibitglue}\noexpand\fi}
   }{% zenkakunibu_nibu,zenkaku_tentsuki
-    \edef\jlreq at openbracket@hook at ii{\noexpand\ifnum0\expandonce{\jlreq at tempa}>0~\unexpanded{\inhibitglue}\noexpand\fi}
+    \edef\jlreq at openbracket@hook at ii{\noexpand\ifnum0\exp_not:o {\jlreq at tempa}>0~\unexpanded{\inhibitglue}\noexpand\fi}
   }
   % source special対策
   \def\jlreq at openbracket@hook at i{\ifx\jlreq at nextchar\special\expandafter\jlreq at openbracket@hook at iii\else\expandafter\jlreq at openbracket@hook at ii\fi}
@@ -817,7 +817,7 @@
   \def\jlreq at openbracket@hook at iii#1#2{#1{#2}\futurelet\jlreq at nextchar\jlreq at openbracket@hook at i}
   \def\jlreq at openbracket@hook{\futurelet\jlreq at nextchar\jlreq at openbracket@hook at i}
   \let\jlreq at hook@everypar=\jlreq at openbracket@hook
-  \def\item{%
+  \renewcommand*{\item}{%
     \def\jlreq at hook@everypar{%
       \let\jlreq at hook@everypar=\jlreq at openbracket@hook
       \inhibitglue
@@ -828,12 +828,12 @@
 
 %.. 禁則処理
 \ifx l\jlreq at engine
-  \def\jlreq at setpostbreakpenalty@#1#2{\ltjsetparameter{postbreakpenalty={`#1,#2}}}
-  \def\jlreq at setprebreakpenalty@#1#2{\ltjsetparameter{prebreakpenalty={`#1,#2}}}
-  \def\jlreq at addjaxspmode@#1#2{%
+  \cs_set:Nn \__jlreq_setpostbreakpenalty_aux:nn {\ltjsetparameter{postbreakpenalty={`#1,#2}}}
+  \cs_set:Nn \__jlreq_setprebreakpenalty_aux:nn {\ltjsetparameter{prebreakpenalty={`#1,#2}}}
+  \cs_set:Nn \__jlreq_addjaxspmode_aux:nn {%
     \jlreq at tempcnta=\ltjgetparameter{jaxspmode}{`#1}%
-    \jlreq at switch{#2}{
-      {pre}{%
+    \str_case:nn {#2} {
+      { pre } {%
         \ifnum\jlreq at tempcnta=2
           \ltjsetparameter{jaxspmode={`#1,allow}}%
         \else\ifnum\jlreq at tempcnta=0
@@ -840,7 +840,7 @@
           \ltjsetparameter{jaxspmode={`#1,preonly}}%
         \fi\fi
       }
-      {post}{%
+      { post } {%
         \ifnum\jlreq at tempcnta=1
           \ltjsetparameter{jaxspmode={`#1,allow}}%
         \else\ifnum\jlreq at tempcnta=0
@@ -849,10 +849,10 @@
       }
     }%
   }
-  \def\jlreq at deljaxspmode@#1#2{%
+  \cs_set:Nn \__jlreq_deljaxspmode_aux:nn {
     \jlreq at tempcnta=\ltjgetparameter{jaxspmode}{`#1}%
-    \jlreq at switch{#2}{
-      {pre}{%
+    \str_case:nn {#2} {
+      { pre } {%
         \ifnum\jlreq at tempcnta=2
           \ltjsetparameter{jaxspmode={`#1,postonly}}%
         \else\ifnum\jlreq at tempcnta=1
@@ -859,7 +859,7 @@
           \ltjsetparameter{jaxspmode={`#1,inhibit}}%
         \fi\fi
       }
-      {post}{%
+      { post } {%
         \ifnum\jlreq at tempcnta=3
           \ltjsetparameter{jaxspmode={`#1,preonly}}%
         \else\ifnum\jlreq at tempcnta=2
@@ -869,12 +869,12 @@
     }%
   }
 \else
-  \def\jlreq at setpostbreakpenalty@#1#2{\postbreakpenalty`#1=#2}
-  \def\jlreq at setprebreakpenalty@#1#2{\prebreakpenalty`#1=#2}
-  \def\jlreq at addjaxspmode@#1#2{%
+  \cs_set:Nn \__jlreq_setpostbreakpenalty_aux:nn {\postbreakpenalty`#1=#2}
+  \cs_set:Nn \__jlreq_setprebreakpenalty_aux:nn {\prebreakpenalty`#1=#2}
+  \cs_set:Nn \__jlreq_addjaxspmode_aux:nn {
     \jlreq at tempcnta=\inhibitxspcode`#1
-    \jlreq at switch{#2}{
-      {pre}{%
+    \str_case:nn {#2} {
+      { pre }{%
         \ifnum\jlreq at tempcnta=1
           \inhibitxspcode`#1=3
         \else\ifnum\jlreq at tempcnta=0
@@ -881,7 +881,7 @@
           \inhibitxspcode`#1=2
         \fi\fi
       }
-      {post}{%
+      { post }{%
         \ifnum\jlreq at tempcnta=2
           \inhibitxspcode`#1=3
         \else\ifnum\jlreq at tempcnta=0
@@ -890,10 +890,10 @@
       }
     }%
   }
-  \def\jlreq at deljaxspmode@#1#2{%
+  \cs_set:Nn \__jlreq_deljaxspmode_aux:nn {
     \jlreq at tempcnta=\inhibitxspcode`#1
-    \jlreq at switch{#2}{
-      {pre}{%
+    \str_case;nn {#2} {
+      { pre } {%
         \ifnum\jlreq at tempcnta=3
           \inhibitxspcode`#1=1
         \else\ifnum\jlreq at tempcnta=2
@@ -900,7 +900,7 @@
           \inhibitxspcode`#1=0
         \fi\fi
       }
-      {post}{%
+      { post } {%
         \ifnum\jlreq at tempcnta=3
           \inhibitxspcode`#1=2
         \else\ifnum\jlreq at tempcnta=1
@@ -911,33 +911,33 @@
   }
 \fi
 % #1{...}{#3}を...が#2のリストに対して適用.
-\cs_set:Nn \__jlreq_iterateapply:nnn {
+\cs_set:Nn \__jlreq_iterateapply:Nnn {
   \tl_map_inline:nn {#2} {
     #1{##1}{#3}
   }
 }
-\cs_set:Nn \__jlreq_setpostbreakpenalty:nn { \__jlreq_iterateapply:nnn {\jlreq at setpostbreakpenalty@} {#1} {#2}}
+\cs_set:Nn \__jlreq_setpostbreakpenalty:nn { \__jlreq_iterateapply:Nnn \__jlreq_setpostbreakpenalty_aux:nn {#1} {#2}}
 \cs_generate_variant:Nn \__jlreq_setpostbreakpenalty:nn { Vn }
-\cs_set:Nn \__jlreq_setprebreakpenalty:nn { \__jlreq_iterateapply:nnn {\jlreq at setprebreakpenalty@} {#1} {#2} }
+\cs_set:Nn \__jlreq_setprebreakpenalty:nn { \__jlreq_iterateapply:Nnn \__jlreq_setprebreakpenalty_aux:nn {#1} {#2} }
 \cs_generate_variant:Nn \__jlreq_setprebreakpenalty:nn { Vn }
-\cs_set:Nn \__jlreq_addjaxspmode:nn {\__jlreq_iterateapply:nnn {\jlreq at addjaxspmode@} {#1} {#2} }
+\cs_set:Nn \__jlreq_addjaxspmode:nn {\__jlreq_iterateapply:Nnn \__jlreq_addjaxspmode_aux:nn {#1} {#2} }
 \cs_generate_variant:Nn \__jlreq_addjaxspmode:nn { Vn }
-\cs_set:Nn \__jlreq_deljaxspmode:nn { \__jlreq_iterateapply:nnn{\jlreq at deljaxspmode@} {#1} {#2} }
+\cs_set:Nn \__jlreq_deljaxspmode:nn { \__jlreq_iterateapply:Nnn \__jlreq_deljaxspmode_aux:nn {#1} {#2} }
 \cs_generate_variant:Nn \__jlreq_deljaxspmode:nn { Vn }
 
-\jlreq at aftercls@addtodeletecs{\__jlreq_iterateapply:nnn}
-\jlreq at aftercls@addtodeletecs{\__jlreq_setpostbreakpenalty:nn}
-\jlreq at aftercls@addtodeletecs{\__jlreq_setpostbreakpenalty:Vn}
-\jlreq at aftercls@addtodeletecs{\jlreq at setpostbreakpenalty@}
-\jlreq at aftercls@addtodeletecs{\__jlreq_setprebreakpenalty:nn}
-\jlreq at aftercls@addtodeletecs{\__jlreq_setprebreakpenalty:Vn}
-\jlreq at aftercls@addtodeletecs{\jlreq at setprebreakpenalty@}
-\jlreq at aftercls@addtodeletecs{\__jlreq_addjaxspmode:nn}
-\jlreq at aftercls@addtodeletecs{\__jlreq_addjaxspmode:Vn}
-\jlreq at aftercls@addtodeletecs{\jlreq at addjaxspmode@}
-\jlreq at aftercls@addtodeletecs{\__jlreq_deljaxspmode:nn}
-\jlreq at aftercls@addtodeletecs{\__jlreq_deljaxspmode:Vn}
-\jlreq at aftercls@addtodeletecs{\jlreq at deljaxspmode@}
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_iterateapply:Nnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_setpostbreakpenalty:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_setpostbreakpenalty:Vn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_setpostbreakpenalty_aux:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_setprebreakpenalty:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_setprebreakpenalty:Vn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_setprebreakpenalty_aux:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addjaxspmode:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addjaxspmode:Vn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addjaxspmode_aux:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_deljaxspmode:nn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_deljaxspmode:Vn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_deljaxspmode_aux:nn
 
 % 行末禁則
 \__jlreq_setpostbreakpenalty:Vn \jlreq at charlist@openingbrackets {10000}
@@ -977,7 +977,7 @@
   \cs_set:Nn \__jlreq_setkcatcode:nn {
     \clist_map_inline:nn {#1} { \kcatcode"##1=#2\relax }
   }
-  \jlreq at aftercls@addtodeletecs{\__jlreq_setkcatcode:nn}
+  \__jlreq_aftercls_addtodeletecs:N \__jlreq_setkcatcode:nn
   % LuaTeX-jaのデフォルトのままに近い設定をする
   % 範囲1&8
   \__jlreq_setkcatcode:nn {80} {15} % Latin-1 Supplement,どうしよう……
@@ -1063,13 +1063,13 @@
 \DeclareRobustCommand*\ {\futurelet\jlreq at nextchar\jlreq at zenkakuspace@ignorespaces}
 % 後続の空白を無視する処理
 \edef\jlreq at zenkakuspace@ignorespaces{%
-  \noexpand\ifx\expandonce{\space}\unexpanded{\jlreq at nextchar\expandafter\jlreq at zenkakuspace@ignorespaces@\else\expandafter\jlreq at zenkakuspace@main\fi}%
+  \noexpand\ifx\exp_not:o {\space}\unexpanded{\jlreq at nextchar\expandafter\jlreq at zenkakuspace@ignorespaces@\else\expandafter\jlreq at zenkakuspace@main\fi}%
 }
 \expandafter\def\expandafter\jlreq at zenkakuspace@ignorespaces@\space{\ }
 \def\jlreq at tempa{}
-\def\jlreq at do#1{\jlreq at ifendmark{#1}{}{\appto\jlreq at tempa{\ifnum\lastnodechar=`#1~1\fi}\jlreq at do}}
+\def\jlreq at do#1{\jlreq at ifendmark{#1}{}{\tl_put_right:Nn \jlreq at tempa{\ifnum\lastnodechar=`#1~1\fi}\jlreq at do}}
 \expandafter\jlreq at do\jlreq at charlist@dividingpunctuationmarks\jlreq at endmark
-\edef\@tempa{\noexpand\ifnum0\expandonce{\jlreq at tempa}>0~}
+\edef\@tempa{\noexpand\ifnum0\exp_not:o {\jlreq at tempa}>0~}
 \expandafter\DeclareRobustCommand\expandafter*\expandafter\jlreq at zenkakuspace@main\expandafter{\@tempa
     \hskip 1\jlreq at zw\hbox{}%
     \jlreq at lastnodechar=` 
@@ -1096,10 +1096,10 @@
 % 区切り約物.\? みたいな命令を作る.直後の空きが自動で入る.
 % \?*とすると文中の?として扱われる.
 \def\jlreq at tempa{}
-\def\jlreq at do#1{\jlreq at ifendmark{#1}{}{\appto\jlreq at tempa{\ifx\jlreq at nextchar #11\fi}\jlreq at do}}
+\def\jlreq at do#1{\jlreq at ifendmark{#1}{}{\tl_put_right:Nn \jlreq at tempa{\ifx\jlreq at nextchar #11\fi}\jlreq at do}}
 \expandafter\jlreq at do\jlreq at charlist@closingbrackets\jlreq at endmark
 \edef\jlreq at dividingpunctuationmarkscommand{%
-  \noexpand\ifnum 0\expandonce{\jlreq at tempa}>0~\unexpanded{\expandafter\ignorespaces\else\expandafter\ \fi}%
+  \noexpand\ifnum 0\exp_not:o {\jlreq at tempa}>0~\unexpanded{\expandafter\ignorespaces\else\expandafter\ \fi}%
 }
 \def\jlreq at do#1{%
   \jlreq at ifendmark{#1}{}{
@@ -1140,14 +1140,15 @@
 
 \emergencystretch 3\jlreq at gol
 \setlength{\parindent}{1\zw}
-\def\jlreq at setfontsizehook{}
-\jlreq at saveoriginalcs{set at fontsize}
-\apptocmd{\set at fontsize}{\expandafter\def\expandafter\size at update\expandafter{\size at update\jlreq at setfontsizehook}}{}{}
-\appto\jlreq at setfontsizehook{ \dim_compare:nT { \parindent>0pt } { \setlength{\parindent}{1\jlreq at zw} } }
+\hook_gput_code:nnn { cmd/set at fontsize/after } {.} {
+  \expandafter\def\expandafter\size at update\expandafter{\size at update\g__jlreq_setfontsizehook}
+}
+\tl_new:N \g__jlreq_setfontsizehook
+\tl_set:Nn \g__jlreq_setfontsizehook { \dim_compare:nT { \parindent>0pt } { \setlength{\parindent}{1\jlreq at zw} } }
 \ifx l\jlreq at engine
   \@tempskipa=\ltjgetparameter{kanjiskip}
   \ifdim\@tempskipa=\maxdimen\else
-    \appto\jlreq at setfontsizehook{%
+    \tl_put_right:Nn \g__jlreq_setfontsizehook {%
       \ltj at setpar@global
       \ltjsetkanjiskip\jlreqkanjiskip
       \@tempskipa=\ltjgetparameter{xkanjiskip}%
@@ -1157,7 +1158,7 @@
     }
   \fi
 \else
-  \appto\jlreq at setfontsizehook{%
+  \tl_put_right:Nn \g__jlreq_setfontsizehook {%
     \kanjiskip=\jlreqkanjiskip
     \ifdim\xkanjiskip>0pt
       \xkanjiskip=\jlreqxkanjiskip
@@ -1357,8 +1358,8 @@
     \jlreq at determine@kihonhanmen at warning@firstfalse
   \fi
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at determine@kihonhanmen at warning}
-\jlreq at aftercls@addtodeleteif{\ifjlreq at determine@kihonhanmen at warning@first}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at determine@kihonhanmen at warning
+\__jlreq_aftercls_addtodeleteif:N \ifjlreq at determine@kihonhanmen at warning@first
 \@tempdima=1\zw
 \ifx\jlreq at option@line at length\@empty
   \if at tate
@@ -1412,7 +1413,7 @@
   \divide\textheight\baselineskip \multiply\textheight\baselineskip
   \addtolength{\textheight}{\topskip}
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at adjusttextheight}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at adjusttextheight
 \ifx\jlreq at option@number at of@lines\@empty
   \if at tate
     \ifnum 0\ifx\jlreq at option@gutter\@empty 1\fi\ifx\jlreq at option@fore at edge\@empty 1\fi>0
@@ -1457,8 +1458,8 @@
     \jlreq at note{基本版面の配置はのどの空き量を指定する (2.4.1.b).}
   \fi
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at setsidemargin@by at gutter}
-\jlreq at aftercls@addtodeletecs{\jlreq at setsidemargin@by at fore@edge}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at setsidemargin@by at gutter
+\__jlreq_aftercls_addtodeletecs:N \jlreq at setsidemargin@by at fore@edge
 
 \ifx\jlreq at option@gutter\@empty
   \ifx\jlreq at option@fore at edge\@empty
@@ -1511,7 +1512,7 @@
     \setlength{\topmargin}{\dimexpr #1 - \headsep - \headheight - \topskip + \Cht\relax}
   \fi
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at settopmarginbyhead}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at settopmarginbyhead
 % 地の値から
 \def\jlreq at settopmarginbyfoot#1{
   \if at tate
@@ -1521,7 +1522,7 @@
     \setlength{\topmargin}{\dimexpr\paperheight - \textheight + \topskip - 1\zh - \headsep - \headheight - #1\relax}
   \fi
 }
-\jlreq at aftercls@addtodeletecs{\jlreq at settopmarginbyfoot}
+\__jlreq_aftercls_addtodeletecs:N \jlreq at settopmarginbyfoot
 \ifx\jlreq at option@head at space\@empty
   \ifx\jlreq at option@foot at space\@empty
     \if at tate
@@ -1624,7 +1625,7 @@
       \jlreq at tempdimb=\dimexpr\the\numexpr\jlreq at tempdima/\dimexpr 1\jlreq at zw\relax + 2\relax\jlreq at zw\relax
       \edef\jlreq at do{%
         \unexpanded{\def\jlreq at result}{%
-          \noexpand\def\expandonce{\csname l@#1\endcsname}{%
+          \noexpand\def\exp_not:c {l@#1}{%
             \unexpanded{\@dottedtocline{#2}{0pt}}{\the\jlreq at tempdimb}%
           }%
         }%
@@ -1669,7 +1670,7 @@
   \begingroup
     \let\jlreq at contents@label at format=\@undefined
     \let\jlreq at format=\@undefined
-    \edef\jlreq at label@format{\expandonce{\csname the#1\endcsname}}%
+    \edef\jlreq at label@format{\exp_not:c {the#1}}%
     \newif\ifjlreq at number
     \keys_define:nn { DeclareTobiraHeading:#1 } {
       label_format .tl_set:N = \jlreq at label@format,
@@ -1686,12 +1687,12 @@
     \ifx\jlreq at format\@undefined
       \def\jlreq at format##1##2{##1##2}%
     \fi
-    \edef\jlreq at formatwlabel{\noexpand\jlreq at format{\expandonce{\jlreq at label@format}}}%
+    \edef\jlreq at formatwlabel{\noexpand\jlreq at format{\exp_not:o {\jlreq at label@format}}}%
     \jlreq at heading@make at l@{#1}{#2}{\jlreq at label@format}%
-    \eappto\jlreq at do{\expandonce{\jlreq at result}}%
+    \tl_put_right:Nx \jlreq at do {\exp_not:o {\jlreq at result}}%
     \edef\jlreq at do{%
-      \expandonce{\jlreq at do}%
-      \noexpand\def\expandonce{\csname jlreq at TobiraHeading@start@#1\endcsname}[####1]####2{%
+      \exp_not:o {\jlreq at do}%
+      \noexpand\def\exp_not:c {jlreq at TobiraHeading@start@#1}[####1]####2{%
         \ifjlreq at number
           \unexpanded{\ifnum#2>\c at secnumdepth\else}%
             \unexpanded{\refstepcounter{#1}}%
@@ -1704,41 +1705,41 @@
         \ifjlreq at number
           \unexpanded{\jlreq at if{\ifnum#2>\c at secnumdepth\relax\fi}}{%
             \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
-            \expandonce{\jlreq at format{}{##1}}%
+            \exp_not:o {\jlreq at format{}{##1}}%
           }{%
             \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}%
-            \expandafter\expandonce\expandafter{\jlreq at formatwlabel{##2}}%
+            \expandafter\exp_not:o \expandafter{\jlreq at formatwlabel{##2}}%
           }%
         \else
           \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
-          \expandonce{\jlreq at format{}{##1}}%
+          \exp_not:o {\jlreq at format{}{##1}}%
         \fi
-        \expandonce{\csname jlreq at heading@maketoc@#1\endcsname}{\ifjlreq at number\else -\fi}{\expandonce{\jlreq at label@format}}{####1}%
+        \exp_not:c {jlreq at heading@maketoc@#1}{\ifjlreq at number\else -\fi}{\exp_not:o {\jlreq at label@format}}{####1}%
         \noexpand\@afterheading
-        \expandonce{\jlreq at heading@clearpage}%
+        \exp_not:o {\jlreq at heading@clearpage}%
         \unexpanded{\if at restonecol\twocolumn\fi}%
       }%
-      \noexpand\def\expandonce{\csname jlreq at TobiraHeading@start at s@#1\endcsname}####1{%
+      \noexpand\def\exp_not:c {jlreq at TobiraHeading@start at s@#1}####1{%
         \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
         \unexpanded{\jlreq at ifempty{##1}%
           {\long\gdef\jlreqHeadingText####1{}}%
           {\long\gdef\jlreqHeadingText####1{####1}}%
         }%
-        \expandonce{\jlreq at format{}{##1}}
-        \expandonce{\csname jlreq at heading@maketoc@#1\endcsname}{*}{\expandonce{\jlreq at label@format}}{####1}%
+        \exp_not:o {\jlreq at format{}{##1}}
+        \exp_not:c {jlreq at heading@maketoc@#1}{*}{\exp_not:o {\jlreq at label@format}}{####1}%
         \noexpand\@afterheading
-        \expandonce{\jlreq at heading@clearpage}%
+        \exp_not:o {\jlreq at heading@clearpage}%
         \unexpanded{\if at restonecol\twocolumn\fi}%
       }%
-      \noexpand\def\expandonce{\csname jlreq at headingcs@#1\endcsname}{%
+      \noexpand\def\exp_not:c {jlreq at headingcs@#1}{%
         % 改丁.これでよいのかな.
         \unexpanded{\if at twocolumn\onecolumn\@restonecoltrue\else\@restonecolfalse\fi\cleartooddpage[empty]}%
-        \ifx\jlreq at pagestyle\@empty\else\noexpand\thispagestyle{\expandonce{\jlreq at pagestyle}}\fi
-        \noexpand\secdef{\expandonce{\csname jlreq at TobiraHeading@start@#1\endcsname}}{\expandonce{\csname jlreq at TobiraHeading@start at s@#1\endcsname}}}%
-      \noexpand\def\expandonce{\csname #1\endcsname}{%
+        \ifx\jlreq at pagestyle\@empty\else\noexpand\thispagestyle{\exp_not:o {\jlreq at pagestyle}}\fi
+        \noexpand\secdef{\exp_not:c {jlreq at TobiraHeading@start@#1}}{\exp_not:c {jlreq at TobiraHeading@start at s@#1}}}%
+      \noexpand\def\exp_not:c {#1}{%
         \noexpand\UseHook{jlreq/heading/before}%
         \noexpand\UseHook{jlreq/heading/before/#1}%
-        \expandonce{\csname jlreq at headingcs@#1\endcsname}%
+        \exp_not:c {jlreq at headingcs@#1}%
       }%
     }%
   \expandafter\endgroup
@@ -1771,8 +1772,8 @@
 \long\def\jlreq at BlockHeading@start#1#2#3#4#5#6{%
   \if at noskipsec\leavevmode\fi
   % #5と#6は\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる)
-  \edef\jlreq at BlockHeading@start at eachformat{\expandonce{\@firstoftwo#5}}%
-  \edef\jlreq at BlockHeading@start at format{\expandonce{\@secondoftwo#5}}%
+  \edef\jlreq at BlockHeading@start at eachformat{\exp_not:o {\@firstoftwo#5}}%
+  \edef\jlreq at BlockHeading@start at format{\exp_not:o {\@secondoftwo#5}}%
   \edef\jlreq at BlockHeading@start at totalformat{\unexpanded{#6}}%
   \jlreq at BlockHeading@start@{#1}{#2}{#3}{#4}%
 }
@@ -1787,7 +1788,7 @@
 
 % {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}{5 = running head}{6 = 見出し}[7 = 副題]
 \long\def\jlreq at BlockHeading@start@@@#1#2#3#4#5#6[#7]{%
-  \edef\jlreq at do{\unexpanded{\jlreq at BlockHeading@start@@@@{#1}{#2}{#3}}{\expandonce{\jlreq at BlockHeading@start at totalformat}}}%
+  \edef\jlreq at do{\unexpanded{\jlreq at BlockHeading@start@@@@{#1}{#2}{#3}}{\exp_not:o {\jlreq at BlockHeading@start at totalformat}}}%
   \jlreq at do{#4}{#5}{#6}{#7}%
 }
 
@@ -1794,13 +1795,13 @@
 % {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = 全フォーマット}{5 = *}{6 = running head}{7 = 見出し}{8 = 副題}
 \long\def\jlreq at BlockHeading@start@@@@#1#2#3#4#5#6#7#8{%
   \edef\jlreq at tempa##1##2##3##4##5##6##7{%
-    \unexpanded{\jlreq at BlockHeading@start at makeoutput{#1}{#2}}{{##1}{##2}{##3}}{\expandonce{\jlreq at BlockHeading@start at eachformat}}{\expandonce{\jlreq at BlockHeading@start at format}}\unexpanded{{#5}{#6}{#7}{#8}}%
+    \unexpanded{\jlreq at BlockHeading@start at makeoutput{#1}{#2}}{{##1}{##2}{##3}}{\exp_not:o {\jlreq at BlockHeading@start at eachformat}}{\exp_not:o {\jlreq at BlockHeading@start at format}}\unexpanded{{#5}{#6}{#7}{#8}}%
     \unexpanded{\def\jlreq at tempb}{{##4}{##5}{##6}}% 縦方向空き
     \noexpand\jlreq at ifempty{##7}{\noexpand\jlreq at tempatrue}{\noexpand\jlreq at tempafalse}% 偶数ページのみで改ページするならば\jlreq at tempatrue
   }%
   \jlreq at tempa#3%
   \global\advance\jlreq at BlockHeading@spaces at current@count by 1
-  \gappto\jlreq at BlockHeading@spaces at current@sequence{_#1}%
+  \tl_gput_right:Nn \jlreq at BlockHeading@spaces at current@sequence {_#1}%
   % 連続する見出しの間の処理をするために,即時では出力せず,いったんマクロに格納する.
   % \jlreq at BlockHeading@spaces at current@before@<n>
   % \jlreq at BlockHeading@start at gyodori\jlreq at BlockHeading@spaces at current@space@<n>{jlreq at BlockHeading@spaces at current@output@<n>}
@@ -1808,16 +1809,16 @@
   % \jlreq at BlockHeading@spaces at current@after@<n>
   % として後に呼び出される.(spaceは書き換えられる可能性がある.)
   \expandafter\xdef\csname jlreq at BlockHeading@spaces at current@output@\the\jlreq at BlockHeading@spaces at current@count\endcsname{%
-    \expandonce{\jlreq at resultb}%
+    \exp_not:o {\jlreq at resultb}%
   }%
   \expandafter\xdef\csname jlreq at BlockHeading@spaces at current@space@\the\jlreq at BlockHeading@spaces at current@count\endcsname{%
-    \expandonce{\jlreq at tempb}%
+    \exp_not:o {\jlreq at tempb}%
   }%
   \def\@tempa##1##2##3{##1}%
   \expandafter\xdef\csname jlreq at BlockHeading@spaces at current@before@\the\jlreq at BlockHeading@spaces at current@count\endcsname{%
     \noexpand\allowbreak
-    \expandonce{\@tempa#4}%
-    \expandonce{\jlreq at resulta}%
+    \exp_not:o {\@tempa#4}%
+    \exp_not:o {\jlreq at resulta}%
     \ifjlreq at tempa\unexpanded{%
       \jlreq at setcurrentpage
       \edef\jlreq at BlockHeading@currentpage{\the\jlreq at currentpage}%
@@ -1825,17 +1826,17 @@
   }%
   \def\@tempa##1##2##3{##2}%
   \expandafter\xdef\csname jlreq at BlockHeading@spaces at current@format@\the\jlreq at BlockHeading@spaces at current@count\endcsname{%
-    \expandonce{\@tempa#4}%
+    \exp_not:o {\@tempa#4}%
   }%
   \def\@tempa##1##2##3{##3}%
   \expandafter\xdef\csname jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count\endcsname{%
-    \expandonce{\jlreq at resultc}%
+    \exp_not:o {\jlreq at resultc}%
     \ifjlreq at tempa\unexpanded{%
       \ifx\jlreq at BlockHeading@currentpage\@empty\nobreak\else
         \ifodd\jlreq at BlockHeading@currentpage\nobreak\else\allowbreak\fi
       \fi
     }\else\noexpand\nobreak\fi
-    \expandonce{\@tempa#4}%
+    \exp_not:o {\@tempa#4}%
   }%
   \ifx\jlreq at BlockHeading@spaces at headingslist\@empty
     \expandafter\jlreq at BlockHeading@spaces at outputwospace
@@ -1847,7 +1848,7 @@
 
 \def\jlreq at BlockHeading@start at afterheading{\futurelet\jlreq at nextchar\jlreq at BlockHeading@start at afterheading@i}
 \edef\jlreq at BlockHeading@start at afterheading@i{%
-  \noexpand\ifx\expandonce{\space}\unexpanded{\jlreq at nextchar\expandafter\jlreq at BlockHeading@start at afterheading@skipspaces}%
+  \noexpand\ifx\exp_not:o {\space}\unexpanded{\jlreq at nextchar\expandafter\jlreq at BlockHeading@start at afterheading@skipspaces}%
   \unexpanded{\else\expandafter\jlreq at BlockHeading@start at afterheading@ii\fi}%
 }
 % スペースを読み飛ばす
@@ -1873,11 +1874,11 @@
 
 % コントロールシークエンスを保存
 \long\def\jlreq at BlockHeading@start at afterheading@saveafter at cs@noargument#1{%
-  \csgappto{jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count}{#1}%
+  \tl_put_right:cn {jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count} {#1}
   \jlreq at BlockHeading@start at afterheading
 }
 \long\def\jlreq at BlockHeading@start at afterheading@saveafter at cs#1{%
-  \csgappto{jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count}{#1}%
+  \tl_put_right:cn {jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count} {#1}
   \jlreq at BlockHeading@start at afterheading@saveafter at option
 }
 % オプションがあれば保存
@@ -1885,7 +1886,7 @@
   \@ifnextchar[{\jlreq at BlockHeading@start at afterheading@saveafter at option@}{\jlreq at BlockHeading@start at afterheading@saveafter at arguments}%
 }
 \long\def\jlreq at BlockHeading@start at afterheading@saveafter at option@[#1]{%
-  \csxappto{jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count}{\unexpanded{[#1]}}%
+  \tl_put_right:cx {jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count} {\exp_not:n {[#1]}}
   \jlreq at BlockHeading@start at afterheading@saveafter at arguments
 }
 % 引数を保存し続けるループ
@@ -1896,7 +1897,7 @@
   \noexpand\ifx\space\unexpanded{\jlreq at nextchar\expandafter\jlreq at BlockHeading@start at afterheading@saveafter at arguments@@\else\expandafter\jlreq at BlockHeading@start at afterheading@saveafter at arguments@@@\fi}%
 }
 \expandafter\def\expandafter\jlreq at BlockHeading@start at afterheading@saveafter at arguments@@\space{%
-  \csgappto{jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count}{ }%
+  \tl_put_right:cn {jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count} { }
   \jlreq at BlockHeading@start at afterheading@saveafter at arguments
 }
 \def\jlreq at BlockHeading@start at afterheading@saveafter at arguments@@@{%
@@ -1903,7 +1904,7 @@
   \jlreq at ifnextchar\bgroup{\jlreq at BlockHeading@start at afterheading@saveafter at arguments@@@@}{\jlreq at BlockHeading@start at afterheading}%
 }
 \long\def\jlreq at BlockHeading@start at afterheading@saveafter at arguments@@@@#1{%
-  \csxappto{jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count}{\unexpanded{{#1}}}%
+  \tl_put_right:cx {jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count} {\exp_not:n {{#1}}}
   \jlreq at BlockHeading@start at afterheading@saveafter at arguments
 }
 
@@ -1923,9 +1924,9 @@
     \fi
     \edef\jlreq at tempa{\expandafter\jlreq at BlockHeading@start at geteachformat\expandafter{\jlreq at tempc}#4}% {ラベルフォーマット}{本文フォーマット}{副題フォーマット}
     \edef\jlreq at tempb{\expandafter\jlreq at BlockHeading@start at getformat\expandafter{\jlreq at tempc}#5}% {まとめるフォーマット}
-    \edef\jlreq at do{\noexpand\jlreq at BlockHeading@start at makeoutput@@\expandonce{\jlreq at tempa}\expandonce{\jlreq at tempb}\unexpanded{{#8}{#9}}}%
+    \edef\jlreq at do{\noexpand\jlreq at BlockHeading@start at makeoutput@@\exp_not:o {\jlreq at tempa}\exp_not:o {\jlreq at tempb}\unexpanded{{#8}{#9}}}%
     \jlreq at do
-    \edef\jlreq at do{\noexpand\jlreq at BlockHeading@start at makeoutput@\unexpanded{#3}{\expandonce{\jlreq at result}}}%
+    \edef\jlreq at do{\noexpand\jlreq at BlockHeading@start at makeoutput@\unexpanded{#3}{\exp_not:o {\jlreq at result}}}%
     \jlreq at do
     % \jlreq at tempa -> 素のラベルフォーマット
     \edef\jlreq at tempa{\jlreq at BlockHeading@start at getonlylabelformat#4}%
@@ -1945,10 +1946,10 @@
           {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{####1}}}%
       }%
       \unexpanded{\def\jlreq at resultb}{%
-        \expandonce{\jlreq at result}%
+        \exp_not:o {\jlreq at result}%
       }%
       \unexpanded{\def\jlreq at resultc}{%
-        \expandonce{\csname jlreq at heading@maketoc@#1\endcsname}{\unexpanded{#6}}{\expandonce{\jlreq at tempa}}{\unexpanded{#7}}%
+        \exp_not:c {jlreq at heading@maketoc@#1}{\unexpanded{#6}}{\exp_not:o {\jlreq at tempa}}{\unexpanded{#7}}%
       }%
     }%
   \expandafter\endgroup
@@ -1998,9 +1999,9 @@
     }%
     \long\def\jlreq at tempc##1##2##3{#4}% 全体のフォーマット
     % 二度展開すると欲しいものが得られる
-    \edef\jlreq at tempa{\noexpand\jlreq at tempc{\unexpanded{#1}}{\expandonce{\jlreq at tempa}}{\expandonce{\jlreq at tempb}}}%
+    \edef\jlreq at tempa{\noexpand\jlreq at tempc{\unexpanded{#1}}{\exp_not:o {\jlreq at tempa}}{\exp_not:o {\jlreq at tempb}}}%
     \edef\jlreq at do{%
-      \unexpanded{\def\jlreq at result}{\expandafter\expandonce\expandafter{\jlreq at tempa}}%
+      \unexpanded{\def\jlreq at result}{\expandafter\exp_not:o \expandafter{\jlreq at tempa}}%
     }%
   \expandafter\endgroup
   \jlreq at do
@@ -2019,7 +2020,7 @@
     \def\jlreq at resultb{}%
   }{%
     \let\jlreq at resulta=#1
-    \edef\jlreq at resultb{\expandonce{\jlreq at BlockHeading@start at removecolumn#2}}%
+    \edef\jlreq at resultb{\exp_not:o {\jlreq at BlockHeading@start at removecolumn#2}}%
   }%
 }
 
@@ -2196,7 +2197,7 @@
     \def\jlreq at parsecomma##1##2{%
       \jlreq at helper@dividebycomma{##1}%
       \jlreq at if{\ifjlreq at result\fi}{%
-        \edef\jlreq at do{\noexpand\jlreq at tempa{\expandonce{\jlreq at resulta}}{\expandonce{\jlreq at resultb}}}%
+        \edef\jlreq at do{\noexpand\jlreq at tempa{\exp_not:o {\jlreq at resulta}}{\exp_not:o {\jlreq at resultb}}}%
       }{%
         \edef\jlreq at do{\noexpand\jlreq at tempa{##1}{}}%
       }%
@@ -2227,7 +2228,7 @@
         \jlreq at parsecomma{##1}{%
           \jlreq at iffirsttoken{####1}{*}{%
             \jlreq at second@text at indent@withlabelfalse
-            \edef\jlreq at second@heading at text@indent at wlabel{\expandonce{\@gobble ####1}}%
+            \edef\jlreq at second@heading at text@indent at wlabel{\exp_not:o {\@gobble ####1}}%
           }{%
             \jlreq at second@text at indent@withlabeltrue
             \def\jlreq at second@heading at text@indent at wlabel{####1}%
@@ -2244,7 +2245,7 @@
       subtitle_indent .code:n = {%
         \jlreq at iffirsttoken{##1}{*}{%
           \jlreq at subtitleindent@withlabelfalse
-          \edef\jlreq at subtitle@indent{\expandonce{\@gobble ##1}}%
+          \edef\jlreq at subtitle@indent{\exp_not:o {\@gobble ##1}}%
         }{%
           \jlreq at subtitleindent@withlabeltrue
           \def\jlreq at subtitle@indent{##1}%
@@ -2251,7 +2252,7 @@
         }%
       },
       subtitle_break .choices:nn = {true,false}{\csname jlreq at subtitle@break##1\endcsname},
-      afterindent .choices:nn = {true,false}{\edef\jlreq at afterindent{\expandonce{\csname @afterindent##1\endcsname}}},
+      afterindent .choices:nn = {true,false}{\edef\jlreq at afterindent{\exp_not:c {@afterindent##1}}},
       allowbreak_if_evenpage .choices:nn = {true,false}{%
         \str_if_eq:nnTF {##1} {true}
           {\def\jlreq at allowbreak@evenpage{}}
@@ -2273,7 +2274,7 @@
             \jlreq at tempafalse
             \def\jlreq at column@spanning{true}%
           }{%
-            \jlreq at switch{##1}{%
+            \str_case_e:nn {##1} {
               {true}{\jlreq at tempafalse\def\jlreq at column@spanning{true}}
               {false}{\jlreq at tempafalse\def\jlreq at column@spanning{false}}
             }%
@@ -2303,20 +2304,20 @@
     % ラベルありフォーマット:前
     \edef\jlreq at pre@format at wlabel{%
       \noexpand\noindent
-      \expandonce{\jlreq at font}%
+      \exp_not:o {\jlreq at font}%
       \ifnum 0\ifjlreq at second@text at indent@withlabel 1\fi\ifjlreq at subtitleindent@withlabel 1\fi>0
-        \unexpanded{\setbox\jlreq at BlockHeading@start at label@box=\hbox}{\expandonce{\jlreq at label@format}}%
+        \unexpanded{\setbox\jlreq at BlockHeading@start at label@box=\hbox}{\exp_not:o {\jlreq at label@format}}%
         \unexpanded{\xdef\jlreq at BlockHeading@start at labellength{\the\wd\jlreq at BlockHeading@start at label@box}}%
         \unexpanded{\def\jlreq at BlockHeading@start at outputlabel{\box\jlreq at BlockHeading@start at label@box}}%
       \else
         \unexpanded{\xdef\jlreq at BlockHeading@start at labellength{0pt}}%
-        \unexpanded{\def\jlreq at BlockHeading@start at outputlabel}{\expandonce{\jlreq at label@format}}%
+        \unexpanded{\def\jlreq at BlockHeading@start at outputlabel}{\exp_not:o {\jlreq at label@format}}%
       \fi
     }%
     % ラベルなしフォーマット:前
     \edef\jlreq at pre@format at wolabel{%
       \noexpand\noindent
-      \expandonce{\jlreq at font}%
+      \exp_not:o {\jlreq at font}%
       \unexpanded{\xdef\jlreq at BlockHeading@start at labellength{0pt}}%
       \unexpanded{\def\jlreq at BlockHeading@start at outputlabel}{}%
     }%
@@ -2325,22 +2326,22 @@
       \noexpand\jlreq at BlockHeading@start at outputlabel
       \unexpanded{\inhibitglue\hbox{}}%
       \ifdim\dimexpr\jlreq at after@label at space\relax=\dimexpr 0pt\relax\else
-        \noexpand\hspace*{\noexpand\dimexpr\expandonce{\jlreq at after@label at space}\noexpand\relax}%
+        \noexpand\hspace*{\noexpand\dimexpr\exp_not:o {\jlreq at after@label at space}\noexpand\relax}%
       \fi
     }%
     \edef\jlreq at heading@text at format@wlabel{%
       \ifnum 0\ifdim\jlreq at second@heading at text@indent at wlabel=\dimexpr 0pt\relax\else 1\fi\ifjlreq at second@text at indent@withlabel 1\fi>0
-        \unexpanded{\hangindent=\glueexpr}(\expandonce{\jlreq at second@heading at text@indent at wlabel})%
-          \ifjlreq at second@text at indent@withlabel + (\expandonce{\jlreq at after@label at space}) + \unexpanded{\jlreq at BlockHeading@start at labellength}\fi
+        \unexpanded{\hangindent=\glueexpr}(\exp_not:o {\jlreq at second@heading at text@indent at wlabel})%
+          \ifjlreq at second@text at indent@withlabel + (\exp_not:o {\jlreq at after@label at space}) + \unexpanded{\jlreq at BlockHeading@start at labellength}\fi
           \noexpand\relax
       \fi
-      \expandonce{\jlreq at heading@text at format}%
+      \exp_not:o {\jlreq at heading@text at format}%
     }%
     \edef\jlreq at heading@text at format@wolabel{%
       \ifdim\dimexpr\jlreq at second@heading at text@indent at wolabel\relax=\dimexpr 0pt\relax\else
-        \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq at second@heading at text@indent at wolabel}\noexpand\relax
+        \unexpanded{\hangindent=\dimexpr}\exp_not:o {\jlreq at second@heading at text@indent at wolabel}\noexpand\relax
       \fi
-      \expandonce{\jlreq at heading@text at format}%
+      \exp_not:o {\jlreq at heading@text at format}%
     }%
     % 副題:ラベルありかなしかはhangindentの扱いだけなので,他はまとめる
     \def\jlreq at make@subtitle at format##1##2{%
@@ -2351,20 +2352,20 @@
           \unexpanded{\nobreak\noindent}%
         \else
           \ifdim\jlreq at subtitle@indent=\dimexpr 0pt\relax\else
-            \noexpand\hspace*{\expandonce{\jlreq at subtitle@indent}}%
+            \noexpand\hspace*{\exp_not:o {\jlreq at subtitle@indent}}%
           \fi
         \fi
-        {\expandonce{\jlreq at subtitle@font}\expandonce{\jlreq at subtitle@format}}%
+        {\exp_not:o {\jlreq at subtitle@font}\exp_not:o {\jlreq at subtitle@format}}%
       }%
     }%
     \jlreq at make@subtitle at format\jlreq at subtitle@format at wlabel{%
       \ifjlreq at subtitleindent@withlabel
         \noexpand\hangafter=0
-        \unexpanded{\hangindent=\dimexpr}\noexpand\jlreq at BlockHeading@start at labellength + (\expandonce{\jlreq at after@label at space}) + (\expandonce{\jlreq at subtitle@indent})\noexpand\relax
+        \unexpanded{\hangindent=\dimexpr}\noexpand\jlreq at BlockHeading@start at labellength + (\exp_not:o {\jlreq at after@label at space}) + (\exp_not:o {\jlreq at subtitle@indent})\noexpand\relax
       \else
         \ifdim\jlreq at subtitle@indent=\dimexpr 0pt\relax\else
           \noexpand\hangafter=0
-          \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq at subtitle@indent}\noexpand\relax
+          \unexpanded{\hangindent=\dimexpr}\exp_not:o {\jlreq at subtitle@indent}\noexpand\relax
         \fi
       \fi
     }%
@@ -2371,15 +2372,15 @@
     \jlreq at make@subtitle at format\jlreq at subtitle@format at wolabel{%
       \ifdim\jlreq at subtitle@indent=\dimexpr 0pt\relax\else
         \noexpand\hangafter=0
-        \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq at subtitle@indent}\noexpand\relax
+        \unexpanded{\hangindent=\dimexpr}\exp_not:o {\jlreq at subtitle@indent}\noexpand\relax
       \fi
     }%
     \jlreq at heading@make at l@{#1}{#2}{\jlreq at label@format}%
-    \eappto\jlreq at do{\expandonce{\jlreq at result}}%
+    \tl_put_right:Nx \jlreq at do {\exp_not:o {\jlreq at result}}%
     \jlreq at BlockHeading@gyodori at parsekeyval*[BlockHeading:#1]{#3}{}{}{1}%
     \let\jlreq at spaceset=\jlreq at result
     \edef\jlreq at totalformat{\unexpanded{##1}}%
-    \edef\jlreq at totalformat@after{\expandonce{\jlreq at afterindent}\noexpand\@afterheading}%
+    \edef\jlreq at totalformat@after{\exp_not:o {\jlreq at afterindent}\noexpand\@afterheading}%
     \if at twocolumn
       \str_if_eq:VnT \jlreq at column@spanning { true }{%
         \def\@tempa##1##2##3{%
@@ -2394,7 +2395,7 @@
                 \jlreq at iffirsttoken{##2}{r}{}{\unexpanded{\vskip\glueexpr\baselineskip - \topskip\relax}}%
               }]%
             }{%
-              \expandonce{\jlreq at totalformat}
+              \exp_not:o {\jlreq at totalformat}
             }%
           }%
         }%
@@ -2403,30 +2404,30 @@
       }%
     \fi
     \edef\jlreq at do{%
-      \expandonce{\jlreq at do}%
-      \noexpand\edef\expandonce{\csname jlreq at headingcs@#1\endcsname}{\noexpand\unexpanded{%
+      \exp_not:o {\jlreq at do}%
+      \noexpand\edef\exp_not:c {jlreq at headingcs@#1}{\noexpand\unexpanded{%
         \noexpand\UseHook{jlreq/heading/before}%
         \noexpand\UseHook{jlreq/heading/before/#1}%
-        \expandonce{\jlreq at pagebreak}%
+        \exp_not:o {\jlreq at pagebreak}%
         \tl_if_empty:NF \l__jlreq_pagestyle_tl { \exp_not:N \thispagestyle {\exp_not:o { \l__jlreq_pagestyle_tl } } }
         \unexpanded{\jlreq at BlockHeading@start{#1}{#2}}%
-        {{\expandonce{\jlreq at align}}{\expandonce{\jlreq at indent}}{\expandonce{\jlreq at end@indent}}\expandonce{\jlreq at spaceset}{\expandonce{\jlreq at allowbreak@evenpage}}}%
+        {{\exp_not:o {\jlreq at align}}{\exp_not:o {\jlreq at indent}}{\exp_not:o {\jlreq at end@indent}}\exp_not:o {\jlreq at spaceset}{\exp_not:o {\jlreq at allowbreak@evenpage}}}%
         {\ifjlreq at number\else -\fi}%
         {%
           {%
-            {\expandonce{\jlreq at label@format}}{\expandonce{\jlreq at label@format at modified}}%
-            {\expandonce{\jlreq at heading@text at format@wlabel}}{\expandonce{\jlreq at heading@text at format@wolabel}}%
-            {\expandonce{\jlreq at subtitle@format at wlabel}}{\expandonce{\jlreq at subtitle@format at wolabel}}%
+            {\exp_not:o {\jlreq at label@format}}{\exp_not:o {\jlreq at label@format at modified}}%
+            {\exp_not:o {\jlreq at heading@text at format@wlabel}}{\exp_not:o {\jlreq at heading@text at format@wolabel}}%
+            {\exp_not:o {\jlreq at subtitle@format at wlabel}}{\exp_not:o {\jlreq at subtitle@format at wolabel}}%
           }%
           {%
-            {\expandonce{\jlreq at pre@format at wlabel}}{\expandonce{\jlreq at pre@format at wolabel}}%
-            {\expandonce{\jlreq at format}}%
+            {\exp_not:o {\jlreq at pre@format at wlabel}}{\exp_not:o {\jlreq at pre@format at wolabel}}%
+            {\exp_not:o {\jlreq at format}}%
             {}{}%
           }%
         }%
-        {{}{\expandonce{\jlreq at totalformat}}{\expandonce{\jlreq at totalformat@after}}}%
+        {{}{\exp_not:o {\jlreq at totalformat}}{\exp_not:o {\jlreq at totalformat@after}}}%
       }}%
-      \noexpand\def\expandonce{\csname #1\endcsname}{\expandonce{\csname jlreq at headingcs@#1\endcsname}}%
+      \noexpand\def\exp_not:c {#1}{\exp_not:c {jlreq at headingcs@#1}}%
     }%
   \expandafter\endgroup
   \jlreq at do
@@ -2486,8 +2487,8 @@
           \expandafter\let\csname jlreq at BlockHeading@spaces at setlist@####1\endcsname=\@undefined
         }%
       }%
-      \unexpanded{\def\jlreq at BlockHeading@spaces at headingslist}{\expandonce{\jlreq at tempa}}%
-      \expandonce{\jlreq at tempb}%
+      \unexpanded{\def\jlreq at BlockHeading@spaces at headingslist}{\exp_not:o {\jlreq at tempa}}%
+      \exp_not:o {\jlreq at tempb}%
     }%
   \expandafter\endgroup
   \jlreq at do
@@ -2511,22 +2512,22 @@
     }%
     \expandafter\jlreq at do\jlreq at totalset
     \jlreq at SetBlockHeadingSpaces@iii{#2}%
-    \eappto\jlreq at tempa{,\expandonce{\jlreq at headings}}% \jlreq at tempaに\jlreq at headingsを追加
+    \tl_put_right:Nx \jlreq at tempa {,\exp_not:o{\jlreq at headings}}% \jlreq at tempaに\jlreq at headingsを追加
     \ifjlreq at tempb
       \ifx\jlreq at lastdimen\@empty\else % 最後が寸法だったので\jlreq at SetBlockHeadingSpaces@totalsetを改変
         \def\jlreq at do##1##2##3{%
-          \edef\jlreq at totalset{{\unexpanded{##1}}{r:\expandonce{\jlreq at lastdimen}}{\unexpanded{##3}}}%
+          \edef\jlreq at totalset{{\unexpanded{##1}}{r:\exp_not:o {\jlreq at lastdimen}}{\unexpanded{##3}}}%
         }%
         \expandafter\jlreq at do\jlreq at totalset
       \fi
     \else
-      \eappto\jlreq at set{{\expandonce{\jlreq at lastdimen}}}%
+      \tl_put_right:Nx \jlreq at set{{\exp_not:o {\jlreq at lastdimen}}}
     \fi
-    \eappto\jlreq at tempb{%
+    \tl_put_right:Nx \jlreq at tempb {%
       \noexpand\@ifundefined{jlreq at BlockHeading@spaces at setlist@\jlreq at headings}{}{%
         \noexpand\ClassError{jlreq}{The~spaces~for~\jlreq at headings\space is~defined~more~than~once~(in~SetBlockHeadingSpaces)}{\noexpand\@ehc}%
       }%
-      \noexpand\def\expandonce{\csname jlreq at BlockHeading@spaces at setlist@\jlreq at headings\endcsname}{{\expandonce{\jlreq at totalset}}\expandonce{\jlreq at set}}%
+      \noexpand\def\exp_not:c {jlreq at BlockHeading@spaces at setlist@\jlreq at headings}{{\exp_not:o {\jlreq at totalset}}\exp_not:o {\jlreq at set}}%
     }%
     \jlreq at SetBlockHeadingSpaces
   }%
@@ -2553,7 +2554,7 @@
   \clist_map_variable:nNn {#1} \@tempa {
     \expandafter\jlreq at helper@trim\expandafter{\@tempa}{\@tempa}%
     \str_if_eq:eeTF {\str_head:N \@tempa} {_} {
-      \ifx\jlreq at lastdimen\@empty\else\eappto\jlreq at set{{\expandonce{\jlreq at lastdimen}}}\fi%
+      \ifx\jlreq at lastdimen\@empty\else\tl_put_right:Nx \jlreq at set {{\exp_not:o {\jlreq at lastdimen}}}\fi%
       \def\jlreq at lastdimen{}%
       \expandafter\jlreq at SetBlockHeadingSpaces@iv\@tempa{\jlreq at endmark}\jlreq at endmark
     }{%
@@ -2561,11 +2562,11 @@
       \ifjlreq at tempa
         % 最初が寸法なので,全体の設定(\jlreq at totalset)に組み込む.
         \def\jlreq at do##1##2##3{%
-          \edef\jlreq at totalset{{r:\expandonce{\@tempa}}{\unexpanded{##2}}{\unexpanded{##3}}}%
+          \edef\jlreq at totalset{{r:\exp_not:o {\@tempa}}{\unexpanded{##2}}{\unexpanded{##3}}}%
         }%
         \expandafter\jlreq at do\jlreq at totalset
       \else
-        \ifx\jlreq at lastdimen\@empty\else\eappto\jlreq at set{{\expandonce{\jlreq at lastdimen}}}\fi
+        \ifx\jlreq at lastdimen\@empty\else\tl_put_right:Nx \jlreq at set {{\exp_not:o {\jlreq at lastdimen}}}\fi
         \let\jlreq at lastdimen=\@tempa
       \fi
     }%
@@ -2583,21 +2584,21 @@
     \@tempa#1%
     \ClassWarning{jlreq}{The~heading~name~`\@gobble #1'~ends~with~`*'.~Do~you^mean~`_\@tempa{*}'?~(in~SetBlockHeadingSpaces)}%
   }}{}%
-  \appto\jlreq at headings{#1}%
+  \tl_put_right:Nn \jlreq at headings {#1}%
   \jlreq at SetBlockHeadingSpaces@v
 }
 \def\jlreq at SetBlockHeadingSpaces@v#1{%
   % 空っぽの場合は{_{r:0pt}{r:0pt}{}}
   \jlreq at ifendmark{#1}{%
-    \appto\jlreq at set{{_{r:0pt}{r:0pt}{}}}
+    \tl_put_right:Nn \jlreq at set {{_{r:0pt}{r:0pt}{}}}
     \@gobble
   }{%
     \jlreq at iffirsttoken{#1}{*}{% *始まりの場合は{_*{}{}{}}
       \expandafter\jlreq at BlockHeading@gyodori at parsekeyval\expandafter{\@gobble #1}{}{}{}%
-      \eappto\jlreq at set{{_*\expandonce{\jlreq at result}}}%
+      \tl_put_right:Nx \jlreq at set{{_*\exp_not:o {\jlreq at result}}}%
     }{% それ以外の場合は{_{}{}{}}
       \jlreq at BlockHeading@gyodori at parsekeyval{#1}{}{}{}%
-      \eappto\jlreq at set{{_\expandonce{\jlreq at result}}}%
+      \tl_put_right:Nx \jlreq at set{{_\exp_not:o {\jlreq at result}}}%
     }%
     \jlreq at SetBlockHeadingSpaces@vi
   }%
@@ -2635,19 +2636,19 @@
 \def\jlreq at BlockHeading@spaces at outputwospace@{%
   \ifnum\jlreq at tempcnta<\jlreq at BlockHeading@spaces at current@count
     \advance\jlreq at tempcnta by 1
-    \eappto\jlreq at do{\csexpandonce{jlreq at BlockHeading@spaces at current@before@\the\jlreq at tempcnta}}%
+    \tl_put_right:Nx \jlreq at do {\exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@before@\the\jlreq at tempcnta}}%
     \edef\jlreq at tempa{%
-      \unexpanded{\long\def\jlreq at tempa##1}{\csexpandonce{jlreq at BlockHeading@spaces at current@format@\the\jlreq at tempcnta}}%
+      \unexpanded{\long\def\jlreq at tempa##1}{\exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@format@\the\jlreq at tempcnta}}%
     }%
     \jlreq at tempa
     \edef\jlreq at tempb{%
-      \noexpand\expandonce{\noexpand\jlreq at tempa{%
+      \noexpand\exp_not:o {\noexpand\jlreq at tempa{%
         \noexpand\jlreq at BlockHeading@start at gyodori
-          \csexpandonce{jlreq at BlockHeading@spaces at current@space@\the\jlreq at tempcnta}%
-          {\csexpandonce{jlreq at BlockHeading@spaces at current@output@\the\jlreq at tempcnta}}%
+          \exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@space@\the\jlreq at tempcnta}%
+          {\exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@output@\the\jlreq at tempcnta}}%
       }}%
     }%
-    \eappto\jlreq at do{\jlreq at tempb\csexpandonce{jlreq at BlockHeading@spaces at current@after@\the\jlreq at tempcnta}}%
+    \tl_put_right:Nx \jlreq at do {\jlreq at tempb\exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@after@\the\jlreq at tempcnta}}%
     \expandafter\jlreq at BlockHeading@spaces at outputwospace@
   \fi
 }
@@ -2662,10 +2663,10 @@
   \edef\jlreq at do{%
     \ifjlreq at tempa
       \unexpanded{\jlreq at BlockHeading@start at gyodori#1}{%
-        \expandonce{\jlreq at result}%
+        \exp_not:o {\jlreq at result}%
       }%
     \else
-      \expandonce{\jlreq at result}%
+      \exp_not:o {\jlreq at result}%
     \fi
   }%
   \jlreq at BlockHeading@spaces at clear
@@ -2678,7 +2679,7 @@
       \advance\jlreq at tempcnta by 1
       \expandafter\jlreq at BlockHeading@spaces at output@@@\expandafter{\@gobble #1}%
     }{%
-      \appto\jlreq at result{\vskip\glueexpr #1\relax}%
+      \tl_put_right:Nn \jlreq at result {\vskip\glueexpr #1\relax}%
     }%
     \jlreq at BlockHeading@spaces at output@@
   }%
@@ -2686,9 +2687,9 @@
 \def\jlreq at BlockHeading@spaces at output@@@#1{%
   \edef\jlreq at do{%
     \noexpand\jlreq at BlockHeading@spaces at output@@@@
-    \jlreq at iffirsttoken@ignorespaces{#1}{*}{{*}\expandonce{\@gobble #1}}{\unexpanded{{}#1}}%
-      \csexpandonce{jlreq at BlockHeading@spaces at current@space@\the\jlreq at tempcnta}%
-      {\csexpandonce{jlreq at BlockHeading@spaces at current@output@\the\jlreq at tempcnta}}%
+    \jlreq at iffirsttoken@ignorespaces{#1}{*}{{*}\exp_not:o {\@gobble #1}}{\unexpanded{{}#1}}%
+      \exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@space@\the\jlreq at tempcnta}%
+      {\exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@output@\the\jlreq at tempcnta}}%
   }%
   \jlreq at do
 }
@@ -2695,11 +2696,11 @@
 % #1: デフォルト値を使うならば*,#2#3#4が設定された値,#5#6#7がデフォルト値,#8は偶数ページの,#9が出力
 \def\jlreq at BlockHeading@spaces at output@@@@#1#2#3#4#5#6#7#8{%
   \edef\jlreq at tempa{%
-    \unexpanded{\long\def\jlreq at tempa##1}{\csexpandonce{jlreq at BlockHeading@spaces at current@format@\the\jlreq at tempcnta}}%
+    \unexpanded{\long\def\jlreq at tempa##1}{\exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@format@\the\jlreq at tempcnta}}%
   }%
   \jlreq at tempa
   \edef\jlreq at tempb{%
-    \noexpand\expandonce{\noexpand\jlreq at tempa{%
+    \noexpand\exp_not:o {\noexpand\jlreq at tempa{%
       \noexpand\jlreq at BlockHeading@start at gyodori
       \jlreq at ifempty{#1}{\unexpanded{{#2}{#3}{#4}}}{%
         {\jlreq at ifempty{#2}{\unexpanded{#5}}{\unexpanded{#2}}}%
@@ -2708,10 +2709,10 @@
       }\unexpanded{{#8}}%
     }}%
   }%
-  \eappto\jlreq at result{%
-    \csexpandonce{jlreq at BlockHeading@spaces at current@before@\the\jlreq at tempcnta}%
+  \tl_put_right:Nx \jlreq at result {%
+    \exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@before@\the\jlreq at tempcnta}%
     \jlreq at tempb
-    \csexpandonce{jlreq at BlockHeading@spaces at current@after@\the\jlreq at tempcnta}%
+    \exp_args:Nc \exp_not:o {jlreq at BlockHeading@spaces at current@after@\the\jlreq at tempcnta}%
   }%
 }
 
@@ -2742,7 +2743,7 @@
 }
 % {1 = 命令名}{2 = レベル}{3 = */-}{4 = running head}{5 = 見出し}
 \long\def\jlreq at RuninHeading@start@#1#2#3[#4]#5{%
-  \edef\jlreq at do{\unexpanded{\jlreq at RuninHeading@start@@{#1}{#2}{#3}{#4}{#5}}{\expandonce{\jlreq at RuninHeading@start at format@label}}{\expandonce{\jlreq at RuninHeading@start at format@wlabel}}{\expandonce{\jlreq at RuninHeading@start at format@wolabel}}}%
+  \edef\jlreq at do{\unexpanded{\jlreq at RuninHeading@start@@{#1}{#2}{#3}{#4}{#5}}{\exp_not:o {\jlreq at RuninHeading@start at format@label}}{\exp_not:o {\jlreq at RuninHeading@start at format@wlabel}}{\exp_not:o {\jlreq at RuninHeading@start at format@wolabel}}}%
   \jlreq at do
 }
 % {1 = 命令名}{2 = レベル}{3 = *}{4 = running head}{5 = 見出し}{6 = ラベルフォーマット}{7 = ラベルありフォーマット}{8 = ラベルなしフォーマット}
@@ -2755,11 +2756,11 @@
       \ifnum0\jlreq at ifempty{#3}{}{1}\ifnum #2>\c at secnumdepth 1\fi>0
         \def\jlreq at tempa##1{#8}%
       \else
-        \appto\jlreq at do{\refstepcounter{#1}}%
+        \tl_put_right:Nn \jlreq at do {\refstepcounter{#1}}%
         \def\jlreq at tempa##1{#7}%
       \fi
       \par}%
-      \unexpanded{\eappto\jlreq at do}{%
+      \unexpanded{\tl_put_right:Nx \jlreq at do}{%
         \unexpanded{\noexpand\everypar}{%
           \unexpanded{%
           \noexpand\if at noskipsec
@@ -2766,8 +2767,8 @@
             \unexpanded{\global\@noskipsecfalse}%
             \unexpanded{{\setbox\jlreq at tempboxa\lastbox}}%
             \noexpand\begingroup
-              \expandonce{\jlreq at tempa{#5}}%
-              \expandonce{\csname jlreq at heading@maketoc@#1\endcsname}\unexpanded{{#3}{#6}{#4}}%
+              \exp_not:o {\jlreq at tempa{#5}}%
+              \exp_not:c {jlreq at heading@maketoc@#1}\unexpanded{{#3}{#6}{#4}}%
             \noexpand\endgroup
             \noexpand\inhibitglue
           \noexpand\else
@@ -2848,7 +2849,7 @@
     \cs_set:Nx \l__jlreq_do: {
       \exp_not:o { \jlreq at result }
       % パラメータトークンを含むので,\edefして\unexpandedで包む
-      \noexpand\edef\expandonce{\csname #1\endcsname}{%
+      \noexpand\edef\exp_not:c {#1}{%
         \noexpand\unexpanded{%
           \exp_not:N \UseHook{jlreq/heading/before}%
           \exp_not:N \UseHook{jlreq/heading/before/#1}
@@ -3010,10 +3011,10 @@
       }
     }
     \cs_set:Nx \l_jlreq_do: {
-      \exp_not:v { jlreq at heading@type@#1 }
+      \exp_args:Nc \exp_not:o { jlreq at heading@type@#1 }
       { \exp_not:n { #1 } }
-      { \exp_not:v { jlreq at heading@level@#1 } }
-      { \exp_not:v { jlreq at heading@setting@#1 },\exp_not:V \l_jlreq_tmpa_tl }
+      { \exp_args:Nc \exp_not:o { jlreq at heading@level@#1 } }
+      { \exp_args:Nc \exp_not:o { jlreq at heading@setting@#1 },\exp_not:V \l_jlreq_tmpa_tl }
     }
   \exp_after:wN \group_end:
   \l_jlreq_do:
@@ -3022,7 +3023,7 @@
 \NewDocumentCommand{\SaveHeading}{ m m }{%
   \@ifundefined{jlreq at heading@setting@#1}{\ClassError{jlreq}{Unknown~heading:~#1}{\@ehc}}{}%
   \edef#2{%
-    \csexpandonce{jlreq at heading@type@#1}{\unexpanded{#1}}{\csexpandonce{jlreq at heading@level@#1}}{\csexpandonce{jlreq at heading@setting@#1}}%
+    \exp_args:Nc \exp_not:o {jlreq at heading@type@#1}{\unexpanded{#1}}{\exp_args:Nc \exp_not:o {jlreq at heading@level@#1}}{\exp_args:Nc \exp_not:o {jlreq at heading@setting@#1}}%
   }%
 }
 
@@ -3062,10 +3063,9 @@
 %.. カウンターの定義(見出し本体はこのファイルの末尾で)
 \setcounter{secnumdepth}{3}
 \newcounter{part}
-\jlreq at switch{\jlreq at article@type}{
-  {article}{\newcounter{section}}
-  {\newcounter{chapter}\newcounter{section}[chapter]}% book, report
-}
+\str_if_eq:VnTF \jlreq at article@type { article } 
+  { \newcounter{section} }
+  { \newcounter{chapter}\newcounter{section}[chapter] }
 \newcounter{subsection}[section]
 \newcounter{subsubsection}[subsection]
 \newcounter{paragraph}[subsubsection]
@@ -3095,7 +3095,7 @@
     % 後ろ側に始め括弧類(cl-01)が配置される場合を除いて,ベタ組(4.2.3,二つ目のc,三つ目のb).
     \def\jlreq at hook@postnote{\futurelet\jlreq at nextchar\jlreq at postnote@checkopenbracket}%
     \def\@tempa{}
-    \def\jlreq at do##1{\jlreq at ifendmark{##1}{}{\appto\@tempa{\ifx\jlreq at tempb##11\fi}\jlreq at do}}
+    \def\jlreq at do##1{\jlreq at ifendmark{##1}{}{\tl_put_right:Nn \@tempa {\ifx\jlreq at tempb##11\fi}\jlreq at do}}
     \expandafter\jlreq at do\jlreq at charlist@openingbrackets\jlreq at endmark
     \edef\jlreq at postnote@checkopenbracket{%
       \unexpanded{%
@@ -3102,7 +3102,7 @@
         \jlreq at getfirsttoken@expandmacros{\jlreq at nextchar}{\jlreq at tempa}%
         \expandafter\let\expandafter\jlreq at tempb\jlreq at tempa
       }%
-      \noexpand\jlreq at if{\noexpand\ifnum 0\expandonce{\@tempa}>0~\noexpand\fi}{}{\noexpand\inhibitglue}%
+      \noexpand\jlreq at if{\noexpand\ifnum 0\exp_not:o {\@tempa}>0~\noexpand\fi}{}{\noexpand\inhibitglue}%
     }
   },
   reference_mark / interlinear .code:n = {
@@ -3199,7 +3199,7 @@
     }{
       \def\jlreq at makefntext{\addtolength{\leftskip}{\glueexpr #1\relax}}
     }
-    \long\edef\jlreq at makefntext##1{\expandonce{\jlreq at makefntext}%
+    \long\edef\jlreq at makefntext##1{\exp_not:o {\jlreq at makefntext}%
       \unexpanded{%
         \addtolength{\leftskip}{\jlreq at footnoteindent}%
         \parindent=1\jlreq at zw
@@ -3265,7 +3265,7 @@
     \expandafter\gdef\expandafter\jlreq at footnote@delayfootnoteslist\expandafter{\expandafter}%
     \jlreq at footnote@delayfootnoteslist
   }
-  \preto\@opcol{\jlreq at hook@@opcol}
+  \tl_put_left:Nn \@opcol{\jlreq at hook@@opcol}
   % \jlreq at footnote@delayfootnote at delay#1#2:#1ページ目に#2を出す
   % \jlreq at footnote@delayfootnote at page:何ページ目に\footnotetextを入れるかを\jlreq at resultcntに入れる.その場での場合は-1.
   \if at twocolumn
@@ -3286,7 +3286,7 @@
     \long\def\jlreq at footnote@delayfootnote at delay#1#2{%
       % 二段組みの場合は上段を組んだ直後に\footnotetextを挿入(そのページの下段に入る)
       \jlreq at if{\ifnum 0\if at firstcolumn\else 1\fi\ifnum#1>\value{page}1\fi>0~\fi}{%
-        \xappto\jlreq at footnote@delayfootnoteslist{\unexpanded{\jlreq at footnote@delayfootnote{#1}{#2}}}%
+        \tl_gput_right:Nx \jlreq at footnote@delayfootnoteslist {\exp_not:n { \jlreq at footnote@delayfootnote{#1}{#2} } }
       }{#2}%
     }
   \else
@@ -3301,13 +3301,13 @@
     \long\def\jlreq at footnote@delayfootnote at delay#1#2{%
       % 一段組の場合はその前のページを組んだ直後に\footnotetextを挿入.
       \jlreq at if{\ifnum\numexpr#1 - 1\relax>\value{page}~\fi}{%
-        \xappto\jlreq at footnote@delayfootnoteslist{\unexpanded{\jlreq at footnote@delayfootnote{#1}{#2}}}%
+        \tl_gput_right:Nx \jlreq at footnote@delayfootnoteslist { \exp_not:n {\jlreq at footnote@delayfootnote{#1}{#2} } }
       }{#2}%
     }
   \fi
   \long\def\jlreq at footnote@delayfootnote at immediate#1#2{%
     \jlreq at if{\ifnum #1<\jlreq at currentpage\relax\fi}{%
-      \xappto\jlreq at footnote@delayfootnoteslist{\unexpanded{\jlreq at footnote@delayfootnote{#1}{#2}}}%
+      \tl_gput_right:Nx \jlreq at footnote@delayfootnoteslist{ \exp_not:n { \jlreq at footnote@delayfootnote{#1}{#2} } }
     }{#2}%
   }
   \let\jlreq at footnote@delayfootnote=\jlreq at footnote@delayfootnote at delay
@@ -3321,7 +3321,7 @@
     }%
   }
   \AtEndDocument{\jlreq at footnote@flushdelayfootnoteslist}
-  \preto\newpage{\jlreq at footnote@flushdelayfootnoteslist}
+  \tl_put_left:Nn \newpage {\jlreq at footnote@flushdelayfootnoteslist}
   \long\def\jlreq at footnote@impl at woption#1#2#3[#4]#5{%
     \jlreq at footnote@delayfootnote at page
     \begingroup
@@ -3331,10 +3331,10 @@
         \def\jlreq at result{}#3[#4]{#5}%
         \jlreq at restore@jlreq at footnotes}%
         \int_compare:nTF { \jlreq at resultcnt=-1 }{\noexpand\jlreq at result}{\unexpanded{%
-          \xappto\jlreq at footnote@delayfootnoteslist{%
+          \tl_gput_right:Nx \jlreq at footnote@delayfootnoteslist {%
             \noexpand\jlreq at footnote@delayfootnote{\the\jlreq at resultcnt}{%
               \noexpand\jlreq at restore@original at footnotes
-              \expandonce{\jlreq at result}%
+              \exp_not:o {\jlreq at result}%
               \noexpand\jlreq at restore@jlreq at footnotes
             }%
           }%
@@ -3351,10 +3351,10 @@
         \unexpanded{\def\jlreq at result{}#2}[\the\value{footnote}]\noexpand\jlreq at result
         \unexpanded{\def\jlreq at result{}#3}[\the\value{footnote}]\unexpanded{{#4}}%
         \jlreq at if{\ifnum\jlreq at resultcnt=-1~\fi}{\noexpand\jlreq at result}{\unexpanded{%
-          \xappto\jlreq at footnote@delayfootnoteslist{%
+          \tl_gput_right:Nx \jlreq at footnote@delayfootnoteslist {%
             \noexpand\jlreq at footnote@delayfootnote{\the\jlreq at resultcnt}{%
               \noexpand\jlreq at restore@original at footnotes
-              \expandonce{\jlreq at result}%
+              \exp_not:o {\jlreq at result}%
               \noexpand\jlreq at restore@jlreq at footnotes
             }%
           }%
@@ -3401,13 +3401,28 @@
 \newdimen\jlreq at endnote@indent
 % 現在の後注一覧を,\jlreq at endnote@textsに{{合印1}{後注1}}{{合印2}{後注2}}...の形で保持する
 \def\jlreq at endnote@texts{}
-\long\def\jlreq at endnote@addtext#1#2{\xappto\jlreq at endnote@texts{\unexpanded{{{#1}{#2}}}}}
+\long\def\jlreq at endnote@addtext#1#2{\tl_gput_right:Nx \jlreq at endnote@texts { \exp_not:n {{{#1}{#2}}} } }
 % \endnote自身は後で定義する
-\def\jlreq at endnote@impl{\jlreq at hook@prenote\@ifnextchar[{\jlreq at endnote}{\jlreq at endnote[]}}  
-\def\endnotemark{\jlreq at hook@prenote\@ifnextchar[{\jlreq at endnotemark}{\jlreq at endnotemark[]}}
-\def\endnotetext{\@ifnextchar[{\jlreq at endnotetext}{\jlreq at endnotetext[]}}
-\long\def\jlreq at endnote[#1]#2{\jlreq at endnotemark[#1]\@endnotetext{#2}\jlreq at hook@postnote}
-\def\jlreq at endnotemark[#1]{%
+\NewHook{cmd/endnote/before}
+\NewHook{cmd/endnote/after}
+\NewHook{cmd/endnotemark/before}
+\NewHook{cmd/endnotemark/after}
+\NewDocumentCommand { \endnotemark }{ O{} } {
+  \jlreq at hook@prenote
+  \UseHook{cmd/endnote/before}
+  \jlreq at endnotemark{#1}
+  \UseHook{cmd/endnote/after}
+  \jlreq at hook@postnote
+}
+\NewDocumentCommand { \endnotetext } { O{} +m } { \jlreq at endnotetext{#1}{#2} }
+\long\def\jlreq at endnote#1#2{
+  \jlreq at hook@prenote
+  \UseHook{ cmd/endnote/before }
+  \jlreq at endnotemark{#1}\@endnotetext{#2}
+  \UseHook{ cmd/endnote/after }
+  \jlreq at hook@postnote
+}
+\def\jlreq at endnotemark#1{%
   \jlreq at ifempty{#1}{%
     \stepcounter{\jlreq at endnotecounter}%
     \expandafter\protected at xdef\csname\jlreq at endnotemarkname\endcsname{\csname the\jlreq at endnotecounter\endcsname}%
@@ -3418,10 +3433,9 @@
     \endgroup
   }%
   \@endnotemark
-  \jlreq at hook@postnote
 }
 \jlreq at setdefaultnotemark\@endnotemark\@makeendmark
-\long\def\jlreq at endnotetext[#1]#2{%
+\long\def\jlreq at endnotetext#1#2{%
   \jlreq at ifempty{#1}{%
     \expandafter\protected at xdef\csname\jlreq at endnotemarkname\endcsname{\csname the\jlreq at endnotecounter\endcsname}%
   }{%
@@ -3502,35 +3516,39 @@
     \jlreq at tempafalse % headingsが指定された
     \jlreq at tempbfalse % paragraphが指定された
     % \jlreq at tempcにセクション名たちを入れていく
-    \def\jlreq at tempc{}
+    \seq_clear:N \l_jlreq_tmpa_seq
     \clist_map_variable:nNn {#1} \jlreq at tempa {
-      \expandafter\jlreq at helper@trim\expandafter{\jlreq at tempa}{\jlreq at tempa}%
-      \jlreq at switch{\jlreq at tempa}{
+      \tl_set:Nx \@tempa { \tl_trim_spaces:o \@tempa }
+      \str_case_e:nnF {\jlreq at tempa} {
         {headings}{\jlreq at tempatrue}
         {paragraph}{
           \jlreq at tempatrue% _paragraphの時は_headingsも有効にする
           \jlreq at tempbtrue
         }
-        {
-          \str_if_eq:eeTF { \str_head:N \jlreq at tempa } {_} {
-            \edef\jlreq at tempc{\jlreq at tempc,\expandafter\@gobble\jlreq at tempa}
-          }{
-            \ClassError{jlreq}{Invalid~value~\jlreq at tempa\space in~endnote_position}{\@ehc}
-          }
+      }{
+        \str_if_eq:eeTF { \str_head:N \jlreq at tempa } {_} {
+          \seq_put_left:Nx \l_jlreq_tmpa_seq { \tl_tail:N \jlreq at tempa }
+        }{
+         \ClassError{jlreq}{Invalid~value~\jlreq at tempa\space in~endnote_position}{\@ehc}
         }
       }
     }
     
     \ifjlreq at tempb
-      \edef\endnote{\unexpanded{\def\par{\@restorepar\theendnotes\par}}\expandonce{\jlreq at endnote@impl}}
+      \DeclareDocumentCommand { \endnote } { O{} +m } {
+        \AddToHookNext { para/after } { \theendnotes }
+        \jlreq at endnote{##1}{##2}
+      }
     \else
-      \let\endnote=\jlreq at endnote@impl
+      \DeclareDocumentCommand { \endnote } { O{} +m } {
+        \jlreq at endnote{##1}{##2}
+      }
     \fi
 
     \ifjlreq at tempa
       \AddToHook{jlreq/heading/before}[jlreq/endnote]{\theendnotes}
     \else
-      \clist_map_variable:NNn \jlreq at tempc \@tempa {
+      \seq_map_variable:NNn \l_jlreq_tmpa_seq \@tempa {
         \tl_if_empty:VF \@tempa {
           \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{}
           \RemoveFromHook{jlreq/heading/before/\@tempa}[jlreq/endnote]
@@ -3551,8 +3569,11 @@
 % (1) では\sidenote[]{}を定義
 % (2) では\sidenote{見出し}{注中身}を定義
 % sidenote_length>0ptの時のみ定義する
-\jlreq at if{\ifdim\jlreq at sidenote@length>0pt\relax\fi}
-{
+\dim_compare:nT { \jlreq at sidenote@length > 0pt } {
+  \ProvideHook{ cmd/sidenote/before }
+  \ProvideHook{ cmd/sidenote/after }
+  \ProvideHook{ cmd/sidenotemark/before }
+  \ProvideHook{ cmd/sidenotemark/after }
   \def\jlreq at sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名
   \long\def\@sidenotetext#1{%
     \marginpar{\reset at font\footnotesize
@@ -3569,12 +3590,20 @@
   \def\jlreq at sidenote@type{number}
   \__jlreq_jlreqsetup_addtofinally:n {
     \str_if_eq:VnT \jlreq at sidenote@type { number } {
-      \def\sidenote{\jlreq at hook@prenote\@ifnextchar[{\jlreq at sidenote}{\jlreq at sidenote[]}}
-      \def\sidenotemark{\jlreq at hook@prenote\@ifnextchar[{\jlreq at sidenotemark}{\jlreq at sidenotemark[]}}
-      \def\sidenotetext{\@ifnextchar[{\jlreq at sidenotetext}{\jlreq at sidenotetext[]}}
-      \long\def\jlreq at sidenote[#1]#2{\jlreq at sidenotemark[#1]\@sidenotetext{#2}\jlreq at hook@postnote}
-      \def\jlreq at sidenotemark[#1]{%
-        \jlreq at ifempty{#1}{%
+      \DeclareDocumentCommand { \sidenote } { O{} +m } {
+        \jlreq at hook@prenote\UseHook{cmd/sidenote/before}
+        \jlreq at sidenote{#1}{#2}
+        \UseHook{cmd/sidenote/after}\jlreq at hook@postnote
+      }
+      \DeclareDocumentCommand { \sidenotemark } { O{}   } {
+        \jlreq at hook@prenote\UseHook{cmd/sidenotemark/before}
+        \jlreq at sidenotemark{#1}
+        \UseHook{cmd/sidenotemark/after}\jlreq at hook@postnote
+      }
+      \DeclareDocumentCommand { \sidenotetext } { O{} +m } { \jlreq at sidenotetext{#1}{#2} }
+      \long\def\jlreq at sidenote#1#2{\jlreq at sidenotemark{#1}\@sidenotetext{#2}}
+      \def\jlreq at sidenotemark#1{%
+        \tl_if_empty:nTF{#1}{%
           \stepcounter{\jlreq at sidenotecounter}%
           \expandafter\protected at xdef\csname\jlreq at sidenotemarkname\endcsname{\csname the\jlreq at sidenotecounter\endcsname}%
         }{%
@@ -3584,10 +3613,9 @@
           \endgroup
         }%
         \@sidenotemark
-        \jlreq at hook@postnote
       }
-      \long\def\jlreq at sidenotetext[#1]#2{%
-        \jlreq at ifempty{#1}{%
+      \long\def\jlreq at sidenotetext#1#2{%
+        \tl_if_empty:nTF{#1}{%
           \expandafter\protected at xdef\csname\jlreq at sidenotemarkname\endcsname{\csname the\jlreq at sidenotecounter\endcsname}%
         }{%
          \begingroup
@@ -3607,15 +3635,15 @@
       \let\@makesidemark=\@makefnmark
     }
     \str_if_eq:VnT \jlreq at sidenote@type { symbol } {% sidenote_type = symbol
-      \long\def\sidenote#1#2{\jlreq at sidenote{#1}{#2}}
-      \def\sidenotemark#1{\jlreq at sidenotemark{#1}}
-      \long\def\sidenotetext#1#2{\jlreq at sidenotetext{#1}{#2}}
+      \DeclareDocumentCommand { \sidenote     } { m +m } { \UseHook{cmd/sidenote/before}\jlreq at sidenote{#1}{#2}\UseHook{cmd/sidenote/after} }
+      \DeclareDocumentCommand { \sidenotemark } { m   } { \UseHook{cmd/sidenotemark/before}\jlreq at sidenotemark{#1}\UseHook{cmd/sidenote/after} }
+      \DeclareDocumentCommand { \sidenotetext } { m +m } { \jlreq at sidenotetext{#1}{#2} }
       \long\def\jlreq at sidenote#1#2{\jlreq at sidenotemark{#1}\jlreq at sidenotetext{#1}{#2}}
       \edef\jlreq at sidenotemark#1{%
         {\unexpanded{\reset at font\jlreq at sidenote@keywordfont}#1}%
         \noexpand\jlreq at hook@prenote
         \ifx\jlreq at sidenote@defaultmark\@empty\else
-          \expandafter\edef\expandonce{\csname\jlreq at sidenotemarkname\endcsname}{\expandonce{\jlreq at sidenote@defaultmark}}%
+          \expandafter\edef\exp_not:c {\jlreq at sidenotemarkname}{\exp_not:o {\jlreq at sidenote@defaultmark}}%
           \noexpand\@sidenotemark
         \fi
       }
@@ -3626,14 +3654,11 @@
       }
       \long\def\@makesidetext#1{{\sffamily\gtfamily\bfseries\csname\jlreq at sidenotemarkname\endcsname}\hspace*{1\jlreq at mol}#1}
       \let\@makesidemark=\@makefnmark
-
-      \apptocmd{\sidenote}{\jlreq at hook@postnote}{}{}
-      \apptocmd{\sidenotemark}{\jlreq at hook@postnote}{}{}
     }
   }
   \keys_define:nn { jlreqsetup } { sidenote_symbol .tl_set:N = \jlreq at sidenote@defaultmark }
   \keys_define:nn { jlreqsetup } { sidenote_keyword_font .tl_set:N = \jlreq at sidenote@keywordfont }
-}{}
+}
 
 %.. 割注(3.4)
 \def\inlinenotesize{.6\jlreq at jafontsize} % 割注の文字サイズ
@@ -3956,9 +3981,9 @@
 
 % #1のleftとrightを入れ替えて#1に代入
 \def\jlreq at reverse@leftright#1{%
-  \jlreq at switch{#1}{
-    {left}{\def#1{right}}
-    {right}{\def#1{left}}
+  \str_case_e:nn {#1} {
+    { left  }{ \def#1{right} }
+    { right }{ \def#1{left}  }
   }%
 }
 
@@ -4015,13 +4040,14 @@
         }%
       }%
       \edef\jlreq at headingname{\expandafter\@gobble#1}% 見出し命令名
-      \edef\jlreq at tempa{\noexpand\@removeelement{\expandonce{\jlreq at headingname}}}%
+      \edef\jlreq at tempa{\noexpand\@removeelement{\exp_not:o {\jlreq at headingname}}}%
       \expandafter\jlreq at tempa\expandafter{#5}{#5}%
       \@ifundefined{#4@\jlreq at headingname}{\expandafter\def\csname #4@\jlreq at headingname\endcsname{}}{}%
-      \eappto\jlreq at do{%
-        \noexpand\let\expandonce{\csname\expandafter\@gobble\string #1 at heading@level\endcsname}=\expandonce{\csname jlreq at heading@level@\jlreq at headingname\endcsname}%
-        \unexpanded{\def#5}{\expandonce{#5},\expandonce{\jlreq at headingname}}%
-        \noexpand\appto\expandonce{\csname #4@\jlreq at headingname\endcsname}{{{\int_compare:nT {#2=0} {#3}}{#2}{\ifx r\jlreq at leftright r\else l\fi}}}%
+      \tl_put_right:Nx \jlreq at do {%
+        \exp_not:N \@ifundefined {#4@\jlreq at headingname} { \exp_not:N \@namedef {#4@\jlreq at headingname} {} } {}
+        \noexpand\let\exp_not:c {\expandafter\@gobble\string #1 at heading@level}=\exp_not:c {jlreq at heading@level@\jlreq at headingname}%
+        \exp_not:n {\def#5}{\exp_not:o {#5},\exp_not:o {\jlreq at headingname}}%
+        \exp_not:N \tl_put_right:Nn \exp_not:c {#4@\jlreq at headingname} {{{\int_compare:nT {#2=0} {#3}}{#2}{\ifx r\jlreq at leftright r\else l\fi}}}%
       }%
     }{\def\jlreq at do{}}%
   \expandafter\endgroup
@@ -4043,20 +4069,24 @@
     % leftを設定する時は対応するrightを空にする.
     \expandafter\ifx\csname jlreq at leftmark@0\endcsname\@empty
       \expandafter\ifx\csname jlreq at rightmark@0\endcsname\@empty\else
-        \eappto\jlreq at do{\jlreq at ifempty{#1}{\noexpand\markright}{\noexpand\jlreq at markright}{\csexpandonce{jlreq at rightmark@0}}}%
+        \tl_put_right:Nx \jlreq at do {
+          \jlreq at ifempty{#1}{\noexpand\markright}{\noexpand\jlreq at markright}{\exp_args:Nc \exp_not:o {jlreq at rightmark@0}}
+        }%
       \fi
     \else
-      \eappto\jlreq at do{\jlreq at ifempty{#1}{\noexpand\markboth}{\noexpand\jlreq at markboth}{\csexpandonce{jlreq at leftmark@0}}{\csexpandonce{jlreq at rightmark@0}}}%
+      \tl_put_right:Nx \jlreq at do {
+        \jlreq at ifempty{#1}{\noexpand\markboth}{\noexpand\jlreq at markboth}{\exp_args:Nc \exp_not:o {jlreq at leftmark@0}}{\exp_args:Nc \exp_not:o {jlreq at rightmark@0}}
+      }%
     \fi
     \clist_map_variable:nNn {1,2} \jlreq at i {
       \expandafter\ifx\csname jlreq at leftmark@\jlreq at i\endcsname\@empty
         \expandafter\ifx\csname jlreq at rightmark@\jlreq at i\endcsname\@empty\else
-          \eappto\jlreq at do{\noexpand\jlreq at setextrarightmark{\jlreq at i}{\csexpandonce{jlreq at rightmark@\jlreq at i}}}%
+          \tl_put_right:Nx \jlreq at do {\noexpand\jlreq at setextrarightmark{\jlreq at i}{\exp_args:Nc \exp_not:o {jlreq at rightmark@\jlreq at i}}}%
         \fi
       \else
-        \eappto\jlreq at do{%
-          \noexpand\jlreq at setextraleftmark{\jlreq at i}{\csexpandonce{jlreq at leftmark@\jlreq at i}}%
-          \noexpand\jlreq at setextrarightmark{\jlreq at i}{\csexpandonce{jlreq at rightmark@\jlreq at i}}%
+        \tl_put_right:Nx \jlreq at do{%
+          \noexpand\jlreq at setextraleftmark{\jlreq at i}{\exp_args:Nc \exp_not:o {jlreq at leftmark@\jlreq at i}}%
+          \noexpand\jlreq at setextrarightmark{\jlreq at i}{\exp_args:Nc \exp_not:o {jlreq at rightmark@\jlreq at i}}%
         }%
       \fi
     }%
@@ -4063,8 +4093,8 @@
     \ifx\jlreq at do\@empty\else
       \edef\jlreq at do{%
         \unexpanded{\edef\jlreq at result}{\noexpand\unexpanded{%
-          \noexpand\def\expandonce{\csname #2mark\endcsname}\unexpanded{##1}{%
-            \expandonce{\jlreq at do}%
+          \noexpand\def\exp_not:c {#2mark}\unexpanded{##1}{%
+            \exp_not:o {\jlreq at do}%
           }}%
         }%
       }%
@@ -4079,8 +4109,8 @@
 \def\jlreq at pagestyle@make at headingmark@@#1#2#3#4#5{%
   % \jlreq at tempbに\***markの定義を入れる
   \edef\jlreq at tempb{%
-    \expandonce{\csname the#1\endcsname}%
-    \noexpand\ifx\expandonce{\csname the#1\endcsname}\unexpanded{\@empty\else\protect\quad\fi}%
+    \exp_not:c {the#1}%
+    \noexpand\ifx\exp_not:c {the#1}\unexpanded{\@empty\else\protect\quad\fi}%
     \unexpanded{##1}%
   }%
   \jlreq at parsekeyval@nokey{%
@@ -4088,9 +4118,9 @@
     \str_if_eq:nnT {##1} {_#1} {\edef\jlreq at tempb{\unexpanded{##2}}}%
   }{#2}%
   \ifx l#5%
-    \expandafter\edef\csname jlreq at leftmark@#4\endcsname{\expandonce{\jlreq at tempb}}%
+    \expandafter\edef\csname jlreq at leftmark@#4\endcsname{\exp_not:o {\jlreq at tempb}}%
   \else
-    \expandafter\edef\csname jlreq at rightmark@#4\endcsname{\expandonce{\jlreq at tempb}}%
+    \expandafter\edef\csname jlreq at rightmark@#4\endcsname{\exp_not:o {\jlreq at tempb}}%
   \fi
   \jlreq at pagestyle@make at headingmark@{#1}{#2}%
 }
@@ -4098,7 +4128,7 @@
 % #2 #3 #4と並んだヘッダを作り#1に入れる.#1,#2,#3はコンロトールシークエンスの名前とする.
 \def\jlreq at pagestyle@setheadfoot#1#2#3#4{%
   \begingroup
-    \edef\jlreq at do{\noexpand\jlreq at pagestyle@setheadfoot@{\unexpanded{#1}}{\csexpandonce{#2}}{\csexpandonce{#3}}{\csexpandonce{#4}}}%
+    \edef\jlreq at do{\noexpand\jlreq at pagestyle@setheadfoot@{\unexpanded{#1}}{\exp_args:Nc \exp_not:o {#2}}{\exp_args:Nc \exp_not:o {#3}}{\exp_args:Nc \exp_not:o {#4}}}%
   \expandafter\endgroup
   \jlreq at do
 }
@@ -4114,13 +4144,13 @@
     % +\topskip - \Chtは\jlreq at headfoot@sidemargin = 0ptの時に本文の右に一致させるための補正.
     \jlreq at ifempty{#4}{\def\jlreq at right{}}{\edef\jlreq at right{\unexpanded{#4}\jlreq at pagestyle@hskip{\jlreq at expand@speciallength{\jlreq at headfoot@sidemargin}\if at tate + \topskip - \Cht\fi}}}%
     \jlreq at ifempty{#3}{%
-      \edef\jlreq at do{\unexpanded{\def#1}{\expandonce{\jlreq at left}\hfil\expandonce{\jlreq at right}}}%
+      \edef\jlreq at do{\unexpanded{\def#1}{\exp_not:o {\jlreq at left}\hfil\exp_not:o {\jlreq at right}}}%
       \jlreq at ifempty{#2}{\jlreq at ifempty{#4}{\def\jlreq at do{\def#1{}}}{}}{}%
     }{% #3を完全に真ん中に配置するために左右の幅を0にしておく
-      \ifx\jlreq at left\@empty\else\edef\jlreq at left{\noexpand\hbox to 0pt{\expandonce{\jlreq at left}\noexpand\hss}}\fi
-      \ifx\jlreq at right\@empty\else\edef\jlreq at right{\noexpand\hbox to 0pt{\noexpand\hss\expandonce{\jlreq at right}}}\fi
+      \ifx\jlreq at left\@empty\else\edef\jlreq at left{\noexpand\hbox to 0pt{\exp_not:o {\jlreq at left}\noexpand\hss}}\fi
+      \ifx\jlreq at right\@empty\else\edef\jlreq at right{\noexpand\hbox to 0pt{\noexpand\hss\exp_not:o {\jlreq at right}}}\fi
       \edef\jlreq at do{%
-        \unexpanded{\def#1}{\expandonce{\jlreq at left}\hfil\unexpanded{#3}\hfil\expandonce{\jlreq at right}}%
+        \unexpanded{\def#1}{\exp_not:o {\jlreq at left}\hfil\unexpanded{#3}\hfil\exp_not:o {\jlreq at right}}%
       }%
     }%
   \expandafter\endgroup
@@ -4142,7 +4172,7 @@
   \ifx#1\@empty\else
     \edef#1{%
       \jlreq at ifempty{#2}{}{\unexpanded{\hskip-\dimexpr #2\relax}}%
-      \expandonce{#1}%
+      \exp_not:o {#1}%
       \jlreq at ifempty{#3}{}{\unexpanded{\hskip-\dimexpr #3\relax}}%
     }%
   \fi
@@ -4150,7 +4180,7 @@
 
 % #1が空かつ#4が空でないならば#2に#3と#4の中身を追加し,#4を空にする.引数は全てコントロールシークエンス
 \def\jlreq at pagestyle@addifempty#1#2#3#4{%
-  \ifx#1\@empty\ifx#4\@empty\else\eappto#2{\expandonce{#3}\expandonce{#4}}\def#4{}\fi\fi
+  \ifx#1\@empty\ifx#4\@empty\else\tl_put_right:Nx #2{ \exp_not:o {#3}\exp_not:o {#4} }\def#4{}\fi\fi
 }
 
 \newif\ifjlreq at PageStyle@first
@@ -4161,23 +4191,23 @@
   \jlreq at if{\expandafter\ifx\csname #1\endcsname\@empty\fi}{}{%
     \edef\jlreq at do{%
       \noexpand\jlreq at tempatrue % 最初の処理かフラグ
-      \unexpanded{\jlreq at pagestyle@make at runninghead@{#1}{#2}{#3}}\csexpandonce{#1}\noexpand\jlreq at endmark
+      \unexpanded{\jlreq at pagestyle@make at runninghead@{#1}{#2}{#3}}\exp_args:Nc \exp_not:o {#1}\noexpand\jlreq at endmark
     }%
     \expandafter\def\csname #1\endcsname{}%
     \jlreq at do
     % 項目が二つ以上あった.
-    \ifjlreq at tempa\else\cspreto{#1}{\jlreq at PageStyle@firsttrue}\fi
+    \ifjlreq at tempa\else\tl_put_left:cn {#1} {\jlreq at PageStyle@firsttrue} \fi
   }%
 }
 \def\jlreq at pagestyle@make at runninghead@#1#2#3#4#5{%
   \jlreq at if{\ifnum\numexpr\jlreq at ifendmark{#5}{1}{0}*\ifjlreq at tempa 1\else 0\fi\relax=1~\fi}{%
     % 項目が一つしか無い
-    \jlreq at ifempty{#2}{\csappto}{\cspreto}{#1}{#4}%
+    \jlreq at ifempty{#2}{\tl_put_right:cn}{\tl_put_left:cn}{#1}{#4}%
   }{%
     % 最初の空でない柱に出会うまでは柱の間の空白を入れない.
     % 空でない柱に出会ってないならば\ifjlreq at PageStyle@firstはtrue.
     % 一番最初の\jlreq at PageStyle@firsttrueは後で入れる.
-    \jlreq at ifempty{#2}{\csappto}{\cspreto}{#1}{%
+    \jlreq at ifempty{#2}{\tl_put_right:cn}{\tl_put_left:cn}{#1}{%
       \protected at edef\jlreq at tempa{#4}%
       \ifx\jlreq at tempa\@empty\else
         \ifjlreq at PageStyle@first\else\hskip\glueexpr#3\relax\fi
@@ -4194,8 +4224,8 @@
 \def\jlreq at pagestyle@applyformat#1#2#3{%
   % デフォルト時に限り,\hbox to ***{空トークン}を避ける
   \ifnum 0\ifx#1\@empty\else 1\fi\ifx#2\relax\else 1\fi>0
-    \edef\jlreq at do{\unexpanded{\def\jlreq at tempa##1}{\ifx#2\relax\expandonce{#3}\else\expandonce{#2}\fi}}\jlreq at do
-    \edef#1{\expandafter\expandonce\expandafter{\expandafter\jlreq at tempa\expandafter{#1}}}%
+    \edef\jlreq at do{\unexpanded{\def\jlreq at tempa##1}{\ifx#2\relax\exp_not:o {#3}\else\exp_not:o {#2}\fi}}\jlreq at do
+    \edef#1{\expandafter\exp_not:o \expandafter{\expandafter\jlreq at tempa\expandafter{#1}}}%
   \fi
 }
 
@@ -4203,7 +4233,7 @@
 \def\jlreq at pagestyle@addfont at tocs#1#2{%
   \expandafter\ifx\csname #1\endcsname\@empty\else
     \expandafter\ifx\csname #2\endcsname\@empty\else
-      \expandafter\edef\csname #1\endcsname{{\csexpandonce{#2}\csexpandonce{#1}}}%
+      \expandafter\edef\csname #1\endcsname{{\exp_args:Nc \exp_not:o {#2}\exp_args:Nc \exp_not:o {#1}}}%
     \fi
   \fi
 }
@@ -4210,13 +4240,13 @@
 % こちらは#1にトークン列を与える.\edefで展開される.制御綴名#3に代入.
 \def\jlreq at pagestyle@addfont at totokens#1#2#3{%
   \begingroup
-    \edef\jlreq at do{\noexpand\edef\expandonce{\csname#3\endcsname}{\unexpanded{#1}}}%
+    \edef\jlreq at do{\noexpand\edef\exp_not:c {#3}{\unexpanded{#1}}}%
     \expandafter\ifx\csname #2\endcsname\@empty\else
       \edef\jlreq at tempa{#1}%
       \ifx\jlreq at tempa\@empty\else
         \edef\jlreq at do{%
-          \noexpand\edef\expandonce{\csname #3\endcsname}{\noexpand\unexpanded{%
-            {\csexpandonce{#2}\expandonce{\jlreq at tempa}}%
+          \noexpand\edef\exp_not:c {#3}{\noexpand\unexpanded{%
+            {\exp_args:Nc \exp_not:o {#2}\exp_not:o {\jlreq at tempa}}%
           }}%
         }%
       \fi
@@ -4317,7 +4347,7 @@
     \clist_map_variable:nNn { odd, even } \jlreq at parity {
       \clist_map_variable:nNn { 0, 1, 2 } \jlreq at i {
         % \jlreq at pagestyle@setmarkが上の処理を行う.
-        \edef\jlreq at next{\noexpand\jlreq at pagestyle@setmark{\expandonce{\csname jlreq@\jlreq at parity @running at head@\@roman\numexpr\jlreq at i + 1\relax\endcsname}}{\expandonce{\jlreq at i}}{\expandonce{\jlreq at parity}}{jlreq at markdata}{\noexpand\jlreq at headingmarklist}}%
+        \edef\jlreq at next{\noexpand\jlreq at pagestyle@setmark{\exp_not:c {jlreq@\jlreq at parity @running at head@\@roman\numexpr\jlreq at i + 1\relax}}{\exp_not:o {\jlreq at i}}{\exp_not:o {\jlreq at parity}}{jlreq at markdata}{\noexpand\jlreq at headingmarklist}}%
         \jlreq at next
       }%
     }%
@@ -4332,13 +4362,13 @@
           \else\ifnum\jlreq at minimumlevel>\jlreq at level\space\let\jlreq at minimumlevel=\jlreq at level\fi\fi
         \fi
         % \jlreq at markdata@<見出し命令>にある情報とmark_formatをもとに,\<見出し命令>markを定義するマクロを作成,\jlreq at markdefinecommandに入れる.
-        \edef\jlreq at do{\noexpand\jlreq at pagestyle@make at headingmark{\ifjlreq at headii@exist *\fi}{\expandonce{\jlreq at heading}}{\expandonce{\jlreq at mark@format}}{\csexpandonce{jlreq at markdata@\jlreq at heading}}}%
+        \edef\jlreq at do{\noexpand\jlreq at pagestyle@make at headingmark{\ifjlreq at headii@exist *\fi}{\exp_not:o {\jlreq at heading}}{\exp_not:o {\jlreq at mark@format}}{\exp_args:Nc \exp_not:o {jlreq at markdata@\jlreq at heading}}}%
         \jlreq at do
-        \eappto\jlreq at markdefinecommand{\expandonce{\jlreq at result}}%
+        \tl_put_right:Nx \jlreq at markdefinecommand { \exp_not:o {\jlreq at result} }%
       \fi
     }%
     \ifx\jlreq at minimumlevel\@undefined\else
-      \eappto\jlreq at markdefinecommand{\noexpand\jlreq at pagestyle@setclearmark{\expandonce{\jlreq at minimumlevel}}}%
+      \tl_put_right:Nx \jlreq at markdefinecommand { \exp_not:N \jlreq at pagestyle@setclearmark { \exp_not:o {\jlreq at minimumlevel} } }
     \fi
     % 見出しを出す場合:evenに章などの高いレベルの見出しを出す(2.6.3.a)
     \@ifundefined{jlreq at odd@running at head@i at heading@level}{}{\@ifundefined{jlreq at even@running at head@i at heading@level}{}{%
@@ -4359,10 +4389,10 @@
       \def\jlreq at oddfoot{}\def\jlreq at evenfoot{}%
       \ifx\jlreq at nombre@i at position\@empty\def\jlreq at nombre@i at position{5\jlreq at zw}\fi
       \ifx\jlreq at running@head at i@position\@empty\def\jlreq at running@head at i@position{4\jlreq at zw}\fi
-      \edef\jlreq at gapcs{\noexpand\hskip\noexpand\glueexpr\expandonce{\jlreq at nombre@gap}\noexpand\relax}%
+      \edef\jlreq at gapcs{\noexpand\hskip\noexpand\glueexpr\exp_not:o {\jlreq at nombre@gap}\noexpand\relax}%
       \jlreq at pagestyle@addifempty{\jlreq at nombre@iii at position}{\jlreq at nombre@ii}{\jlreq at gapcs}{\jlreq at nombre@iii}%
       \jlreq at pagestyle@addifempty{\jlreq at nombre@ii at position}{\jlreq at nombre@i}{\jlreq at gapcs}{\jlreq at nombre@ii}%
-      \edef\jlreq at gapcs{\noexpand\hskip\noexpand\glueexpr\expandonce{\jlreq at running@head at gap}\noexpand\relax}%
+      \edef\jlreq at gapcs{\noexpand\hskip\noexpand\glueexpr\exp_not:o {\jlreq at running@head at gap}\noexpand\relax}%
       \jlreq at pagestyle@addifempty{\jlreq at running@head at iii@position}{\jlreq at odd@running at head@ii}{\jlreq at gapcs}{\jlreq at odd@running at head@iii}%
       \jlreq at pagestyle@addifempty{\jlreq at running@head at ii@position}{\jlreq at odd@running at head@i}{\jlreq at gapcs}{\jlreq at odd@running at head@ii}%
       \jlreq at pagestyle@addifempty{\jlreq at running@head at iii@position}{\jlreq at even@running at head@ii}{\jlreq at gapcs}{\jlreq at even@running at head@iii}%
@@ -4374,10 +4404,10 @@
           \jlreq at ifgluezero{\glueexpr\jlreq at position\relax}{\def\jlreq at position{}}{}%
           \expandafter\let\expandafter\jlreq at tempa\expandafter=\csname jlreq at nombre@\jlreq at i\endcsname
           \jlreq at pagestyle@addfont at tocs{jlreq at tempa}{jlreq at nombre@font}%
-          \eappto\jlreq at nombre@contents{%
-            \noexpand\hbox to 0pt{\noexpand\hss
-              \expandonce{\jlreq at tempa}%
-              \ifx\jlreq at position\@empty\else\unexpanded{\hskip \glueexpr}\expandonce{\jlreq at position}\noexpand\relax\fi
+          \tl_put_right:Nx \jlreq at nombre@contents {%
+            \exp_not:N \hbox to 0pt{\exp_not:N \hss
+              \exp_not:o {\jlreq at tempa}%
+              \ifx\jlreq at position\@empty\else\exp_not:n {\hskip \glueexpr}\exp_not:o {\jlreq at position}\exp_not:N \relax\fi
             }%
           }%
         \fi
@@ -4391,12 +4421,12 @@
             \jlreq at ifgluezero{\glueexpr\jlreq at position\relax}{\def\jlreq at position{}}{}%
             \expandafter\let\expandafter\jlreq at tempa\expandafter=\csname jlreq@\jlreq at parity @running at head@\jlreq at i\endcsname
             \jlreq at pagestyle@addfont at tocs{jlreq at tempa}{jlreq at running@head at font}%
-            \expandafter\eappto\csname jlreq@\jlreq at parity @contents\endcsname{%
-              \noexpand\hbox to 0pt{\unexpanded{\hskip\glueexpr\headsep + \headheight}%
-                \if at tate\else\unexpanded{+ \topskip - \Cht}\fi
-                \ifx\jlreq at position\@empty\else + \expandonce{\jlreq at position}\fi\noexpand\relax
-                \expandonce{\jlreq at tempa}%
-                \noexpand\hss
+            \tl_put_right:cx {jlreq@\jlreq at parity @contents} {%
+              \exp_not:N \hbox to 0pt{\exp_not:n {\hskip\glueexpr\headsep + \headheight}%
+                \if at tate\else\exp_not:n {+ \topskip - \Cht}\fi
+                \ifx\jlreq at position\@empty\else + \exp_not:o {\jlreq at position}\fi\exp_not:N \relax
+                \exp_not:o {\jlreq at tempa}%
+                \exp_not:N \hss
               }%
             }%
           \fi
@@ -4406,17 +4436,17 @@
         \@ifundefined{jlreq@\jlreq at parity headformat}
           {\def\jlreq at format{####1}}%
           {\expandafter\let\expandafter\jlreq at format\csname jlreq@\jlreq at parity headformat\endcsname}%
-        \edef\jlreq at do{\unexpanded{\def\jlreq at tempa##1}{\expandonce{\jlreq at format}}}\jlreq at do
+        \edef\jlreq at do{\unexpanded{\def\jlreq at tempa##1}{\exp_not:o {\jlreq at format}}}\jlreq at do
         \edef\jlreq at tempb{%
-          \csexpandonce{jlreq@\jlreq at parity @contents}%
+          \exp_args:Nc \exp_not:o {jlreq@\jlreq at parity @contents}%
           \noexpand\hfil
-          \expandonce{\jlreq at nombre@contents}%
+          \exp_not:o {\jlreq at nombre@contents}%
         }%
         \expandafter\edef\csname jlreq@\jlreq at parity head\endcsname{%
           \unexpanded{\setbox\jlreq at tempboxa=\hbox to \dimexpr\headsep + \headheight + \textheight}\if at tate\else\unexpanded{- \topskip + 1\jlreq at zh}\fi\noexpand\relax
           {%
             \unexpanded{\tate\adjustbaseline}%
-            \expandafter\expandonce\expandafter{\expandafter\jlreq at tempa\expandafter{\jlreq at tempb}}%
+            \expandafter\exp_not:o \expandafter{\expandafter\jlreq at tempa\expandafter{\jlreq at tempb}}%
           }%
           % Underful対策
           \ifx l\jlreq at engine
@@ -4436,11 +4466,11 @@
         \unexpanded{\box\jlreq at tempboxa\hss}%
       }%
       \if at tate
-        \eappto\jlreq at oddhead{\expandonce{\jlreq at lefthead@adjustbox}}%
-        \eappto\jlreq at evenhead{\expandonce{\jlreq at righthead@adjustbox}}%
+        \tl_put_right:Nx \jlreq at oddhead{\exp_not:o {\jlreq at lefthead@adjustbox}}%
+        \tl_put_right:Nx \jlreq at evenhead{\exp_not:o {\jlreq at righthead@adjustbox}}%
       \else
-        \eappto\jlreq at oddhead{\expandonce{\jlreq at righthead@adjustbox}}%
-        \eappto\jlreq at evenhead{\expandonce{\jlreq at lefthead@adjustbox}}%
+        \tl_put_right:Nx \jlreq at oddhead{\exp_not:o {\jlreq at righthead@adjustbox}}%
+        \tl_put_right:Nx \jlreq at evenhead{\exp_not:o {\jlreq at lefthead@adjustbox}}%
       \fi
     }{% yoko
       % 場所を正規化する.
@@ -4458,7 +4488,7 @@
       \clist_map_variable:nNn {
         jlreq at nombre@i at position, jlreq at nombre@ii at position, jlreq at nombre@iii at position, jlreq at running@head at i@position, jlreq at running@head at ii@position, jlreq at running@head at iii@position
       } \jlreq at tempa {
-        \edef\jlreq at next{\noexpand\jlreq at pagestyle@parse at position{\csexpandonce{\jlreq at tempa}}{\expandonce{\csname\jlreq at tempa\endcsname}}{\csexpandonce{\jlreq at tempa @default}}}%
+        \edef\jlreq at next{\noexpand\jlreq at pagestyle@parse at position{\exp_args:Nc \exp_not:o {\jlreq at tempa}}{\exp_not:c {\jlreq at tempa}}{\exp_args:Nc \exp_not:o {\jlreq at tempa @default}}}%
         \jlreq at next
       }%
       \bool_if:nT { (
@@ -4506,10 +4536,10 @@
             \edef\jlreq at vert{\expandafter\@firstoftwo\jlreq at position}%
             \edef\jlreq at hor{\expandafter\@secondoftwo\jlreq at position}%
             \str_if_eq:VnT \jlreq at parity { even } {\jlreq at reverse@leftright{\jlreq at hor}}
-            \jlreq at ifleftpage{\jlreq at parity}{\let\jlreq at addtocs=\cseappto}{\let\jlreq at addtocs\csepreto}%
+            \jlreq at ifleftpage{\jlreq at parity}{\let\jlreq at addtocs=\tl_put_right:cx}{\let\jlreq at addtocs\tl_put_left:cx}%
             \edef\jlreq at csname{jlreq at nombre@\jlreq at parity @\jlreq at vert @\jlreq at hor}%
-            \expandafter\ifx\csname\jlreq at csname\endcsname\@empty\else\jlreq at addtocs{\jlreq at csname}{\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at nombre@gap}\noexpand\relax}\fi
-            \jlreq at addtocs{\jlreq at csname}{\csexpandonce{jlreq at nombre@\jlreq at i}}%
+            \expandafter\ifx\csname\jlreq at csname\endcsname\@empty\else\jlreq at addtocs{\jlreq at csname}{\unexpanded{\hskip\glueexpr}\exp_not:o {\jlreq at nombre@gap}\noexpand\relax}\fi
+            \jlreq at addtocs{\jlreq at csname}{\exp_args:Nc \exp_not:o {jlreq at nombre@\jlreq at i}}%
           \fi
           % running at head
           % 一度「紙面の外から」の順番で{A}{B}{C}と入れる
@@ -4518,9 +4548,9 @@
             \edef\jlreq at vert{\expandafter\@firstoftwo\jlreq at position}%
             \edef\jlreq at hor{\expandafter\@secondoftwo\jlreq at position}%
             \str_if_eq:VnT \jlreq at parity { even } {\jlreq at reverse@leftright{\jlreq at hor}}
-            \str_if_eq:VVTF \jlreq at hor \jlreq at pagehor {\let\jlreq at addtocs=\cseappto}{\let\jlreq at addtocs=\csepreto}%
+            \str_if_eq:VVTF \jlreq at hor \jlreq at pagehor {\let\jlreq at addtocs=\tl_put_right:cx}{\let\jlreq at addtocs=\tl_put_left:cx}%
             \edef\jlreq at csname{jlreq at running@head@\jlreq at parity @\jlreq at vert @\jlreq at hor}%
-            \jlreq at addtocs{\jlreq at csname}{{\csexpandonce{jlreq@\jlreq at parity @running at head@\jlreq at i}}}%
+            \jlreq at addtocs{\jlreq at csname}{{\exp_args:Nc \exp_not:o {jlreq@\jlreq at parity @running at head@\jlreq at i}}}%
           \fi
         }%
         % {A}{B}{C}の順だった柱を結合する.本体は\jlreq at pagestyle@make at runninghead.
@@ -4527,7 +4557,7 @@
         \clist_map_variable:nNn { top, bottom } \jlreq at vert {
           \clist_map_variable:nNn { left, center, right } \jlreq at hor {
             \str_if_eq:VnTF \jlreq at hor { right } { \def\jlreq at tempa{*} } { \def\jlreq at tempa{} }
-            \edef\jlreq at do{\noexpand\jlreq at pagestyle@make at runninghead{jlreq at running@head@\jlreq at parity @\jlreq at vert @\jlreq at hor}{\expandonce{\jlreq at tempa}}{\expandonce{\jlreq at running@head at gap}}}%
+            \edef\jlreq at do{\noexpand\jlreq at pagestyle@make at runninghead{jlreq at running@head@\jlreq at parity @\jlreq at vert @\jlreq at hor}{\exp_not:o {\jlreq at tempa}}{\exp_not:o {\jlreq at running@head at gap}}}%
             \jlreq at do
           }%
         }%
@@ -4540,7 +4570,7 @@
             % nombreにフォント設定を追加.
             \expandafter\ifx\csname\jlreq at nombrecsname\endcsname\@empty\else
               \ifx\jlreq at nombre@font\@empty\else
-                \expandafter\edef\csname\jlreq at nombrecsname\endcsname{{\expandonce{\jlreq at nombre@font}\csexpandonce{\jlreq at nombrecsname}}}%
+                \expandafter\edef\csname\jlreq at nombrecsname\endcsname{{\exp_not:o {\jlreq at nombre@font}\exp_args:Nc \exp_not:o {\jlreq at nombrecsname}}}%
               \fi
             \fi
             \jlreq at if{\expandafter\ifx\csname\jlreq at runheadcsname\endcsname\@empty\fi}{%
@@ -4557,32 +4587,32 @@
                   \str_if_eq:VnTF \jlreq at hor { right } {
                     % <ノンブル><空き><柱>,右寄せ
                     % 柱が空出ないときに限り<空き>を入れる.
-                    \jlreq at pagestyle@addfont at totokens{\exp_not:N \dim_compare:nF { \exp_not:n { \wd\jlreq at PageStyle@box=0pt } } { \exp_not:N \hskip\expandonce{\jlreq at gap}\exp_no:N \relax } }{jlreq at running@head at font}{jlreq at tempa}%
+                    \jlreq at pagestyle@addfont at totokens{\exp_not:N \dim_compare:nF { \exp_not:n { \wd\jlreq at PageStyle@box=0pt } } { \exp_not:N \hskip\exp_not:o {\jlreq at gap}\exp_not:N \relax } }{jlreq at running@head at font}{jlreq at tempa}%
                     \expandafter\edef\csname\jlreq at csname\endcsname{%
-                      \unexpanded{\setbox\jlreq at PageStyle@box=\hbox}{\expandonce{\jlreq at running@head at font}\csexpandonce{\jlreq at runheadcsname}}%
-                      \csexpandonce{\jlreq at nombrecsname}\expandonce{\jlreq at tempa}\unexpanded{\box\jlreq at PageStyle@box}%
+                      \unexpanded{\setbox\jlreq at PageStyle@box=\hbox}{\exp_not:o {\jlreq at running@head at font}\exp_args:Nc \exp_not:o {\jlreq at runheadcsname}}%
+                      \exp_args:Nc \exp_not:o {\jlreq at nombrecsname}\exp_not:o {\jlreq at tempa}\unexpanded{\box\jlreq at PageStyle@box}%
                     }%
                   }{%
                     % <ノンブル><空き><柱>,左寄せ
                     % ノンブルは常に空ではないと仮定する.
-                    \jlreq at pagestyle@addfont at totokens{\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at gap}\noexpand\relax\csexpandonce{\jlreq at runheadcsname}}{jlreq at running@head at font}{jlreq at tempa}%
-                    \expandafter\edef\csname\jlreq at csname\endcsname{\csexpandonce{\jlreq at nombrecsname}\expandonce{\jlreq at tempa}}%
+                    \jlreq at pagestyle@addfont at totokens{\unexpanded{\hskip\glueexpr}\exp_not:o {\jlreq at gap}\noexpand\relax\exp_args:Nc \exp_not:o {\jlreq at runheadcsname}}{jlreq at running@head at font}{jlreq at tempa}%
+                    \expandafter\edef\csname\jlreq at csname\endcsname{\exp_args:Nc \exp_not:o {\jlreq at nombrecsname}\exp_not:o {\jlreq at tempa}}%
                   }%
                 }{%
                   \str_if_eq:VnTF \jlreq at hor { left } {
                     % <柱><空き><ノンブル>,左寄せ
                     \jlreq at pagestyle@addfont at totokens{%
-                      \unexpanded{\setbox\jlreq at PageStyle@box=\hbox}{\csexpandonce{\jlreq at runheadcsname}}%
+                      \unexpanded{\setbox\jlreq at PageStyle@box=\hbox}{\exp_args:Nc \exp_not:o {\jlreq at runheadcsname}}%
                       \unexpanded{\copy\jlreq at PageStyle@box}
                       \exp_not:N \dim_compare:nF { \exp_not:n { \wd\jlreq at PageStyle@box=0pt } } {
                         \exp_not:n { \hskip\glueexpr } \exp_not:o {\jlreq at gap} \exp_not:N \relax
                       }
                     }{jlreq at running@head at font}{jlreq at tempa}%
-                    \expandafter\edef\csname\jlreq at csname\endcsname{\expandonce{\jlreq at tempa}\csexpandonce{\jlreq at nombrecsname}}%
+                    \expandafter\edef\csname\jlreq at csname\endcsname{\exp_not:o {\jlreq at tempa}\exp_args:Nc \exp_not:o {\jlreq at nombrecsname}}%
                   }{%
                     % <柱><空き><ノンブル>,右寄せ
-                    \jlreq at pagestyle@addfont at totokens{\csexpandonce{\jlreq at runheadcsname}\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at gap}\noexpand\relax}{jlreq at running@head at font}{jlreq at tempa}%
-                    \expandafter\edef\csname\jlreq at csname\endcsname{\expandonce{\jlreq at tempa}\csexpandonce{\jlreq at nombrecsname}}%
+                    \jlreq at pagestyle@addfont at totokens{\exp_args:Nc \exp_not:o {\jlreq at runheadcsname}\unexpanded{\hskip\glueexpr}\exp_not:o {\jlreq at gap}\noexpand\relax}{jlreq at running@head at font}{jlreq at tempa}%
+                    \expandafter\edef\csname\jlreq at csname\endcsname{\exp_not:o {\jlreq at tempa}\exp_args:Nc \exp_not:o {\jlreq at nombrecsname}}%
                   }%
                 }%
               }%
@@ -4622,7 +4652,7 @@
       \fi
     }%
     \edef\jlreq at do{%
-      \noexpand\edef\expandonce{\csname ps@#1\endcsname}{%
+      \noexpand\edef\exp_not:c {ps@#1}{%
         \noexpand\unexpanded{%
           \unexpanded{\def\jlreq at current@pagestyle{#1}}%
           \ifjlreq at clearmarkcommand\unexpanded{\jlreq at heading@execmacro at toallheadings\jlreq at clearheadingmarks}\fi
@@ -4631,12 +4661,12 @@
           \else
             \unexpanded{\let\@mkboth=\markboth}%
           \fi
-          \unexpanded{\def\@oddhead}{\expandonce{\jlreq at oddhead}}%
-          \unexpanded{\def\@oddfoot}{\expandonce{\jlreq at oddfoot}}%
-          \unexpanded{\def\@evenhead}{\expandonce{\jlreq at evenhead}}%
-          \unexpanded{\def\@evenfoot}{\expandonce{\jlreq at evenfoot}}%
-          \expandonce{\jlreq at markdefinecommand}%
-          \expandonce{\jlreq at command}%
+          \unexpanded{\def\@oddhead}{\exp_not:o {\jlreq at oddhead}}%
+          \unexpanded{\def\@oddfoot}{\exp_not:o {\jlreq at oddfoot}}%
+          \unexpanded{\def\@evenhead}{\exp_not:o {\jlreq at evenhead}}%
+          \unexpanded{\def\@evenfoot}{\exp_not:o {\jlreq at evenfoot}}%
+          \exp_not:o {\jlreq at markdefinecommand}%
+          \exp_not:o {\jlreq at command}%
         }%
       }%
     }%
@@ -4672,7 +4702,7 @@
   \begingroup
     \@ifundefined{jlreq at pagestyle@setting@#1}{\ClassError{jlreq}{Unknown~pagestyle:~#1}{\@ehc}}{}%
     \expandafter\let\expandafter\setting\expandafter=\csname jlreq at pagestyle@setting@#1\endcsname
-    \edef\jlreq at do{\noexpand\RenewPageStyle{#1}{\expandonce{\setting},\unexpanded{#2}}}%
+    \edef\jlreq at do{\noexpand\RenewPageStyle{#1}{\exp_not:o {\setting},\unexpanded{#2}}}%
   \expandafter\endgroup
   \jlreq at do
 }
@@ -4697,19 +4727,19 @@
     \def\jlreq at do{}%
     \jlreq at parsekeyval@nokey{%
       \ifjlreq at parsekeyval@nokey at novalue{%
-        \epreto\jlreq at do{%
-          \noexpand\edef\expandonce{\csname #2\endcsname}{\unexpanded{\unexpanded{##1}}}
-          \noexpand\def\expandonce{\csname #1\endcsname}{}%
+        \tl_put_left:Nx \jlreq at do {%
+          \noexpand\edef\exp_not:c {#2}{\unexpanded{\unexpanded{##1}}}
+          \noexpand\def\exp_not:c {#1}{}%
         }%
         \clist_map_variable:cNn {#1} \jlreq at tempa {
-          \epreto\jlreq at do{\noexpand\let\expandonce{\csname #2@\jlreq at tempa\endcsname}\noexpand\@undefined}%
+          \tl_put_left:Nx \jlreq at do {\noexpand\let\exp_not:c {#2@\jlreq at tempa}\noexpand\@undefined}%
         }%
       }{%
-        \eappto\jlreq at do{%
-          \noexpand\edef\expandonce{\csname #2@##1\endcsname}{\unexpanded{\unexpanded{##2}}}%
+        \tl_put_right:Nx \jlreq at do {%
+          \noexpand\edef\exp_not:c {#2@##1}{\unexpanded{\unexpanded{##2}}}%
           \unexpanded{\def\jlreq at tempa{\jlreq at helper@removeelement{##1}}}%
-          \unexpanded{\expandafter\jlreq at tempa\expandafter}{\expandonce{\csname #1\endcsname}}{\expandonce{\csname #1\endcsname}}%
-          \unexpanded{\csappto{#1}{,##1}}%
+          \unexpanded{\expandafter\jlreq at tempa\expandafter}{\exp_not:c {#1}}{\exp_not:c {#1}}%
+          \unexpanded{\tl_put_right:cn {#1}{,##1}}%
         }%
       }%
     }{#3}%
@@ -4720,7 +4750,7 @@
 % #1@#2が定義されていれば\#1@#2の中身に,そうでなければ\#1の中身に展開される.
 % 展開は\unexpandedで抑制される.
 \def\jlreq at jlreqsetup@withenv at nameuse#1#2{%
-  \jlreq at if{\expandafter\ifx\csname #1@#2\endcsname\relax\fi}{\csexpandonce{#1}}{\csexpandonce{#1@#2}}%
+  \jlreq at if{\expandafter\ifx\csname #1@#2\endcsname\relax\fi}{\exp_args:Nc \exp_not:o {#1}}{\exp_args:Nc \exp_not:o {#1@#2}}%
 }
 % 4.3.1 注4
 \newlength\abovecaptionskip
@@ -4743,7 +4773,7 @@
     \edef\jlreq at tempa{{\jlreq at jlreqsetup@withenv at nameuse{jlreq@@makecaption at font@setting}{\jlreq at tempb}\unexpanded{#2}}}%
   \else
     \edef\jlreq at tempa{%
-      {\jlreq at jlreqsetup@withenv at nameuse{jlreq@@makecaption at label@font at setting}{\jlreq at tempb}\expandonce{\jlreq at tempa{#1}}}%
+      {\jlreq at jlreqsetup@withenv at nameuse{jlreq@@makecaption at label@font at setting}{\jlreq at tempb}\exp_not:o {\jlreq at tempa{#1}}}%
       \unexpanded{\hskip\glueexpr}\jlreq at jlreqsetup@withenv at nameuse{jlreq@@makecaption at after@label at space@setting}{\jlreq at tempb}\noexpand\relax
       {\jlreq at jlreqsetup@withenv at nameuse{jlreq@@makecaption at font@setting}{\jlreq at tempb}\unexpanded{#2}}%
     }%
@@ -4796,11 +4826,11 @@
   \tl_if_empty:nTF {#1} {
     \clist_map_inline:Nn \g__jlreq_ at makecaption_align_envlist_clist {
       \tl_put_right:Nx \l_jlreq_tmpb_tl {
-        \exp_not:N \let \exp_not:o {\csname jlreq@@makecaption at align@setting at large##1\endcsname}=\exp_not:N \@undefined
+        \exp_not:N \let \exp_not:c {jlreq@@makecaption at align@setting at large##1}=\exp_not:N \@undefined
       }
       \tl_if_empty:nT {#2} {
         \tl_put_right:Nx \l_jlreq_tmpb_tl {
-          \exp_not:N \let \exp_not:o {\csname jlreq@@makecaption at align@setting at small##1\endcsname}=\exp_not:N \@undefined
+          \exp_not:N \let \exp_not:c {jlreq@@makecaption at align@setting at small##1}=\exp_not:N \@undefined
         }
       }
     }
@@ -4932,7 +4962,7 @@
       % 縦書き時には表組み内でも縦書きにするようにする
       \if at tate
         \let\jlreq at temporary@original at ialign=\ialign
-        \pretocmd{\ialign}{\unexpanded{\tate\let\ialign=\jlreq at temporary@original at ialign}}{}{}%
+        \tl_put_left:Nn \ialign {\unexpanded{\tate\let\ialign=\jlreq at temporary@original at ialign}}{}{}%
       \fi
       \begin{tabular}[t]{c}%
         \@author
@@ -5005,7 +5035,7 @@
     % 縦書き時には表組み内でも縦書きにするようにする
     \if at tate
       \let\jlreq at temporary@original at ialign=\ialign
-      \pretocmd{\ialign}{\unexpanded{\tate\let\ialign=\jlreq at temporary@original at ialign}}{}{}%
+      \tl_put_left:Nn \ialign {\unexpanded{\tate\let\ialign=\jlreq at temporary@original at ialign}}{}{}%
     \fi
     \begin{tabular}[t]{c}%
       \@author
@@ -5140,23 +5170,25 @@
         \clist_map_variable:nNn {i,ii,iii,iv,v,vi} \jlreq at tempa{
           \clist_map_variable:cNn {#1} \jlreq at tempb {
             \ifx\jlreq at tempb\@empty\else
-              \eappto\jlreq at generalset{\noexpand\let\expandonce{\csname #2@\jlreq at tempa @\jlreq at tempb\endcsname}\noexpand\@undefined}%
+              \tl_put_right:Nx \jlreq at generalset {
+                \noexpand\let\exp_not:c{#2@\jlreq at tempa @\jlreq at tempb}\noexpand\@undefined
+              }
             \fi
           }%
-          \eappto\jlreq at generalset{%
-            \noexpand\edef\expandonce{\csname #2@\jlreq at tempa\endcsname}{\unexpanded{\unexpanded{##1}}}%
+          \tl_put_right:Nx \jlreq at generalset {%
+            \exp_not:N \edef\exp_not:c {#2@\jlreq at tempa}{\exp_not:n {\exp_not:n {##1}}}%
           }%
         }%
-        \appto\jlreq at generalset{\expandafter\def\csname #1\endcsname{}}%
+        \tl_put_right:Nn \jlreq at generalset { \expandafter\def\csname #1\endcsname{} }%
       }{%
         \bool_if:nTF{ \str_if_eq_p:nn {##1} {i} || \str_if_eq_p:nn {##1} {ii} || \str_if_eq_p:nn {##1} {iii} || \str_if_eq_p:nn {##1} {iv} || \str_if_eq_p:nn {##1} {v} || \str_if_eq_p:nn {##1} {vi} }{
           % i=とかの時,環境に対応するものをクリアし,\#2@##1に値を入れる
           \clist_map_variable:cNn {#1} \jlreq at tempa {
             \ifx\jlreq at tempa\@empty\else
-              \epreto\jlreq at envset{\noexpand\let\expandonce{\csname #2@##1@\jlreq at tempa\endcsname}\noexpand\@undefined}%
+              \tl_put_left:Nx \jlreq at envset{\noexpand\let\exp_not:c {#2@##1@\jlreq at tempa}\noexpand\@undefined}%
             \fi
           }%
-          \eappto\jlreq at envset{\noexpand\edef\expandonce{\csname #2@##1\endcsname}{\unexpanded{\unexpanded{##2}}}}%
+          \tl_put_right:Nx \jlreq at envset{\exp_not:N \edef\exp_not:c{#2@##1}{\exp_not:n {\exp_not:n{##2}}}}%
         }{%
           % そうでないとき,環境.##1 = 環境名
           \jlreq at parsekeyval@nokey{%
@@ -5163,22 +5195,24 @@
             \ifjlreq at parsekeyval@nokey at novalue{%
               % i - viまでに全てセットする.
               \clist_map_variable:nNn {i,ii,iii,iv,v,vi} \jlreq at tempa{
-                \epreto\jlreq at envset{\noexpand\edef\expandonce{\csname #2@\jlreq at tempa @##1\endcsname}{\unexpanded{\unexpanded{####1}}}}%
+                \tl_put_left:Nx \jlreq at envset{\noexpand\edef\exp_not:c {#2@\jlreq at tempa @##1}{\unexpanded{\unexpanded{####1}}}}%
               }%
             }{%
               % ピンポイント代入
-              \eappto\jlreq at envset{\noexpand\edef\expandonce{\csname #2@####1@##1\endcsname}{\unexpanded{\unexpanded{####2}}}}%
+              \tl_put_right:Nx \jlreq at envset {
+                \exp_not:N \edef\exp_not:c {#2@####1@##1}{\exp_not:n {\exp_not:n {####2}}}
+              }%
             }%
           }{##2}%
-          \eappto\jlreq at envset{%
-            \unexpanded{\def\jlreq at tempa{\jlreq at helper@removeelement{##1}}}%
-            \unexpanded{\expandafter\jlreq at tempa\expandafter}{\expandonce{\csname #1\endcsname}}{\expandonce{\csname #1\endcsname}}%
-            \noexpand\appto\expandonce{\csname #1\endcsname}{\unexpanded{,##1}}%
+          \tl_put_right:Nx \jlreq at envset{%
+            \exp_not:n {\def\jlreq at tempa{\jlreq at helper@removeelement{##1}}}%
+            \exp_not:n {\expandafter\jlreq at tempa\expandafter}{\exp_not:c{#1}}{\exp_not:c {#1}}%
+            \exp_not:N \tl_put_right:Nn \exp_not:c {#1}{\exp_not:n {,##1}}%
           }%
         }%
       }%
     }{#3}%
-    \edef\jlreq at do{\expandonce{\jlreq at generalset}\expandonce{\jlreq at levelset}\expandonce{\jlreq at envset}}%
+    \edef\jlreq at do{\exp_not:o {\jlreq at generalset}\exp_not:o {\jlreq at levelset}\exp_not:o {\jlreq at envset}}%
   \expandafter\endgroup
   \jlreq at do
 }
@@ -5215,7 +5249,7 @@
 \keys_define:nn { jlreqsetup } { quote_end_indent .tl_set:N = \jlreq at quote@end at indent }
 \keys_define:nn { jlreqsetup }{
   quote_fontsize .choices:nn = {normalsize,small,footnotesize,scriptsize,tiny,{}}{
-    \jlreq at ifempty{#1}{\def\jlreq at quote@fontsize{}}{\edef\jlreq at quote@fontsize{\expandonce{\csname #1\endcsname}}}
+    \jlreq at ifempty{#1}{\def\jlreq at quote@fontsize{}}{\edef\jlreq at quote@fontsize{\exp_not:c {#1}}}
   }
 }
 \keys_define:nn { jlreqsetup } { quote_beforeafter_space .tl_set:N = \jlreq at quote@beforeafter at space }
@@ -5283,8 +5317,8 @@
 % 表内の行間を0にする(4.4.3.f)
 \jlreq at saveoriginalcs{tabular}
 \jlreq at saveoriginalcs{endtabular}
-\preto\tabular{\begingroup\appto\@arrayparboxrestore{\baselineskip=0pt\lineskip=0pt}}
-\appto\endtabular{\endgroup}
+\tl_put_left:Nn \tabular {\begingroup\tl_put_right:Nn \@arrayparboxrestore{\baselineskip=0pt\lineskip=0pt}}
+\tl_put_right:Nn \endtabular{\endgroup}
 % 4.4.3.e
 \setlength\tabcolsep{.5\zh}
 \setlength\arraycolsep{.5\zw}
@@ -5313,15 +5347,12 @@
 % tarticleから
 \newdimen\@lnumwidth
 \def\numberline#1{\hbox to\@lnumwidth{#1\hfil}}
-\def\addcontentsline#1#2#3{%
-  \protected at write\@auxout{%
-    \let\label\@gobble\let\index\@gobble\let\glossary\@gobble
-    \if at tate
-      \@temptokena{\tatechuyoko{\thepage}}%
-    \else
-      \@temptokena{\thepage}%
-    \fi
-  }{\string\@writefile{#1}{\protect\contentsline{#2}{#3}{\the\@temptokena}}}%
+
+% from latex.ltx
+\legacy_if:nT { @tate } {
+  \def\addcontentsline#1#2#3{%
+    \addtocontents{#1}{\protect\contentsline{#2}{#3}{\tatechuyoko*{\thepage}}{}%
+                       \protected at file@percent}}
 }
 
 \newcount\jlreq at top@contents % トップ見出しを入れる.レベルと同じ値.
@@ -5465,14 +5496,16 @@
     \jlreq at tempafalse % restore
     \jlreq at parsekeyval@nokey{%
       \ifjlreq at parsekeyval@nokey at novalue{\def\jlreq at tempa{##1}}{%
-        \jlreq at switch{##1}{%
+        \str_if_eq:nnT {##1} { restore } {
           {restore}{\csname jlreq at tempa##2\endcsname}%
         }%
       }%
     }{#1}%
-    \eappto\jlreq at theindex@pagestyle{\unexpanded{\let\jlreq at theindex@savedpagestyle}\ifjlreq at tempa\noexpand\jlreq at current@pagestyle\else\noexpand\@undefined\fi}%
+    \tl_put_right:Nx \jlreq at theindex@pagestyle {
+      \exp_not:n {\let\jlreq at theindex@savedpagestyle}\ifjlreq at tempa\exp_not:N \jlreq at current@pagestyle\else\exp_not:N \@undefined\fi
+    }%
     \ifx\jlreq at tempa\@empty\else
-      \eappto\jlreq at theindex@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq at tempa}}}%
+      \tl_put_right:Nx \jlreq at theindex@pagestyle{\exp_not:N \pagestyle{\exp_not:o \jlreq at tempa}}%
     \fi
   }
 }
@@ -5493,19 +5526,18 @@
       \jlreq at parsekeyval@nokey{%
         % 各見出し命令に対する設定を解析
         \ifjlreq at parsekeyval@nokey at novalue{%
-          \eappto\jlreq at headingsettings{\unexpanded{####1}}%
+          \tl_put_right:Nx \jlreq at headingsettings {\exp_not:n {####1}}%
         }{%
           \str_case_e:nnF {####1} {%
             {heading_type}{%
               \lowercase{\def\jlreq at tempa{####2}}%
-              \jlreq at switch{\jlreq at tempa}{
+              \str_case_e:nnF { \jlreq at tempa } {
                 {tobira}{\def\jlreq at declaretype{RenewTobira}}
                 {block}{\def\jlreq at declaretype{RenewBlock}}
                 {runin}{\def\jlreq at declaretype{RenewRunin}}
                 {cutin}{\def\jlreq at declaretype{RenewCutin}}
                 {modify}{\def\jlreq at declaretype{Modify}}
-                {\ClassError{jlreq}{Unknown~heading~type~`####2'}{\@ehc}}
-              }%
+              }{\ClassError{jlreq}{Unknown~heading~type~`####2'}{\@ehc}}
             }
             {heading_level}{\def\jlreq at level{####2}}
           }{%
@@ -5514,35 +5546,35 @@
                 \csname jlreq at tempa####2\endcsname\@gobble
               }{\@firstofone}%
             }%
-            {\eappto\jlreq at headingsettings{\ifx\jlreq at headingsettings\@empty\else ,\fi\unexpanded{####1={####2}}}}%
+            {\tl_put_right:Nx \jlreq at headingsettings{\ifx\jlreq at headingsettings\@empty\else ,\fi\unexpanded{####1={####2}}}}%
           }%
         }%
       }{##2}%
       \jlreq at ifempty{#1}{}{%
         \ifjlreq at tempa
-          \eappto\jlreq at headingscmds{\noexpand\SaveHeading{\unexpanded{##1}}{\expandonce{\csname #2@##1\endcsname}}}%
-          \eappto\jlreq at restoreheadings{\ifx\jlreq at restoreheadings\@empty\else ,\fi\unexpanded{##1}}%
+          \tl_put_right:Nx \jlreq at headingscmds {\exp_not:N \SaveHeading{\exp_not:n {##1}}{\exp_not:c {#2@##1}}}%
+          \tl_put_right:Nx \jlreq at restoreheadings {\ifx\jlreq at restoreheadings\@empty\else ,\fi\exp_not:n {##1}}%
         \fi
       }%
       % \jlreq at declareに\ModifyHeadingか\Renew***Headingを入れる
-      \edef\jlreq at declare{\expandonce{\csname\jlreq at declaretype Heading\endcsname}{##1}}%
+      \edef\jlreq at declare{\exp_not:c {\jlreq at declaretype Heading}{##1}}%
       \str_if_eq:VnF \jlreq at declaretype { Modify } {
         \ifx\jlreq at level\@empty
           % \frontmatter時でのレベルを引用する.
           \edef\jlreq at declare{%
-            \unexpanded{\edef\jlreq at tempa}{\noexpand\unexpanded{\expandonce{\jlreq at declare}}{\noexpand\expandonce{\expandonce{\csname jlreq at heading@level@##1\endcsname}}}}%
+            \unexpanded{\edef\jlreq at tempa}{\noexpand\unexpanded{\exp_not:o {\jlreq at declare}}{\noexpand\exp_not:o {\exp_not:c {jlreq at heading@level@##1}}}}%
             \noexpand\jlreq at tempa
           }%
         \else
-          \eappto\jlreq at declare{{\expandonce{\jlreq at level}}}%
+          \tl_put_right:Nx \jlreq at declare {{\exp_not:o {\jlreq at level}}}%
         \fi
       }{}%
-      \eappto\jlreq at headingscmds{\expandonce{\jlreq at declare}{\expandonce{\jlreq at headingsettings}}}%
+      \tl_put_right:Nx \jlreq at headingscmds {\exp_not:o {\jlreq at declare}{\exp_not:o {\jlreq at headingsettings}}}%
     }{#4}%
     \edef\jlreq at do{%
       \unexpanded{\def#3}{%
-        \expandonce{\jlreq at headingscmds}%
-        \jlreq at ifempty{#1}{}{\unexpanded{\def#1}{\expandonce{\jlreq at restoreheadings}}}%
+        \exp_not:o {\jlreq at headingscmds}%
+        \jlreq at ifempty{#1}{}{\unexpanded{\def#1}{\exp_not:o {\jlreq at restoreheadings}}}%
       }%
     }%
   \expandafter\endgroup
@@ -5552,11 +5584,11 @@
 \def\jlreq at matter@counter at norestore#1#2{%
   \def#1{}%
   \jlreq at parsekeyval@nokey{%
-    \keys_define:nn { __jlreq_keyval } {
-      value .code:n = \appto#1{\setcounter{##1}{####1}},
-      the .code:n = {\eappto#1{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}}
+    \keys_define:nn { __jlreq_keyval_matter_counter_norestore } {
+      value .code:n = { \tl_put_right:Nn #1 { \setcounter{##1}{####1} } },
+      the .code:n = { \tl_put_right:Nx #1 { \exp_not:N \def\exp_not:c {the##1}{\exp_not:n {####1}} } }
     }
-    \keys_set:nn { __jlreq_keyval } {##2}
+    \keys_set:nn { __jlreq_keyval_matter_counter_norestore } {##2}
   }{#2}%
 }
 
@@ -5564,30 +5596,29 @@
   \newif\if at mainmatter
   \@mainmattertrue
   \keys_define:nn { jlreqsetup } {frontmatter_pagebreak .code:n = {%
-    \edef\jlreq at frontmatter@pagebreak{\jlreq at ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}%
+    \edef\jlreq at frontmatter@pagebreak{\jlreq at ifempty{#1}{}{\exp_not:c {#1}}}%
   }}
   \keys_define:nn { jlreqsetup } {frontmatter_counter .code:n = {%
       \def\jlreq at frontmatter@counter{}%
-      \def\jlreq at tempa{}% 復帰させるカウンタ名リスト
+      \tl_set:Nn \jlreq at frontmatter@counter { \seq_gclear:N \g__jlreq_frontmatter_resetcounter_seq }
       \jlreq at parsekeyval@nokey{%
         \def\jlreq at tempb{}% 中身
         \jlreq at tempatrue % restore
         \keys_define:nn { frontmatter_counter } {
-          value .code:n = {\appto\jlreq at tempb{\setcounter{##1}{####1}}},
-          restore .code:n = {\csname jlreq at tempa####1\endcsname},
-          the .code:n = {\eappto\jlreq at tempb{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}}
+          value .code:n = { \tl_put_right:Nn \jlreq at tempb{\setcounter{##1}{####1}} },
+          restore .code:n = { \csname jlreq at tempa####1\endcsname },
+          the .code:n = { \tl_put_right:Nx \jlreq at tempb { \exp_not:N \def\exp_not:c {the##1}{\exp_not:n {####1}} } }
         }
         \keys_set:nn { frontmatter_counter } {##2}
         \ifjlreq at tempa
-          \epreto\jlreq at tempb{%
-            \noexpand\let\expandonce{\csname jlreq at frontmatter@savedcounter at the@##1\endcsname}\expandonce{\csname the##1\endcsname}%
-            \noexpand\edef\expandonce{\csname jlreq at frontmatter@savedcounter at value@##1\endcsname}{\unexpanded{\the\value{##1}}}%
+          \tl_put_left:Nx \jlreq at tempb {%
+            \noexpand\let\exp_not:c {jlreq at frontmatter@savedcounter at the@##1}\exp_not:c {the##1}%
+            \noexpand\edef\exp_not:c {jlreq at frontmatter@savedcounter at value@##1}{\unexpanded{\the\value{##1}}}%
           }%
-          \eappto\jlreq at tempa{\ifx\jlreq at tempa\@empty\else ,\fi\unexpanded{##1}}%
+          \tl_put_right:Nn \jlreq at frontmatter@counter { \seq_gput_right:Nn \g__jlreq_frontmatter_resetcounter_seq { ##1 } }
         \fi
-        \eappto\jlreq at frontmatter@counter{\expandonce{\jlreq at tempb}}%
+        \tl_put_right:NV \jlreq at frontmatter@counter \jlreq at tempb
       }{#1}%
-      \eappto\jlreq at frontmatter@counter{\unexpanded{\def\jlreq at frontmatter@restorecounters}{\expandonce{\jlreq at tempa}}}%
     }
   }
   \keys_define:nn { jlreqsetup } {frontmatter_heading .code:n = {\jlreq at matter@heading[\jlreq at frontmatter@restoreheadings]{jlreq at frontmatter@savedheading}{\jlreq at frontmatter@heading}{#1}}}
@@ -5597,16 +5628,14 @@
       \jlreq at tempatrue % restore
       \jlreq at parsekeyval@nokey{%
         \ifjlreq at parsekeyval@nokey at novalue{\def\jlreq at tempa{##1}}{%
-          \jlreq at switch{##1}{%
-            {restore}{\csname jlreq at tempa##2\endcsname}%
-          }%
+          \str_if_eq:nnT { ##1 } { restore } { \csname jlreq at tempa##2\endcsname }
         }%
       }{#1}%
       \ifjlreq at tempa
-        \appto\jlreq at frontmatter@pagestyle{\let\jlreq at frontmatter@savedpagestyle\jlreq at current@pagestyle}%
+        \tl_put_right:Nn \jlreq at frontmatter@pagestyle{\let\jlreq at frontmatter@savedpagestyle\jlreq at current@pagestyle}%
       \fi
       \ifx\jlreq at tempa\@empty\else
-        \eappto\jlreq at frontmatter@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq at tempa}}}%
+        \tl_put_right:Nx \jlreq at frontmatter@pagestyle { \exp_not:N \pagestyle{\exp_not:o {\jlreq at tempa}} }%
       \fi
     }
   }
@@ -5616,14 +5645,13 @@
       \def\jlreq at pagination@frontmatterstyle{arabic}%
       \let\jlreq at pagination@mainmatterpagecommand=\pagenumbering
       \clist_map_variable:nNn {#1} \jlreq at tempa {
-        \expandafter\jlreq at helper@trim\expandafter{\jlreq at tempa}{\jlreq at tempa}%
-        \jlreq at switch{\jlreq at tempa}{
+        \tl_set:Nx \jlreq at tempa { \tl_trim_spaces:o \jlreq at tempa }
+        \str_case_e:nnF {\jlreq at tempa}{
           {continuous}{%
             \def\jlreq at pagination@mainmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c at page}}%
           }
           {independent}{\let\jlreq at pagination@mainmatterpagecommand=\pagenumbering}
-          {\edef\jlreq at pagination@frontmatterstyle{\jlreq at tempa}}
-        }%
+        }{\edef\jlreq at pagination@frontmatterstyle{\jlreq at tempa}}
       }%
     }
   }
@@ -5638,11 +5666,11 @@
     \expandafter\gdef\expandafter\thepage\expandafter{\csname @\jlreq at pagination@frontmatterstyle\endcsname\c at page}%
     \jlreq at frontmatter@postcode
   }
-  \def\jlreq at frontmatter@restorecounters{}
+  \seq_new:N \g__jlreq_frontmatter_resetcounter_seq
   \def\jlreq at frontmatter@restoreheadings{}
   \def\jlreq at frontmatter@restorecommands{}
   \keys_define:nn { jlreqsetup } {mainmatter_pagebreak .code:n = {%
-    \edef\jlreq at mainmatter@pagebreak{\jlreq at ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}%
+    \edef\jlreq at mainmatter@pagebreak{\jlreq at ifempty{#1}{}{\exp_not:c {#1}}}%
   }}
   \keys_define:nn { jlreqsetup } {mainmatter_pagestyle .code:n = {%
     \edef\jlreq at mainmatter@pagestyle{\jlreq at ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}%
@@ -5661,7 +5689,7 @@
     }{%
       \expandafter\pagestyle\expandafter{\jlreq at frontmatter@savedpagestyle}%
     }%
-    \clist_map_variable:NNn \jlreq at frontmatter@restorecounters \jlreq at tempa {
+    \seq_map_variable:NNn \g__jlreq_frontmatter_resetcounter_seq \jlreq at tempa {
       \setcounter{\jlreq at tempa}{\csname jlreq at frontmatter@savedcounter at value@\jlreq at tempa\endcsname}%
       \expandafter\let\csname the\jlreq at tempa\expandafter\endcsname\csname jlreq at frontmatter@savedcounter at the@\jlreq at tempa\endcsname
     }%
@@ -5675,7 +5703,7 @@
     \jlreq at mainmatter@postcode
   }
   \keys_define:nn { jlreqsetup } {backmatter_pagebreak .code:n = {%
-    \edef\jlreq at backmatter@pagebreak{\jlreq at ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}%
+    \edef\jlreq at backmatter@pagebreak{\jlreq at ifempty{#1}{}{\exp_not:c {#1}}}%
   }}
   \keys_define:nn { jlreqsetup } {backmatter_pagestyle .code:n = {%
     \edef\jlreq at backmatter@pagestyle{\jlreq at ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}%
@@ -5688,14 +5716,13 @@
       \let\jlreq at pagination@backmatterpagecommand=\pagenumbering
       \def\jlreq at pagination@backmatterstyle{arabic}%
       \clist_map_variable:nNn {#1} \jlreq at tempa {
-        \expandafter\jlreq at helper@trim\expandafter{\jlreq at tempa}{\jlreq at tempa}%
-        \jlreq at switch{\jlreq at tempa}{
+        \tl_set:Nx \jlreq at tempa { \tl_trim_spaces:o \jlreq at tempa }
+        \str_case_e:nnF {\jlreq at tempa} {
           {continuous}{%
             \def\jlreq at pagination@backmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c at page}}%
           }
           {independent}{\let\jlreq at pagination@backmatterpagecommand=\pagenumbering}
-          {\edef\jlreq at pagination@backmatterstyle{\jlreq at tempa}}
-        }%
+        } {\edef\jlreq at pagination@backmatterstyle{\jlreq at tempa}}
       }%
     }
   }
@@ -5725,14 +5752,14 @@
 
 %. その他諸々
 %.. 縦中横
-\protected\def\tatechuyoko{\@ifstar
-  {\jlreq at tatechuyoko@i}%
-  {%
+\NewDocumentCommand { \tatechuyoko } { s m } {
+  \IfBooleanTF{#1}{
+    \jlreq at iftdir{\jlreq at tatechuyoko@i{#2}}{#2}
+  }{
     \jlreq at iftdir{}{\ClassError{jlreq}{\string\tatechuyoko\space is~not~allowed~in~yoko~mode}{\@ehc}}%
-    \jlreq at tatechuyoko@ii
-  }%
+    \jlreq at tatechuyoko@i{#2}
+  }
 }
-\def\jlreq at tatechuyoko@i#1{\jlreq at iftdir{\jlreq at tatechuyoko@ii{#1}}{#1}}
 
 \edef\@tempa{%
   \unexpanded{\ifvmode\leavevmode\fi}%
@@ -5745,7 +5772,7 @@
   }\fi
 }
 
-\expandafter\def\expandafter\jlreq at tatechuyoko@ii\expandafter#\expandafter1\expandafter{%
+\expandafter\def\expandafter\jlreq at tatechuyoko@i\expandafter#\expandafter1\expandafter{%
   \@tempa
   % 前のJFM glue
   \ifnum\jlreq at lastnodechar>-1
@@ -5758,9 +5785,9 @@
       \vrule width~0pt~height~\ht\jlreq at tempboxa depth~\dp\jlreq at tempboxa
     \endgroup
     #1}%
-  \futurelet\jlreq at nextchar\jlreq at tatechuyoko@iii
+  \futurelet\jlreq at nextchar\jlreq at tatechuyoko@ii
 }
-\def\jlreq at tatechuyoko@iii{%
+\def\jlreq at tatechuyoko@ii{%
   \begingroup
     \def\jlreq at do{}%
     \jlreq at getfirsttoken@expandmacros{\jlreq at nextchar}{\jlreq at tempa}%
@@ -5884,7 +5911,7 @@
   }
 }
 \cs_set:Nn \__jlreq_warekiyear_aux:nnn {
-  \int_compare:nTF { #1 = #2 } {元年} { \int_eval:n { #1 - #2 + 1 } 年 }
+  \int_compare:nTF { #1 = #2 } {元年} { #3\int_eval:n { #1 - #2 + 1 } 年 }
 }
 \def\today{%
   \if西暦
@@ -5935,7 +5962,7 @@
   \edef\jlreq at do{
     \unexpanded{\def\jlreq at proof[#1]}{%
       \unexpanded{\labelsep=1\jlreq at zw}%
-      \expandonce{\proof[{\reset at font\jlreq at proof@label at font #1\inhibitglue}\nopunct]}%
+      \exp_not:o {\proof[{\reset at font\jlreq at proof@label at font #1\inhibitglue}\nopunct]}%
     }
   }
   \jlreq at do
@@ -6007,6 +6034,7 @@
   \renewcommand{\theparagraph}{\thesubsubsection .\arabic{paragraph}}
   \renewcommand{\thesubparagraph}{\theparagraph .\arabic{subparagraph}}
   \str_if_eq:VnTF \jlreq at article@type { article } {
+\def\X{}
     \NewBlockHeading{part}{0}{font={\jlreq at keepbaselineskip{\LARGE\sffamily\gtfamily\bfseries}},label_format={第\thepart 部},lines=4,after_label_space=1\jlreq at zw,second_heading_text_indent={-1\jlreq at zw,1\jlreq at zw},subtitle_font={\jlreq at keepbaselineskip{\large}}}
     \renewcommand{\thesection}{\arabic{section}}
   }{% book, report
@@ -6125,12 +6153,13 @@
 \renewcommand{\p at enumiii}{\theenumi(\theenumii)}
 \renewcommand{\p at enumiv}{\p at enumiii\theenumiii}
 
-\newcommand{\labelitemi}{\hbox to 1\jlreq at zw{\hss\textbullet\hss}}
 %\newcommand{\labelitemi}{•}
 \legacy_if:nTF { @tate } {
+  \newcommand{\labelitemi}{\hbox to 1\jlreq at zw{\hss\tatechuyoko{\textbullet}\hss}}
   \newcommand{\labelitemii}{○}
   \newcommand{\labelitemiii}{*}
 }{
+  \newcommand{\labelitemi}{\hbox to 1\jlreq at zw{\hss\textbullet\hss}}
   \newcommand{\labelitemii}{\hbox to 1\jlreq at zw{\hss\textendash\hss}}
   \newcommand{\labelitemiii}{\hbox to 1\jlreq at zw{\hss\textasteriskcentered\hss}}
 }



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