texlive[46514] Master/texmf-dist: jlreq (1feb18)

commits+karl at tug.org commits+karl at tug.org
Fri Feb 2 00:05:36 CET 2018


Revision: 46514
          http://tug.org/svn/texlive?view=revision&revision=46514
Author:   karl
Date:     2018-02-02 00:05:35 +0100 (Fri, 02 Feb 2018)
Log Message:
-----------
jlreq (1feb18)

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.html
    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	2018-02-01 23:02:41 UTC (rev 46513)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/README-ja.md	2018-02-01 23:05:35 UTC (rev 46514)
@@ -72,11 +72,13 @@
 ### その他
 * ルビや圏点は提供されません.[PXrubrica](https://github.com/zr-tex8r/PXrubrica)またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います.
 * 日本語組版処理の要件2.3.2.dによれば,二段組の最後のページの各段の行数は揃えることが望ましいとされていますが,この処理は行われません.`nidanfloat`パッケージを使い,
-```latex
-\usepackage[balance]{nidanfloat}
-```
-とするとこの処理が行われます.ただし,最終ページでの`\newpage`や`\clearpage`が正しく動作しません.詳しくは`nidanfloat`パッケージのマニュアルをご覧ください.
 
+    ```latex
+    \usepackage[balance]{nidanfloat}
+    ```
+
+    とするとこの処理が行われます.ただし,最終ページでの`\newpage`や`\clearpage`が正しく動作しません.詳しくは`nidanfloat`パッケージのマニュアルをご覧ください.
+
 ## 各種設計
 設計はクラスオプションまたは`\jlreqsetup`によりkeyval形式で行います.以下では次の用法を使います.
 
@@ -125,6 +127,9 @@
 図表のキャプションを`\jlreqsetup`で変更できます.
 * `caption_font=<命令>`:キャプション自身のフォントを指定します.
 * `caption_label_font=<命令>`:キャプションのラベルのフォントを指定します.
+* `caption_after_label_space=<寸法>`:ラベルとキャプションの間の空きを指定します.
+* `caption_label_format=<書式>`:ラベルの書式を指定します.`caption_label_format={#1:}`のようにします.`#1`が「図1」のような番号に置換されます.
+* `caption_align=[{left/right/center/bottom/top/<環境名1>=<位置指定1>,<環境名2>=<位置指定2>,...}]`:キャプションの場所を指定します.`caption_align=left`のように指定します.`caption_align={center,table=right}`とすると,`table`のみ右,そのほかは中央配置となります.
 
 ### 引用
 `quote / quotation / verse`環境の挙動を`\jlreqsetup`で指定できます.
@@ -135,7 +140,7 @@
 
 ### 箇条書き
 `\jlreqsetup`で指定します.
-* `itemization_beforeafter_space=<寸法>`:箇条書きの前後の空きを指定します.
+* `itemization_beforeafter_space=<寸法>`:箇条書きの前後の空きを指定します.`itemization_beforeafter_space={i=<寸法>}`とするとトップレベルのみに設定を行います.`itemization_beforeafter_space={0pt,i=10pt,ii=5pt}`とすれば,レベル1の箇条書きに10ptを,レベル2のそれに5ptを,それ以外には0ptを設定します.
 * `itemization_itemsep=<寸法>`:項目同士の空きを指定します.
 
 ### 定理環境
@@ -149,8 +154,14 @@
 \Declare***Heading{<命令名>}{<レベル>}{<設定>}
 ```
 
-となっています.また,`\New***Heading`,`\Renew***Heading`,`\Provide***Heading`も同時に用意されます.それぞれ`\newcommand`,`\renewcommand`,`\providecommand`に対応した動きをします.
+となっています.また,`\New***Heading`,`\Renew***Heading`,`\Provide***Heading`も同時に用意されます.それぞれ
 
+* `\New***Heading`:指定した名前の命令が既に定義されている場合はエラー.
+* `\Renew***Heading`:指定した名前の命令が定義されていなければエラー.
+* `\Provide***Heading`:指定した名前の命令が定義されていない場合に限り見出し命令の定義が行われる.
+
+となっています.
+
 ### 扉見出し
 `\DeclareTobiraHeading`で作成します.通常のクラスファイルにおける`\section`等と同じ書式の命令ができます.設定は以下の通り.
 
@@ -203,7 +214,7 @@
 のように使います.この意味は次の通りです.
 
 * `\part`,`\section`,`\subsection`という順番で見出しが掲げられていて,その前後が見出しでない場合は,`\part`は三行取り+前に一行空き,`\section`と`\subsection`は二行取りとなります.
-* `\section`,`\subsection`という順番で見出しが掲げられていて,その前後が乱し出ない場合は,全体で五行取りとし,`\section`と`\subsection`との間に`23pt`の空き,`\subsection`の後に`16pt`の空きを入れます.
+* `\section`,`\subsection`という順番で見出しが掲げられていて,その前後が見出しでない場合は,全体で五行取りとし,`\section`と`\subsection`との間に`23pt`の空き,`\subsection`の後に`16pt`の空きを入れます.
 
 個々の設定は以下のようになります.
 
@@ -221,6 +232,8 @@
 
 * `font=<命令>`:見出しのフォントを指定します.
 * `indent=<寸法>` 見出し文字列全体の字下げ量を指定します.
+* `after_label_space=<寸法>`:ラベル後,見出し文字列までの空きを指定します.
+* `label_format=<命令>`:ラベルのフォーマットを指定します.`label_format={\theparagraph}`などのようにします.
 
 ### 窓見出し
 `\DeclareCutinHeading`で作成します.`\<命令名>{見出し文字列}`という書式の命令を作成します.設定は以下の通り.
@@ -257,7 +270,7 @@
 * `tate`:縦書きで小口側に出力します.
 * `font=<命令>`:柱とノンブルのフォントを指定します.
 * `running_head_position`, `nombre_position`:柱とノンブルの位置を指定します.`yoko`か`tate`のどちらが指定されているかで挙動が変わります.
-    - `yoko`指定時:`top-left`のように指定できます.`top/bottom/center/left/right/gutter/fore_edge`が使えます.`gutter`はのど,`fore_edge`は小口です.`left`,`right`の指定は奇数ページに対するものです.`twoside`が指定されている場合,偶数ページはその逆になります.
+    - `yoko`指定時:`top-left`のように指定できます.`top / bottom / center / left / right / gutter / fore_edge`が使えます.`gutter`はのど,`fore_edge`は小口です.`left`,`right`の指定は奇数ページに対するものです.`twoside`が指定されている場合,偶数ページはその逆になります.
     - `tate`指定時:`<寸法>`が指定できます.`running_head_position`は柱の天からの下げ量を,`nombre_position`はノンブルの地からの上げ量を指定します.
 * `nombre=<書式>`:出力するノンブルを指定します.デフォルトは`\thepage`.
 * `odd_running_head=<書式>`,`even_running_head=<書式>`:それぞれ奇数ページ,偶数ページの柱を指定します.`_section`のように`_`から始まる名前を指定すると,対応する見出しを出力します.(`_section`だと現在の`\section`を出力する.)
@@ -266,9 +279,11 @@
 
 ## JFM
 以下のような独自のJFMを使います.パッケージによっては,パッケージ独自のJFMや,また標準のJFMを使うように設定がし直される場合があります.例えばLuaTeX-jaに付属するluatexja-presetパッケージは通常LuaTeX-ja標準のJFMを使います.本クラスファイルで使っているJFMを使う場合は,
+
 ```LaTeX
 \usepackage[jfm_yoko=jlreq,jfm_tate=jlreqv,hiragino-pron]{luatexja-preset}
 ```
+
 のようにオプションで指定する必要があります.
 
 ### pLaTeX/upLaTeXの場合
@@ -348,9 +363,14 @@
     - JFMを改善.
     - 別行見出しの間の`\label`の検出方法を変更.
     - `\theequation`,`\thefigure`,`\thetable`に章番号を追加.
+* 2018-02-01
+    - 縦書きの傍注は奇数ページにのみ出るようにした(改善の余地ありかも).
+    - LuaTeX時に`\fnixbottomtrue`を追加.
+    - キャプション関係のオプションを`\jlreqsetup`に追加.
+    - `itemization_beforeafter_space`を拡張.
+    - バグ修正.
 
 
-
 --------------
 Noriyuki Abe
 https://github.com/abenori/jlreq

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/README.md	2018-02-01 23:02:41 UTC (rev 46513)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/README.md	2018-02-01 23:05:35 UTC (rev 46514)
@@ -68,6 +68,12 @@
     - Improved JFM.
     - Change the way to detect `\label` between block headings.
     - Added chapter number to `\theequation`,`\thefigure`,`\thetable`.
+* 2018-02-01
+    - Sidenotes appears only odd pages in `tate` mode.
+    - Added `\fnixbottomtrue` for LuaLaTeX.
+    - Added some options related to captions.
+    - Extended `itemization_beforeafter_space`.
+    - Fixed bugs.
 
 
 

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html	2018-02-01 23:02:41 UTC (rev 46513)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html	2018-02-01 23:05:35 UTC (rev 46514)
@@ -134,11 +134,11 @@
 <p>全角空白(U+3000)一文字からなるマクロです.和文間隔を挿入します.LuaLaTeXでは<code> </code>のみでも和文間隔を入力できます.</p>
 <h3 id="その他">その他</h3>
 <ul>
-<li>ルビや圏点は提供されません.<a href="https://github.com/zr-tex8r/PXrubrica">PXrubrica</a>またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います.</li>
-<li>日本語組版処理の要件2.3.2.dによれば,二段組の最後のページの各段の行数は揃えることが望ましいとされていますが,この処理は行われません.<code>nidanfloat</code>パッケージを使い,</li>
+<li><p>ルビや圏点は提供されません.<a href="https://github.com/zr-tex8r/PXrubrica">PXrubrica</a>またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います.</p></li>
+<li><p>日本語組版処理の要件2.3.2.dによれば,二段組の最後のページの各段の行数は揃えることが望ましいとされていますが,この処理は行われません.<code>nidanfloat</code>パッケージを使い,</p>
+<pre class="sourceCode latex" id="cb5"><code class="sourceCode latex"><a class="sourceLine" id="cb5-1" data-line-number="1"><span class="bu">\usepackage</span>[balance]{<span class="ex">nidanfloat</span>}</a></code></pre>
+<p>とするとこの処理が行われます.ただし,最終ページでの<code>\newpage</code>や<code>\clearpage</code>が正しく動作しません.詳しくは<code>nidanfloat</code>パッケージのマニュアルをご覧ください.</p></li>
 </ul>
-<pre class="sourceCode latex" id="cb5"><code class="sourceCode latex"><a class="sourceLine" id="cb5-1" data-line-number="1"><span class="bu">\usepackage</span>[balance]{<span class="ex">nidanfloat</span>}</a></code></pre>
-<p>とするとこの処理が行われます.ただし,最終ページでの<code>\newpage</code>や<code>\clearpage</code>が正しく動作しません.詳しくは<code>nidanfloat</code>パッケージのマニュアルをご覧ください.</p>
 <h2 id="各種設計">各種設計</h2>
 <p>設計はクラスオプションまたは<code>\jlreqsetup</code>によりkeyval形式で行います.以下では次の用法を使います.</p>
 <ul>
@@ -192,6 +192,9 @@
 <ul>
 <li><code>caption_font=<命令></code>:キャプション自身のフォントを指定します.</li>
 <li><code>caption_label_font=<命令></code>:キャプションのラベルのフォントを指定します.</li>
+<li><code>caption_after_label_space=<寸法></code>:ラベルとキャプションの間の空きを指定します.</li>
+<li><code>caption_label_format=<書式></code>:ラベルの書式を指定します.<code>caption_label_format={#1:}</code>のようにします.<code>#1</code>が「図1」のような番号に置換されます.</li>
+<li><code>caption_align=[{left/right/center/bottom/top/<環境名1>=<位置指定1>,<環境名2>=<位置指定2>,...}]</code>:キャプションの場所を指定します.<code>caption_align=left</code>のように指定します.<code>caption_align={center,table=right}</code>とすると,<code>table</code>のみ右,そのほかは中央配置となります.</li>
 </ul>
 <h3 id="引用">引用</h3>
 <p><code>quote / quotation / verse</code>環境の挙動を<code>\jlreqsetup</code>で指定できます.</p>
@@ -204,7 +207,7 @@
 <h3 id="箇条書き">箇条書き</h3>
 <p><code>\jlreqsetup</code>で指定します.</p>
 <ul>
-<li><code>itemization_beforeafter_space=<寸法></code>:箇条書きの前後の空きを指定します.</li>
+<li><code>itemization_beforeafter_space=<寸法></code>:箇条書きの前後の空きを指定します.<code>itemization_beforeafter_space={i=<寸法>}</code>とするとトップレベルのみに設定を行います.<code>itemization_beforeafter_space={0pt,i=10pt,ii=5pt}</code>とすれば,レベル1の箇条書きに10ptを,レベル2のそれに5ptを,それ以外には0ptを設定します.</li>
 <li><code>itemization_itemsep=<寸法></code>:項目同士の空きを指定します.</li>
 </ul>
 <h3 id="定理環境">定理環境</h3>
@@ -216,7 +219,13 @@
 <p>見出しの設定は,<code>\Declare***Heading</code>という命令で行います(***には見出しの種類に応じた文字列が入る).書式はすべて</p>
 <pre><code>\Declare***Heading{<命令名>}{<レベル>}{<設定>}
 </code></pre>
-<p>となっています.また,<code>\New***Heading</code>,<code>\Renew***Heading</code>,<code>\Provide***Heading</code>も同時に用意されます.それぞれ<code>\newcommand</code>,<code>\renewcommand</code>,<code>\providecommand</code>に対応した動きをします.</p>
+<p>となっています.また,<code>\New***Heading</code>,<code>\Renew***Heading</code>,<code>\Provide***Heading</code>も同時に用意されます.それぞれ</p>
+<ul>
+<li><code>\New***Heading</code>:指定した名前の命令が既に定義されている場合はエラー.</li>
+<li><code>\Renew***Heading</code>:指定した名前の命令が定義されていなければエラー.</li>
+<li><code>\Provide***Heading</code>:指定した名前の命令が定義されていない場合に限り見出し命令の定義が行われる.</li>
+</ul>
+<p>となっています.</p>
 <h3 id="扉見出し">扉見出し</h3>
 <p><code>\DeclareTobiraHeading</code>で作成します.通常のクラスファイルにおける<code>\section</code>等と同じ書式の命令ができます.設定は以下の通り.</p>
 <ul>
@@ -267,7 +276,7 @@
 <p>のように使います.この意味は次の通りです.</p>
 <ul>
 <li><code>\part</code>,<code>\section</code>,<code>\subsection</code>という順番で見出しが掲げられていて,その前後が見出しでない場合は,<code>\part</code>は三行取り+前に一行空き,<code>\section</code>と<code>\subsection</code>は二行取りとなります.</li>
-<li><code>\section</code>,<code>\subsection</code>という順番で見出しが掲げられていて,その前後が乱し出ない場合は,全体で五行取りとし,<code>\section</code>と<code>\subsection</code>との間に<code>23pt</code>の空き,<code>\subsection</code>の後に<code>16pt</code>の空きを入れます.</li>
+<li><code>\section</code>,<code>\subsection</code>という順番で見出しが掲げられていて,その前後が見出しでない場合は,全体で五行取りとし,<code>\section</code>と<code>\subsection</code>との間に<code>23pt</code>の空き,<code>\subsection</code>の後に<code>16pt</code>の空きを入れます.</li>
 </ul>
 <p>個々の設定は以下のようになります.</p>
 <ul>
@@ -284,6 +293,8 @@
 <ul>
 <li><code>font=<命令></code>:見出しのフォントを指定します.</li>
 <li><code>indent=<寸法></code> 見出し文字列全体の字下げ量を指定します.</li>
+<li><code>after_label_space=<寸法></code>:ラベル後,見出し文字列までの空きを指定します.</li>
+<li><code>label_format=<命令></code>:ラベルのフォーマットを指定します.<code>label_format={\theparagraph}</code>などのようにします.</li>
 </ul>
 <h3 id="窓見出し">窓見出し</h3>
 <p><code>\DeclareCutinHeading</code>で作成します.<code>\<命令名>{見出し文字列}</code>という書式の命令を作成します.設定は以下の通り.</p>
@@ -314,7 +325,7 @@
 <li><code>font=<命令></code>:柱とノンブルのフォントを指定します.</li>
 <li><code>running_head_position</code>, <code>nombre_position</code>:柱とノンブルの位置を指定します.<code>yoko</code>か<code>tate</code>のどちらが指定されているかで挙動が変わります.
 <ul>
-<li><code>yoko</code>指定時:<code>top-left</code>のように指定できます.<code>top/bottom/center/left/right/gutter/fore_edge</code>が使えます.<code>gutter</code>はのど,<code>fore_edge</code>は小口です.<code>left</code>,<code>right</code>の指定は奇数ページに対するものです.<code>twoside</code>が指定されている場合,偶数ページはその逆になります.</li>
+<li><code>yoko</code>指定時:<code>top-left</code>のように指定できます.<code>top / bottom / center / left / right / gutter / fore_edge</code>が使えます.<code>gutter</code>はのど,<code>fore_edge</code>は小口です.<code>left</code>,<code>right</code>の指定は奇数ページに対するものです.<code>twoside</code>が指定されている場合,偶数ページはその逆になります.</li>
 <li><code>tate</code>指定時:<code><寸法></code>が指定できます.<code>running_head_position</code>は柱の天からの下げ量を,<code>nombre_position</code>はノンブルの地からの上げ量を指定します.</li>
 </ul></li>
 <li><code>nombre=<書式></code>:出力するノンブルを指定します.デフォルトは<code>\thepage</code>.</li>
@@ -424,6 +435,14 @@
 <li>別行見出しの間の<code>\label</code>の検出方法を変更.</li>
 <li><code>\theequation</code>,<code>\thefigure</code>,<code>\thetable</code>に章番号を追加.</li>
 </ul></li>
+<li>2018-02-01
+<ul>
+<li>縦書きの傍注は奇数ページにのみ出るようにした(改善の余地ありかも).</li>
+<li>LuaTeX時に<code>\fnixbottomtrue</code>を追加.</li>
+<li>キャプション関係のオプションを<code>\jlreqsetup</code>に追加.</li>
+<li><code>itemization_beforeafter_space</code>を拡張.</li>
+<li>バグ修正.</li>
+</ul></li>
 </ul>
 <hr />
 <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq" class="uri">https://github.com/abenori/jlreq</a></p>

Modified: trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html	2018-02-01 23:02:41 UTC (rev 46513)
+++ trunk/Master/texmf-dist/doc/latex/jlreq/jlreq.html	2018-02-01 23:05:35 UTC (rev 46514)
@@ -146,6 +146,14 @@
 <li>Change the way to detect <code>\label</code> between block headings.</li>
 <li>Added chapter number to <code>\theequation</code>,<code>\thefigure</code>,<code>\thetable</code>.</li>
 </ul></li>
+<li>2018-02-01
+<ul>
+<li>Sidenotes appears only odd pages in <code>tate</code> mode.</li>
+<li>Added <code>\fnixbottomtrue</code> for LuaLaTeX.</li>
+<li>Added some options related to captions.</li>
+<li>Extended <code>itemization_beforeafter_space</code>.</li>
+<li>Fixed bugs.</li>
+</ul></li>
 </ul>
 <hr />
 <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq" class="uri">https://github.com/abenori/jlreq</a></p>

Modified: trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls	2018-02-01 23:02:41 UTC (rev 46513)
+++ trunk/Master/texmf-dist/tex/latex/jlreq/jlreq.cls	2018-02-01 23:05:35 UTC (rev 46514)
@@ -5,7 +5,7 @@
 %%
 % (based on JLReq 20120403 https://www.w3.org/TR/2012/NOTE-jlreq-20120403/ja/)
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2017/12/22 jlreq]
+\ProvidesClass{jlreq}[2018/02/01 jlreq]
 \RequirePackage{xkeyval,everyhook,filehook,etoolbox,ifthen}
 
 %. helper1
@@ -88,16 +88,16 @@
 % #1が\jlreq at endmarkか
 \long\def\jlreq at ifendmark#1{\jlreq at iffirsttoken{#1}{\jlreq at endmark}}
 
-% #1の先頭がマクロか
-\long\def\jlreq at ifmacro#1{%
+% #1の先頭が引数なしのマクロか
+\long\def\jlreq at ifmacro@noargument#1{%
   \jlreq at ifempty{#1}{\@secondoftwo}{%
     \jlreq at iffirsttoken{#1}{ }{\@secondoftwo}{%
-      \expandafter\expandafter\expandafter\jlreq at ifmacro@\jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@
+      \expandafter\expandafter\expandafter\jlreq at ifmacro@noargument@\jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@
 }}}
-\long\def\jlreq at ifmacro@#1{\expandafter\jlreq at ifmacro@@\expandafter{\meaning #1}}
+\long\def\jlreq at ifmacro@noargument@#1{\expandafter\jlreq at ifmacro@noargument@@\expandafter{\meaning #1}}
 \edef\jlreq at do{%
-  \unexpanded{\def\jlreq at ifmacro@@}##1{\noexpand\jlreq at ifmacro@@@##1\expandonce{\detokenize{macro:}}\noexpand\jlreq at endmark}
-  \unexpanded{\def\jlreq at ifmacro@@@}##1\expandonce{\detokenize{macro:}}##2\noexpand\jlreq at endmark{\noexpand\jlreq at ifempty{##1}}
+  \unexpanded{\def\jlreq at ifmacro@noargument@@}##1{\noexpand\jlreq at ifmacro@noargument@@@##1\expandonce{\detokenize{macro:->}}\noexpand\jlreq at endmark}
+  \unexpanded{\def\jlreq at ifmacro@noargument@@@}##1\expandonce{\detokenize{macro:->}}##2\noexpand\jlreq at endmark{\noexpand\jlreq at ifempty{##1}}
 }
 \jlreq at do
 
@@ -262,6 +262,29 @@
   \jlreq at helper@parsekeyval@@@{#1}%
 }
 
+% キー指定しないkeyval(独自実装)
+% \jlreq at parsekeyval@nokey{<action>}{<parse対象>}
+% action内では#1=key, #2=val
+\long\def\jlreq at parsekeyval@nokey#1#2{%
+  \begingroup
+    \def\jlreq at do{}%
+    \def\jlreq at parsekeyval@nokey at execute##1##2{#1}%
+    \expandafter\jlreq at parsekeyval@nokey@#2,\jlreq at endmark,%
+  \expandafter\endgroup
+  \jlreq at do
+}
+\long\def\jlreq at parsekeyval@nokey@#1,{%
+  \jlreq at ifendmark{#1}{}{\jlreq at parsekeyval@nokey@@#1=\jlreq at endmark}%
+}
+\long\def\jlreq at parsekeyval@nokey@@#1=#2\jlreq at endmark{%
+  \jlreq at ifempty{#2}{\jlreq at parsekeyval@nokey@@@{}{#1}}{\expandafter\jlreq at parsekeyval@nokey@@@\expandafter{\jlreq at parsekeyval@nokey@@@@#2\jlreq at endmark}{#1}}%
+}
+\long\def\jlreq at parsekeyval@nokey@@@#1#2{%
+  \eappto\jlreq at do{\expandonce{\jlreq at parsekeyval@nokey at execute{#2}{#1}}}%
+  \jlreq at parsekeyval@nokey@
+}
+\long\def\jlreq at parsekeyval@nokey@@@@#1=\jlreq at endmark{#1}
+
 % \jlreq at switch{str}{
 %   {str}{abcd}
 %   {str1}{xyz}
@@ -320,18 +343,29 @@
 \AtBeginDocument{\jlreq at preamblefalse}
 
 \RequirePackage[savepos]{zref}
+\newcount\jlreq at zref@reference at count
+\jlreq at zref@reference at count=0
+% 現在のページを得る
 \zref at newprop*{jlreq at page}[0]{\number\c at page}
 \zref at addprop{main}{jlreq at page}
-% 現在のページを得る
-\newcount\jlreq at zref@reference at count
-\jlreq at zref@reference at count=0
 \newcount\jlreq at currentpage
+% \jlreq at setcurrentpageをすると,\jlreq at currentpageにこの場所のページ数が入る
 \newcommand*{\jlreq at setcurrentpage}{%
   \global\advance\jlreq at zref@reference at count by 1
-  \zref at labelbyprops{jlreq at rest@width.page.\the\jlreq at zref@reference at count}{jlreq at page}%
-  \global\jlreq at currentpage=\zref at extractdefault{jlreq at rest@width.page.\the\jlreq at zref@reference at count}{jlreq at page}{\c at page}%
+  \zref at labelbyprops{jlreq at currentpage.\the\jlreq at zref@reference at count}{jlreq at page}%
+  \global\jlreq at currentpage=\zref at extractdefault{jlreq at currentpage.\the\jlreq at zref@reference at count}{jlreq at page}{\c at page}\relax
 }
 
+% 現在の段組位置を得る
+\zref at newprop*{jlreq at firstcolumn}[1]{\if at firstcolumn 1\else 0\fi}
+\zref at addprop{main}{jlreq at firstcolumn}
+\newif\ifjlreq at firstcolumn
+\newcommand*{\jlreq at setcurrentcolumn}{%
+  \global\advance\jlreq at zref@reference at count by 1
+  \zref at labelbyprops{jlreq at currentcolumn.\the\jlreq at zref@reference at count}{jlreq at firstcolumn}%
+  \ifnum\zref at extractdefault{jlreq at currentcolumn.\the\jlreq at zref@reference at count}{jlreq at firstcolumn}{1}=1 \global\jlreq at firstcolumntrue\else \global\jlreq at firstcolumnfalse\fi
+}
+
 \def\jlreq at saveoriginalcs#1{%
   \@ifundefined{#1}{%
     \ClassError{jlreq}{Trying to save \expandafter\string\csname #1\endcsname\space but it's not defined, may be a bug}{\@ehc}%
@@ -341,11 +375,25 @@
   }%
   \expandafter\expandafter\expandafter\let\expandafter\expandafter\csname jlreq at original@#1\endcsname\csname #1\endcsname
 }
+\def\jlreq at useoriginalcs#1{%
+  \ifcsname jlreq at original@\expandafter\@gobble\string#1\endcsname\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+    {\csname jlreq at original@\expandafter\@gobble\string#1\endcsname}%
+    {#1}%
+}
 
-% 先頭にあるマクロを展開しまくった結果を#2に入れる.
-\long\def\jlreq at expandmacros#1#2{%
-  \jlreq at ifmacro{#1}{\expandafter\jlreq at expandmacros\expandafter{#1}{#2}}{\def#2{#1}}%
+% 先頭にあるマクロを展開しまくった結果の先頭を#2に入れる.
+\long\def\jlreq at getfirsttoken@expandmacros#1#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}%
+      }{%
+        \expandafter\expandafter\expandafter\jlreq at getfirsttoken@expandmacros@\jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@{#2}%
+      }%
+    }%
+  }%
 }
+\def\jlreq at getfirsttoken@expandmacros@#1#2{\def#2{#1}}
 
 \def\jlreq at helper@checktokenlist#1#2{%
   \jlreq at ifendmark{#2}{\@firstoftwo}%
@@ -452,6 +500,7 @@
 \jlreq at addpapersize{letter}{letterpaper}{8.5in}{11in}
 \jlreq at addpapersize{legal}{legalpaper}{8.5in}{14in}
 \jlreq at addpapersize{executive}{executivepaper}{7.25in}{10.5in}
+\jlreq at addpapersize{hagaki}{}{100mm}{148mm}
 
 
 %.. フォントサイズ,行長,1ページあたりの行数で基本版面のサイズを決める(2.4.1.a)
@@ -638,11 +687,16 @@
 \fi
 
 
+% 必要パッケージのロード
 \ifx l\jlreq at engine
   \RequirePackage{luatexja}
   \directlua{jlreq = {}}
 \fi
 
+\if at tate
+  \RequirePackage{atbegshi}
+\fi
+
 % (u)pLaTeXの場合ここで初めて\epTeXinputencodingが発行されるので,
 % これ以前には和文は使えない.
 \ifx l\jlreq at engine\else
@@ -655,16 +709,18 @@
   \AtBeginDocument{\tate\message{《縦組モード》}\adjustbaseline}
 \fi
 
+
+
 % \jlreq at gol(Gyo Okuri Length), \jlreq at mol (Moji Okuri Length)を定義
 \let\jlreq at gol=\zh
 \let\jlreq at mol=\zw
 
-%. helper2(エンジン依存系)
+%. helper2(エンジン依存系:和文文字を含むものもこれ以降)
 % #1のboxを今の真ん中に配置する.
 \def\jlreq at box@putcenter#1{%
   \begingroup
     \jlreq at tempdima=\dimexpr(\ht#1 - \dp#1)/2\relax
-    \setbox\jlreq at tempboxa=\hbox{あ}%
+    \setbox\jlreq at tempboxa=\hbox{阿}%
     \edef\jlreq at do{%
       \noexpand\lower\the\dimexpr(\jlreq at tempdima - (\ht\jlreq at tempboxa - \dp\jlreq at tempboxa)/2)\relax\unexpanded{\box#1}%
     }%
@@ -674,10 +730,9 @@
 
 % #1の先頭が文字か
 \long\def\jlreq at ifletter#1{%
-  \jlreq at ifempty{#1}{\@secondoftwo}{%
-    \jlreq at iffirsttoken{#1}{ }{\@secondoftwo}{%
-      \expandafter\expandafter\expandafter\jlreq at helper@ifletter\jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@
-  }}%
+  \jlreq at iffirsttoken{#1}{ }{\@secondoftwo}{%
+    \expandafter\expandafter\expandafter\jlreq at helper@ifletter\jlreq at getfirsttoken#1\jlreq at uniqtoken{}\jlreq at endmark@
+  }%
 }
 
 \long\def\jlreq at helper@ifletter#1{%
@@ -693,10 +748,6 @@
   \fi
 }
 
-% こっちは先頭にあるマクロを展開してチェックする
-\long\def\jlreq at ifletter@expandmacros#1{%
-  \jlreq at ifmacro{#1}{\expandafter\jlreq at ifletter@expandmacros\expandafter{#1}}{\jlreq at ifletter{#1}}%
-}
 
 % 組方向を判定
 % \jlreq at if(y|t)(dir|box)を定義する.
@@ -834,15 +885,19 @@
 % \jlreq at nextcharと\jlreq at lastnodecharの間のJFMグルーを挿入
 \def\jlreq at insertjfm{%
   \ifnum\jlreq at getpostbreakpenalty{\jlreq at lastnodechar}=0\else\penalty\jlreq at getpostbreakpenalty{\jlreq at lastnodechar}\fi
-  \jlreq at ifletter@expandmacros{\jlreq at nextchar}{%
-    \jlreq at expandmacros{\jlreq at nextchar}{\jlreq at tempa}%
-    \def\jlreq at tempb##1##2\jlreq at endmark{\def\jlreq at tempa{##1}}%
-    \expandafter\jlreq at tempb\jlreq at tempa\jlreq at endmark
-    \jlreq at calc@jfmglue{\char\jlreq at lastnodechar}{\jlreq at tempa}%
-%   \message{fixjfm Insert: \the\jlreq at resultskip}%
-    \hskip\jlreq at resultskip
-    \inhibitglue
-  }{}%
+  \begingroup
+    \def\jlreq at do{}%
+    \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}%
+      \edef\jlreq at do{%
+        \noexpand\hskip\the\jlreq at resultskip\space
+        \noexpand\inhibitglue
+      }%
+    }{}%
+  \expandafter\endgroup
+  \jlreq at do
 }
 
 % #1÷#2を\jlreq at resultdimenに入れる.(#1,#2は寸法を与える.)
@@ -1159,6 +1214,8 @@
 \DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}
 
 %.. 和文
+% ダミー
+\def\@ptsize{0}
 % JFMに関連する設定
 \ifx l\jlreq at engine
   % この値は後でjfm-jlreq内で読む
@@ -1842,8 +1899,8 @@
 }
 
 %.. 別行見出し
-% \jlreq at startBlockHeading:別行見出しを出力する命令.
-% \jlreq at startBlockHeading{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 =  フォーマット関連}{5 = 全体フォーマット}*{見出し}[副題]
+% \jlreq at BlockHeading@start:別行見出しを出力する命令.
+% \jlreq at BlockHeading@start{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 =  フォーマット関連}{5 = 全体フォーマット}*{見出し}[副題]
 % スペース関連={配置:lcr(左中央右)}{字下げ(寸法)}{字上げ(寸法)}{前空き}{後空き}{行取りの行数}{空か*か,偶数ページでも改ページを許可するならば空}
 % 前/後空きはprefixにa:/s:/r:が入る.r:は空きがその値そのものになる.a:/s:は行取りに加えて入る.a:で指定された空きはページ行頭では入らない
 % 後空きの時はs:は指定できない.
@@ -1853,7 +1910,7 @@
 % 見出し全体のフォーマット内では#1=ラベル,#2=見出し文字列,#3=副題,それぞれ各々のフォーマットに基づき整形される.
 % ラベルフォーマットでは#1=カウンタ名,見出し文字列フォーマットでは#1=見出し文字列,副題フォーマットでは#1=副題
 % ラベルのみのフォーマットは目次に使われる.
-\newcommand{\jlreq at startBlockHeading}[5]{%
+\newcommand{\jlreq at BlockHeading@start}[5]{%
   \edef\jlreq at BlockHeading@start at format{\unexpanded{#4}}% この二つは\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる)
   \edef\jlreq at BlockHeading@start at totalformat{\unexpanded{#5}}%
   \jlreq at BlockHeading@start@{#1}{#2}{#3}%
@@ -1895,9 +1952,12 @@
     \expandonce{\jlreq at resulta}%
   }%
   \expandafter\xdef\csname jlreq at BlockHeading@spaces at current@after@\the\jlreq at BlockHeading@spaces at current@count\endcsname{}%
-  \ifx\jlreq at BlockHeading@spaces at headingslist\@empty\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
-    {\jlreq at BlockHeading@spaces at outputwospace\ignorespaces}%
-    {\jlreq at BlockHeading@start at afterheading}%
+  \ifx\jlreq at BlockHeading@spaces at headingslist\@empty
+    \expandafter\jlreq at BlockHeading@spaces at outputwospace
+    \expandafter\ignorespaces
+  \else
+    \expandafter\jlreq at BlockHeading@start at afterheading
+  \fi
 }
 
 \def\jlreq at BlockHeading@start at afterheading{\futurelet\jlreq at nextchar\jlreq at BlockHeading@start at afterheading@}
@@ -2340,7 +2400,7 @@
       \noexpand\edef\expandonce{\csname #1\endcsname}{\noexpand\unexpanded{%
         \noexpand\jlreq at hook@beforeheadings{#1}%
         \expandonce{\jlreq at pagebreak}%
-        \unexpanded{\jlreq at startBlockHeading{#1}{#2}}%
+        \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}}}%
         {%
           {\expandonce{\jlreq at label@format}}{\expandonce{\jlreq at label@format at modified}}%
@@ -2620,11 +2680,47 @@
 }
 
 %.. 同行見出し
+% {1 = 命令名}{2 = レベル}{3 = ラベルフォーマット}{4 = ラベルありフォーマット}{5 = ラベルなしフォーマット}
+% 4,5は見出し文字列が#1になる.
+\long\def\jlreq at RuninHeading@start#1#2#3#4#5{%
+  \edef\jlreq at RuninHeading@start at format@label{\unexpanded{#3}}%
+  \edef\jlreq at RuninHeading@start at format@wlabel{\unexpanded{#4}}%
+  \edef\jlreq at RuninHeading@start at format@wolabel{\unexpanded{#5}}%
+  \@ifstar{\@dblarg{\jlreq at RuninHeading@start@{#1}{#2}{*}}}{\@dblarg{\jlreq at RuninHeading@start@{#1}{#2}{}}}%
+}
+% {1 = 命令名}{2 = レベル}{3 = *}{4 = running head}{5 = 見出し}
+\long\def\jlreq at RuninHeading@start@#1#2#3[#4]#5{%
+  \edef\jlreq at do{\noexpand\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}}}%
+  \jlreq at do
+}
+% {1 = 命令名}{2 = レベル}{3 = *}{4 = running head}{5 = 見出し}{6 = ラベルフォーマット}{7 = ラベルありフォーマット}{8 = ラベルなしフォーマット}
+\long\def\jlreq at RuninHeading@start@@#1#2#3#4#5#6#7#8{%
+  \ifnum0\jlreq at ifempty{#3}{}{1}\ifnum #2>\c at secnumdepth 1\fi>0
+    \def\jlreq at tempa##1{#8}%
+  \else
+    \refstepcounter{#1}%
+    \def\jlreq at tempa##1{#7}%
+  \fi
+  \par
+  \edef\jlreq at do{%
+    \noexpand\everypar{%
+      \unexpanded{\everypar{}}%
+      \unexpanded{{\setbox\jlreq at tempboxa\lastbox}}%
+      \noexpand\begingroup
+        \expandonce{\jlreq at tempa{#5}}%
+        \expandonce{\csname jlreq at heading@maketoc@#1\endcsname{#3}{#6}{#4}}%
+      \noexpand\endgroup
+    }%
+  }%
+  \jlreq at do
+  \ignorespaces
+}
+
 % \DeclareRuninHeading{命令名}{レベル}{設定}
 \newcommand*{\DeclareRuninHeading}[3]{%
   \def\jlreq at do{\@removeelement{#1}}%
   \expandafter\jlreq at do\expandafter{\jlreq at heading@allheadings}{\jlreq at heading@allheadings}%
-  \appto{\jlreq at heading@allheadings}{,#1}%
+  \appto\jlreq at heading@allheadings{,#1}%
   \expandafter\def\csname jlreq at heading@level@#1\endcsname{#2}%
   \expandafter\edef\csname jlreq at heading@setting@#1\endcsname{\unexpanded{#3}}%
   \expandafter\def\csname jlreq at heading@type@#1\endcsname{\RenewRuninHeading}%
@@ -2631,29 +2727,56 @@
   \@ifundefined{c@#1}{\newcounter{#1}}{}%
   \@ifundefined{#1mark}{\expandafter\let\csname #1mark\endcsname\@gobble}{}%
   \@ifundefined{l@#1}{\expandafter\def\csname l@#1\endcsname{\@dottedtocline{#2}{0\zw}{2\zw}}}{}%
+  \jlreq at heading@make at maketoc{#1}{#2}%
   \begingroup
     \def\jlreq at font{\normalfont\normalsize}%
     \def\jlreq at indent{0\zw}%
+    \def\jlreq at after@label at space{1\zw}%
     \def\jlreq at mark{}%
     \def\jlreq at label@font{}%
+    \def\jlreq at label@format{\@seccntformat{#1}}%
     \def\jlreq at after@space{1\zw}%
     \jlreq at parsekeyval[RuninHeading:#1]{%
       {font}{\def\jlreq at font{##1}}
       {indent}{\def\jlreq at indent{##1}}
       {mark}{\def\jlreq at mark{##1}}
+      {label_format}{\def\jlreq at label@format{##1}}
+      {after_label_space}{
+        \ifdim\dimexpr##1\relax<0pt \ClassWarning{jlreq}{after_label_space in Runin Heading #1 should be not negative}\fi
+        \def\jlreq at after@label at space{##1}
+      }
       {after_space}{%
-        \ifdim\dimexpr##1\relax<0pt\ClassWarning{jlreq}{after_space in Runin Heading #1 should be positive}\fi
+        \ifdim\dimexpr##1\relax<0pt \ClassWarning{jlreq}{after_space in Runin Heading #1 should be not negative}\fi
         \def\jlreq at after@space{##1}%
       }
     }{#3}%
-    % \@startsection{#1}{#2}{indent}{0pt}{-after_space}{font}
+    \newif\ifjlreq at indent@zero
+    \jlreq at ifgluezero{\glueexpr\jlreq at indent\relax}{\jlreq at indent@zerotrue}{\jlreq at indent@zerofalse}%
+    \newif\ifjlreq at after@space at zero
+    \jlreq at ifgluezero{\glueexpr\jlreq at after@space\relax}{\jlreq at after@space at zerotrue}{\jlreq at after@space at zerofalse}%
+    \newif\ifjlreq at after@label at space@zero
+    \jlreq at ifgluezero{\glueexpr\jlreq at after@label at space\relax}{\jlreq at after@label at spacefalse}%
+    \edef\jlreq at format@wlabel{{%
+      \ifjlreq at indent@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at indent}\noexpand\relax\fi
+      \expandonce{\jlreq at font}%
+      \expandonce{\jlreq at label@format}%
+      \ifjlreq at after@label at space@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at after@label at space}\noexpand\relax\fi
+      ####1%
+      \ifjlreq at after@space at zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at after@space}\noexpand\relax\fi
+    }}%
+    \edef\jlreq at format@wolabel{{%
+      \ifjlreq at indent@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at indent}\noexpand\relax\fi
+      \expandonce{\jlreq at font}%
+      ####1%
+      \ifjlreq at after@space at zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq at after@space}\noexpand\relax\fi
+    }}%
+    \jlreq at heading@make at l@{#1}{#2}{\jlreq at label@format}%
     \edef\jlreq at do{%
-      \noexpand\def\expandonce{\csname #1\endcsname}{%
-        \unexpanded{\jlreq at hook@beforeheadings{#1}}%
-        \expandafter\jlreq at ifempty\expandafter{\jlreq at mark}{%
-          \noexpand\@startsection{\unexpanded{#1}}{\unexpanded{#2}}{\expandonce{\jlreq at indent}}{0pt}{-\expandonce{\jlreq at after@space}}{\expandonce{\jlreq at font}}%
-        }{%
-          \noexpand\@startsection{\unexpanded{#1}}{\unexpanded{#2}}{\expandonce{\jlreq at indent}}{0pt}{-\expandonce{\jlreq at after@space}}{\noexpand\kern\expandonce{\jlreq at indent}\expandonce{\jlreq at mark}\noexpand\kern-\expandonce{\jlreq at indent}\expandonce{\jlreq at font}}%
+      \expandonce{\jlreq at result}%
+      \noexpand\edef\expandonce{\csname #1\endcsname}{%
+        \noexpand\unexpanded{%
+          \unexpanded{\jlreq at hook@beforeheadings{#1}}%
+          \noexpand\jlreq at RuninHeading@start{#1}{#2}{\expandonce{\jlreq at label@format}}{\expandonce{\jlreq at format@wlabel}}{\expandonce{\jlreq at format@wolabel}}%
         }%
       }%
     }%
@@ -2949,43 +3072,8 @@
 
 
 %. 注
-% 合印:4.2.3
 % 文字サイズは6ポイントくらい(4.2.3.a)とりあえす\scriptsize
-
-% \footnoteと\footnotemarkの前後に\jlreq at hook@prenote/\jlreq at hook@postnoteを入れる
-\jlreq at saveoriginalcs{footnote}
-\edef\jlreq at do{
-  \unexpanded{\long\def\jlreq at fixjfm@footnote@[#1]#2}{%
-    \expandonce{\footnote[#1]{#2}}%
-    \noexpand\jlreq at hook@postnote
-  }
-  \unexpanded{\long\def\jlreq at fixjfm@footnote@@#1}{%
-    \expandonce{\footnote{#1}}%
-    \noexpand\jlreq at hook@postnote
-  }
-}
-\jlreq at do
-\def\footnote{%
-  \jlreq at hook@prenote
-  \@ifnextchar[{\jlreq at fixjfm@footnote@}{\jlreq at fixjfm@footnote@@}%
-}
-\edef\jlreq at do{
-  \unexpanded{\def\jlreq at fixjfm@footnotemark@[#1]}{%
-    \expandonce{\footnotemark[#1]}%
-    \noexpand\jlreq at hook@postnote
-  }
-  \unexpanded{\def\jlreq at fixjfm@footnotemark@@}{%
-    \expandonce{\footnotemark}%
-    \noexpand\jlreq at hook@postnote
-  }
-}
-\jlreq at do
-\jlreq at saveoriginalcs{footnotemark}%
-\def\footnotemark{%
-  \jlreq at hook@prenote
-  \@ifnextchar[{\jlreq at fixjfm@footnotemark@}{\jlreq at fixjfm@footnotemark@@}%
-}
-
+%.. 合印(4.2.3)
 \newcommand*\jlreq at referencemark@format[1]{#1}
 \newif\ifjlreqadjustreferencemark
 \jlreqadjustreferencemarktrue
@@ -3013,9 +3101,10 @@
           \@tempdima=\jlreq at current@linewidth
         \fi
       \fi
-      \setbox\jlreq at tempboxa=\hbox to\z@{\hskip-\@tempdima\raise\dimexpr.5\zw + (\ht\@tempboxa + \dp\@tempboxa)/2\relax\box\@tempboxa\hss}%
-      \dp\jlreq at tempboxa=0pt\ht\jlreq at tempboxa=0pt\box\jlreq at tempboxa}%
-    }%
+      \setbox\jlreq at tempboxb=\hbox{阿}%
+      \setbox\jlreq at tempboxa=\hbox to\z@{\hskip-\@tempdima\raise\dimexpr\ht\jlreq at tempboxb + \dp\@tempboxa\relax\box\@tempboxa\hss}%
+      \dp\jlreq at tempboxa=0pt\ht\jlreq at tempboxa=0pt\box\jlreq at tempboxa%
+    }}%
     \ifx l\jlreq at engine
       \def\jlreq at hook@prenote{%
         \jlreq at lastnodechar=\lastnodechar\relax
@@ -3039,45 +3128,141 @@
     \ifhmode\edef\@x at sf{\the\spacefactor}\nobreak\fi
     #2%
     \ifhmode\spacefactor\@x at sf\fi
-    \relax}
+    \relax}%
 }
 \jlreq at setdefaultnotemark\@footnotemark\@makefnmark
-%.. 脚注  (縦書きの時は傍注,4.2.5)
-{%
-  \footnotesize\global\setlength{\footnotesep}{.7\baselineskip} % 何でかわからん……
-  % \jlreq at tempdimaに罫線と脚注との間の長さを入れる
-  % 脚注の行間よりやや広くする(4.2.5.f)
-  \global\jlreq at tempdima=1.5\dimexpr\baselineskip - 1\jlreq at gol\relax
-}
+
+%.. 脚注(4.2.5)
+% (縦書きの時は傍注,4.2.6)
 % 罫線の前は行間分,最大+文字サイズ分伸びる(4.2.5.g)
 \setlength{\skip\footins}{\dimexpr\baselineskip - 1\jlreq at gol \relax plus 1\jlreq at gol}
-%\setlength{\skip\footins}{0pt}
-% 脚注の前の罫線は表罫で,長さは行長の1/3位(4.2.5.f)
-\edef\footnoterule{%
-  \unexpanded{\hrule width .333\textwidth height \jlreq at omotekeiwidth}%
-  \noexpand\kern\the\jlreq at tempdima
-}
+% 罫線の長さは,基本版面で設定した行長にもよるが,行長の1/3くらいにする.
+\def\jlreq at footnote@rulewidth{.333\textwidth}
+\begingroup
+  \footnotesize
+  \edef\jlreq at do{
+    \unexpanded{\setlength{\footnotesep}}{\the\dimexpr .7\baselineskip\relax}% 何でかわからん……
+    \unexpanded{\def\footnoterule}{%
+      % この罫線は,表罫(おもてけい)とする.
+      \unexpanded{\hrule width \jlreq at footnote@rulewidth height \jlreq at omotekeiwidth}%
+      % 脚注の行間よりやや広くする(4.2.5.f)
+      \noexpand\kern\the\dimexpr 1.5\dimexpr\baselineskip - 1\zh\relax\relax
+    }
+  }
+\expandafter\endgroup
+\jlreq at do
 
 % インデントの計算:脚注の長さが文字の整数倍になるように字下げする(4.2.5.b)
-{
-  \footnotesize
-  \jlreq at footnoteindent=1\jlreq at mol
-  \@tempdima=\dimexpr\textwidth - \jlreq at footnoteindent\relax
-  \@tempdimb=1\jlreq at mol
-  \divide\@tempdima\@tempdimb \multiply\@tempdima\@tempdimb
-  \global\jlreq at footnoteindent=\dimexpr\textwidth - \@tempdima\relax
+\jlreq at jlreqsetup@add{footnote_indent}{%
+  \if at tate\else
+    \ifdim\dimexpr#1\relax=0pt\else\jlreq at note{脚注は,一般にその前に区切りのための罫線を挿入するので,字下げは行わなくてよい(4.2.5.b).}\fi
+  \fi
+  \begingroup
+    \footnotesize
+    \jlreq at footnoteindent=\dimexpr#1\relax
+    \@tempdima=\dimexpr\textwidth - \jlreq at footnoteindent\relax
+    \@tempdimb=1\zw
+    \divide\@tempdima\@tempdimb \multiply\@tempdima\@tempdimb
+    \edef\jlreq at do{\noexpand\jlreq at footnoteindent=\the\dimexpr\textwidth - \@tempdima\relax}%
+  \expandafter\endgroup
+  \jlreq at do
 }
+\if at tate
+  \jlreqsetup{footnote_indent=1\zw}% 根拠なし
+\else
+  \jlreqsetup{footnote_indent=0pt}% (4.2.5.b)
+\fi
+
+\ifx l\jlreq at engine
+  \fnfixbottomtrue
+\fi
+
+% \footnoteと\footnotemarkの前後に\jlreq at hook@prenote/\jlreq at hook@postnoteを入れる
+\jlreq at saveoriginalcs{footnote}
+\jlreq at saveoriginalcs{footnotemark}
+\def\footnote{%
+  \jlreq at hook@prenote
+  \@ifnextchar[{\jlreq at footnote@impl at woption}{\jlreq at footnote@impl at wooption}%
+}
+\def\footnotemark{%
+  \jlreq at hook@prenote
+  \@ifnextchar[{\jlreq at footnotemark@impl at woption}{\jlreq at footnotemark@impl at wooption}%
+}
+\if at tate
+  % 縦組の傍注は,その見開き内に付いている合印に対応する注を,奇数ページの左端にそろえて配置する(4.2.6.a).
+  % TODO: 多段組では最下段の左端にそろえて配置する.
+  \def\jlreq at footnote@delayfootnoteslist{}
+  \preto\@outputpage{%
+    \expandafter\gdef\expandafter\jlreq at footnote@delayfootnoteslist\expandafter{\expandafter}%
+    \jlreq at footnote@delayfootnoteslist
+  }
+  \def\jlreq at footnote@delayfootnote at delay#1#2#3{%
+    \ifnum#1<1
+      \footnotetext[#2]{#3}%
+    \else
+      \xappto\jlreq at footnote@delayfootnoteslist{\noexpand\jlreq at footnote@delayfootnote{\the\numexpr#1 - 1\relax}{\unexpanded{#2}}{\unexpanded{#3}}}%
+    \fi
+  }
+  \def\jlreq at footnote@delayfootnote at immediate#1#2#3{\footnotetext[#2]{#3}}%
+  \let\jlreq at footnote@delayfootnote=\jlreq at footnote@delayfootnote at delay
+  \def\jlreq at footnote@flushdelayfootnoteslist{%
+    \let\jlreq at footnote@delayfootnote=\jlreq at footnote@delayfootnote at immediate
+    \jlreq at footnote@delayfootnoteslist
+    \gdef\jlreq at footnote@delayfootnoteslist{}%
+    \let\jlreq at footnote@delayfootnote=\jlreq at footnote@delayfootnote at delay
+  }
+  \AtEndDocument{\jlreq at footnote@flushdelayfootnoteslist}
+  \preto\newpage{\jlreq at footnote@flushdelayfootnoteslist}
+  \long\def\jlreq at footnote@impl at woption[#1]#2{%
+    \jlreq at setcurrentpage
+    \ifodd\jlreq at currentpage
+      \jlreq at useoriginalcs{\footnote}[#1]{#2}%
+    \else
+      \jlreq at useoriginalcs{\footnotemark}[#1]%
+      \xappto\jlreq at footnote@delayfootnoteslist{\noexpand\jlreq at footnote@delayfootnote{\the\numexpr\jlreq at currentpage - \value{page}\relax}{\unexpanded{#1}}{\unexpanded{#2}}}%
+    \fi
+    \jlreq at hook@postnote
+  }
+  \long\def\jlreq at footnote@impl at wooption#1{%
+    \jlreq at setcurrentpage
+    \ifodd\jlreq at currentpage
+      \jlreq at useoriginalcs{\footnote}{#1}%
+    \else
+      \jlreq at useoriginalcs{\footnotemark}%
+      \xappto\jlreq at footnote@delayfootnoteslist{\noexpand\jlreq at footnote@delayfootnote{\the\numexpr\jlreq at currentpage - \value{page}\relax}{\the\value{footnote}}{\unexpanded{#1}}}%
+    \fi
+    \jlreq at hook@postnote
+  }
+\else
+  \long\def\jlreq at footnote@impl at woption[#1]#2{%
+    \jlreq at useoriginalcs{\footnote}[#1]{#2}%
+    \jlreq at hook@postnote
+  }
+  \long\def\jlreq at footnote@impl at wooption#1{%
+    \jlreq at useoriginalcs{\footnote}{#1}%
+    \jlreq at hook@postnote
+  }
+\fi
+\long\def\jlreq at footnotemark@impl at woption[#1]{%
+  \jlreq at useoriginalcs{\footnotemark}[#1]%
+  \jlreq at hook@postnote
+}
+\long\def\jlreq at footnotemark@impl at wooption{%
+  \jlreq at useoriginalcs{\footnotemark}%
+  \jlreq at hook@postnote
+}
+
 % 4.2.5.d
 \newcommand{\@makefntext}[1]{\jlreq at makefntext{#1}}
 \jlreq at jlreqsetup@add{footnotetext_indent}{
   \ifthenelse{\equal{#1}{one}}{
-    \long\def\jlreq at makefntext##1{\parindent 1\jlreq at mol
-      \addtolength{\leftskip}{\dimexpr\jlreq at footnoteindent + 1\jlreq at mol\relax}% 全体をインデント+1文字分下げる
-      \noindent\hskip -1\jlreq at mol\jlreq at referencemark@format{\@thefnmark}\hskip 1\jlreq at mol##1}% 見出し出力と一文字分の空き
+    \long\def\jlreq at makefntext##1{\parindent 1\zw
+      \addtolength{\leftskip}{\dimexpr\jlreq at footnoteindent + 1\zw\relax}% 全体をインデント+1文字分下げる
+      \noindent\hskip -1\zw\jlreq at referencemark@format{\@thefnmark}\hskip 1\zw##1}% 見出し出力と一文字分の空き
   }{
-    \long\def\jlreq at makefntext##1{\parindent 1\jlreq at mol
+    \long\def\jlreq at makefntext##1{\parindent 1\zw
       \addtolength{\leftskip}{\jlreq at footnoteindent}% 全体をインデント
-      \noindent\hskip 1\jlreq at mol\jlreq at referencemark@format{\@thefnmark}\hskip 1\jlreq at mol##1}% 見出し出力と一文字分の空き
+      \noindent\hskip 1\zw\jlreq at referencemark@format{\@thefnmark}\hskip 1\zw##1}% 見出し出力と一文字分の空き
   }
 }
 \jlreqsetup{footnotetext_indent=one}
@@ -3104,8 +3289,7 @@
 \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{%
-  \expandafter\gdef\expandafter\jlreq at endnote@texts\expandafter{\jlreq at endnote@texts{{#1}{#2}}}}
+\long\def\jlreq at endnote@addtext#1#2{\xappto\jlreq at endnote@texts{\unexpanded{{{#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[]}}
@@ -3565,7 +3749,6 @@
   }%
 }
 
-
 %. ページスタイル.
 % メモ:
 % 2.6.1.cの後半が前半と整合的でないように見える……
@@ -3614,6 +3797,14 @@
   }%
 }
 
+% レベル#1より低いレベルの見出しの**markを\markboth{}{}にする
+\def\jlreq at pagestyle@setclearmark#1{%
+  \expandafter\@for\expandafter\@tempa\expandafter:\expandafter=\jlreq at heading@allheadings\do{%
+    \@ifundefined{\@tempa}{}{%
+      \ifnum\csname jlreq at heading@level@\@tempa\endcsname<#1\relax\expandafter\def\csname\@tempa mark\endcsname##1{\markboth{}{}}\fi
+    }%
+  }%
+}
 
 % odd_running_head=_sectionのように下線から始まる場合,その値の見出し命令を柱に出すようにする.
 % 要するに\ps@***に\sectionmarkを定義するように仕込む.
@@ -3634,7 +3825,7 @@
     \def\jlreq at font{}%
     % 柱とノンブルの間
     \def\jlreq at gap{1.5\zw}%
-    \newif\ifjlreq at clearmark\jlreq at clearmarktrue
+    \newif\ifjlreq at clearmarkcommand\jlreq at clearmarkcommandtrue
     \newif\ifjlreq at pstate\jlreq at pstatefalse % PageStyleTATE
     \jlreq at parsekeyval[PageStyle:#1]{
       *{tate}{\jlreq at pstatetrue}
@@ -3648,7 +3839,7 @@
       {mark_format}{\edef\jlreq at mark@format{\unexpanded{##1}}}
       {command}{\edef\jlreq at command{\unexpanded{##1}}}
       {gap}{\def\jlreq at gap{##1}}
-      {clear_mark}[true,false]{\csname jlreq at clearmark##1\endcsname}
+      {clear_markcommand}[true,false]{\csname jlreq at clearmarkcommand##1\endcsname}
     }{#2}%
     % 見出しを出す場合:evenに章などの高いレベルの見出しを出す(2.6.3.a)
     \def\jlreq at markdefinition{}%
@@ -3689,8 +3880,7 @@
           \def\jlreq at markcommand{\markright}%
           \def\jlreq at markcommandafter{}%
         }%
-        \edef\jlreq at markdefinition{%
-          \expandonce{\jlreq at markdefinition}%
+        \eappto\jlreq at markdefinition{%
           \noexpand\def\expandonce{\csname ##3mark\endcsname}\unexpanded{####1}{\expandonce{\jlreq at markcommand}%
             {\expandonce{\jlreq at result}}\expandonce{\jlreq at markcommandafter}}%
         }%
@@ -3707,6 +3897,18 @@
         \jlreq at note{偶数ページには奇数ページよりアウトラインレベルの高い見出しを入れる (ページスタイル #1内,2.6.3.a).}%
       \fi
     \fi\fi
+    % \jlreq at tempa = min{\jlreq at odd@running at head@level,\jlreq at even@running at head@level}
+    \let\jlreq at tempa=\jlreq at odd@running at head@level
+    \ifx\jlreq at tempa\@empty
+      \let\jlreq at tempa=\jlreq at even@running at head@level
+    \else
+      \ifx\jlreq at even@running at head@level\@empty\else\ifnum\jlreq at tempa>\jlreq at even@running at head@level
+        \let\jlreq at tempa=\jlreq at even@running at head@level
+      \fi\fi
+    \fi
+    \ifx\jlreq at tempa\@empty\else
+      \eappto\jlreq at markdefinition{\noexpand\jlreq at pagestyle@setclearmark{\expandonce{\jlreq at tempa}}}%
+    \fi
     % \jlreq@[even/odd][head/foot]に入れていく.tateか否かで場合分け.
     \ifjlreq at pstate\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi{%
       \ifx\jlreq at nombre@position\@empty\def\jlreq at nombre@position{0pt}\fi
@@ -3940,7 +4142,7 @@
     \edef\jlreq at do{%
       \noexpand\def\expandonce{\csname ps@#1\endcsname}{%
         \unexpanded{\def\jlreq at current@pagestyle{#1}}%
-        \ifjlreq at clearmark\unexpanded{\jlreq at heading@execmacro at toallheadings\jlreq at clearheadingmarks}\fi
+        \ifjlreq at clearmarkcommand\unexpanded{\jlreq at heading@execmacro at toallheadings\jlreq at clearheadingmarks}\fi
         \unexpanded{\let\@mkboth=\markboth}%
         \unexpanded{\def\@oddhead}{\expandonce{\jlreq at oddhead}}%
         \unexpanded{\def\@oddfoot}{\expandonce{\jlreq at oddfoot}}%
@@ -3995,8 +4197,8 @@
   \ModifyPageStyle{headings}{mark_format={_chapter={第\thechapter 章\quad #1}}}
 }
 \if at tate
-  \RenewPageStyle{plain}{nombre=\thepage,odd_running_head={},even_running_head={},clear_mark=false}
-  \NewPageStyle{myheadings}{nombre=\thepage,odd_running_head=\rightmark,even_running_head=\leftmark,clear_mark=false}
+  \RenewPageStyle{plain}{nombre=\thepage,odd_running_head={},even_running_head={},clear_markcommand=false}
+  \NewPageStyle{myheadings}{nombre=\thepage,odd_running_head=\rightmark,even_running_head=\leftmark,clear_markcommand=false}
   \if at twoside
     \ModifyPageStyle{plain}{nombre_position={top-left}}
     \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-left,running_head_position=top-left}
@@ -4007,9 +4209,9 @@
     \ModifyPageStyle{myheadings}{nombre_position=bottom-center,running_head_position=top-center}
   \fi
 \else% yoko
-  \RenewPageStyle{plain}{nombre=\thepage,odd_running_head={},even_running_head={},nombre_position={bottom-center},clear_mark=false}
+  \RenewPageStyle{plain}{nombre=\thepage,odd_running_head={},even_running_head={},nombre_position={bottom-center},clear_markcommand=false}
   \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center}
-  \NewPageStyle{myheadings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center,odd_running_head=\rightmark,even_running_head=\leftmark,clear_mark=false}
+  \NewPageStyle{myheadings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center,odd_running_head=\rightmark,even_running_head=\leftmark,clear_markcommand=false}
 \fi
 \ModifyPageStyle{plain}{font=\small}
 \ModifyPageStyle{headings}{font=\small}
@@ -4030,17 +4232,64 @@
 \newcommand{\@makecaption}[2]{{%
   \reset at font\small
   \vskip\abovecaptionskip
-  \sbox\@tempboxa{{\jlreq@@makecaption at label@font #1}\hskip 1\zw{\jlreq@@makecaption at font #2}}%
-  \ifdim \wd\@tempboxa >\hsize
-    {\jlreq@@makecaption at label@font #1}\hskip1\zw{\jlreq@@makecaption at font #2}\relax\par
+  \edef\jlreq at do{\unexpanded{\def\jlreq at tempa##1}{\expandonce{\jlreq at makecaption@label at format}}}%
+  \jlreq at do
+  \jlreq at ifempty{#1}{}{%
+    \edef\jlreq at tempa{{\noexpand\jlreq@@makecaption at label@font\expandonce{\jlreq at tempa{#1}}\unexpanded{\hskip \glueexpr\jlreq at makecaption@after at label@space\relax}}}%
+  }%
+  \appto\jlreq at tempa{{\jlreq@@makecaption at font #2}}%
+  \setbox\@tempboxa=\hbox{\jlreq at tempa}%
+  \@ifundefined{@currenvir}{%
+    \@ifundefined{@captype}%
+      {\def\jlreq at tempb{}}%
+      {\let\jlreq at tempb=\@captype}%
+  }{\let\jlreq at tempb=\@currenvir}%
+  \@ifundefined{jlreq at caption@align@\jlreq at tempb}%
+    {\let\jlreq at align=\jlreq at caption@align}%
+    {\expandafter\let\expandafter\jlreq at align\csname jlreq at caption@align@\jlreq at tempb\endcsname}%
+  \ifdim\wd\@tempboxa>\hsize\relax
+    {%
+      \ifx c\jlreq at align\centering\fi
+      \ifx r\jlreq at align\raggedleft\fi
+      \jlreq at tempa\par
+    }%
   \else
     \global\@minipagefalse
-    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+    \hbox to\hsize{%
+      \ifnum0\ifx c\jlreq at align 1\fi\ifx r\jlreq at align 1\fi>0 \hfil\fi
+      \unhbox\@tempboxa
+      \ifnum0\ifx c\jlreq at align 1\fi\ifx l\jlreq at align 1\fi>0 \hfil\fi
+    }%
   \fi
   \vskip\belowcaptionskip}}
 \jlreq at jlreqsetup@add{caption_font}{\def\jlreq@@makecaption at font{#1}}
 \jlreq at jlreqsetup@add{caption_label_font}{\def\jlreq@@makecaption at label@font{#1}}
-\jlreqsetup{caption_font={\sffamily\bfseries},caption_label_font={\sffamily\bfseries}}
+\jlreq at jlreqsetup@add{caption_label_format}{\edef\jlreq at makecaption@label at format{\unexpanded{#1}}}
+\jlreq at jlreqsetup@add{caption_after_label_space}{\def\jlreq at makecaption@after at label@space{#1}}
+\def\jlreq at caption@setalign#1#2{%
+  \jlreq at switch{#2}{
+    {center}{\let#1=c}
+    {left}{\let#1=l}
+    {right}{\let#1=r}
+    {top}{\let#1=l}
+    {bottom}{\let#1=r}
+  }%
+}
+\jlreq at jlreqsetup@add{caption_align}{%
+  \jlreq at parsekeyval@nokey{%
+    \jlreq at ifempty{##1}{}{%
+      \jlreq at switch{##1}{%
+        {center}{\let\jlreq at caption@align=c}
+        {left}{\let\jlreq at caption@align=l}
+        {right}{\let\jlreq at caption@align=r}
+        {top}{\let\jlreq at caption@align=l}
+        {bottom}{\let\jlreq at caption@align=r}
+        {\expandafter\jlreq at caption@setalign\csname jlreq at caption@align@##1\endcsname{##2}}
+      }%
+    }%
+  }{#1}%
+}
+\jlreqsetup{caption_font={\sffamily\bfseries},caption_label_font={\sffamily\bfseries},caption_after_label_space=1\zw,caption_label_format={#1},caption_align=center}
 % 特に根拠のない値
 \setlength\abovecaptionskip{.5\jlreq at gol}
 \setlength\belowcaptionskip{0pt}
@@ -4310,13 +4559,38 @@
 \setlength\leftmarginvi{1\zw}
 
 %.. 箇条書き
-\jlreq at jlreqsetup@add{itemization_beforeafter_space}{\def\jlreq at itemization@beforeafter at space{#1}}
+\jlreq at jlreqsetup@add{itemization_beforeafter_space}{
+  \begingroup
+    \def\jlreq at do{}%
+    \def\jlreq at keyvallist{}%
+    \@for\@tempa:=#1\do{%
+      \expandafter\jlreq at ifcontains\expandafter{\@tempa}{=}%
+        {\expandafter\appto\expandafter\jlreq at keyvallist\expandafter{\@tempa,}}%
+        {%
+          \@for\@tempb:=i,ii,iii,iv,v,vi\do{%
+            \eappto\jlreq at do{\noexpand\def\expandonce{\csname jlreq at itemization@beforeafter at space@\@tempb\endcsname}{\expandonce{\@tempa}}}%
+          }%
+        }%
+    }%
+    \def\jlreq at tempa{%
+      \jlreq at parsekeyval{%
+        {i}{\appto\jlreq at do{\def\jlreq at itemization@beforeafter at space@i{####1}}}
+        {ii}{\appto\jlreq at do{\def\jlreq at itemization@beforeafter at space@ii{####1}}}
+        {iii}{\appto\jlreq at do{\def\jlreq at itemization@beforeafter at space@iii{####1}}}
+        {iv}{\appto\jlreq at do{\def\jlreq at itemization@beforeafter at space@iv{####1}}}
+        {v}{\appto\jlreq at do{\def\jlreq at itemization@beforeafter at space@v{####1}}}
+        {vi}{\appto\jlreq at do{\def\jlreq at itemization@beforeafter at space@vi{####1}}}
+      }%
+    }%
+    \expandafter\jlreq at tempa\expandafter{\jlreq at keyvallist}%
+  \expandafter\endgroup
+  \jlreq at do
+}
 \jlreq at jlreqsetup@add{itemization_itemsep}{\def\jlreq at itemization@itemsep{#1}}
-\jlreqsetup{itemization_beforeafter_space=0pt,itemization_itemsep=0pt}
+\jlreqsetup{itemization_beforeafter_space={0pt,i=.5\baselineskip},itemization_itemsep=0pt}
 % enumerate, itemize用初期化
 \def\jlreq at init@list{%
   \setlength{\labelwidth}{2\jlreq at mol}%
-  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space\relax}%
   \setlength{\partopsep}{0pt}%
   \setlength{\itemsep}{\dimexpr\jlreq at itemization@itemsep\relax}%
   \setlength{\parsep}{0pt}%
@@ -4333,25 +4607,35 @@
 
 \def\@listi{%
   \jlreq at init@list
+  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space@i\relax}%
   \setlength{\leftmargin}{\leftmargini}%
 }
 \let\@listI\@listi
 \def\@listii{%
   \jlreq at init@list
+  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space@ii\relax}%
   \setlength{\leftmargin}{\leftmarginii}%
 }
 \def\@listiii{%
   \jlreq at init@list
+  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space@iii\relax}%
   \setlength{\leftmargin}{\leftmarginiii}%
 }
 \def\@listiv{%
   \jlreq at init@list
+  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space@iv\relax}%
   \setlength{\leftmargin}{\leftmarginiv}%
 }
 \def\@listv{%
   \jlreq at init@list
+  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space@v\relax}%
   \setlength{\leftmargin}{\leftmarginv}%
 }
+\def\@listvi{%
+  \jlreq at init@list
+  \setlength{\topsep}{\dimexpr\jlreq at itemization@beforeafter at space@vi\relax}%
+  \setlength{\leftmargin}{\leftmarginvi}%
+}
 
 \if at tate
   \renewcommand{\theenumi}{\jlreq at Kanji{enumi}}
@@ -4587,6 +4871,10 @@
   \jlreq at oldfontcommand@disable
 }
 \let\@openbib at code\@empty
+\if at tate
+  \def\@cite#1#2{\jlreq at rensuji{[{#1\if at tempswa , #2\fi}]}}
+  \def\@biblabel#1{\jlreq at rensuji{[#1]}}
+\fi
 
 %. 索引
 \newif\ifjlreq at resttate
@@ -4701,14 +4989,18 @@
   \futurelet\jlreq at nextchar\jlreq at tatechuyoko@
 }
 \def\jlreq at tatechuyoko@{%
-  \jlreq at ifletter{\jlreq at nextchar}{%
-    \jlreq at expandmacros{\jlreq at nextchar}{\jlreq at tempa}%
-    \def\jlreq at tempb##1##2\jlreq at endmark{\def\jlreq at tempa{##1}}%
-    \expandafter\jlreq at tempb\jlreq at tempa\jlreq at endmark
-    \jlreq at calc@jfmglue{阿}{\jlreq at tempa}%
-    \jlreq at ifgluezero\jlreq at resultskip{}{\hskip\jlreq at resultskip}%
-    \inhibitglue
-  }{}%
+  \begingroup
+    \def\jlreq at do{}%
+    \jlreq at getfirsttoken@expandmacros{\jlreq at nextchar}{\jlreq at tempa}%
+    \expandafter\jlreq at ifletter\expandafter{\jlreq at tempa}{%
+      \jlreq at calc@jfmglue{阿}{\jlreq at tempa}%
+      \edef\jlreq at do{%
+        \noexpand\hskip\the\jlreq at resultskip\space
+        \noexpand\inhibitglue
+      }%
+    }{}%
+  \expandafter\endgroup
+  \jlreq at do
 }
 
 % 日にち



More information about the tex-live-commits mailing list