diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/README-ja.md | 20 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/README.md | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html | 79 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq-ja.pdf | bin | 361307 -> 366748 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq.html | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jlreq/jlreq.pdf | bin | 117613 -> 117978 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty | 119 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty | 392 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/jlreq/jlreq.cls | 2304 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua | 716 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua | 1234 |
15 files changed, 2950 insertions, 1946 deletions
diff --git a/Master/texmf-dist/doc/latex/jlreq/README-ja.md b/Master/texmf-dist/doc/latex/jlreq/README-ja.md index 3b46b52c7e4..851bcd5d831 100644 --- a/Master/texmf-dist/doc/latex/jlreq/README-ja.md +++ b/Master/texmf-dist/doc/latex/jlreq/README-ja.md @@ -19,7 +19,8 @@ ## 動作環境 pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内部で読み込みます. -* (常時):xkeyval,everyhook,etoolbox,ifthen,lmodern +* (常時):l3keys2e,etoolbox,lmodern +* (LuaLaTeX非利用時):everyhook * (LuaLaTeX利用時):luatexja,luatexja-adjust リリース時点での最新版での動作を確認しています. @@ -36,7 +37,7 @@ pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内 ``` とします. -その他,`oneside / twoside / onecolumn / twocolumn / titlepage / notitlepage / draft / final / openright / openany / leqno / fleqn`というよくあるオプションを受け付けます. +その他,`oneside` / `twoside` / `onecolumn` / `twocolumn` / `titlepage` / `notitlepage` / `draft` / `final` / `landscape` / `openright` / `openany` / `leqno` / `fleqn`というよくあるオプションを受け付けます.また`disablejfam`オプションを渡すと,和文フォントを数式用に登録しません. 標準的な文書クラスと同じように中身を書くことができますが,次のような命令が追加 / 拡張されています.なお,本ドキュメントでは[日本語組版処理の要件](https://www.w3.org/TR/jlreq/?lang=ja)における用語を断りなく使います. @@ -75,6 +76,9 @@ pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内 ### `\jidori` `\jidori{<寸法>}{<中身>}`により,中身を寸法の長さに字取りしたものを出力することができます. +### `\akigumi` +`\akigumi{<寸法>}{<中身>}`により,中身の文字間を寸法の長さとして空き組した結果を出力することができます.ただしLuaLaTeX利用時以外は正しい出力結果とはなりません. + ### `\jafontsize` 和文フォントサイズを指定する`\fontsize`です.クラスオプションで`jafontscale=0.9`とされている場合,`\fontsize{9pt}{15pt}`とすると和文フォントのサイズは`8.1pt`となりますが,`\jafontsize{9pt}{15pt}`とすると`9pt`となります.(欧文フォントサイズは`10pt`となる.)なお,第二引数は`\fontsize`の第二引数と全く同じです. @@ -103,6 +107,8 @@ pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内 ``` のようにします.和文と欧文の間の空白((u)pTeXでは`\xkanjiskip`に,LuateX-jaでは`xkanjiskip`パラメータに格納されているもの)も同様に`\jlreqxkanjiskip`を再定義することで変更することができます. +* `book`指定時に,クラスオプションとして`openany`を指定していても,`\mainmatter`の後に白ページが挿入されることがあります.これは標準のクラスファイルと挙動を合わせたものです.`\jlreqsetup{mainmatter_pagebreak=clearpage}`とすることで白ページが入らなくなりますが,デフォルトでは`\mainmatter`でページ数をリセットしますので,ページ数の偶奇の整合性がとれなくなる可能性があります.`\jlreqsetup{frontmatter_pagination={arabic,continuous}}`のようにして通しノンブルに変更することを検討してみてください.詳しくは下記の「前付きなど」を参照してください. + ## 各種設計 設計はクラスオプションまたは`\jlreqsetup`によりkeyval形式で行います.ただし,クラスオプションではLaTeXの実装により,本来可能な入力が受け付けられないケースがあります.多くの場合は空白を除くことにより解決します. @@ -130,6 +136,7 @@ pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内 - `tate`無指定時は奇数ページ左,偶数ページ右の余白 - `tate`指定時は奇数ページ右,偶数ページ左の余白 - `twoside`が指定されていない時は,常に奇数ページ扱いで余白が設定される +* `fore-edge=<寸法;zw,zh>`:小口(のどでない方)の余白の大きさ.「日本語組版処理の要件」にある方法で余白を指定する限り使われることはありませんが,便利なこともあるので実装されています. * `head_space=<寸法;zw,zh>`:天の空き量.デフォルトは中央寄せになるような値. * `foot_space=<寸法;zw,zh>`:地の空き量.デフォルトは中央寄せになるような値. * `baselineskip=<寸法;Q,H,zw,zh>`:行送り.デフォルトは`jafontsize`の1.7倍. @@ -251,6 +258,7 @@ pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内 * `subtitle_break=[true/false]`:見出し文字列と副題の間を改行するか指定します. * `allowbreak_if_evenpage=[true/false]`:見出しが偶数ページにあった場合,その直後の改ページを許可します. * `pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki/begin_with_odd_page/begin_with_even_page]`:見出し直前の改ページを指定します.それぞれ,改ページ,`\cleardoublepage`実行,改段,なりゆき,奇数ページ開始,偶数ページ開始,です. +* `pagestyle=<ページスタイル名>`:見出し箇所のページスタイルを指定します. * `afterindent=[true/false]`:見出し直後の段落の字下げを行うかを指定します. * `column_spanning=[true/false]`: 段抜きの見出しにします.`pagebreak=nariyuki`または`pagebreak=clearcolumn`の時には無視されます. * `number=[true/false]`:採番を行うかを指定します.`\NewTobiraHeading`と同様の注意が必要です. @@ -498,6 +506,14 @@ JFMの名前は次の通りです.`[]`で囲まれている文字は設定に * 2021-05-28 - `\jlreqsetup`の`caption_align`を拡張. - `\ifthenelse`を少し削除. +* 2021-07-22 + - `\IfHookExistsTF`の利用を中止. + - `\akigumi`を追加. + - `xkeyval`パッケージと`ifthen`パッケージの利用をやめた. + - expl3コードとの親和性を高めた. + - `\DeclareBlockHeading`に`pagestyle`を追加. + - + -------------- Noriyuki Abe diff --git a/Master/texmf-dist/doc/latex/jlreq/README.md b/Master/texmf-dist/doc/latex/jlreq/README.md index 62fc8b3b5d5..86ca8f76606 100644 --- a/Master/texmf-dist/doc/latex/jlreq/README.md +++ b/Master/texmf-dist/doc/latex/jlreq/README.md @@ -142,6 +142,13 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS * 2021-05-28 - Extended `caption_align` in `\jlreqsetup`. - Removed some `\ifthenelse`. +* 2021-07-22 + - Stopped to use `\IfHookExistsTF`. + - Added `\akigumi`. + - Stopped to load packages `xkeyval` and `ifthen`. + - It has more compatibility with expl3. + - Added `pagestyle` to `\DeclareBlockHeading`. + - Fixed bugs. -------------- diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html index 73eed49d798..1062ff46204 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html @@ -103,7 +103,8 @@ <h2 id="動作環境">動作環境</h2> <p>pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内部で読み込みます.</p> <ul> -<li>(常時):xkeyval,everyhook,etoolbox,ifthen,lmodern</li> +<li>(常時):l3keys2e,etoolbox,lmodern</li> +<li>(LuaLaTeX非利用時):everyhook</li> <li>(LuaLaTeX利用時):luatexja,luatexja-adjust</li> </ul> <p>リリース時点での最新版での動作を確認しています.</p> @@ -113,7 +114,7 @@ <p>とします.これで横書きのarticle相当の文書クラスとなります.エンジンは自動判定されますが,指定する場合はクラスオプションに<code>platex/uplatex/lualatex</code>のいずれかを渡してください.縦書きにするには<code>tate</code>オプションを渡します.また,reportやbook相当の文書クラスとするには,それぞれ<code>report</code>や<code>book</code>オプションを渡します.たとえば,縦書きの本を作成するには</p> <div class="sourceCode" id="cb2"><pre class="sourceCode latex"><code class="sourceCode latex"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>[tate,book]{<span class="ex">jlreq</span>}</span></code></pre></div> <p>とします.</p> -<p>その他,<code>oneside / twoside / onecolumn / twocolumn / titlepage / notitlepage / draft / final / openright / openany / leqno / fleqn</code>というよくあるオプションを受け付けます.</p> +<p>その他,<code>oneside</code> / <code>twoside</code> / <code>onecolumn</code> / <code>twocolumn</code> / <code>titlepage</code> / <code>notitlepage</code> / <code>draft</code> / <code>final</code> / <code>landscape</code> / <code>openright</code> / <code>openany</code> / <code>leqno</code> / <code>fleqn</code>というよくあるオプションを受け付けます.また<code>disablejfam</code>オプションを渡すと,和文フォントを数式用に登録しません.</p> <p>標準的な文書クラスと同じように中身を書くことができますが,次のような命令が追加 / 拡張されています.なお,本ドキュメントでは<a href="https://www.w3.org/TR/jlreq/?lang=ja">日本語組版処理の要件</a>における用語を断りなく使います.</p> <h3 id="jlreqsetup"><code>\jlreqsetup</code></h3> <p>設定用命令です.プリアンブルでしか使えません.文書に対する設定は,クラスオプションとして行うか<code>\jlreqsetup</code>を通じて行うかします.どちらで設定するかは設定項目によります.</p> @@ -136,6 +137,8 @@ <p>縦中横を出力します.<code>\tatechuyoko{<中身>}</code>とします.<code>\tatechuyoko</code>は縦書きでない場所で使うとエラーになりますが,<code>\tatechuyoko*</code>は縦書きでない場所ではそのまま出力されます.</p> <h3 id="jidori"><code>\jidori</code></h3> <p><code>\jidori{<寸法>}{<中身>}</code>により,中身を寸法の長さに字取りしたものを出力することができます.</p> +<h3 id="akigumi"><code>\akigumi</code></h3> +<p><code>\akigumi{<寸法>}{<中身>}</code>により,中身の文字間を寸法の長さとして空き組した結果を出力することができます.ただしLuaLaTeX利用時以外は正しい出力結果とはなりません.</p> <h3 id="jafontsize"><code>\jafontsize</code></h3> <p>和文フォントサイズを指定する<code>\fontsize</code>です.クラスオプションで<code>jafontscale=0.9</code>とされている場合,<code>\fontsize{9pt}{15pt}</code>とすると和文フォントのサイズは<code>8.1pt</code>となりますが,<code>\jafontsize{9pt}{15pt}</code>とすると<code>9pt</code>となります.(欧文フォントサイズは<code>10pt</code>となる.)なお,第二引数は<code>\fontsize</code>の第二引数と全く同じです.</p> <h3 id="-"><code>\ </code></h3> @@ -155,6 +158,7 @@ <span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a>(本文)</span> <span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span></code></pre></div> <p>のようにします.和文と欧文の間の空白((u)pTeXでは<code>\xkanjiskip</code>に,LuateX-jaでは<code>xkanjiskip</code>パラメータに格納されているもの)も同様に<code>\jlreqxkanjiskip</code>を再定義することで変更することができます.</p></li> +<li><p><code>book</code>指定時に,クラスオプションとして<code>openany</code>を指定していても,<code>\mainmatter</code>の後に白ページが挿入されることがあります.これは標準のクラスファイルと挙動を合わせたものです.<code>\jlreqsetup{mainmatter_pagebreak=clearpage}</code>とすることで白ページが入らなくなりますが,デフォルトでは<code>\mainmatter</code>でページ数をリセットしますので,ページ数の偶奇の整合性がとれなくなる可能性があります.<code>\jlreqsetup{frontmatter_pagination={arabic,continuous}}</code>のようにして通しノンブルに変更することを検討してみてください.詳しくは下記の「前付きなど」を参照してください.</p></li> </ul> <h2 id="各種設計">各種設計</h2> <p>設計はクラスオプションまたは<code>\jlreqsetup</code>によりkeyval形式で行います.ただし,クラスオプションではLaTeXの実装により,本来可能な入力が受け付けられないケースがあります.多くの場合は空白を除くことにより解決します.</p> @@ -184,6 +188,7 @@ <li><code>tate</code>指定時は奇数ページ右,偶数ページ左の余白</li> <li><code>twoside</code>が指定されていない時は,常に奇数ページ扱いで余白が設定される</li> </ul></li> +<li><code>fore-edge=<寸法;zw,zh></code>:小口(のどでない方)の余白の大きさ.「日本語組版処理の要件」にある方法で余白を指定する限り使われることはありませんが,便利なこともあるので実装されています.</li> <li><code>head_space=<寸法;zw,zh></code>:天の空き量.デフォルトは中央寄せになるような値.</li> <li><code>foot_space=<寸法;zw,zh></code>:地の空き量.デフォルトは中央寄せになるような値.</li> <li><code>baselineskip=<寸法;Q,H,zw,zh></code>:行送り.デフォルトは<code>jafontsize</code>の1.7倍.</li> @@ -310,6 +315,7 @@ <li><code>subtitle_break=[true/false]</code>:見出し文字列と副題の間を改行するか指定します.</li> <li><code>allowbreak_if_evenpage=[true/false]</code>:見出しが偶数ページにあった場合,その直後の改ページを許可します.</li> <li><code>pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki/begin_with_odd_page/begin_with_even_page]</code>:見出し直前の改ページを指定します.それぞれ,改ページ,<code>\cleardoublepage</code>実行,改段,なりゆき,奇数ページ開始,偶数ページ開始,です.</li> +<li><code>pagestyle=<ページスタイル名></code>:見出し箇所のページスタイルを指定します.</li> <li><code>afterindent=[true/false]</code>:見出し直後の段落の字下げを行うかを指定します.</li> <li><code>column_spanning=[true/false]</code>: 段抜きの見出しにします.<code>pagebreak=nariyuki</code>または<code>pagebreak=clearcolumn</code>の時には無視されます.</li> <li><code>number=[true/false]</code>:採番を行うかを指定します.<code>\NewTobiraHeading</code>と同様の注意が必要です.</li> @@ -418,35 +424,35 @@ <p>このパッケージは二条項BSDライセンスの元で配布されています.詳しくは<a href="LICENSE">LICENSE</a>をご覧ください.</p> <h2 id="履歴">履歴</h2> <ul> -<li>2017-02-08 +<li><p>2017-02-08</p> <ul> <li>最初のバージョン.</li> </ul></li> -<li>2017-02-17 +<li><p>2017-02-17</p> <ul> <li>いくつかバグを修正.</li> <li>クラスオプション/<code>\jlreqsetup</code>にいくつかのキーを追加/変更.</li> <li><code>abstract</code>環境を実装.</li> <li>パッケージを読み込んでいるだけのはやめた.</li> </ul></li> -<li>2017-03-14 +<li><p>2017-03-14</p> <ul> <li>いくつかバグを修正.</li> <li>和文ファミリを欧文ファミリに従属させるようにした.</li> <li><code>\DeclareBlockHeading</code>にオプションをたくさん追加.</li> <li>quote環境などを調整するオプションを追加.</li> </ul></li> -<li>2017-03-20 +<li><p>2017-03-20</p> <ul> <li>バグ修正.</li> <li><code>\footnote / \sidenote / \endnote</code>の周りに必要ならば空白を挿入するようにした.</li> </ul></li> -<li>2017-04-04 +<li><p>2017-04-04</p> <ul> <li>バグ修正.</li> <li><code>\DeclarePageStyle</code>に<code>tate</code>と<code>font</code>オプションを追加.</li> </ul></li> -<li>2017-04-29 +<li><p>2017-04-29</p> <ul> <li>バグ修正</li> <li><code>jafontsize</code>と<code>jafontscale</code>をクラスオプションに,また<code>\jafontsize</code>を追加.</li> @@ -456,13 +462,13 @@ <li>いくつかのオプションを<code>\jlreqsetup</code>に追加.</li> <li>クラスオプションの<code>paper={<縦>,<横>}</code>を<code>paper={<横>,<縦>}</code>に変更.</li> </ul></li> -<li>2017-06-11 +<li><p>2017-06-11</p> <ul> <li><code>plext</code> / <code>lltjext</code>の読み込みを中止.</li> <li><code>\DeclareBlockHeading</code>に<code>align</code>を追加.<code>indent=center</code>や<code>end_indent=center</code>を廃止.</li> <li>一部の<code>\kcatcode</code> (upLaTeX時) を変更.</li> </ul></li> -<li>2017-08-13 +<li><p>2017-08-13</p> <ul> <li><code>column_spanning</code>を<code>\DeclareBlockHeading</code>に追加.</li> <li>ページレイアウトにおける「本文の長さ」に傍注の長さを入れるようにした.</li> @@ -470,27 +476,27 @@ <li>傍注の長さが0の時には<code>\sidenote</code>を定義しないようにした.</li> <li>和字間隔を挿入する命令を追加.</li> </ul></li> -<li>2017-08-29 +<li><p>2017-08-29</p> <ul> <li>縦書きでも著者名が横書きで出てしまうバグを修正.</li> </ul></li> -<li>2017-11-23 +<li><p>2017-11-23</p> <ul> <li>バグ修正</li> <li><code>\SetBlockHeadingSpaces</code>を追加.</li> <li><code>\contentsname</code> と <code>\indexname</code>に入っていたスペースを削除.</li> </ul></li> -<li>2017-12-02 +<li><p>2017-12-02</p> <ul> <li>バグ修正</li> </ul></li> -<li>2017-12-22 +<li><p>2017-12-22</p> <ul> <li>JFMを改善.</li> <li>別行見出しの間の<code>\label</code>の検出方法を変更.</li> <li><code>\theequation</code>,<code>\thefigure</code>,<code>\thetable</code>に章番号を追加.</li> </ul></li> -<li>2018-02-01 +<li><p>2018-02-01</p> <ul> <li>縦書きの傍注は奇数ページにのみ出るようにした(改善の余地ありかも).</li> <li>LuaTeX時に<code>\fnfixbottomtrue</code>を追加.</li> @@ -498,7 +504,7 @@ <li><code>itemization_beforeafter_space</code>を拡張.</li> <li>バグ修正.</li> </ul></li> -<li>2018-04-11 +<li><p>2018-04-11</p> <ul> <li>縦書き二段組みの傍注を下段に出すようにした.</li> <li><code>begin_width_(odd|even)_page</code>を<code>\DeclareBlockHeading</code>に追加.</li> @@ -506,100 +512,109 @@ <li><code>column_gap</code>クラスオプションを使うとコンパイルできなかったバグ修正.</li> <li><code>mark_format</code>を<code>\DeclarePageStyle</code>に追加.</li> </ul></li> -<li>2018-05-19 +<li><p>2018-05-19</p> <ul> <li>目次内のラベルの長さを今までよりも長くした.</li> <li>一部のマクロをjlreq-helpers.styに分離した.</li> <li>バグ修正.</li> </ul></li> -<li>2018-06-17 +<li><p>2018-06-17</p> <ul> <li>シリーズbもゴシックにするようにした.</li> <li>バグ修正.</li> </ul></li> -<li>2018-08-08 +<li><p>2018-08-08</p> <ul> <li><code>\DeclarePageStyle</code>に<code>nombre_ii</code>等を追加.</li> <li>バグ修正.</li> <li><code>\jlreqsetup</code>に<code>footnote_second_indent</code>と<code>endnote_second_indent</code>を追加.</li> </ul></li> -<li>2018-08-15 +<li><p>2018-08-15</p> <ul> <li>バグ修正.</li> </ul></li> -<li>2018-09-01 +<li><p>2018-09-01</p> <ul> <li><code>\mag</code>が<code>1000</code>でない場合も動くようにした(つもり).</li> <li>バグ修正.</li> </ul></li> -<li>2018-12-10 +<li><p>2018-12-10</p> <ul> <li>見出し命令を作る命令に<code>number=[true/false]</code>を追加.</li> <li><code>\frontmatter</code>等の挙動を設定できるようにした.</li> <li><code>\jlreqHeadingLabel</code>等を扉見出しと別行見出しの<code>format</code>内で使えるようにした.</li> <li>バグ修正</li> </ul></li> -<li>2019-01-15 +<li><p>2019-01-15</p> <ul> <li><code>\NewPageStyle</code>に<code>nombre_font</code>などを追加.<code>font</code>もまだ有効だが以降非推奨とする.</li> <li><code>\NewBlockHeading</code>の<code>format</code>に<code>#1</code>が含まれてもエラーが起こらないようにした.</li> <li><code>\jlreqsetup</code>の<code>caption_label_format</code>などを拡張.</li> <li>バグ修正.</li> </ul></li> -<li>2019-04-01 +<li><p>2019-04-01</p> <ul> <li>逆ノンブルを利用可能にするクラスオプション<code>use_reverse_pagination</code>を追加.</li> <li><code>zref</code>パッケージの利用をやめた.</li> <li>新元号を追加.</li> <li>バグ修正.</li> </ul></li> -<li>2019-05-07 +<li><p>2019-05-07</p> <ul> <li>わずかな誤差で行数が減ってしまうのを防ぐために,<code>\textwidth</code>と<code>\textheight</code>を少しだけ増やした.</li> <li><code>\DeclarePageStyle</code>内の<code>running_head_ii</code>などの実装を変更.</li> <li>バグ修正</li> </ul></li> -<li>2019-09-24 +<li><p>2019-09-24</p> <ul> <li><code>\@cite</code>と<code>\@biblabel</code>を再定義していたのをやめた.</li> <li>別行見出しの前に<code>\allowbreak</code>を追加.</li> <li>バグ修正.</li> </ul></li> -<li>2020-02-07 +<li><p>2020-02-07</p> <ul> <li><code>itemization_label_length</code>のデフォルト値を<code>\leftmargini</code>などにした.</li> <li><code>\rmfamily</code>などの再定義をやめ,<code>\@rmfamilyhook</code>などにコードを挿入することにした.</li> <li><code>\parskip</code>を<code>0pt</code>に変更.</li> <li>バグ修正.</li> </ul></li> -<li>2020-05-01 +<li><p>2020-05-01</p> <ul> <li><code>\jlreqsetup</code>に<code>theorem_label_font</code>と<code>theorem_font</code>を追加.</li> <li>バグ修正.</li> </ul></li> -<li>2020-09-27 +<li><p>2020-09-27</p> <ul> <li><code>\tatechuyoko</code>の<code>*</code>版を追加.</li> <li>バグ修正</li> </ul></li> -<li>2020-12-29 +<li><p>2020-12-29</p> <ul> <li>クラスオプションの<code>fontsize</code>などで,LuaLaTeXでも<code>H</code>を使えるようにした.</li> <li><code>\jidori</code>を追加.</li> <li>バグ修正.</li> </ul></li> -<li>2021-03-17 +<li><p>2021-03-17</p> <ul> <li><code>\maketitle</code>でのページスタイルを<code>empty</code>でないときには<code>plain</code>にするようにした.</li> <li><code>\item</code>直後のJFMグルーをなくした.</li> <li>同行見出し直後のJFMグルーをなくした.</li> <li>バグ修正.</li> </ul></li> -<li>2021-05-28 +<li><p>2021-05-28</p> <ul> <li><code>\jlreqsetup</code>の<code>caption_align</code>を拡張.</li> <li><code>\ifthenelse</code>を少し削除.</li> </ul></li> +<li><p>2021-07-22</p> +<ul> +<li><code>\IfHookExistsTF</code>の利用を中止.</li> +<li><code>\akigumi</code>を追加.</li> +<li><code>xkeyval</code>パッケージと<code>ifthen</code>パッケージの利用をやめた.</li> +<li>expl3コードとの親和性を高めた.</li> +<li><code>\DeclareBlockHeading</code>に<code>pagestyle</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> diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.pdf b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.pdf Binary files differindex 8e2afa93d26..5f28ab2f332 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.pdf +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.pdf diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html index e9cd8d5622c..9615aa89561 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html @@ -236,6 +236,10 @@ <li><code>\jlreqtrimmarkssetup</code>の<code>banner</code>を使う場合,<code>\@bannertoken</code>の中身を無視するようにした.</li> <li><code>\jlreqtrimmarkssetup</code>の<code>banner_font</code>が指定された場合,<code>\@bannerfont</code>を無視するようにした.</li> </ul></li> +<li>2021-07-22 +<ul> +<li>expl3コードとの親和性を高めた.</li> +</ul></li> </ul> <hr /> <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq">https://github.com/abenori/jlreq</a></p> diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md index e75a31512d2..d318c274204 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md @@ -161,6 +161,9 @@ dviドライバの指定です.エンジンに`lualatex`を利用する場合 - `\jlreqtrimmarkssetup`の`banner`を使わない場合,`\@bannertoken`の中身を偶奇ページ両方に出力するようにした. - `\jlreqtrimmarkssetup`の`banner`を使う場合,`\@bannertoken`の中身を無視するようにした. - `\jlreqtrimmarkssetup`の`banner_font`が指定された場合,`\@bannerfont`を無視するようにした. +* 2021-07-22 + - expl3コードとの親和性を高めた. + -------------- Noriyuki Abe diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html index 82c20aafd66..bd78395b341 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html @@ -232,6 +232,12 @@ <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> +</ul> <hr /> <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq">https://github.com/abenori/jlreq</a></p> </article> diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md index a8fb96bf48e..c13c5c051f9 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md @@ -155,6 +155,9 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS - `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. + -------------- Noriyuki Abe diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq.html b/Master/texmf-dist/doc/latex/jlreq/jlreq.html index 4b5afe7401a..0b02bda8590 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq.html @@ -256,6 +256,15 @@ <li>Extended <code>caption_align</code> in <code>\jlreqsetup</code>.</li> <li>Removed some <code>\ifthenelse</code>.</li> </ul></li> +<li>2021-07-22 +<ul> +<li>Stopped to use <code>\IfHookExistsTF</code>.</li> +<li>Added <code>\akigumi</code>.</li> +<li>Stopped to load packages <code>xkeyval</code> and <code>ifthen</code>.</li> +<li>It has more compatibility with expl3.</li> +<li>Added <code>pagestyle</code> to <code>\DeclareBlockHeading</code>.</li> +<li>Fixed bugs.</li> +</ul></li> </ul> <hr /> <p>Noriyuki Abe <a href="https://github.com/abenori/jlreq">https://github.com/abenori/jlreq</a></p> diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq.pdf b/Master/texmf-dist/doc/latex/jlreq/jlreq.pdf Binary files differindex 181f91ee69a..a6547be669e 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq.pdf +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq.pdf diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty index 83251193bb4..5d6ae8791cf 100644 --- a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty +++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty @@ -1,8 +1,8 @@ % エンジン非依存のマクロ集 \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{jlreq-helpers}[2018/08/15 jlreq-helpers] -\RequirePackage{xkeyval,etoolbox} +\ProvidesPackage{jlreq-helpers}[2021/07/22 jlreq-helpers] +\RequirePackage{etoolbox} %. helper1 \newcount\jlreq@tempcnta @@ -210,53 +210,53 @@ % *{key}{\def\val{#1}} % デフォルト値を空文字列にする % {key}[choice1,choice2]{\def\valchoice{#1}} %}{parse対象} -\newcommand*{\jlreq@parsekeyval}{% - \@ifstar{\jlreq@helper@parsekeyval@{*}}{\jlreq@helper@parsekeyval@{}}% -} -\def\jlreq@helper@parsekeyval@#1{% - \@ifnextchar[{\jlreq@helper@parsekeyval@@{#1}}{\jlreq@helper@parsekeyval@@{#1}[jlreq@key]}% -} -\long\def\jlreq@helper@parsekeyval@@#1[#2]#3#4{% - \begingroup - \def\jlreq@do{}% \setkeysの結果処理がここに入れられる(よってループ内で利用不可) - \jlreq@helper@parsekeyval@@@{#2}#3{\jlreq@endmark}% - \setkeys#1{#2}{#4}% - \expandafter\endgroup - \jlreq@do -} -\def\jlreq@helper@parsekeyval@@@#1#2#{% - \jlreq@iffirsttoken@ignorespaces{#2}{*}{% - \jlreq@helper@parsekeyval@@@definekeywithdefault{#1}% - }{% - \jlreq@helper@parsekeyval@@@@{#1}% - }% -} -\long\def\jlreq@helper@parsekeyval@@@@#1#2{% - \jlreq@ifendmark{#2}{}{% - \@ifnextchar[{\jlreq@helper@parsekeyval@@@choicekey{#1}{#2}}{\jlreq@helper@parsekeyval@@@definekey{#1}{#2}}% - }% -} -\long\def\jlreq@helper@parsekeyval@@@choicekey#1#2[#3]#4{% - \@for\@tempa:=#2\do{% - \edef\jlreq@next{\unexpanded{\define@choicekey{#1}}{\expandonce{\@tempa}}}% - \jlreq@next{#3}{\eappto\jlreq@do{\unexpanded{#4}}}% - }% - \jlreq@helper@parsekeyval@@@{#1}% -} -\long\def\jlreq@helper@parsekeyval@@@definekeywithdefault#1#2#3{% - \@for\@tempa:=#2\do{% - \edef\jlreq@next{\unexpanded{\define@key{#1}}{\expandonce{\@tempa}}}% - \jlreq@next[]{\eappto\jlreq@do{\unexpanded{#3}}}% - }% - \jlreq@helper@parsekeyval@@@{#1}% -} -\long\def\jlreq@helper@parsekeyval@@@definekey#1#2#3{% - \@for\@tempa:=#2\do{% - \edef\jlreq@next{\unexpanded{\define@key{#1}}{\expandonce{\@tempa}}}% - \jlreq@next{\eappto\jlreq@do{\unexpanded{#3}}}% - }% - \jlreq@helper@parsekeyval@@@{#1}% -} +%\newcommand*{\jlreq@parsekeyval}{% +% \@ifstar{\jlreq@helper@parsekeyval@{*}}{\jlreq@helper@parsekeyval@{}}% +%} +%\def\jlreq@helper@parsekeyval@#1{% +% \@ifnextchar[{\jlreq@helper@parsekeyval@@{#1}}{\jlreq@helper@parsekeyval@@{#1}[jlreq@key]}% +%} +%\long\def\jlreq@helper@parsekeyval@@#1[#2]#3#4{% +% \begingroup +% \def\jlreq@do{}% \setkeysの結果処理がここに入れられる(よってループ内で利用不可) +% \jlreq@helper@parsekeyval@@@{#2}#3{\jlreq@endmark}% +% \setkeys#1{#2}{#4}% +% \expandafter\endgroup +% \jlreq@do +%} +%\def\jlreq@helper@parsekeyval@@@#1#2#{% +% \jlreq@iffirsttoken@ignorespaces{#2}{*}{% +% \jlreq@helper@parsekeyval@@@definekeywithdefault{#1}% +% }{% +% \jlreq@helper@parsekeyval@@@@{#1}% +% }% +%} +%\long\def\jlreq@helper@parsekeyval@@@@#1#2{% +% \jlreq@ifendmark{#2}{}{% +% \@ifnextchar[{\jlreq@helper@parsekeyval@@@choicekey{#1}{#2}}{\jlreq@helper@parsekeyval@@@definekey{#1}{#2}}% +% }% +%} +%\long\def\jlreq@helper@parsekeyval@@@choicekey#1#2[#3]#4{% +% \@for\@tempa:=#2\do{% +% \edef\jlreq@next{\unexpanded{\define@choicekey{#1}}{\expandonce{\@tempa}}}% +% \jlreq@next{#3}{\eappto\jlreq@do{\unexpanded{#4}}}% +% }% +% \jlreq@helper@parsekeyval@@@{#1}% +%} +%\long\def\jlreq@helper@parsekeyval@@@definekeywithdefault#1#2#3{% +% \@for\@tempa:=#2\do{% +% \edef\jlreq@next{\unexpanded{\define@key{#1}}{\expandonce{\@tempa}}}% +% \jlreq@next[]{\eappto\jlreq@do{\unexpanded{#3}}}% +% }% +% \jlreq@helper@parsekeyval@@@{#1}% +%} +%\long\def\jlreq@helper@parsekeyval@@@definekey#1#2#3{% +% \@for\@tempa:=#2\do{% +% \edef\jlreq@next{\unexpanded{\define@key{#1}}{\expandonce{\@tempa}}}% +% \jlreq@next{\eappto\jlreq@do{\unexpanded{#3}}}% +% }% +% \jlreq@helper@parsekeyval@@@{#1}% +%} % キー指定しないkeyval(独自実装) % \jlreq@parsekeyval@nokey{<action>}{<parse対象>} @@ -449,17 +449,20 @@ \ifx\@tempa\@tempb\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } +\ExplSyntaxOn \newcommand*{\jlreq@helper@guessengine}{% - \jlreq@ifprimitive\directlua{% - \let\jlreq@result=l% - }{% - \jlreq@ifprimitive\ucs{% - \let\jlreq@result=u% - }{% - \let\jlreq@result=p% - }% - }% + \token_if_primitive:NTF \directlua { + \let\jlreq@result=l + }{ + \let\jlreq@result=p + \token_if_primitive:NT \ucs { + \int_compare:nT { \ucs"FA4A = "FA4A } { + \let\jlreq@result=u + } + } + } } +\ExplSyntaxOff % #1を\@undefinedに,既に\@undefinedならば#2{#1}を呼ぶ \newcommand*{\jlreq@helper@undefcs}[2]{% diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty index 03c31e521a9..d7eb46fa49c 100644 --- a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty +++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty @@ -1,14 +1,16 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{jlreq-trimmarks}[2020/05/01 jlreq-trimmarks] -\RequirePackage{xkeyval,etoolbox} +\ProvidesPackage{jlreq-trimmarks}[2021/07/22 jlreq-trimmarks] +\RequirePackage{l3keys2e,etoolbox} \RequirePackage{jlreq-helpers} +\ExplSyntaxOn + % check \tombowdatetrue \ifx\tombowdatetrue\@undefined - \PackageError{jlreq-trimmarks}{This package only works with pLaTeX, upLaTeX or LuaTeX-ja}{\@ehc} + \PackageError{jlreq-trimmarks}{This~package~only~works~with~pLaTeX,~upLaTeX~or~LuaTeX-ja}{\@ehc} \fi -\newcommand*{\jlreq@trimmarks@undeferr}[1]{\PackageError{jlreq-trimmarks}{Trying to delete \string#1 even though it is not defined, may be a bug}{\@ehc}} +\newcommand*{\jlreq@trimmarks@undeferr}[1]{\PackageError{jlreq-trimmarks}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}} \newcommand*{\jlreq@trimmarks@afterpkg@addtodeletecs}[1]{% \appto\jlreq@trimmarks@afterpkg@deletecslist{\jlreq@helper@undefcs{#1}{\jlreq@trimmarks@undeferr}}% } @@ -23,31 +25,22 @@ \undef{\jlreq@trimmarks@undeferr}% } -\newcommand*{\jlreq@trimmarks@DeclareOption}[2]{% - \DeclareOptionX{#1}{% - \jlreq@ifempty{##1}{}{\PackageError{jlreq-trimmarks}{The option #1 should have no value}{\@ehc}}% - #2% - }% -} -\jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@DeclareOption} - \@ifclassloaded{jlreq}{\let\ifjlreq@trimmarks@jlreqloaded=\@firstoftwo}{\let\ifjlreq@trimmarks@jlreqloaded=\@secondoftwo} \def\ifjlreq@trimmarks@tate@{\jlreq@if{\if@tate\fi}}% % \@firstoftwo when \if@tate is defined and \if@tate=\iftrue \def\ifjlreq@trimmarks@tate{% - \jlreq@if{\ifnum0\ifx\if@tate\@undefined 1\fi\ifx\if@tate\relax 1\fi>0 \fi}{\@secondoftwo}{\ifjlreq@trimmarks@tate@}% + \jlreq@if{\ifnum0\ifx\if@tate\@undefined 1\fi\ifx\if@tate\relax 1\fi>0~\fi}{\@secondoftwo}{\ifjlreq@trimmarks@tate@}% } - % dvipdfmx=f,dvips=s,dviout = o, lualatex = l -\jlreq@trimmarks@DeclareOption{dvipdfmx}{\let\jlreq@trimmarks@driver=f} -\jlreq@trimmarks@DeclareOption{dvips}{\let\jlreq@trimmarks@driver=s} -\jlreq@trimmarks@DeclareOption{dviout}{\let\jlreq@trimmarks@driver=o} +\keys_define:nn { jlreq-trimmarks } { dvipdfmx .code:n = {\let\jlreq@trimmarks@driver=f}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { dvips .code:n = {\let\jlreq@trimmarks@driver=s}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { dviout .code:n = {\let\jlreq@trimmarks@driver=o}, .value_forbidden:n = true } \let\jlreq@trimmarks@engine=\jlreq@engine -\jlreq@trimmarks@DeclareOption{lualatex}{\let\jlreq@trimmarks@engine=l} -\jlreq@trimmarks@DeclareOption{uplatex}{\let\jlreq@trimmarks@engine=u} -\jlreq@trimmarks@DeclareOption{platex}{\let\jlreq@trimmarks@engine=p} +\keys_define:nn { jlreq-trimmarks } { lualatex .code:n = {\let\jlreq@trimmarks@engine=l}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { uplatex .code:n = {\let\jlreq@trimmarks@engine=u}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { platex .code:n = {\let\jlreq@trimmarks@engine=p}, .value_forbidden:n = true } \def\jlreq@trimmarks@switchpapersize{} \def\jlreq@trimmarks@addpapersize#1{% @@ -58,7 +51,7 @@ \@tempa } \newcommand*{\jlreq@trimmarks@addpapersize@@}[3]{% - \@for\@tempa:=#1\do{% + \clist_map_variable:nNn {#1} \@tempa { \eappto\jlreq@trimmarks@switchpapersize{{\expandonce{\@tempa}}{\unexpanded{\def\jlreq@resulta{#2}\def\jlreq@resultb{#3}}}}% }% } @@ -122,8 +115,7 @@ } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@analyzepapersize} -\def\jlreq@trimmarks@option@papersize{+2in} -\DeclareOptionX{trimmarks_paper}{\def\jlreq@trimmarks@option@papersize{#1}} +\keys_define:nn { jlreq-trimmarks } { trimmarks_paper .tl_set:N = \jlreq@trimmarks@option@papersize } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@option@papersize} \newif\ifjlreq@trimmarks@digital \jlreq@trimmarks@digitaltrue @@ -133,60 +125,64 @@ % flag: `show` is specified or not \newif\ifjlreq@trimmarks@option@show \jlreq@trimmarks@option@showfalse -\DeclareOptionX{show}{% - \jlreq@trimmarks@option@showtrue - \jlreq@ifempty{#1}{ - \jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue - }{ - \jlreq@trimmarks@showfalse\tombowdatefalse\jlreq@trimmarks@digitalfalse - \@for\jlreq@trimmarks@tempa:=#1\do{% - \expandafter\jlreq@helper@trim\expandafter{\jlreq@trimmarks@tempa}{\jlreq@trimmarks@tempa} - \jlreq@switch{\jlreq@trimmarks@tempa}{ - {trimmarks}{\jlreq@trimmarks@showtrue} - {banner}{\tombowdatetrue} - {digital}{\jlreq@trimmarks@digitaltrue} - {digital*}{\jlreq@trimmarks@digitaltrue\jlreq@trimmarks@show@artboxtrue} - {no}{\tombowdatefalse\jlreq@trimmarks@showfalse\jlreq@trimmarks@digitalfalse} - }[\PackageError{jlreq-trimmarks}{Unknown value `##1' in the option `show'}{\@ehc}] +\keys_define:nn { jlreq-trimmarks } { + show .code:n = { + \jlreq@trimmarks@option@showtrue + \jlreq@ifempty{#1}{ + \jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue + }{ + \jlreq@trimmarks@showfalse\tombowdatefalse\jlreq@trimmarks@digitalfalse + \clist_map_variable:nNn {#1} \jlreq@trimmarks@tempa { + \expandafter\jlreq@helper@trim\expandafter{\jlreq@trimmarks@tempa}{\jlreq@trimmarks@tempa} + \jlreq@switch{\jlreq@trimmarks@tempa}{ + {trimmarks}{\jlreq@trimmarks@showtrue} + {banner}{\tombowdatetrue} + {digital}{\jlreq@trimmarks@digitaltrue} + {digital*}{\jlreq@trimmarks@digitaltrue\jlreq@trimmarks@show@artboxtrue} + {no}{\tombowdatefalse\jlreq@trimmarks@showfalse\jlreq@trimmarks@digitalfalse} + }[\PackageError{jlreq-trimmarks}{Unknown~value~`##1'~in~the~option~`show'}{\@ehc}] + } } } } -\@for\jlreq@tempa:=top,bottom,gutter,fore-edge\do{% - \expandafter\def\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname{3mm} -} -\DeclareOptionX{bleed_margin}{% - \begingroup - \def\jlreq@do{}% - \jlreq@parsekeyval@nokey{ - \ifjlreq@parsekeyval@nokey@novalue{% - \@for\jlreq@tempa:=top,bottom,gutter,fore-edge\do{% - \epreto\jlreq@do{% - \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname}{##1}% - }% - }% - }{% - \ifthenelse{\equal{##1}{top} \OR \equal{##1}{bottom} \OR \equal{##1}{gutter} \OR \equal{##1}{fore-edge}}{% - \eappto\jlreq@do{% - \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@##1\endcsname}{##2}% +\keys_define:nn { jlreq-trimmarks } { + bleed_margin .code:n = { + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{ + \ifjlreq@parsekeyval@nokey@novalue{% + \clist_map_variable:nNn { top,bottom,gutter,fore-edge } \jlreq@tempa { + \epreto\jlreq@do{% + \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname}{##1}% + }% }% }{% - \PackageError{jlreq-trimmarks}{Unknown position `##1' in bleed_margin}{\@ehc} + \bool_if:nTF { + \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@do{% + \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@##1\endcsname}{##2}% + }% + }{% + \PackageError{jlreq-trimmarks}{Unknown~position~`##1'~in~bleed_margin}{\@ehc} + }% }% - }% - }{#1}% - \expandafter\endgroup - \jlreq@do + }{#1}% + \expandafter\endgroup + \jlreq@do + } } \newif\ifjlreq@trimmarks@landscape \jlreq@trimmarks@landscapefalse -\jlreq@trimmarks@DeclareOption{landscape}{\jlreq@trimmarks@landscapetrue} +\keys_define:nn { jlreq-trimmarks } { landscape .code:n = {\jlreq@trimmarks@landscapetrue}, .value_forbidden:n = true } \jlreq@trimmarks@afterpkg@addtodeleteif{\ifjlreq@trimmarks@landscape} -\let\jlreq@temporary@original@@removeelement=\@removeelement -\let\@removeelement=\jlreq@helper@removeelement -\ProcessOptionsX*\relax -\let\@removeelement=\jlreq@temporary@original@@removeelement -\let\jlreq@temporary@original@@removeelement=\@undefined +\keys_set:nn { jlreq-trimmarks } { + trimmarks_paper = {+2in}, + bleed_margin = { top = 3mm, bottom = 3mm, gutter = 3mm, fore-edge = 3mm }, +} +\ProcessKeysOptions { jlreq-trimmarks } \ifjlreq@trimmarks@option@show\else \ifx o\jlreq@trimmarks@driver @@ -228,7 +224,7 @@ \ifx o\jlreq@trimmarks@driver \ifjlreq@trimmarks@digital - \PackageError{jlreq-trimmarks}{`show=digital' can't be used with the driver `dviout'}{\@ehc} + \PackageError{jlreq-trimmarks}{`show=digital'~can't~be~used~with~the~driver~`dviout'}{\@ehc} \fi \fi @@ -300,114 +296,115 @@ \jlreq@do } -\newcommand{\jlreqtrimmarkssetup}[1]{% - \jlreq@parsekeyval[jlreqtrimmarkssetup]{ - {banner}{% - \@for\@tempa:=odd,even\do{% - \@for\jlreq@tempa:=tate,yoko,corner,inyoko,intate\do{% - \@for\jlreq@tempb:=top,bottom\do{% - \@for\jlreq@tempc:=left,right\do{% - \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @\jlreq@tempc}{}% - }% - }% - }% - \@for\jlreq@tempa:=before,after\do{% - \@for\jlreq@tempb:=top,bottom,in\do{% - \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @center}{}% - }% - \@for\jlreq@tempb:=left,right,in\do{% - \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @center@\jlreq@tempb}{}% +\keys_define:nn { jlreqtrimmarkssetup } { + banner .code:n = { + \clist_map_variable:nNn { odd,even } \@tempa { + \clist_map_variable:nNn { tate,yoko,corner,inyoko,intate } \jlreq@tempa { + \clist_map_variable:nNn {top,bottom} \jlreq@tempb { + \clist_map_variable:nNn {left,right} \jlreq@tempc { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @\jlreq@tempc}{}% }% }% }% - \def\jlreq@do{}% - \jlreq@parsekeyval@nokey{% - \ifjlreq@parsekeyval@nokey@novalue{}{% - \edef\jlreq@gutterodd{\ifjlreq@trimmarks@tate{right}{left}}% - \if@twoside - \edef\jlreq@guttereven{\ifjlreq@trimmarks@tate{left}{right}}% - \else - \let\jlreq@guttereven\jlreq@gutterodd - \fi - \jlreq@switch*{####1}{ - {top-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}} - {left-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}} - {top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{####2}}} - {right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{####2}}} - {top-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{####2}}} - {gutter-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{####2}}} - {top-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{####2}}} - {fore-edge-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{####2}}} - {bottom-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{####2}}} - {left-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{####2}}} - {bottom-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{####2}}} - {right-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{####2}}} - {bottom-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{####2}}} - {gutter-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{####2}}} - {bottom-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{####2}}} - {fore-edge-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{####2}}} - {top-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{####2}}} - {center-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{####2}}} - {bottom-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{####2}}} - {center-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{####2}}} - {center-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{####2}}} - {right-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{####2}}} - {center-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{####2}}} - {left-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{####2}}} - {center-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{####2}}} - {gutter-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{####2}}} - {center-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{####2}}} - {fore-edge-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{####2}}} - }% + \clist_map_variable:nNn {before,after} \jlreq@tempa { + \clist_map_variable:nNn {top,bottom,in} \jlreq@tempb { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @center}{}% }% - }{##1}% - \jlreq@if{\ifx\jlreq@do\@empty\fi}{ - \appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##1}}% - }{}% - \jlreq@do - } - {banner_font}{\def\jlreq@trimmarks@bannerfont{##1}} - {trimmarks_width}{\setlength{\@tombowwidth}{##1}} - {color}{% - \jlreq@ifempty{##1}{% - \def\jlreq@trimmarks@color{\normalcolor}% - }{% - \@ifundefined{color}{% - \PackageError{jlreq-trimmarks}{`\string\color' is not defined, please load the package `color' or its variant before this package}{\@ehc}% + \clist_map_variable:nNn {left,right,in} \jlreq@tempb { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @center@\jlreq@tempb}{}% }% - \jlreq@switch{##1}{ - {c}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,0}}} - {m}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,0}}} - {y}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,0}}} - {k}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,0,1}}} - {cm}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,0}}} - {cy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,0}}} - {ck}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,1}}} - {my}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,0}}} - {mk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,1}}} - {yk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,1}}} - {cmy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,0}}} - {cmk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,1}}} - {cyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,1}}} - {myk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,1}}} - {cmyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,1}}} - {% - \jlreq@iffirsttoken{##1}{[}{% - \def\@tempa[####1]####2\jlreq@endmark{\def\jlreq@trimmarks@color{\color[####1]{####2}}}% - }{% - \def\@tempa####1\jlreq@endmark{\def\jlreq@trimmarks@color{\color{####1}}}% - }% - \@tempa##1\jlreq@endmark - }% + }% + }% + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \edef\jlreq@gutterodd{\ifjlreq@trimmarks@tate{right}{left}}% + \if@twoside + \edef\jlreq@guttereven{\ifjlreq@trimmarks@tate{left}{right}}% + \else + \let\jlreq@guttereven\jlreq@gutterodd + \fi + \jlreq@switch*{##1}{ + {top-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}} + {left-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}} + {top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}} + {right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}} + {top-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}} + {gutter-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}} + {top-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}} + {fore-edge-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}} + {bottom-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}} + {left-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}} + {bottom-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}} + {right-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}} + {bottom-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}} + {gutter-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}} + {bottom-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}} + {fore-edge-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}} + {top-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}} + {center-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}} + {bottom-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}} + {center-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}} + {center-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}} + {right-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}} + {center-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}} + {left-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}} + {center-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}} + {gutter-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}} + {center-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}} + {fore-edge-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}} + }% + }% + }{#1}% + \jlreq@if{\ifx\jlreq@do\@empty\fi}{ + \appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{#1}}% + }{}% + \jlreq@do + }, + banner_font .tl_set:N = \jlreq@trimmarks@bannerfont, + trimmarks_width .code:n = {\setlength{\@tombowwidth}{#1}}, + color .code:n = { + \jlreq@ifempty{#1}{% + \def\jlreq@trimmarks@color{\normalcolor}% + }{% + \@ifundefined{color}{% + \PackageError{jlreq-trimmarks}{`\string\color'~is~not~defined,~please~load~the~package~`color'~or~its~variant~before~this~package}{\@ehc}% + }% + \jlreq@switch{#1}{ + {c}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,0}}} + {m}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,0}}} + {y}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,0}}} + {k}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,0,1}}} + {cm}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,0}}} + {cy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,0}}} + {ck}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,1}}} + {my}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,0}}} + {mk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,1}}} + {yk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,1}}} + {cmy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,0}}} + {cmk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,1}}} + {cyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,1}}} + {myk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,1}}} + {cmyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,1}}} + {% + \jlreq@iffirsttoken{##1}{[}{% + \def\@tempa[####1]####2\jlreq@endmark{\def\jlreq@trimmarks@color{\color[####1]{####2}}}% + }{% + \def\@tempa####1\jlreq@endmark{\def\jlreq@trimmarks@color{\color{####1}}}% + }% + \@tempa##1\jlreq@endmark }% }% }% - }{#1}% + }% +} +\newcommand{\jlreqtrimmarkssetup}[1]{% + \keys_set:nn { jlreqtrimmarkssetup } {#1} } \@onlypreamble\jlreqtrimmarkssetup \@bannertoken{% \jobname\space(\number\year-\two@digits\month-\two@digits\day - \space\two@digits\hour:\two@digits\minute)% + \space\two@digits\hour :\two@digits\minute)% } \jlreqtrimmarkssetup{ banner={\the\@bannertoken}, @@ -483,11 +480,10 @@ \def\jlreq@trimmarks@bleed{3mm} % left=gutter? \def\ifjlreq@trimmarks@leftisgutter{% - \ifjlreq@trimmarks@tate{% - \jlreq@if{\ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \fi}{\@secondoftwo}{\@firstoftwo}% - }{% - \jlreq@if{\ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \fi}{\@firstoftwo}{\@secondoftwo}% - }% + \bool_if:nTF { + ( \legacy_if_p:n { jlreq@trimmarks@tate } && ( ! ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) ) ) || + ( ! \legacy_if_p:n { jlreq@trimmarks@tate } && ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) ) + } } \def\jlreq@trimmarks@bleed@left{\ifjlreq@trimmarks@leftisgutter{\jlreq@trimmarks@bleed@gutter}{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}} \def\jlreq@trimmarks@bleed@right{\ifjlreq@trimmarks@leftisgutter{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}{\jlreq@trimmarks@bleed@gutter}} @@ -842,18 +838,18 @@ \edef\jlreq@trimmarks@pttobp#1{\noexpand\strip@pt\noexpand\dimexpr\strip@pt\jlreq@resultdimen\noexpand\dimexpr0.9963\noexpand\dimexpr#1\unexpanded{\relax\relax\relax}} \edef\jlreq@trimmarks@trimboxsize{% [% - \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2} - \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2} - \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2} + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2}~ \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight + \paperheight)/2}% ] } \jlreq@tempcnta=\c@page \def\@tempa{% [% - \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \jlreq@trimmarks@bleed@left} - \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2 - \jlreq@trimmarks@bleed@bottom} - \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2 + \jlreq@trimmarks@bleed@right} + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \jlreq@trimmarks@bleed@left}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2 - \jlreq@trimmarks@bleed@bottom}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2 + \jlreq@trimmarks@bleed@right}~ \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight + \paperheight)/2 + \jlreq@trimmarks@bleed@top}% ] } @@ -863,14 +859,14 @@ \edef\jlreq@trimmarks@bleedboxsize@even{\@tempa}% \c@page=\jlreq@tempcnta \edef\jlreq@trimmarks@pdfattribute@odd{% - /TrimBox \jlreq@trimmarks@trimboxsize - \ifjlreq@trimmarks@show@artbox /ArtBox \jlreq@trimmarks@trimboxsize\fi - /BleedBox \jlreq@trimmarks@bleedboxsize@odd + /TrimBox~\jlreq@trimmarks@trimboxsize + \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi + /BleedBox~\jlreq@trimmarks@bleedboxsize@odd } \edef\jlreq@trimmarks@pdfattribute@even{% - /TrimBox \jlreq@trimmarks@trimboxsize - \ifjlreq@trimmarks@show@artbox /ArtBox \jlreq@trimmarks@trimboxsize\fi - /BleedBox \jlreq@trimmarks@bleedboxsize@even + /TrimBox~\jlreq@trimmarks@trimboxsize + \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi + /BleedBox~\jlreq@trimmarks@bleedboxsize@even } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@pttobp} \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@trimboxsize} @@ -880,9 +876,9 @@ \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@pdfattribute@even} \begingroup - \c@page=1 + \c@page=1\relax \jlreq@tempdima=\jlreq@trimmarks@bleed@left - \c@page=2 + \c@page=2\relax \ifdim\jlreq@trimmarks@bleed@left=\jlreq@tempdima \global\let\jlreq@tempa\@firstoftwo \else @@ -896,13 +892,13 @@ \@tempa \fi \ifx f\jlreq@trimmarks@driver - \epreto\@outputtombow{\noexpand\special{pdf: put @thispage <<\jlreq@trimmarks@pdfattribute@odd>>}} + \epreto\@outputtombow{\noexpand\special{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@odd>>}} \fi \ifx s\jlreq@trimmarks@driver - \edef\@tempa{\noexpand\special{ps:SDict begin - [ /TrimBox \jlreq@trimmarks@trimboxsize /PAGE pdfmark - \ifjlreq@trimmarks@show@artbox [ /ArtBox \jlreq@trimmarks@trimboxsize /PAGE pdfmark \fi - [ /BleedBox \jlreq@trimmarks@bleedboxsize@odd /PAGE pdfmark + \edef\@tempa{\noexpand\special{ps:SDict~begin~ + [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~ + \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi + [~/BleedBox~\jlreq@trimmarks@bleedboxsize@odd /PAGE~pdfmark~ end}}% \@tempa \fi @@ -916,20 +912,20 @@ \fi \ifx f\jlreq@trimmarks@driver \epreto\@outputtombow{% - \unexpanded{\ifodd\c@page\special}{pdf: put @thispage <<\jlreq@trimmarks@pdfattribute@odd>>}% - \unexpanded{\else\special}{pdf: put @thispage <<\jlreq@trimmarks@pdfattribute@even>>}\noexpand\fi + \unexpanded{\ifodd\c@page\special}{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@odd>>}% + \unexpanded{\else\special}{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@even>>}\noexpand\fi } \fi \ifx s\jlreq@trimmarks@driver \epreto\@outputtombow{% - \unexpanded{\ifodd\c@page\special}{ps:SDict begin - [ /TrimBox \jlreq@trimmarks@trimboxsize /PAGE pdfmark - \ifjlreq@trimmarks@show@artbox [ /ArtBox \jlreq@trimmarks@trimboxsize /PAGE pdfmark \fi - [ /BleedBox \jlreq@trimmarks@bleedboxsize@odd /PAGE pdfmark - end}\unexpanded{\else\special}{ps:SDict begin - [ /TrimBox \jlreq@trimmarks@trimboxsize /PAGE pdfmark - \ifjlreq@trimmarks@show@artbox [ /ArtBox \jlreq@trimmarks@trimboxsize /PAGE pdfmark \fi - [ /BleedBox \jlreq@trimmarks@bleedboxsize@even /PAGE pdfmark + \unexpanded{\ifodd\c@page\special}{ps:SDict~begin~ + [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~ + \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi + [~/BleedBox~\jlreq@trimmarks@bleedboxsize@odd /PAGE~pdfmark~ + end}\unexpanded{\else\special}{ps:SDict~begin~ + [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~ + \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi + [~/BleedBox~\jlreq@trimmarks@bleedboxsize@even /PAGE~pdfmark~ end}\noexpand\fi } \fi @@ -939,5 +935,5 @@ % always true \tombowtrue - +\ExplSyntaxOff \endinput diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls index 477a34af98b..434cd4f5b83 100644 --- a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls +++ b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls @@ -5,11 +5,10 @@ %% % (based on JLReq 20200811 https://www.w3.org/TR/2020/NOTE-jlreq-20200811/) \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{jlreq}[2021/05/28 jlreq] -\RequirePackage{xkeyval,everyhook,etoolbox,ifthen} +\ProvidesClass{jlreq}[2021/07/22 jlreq] +\RequirePackage{l3keys2e,etoolbox} \RequirePackage{jlreq-helpers} - \ExplSyntaxOn \tl_new:N \l_jlreq_tmpa_tl \cs_new:Nn \l_jlreq_do: {} @@ -18,14 +17,18 @@ \str_new:N \l_jlreq_tmpc_str \bool_new:N \l_jlreq_tmpa_bool \clist_new:N \l_jlreq_tmpa_clist -\ExplSyntaxOff +\dim_new:N \l_jlreq_tmpa_dim +\skip_new:N \l_jlreq_tmpa_skip +\box_new:N \l_jlreq_tmpa_box +\box_new:N \l_jlreq_tmpb_box +\box_new:N \l_jlreq_tmpc_box -\newcommand*{\jlreq@undeferr}[1]{\ClassError{jlreq}{Trying to delete \string#1 even though it is not defined, may be a bug}{\@ehc}} +\def\jlreq@undeferr#1{\ClassError{jlreq}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}} % クラスファイル内でしか使わないマクロをクラスファイル終了時に未定義にする -\newcommand*{\jlreq@aftercls@addtodeletecs}[1]{% +\def\jlreq@aftercls@addtodeletecs#1{% \appto\jlreq@aftercls@deletecslist{\jlreq@helper@undefcs{#1}{\jlreq@undeferr}}% } -\newcommand*{\jlreq@aftercls@addtodeleteif}[1]{% +\def\jlreq@aftercls@addtodeleteif#1{% \appto\jlreq@aftercls@deletecslist{\jlreq@helper@undefif{#1}{\jlreq@undeferr}}% } \jlreq@aftercls@addtodeletecs{\jlreq@aftercls@addtodeletecs} @@ -43,10 +46,10 @@ \def\jlreq@saveoriginalcs#1{% \@ifundefined{#1}{ - \ClassError{jlreq}{Trying to save #1 but it's not defined, may be a bug}{\@ehc}% + \ClassError{jlreq}{Trying~to~save~#1~but~it's~not~defined,~may~be~a~bug}{\@ehc}% }{} \@ifundefined{jlreq@original@#1}{}{ - \ClassError{jlreq}{Trying to save #1 twice, may be a bug}{\@ehc}% + \ClassError{jlreq}{Trying~to~save~#1~twice,~may~be~a~bug}{\@ehc}% } \begingroup \edef\jlreq@do{\noexpand\let\expandonce{\csname jlreq@original@#1\endcsname}=\expandonce{\csname #1\endcsname}} @@ -67,25 +70,16 @@ % オプション処理の際にしか使わない変数(後でそれを元に別の変数を調整する) % ものは\jlreq@option@<key>に格納する. % _とかは@に変換する. -% 引数無しの\DeclareOptionX -\newcommand*{\jlreq@DeclareOption}[2]{% - \DeclareOptionX{#1}{% - \jlreq@ifempty{##1}{}{\ClassError{jlreq}{The option #1 should have no value}{\@ehc}}% - #2% - } -} -\jlreq@aftercls@addtodeletecs{\jlreq@DeclareOption} % エンジン類 -\jlreq@DeclareOption{uplatex}{\let\jlreq@engine=u} -\jlreq@DeclareOption{platex}{\let\jlreq@engine=p} -\jlreq@DeclareOption{lualatex}{\let\jlreq@engine=l} +\keys_define:nn { jlreq } { uplatex .code:n = { \let\jlreq@engine=u }, uplatex .value_forbidden:n = true } +\keys_define:nn { jlreq } { platex .code:n = { \let\jlreq@engine=p }, platex .value_forbidden:n = true } +\keys_define:nn { jlreq } { lualatex .code:n = { \let\jlreq@engine=l }, lualatex .value_forbidden:n = true } % 文書のタイプ -\newcommand*{\jlreq@article@type}{article} -\define@choicekey{jlreq.cls}{article_type}{article,report,book}{\renewcommand*{\jlreq@article@type}{#1}} -\jlreq@DeclareOption{article}{\renewcommand*{\jlreq@article@type}{article}} -\jlreq@DeclareOption{report}{\renewcommand*{\jlreq@article@type}{report}} -\jlreq@DeclareOption{book}{\renewcommand*{\jlreq@article@type}{book}} +\keys_define:nn { jlreq } { article_type .choices:nn = {article,report,book}{\def\jlreq@article@type{#1}} } +\keys_define:nn { jlreq } { article .code:n = { \def\jlreq@article@type{article} }, article .value_forbidden:n = true } +\keys_define:nn { jlreq } { report .code:n = { \def\jlreq@article@type{report} }, report .value_forbidden:n = true } +\keys_define:nn { jlreq } { book .code:n = { \def\jlreq@article@type{book} }, book .value_forbidden:n = true } %.. 基本版面.まずは紙サイズ. \def\jlreq@switchpapersize{} @@ -99,31 +93,36 @@ \edef\@tempa{\unexpanded{\jlreq@addpapersize@@{#1}{#2}}\csexpandonce{jlreq@helper@papersizelist@#3}}% \@tempa } -\newcommand*{\jlreq@addpapersize@@}[4]{% - \@for\@tempa:=#1\do{% +\def\jlreq@addpapersize@@#1#2#3#4{% + \clist_map_variable:nNn {#1} \@tempa { \eappto\jlreq@switchpapersize{{\expandonce{\@tempa}}{\unexpanded{\setlength{\paperwidth}{#3}\setlength{\paperheight}{#4}}}}% }% - \@for\@tempa:=#2\do{% - \expandafter\jlreq@DeclareOption\expandafter{\@tempa}{\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 + } + } } \jlreq@aftercls@addtodeletecs{\jlreq@addpapersize} \jlreq@aftercls@addtodeletecs{\jlreq@addpapersize@} \jlreq@aftercls@addtodeletecs{\jlreq@addpapersize@@} -\DeclareOptionX{paper}{ - \edef\jlreq@do{% - \unexpanded{\jlreq@switch{#1}}{\expandonce{\jlreq@switchpapersize}}% - [\unexpanded{% - \jlreq@helper@dividebycomma{#1}% - \ifjlreq@result - \setlength{\paperwidth}{\dimexpr\jlreq@resulta\relax}% - \setlength{\paperheight}{\dimexpr\jlreq@resultb\relax}% - \else - \ClassError{jlreq}{The paper #1 is unknown}{\@ehc}% - \fi - }]% - }% - \jlreq@do +\keys_define:nn { jlreq } { + paper .code:n = { + \edef\jlreq@do{% + \unexpanded{\jlreq@switch{#1}}{\expandonce{\jlreq@switchpapersize}}% + [\unexpanded{% + \jlreq@helper@dividebycomma{#1}% + \ifjlreq@result + \setlength{\paperwidth}{\dimexpr\jlreq@resulta\relax}% + \setlength{\paperheight}{\dimexpr\jlreq@resultb\relax}% + \else + \ClassError{jlreq}{The~paper~#1~is~unknown}{\@ehc}% + \fi + }]% + }% + \jlreq@do + } } % 紙サイズ一覧.b*はJIS B. \jlreq@addpapersize{a0,A0}{}[a0] @@ -168,91 +167,81 @@ %.. フォントサイズ,行長,1ページあたりの行数で基本版面のサイズを決める(2.4.1.a) -\newcommand*{\jlreq@option@fontsize}{} \jlreq@aftercls@addtodeletecs{\jlreq@option@fontsize} -\DeclareOptionX{fontsize}{\renewcommand*{\jlreq@option@fontsize}{#1}} -\jlreq@DeclareOption{10pt}{\renewcommand*{\jlreq@option@fontsize}{10pt}} -\jlreq@DeclareOption{11pt}{\renewcommand*{\jlreq@option@fontsize}{11pt}} -\jlreq@DeclareOption{12pt}{\renewcommand*{\jlreq@option@fontsize}{12pt}} -\newcommand*{\jlreq@option@jafontsize}{} +\keys_define:nn { jlreq } { fontsize .tl_set:N = \jlreq@option@fontsize } +\keys_define:nn { jlreq } { + 10pt .code:n = {\def\jlreq@option@fontsize{10pt}}, 10pt .value_forbidden:n = true, + 11pt .code:n = {\def\jlreq@option@fontsize{11pt}}, 11pt .value_forbidden:n = true, + 12pt .code:n = {\def\jlreq@option@fontsize{12pt}}, 12pt .value_forbidden:n = true, +} +\keys_define:nn { jlreq } { jafontsize .tl_set:N = \jlreq@option@jafontsize} +\keys_define:nn { jlreq } { jafontscale .tl_set:N = \jlreq@option@jafontscale} \jlreq@aftercls@addtodeletecs{\jlreq@option@jafontsize} -\DeclareOptionX{jafontsize}{\renewcommand*{\jlreq@option@jafontsize}{#1}} -\newcommand*{\jlreq@option@jafontscale}{1} -\DeclareOptionX{jafontscale}{\renewcommand*{\jlreq@option@jafontscale}{#1}} \jlreq@aftercls@addtodeletecs{\jlreq@option@jafontscale} %.. 行の長さ -\newcommand*{\jlreq@option@line@length}{} +\keys_define:nn { jlreq } { line_length .tl_set:N = \jlreq@option@line@length} \jlreq@aftercls@addtodeletecs{\jlreq@option@line@length} -\DeclareOptionX{line_length}{\renewcommand*{\jlreq@option@line@length}{#1}} %.. 1ページあたりの行数 -\newcommand*{\jlreq@option@number@of@lines}{} +\keys_define:nn { jlreq } { number_of_lines .tl_set:N = \jlreq@option@number@of@lines} \jlreq@aftercls@addtodeletecs{\jlreq@option@number@of@lines} -\DeclareOptionX{number_of_lines}{\renewcommand*{\jlreq@option@number@of@lines}{#1}} % 地の空き量,のどの空き量で配置位置を決める(2.4.1.b)省略されたら中央配置. %.. 天 -\newcommand*{\jlreq@option@head@space}{} +\keys_define:nn { jlreq } { head_space .tl_set:N = \jlreq@option@head@space} \jlreq@aftercls@addtodeletecs{\jlreq@option@head@space} -\DeclareOptionX{head_space}{\renewcommand*{\jlreq@option@head@space}{#1}} - %.. 地 -\newcommand*{\jlreq@option@foot@space}{} +\keys_define:nn { jlreq } { foot_space .tl_set:N = \jlreq@option@foot@space} \jlreq@aftercls@addtodeletecs{\jlreq@option@foot@space} -\DeclareOptionX{foot_space}{\renewcommand*{\jlreq@option@foot@space}{#1}} %.. のど -\newcommand*{\jlreq@option@gutter}{} +\keys_define:nn { jlreq } { gutter .tl_set:N = \jlreq@option@gutter} \jlreq@aftercls@addtodeletecs{\jlreq@option@gutter} -\DeclareOptionX{gutter}{\renewcommand*{\jlreq@option@gutter}{#1}} %.. 小口 -\newcommand*{\jlreq@option@fore@edge}{} \jlreq@aftercls@addtodeletecs{\jlreq@option@fore@edge} -\DeclareOptionX{fore_edge}{\renewcommand*{\jlreq@option@fore@edge}{#1}}% 昔にこっちにしていたので残している -\DeclareOptionX{fore-edge}{\renewcommand*{\jlreq@option@fore@edge}{#1}} +\keys_define:nn { jlreq } { + fore_edge .tl_set:N = \jlreq@option@fore@edge, + fore-edge .tl_set:N = \jlreq@option@fore@edge +} %.. 柱とノンブル -\newcommand*{\jlreq@option@headfoot@verticalpos}{} -\jlreq@aftercls@addtodeletecs{\jlreq@option@headfoot@verticalpos} % 本文とヘッダ/フッタの間の空き -\DeclareOptionX{headfoot_verticalposition}{\renewcommand*{\jlreq@option@headfoot@verticalpos}{#1}} +\keys_define:nn { jlreq } { headfoot_verticalposition .tl_set:N = \jlreq@option@headfoot@verticalpos} +\jlreq@aftercls@addtodeletecs{\jlreq@option@headfoot@verticalpos} % 柱やノンブルの左右の空き -\newcommand*{\jlreq@headfoot@sidemargin}{0pt} -\DeclareOptionX{headfoot_sidemargin}{\renewcommand*{\jlreq@headfoot@sidemargin}{#1}} +\keys_define:nn { jlreq } { headfoot_sidemargin .tl_set:N = \jlreq@headfoot@sidemargin} %.. 段間 -\newcommand*{\jlreq@option@column@gap}{2zw} +\keys_define:nn { jlreq } { column_gap .tl_set:N = \jlreq@option@column@gap} \jlreq@aftercls@addtodeletecs{\jlreq@option@column@gap} -\DeclareOptionX{column_gap}{\renewcommand*{\jlreq@option@column@gap}{#1}} %.. 行送り,指定無しの場合は文字サイズの1.7倍とする.(1.5から2倍が好ましい:2.4.2.d 注3) -\newcommand*{\jlreq@option@baselineskip}{17zw/10} +\keys_define:nn { jlreq } { + baselineskip .tl_set:N = \jlreq@option@baselineskip, + linegap .code:n = { \def\jlreq@option@baselineskip{1zw + #1} } +} \jlreq@aftercls@addtodeletecs{\jlreq@option@baselineskip} -\DeclareOptionX{baselineskip}{\def\jlreq@option@baselineskip{#1}} -\DeclareOptionX{linegap}{\def\jlreq@option@baselineskip{1zw + #1}} %.. 組み方系 % 行頭に括弧が来たときの配置:3.1.5 % 段落頭指定_折り返し行頭指定 で与える. -\newcommand*{\jlreq@open@bracket@pos}{zenkaku_tentsuki} -\define@choicekey{jlreq.cls}{open_bracket_pos}{zenkaku_tentsuki,zenkakunibu_nibu,nibu_tentsuki}{\renewcommand*{\jlreq@open@bracket@pos}{#1}} +\keys_define:nn { jlreq } { open_bracket_pos .choices:nn = {zenkaku_tentsuki,zenkakunibu_nibu,nibu_tentsuki}{\def\jlreq@open@bracket@pos{#1}} } % ぶら下げ組みをするか:3.8.2 注1 \newif\ifjlreq@burasage\jlreq@burasagefalse -\jlreq@DeclareOption{hanging_punctuation}{\jlreq@burasagetrue} +\keys_define:nn { jlreq } { hanging_punctuation .code:n = {\jlreq@burasagetrue}, hanging_punctuation .value_forbidden:n = true} % jsarticleと同じkanjiskipを使う \newif\ifjlreq@narrow@kanjiskip\jlreq@narrow@kanjiskipfalse -\jlreq@DeclareOption{narrow_kanjiskip}{\jlreq@narrow@kanjiskiptrue} +\keys_define:nn { jlreq } { narrow_kanjiskip .code:n = {\jlreq@narrow@kanjiskiptrue}, narrow_kanjiskip .value_forbidden:n = true} \jlreq@aftercls@addtodeleteif{\ifjlreq@narrow@kanjiskip} %.. 注 % 傍注のタイプ -\newcommand*{\jlreq@option@sidenote@length}{0pt} +\keys_define:nn { jlreq } { sidenote_length .tl_set:N = \jlreq@option@sidenote@length } \jlreq@aftercls@addtodeletecs{\jlreq@option@sidenote@length} -\DeclareOptionX{sidenote_length}{\renewcommand*{\jlreq@option@sidenote@length}{#1}} %.. 逆ノンブル \newif\ifjlreq@option@use@reverse@pagination \jlreq@aftercls@addtodeleteif{\ifjlreq@option@use@reverse@pagination} \jlreq@option@use@reverse@paginationfalse -\jlreq@DeclareOption{use_reverse_pagination}{\jlreq@option@use@reverse@paginationtrue} +\keys_define:nn { jlreq } { use_reverse_pagination .code:n = {\jlreq@option@use@reverse@paginationtrue}, use_reverse_pagination .value_forbidden:n = true } %.. もろもろ \newif\if@restonecol\@restonecolfalse @@ -261,45 +250,48 @@ \newif\if@tate \@tatefalse \newif\ifjlreq@option@titlepage \jlreq@option@titlepagefalse % titlepageかnotitlepageかが指定された \jlreq@aftercls@addtodeleteif{\ifjlreq@option@titlepage} -\jlreq@DeclareOption{landscape}{\@landscapetrue} -\jlreq@DeclareOption{tombo}{\ClassWarningNoLine{jlreq}{The option `tombo' is not supported by jlreq class. Please use the jlreq-trimmarks package}} -\jlreq@DeclareOption{tombow}{\ClassWarningNoLine{jlreq}{The option `tombow' is not supported by jlreq class. Please use the jlreq-trimmarks package}} -\jlreq@DeclareOption{mentuke}{\ClassWarningNoLine{jlreq}{The option `mentuke' is not supported by jlreq class. Please use the jlreq-trimmarks package}} -\jlreq@DeclareOption{tate}{\@tatetrue} +\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}} } +\keys_define:nn { jlreq } { mentuke .code:n = {\ClassWarningNoLine{jlreq}{The~option~`mentuke'~is~not~supported~by~jlreq~class.~Please~use~the~jlreq-trimmarks~package}} } +\keys_define:nn { jlreq } { tate .code:n = { \@tatetrue }, tate .value_forbidden:n = true} \newif\ifjlreq@option@twoside\jlreq@option@twosidefalse % onesideかtwosideが指定された \jlreq@aftercls@addtodeleteif{\ifjlreq@option@twoside} -\jlreq@DeclareOption{oneside}{\@twosidefalse\@mparswitchfalse\jlreq@option@twosidetrue} -\jlreq@DeclareOption{twoside}{\@twosidetrue\@mparswitchtrue\jlreq@option@twosidetrue} -\jlreq@DeclareOption{onecolumn}{\@twocolumnfalse} -\jlreq@DeclareOption{twocolumn}{\@twocolumntrue} -\jlreq@DeclareOption{titlepage}{\jlreq@option@titlepagetrue\@titlepagetrue} -\jlreq@DeclareOption{notitlepage}{\jlreq@option@titlepagetrue\@titlepagefalse} -\jlreq@DeclareOption{draft}{\setlength\overfullrule{5pt}} -\jlreq@DeclareOption{final}{\setlength\overfullrule{0pt}} +\keys_define:nn { jlreq } { oneside .code:n = { \@twosidefalse\@mparswitchfalse\jlreq@option@twosidetrue }, oneside .value_forbidden:n = true } +\keys_define:nn { jlreq } { twoside .code:n = { \@twosidetrue\@mparswitchtrue\jlreq@option@twosidetrue }, twoside .value_forbidden:n = true } +\keys_define:nn { jlreq } { onecolumn .code:n = { \@twocolumnfalse }, onecolumn .value_forbidden:n = true } +\keys_define:nn { jlreq } { twocolumn .code:n = { \@twocolumntrue }, twocolumn .value_forbidden:n = true } +\keys_define:nn { jlreq } { titlepage .code:n = { \jlreq@option@titlepagetrue\@titlepagetrue }, titlepage .value_forbidden:n = true } +\keys_define:nn { jlreq } { notitlepage .code:n = { \jlreq@option@titlepagetrue\@titlepagefalse }, notitlepage .value_forbidden:n = true } +\keys_define:nn { jlreq } { draft .code:n = { \setlength\overfullrule{5pt} }, draft .value_forbidden:n = true } +\keys_define:nn { jlreq } { final .code:n = { \setlength\overfullrule{0pt} }, final .value_forbidden:n = true } \newif\if@openright \newif\ifjlreq@option@open \jlreq@option@openfalse % openrightかopenanyが指定された \jlreq@aftercls@addtodeleteif{\ifjlreq@option@open} -\jlreq@DeclareOption{openright}{\@openrighttrue\jlreq@option@opentrue} -\jlreq@DeclareOption{openany}{\@openrightfalse\jlreq@option@opentrue} -\jlreq@DeclareOption{leqno}{\input{leqno.clo}} -\jlreq@DeclareOption{fleqn}{\input{fleqn.clo}} +\keys_define:nn { jlreq } { openright .code:n = { \@openrighttrue\jlreq@option@opentrue }, openright .value_forbidden:n = true} +\keys_define:nn { jlreq } { openany .code:n = { \@openrightfalse\jlreq@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@option@enablejfam \jlreq@option@enablejfamtrue \jlreq@aftercls@addtodeleteif{\ifjlreq@option@enablejfam} -\jlreq@DeclareOption{disablejfam}{\jlreq@option@enablejfamfalse} - -\newcommand*{\jlreq@note}[1]{} -\jlreq@DeclareOption{jlreq_notes}{\renewcommand*{\jlreq@note}[1]{\message{^^JJLReq note: ##1^^J}}} - -\ExecuteOptionsX{article_type=article,paper=a4,open_bracket_pos=zenkaku_tentsuki,onecolumn,final} -% \@removeelementを一旦置き換えてから\ProcessOptionsXを実行する -\let\jlreq@temporary@original@@removeelement=\@removeelement -\let\@removeelement=\jlreq@helper@removeelement -\ProcessOptionsX\relax -\let\@removeelement=\jlreq@temporary@original@@removeelement -\let\jlreq@temporary@original@@removeelement=\@undefined +\keys_define:nn { jlreq } { disablejfam .code:n = { \jlreq@option@enablejfamfalse }, disablejfam .value_forbidden:n = true} + +\def\jlreq@note#1{} +\keys_define:nn { jlreq } { jlreq_notes .code:n = { \def\jlreq@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 = {}, + head_space={},foot_space={},gutter={},fore_edge={}, + jafontsize={},jafontscale={1},baselineskip={17zw/10}, + sidenote_length=0pt,column_gap={2zw}, + headfoot_verticalposition = {},headfoot_sidemargin={0pt}, + open_bracket_pos=zenkaku_tentsuki, + onecolumn,final} +\ProcessKeysOptions { jlreq } -\ExplSyntaxOn \legacy_if:nF { jlreq@option@titlepage } { \str_if_eq:VnTF \jlreq@article@type { article } { \@titlepagefalse } { \@titlepagetrue } } @@ -316,41 +308,22 @@ \legacy_if:nF { jlreq@option@twoside } { \str_if_eq:VnTF \jlreq@article@type { book } { \@twosidetrue } { \@twosidefalse } } -\ExplSyntaxOff -\def\jlreq@jlreqsetup@keyvallist{} -\def\jlreq@jlreqsetup@finally{} -\newcommand{\jlreqsetup}[1]{% - \begingroup - \edef\jlreq@do{\unexpanded{\jlreq@parsekeyval[jlreqsetup]}{\expandonce{\jlreq@jlreqsetup@keyvallist}}}% - \expandafter\endgroup - \jlreq@do{#1}% - \jlreq@jlreqsetup@finally -} -% \jlreqsetupの項目に加えるマクロ.\jlreq@jlreqsetup@add{key}{action}とするとkeyに対して定義できる. -% action内ではvalが#1として取得できる.(従ってaction内でマクロを定義する際には##1を使う必要がある.) -\newcommand{\jlreq@jlreqsetup@add}[1]{% - \@ifnextchar[{\jlreq@jlreqsetup@add@{#1}}{\jlreq@jlreqsetup@add@@{#1}}% -} -\long\def\jlreq@jlreqsetup@add@#1[#2]#3{% - \eappto\jlreq@jlreqsetup@keyvallist{\unexpanded{{#1}[#2]{#3}}}% -} -\long\def\jlreq@jlreqsetup@add@@#1#2{% - \eappto\jlreq@jlreqsetup@keyvallist{\unexpanded{{#1}{#2}}}% +\tl_new:N \g__jlreq_jlreqsetup_finally_tl +\NewDocumentCommand{\jlreqsetup} { +m } { + \keys_set:nn { jlreqsetup } {#1} + \tl_use:N \g__jlreq_jlreqsetup_finally_tl } % \jlreqsetupの最後に必ず実行される処理を入れる. -\newcommand\jlreq@jlreqsetup@addtofinally[1]{\eappto\jlreq@jlreqsetup@finally{\unexpanded{#1}}} -\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@add} -\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@add@} -\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@add@@} -\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@addtofinally} +\cs_set:Nn \__jlreq_jlreqsetup_addtofinally:n { \tl_gput_right:Nx \g__jlreq_jlreqsetup_finally_tl { \exp_not:n {#1} } } +\jlreq@aftercls@addtodeletecs{\__jlreq_jlreqsetup_addtofinally:n} \@onlypreamble\jlreqsetup % エンジンの設定 \ifx\jlreq@engine\@undefined \jlreq@helper@guessengine \let\jlreq@engine=\jlreq@result - \message{jlreq guessed engine: + \message{jlreq~guessed~engine:~ \ifx l\jlreq@engine lualatex\fi \ifx p\jlreq@engine platex\fi \ifx u\jlreq@engine uplatex\fi @@ -358,7 +331,6 @@ \fi %.. JFMとluatexjaのロード -\ExplSyntaxOn \ifx l\jlreq@engine \def\ltj@stdyokojfm{jlreq} \def\ltj@stdtatejfm{jlreqv} @@ -377,6 +349,7 @@ \ltjsetparameter{stretch_priority={kanjiskip=0,xkanjiskip=10}} \ltjsetparameter{shrink_priority={kanjiskip=0,xkanjiskip=-30}} \else + \RequirePackage{everyhook} \def\jlreq@jfmname@prefix{} \jlreq@aftercls@addtodeletecs{\jlreq@jfmname@prefix} \ifjlreq@burasage\edef\jlreq@jfmname@prefix{b\jlreq@jfmname@prefix}\fi @@ -389,7 +362,6 @@ \jlreq@aftercls@addtodeletecs{\jlreq@jfmname} \jlreq@aftercls@addtodeletecs{\jlreq@jfmnameg} \fi -\ExplSyntaxOff % (u)pLaTeXの場合ここで初めて\epTeXinputencodingが発行されるので, % これ以前には和文は使えない. @@ -438,7 +410,7 @@ \ifcat (\noexpand #11\fi \ifcat A\noexpand #11\fi \ifcat 1\noexpand #11\fi - >0 + >0~ \fi}% } @@ -446,10 +418,10 @@ % 組方向を判定 % \jlreq@if(y|t)(dir|box)を定義する. \jlreq@if{\ifx l\jlreq@engine\fi}{ - \def\jlreq@ifydir{\jlreq@if{\ifnum\ltjgetparameter{direction}=4 \fi}} - \def\jlreq@iftdir{\jlreq@if{\ifnum\numexpr\ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8\relax=3 \fi}} - \def\jlreq@ifybox#1{\jlreq@if{\ifnum\ltjgetparameter{boxdir}{#1}=4 \fi}} - \def\jlreq@iftbox#1{\jlreq@if{\ifnum\numexpr\ltjgetparameter{boxdir}{#1}-(\ltjgetparameter{boxdir}{#1}/8)*8\relax=3 \fi}} + \def\jlreq@ifydir { \int_compare:nTF { \ltjgetparameter{direction} == 4 } } + \def\jlreq@iftdir { \int_compare:nTF { (\ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8) == 3 } } + \def\jlreq@ifybox#1{ \int_compare:nTF { \ltjgetparameter{boxdir}{#1} == 4 } } + \def\jlreq@iftbox#1{ \int_compare:nTF { (\ltjgetparameter{boxdir}{#1}-(\ltjgetparameter{boxdir}{#1}/8)*8) == 3 } } }{ \def\jlreq@ifydir{\jlreq@if{\ifydir\fi}} \def\jlreq@iftdir{\jlreq@if{\iftdir\fi}} @@ -459,7 +431,6 @@ % 左ページであるか % #1 : odd or even or ページ数 -\ExplSyntaxOn \def\jlreq@ifleftpage#1{% \bool_if:nTF { ( \legacy_if_p:n { @tate } && \bool_lazy_or_p:nn { \str_if_eq_p:ee {#1} { odd } } @@ -469,19 +440,18 @@ { \bool_lazy_and_p:nn { ! \str_if_eq_p:ee {#1} { odd } } { ! \int_if_odd_p:n {#1} } } ) } } -\ExplSyntaxOff \ifx l\jlreq@engine - \newcommand*{\jlreq@getpostbreakpenalty}[1]{\ltjgetparameter{postbreakpenalty}{#1}} + \def\jlreq@getpostbreakpenalty#1{\ltjgetparameter{postbreakpenalty}{#1}} \else - \newcommand*{\jlreq@getpostbreakpenalty}[1]{\postbreakpenalty#1} + \def\jlreq@getpostbreakpenalty#1{\postbreakpenalty#1} \fi % 現在行の残りを得る. \ifx l\jlreq@engine % 以下のコードはLuaTeX-jaのバグ?に依存している % https://ja.osdn.net/projects/luatex-ja/ticket/36489 - \newcommand*{\jlreq@calc@current@linewidth@onecolumn}{% + \def\jlreq@calc@current@linewidth@onecolumn{% \dimexpr \jlreq@reference@ref{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{0} sp - \@totalleftmargin - \ifodd\jlreq@currentpage @@ -501,7 +471,7 @@ }{ \def\jlreq@tombow@adjust{\iftombow -1truein \fi} } - \newcommand*{\jlreq@calc@current@linewidth@onecolumn}{% + \def\jlreq@calc@current@linewidth@onecolumn{% \dimexpr \jlreq@ifydir{% \jlreq@reference@ref{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{0} sp - \hoffset @@ -524,7 +494,7 @@ \relax } \fi -\newcommand*{\jlreq@calc@current@linewidth}{% +\def\jlreq@calc@current@linewidth{% \dimexpr\jlreq@calc@current@linewidth@onecolumn \if@twocolumn \ifdim\jlreq@calc@current@linewidth@onecolumn<\dimexpr\linewidth+\columnsep\relax\else @@ -569,26 +539,26 @@ % #1と#2の間に入るjmglue((x)kanjiskipも)を\jlreq@resultskipに入れる \ifx l\jlreq@engine - \newcommand*{\jlreq@calc@jfmglue}[2]{% + \def\jlreq@calc@jfmglue#1#2{% \begingroup \setbox\jlreq@tempboxa=\hbox{\inhibitglue #1\inhibitglue\hbox{}\inhibitglue#2\inhibitglue}% \setbox\jlreq@tempboxb=\hbox{\inhibitglue #1#2\inhibitglue}% \edef\jlreq@do{\noexpand\jlreq@resultskip=\the\dimexpr\wd\jlreq@tempboxb - \wd\jlreq@tempboxa\relax\noexpand\relax}% \jlreq@do \directlua{ - local width = 0 - local stretch = 0 - local shrink = 0 - local n = tex.box["jlreq@tempboxb"].head - while n do + local~width = 0~ + local~stretch = 0~ + local~shrink = 0~ + local~n = tex.box["jlreq@tempboxb"].head~ + while~n~do~ % すべてのglueの和を計算する. - if n.id == node.id("glue") then - width = width + n.width - stretch = stretch + n.stretch - shrink = shrink + n.shrink - end - n = n.next - end + if~n.id == node.id("glue")~then~ + width = width + n.width~ + stretch = stretch + n.stretch~ + shrink = shrink + n.shrink~ + end~ + n = n.next~ + end~ tex.setglue("jlreq@tempskipa",width,stretch,shrink) }% % TeXで計測した物と一致していなければTeXでの方を信じる @@ -599,7 +569,7 @@ \jlreq@do } \else - \newcommand*{\jlreq@calc@jfmglue}[2]{% + \def\jlreq@calc@jfmglue#1#2{% \begingroup \setbox\jlreq@tempboxa=\hbox{\inhibitglue #1\inhibitglue\hbox{}\inhibitglue#2\inhibitglue}% \setbox\jlreq@tempboxb=\hbox{\inhibitglue #1#2\inhibitglue}% @@ -612,7 +582,7 @@ \newcount\jlreq@lastnodechar % \jlreq@fixjfm<次の文字>の形で使う. % jlreq@lastnodecharに入っている値と次のトークン(\futureletで得る)の間に入るJFMグルー等を挿入する -\newcommand*{\jlreq@fixjfm}{% +\def\jlreq@fixjfm{% \begingroup \ifnum\jlreq@lastnodechar>-1 \def\jlreq@do{\futurelet\jlreq@nextchar\jlreq@insertjfm}% @@ -639,8 +609,8 @@ } \ifx l\jlreq@engine - \newcommand*{\jlreq@divide}[2]{% - \jlreq@resultdimen=\directlua{tex.print(tostring(\strip@pt\dimexpr #1\relax/\strip@pt\dimexpr #2\relax) .. "pt ")}% + \def\jlreq@divide#1#2{% + \jlreq@resultdimen=\directlua{tex.print(tostring(\strip@pt\dimexpr #1\relax/\strip@pt\dimexpr #2\relax) .. "pt~")}% } \else \let\jlreq@divide=\jlreq@helper@divide @@ -651,11 +621,11 @@ \def\@ptsize{0} %.. (x)kanjiskip \ifjlreq@narrow@kanjiskip - \providecommand*{\jlreqkanjiskip}{0pt plus .1\jlreq@zw minus .01\jlreq@zw} + \providecommand*{\jlreqkanjiskip}{0pt~plus~.1\jlreq@zw ~minus~.01\jlreq@zw} \else - \providecommand*{\jlreqkanjiskip}{0pt plus 0.25\jlreq@zw minus 0pt} + \providecommand*{\jlreqkanjiskip}{0pt~plus~0.25\jlreq@zw ~minus~0pt} \fi -\providecommand*{\jlreqxkanjiskip}{0.25\jlreq@zw plus 0.25\jlreq@zw minus 0.125\jlreq@zw} +\providecommand*{\jlreqxkanjiskip}{0.25\jlreq@zw ~plus~0.25\jlreq@zw ~minus~0.125\jlreq@zw} \jlreq@if{\ifx l\jlreq@engine\fi}{ \AtBeginDocument{% \ltjsetparameter{kanjiskip=\jlreqkanjiskip}% @@ -675,10 +645,10 @@ % Q,zw,zhが正しく扱われるようになる.\dimexprつきに展開される. \def\jlreq@expand@optionfontsize#1{% \dimexpr\directlua{ - local act = string.char(92) - local s = [[#1]] - s = s:gsub("[QH]",act .. "dimexpr 0.25mm" .. act .. "relax") - tex.print(s) + local~act = string.char(92)~ + local~s = [[#1]]~ + s = s:gsub("[QH]",act .. "dimexpr 0.25mm" .. act .. "relax")~ + tex.print(s)~ }\relax }% \else @@ -705,13 +675,11 @@ % 行頭の括弧は \jlreq@open@bracket@before@space \inhibitglue 「みたいにする. -\ExplSyntaxOn \str_if_eq:VnTF \jlreq@open@bracket@pos { zenkakunibu_nibu } { \def\jlreq@open@bracket@before@space{\hskip\glueexpr-.5\jlreq@zw\relax} }{ \def\jlreq@open@bracket@before@space{} } -\ExplSyntaxOff \ifx p\jlreq@engine \def\jlreq@yokokanjiencoding{JY1} @@ -730,8 +698,7 @@ \jlreq@aftercls@addtodeletecs{\jlreq@jafontscale} \ifx l\jlreq@engine \jlreq@saveoriginalcs{DeclareFontShape} - \ExplSyntaxOn - \def\DeclareFontShape#1#2#3#4#5#6{ + \def\DeclareFontShape#1#2#3#4#5#6{ \group_begin: \bool_if:nT { \str_if_eq_p:nn {#1} {JY3} || \str_if_eq_p:nn {#1} {JT3} } { \tl_set:Nx \l_jlreq_tmpa_tl {#5} @@ -754,11 +721,10 @@ \exp_after:wN \group_end: \l_jlreq_do: \jlreq@useoriginalcs{DeclareFontShape} {#1} {#2} {#3} {#4} {#5} {#6} } - \ExplSyntaxOff - \DeclareFontShape{JY3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont:jfm=jlreq;script=latn;-kern}{} - \DeclareFontShape{JY3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont:jfm=jlreq;script=latn;-kern}{} - \DeclareFontShape{JT3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont:jfm=jlreqv;script=latn;-kern}{} - \DeclareFontShape{JT3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont:jfm=jlreqv;script=latn;-kern}{} + \DeclareFontShape{JY3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont :jfm=jlreq;script=latn;-kern}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont :jfm=jlreq;script=latn;-kern}{} + \DeclareFontShape{JT3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont :jfm=jlreqv;script=latn;-kern}{} + \DeclareFontShape{JT3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont :jfm=jlreqv;script=latn;-kern}{} \else \DeclareFontShape{\jlreq@yokokanjiencoding}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmname}{} \DeclareFontShape{\jlreq@yokokanjiencoding}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmnameg}{} @@ -770,7 +736,6 @@ \DeclareFontShape{\jlreq@tatekanjiencoding}{mc}{m}{n-jidori}{<->s*[\jlreq@jafontscale]\jlreq@tempa jlreq-v-jidori}{} \DeclareFontShape{\jlreq@tatekanjiencoding}{gt}{m}{n-jidori}{<->s*[\jlreq@jafontscale]\jlreq@tempa jlreqg-v-jidori}{} \fi -\ExplSyntaxOn \clist_set:NV \l_jlreq_tmpa_clist \jlreq@yokokanjiencoding \clist_push:NV \l_jlreq_tmpa_clist \jlreq@tatekanjiencoding \clist_map_inline:Nn \l_jlreq_tmpa_clist {% #1 = encoding @@ -790,7 +755,6 @@ } } } -\ExplSyntaxOff %.. 文字クラスのリスト % 開き括弧(文字クラス1) @@ -823,20 +787,18 @@ \edef\jlreq@charlist@katakana{アイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラリルレロワヰヱヲンヴ\ifx p\jlreq@engine\else ヷヸヹヺ\fi}% カ゚キ゚ク゚ケ゚コ゚セ゚ツ゚ト゚ %.. 行頭括弧調整 -\AtBeginDocument{\PushPostHook{par}{\jlreq@hook@everypar}} -\def\jlreq@hook@everypar{} \jlreq@saveoriginalcs{item} -\ExplSyntaxOn \ifx l\jlreq@engine % \itemの直後は折り返し行頭と同じにする. + \cs_set:Nn \__jlreq_hook_everypar: {} \def\item{% - \def\jlreq@hook@everypar{% - \def\jlreq@hook@everypar{}% - \inhibitglue - }% \jlreq@useoriginalcs{item}% + \cs_set:Nn \__jlreq_hook_everypar: { \cs_set:Nn \__jlreq_hook_everypar: {} \inhibitglue } + \expandafter\everypar\expandafter{\the\everypar\__jlreq_hook_everypar:} } \else + \AtBeginDocument{\PushPostHook{par}{\jlreq@hook@everypar}} + \def\jlreq@hook@everypar{} % 非LuaTeXの場合はJFMの入れ替えと\everyparでの処理で対処. % 行頭括弧に対して\inhibitglueを入れたりする命令を作る % \jlreq@charlist@openingbracketsの各括弧に対して,\ifx\jlreq@nextchar 「1\fiみたいなのが並んだのを作る @@ -845,9 +807,9 @@ \expandafter\jlreq@do\jlreq@charlist@openingbrackets\jlreq@endmark % JFM glueの伸び縮みで行頭括弧が揃わないのを防ぐために常に\inhibitglueを入れる. \str_if_eq:VnTF \jlreq@open@bracket@pos { nibu_tentsuki } { - \edef\jlreq@openbracket@hook@ii{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0 \unexpanded{\hskip -.5\jlreq@zw\inhibitglue}\noexpand\fi} + \edef\jlreq@openbracket@hook@ii{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0~\unexpanded{\hskip -.5\jlreq@zw\inhibitglue}\noexpand\fi} }{% zenkakunibu_nibu,zenkaku_tentsuki - \edef\jlreq@openbracket@hook@ii{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0 \unexpanded{\inhibitglue}\noexpand\fi} + \edef\jlreq@openbracket@hook@ii{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0~\unexpanded{\inhibitglue}\noexpand\fi} } % source special対策 \def\jlreq@openbracket@hook@i{\ifx\jlreq@nextchar\special\expandafter\jlreq@openbracket@hook@iii\else\expandafter\jlreq@openbracket@hook@ii\fi} @@ -862,13 +824,12 @@ \jlreq@useoriginalcs{item}% } \fi -\ExplSyntaxOff %.. 禁則処理 \ifx l\jlreq@engine - \newcommand*{\jlreq@setpostbreakpenalty@}[2]{\ltjsetparameter{postbreakpenalty={`#1,#2}}} - \newcommand*{\jlreq@setprebreakpenalty@}[2]{\ltjsetparameter{prebreakpenalty={`#1,#2}}} - \newcommand*{\jlreq@addjaxspmode@}[2]{% + \def\jlreq@setpostbreakpenalty@#1#2{\ltjsetparameter{postbreakpenalty={`#1,#2}}} + \def\jlreq@setprebreakpenalty@#1#2{\ltjsetparameter{prebreakpenalty={`#1,#2}}} + \def\jlreq@addjaxspmode@#1#2{% \jlreq@tempcnta=\ltjgetparameter{jaxspmode}{`#1}% \jlreq@switch{#2}{ {pre}{% @@ -887,7 +848,7 @@ } }% } - \newcommand*{\jlreq@deljaxspmode@}[2]{% + \def\jlreq@deljaxspmode@#1#2{% \jlreq@tempcnta=\ltjgetparameter{jaxspmode}{`#1}% \jlreq@switch{#2}{ {pre}{% @@ -907,9 +868,9 @@ }% } \else - \newcommand*{\jlreq@setpostbreakpenalty@}[2]{\postbreakpenalty`#1=#2} - \newcommand*{\jlreq@setprebreakpenalty@}[2]{\prebreakpenalty`#1=#2} - \newcommand*{\jlreq@addjaxspmode@}[2]{% + \def\jlreq@setpostbreakpenalty@#1#2{\postbreakpenalty`#1=#2} + \def\jlreq@setprebreakpenalty@#1#2{\prebreakpenalty`#1=#2} + \def\jlreq@addjaxspmode@#1#2{% \jlreq@tempcnta=\inhibitxspcode`#1 \jlreq@switch{#2}{ {pre}{% @@ -928,7 +889,7 @@ } }% } - \newcommand*{\jlreq@deljaxspmode@}[2]{% + \def\jlreq@deljaxspmode@#1#2{% \jlreq@tempcnta=\inhibitxspcode`#1 \jlreq@switch{#2}{ {pre}{% @@ -949,84 +910,93 @@ } \fi % #1{...}{#3}を...が#2のリストに対して適用. -\newcommand*\jlreq@iterateapply[3]{% - \edef\jlreq@tempa{#2}% - \expandafter\@tfor\expandafter\@tempa\expandafter:\expandafter=\jlreq@tempa\do{% - \expandafter#1\expandafter{\@tempa}{#3}% - }% +\cs_set:Nn \__jlreq_iterateapply:nnn { + \tl_map_inline:nn {#2} { + #1{##1}{#3} + } } -\def\jlreq@setpostbreakpenalty{\jlreq@iterateapply{\jlreq@setpostbreakpenalty@}} -\def\jlreq@setprebreakpenalty{\jlreq@iterateapply{\jlreq@setprebreakpenalty@}} -\def\jlreq@addjaxspmode{\jlreq@iterateapply{\jlreq@addjaxspmode@}} -\def\jlreq@deljaxspmode{\jlreq@iterateapply{\jlreq@deljaxspmode@}} - -\jlreq@aftercls@addtodeletecs{\jlreq@iterateapply} -\jlreq@aftercls@addtodeletecs{\jlreq@setpostbreakpenalty} +\cs_set:Nn \__jlreq_setpostbreakpenalty:nn { \__jlreq_iterateapply:nnn {\jlreq@setpostbreakpenalty@} {#1} {#2}} +\cs_generate_variant:Nn \__jlreq_setpostbreakpenalty:nn { Vn } +\cs_set:Nn \__jlreq_setprebreakpenalty:nn { \__jlreq_iterateapply:nnn {\jlreq@setprebreakpenalty@} {#1} {#2} } +\cs_generate_variant:Nn \__jlreq_setprebreakpenalty:nn { Vn } +\cs_set:Nn \__jlreq_addjaxspmode:nn {\__jlreq_iterateapply:nnn {\jlreq@addjaxspmode@} {#1} {#2} } +\cs_generate_variant:Nn \__jlreq_addjaxspmode:nn { Vn } +\cs_set:Nn \__jlreq_deljaxspmode:nn { \__jlreq_iterateapply:nnn{\jlreq@deljaxspmode@} {#1} {#2} } +\cs_generate_variant:Nn \__jlreq_deljaxspmode:nn { Vn } + +\jlreq@aftercls@addtodeletecs{\__jlreq_iterateapply:nnn} +\jlreq@aftercls@addtodeletecs{\__jlreq_setpostbreakpenalty:nn} +\jlreq@aftercls@addtodeletecs{\__jlreq_setpostbreakpenalty:Vn} \jlreq@aftercls@addtodeletecs{\jlreq@setpostbreakpenalty@} -\jlreq@aftercls@addtodeletecs{\jlreq@setprebreakpenalty} +\jlreq@aftercls@addtodeletecs{\__jlreq_setprebreakpenalty:nn} +\jlreq@aftercls@addtodeletecs{\__jlreq_setprebreakpenalty:Vn} \jlreq@aftercls@addtodeletecs{\jlreq@setprebreakpenalty@} -\jlreq@aftercls@addtodeletecs{\jlreq@addjaxspmode} +\jlreq@aftercls@addtodeletecs{\__jlreq_addjaxspmode:nn} +\jlreq@aftercls@addtodeletecs{\__jlreq_addjaxspmode:Vn} \jlreq@aftercls@addtodeletecs{\jlreq@addjaxspmode@} -\jlreq@aftercls@addtodeletecs{\jlreq@deljaxspmode} +\jlreq@aftercls@addtodeletecs{\__jlreq_deljaxspmode:nn} +\jlreq@aftercls@addtodeletecs{\__jlreq_deljaxspmode:Vn} \jlreq@aftercls@addtodeletecs{\jlreq@deljaxspmode@} % 行末禁則 -\jlreq@setpostbreakpenalty{\jlreq@charlist@openingbrackets}{10000} -\jlreq@setpostbreakpenalty{\jlreq@charlist@prefixedabbreviations}{10000} +\__jlreq_setpostbreakpenalty:Vn \jlreq@charlist@openingbrackets {10000} +\__jlreq_setpostbreakpenalty:Vn \jlreq@charlist@prefixedabbreviations {10000} % 行頭禁則 -\jlreq@setprebreakpenalty{\jlreq@charlist@closingbrackets}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@hyphens}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@dividingpunctuationmarks}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@middlenodes}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@fullstops}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@commas}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@iterationmarks}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@prolongedsoundmark}{10000} -\jlreq@setprebreakpenalty{\jlreq@charlist@smallkana}{10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@closingbrackets {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@hyphens {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@dividingpunctuationmarks {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@middlenodes {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@fullstops {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@commas {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@iterationmarks {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@prolongedsoundmark {10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@smallkana {10000} % xkanjiskip -\jlreq@addjaxspmode{\jlreq@charlist@iterationmarks}{pre} -\jlreq@addjaxspmode{\jlreq@charlist@iterationmarks}{post} -\jlreq@addjaxspmode{\jlreq@charlist@prolongedsoundmark}{pre} -\jlreq@addjaxspmode{\jlreq@charlist@prolongedsoundmark}{post} -\jlreq@addjaxspmode{\jlreq@charlist@smallkana}{pre} -\jlreq@addjaxspmode{\jlreq@charlist@smallkana}{post} -\jlreq@addjaxspmode{\jlreq@charlist@hiragana}{pre} -\jlreq@addjaxspmode{\jlreq@charlist@hiragana}{post} -\jlreq@addjaxspmode{\jlreq@charlist@katakana}{pre} -\jlreq@addjaxspmode{\jlreq@charlist@katakana}{post} -\jlreq@addjaxspmode{\jlreq@charlist@dividingpunctuationmarks}{post} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@iterationmarks {pre} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@iterationmarks {post} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@prolongedsoundmark {pre} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@prolongedsoundmark {post} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@smallkana {pre} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@smallkana {post} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@hiragana {pre} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@hiragana {post} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@katakana {pre} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@katakana {post} +\__jlreq_addjaxspmode:Vn \jlreq@charlist@dividingpunctuationmarks {post} % 分割禁止(分離禁止文字は特定の並びで分割禁止だが,とりあえず一括で禁止しておく.) -\jlreq@setprebreakpenalty{\jlreq@charlist@inseparablecharacters}{10000} +\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@inseparablecharacters {10000} % ¥100とか70%とか…… %.. 文字範囲 \ifx u\jlreq@engine % \kcatcodeの設定 - \def\jlreq@setkcatcode#1#2{\@for\@tempa:=#1\do{\kcatcode"\@tempa=#2\relax}} - \jlreq@aftercls@addtodeletecs{\jlreq@setkcatcode} + \cs_set:Nn \__jlreq_setkcatcode:nn { + \clist_map_inline:nn {#1} { \kcatcode"##1=#2\relax } + } + \jlreq@aftercls@addtodeletecs{\__jlreq_setkcatcode:nn} % LuaTeX-jaのデフォルトのままに近い設定をする % 範囲1&8 - \jlreq@setkcatcode{80}{15} % Latin-1 Supplement,どうしよう…… - \jlreq@setkcatcode{100,180,250,2B0,300,1E00}{15} + \__jlreq_setkcatcode:nn {80} {15} % Latin-1 Supplement,どうしよう…… + \__jlreq_setkcatcode:nn {100,180,250,2B0,300,1E00} {15} % 範囲2 - \jlreq@setkcatcode{370,400,1F00}{18} + \__jlreq_setkcatcode:nn {370,400,1F00} {18} % 範囲3 - \jlreq@setkcatcode{2000,2070,20A0,20D0,2100,2150,2190,2200,2300,2400,2500,2580,25A0,2600,2700,2900,2980,2B00}{18} + \__jlreq_setkcatcode:nn {2000,2070,20A0,20D0,2100,2150,2190,2200,2300,2400,2500,2580,25A0,2600,2700,2900,2980,2B00} {18} % 範囲4 - \jlreq@setkcatcode{500,530,590,600,700,750,780,7C0,800,840,8A0,900,980,A00,A80,B00,B80,C00,C80,D00,D80,E00,E80,F00,1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1C80,1CC0,1CD0,1D00,1D80,1DC0,2400,2440,27C0,27F0,2800,2A00,2C00,4DC0,A4D0,A500,A640,A6A0,A700,A720,A800,A840,A880,A8E0,A900,A930,A960,A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,FB00,FB50,FE00,FE20,FE70,10000,10080,10100,10140,10190,101D0,10280,102A0,102E0,10300,10330,10350,10380,103A0,10400,10450,10480,104B0,10500,10530,10600,10800,10840,10860,10880,108E0,10900,10920,10980,109A0,10A00,10A60,10A80,10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,11000,11080,110D0,11100,11150,11180,111E0,11200,11280,112B0,11300,11400,11480,11580,11600,11660,11680,11700,118A0,11AC0,11C00,11C70,12000,12400,12480,13000,14400,16800,16A40,16AD0,16B00,16F00,16FE0,17000,18800,1B000,1BC00,1BCA0,1D000,1D100,1D200,1D300,1D360,1D400,1D800,1E000,1E800,1E900,1EE00,1F000,1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,1F700,1F780,1F800,1F900,E000}{15} + \__jlreq_setkcatcode:nn {500,530,590,600,700,750,780,7C0,800,840,8A0,900,980,A00,A80,B00,B80,C00,C80,D00,D80,E00,E80,F00,1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1C80,1CC0,1CD0,1D00,1D80,1DC0,2400,2440,27C0,27F0,2800,2A00,2C00,4DC0,A4D0,A500,A640,A6A0,A700,A720,A800,A840,A880,A8E0,A900,A930,A960,A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,FB00,FB50,FE00,FE20,FE70,10000,10080,10100,10140,10190,101D0,10280,102A0,102E0,10300,10330,10350,10380,103A0,10400,10450,10480,104B0,10500,10530,10600,10800,10840,10860,10880,108E0,10900,10920,10980,109A0,10A00,10A60,10A80,10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,11000,11080,110D0,11100,11150,11180,111E0,11200,11280,112B0,11300,11400,11480,11580,11600,11660,11680,11700,118A0,11AC0,11C00,11C70,12000,12400,12480,13000,14400,16800,16A40,16AD0,16B00,16F00,16FE0,17000,18800,1B000,1BC00,1BCA0,1D000,1D100,1D200,1D300,1D360,1D400,1D800,1E000,1E800,1E900,1EE00,1F000,1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,1F700,1F780,1F800,1F900,E000} {15} % 範囲5(Variation Selectors SupplementはLuaTeX-jaではE01F0--E01EFまで範囲5,他は範囲6) - \jlreq@setkcatcode{D800,DB80,DC00,E0000,F0000,100000}{15} + \__jlreq_setkcatcode:nn {D800,DB80,DC00,E0000,F0000,100000} {15} % 範囲6 - \jlreq@setkcatcode{3040,30A0,31F0}{17} % Hiragana,Katakana,Katakana Phonetic Extensions - \jlreq@setkcatcode{2460,3000,3200,3300,FE10,FE30,FE50,E0100}{18} % Enclosed Alphanumerics,CJK Symbols and Punctuation,Enclosed CJK Letters and Months,CJK Compatibility,Vertical Forms,CJK Compatibility Forms,Small Form Variants,Variation Selectors Supplement - \jlreq@setkcatcode{2E80,3190,3400,4E00,F900,20000}{16} + \__jlreq_setkcatcode:nn {3040,30A0,31F0} {17} % Hiragana,Katakana,Katakana Phonetic Extensions + \__jlreq_setkcatcode:nn {2460,3000,3200,3300,FE10,FE30,FE50,E0100} {18} % Enclosed Alphanumerics,CJK Symbols and Punctuation,Enclosed CJK Letters and Months,CJK Compatibility,Vertical Forms,CJK Compatibility Forms,Small Form Variants,Variation Selectors Supplement + \__jlreq_setkcatcode:nn {2E80,3190,3400,4E00,F900,20000} {16} % 範囲7 - \jlreq@setkcatcode{A000,A490}{18} % Yi Syllables,Yi Radicals - \jlreq@setkcatcode{1100,3130,AC00,D7B0}{19} % Hangul Jamo,Hangul Compatibility Jamo,Hangul Syllables,Hangul Jamo Extended-B - \jlreq@setkcatcode{2F00,2FF0,3100,31A0,31C0,A830}{16} + \__jlreq_setkcatcode:nn {A000,A490} {18} % Yi Syllables,Yi Radicals + \__jlreq_setkcatcode:nn {1100,3130,AC00,D7B0} {19} % Hangul Jamo,Hangul Compatibility Jamo,Hangul Syllables,Hangul Jamo Extended-B + \__jlreq_setkcatcode:nn {2F00,2FF0,3100,31A0,31C0,A830} {16} \fi %.. フォント @@ -1042,7 +1012,7 @@ \DeclareOldFontCommand{\jlreq@oldfontcommand@it}{\normalfont\itshape}{\mathit} \DeclareOldFontCommand{\jlreq@oldfontcommand@sl}{\normalfont\slshape}{\@nomath\sl} \DeclareOldFontCommand{\jlreq@oldfontcommand@sc}{\normalfont\scshape}{\@nomath\sc} -\newcommand*{\jlreq@oldfontcommand@enable}{% +\def\jlreq@oldfontcommand@enable{% \let\mc=\jlreq@oldfontcommand@mc \let\gt=\jlreq@oldfontcommand@gt \let\rm=\jlreq@oldfontcommand@rm @@ -1053,7 +1023,7 @@ \let\sl=\jlreq@oldfontcommand@sl \let\sc=\jlreq@oldfontcommand@sc } -\newcommand*{\jlreq@oldfontcommand@disable}{% +\def\jlreq@oldfontcommand@disable{% \let\mc=\@undefined \let\gt=\@undefined \let\rm=\@undefined @@ -1096,9 +1066,9 @@ } \expandafter\def\expandafter\jlreq@zenkakuspace@ignorespaces@\space{\ } \def\jlreq@tempa{} -\def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\appto\jlreq@tempa{\ifnum\lastnodechar=`#1 1\fi}\jlreq@do}} +\def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\appto\jlreq@tempa{\ifnum\lastnodechar=`#1~1\fi}\jlreq@do}} \expandafter\jlreq@do\jlreq@charlist@dividingpunctuationmarks\jlreq@endmark -\edef\@tempa{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0 } +\edef\@tempa{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0~} \expandafter\DeclareRobustCommand\expandafter*\expandafter\jlreq@zenkakuspace@main\expandafter{\@tempa \hskip 1\jlreq@zw\hbox{}% \jlreq@lastnodechar=` @@ -1114,9 +1084,9 @@ \fi % \jaspace -\DeclareRobustCommand*{\jaspace}[1]{% +\NewDocumentCommand{\jaspace}{ m } { \ifcsname jlreq@jaspace@#1\endcsname\csname jlreq@jaspace@#1\endcsname - \else\ClassError{jlreq}{unknown jaspace: #1}{\@ehc}\fi + \else\ClassError{jlreq}{unknown~jaspace:~#1}{\@ehc}\fi } \def\jlreq@jaspace@zenkaku{\hskip\glueexpr 1\jlreq@zw\relax} \def\jlreq@jaspace@nibu{\hskip\glueexpr .5\jlreq@zw\relax} @@ -1128,7 +1098,7 @@ \def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\appto\jlreq@tempa{\ifx\jlreq@nextchar #11\fi}\jlreq@do}} \expandafter\jlreq@do\jlreq@charlist@closingbrackets\jlreq@endmark \edef\jlreq@dividingpunctuationmarkscommand{% - \noexpand\ifnum 0\expandonce{\jlreq@tempa}>0 \unexpanded{\expandafter\ignorespaces\else\expandafter\ \fi}% + \noexpand\ifnum 0\expandonce{\jlreq@tempa}>0~\unexpanded{\expandafter\ignorespaces\else\expandafter\ \fi}% } \def\jlreq@do#1{% \jlreq@ifendmark{#1}{}{ @@ -1151,30 +1121,28 @@ \ifx l\jlreq@engine \setlength{\jlreq@baselineskip}{% \dimexpr\directlua{ - local act = string.char(92) - local s = [[\jlreq@option@baselineskip]] - s = s:gsub("[QH]",act .. "dimexpr 0.25mm" .. act .. "relax"):gsub("zh",act .. "zh"):gsub("zw",act .. "zw") - tex.print(s) + local~act = string.char(92)~ + local~s = [[\jlreq@option@baselineskip]]~ + s = s:gsub("[QH]",act .. "dimexpr 0.25mm" .. act .. "relax"):gsub("zh",act .. "zh"):gsub("zw",act .. "zw")~ + tex.print(s)~ }\relax }% \else \setlength{\jlreq@baselineskip}{\dimexpr\jlreq@option@baselineskip\relax} \fi \ifdim\jlreq@fontsize>\jlreq@baselineskip - \ClassError{jlreq}{The baselineskip is less than fontsize}{\@ehc}% + \ClassError{jlreq}{The~baselineskip~is~less~than~fontsize}{\@ehc}% \fi -\ExplSyntaxOn \bool_if:nT { \dim_compare_p:n { \jlreq@baselineskip < 1.5\zw } || \dim_compare_p:n { \jlreq@baselineskip > 2\zw } } { \jlreq@note { 行間は二分以上全角以下が望ましい (2.4.2.d~注3).} } -\ExplSyntaxOff \emergencystretch 3\jlreq@gol \setlength{\parindent}{1\zw} \def\jlreq@setfontsizehook{} \jlreq@saveoriginalcs{set@fontsize} \apptocmd{\set@fontsize}{\expandafter\def\expandafter\size@update\expandafter{\size@update\jlreq@setfontsizehook}}{}{} -\appto\jlreq@setfontsizehook{\ifdim\parindent>0pt \setlength{\parindent}{1\jlreq@zw}\fi} +\appto\jlreq@setfontsizehook{ \dim_compare:nT { \parindent>0pt } { \setlength{\parindent}{1\jlreq@zw} } } \ifx l\jlreq@engine \@tempskipa=\ltjgetparameter{kanjiskip} \ifdim\@tempskipa=\maxdimen\else @@ -1201,7 +1169,7 @@ \let\jafontsize=\fontsize \else \def\@tempa#1{ - \DeclareRobustCommand*{\jafontsize}[2]{% + \NewDocumentCommand{\jafontsize}{ m m }{% \begingroup \jlreq@iffloat{##1}{% \edef\jlreq@do{\noexpand\fontsize{\strip@pt\dimexpr#1\dimexpr##1pt\relax\relax}}% @@ -1270,7 +1238,7 @@ \setlength{\parskip}{0pt} % https://github.com/texjporg/jsclasses/issues/14 \renewcommand*{\flushbottom}{% - \def\@textbottom{\vskip 0pt plus 0.1pt}% + \def\@textbottom{\vskip 0pt~plus~0.1pt}% \let\@texttop\relax } \@lowpenalty 51 @@ -1309,10 +1277,10 @@ \def\jlreq@expand@speciallength#1{% % zhやzwを\zhや\zwにする. \directlua{ - local act = string.char(92) - local s = [[#1]] - s = s:gsub("zw",act .. "zw"):gsub("zh",act .. "zh") - tex.print(s) + local~act = string.char(92)~ + local~s = [[#1]]~ + s = s:gsub("zw",act .. "zw"):gsub("zh",act .. "zh")~ + tex.print(s)~ }% } \else @@ -1516,7 +1484,7 @@ \jlreq@setsidemargin@by@gutter{\jlreq@speciallength{\jlreq@option@gutter}} \ifx\jlreq@option@fore@edge\@empty\else \ifjlreq@determine@kihonhanmen@warning@first - \ClassWarningNoLine{jlreq}{fore-edge is ignored} + \ClassWarningNoLine{jlreq}{fore-edge~is~ignored} \fi \fi \fi @@ -1575,12 +1543,12 @@ \if@tate \jlreq@settopmarginbyfoot{\jlreq@speciallength{\jlreq@option@foot@space}} \ifx\jlreq@option@line@length\@empty\else - \ClassWarningNoLine{jlreq}{head_space is ignored} + \ClassWarningNoLine{jlreq}{head_space~is~ignored} \fi \else \jlreq@settopmarginbyhead{\jlreq@speciallength{\jlreq@option@head@space}} \ifx\jlreq@option@number@of@lines\@empty\else - \ClassWarningNoLine{jlreq}{foot_space is ignored} + \ClassWarningNoLine{jlreq}{foot_space~is~ignored} \fi \fi \fi @@ -1605,7 +1573,7 @@ %. 見出し関係 (4.1) % \clear***page -\newcommand*{\cleartooddpage}[1][]{% +\NewDocumentCommand{\cleartooddpage}{ O{} }{ \clearpage \ifodd\c@page\else \jlreq@ifempty{#1}{}{\thispagestyle{#1}}% @@ -1614,7 +1582,7 @@ \if@twocolumn\hbox{}\newpage\fi \fi } -\newcommand*{\cleartoevenpage}[1][]{% +\NewDocumentCommand{\cleartoevenpage}{ O{} }{ \clearpage \ifodd\c@page \jlreq@ifempty{#1}{}{\thispagestyle{#1}}% @@ -1635,7 +1603,7 @@ % 見出しの直前に実行される \NewHook{./heading/before} % 見出し名一覧を格納する -\def\jlreq@heading@allheadings{} +\seq_new:N \l__jlreq_heading_allheadings_seq % 目次を出力する命令\l@<命令名>を作る命令を作る.{1 = 命令名}{2 = レベル}{3 = ラベルのフォーマット} % 結果は\jlreq@resultに入る. \def\jlreq@heading@make@l@#1#2#3{% @@ -1687,11 +1655,10 @@ %.. 中/半扉見出し % addcontentslineに渡すやつ:番号出すのと出さないの -\newcommand{\DeclareTobiraHeading}[3]{% - \IfHookExistsTF{jlreq/heading/before/#1}{}{\NewHook{./heading/before/#1}}% - \def\jlreq@do{\@removeelement{#1}}% - \expandafter\jlreq@do\expandafter{\jlreq@heading@allheadings}{\jlreq@heading@allheadings}% - \appto{\jlreq@heading@allheadings}{,#1}% +\NewDocumentCommand{\DeclareTobiraHeading}{ m m +m } { + \ProvideHook{jlreq/heading/before/#1} + \seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1} + \seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}% \expandafter\edef\csname jlreq@heading@setting@#1\endcsname{\unexpanded{#3}}% \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewTobiraHeading}% @@ -1702,21 +1669,18 @@ \let\jlreq@contents@label@format=\@undefined \let\jlreq@format=\@undefined \edef\jlreq@label@format{\expandonce{\csname the#1\endcsname}}% - \def\jlreq@heading@clearpage{\clearpage\hbox{}\clearpage}% - \def\jlreq@pagestyle{empty}% - \newif\ifjlreq@number \jlreq@numbertrue - \jlreq@parsekeyval[DeclareTobiraHeading:#1]{ - {label_format}{\def\jlreq@label@format{##1}} - {format}{\def\jlreq@format####1####2{##1}} - {pagestyle}{\def\jlreq@pagestyle{##1}} - {type}[han,naka]{% - \jlreq@switch{##1}{ - {han}{\def\jlreq@heading@clearpage{\clearpage}} - {naka}{\def\jlreq@heading@clearpage{\clearpage\hbox{}\clearpage}} - }% - } - {number}[true,false]{\csname jlreq@number##1\endcsname} - }{#3}% + \newif\ifjlreq@number + \keys_define:nn { DeclareTobiraHeading:#1 } { + label_format .tl_set:N = \jlreq@label@format, + format .code:n = {\def\jlreq@format####1####2{##1}}, + pagestyle .tl_set:N = \jlreq@pagestyle, + type .choice:, + type / han .code:n = { \def\jlreq@heading@clearpage{\clearpage} }, + type / naka .code:n = { \def\jlreq@heading@clearpage{\clearpage\hbox{}\thispagestyle{empty}\clearpage} }, + number .choices:nn = {true,false} { \csname jlreq@number ##1 \endcsname } + } + \keys_set:nn { DeclareTobiraHeading:#1 } { type = naka, pagestyle = empty, number = true} + \keys_set:nn { DeclareTobiraHeading:#1 } {#3} \def\jlreq@do{}% \ifx\jlreq@format\@undefined \def\jlreq@format##1##2{##1##2}% @@ -1780,13 +1744,13 @@ \jlreq@do } -\newcommand{\NewTobiraHeading}[3]{% +\NewDocumentCommand{\NewTobiraHeading}{ m m +m }{% \expandafter\@ifdefinable\csname #1\endcsname{\DeclareTobiraHeading{#1}{#2}{#3}}% } -\newcommand{\RenewTobiraHeading}[3]{% +\NewDocumentCommand{\RenewTobiraHeading}{ m m +m }{% \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareTobiraHeading{#1}{#2}{#3}}% } -\newcommand{\ProvideTobiraHeading}[3]{% +\NewDocumentCommand{\ProvideTobiraHeading}{ m m +m }{% \@ifundefined{#1}{\DeclareTobiraHeading{#1}{#2}{#3}}{}% } @@ -1803,7 +1767,7 @@ % 見出し全体のフォーマット内では#1=ラベル,#2=見出し文字列,#3=副題,それぞれ各々のフォーマットに基づき整形される. % ラベルフォーマットでは#1=カウンタ名,見出し文字列フォーマットでは#1=見出し文字列,副題フォーマットでは#1=副題 % ラベルのみのフォーマットは目次に使われる. -\newcommand{\jlreq@BlockHeading@start}[6]{% +\long\def\jlreq@BlockHeading@start#1#2#3#4#5#6{% \if@noskipsec\leavevmode\fi % #5と#6は\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる) \edef\jlreq@BlockHeading@start@eachformat{\expandonce{\@firstoftwo#5}}% @@ -1812,7 +1776,7 @@ \jlreq@BlockHeading@start@{#1}{#2}{#3}{#4}% } % {1 = 命令}{2 = レベル}{3 = スペース関連} -\newcommand{\jlreq@BlockHeading@start@}[4]{% +\long\def\jlreq@BlockHeading@start@#1#2#3#4{% \@ifstar{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{*}}}{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{#4}}}% } % {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}[5 = running head]{6 = 見出し} @@ -1889,17 +1853,17 @@ \expandafter\def\expandafter\jlreq@BlockHeading@start@afterheading@skipspaces\space{\jlreq@BlockHeading@start@afterheading} \def\jlreq@BlockHeading@start@afterheading@ii{% \def\jlreq@do{\jlreq@BlockHeading@spaces@output}% - \@for\@tempa:=\jlreq@BlockHeading@allheadings\do{% - \expandafter\ifx\csname\@tempa\endcsname\jlreq@nextchar\def\jlreq@do{}\fi + \seq_map_inline:Nn \l__jlreq_BlockHeading_allheadings_seq { + \expandafter\ifx\csname##1\endcsname\jlreq@nextchar\def\jlreq@do{}\fi }% % \jlreq@BlockHeading@HeadingSpaces@ignoretokens(@noargument)内のものは特別扱いする - \expandafter\@tfor\expandafter\@tempa\expandafter:\expandafter=\jlreq@BlockHeading@HeadingSpaces@ignoretokens@noargument\do{% - \expandafter\ifx\@tempa\jlreq@nextchar + \tl_map_inline:Nn \jlreq@BlockHeading@HeadingSpaces@ignoretokens@noargument { + \ifx##1\jlreq@nextchar \def\jlreq@do{\jlreq@BlockHeading@start@afterheading@saveafter@cs@noargument}% \fi }% - \expandafter\@tfor\expandafter\@tempa\expandafter:\expandafter=\jlreq@BlockHeading@HeadingSpaces@ignoretokens\do{% - \expandafter\ifx\@tempa\jlreq@nextchar + \tl_map_inline:Nn \jlreq@BlockHeading@HeadingSpaces@ignoretokens { + \ifx##1\jlreq@nextchar \def\jlreq@do{\jlreq@BlockHeading@start@afterheading@saveafter@cs}% \fi }% @@ -2044,12 +2008,16 @@ \def\jlreq@BlockHeading@start@removecolumn#1:{#1} % 空き指定を解釈する.a:10pt -> \jlreq@resulta=a,\jlreq@resultb=10pt -\def\jlreq@BlockHeading@start@analyzespace#1:#2\jlreq@endmark{% +\cs_set:Nn \__jlreq_BlockHeading_start_analyzespace:n{% + \__jlreq_BlockHeading_start_analyzespace_aux#1:\jlreq@endmark +} +\cs_generate_variant:Nn \__jlreq_BlockHeading_start_analyzespace:n {V} +\def\__jlreq_BlockHeading_start_analyzespace_aux#1:#2\jlreq@endmark{ \jlreq@ifempty{#1}{% \def\jlreq@resulta{}% \def\jlreq@resultb{}% }{% - \let\jlreq@resulta=#1% + \let\jlreq@resulta=#1 \edef\jlreq@resultb{\expandonce{\jlreq@BlockHeading@start@removecolumn#2}}% }% } @@ -2064,10 +2032,13 @@ \jlreq@tempskipa=0pt \jlreq@tempskipb=0pt \jlreq@tempskipc=0pt - \jlreq@BlockHeading@start@analyzespace#1:\jlreq@endmark + \tl_set_rescan:Nnn \l_jlreq_tmpa_tl {\ExplSyntaxOn}{#1} +% \message{[[[\expandafter\getcatcode\l_jlreq_tmpa_tl]]]} + \__jlreq_BlockHeading_start_analyzespace:V \l_jlreq_tmpa_tl \let\jlreq@maeakitype=\jlreq@resulta \let\jlreq@maeaki=\jlreq@resultb - \jlreq@BlockHeading@start@analyzespace#2:\jlreq@endmark + \tl_set_rescan:Nnn \l_jlreq_tmpa_tl {\ExplSyntaxOn}{#2} + \__jlreq_BlockHeading_start_analyzespace:V \l_jlreq_tmpa_tl \let\jlreq@ushiroakitype=\jlreq@resulta \let\jlreq@ushiroaki=\jlreq@resultb \def\jlreq@lines{#3}% @@ -2130,29 +2101,24 @@ \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa - \jlreq@tempdimb\relax \ht\jlreq@tempboxa=\jlreq@tempdimb \box\jlreq@tempboxa - \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt \else\prevdepth=\jlreq@tempdimc\fi + \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt\relax\else\prevdepth=\jlreq@tempdimc\fi % \jlreq@tempdimb, \jlreq@tempdimcの利用ここまで \else \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa\relax \ht\jlreq@tempboxa=0pt \box\jlreq@tempboxa - \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt \else\prevdepth=0pt \fi + \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt\relax\else\prevdepth=0pt\relax\fi \fi \nobreak \jlreq@ifgluezero\jlreq@tempskipb{}{\vskip\jlreq@tempskipb}% \edef\jlreq@do{% - \ifdim\parskip=0pt \else - \unexpanded{\def\jlreq@parhook@gyodori}{% - \noexpand\parskip=\the\parskip - \unexpanded{\def\jlreq@parhook@gyodori{}}% - }% - \unexpanded{\parskip=0pt}% - \fi + \dim_compare:nF { \parskip=0pt } { + \noexpand\AddToHookNext{para/before}{\noexpand\parskip=\the\parskip\noexpand\relax}% + \noexpand\parskip=0pt + } }% \expandafter}\jlreq@do } -\PushPostHook{par}{\jlreq@parhook@gyodori} -\def\jlreq@parhook@gyodori{} % 行取り情報をゲットだぜ % \jlreq@resultに{1 = 前空き}{2 = 後ろ空き}{3 = トータル行数}を入れる @@ -2165,49 +2131,53 @@ \@ifnextchar[{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}}{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}[jlreq@key]}% } \long\def\jlreq@BlockHeading@gyodori@parsekeyval@@#1[#2]#3#4#5#6{% - \begingroup - \def\jlreq@lines{#6}% - \def\jlreq@before@space{}% - \def\jlreq@before@lines{}% - \def\jlreq@after@space{}% - \def\jlreq@after@lines{}% - \jlreq@parsekeyval#1[#2]{ - {lines}{\def\jlreq@lines{##1}} - {before_space}{\def\jlreq@before@space{##1}} - {after_space}{\def\jlreq@after@space{##1}} - {before_lines}{% - \jlreq@ifempty{##1}{\def\jlreq@before@lines{}}{% - \jlreq@iffirsttoken@ignorespaces{##1}{*}% - {\edef\jlreq@before@lines{s:\expandonce{\@gobble ##1}}}% - {\def\jlreq@before@lines{a:##1}}% - }% - } - {after_lines}{\def\jlreq@after@lines{##1}} - }{#3}% + \group_begin: + \keys_define:nn {#2} { + lines .tl_set:N = \l__jlreq_lines_tl, + before_space .tl_set:N = \l__jlreq_before_space_tl, + after_space .tl_set:N = \l__jlreq_after_space_tl, + before_lines .code:n = { + \tl_if_empty:nTF {##1}{ + \tl_set:Nn \l__jlreq_before_lines_tl {} + }{ + \str_if_eq:eeTF { \str_head:n {##1} } {*} + {\tl_set:Nx \l__jlreq_before_lines_tl {s:\exp_not:o {\use_none:n ##1}}} + {\tl_set:Nx \l__jlreq_before_lines_tl {a:##1}} + } + }, + after_lines .tl_set:N = \l__jlreq_after_lines_tl + } + \tl_if_empty:nF {#1} { \keys_define:nn {#2} { unknown .code:n = {} } } + \keys_set:nn {#2} {lines = {#6}, before_space = {}, before_lines = {}, after_space = {}, after_lines = {} } + \keys_set:nn {#2} {#3} % before/after_lines優先 - \ifx\jlreq@before@space\@empty\else\edef\jlreq@before@space{r:\expandonce{\jlreq@before@space}}\fi - \ifx\jlreq@before@lines\@empty\else\edef\jlreq@before@space{\expandonce{\jlreq@before@lines}\baselineskip}\fi - \ifx\jlreq@before@space\@empty\def\jlreq@before@space{#4}\fi - \ifx\jlreq@after@space\@empty\else\edef\jlreq@after@space{r:\expandonce{\jlreq@after@space}}\fi - \ifx\jlreq@after@lines\@empty\else\edef\jlreq@after@space{a:\expandonce{\jlreq@after@lines}\baselineskip}\fi - \ifx\jlreq@after@space\@empty\def\jlreq@after@space{#5}\fi - \edef\jlreq@do{% - \unexpanded{\def\jlreq@result}{{\expandonce{\jlreq@before@space}}{\expandonce{\jlreq@after@space}}{\expandonce{\jlreq@lines}}}% + \tl_if_empty:NF \l__jlreq_before_space_tl { \tl_put_left:Nn \l__jlreq_before_space_tl {r:} } + \tl_if_empty:NF \l__jlreq_before_lines_tl { \tl_set:Nx \l__jlreq_before_space_tl {\exp_not:o {\l__jlreq_before_lines_tl} \baselineskip } } + \tl_if_empty:NT \l__jlreq_before_space_tl { \tl_set:Nn \l__jlreq_before_space_tl {#4} } + \tl_if_empty:NF \l__jlreq_after_space_tl { \tl_put_left:Nn \l__jlreq_after_space_tl {r:} } + \tl_if_empty:NF \l__jlreq_after_lines_tl { \tl_set:Nx \l__jlreq_after_space_tl { a:\exp_not:o {\l__jlreq_after_lines_tl} \baselineskip } } + \tl_if_empty:NT \l__jlreq_after_space_tl { \tl_set:Nn \l__jlreq_after_space_tl {#5} } + \cs_set:Nx \l__jlreq_do: { + \exp_not:n {\def\jlreq@result}{ + {\exp_not:o {\l__jlreq_before_space_tl } } + {\exp_not:o {\l__jlreq_after_space_tl } } + {\exp_not:o {\l__jlreq_lines_tl } } + } }% - \expandafter\endgroup - \jlreq@do + \exp_after:wN \group_end: + \l__jlreq_do: } \newbox\jlreq@BlockHeading@start@label@box % \DeclareBlockHeading{命令名}{レベル}{設定} -\def\jlreq@BlockHeading@allheadings{}% 別行見出し一覧 -\newcommand{\DeclareBlockHeading}[3]{% - \IfHookExistsTF{jlreq/heading/before/#1}{}{\NewHook{jlreq/heading/before/#1}}% +\seq_new:N \l__jlreq_BlockHeading_allheadings_seq +\NewDocumentCommand {\DeclareBlockHeading} { m m +m } { + \ProvideHook{jlreq/heading/before/#1} \def\jlreq@do{\@removeelement{#1}}% - \expandafter\jlreq@do\expandafter{\jlreq@heading@allheadings}{\jlreq@heading@allheadings}% - \appto\jlreq@heading@allheadings{,#1}% - \expandafter\jlreq@do\expandafter{\jlreq@BlockHeading@allheadings}{\jlreq@BlockHeading@allheadings}% - \appto\jlreq@BlockHeading@allheadings{,#1}% + \seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1} + \seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq + \seq_put_right:Nn \l__jlreq_BlockHeading_allheadings_seq {#1} + \seq_remove_duplicates:N \l__jlreq_BlockHeading_allheadings_seq \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}% \expandafter\edef\csname jlreq@heading@setting@#1\endcsname{\unexpanded{#3}}% \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewBlockHeading}% @@ -2215,29 +2185,12 @@ \@ifundefined{#1mark}{\expandafter\let\csname #1mark\endcsname\@gobble}{}% \jlreq@heading@make@maketoc{#1}{#2}% \begingroup - \def\jlreq@font{}% - \def\jlreq@subtitle@font{}% - \def\jlreq@indent{0\jlreq@zw}% - \def\jlreq@end@indent{0\jlreq@zw}% - \def\jlreq@align{l}% - \edef\jlreq@format{\unexpanded{##1##2##3}}% \edef\jlreq@heading@text@format{\unexpanded{##1}}% - \def\jlreq@pagebreak{}% - \def\jlreq@label@format{\@seccntformat{#1}}% - \newif\ifjlreq@second@text@indent@withlabel\jlreq@second@text@indent@withlabeltrue - \def\jlreq@after@label@space{1\jlreq@zw}% - \def\jlreq@second@heading@text@indent@wlabel{0pt}% - \def\jlreq@second@heading@text@indent@wolabel{0pt}% - \edef\jlreq@subtitle@format{\unexpanded{---##1---}}% - \newif\ifjlreq@subtitleindent@withlabel\jlreq@subtitleindent@withlabeltrue - \def\jlreq@subtitle@indent{1\jlreq@zw}% - \def\jlreq@afterindent{\@afterindenttrue}% - \def\jlreq@allowbreak@evenpage{*}% 偶数ページでも改ページを許可するならば空,そうでないなら* - \newif\ifjlreq@subtitle@break\jlreq@subtitle@breaktrue - \def\jlreq@subtitle@indent{1\jlreq@zw}% - \def\jlreq@column@spanning{false}% - \newif\ifjlreq@column@spanning@possible\jlreq@column@spanning@possiblefalse - \newif\ifjlreq@number \jlreq@numbertrue + \newif\ifjlreq@second@text@indent@withlabel + \newif\ifjlreq@subtitleindent@withlabel + \newif\ifjlreq@subtitle@break + \newif\ifjlreq@column@spanning@possible + \newif\ifjlreq@number % a,bみたいなのをaとbにわける.カンマがなければbは空.引数を{a}{b}として##2を呼び出す. \def\jlreq@parsecomma##1##2{% \jlreq@helper@dividebycomma{##1}% @@ -2249,26 +2202,27 @@ \def\jlreq@tempa####1####2{##2}% \jlreq@do }% - \jlreq@parsekeyval[BlockHeading:#1]{ - {lines}{} - {before_space}{} - {after_space}{} - {before_lines}{} - {after_lines}{} - {font}{\def\jlreq@font{##1}} - {subtitle_font}{\def\jlreq@subtitle@font{##1}} - {indent}{\def\jlreq@indent{##1}} - {end_indent}{\def\jlreq@end@indent{##1}} - {align}[left,center,right]{% - \jlreq@switch{##1}{ - {left}{\def\jlreq@align{l}} - {center}{\def\jlreq@align{c}} - {right}{\def\jlreq@align{r}} - }% - } - {format}{\edef\jlreq@format{\unexpanded{##1}}} - {after_label_space}{\def\jlreq@after@label@space{##1}} - {second_heading_text_indent,heading_text_second_indent}{% + \keys_define:nn { BlockHeading:#1 } { + lines .code:n = {}, + before_space .code:n = {}, + after_space .code:n = {}, + before_lines .code:n = {}, + after_lines .code:n = {}, + font .tl_set:N = \jlreq@font, + subtitle_font .tl_set:N = \jlreq@subtitle@font, + indent .tl_set:N = \jlreq@indent, + end_indent .tl_set:N = \jlreq@end@indent, + align .choice:, + align / left .code:n = { \def\jlreq@align{l} }, + align / center .code:n = { \def\jlreq@align{c} }, + align / right .code:n = { \def\jlreq@align{r} }, + format .code:n = {\edef\jlreq@format{\unexpanded{##1}}}, + after_label_space .tl_set:N = \jlreq@after@label@space, + heading_text_second_indent .code:n = { + \ClassError { jlreq } { `heading_text_second_indent`~was~removed,~use~`second_heading_text_indent`~instead~(in~BlockHeading:~#1) }{\@ehc} + }, +% {second_heading_text_indent,heading_text_second_indent}{% + second_heading_text_indent .code:n = { \jlreq@parsecomma{##1}{% \jlreq@iffirsttoken{####1}{*}{% \jlreq@second@text@indent@withlabelfalse @@ -2283,10 +2237,10 @@ \def\jlreq@second@heading@text@indent@wolabel{####2}% }% }% - } - {label_format}{\edef\jlreq@label@format{\unexpanded{##1}}} - {subtitle_format}{\edef\jlreq@subtitle@format{\unexpanded{##1}}} - {subtitle_indent}{% + }, + label_format .code:n = {\edef\jlreq@label@format{\unexpanded{##1}}}, + subtitle_format .code:n = {\edef\jlreq@subtitle@format{\unexpanded{##1}}}, + subtitle_indent .code:n = {% \jlreq@iffirsttoken{##1}{*}{% \jlreq@subtitleindent@withlabelfalse \edef\jlreq@subtitle@indent{\expandonce{\@gobble ##1}}% @@ -2294,27 +2248,24 @@ \jlreq@subtitleindent@withlabeltrue \def\jlreq@subtitle@indent{##1}% }% - } - {subtitle_break}[true,false]{\csname jlreq@subtitle@break##1\endcsname} - {afterindent}[true,false]{\edef\jlreq@afterindent{\expandonce{\csname @afterindent##1\endcsname}}} - {allowbreak_if_evenpage}[true,false]{% - \jlreq@switch{##1}{ - {true}{\def\jlreq@allowbreak@evenpage{}} - {false}{\def\jlreq@allowbreak@evenpage{*}} - }% - } - {pagebreak}[clearpage,cleardoublepage,clearcolumn,nariyuki,begin_with_odd_page,begin_with_even_page]{% - \jlreq@switch{##1}{ - {clearpage}{\def\jlreq@pagebreak{\clearpage}\jlreq@column@spanning@possibletrue} - {cleardoublepage}{\def\jlreq@pagebreak{\cleardoublepage}\jlreq@column@spanning@possibletrue} - {clearcolumn}{\if@twocolumn\def\jlreq@pagebreak{\newpage}\else\def\jlreq@pagebreak{}\fi\jlreq@column@spanning@possiblefalse} - {begin_with_even_page}{\def\jlreq@pagebreak{\cleartoevenpage[empty]}\jlreq@column@spanning@possibletrue} - {begin_with_odd_page}{\def\jlreq@pagebreak{\cleartooddpage[empty]}\jlreq@column@spanning@possibletrue} - {nariyuki}{\def\jlreq@pagebreak{}\jlreq@column@spanning@possiblefalse} - }% - } + }, + subtitle_break .choices:nn = {true,false}{\csname jlreq@subtitle@break##1\endcsname}, + afterindent .choices:nn = {true,false}{\edef\jlreq@afterindent{\expandonce{\csname @afterindent##1\endcsname}}}, + allowbreak_if_evenpage .choices:nn = {true,false}{% + \str_if_eq:nnTF {##1} {true} + {\def\jlreq@allowbreak@evenpage{}} + {\def\jlreq@allowbreak@evenpage{*}} + }, + pagebreak .choice:, + pagebreak / clearpage .code:n = {\def\jlreq@pagebreak{\clearpage}\jlreq@column@spanning@possibletrue}, + pagebreak / cleardoublepage .code:n = {\def\jlreq@pagebreak{\cleardoublepage}\jlreq@column@spanning@possibletrue}, + pagebreak / clearcolumn .code:n = {\if@twocolumn\def\jlreq@pagebreak{\newpage}\else\def\jlreq@pagebreak{}\fi\jlreq@column@spanning@possiblefalse}, + pagebreak / begin_with_even_page .code:n = {\def\jlreq@pagebreak{\cleartoevenpage[empty]}\jlreq@column@spanning@possibletrue}, + pagebreak / begin_with_odd_page .code:n = {\def\jlreq@pagebreak{\cleartooddpage[empty]}\jlreq@column@spanning@possibletrue}, + pagebreak / nariyuki .code:n = {\def\jlreq@pagebreak{}\jlreq@column@spanning@possiblefalse}, + pagestyle .tl_set:N = \l__jlreq_pagestyle_tl, % 後々数字を受け付けるようになったりするかもしれないので…… - {column_spanning}{% + column_spanning .code:n = {% \jlreq@tempatrue % validな入力に対してfalse \jlreq@ifempty{##1}{}{% \jlreq@ifnumber{##1}{% 数字の時はtrueに回す @@ -2327,18 +2278,27 @@ }% }% }% - \ifjlreq@tempa\ClassWarningNoLine{jlreq}{Invalid input `##1' for column_spanning in BlockHeading #1}\fi - } - {number}[true,false]{\csname jlreq@number##1\endcsname} - }{#3}% + \ifjlreq@tempa\ClassWarningNoLine{jlreq}{Invalid~input~`##1'~for~column_spanning~in~BlockHeading~#1}\fi + }, + number .choices:nn = {true,false}{\csname jlreq@number\l_keys_choice_tl\endcsname}, + }% + \keys_set:nn { BlockHeading:#1 } { + font = {}, subtitle_font = {}, + indent = {0pt}, end_indent = {0pt}, align = {left}, subtitle_indent = {1\jlreq@zw}, afterindent = {true}, + second_heading_text_indent = {0pt}, after_label_space = {1\jlreq@zw}, + pagebreak = {nariyuki}, allowbreak_if_evenpage = {false}, subtitle_break = {true}, column_spanning = {false}, + format = {##1##2##3}, label_format = {\@seccntformat{#1}}, subtitle_format = {---##1---}, number = {true}, + pagestyle = {} + } + \keys_set:nn { BlockHeading:#1 } {#3} \def\jlreq@do{}% 初期化.これに最終処理を入れていく. % 入力チェック - \ifthenelse{\equal{\jlreq@column@spanning}{true}}{% + \str_if_eq:VnT \jlreq@column@spanning { true } { \jlreq@if{\unless\ifjlreq@column@spanning@possible\fi}{ - \ClassWarningNoLine{jlreq}{column_spanning can be used only with `pagebreak=nariyuki' or `pagebreak=clearcolumn' (in BlockHeading #1)}% + \ClassWarningNoLine{jlreq}{column_spanning~can~be~used~only~with~`pagebreak=nariyuki'~or~`pagebreak=clearcolumn'~(in~BlockHeading~#1)}% \def\jlreq@column@spanning{false}% }{}% - }{}% + }% % ラベルありフォーマット:前 \edef\jlreq@pre@format@wlabel{% \noexpand\noindent @@ -2363,12 +2323,12 @@ \edef\jlreq@label@format@modified{% \noexpand\jlreq@BlockHeading@start@outputlabel \unexpanded{\inhibitglue\hbox{}}% - \ifdim\dimexpr\jlreq@after@label@space\relax=0pt \else + \ifdim\dimexpr\jlreq@after@label@space\relax=\dimexpr 0pt\relax\else \noexpand\hspace*{\noexpand\dimexpr\expandonce{\jlreq@after@label@space}\noexpand\relax}% \fi }% \edef\jlreq@heading@text@format@wlabel{% - \ifnum 0\ifdim\jlreq@second@heading@text@indent@wlabel=0pt \else 1\fi\ifjlreq@second@text@indent@withlabel 1\fi>0 + \ifnum 0\ifdim\jlreq@second@heading@text@indent@wlabel=\dimexpr 0pt\relax\else 1\fi\ifjlreq@second@text@indent@withlabel 1\fi>0 \unexpanded{\hangindent=\glueexpr}(\expandonce{\jlreq@second@heading@text@indent@wlabel})% \ifjlreq@second@text@indent@withlabel + (\expandonce{\jlreq@after@label@space}) + \unexpanded{\jlreq@BlockHeading@start@labellength}\fi \noexpand\relax @@ -2376,7 +2336,7 @@ \expandonce{\jlreq@heading@text@format}% }% \edef\jlreq@heading@text@format@wolabel{% - \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=0pt \else + \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=\dimexpr 0pt\relax\else \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@second@heading@text@indent@wolabel}\noexpand\relax \fi \expandonce{\jlreq@heading@text@format}% @@ -2389,7 +2349,7 @@ ##2% \unexpanded{\nobreak\noindent}% \else - \ifdim\jlreq@subtitle@indent=0pt \else + \ifdim\jlreq@subtitle@indent=\dimexpr 0pt\relax\else \noexpand\hspace*{\expandonce{\jlreq@subtitle@indent}}% \fi \fi @@ -2401,14 +2361,14 @@ \noexpand\hangafter=0 \unexpanded{\hangindent=\dimexpr}\noexpand\jlreq@BlockHeading@start@labellength + (\expandonce{\jlreq@after@label@space}) + (\expandonce{\jlreq@subtitle@indent})\noexpand\relax \else - \ifdim\jlreq@subtitle@indent=0pt \else + \ifdim\jlreq@subtitle@indent=\dimexpr 0pt\relax\else \noexpand\hangafter=0 \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@subtitle@indent}\noexpand\relax \fi \fi }% \jlreq@make@subtitle@format\jlreq@subtitle@format@wolabel{% - \ifdim\jlreq@subtitle@indent=0pt \else + \ifdim\jlreq@subtitle@indent=\dimexpr 0pt\relax\else \noexpand\hangafter=0 \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@subtitle@indent}\noexpand\relax \fi @@ -2420,7 +2380,7 @@ \edef\jlreq@totalformat{\unexpanded{##1}}% \edef\jlreq@totalformat@after{\expandonce{\jlreq@afterindent}\noexpand\@afterheading}% \if@twocolumn - \ifthenelse{\equal{\jlreq@column@spanning}{true}}{% + \str_if_eq:VnT \jlreq@column@spanning { true }{% \def\@tempa##1##2##3{% % 前開きが常に入ってしまうので,a:の時は除去する \jlreq@iffirsttoken{##1}{a}{\def\jlreq@spaceset{{}{##2}{##3}}}{}% @@ -2439,7 +2399,6 @@ }% \expandafter\@tempa\jlreq@spaceset \def\jlreq@totalformat@after{}% - }{% }% \fi \edef\jlreq@do{% @@ -2448,6 +2407,7 @@ \noexpand\UseHook{jlreq/heading/before}% \noexpand\UseHook{jlreq/heading/before/#1}% \expandonce{\jlreq@pagebreak}% + \tl_if_empty:NF \l__jlreq_pagestyle_tl { \exp_not:N \thispagestyle {\exp_not:o { \l__jlreq_pagestyle_tl } } } \unexpanded{\jlreq@BlockHeading@start{#1}{#2}}% {{\expandonce{\jlreq@align}}{\expandonce{\jlreq@indent}}{\expandonce{\jlreq@end@indent}}\expandonce{\jlreq@spaceset}{\expandonce{\jlreq@allowbreak@evenpage}}}% {\ifjlreq@number\else -\fi}% @@ -2471,13 +2431,13 @@ \jlreq@do } -\newcommand{\NewBlockHeading}[3]{% +\NewDocumentCommand{\NewBlockHeading}{ m m +m }{% \expandafter\@ifdefinable\csname #1\endcsname{\DeclareBlockHeading{#1}{#2}{#3}}% } -\newcommand{\RenewBlockHeading}[3]{% +\NewDocumentCommand{\RenewBlockHeading}{ m m +m }{% \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareBlockHeading{#1}{#2}{#3}}% } -\newcommand{\ProvideBlockHeading}[3]{% +\NewDocumentCommand{\ProvideBlockHeading}{ m m +m }{% \@ifundefined{#1}{\DeclareBlockHeading{#1}{#2}{#3}}{}% } @@ -2513,7 +2473,7 @@ \def\jlreq@BlockHeading@spaces@current@sequence{} \def\jlreq@BlockHeading@spaces@headingslist{} -\newcommand{\SetBlockHeadingSpaces}[1]{% +\NewDocumentCommand{\SetBlockHeadingSpaces} { m } { \begingroup % 現段階の情報をクリアする \def\jlreq@tempa{}% 見出しリスト @@ -2521,8 +2481,8 @@ \jlreq@SetBlockHeadingSpaces#1\jlreq@endmark \edef\jlreq@do{% \unexpanded{% - \@for\@tempa:=\jlreq@BlockHeading@spaces@headingslist\do{% - \expandafter\let\csname jlreq@BlockHeading@spaces@setlist@\@tempa\endcsname=\@undefined + \clist_map_inline:Nn \jlreq@BlockHeading@spaces@headingslist { + \expandafter\let\csname jlreq@BlockHeading@spaces@setlist@####1\endcsname=\@undefined }% }% \unexpanded{\def\jlreq@BlockHeading@spaces@headingslist}{\expandonce{\jlreq@tempa}}% @@ -2563,7 +2523,7 @@ \fi \eappto\jlreq@tempb{% \noexpand\@ifundefined{jlreq@BlockHeading@spaces@setlist@\jlreq@headings}{}{% - \noexpand\ClassError{jlreq}{The spaces for \jlreq@headings\space is defined more than once (in SetBlockHeadingSpaces)}{\noexpand\@ehc}% + \noexpand\ClassError{jlreq}{The~spaces~for~\jlreq@headings\space is~defined~more~than~once~(in~SetBlockHeadingSpaces)}{\noexpand\@ehc}% }% \noexpand\def\expandonce{\csname jlreq@BlockHeading@spaces@setlist@\jlreq@headings\endcsname}{{\expandonce{\jlreq@totalset}}\expandonce{\jlreq@set}}% }% @@ -2582,16 +2542,16 @@ \def\jlreq@tempb{\jlreq@uniqtoken}% \ifx\jlreq@tempa\jlreq@tempb\def\jlreq@do{}% \else\def\jlreq@do{% - \ClassError{jlreq}{Invalid setting ``\unexpanded{#1{#2}}'' is found, You forgot `_'? (in SetBlockHeadingSpaces)}{\@ehc}% + \ClassError{jlreq}{Invalid~setting~``\unexpanded{#1{#2}}''~is~found,~you~forgot~`_'?~(in~SetBlockHeadingSpaces)}{\@ehc}% }\fi \expandafter\endgroup \jlreq@do } \def\jlreq@SetBlockHeadingSpaces@iii#1{% - \@for\@tempa:=#1\do{% + \clist_map_variable:nNn {#1} \@tempa { \expandafter\jlreq@helper@trim\expandafter{\@tempa}{\@tempa}% - \expandafter\jlreq@iffirsttoken@ignorespaces\expandafter{\@tempa}{_}{% + \str_if_eq:eeTF {\str_head:N \@tempa} {_} { \ifx\jlreq@lastdimen\@empty\else\eappto\jlreq@set{{\expandonce{\jlreq@lastdimen}}}\fi% \def\jlreq@lastdimen{}% \expandafter\jlreq@SetBlockHeadingSpaces@iv\@tempa{\jlreq@endmark}\jlreq@endmark @@ -2611,14 +2571,16 @@ \jlreq@tempafalse }% } + \def\jlreq@SetBlockHeadingSpaces@iv#1#{% - \expandafter\jlreq@ifcontains\expandafter{\@gobble #1}{_}{% - \ClassWarning{jlreq}{Unusual heading name `\@gobble #1' is found. You forgot a comma? (in SetBlockHeadingSpaces)}% - }{}% + \str_set:Nx \l__jlreq_tmpa_str {\@gobble #1} + \str_if_in:NnT \l__jlreq_tmpa_str {_} { + \ClassWarning{jlreq}{Unusual~heading~name~`\@gobble #1'~is~found.~You~forgot~a~comma?~(in~SetBlockHeadingSpaces)}% + }% \jlreq@ifendswith{#1}{*}{{% \def\@tempa_##1*{\def\@tempa{##1}}% \@tempa#1% - \ClassWarning{jlreq}{The heading name `\@gobble #1' ends with `*'. Do you mean `_\@tempa{*}'? (in SetBlockHeadingSpaces)}% + \ClassWarning{jlreq}{The~heading~name~`\@gobble #1'~ends~with~`*'.~Do~you^mean~`_\@tempa{*}'?~(in~SetBlockHeadingSpaces)}% }}{}% \appto\jlreq@headings{#1}% \jlreq@SetBlockHeadingSpaces@v @@ -2646,7 +2608,7 @@ \def\@tempb##1##{\@temptokena\expandafter{\the\@temptokena##1}\@tempc}% \def\@tempc##1{\jlreq@ifendmark{##1}{}{\@temptokena\expandafter{\the\@temptokena{##1}}\@tempb}}% \@tempb#1% - \ClassWarningNoLine{jlreq}{Extra setting `\the\@temptokena' is found in SetBlockHeadingSpaces, omitted} + \ClassWarningNoLine{jlreq}{Extra~setting~`\the\@temptokena'~is~found~in~SetBlockHeadingSpaces,~omitted} }}% } @@ -2689,13 +2651,12 @@ \fi } -\ExplSyntaxOn \def\jlreq@BlockHeading@spaces@output@#1#2\jlreq@endmark{% \def\jlreq@result{}% \jlreq@tempcnta=0 \jlreq@BlockHeading@spaces@output@@#2\jlreq@endmark \jlreq@tempatrue % 周りの行取り処理が必要か - \jlreq@ifempty{#1}{\jlreq@tempafalse}{}% + \tl_if_empty:nT {#1} {\jlreq@tempafalse}% \tl_if_eq:nnT {#1} {{}{}{}} { \jlreq@tempafalse } \edef\jlreq@do{% \ifjlreq@tempa @@ -2709,11 +2670,10 @@ \jlreq@BlockHeading@spaces@clear \jlreq@do } -\ExplSyntaxOff % jlreq@resultに出力すべきものを入れていく \def\jlreq@BlockHeading@spaces@output@@#1{% \jlreq@ifendmark{#1}{}{% - \jlreq@iffirsttoken@ignorespaces{#1}{_}{% + \str_if_eq:eeTF {\str_head:n {#1}} {_} { \advance\jlreq@tempcnta by 1 \expandafter\jlreq@BlockHeading@spaces@output@@@\expandafter{\@gobble #1}% }{% @@ -2808,13 +2768,11 @@ \expandonce{\jlreq@tempa{#5}}% \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}\unexpanded{{#3}{#6}{#4}}% \noexpand\endgroup - \unexpanded{\def\jlreq@hook@everypar{\inhibitglue}}% + \noexpand\inhibitglue \noexpand\else \unexpanded{\everypar{}}% }% - \ifx l\jlreq@engine - \unexpanded{\unexpanded{\def\jlreq@hook@everypar{}}}% - \else + \ifx l\jlreq@engine\else \unexpanded{\unexpanded{\let\jlreq@hook@everypar\jlreq@openbracket@hook}}% \fi \unexpanded{\noexpand\fi}% @@ -2828,11 +2786,14 @@ \jlreq@tempa % \DeclareRuninHeading{命令名}{レベル}{設定} -\newcommand*{\DeclareRuninHeading}[3]{% - \IfHookExistsTF{jlreq/heading/before/#1}{}{\NewHook{jlreq/heading/before/#1}}% +\NewDocumentCommand { \DeclareRuninHeading } { m m +m } { + \__jlreq_declare_runin_heading:nnn {#1} {#2} {#3} +} +\cs_set:Nn \__jlreq_declare_runin_heading:nnn { + \hook_provide:n { jlreq/heading/before/#1 } \def\jlreq@do{\@removeelement{#1}}% - \expandafter\jlreq@do\expandafter{\jlreq@heading@allheadings}{\jlreq@heading@allheadings}% - \appto\jlreq@heading@allheadings{,#1}% + \seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1} + \seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}% \expandafter\edef\csname jlreq@heading@setting@#1\endcsname{\unexpanded{#3}}% \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewRuninHeading}% @@ -2840,124 +2801,133 @@ \@ifundefined{#1mark}{\expandafter\let\csname #1mark\endcsname\@gobble}{}% \@ifundefined{l@#1}{\expandafter\def\csname l@#1\endcsname{\@dottedtocline{#2}{0\jlreq@zw}{2\jlreq@zw}}}{}% \jlreq@heading@make@maketoc{#1}{#2}% - \begingroup - \def\jlreq@font{\normalfont\normalsize}% - \def\jlreq@indent{0pt}% - \def\jlreq@after@label@space{1\jlreq@zw}% + \group_begin: \def\jlreq@label@font{}% - \def\jlreq@label@format{\@seccntformat{#1}}% - \def\jlreq@after@space{1\jlreq@zw}% - \newif\ifjlreq@number \jlreq@numbertrue - \jlreq@parsekeyval[RuninHeading:#1]{% - {font}{\def\jlreq@font{##1}} - {indent}{\def\jlreq@indent{##1}} - {label_format}{\def\jlreq@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@after@label@space{##1}% - } - {after_space}{% - \ifdim\dimexpr##1\relax<0pt \ClassWarning{jlreq}{after_space in Runin Heading #1 should be not negative}\fi - \def\jlreq@after@space{##1}% - } - {number}{\csname jlreq@number##1\endcsname} - }{#3}% - \newif\ifjlreq@indent@zero - \jlreq@ifgluezero{\glueexpr\jlreq@indent\relax}{\jlreq@indent@zerotrue}{\jlreq@indent@zerofalse}% - \newif\ifjlreq@after@space@zero - \jlreq@ifgluezero{\glueexpr\jlreq@after@space\relax}{\jlreq@after@space@zerotrue}{\jlreq@after@space@zerofalse}% - \newif\ifjlreq@after@label@space@zero - \jlreq@ifgluezero{\glueexpr\jlreq@after@label@space\relax}{\jlreq@after@label@spacefalse}% - \edef\jlreq@format@wlabel{{% - \ifjlreq@indent@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq@indent}\noexpand\relax\fi - \expandonce{\jlreq@font}% - \expandonce{\jlreq@label@format}% - \ifjlreq@after@label@space@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq@after@label@space}\noexpand\relax\fi + \keys_define:nn { RuninHeading:#1 } { + font .tl_set:N = \l__jlreq_font_tl, + indent .tl_set:N = \l__jlreq_indent_tl, + label_format .tl_set:N = \l__jlreq_label_format_tl, + after_label_space .tl_set:N = \l__jlreq_after_label_space_tl, + after_space .tl_set:N = \l__jlreq_after_space_tl, + number .bool_set:N = \l__jlreq_number_bool, + } + \keys_set:nn { RuninHeading:#1 } { + font = {\normalfont\normalsize}, + indent = {0pt}, + label_format = {\@seccntformat{#1}}, + after_label_space = {1\jlreq@zw}, + after_space = {1\jlreq@zw}, + number = true + } + \keys_set:nn { RuninHeading:#1 } {#3} + \dim_compare:nT { \l__jlreq_after_space_tl < 0pt } { + \ClassWarning{jlreq}{after_space~in~Runin~Heading~#1~should~be~not~negative} + } + \dim_compare:nT { \l__jlreq_after_label_space_tl < 0pt } { + \ClassWarning{jlreq}{after_label_space~in~Runin~Heading~#1~should~be~not~negative} + } + \bool_set:Nn \l__jlreq_indent_zero_bool { \skip_if_eq_p:nn { \l__jlreq_indent_tl } { 0pt } } + \bool_set:Nn \l__jlreq_after_space_zero_bool { \skip_if_eq_p:nn { \l__jlreq_after_space_tl } { 0pt } } + \bool_set:Nn \l__jlreq_after_label_space_zero_bool { \skip_if_eq_p:nn { \l__jlreq_after_label_space_tl } { 0pt } } + \tl_set:Nx \l__jlreq_format_wlabel_tl {{ + \bool_if:NF \l__jlreq_indent_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_indent_tl} } } + \exp_not:o { \l__jlreq_font_tl } + \exp_not:o { \l__jlreq_label_format_tl } + \bool_if:NF \l__jlreq_after_space_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_after_label_space_tl} } } ####1% - \ifjlreq@after@space@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq@after@space}\noexpand\relax\fi + \bool_if:NF \l__jlreq_after_space_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_after_space_tl} } } }}% - \edef\jlreq@format@wolabel{{% - \ifjlreq@indent@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq@indent}\noexpand\relax\fi - \expandonce{\jlreq@font}% + \tl_set:Nx \l__jlreq_format_wolabel_tl {{ + \bool_if:NF \l__jlreq_indent_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_indent_tl} } } + \exp_not:o { \l__jlreq_font_tl } ####1% - \ifjlreq@after@space@zero\else\unexpanded{\hskip\glueexpr}\expandonce{\jlreq@after@space}\noexpand\relax\fi + \bool_if:NF \l__jlreq_after_space_zero_bool { \exp_not:N \skip_horizontal:n {\exp_not:o {\l__jlreq_after_space_tl} } } }}% - \jlreq@heading@make@l@{#1}{#2}{\jlreq@label@format}% - \edef\jlreq@do{% - \expandonce{\jlreq@result}% + \jlreq@heading@make@l@{#1}{#2}{\l__jlreq_label_format_tl}% + \cs_set:Nx \l__jlreq_do: { + \exp_not:o { \jlreq@result } % パラメータトークンを含むので,\edefして\unexpandedで包む \noexpand\edef\expandonce{\csname #1\endcsname}{% \noexpand\unexpanded{% - \noexpand\UseHook{jlreq/heading/before}% - \noexpand\UseHook{jlreq/heading/before/#1}% - \unexpanded{\jlreq@RuninHeading@start{#1}{#2}}{\ifjlreq@number\else -\fi}{\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@format@wlabel}}{\expandonce{\jlreq@format@wolabel}}% + \exp_not:N \UseHook{jlreq/heading/before}% + \exp_not:N \UseHook{jlreq/heading/before/#1} + \exp_not:n {\jlreq@RuninHeading@start{#1}{#2}} + {\bool_if:NF \l__jlreq_number_bool {-}} + {\exp_not:o {\l__jlreq_label_format_tl}} + {\exp_not:o {\l__jlreq_format_wlabel_tl}} + {\exp_not:o {\l__jlreq_format_wolabel_tl}} }% }% }% - \expandafter\endgroup - \jlreq@do + \exp_after:wN \group_end: + \l__jlreq_do: } -\newcommand*{\NewRuninHeading}[3]{% + +\NewDocumentCommand{\NewRuninHeading}{ m m +m }{ \expandafter\@ifdefinable\csname #1\endcsname{\DeclareRuninHeading{#1}{#2}{#3}}% } -\newcommand*{\RenewRuninHeading}[3]{% +\NewDocumentCommand{\RenewRuninHeading}{ m m +m }{% \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareRuninHeading{#1}{#2}{#3}}% } -\newcommand*{\ProvideRuninHeading}[3]{% +\NewDocumentCommand{\ProvideRuninHeading}{ m m +m }{% \@ifundefined{#1}{\DeclareRuninHeading{#1}{#2}{#3}}{}% } %.. 窓見出し -\def\jlreq@CutinHeading@start#1#2#3#4#5#6#7{% +\cs_set:Nn \__jlreq_CutinHeading_start:nnnnnnn { \if@noskipsec\leavevmode\fi \par - \jlreq@if{\ifnum\hangafter=1 \fi}{% - \jlreq@CutinHeading@start@{#2}{#3}{#4}{#5}{#6}{#7}% + \int_compare:nTF { \hangafter=1 } { + \__jlreq_CutinHeading_start_aux:nnnnnn{#2}{#3}{#4}{#5}{#6}{#7}% }{% - \ClassError{jlreq}{Can not use \expandafter\string\csname#1\endcsname\space here}{\@ehc}% + \ClassError{jlreq}{Can~not~use~\expandafter\string\csname#1\endcsname\space here}{\@ehc}% }% } % 1 = 書式指定,2 = インデント, 3 = 見出しと本文の間, 4 = これを越えたら二行以上,5 = これを越えたら三行以上,6 = テキスト -\def\jlreq@CutinHeading@start@#1#2#3#4#5#6{% +\cs_set:Nn \__jlreq_CutinHeading_start_aux:nnnnnn{% % 一行で処理したときの見出し長さを計測 - \begingroup - \setbox\@tempboxa=\hbox{#1#6}% - \@tempdima=\wd\@tempboxa - % 何行必要かを\jlreq@CutinHeading@linecountに入れる - \ifdim\@tempdima>#5\def\jlreq@CutinHeading@linecount{3}% - \else\ifdim\@tempdima>#4\def\jlreq@CutinHeading@linecount{2}% - \else\def\jlreq@CutinHeading@linecount{1}\fi\fi - % \@tempdimaが実際の一行の長さに近い - \divide\@tempdima by \jlreq@CutinHeading@linecount - % \jlreq@resultboxに見出し部分を,\jlreq@CutinHeading@linecountに見出し自身に何行使うかを入れる - \ifnum\jlreq@CutinHeading@linecount=1\relax - \setbox\jlreq@resultbox=\vbox{\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox{#1#6}}% - \def\jlreq@CutinHeading@linecount{2}% - \else - \jlreq@inlinenote@determinelength{#6}{#1}{}{\jlreq@CutinHeading@linecount}{\jlreq@CutinHeading@linecount}{\@tempdima}{\linewidth}% - \def\jlreq@CutinHeading@linecount{3}% - \fi + \group_begin: + \hbox_set:Nn \l_jlreq_tmpa_box {#1#6} + \dim_set:Nn \l_jlreq_tmpa_dim { \box_wd:N \l_jlreq_tmpa_box} + % 何行必要かを\l__jlreq_cutinheading_linecount_tlに入れる + \dim_compare:nTF { \l_jlreq_tmpa_dim > #5} { + \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {3} + }{ + \dim_compare:nTF { \l_jlreq_tmpa_dim > #4 }{ + \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {2} + } { \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {1} } } + % \l_jlreq_tmpa_dimが実際の一行の長さに近い + \dim_set:Nn \l_jlreq_tmpa_dim { \l_jlreq_tmpa_dim / \l__jlreq_cutinheading_linecount_tl } + % \l_jlreq_tmpb_boxに見出し部分を,\l__jlreq_cutinheading_linecount_tlに見出し自身に何行使うかを入れる + \int_compare:nTF { \l__jlreq_cutinheading_linecount_tl = 1 }{ + \vbox_set:Nn \l_jlreq_tmpb_box {\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox_unpack_drop:N \l_jlreq_tmpa_box} + \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {2} + }{ + \jlreq@inlinenote@determinelength{#6}{#1}{}{\l__jlreq_cutinheading_linecount_tl}{\l__jlreq_cutinheading_linecount_tl}{\l_jlreq_tmpa_dim}{\linewidth}% + \box_set_eq:NN \l_jlreq_tmpb_box \jlreq@resultbox + \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {3} + } % 普通の一行の高さ/深さに合わせて見出しのボックスを作る - \setbox\@tempboxa=\vtop to \dimexpr\numexpr\jlreq@CutinHeading@linecount - 1\relax\baselineskip + 1\jlreq@zh\relax{\vskip 0pt plus 1fill minus 1fill \box\jlreq@resultbox\vskip 0pt plus 1fill minus 1fill}% + \setbox\l_jlreq_tmpa_box =\vtop to \dimexpr\numexpr\l__jlreq_cutinheading_linecount_tl - 1\relax\baselineskip + 1\jlreq@zh\relax{\skip_vertical:n {0pt~plus~1fill~minus~1fill} \box_use_drop:N \l_jlreq_tmpb_box \skip_vertical:n {0pt~plus~1fill~minus~1fill}}% % 高さを通常の一行のそれにする - \setbox\jlreq@tempboxa=\hbox{阿}% - \dp\@tempboxa=\dimexpr\ht\@tempboxa + \dp\@tempboxa - \ht\jlreq@tempboxa\relax - \ht\@tempboxa=\ht\jlreq@tempboxa + \hbox_set:Nn \l_jlreq_tmpc_box {阿} + \box_set_dp:Nn \l_jlreq_tmpa_box { \box_ht:N \l_jlreq_tmpa_box + \box_dp:N \l_jlreq_tmpa_box - \box_ht:N \l_jlreq_tmpc_box } + \box_set_ht:Nn \l_jlreq_tmpa_box { \box_ht:N \l_jlreq_tmpc_box } \noindent \hspace*{#2}% - \copy\@tempboxa + \box_use:N \l_jlreq_tmpa_box \hspace*{#3}% % でかい見出しボックスの分をキャンセルする空きを入れる - % \baselineskip - \ht\jlreq@tempboxaはTeXが挿入するスキップの分 - \edef\jlreq@do{% - \noexpand\par - \noexpand\vskip -\the\dimexpr\ht\@tempboxa + \dp\@tempboxa + \baselineskip - \ht\jlreq@tempboxa\relax\relax - \noexpand\hangindent=\the\dimexpr#2 + \wd\@tempboxa + #3\relax\relax - \noexpand\hangafter=-\jlreq@CutinHeading@linecount\relax + % \baselineskip - box_ht:N \l_jlreq_tmpc_boxはTeXが挿入するスキップの分 + \cs_set:Nx \l__jlreq_do:{ + \exp_not:N \par + \exp_not:N \skip_vertical:n {\dim_eval:n {-\box_ht:N \l_jlreq_tmpa_box - \box_dp:N \l_jlreq_tmpa_box - \baselineskip + \box_ht:N \l_jlreq_tmpc_box}} + \exp_not:N\hangindent= \dim_eval:n {#2 + \box_wd:N \l_jlreq_tmpa_box + #3} \exp_not:N \relax + \exp_not:N\hangafter=-\l__jlreq_cutinheading_linecount_tl\relax }% - \expandafter\endgroup - \jlreq@do - \prevdepth=0pt + \exp_after:wN \group_end: + \l__jlreq_do: + \prevdepth=0pt\relax % 改段落が起こっても\hang****をキープするように\parを書き換えておく(終わったら元に戻す). \def\par{% \ifvmode\jlreq@tempatrue\else\jlreq@tempafalse\fi @@ -2977,50 +2947,52 @@ \ignorespaces } -\newcommand*{\DeclareCutinHeading}[3]{% - \IfHookExistsTF{jlreq/heading/before/#1}{}{\NewHook{jlreq/heading/before/#1}}% - \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}% - \expandafter\def\csname jlreq@heading@setting@#1\endcsname{#3}% - \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewCutinHeading}% - \begingroup - \def\jlreq@fontcommand{\sffamily\gtfamily\bfseries}% - \def\jlreq@onelinemax{6\jlreq@zw}% - \def\jlreq@twolinemax{20\jlreq@zw}% - \def\jlreq@indent{0pt}% - \def\jlreq@after@space{1\jlreq@zw}% - \jlreq@parsekeyval[CutinHeading:#1]{ - {font}{\def\jlreq@fontcommand{##1}} - {onelinemax}{\def\jlreq@onelinemax{##1}} - {twolinemax}{\def\jlreq@twolinemax{##1}} - {indent}{\def\jlreq@indent{##1}} - {after_space}{\def\jlreq@after@space{##1}} - }{#3}% - \ifthenelse{\lengthtest{\jlreq@after@space < 0.99\jlreq@zw} \OR \lengthtest{\jlreq@after@space > 2.01\jlreq@zw}}{% - \jlreq@note{窓見出しと本文との空き量は,基本版面の文字サイズの全角以上,2倍未満とする (4.1.10.c).}% +\NewDocumentCommand{\DeclareCutinHeading}{ m m +m }{ + \hook_provide:n { jlreq/heading/before/#1 } + \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2} + \expandafter\def\csname jlreq@heading@setting@#1\endcsname{#3} + \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewCutinHeading} + \group_begin: + \keys_define:nn { CutinHeading:#1 } { + font .tl_set:N = \l__jlreq_fontcommand_tl, + onelinemax .tl_set:N = \l__jlreq_onelinemax_tl, + twolinemax .tl_set:N = \l__jlreq_twolinemax_tl, + indent .tl_set:N = \l__jlreq_indent_tl,% 0pt + after_space .tl_set:N = \l__jlreq_after_space_tl, + } + \keys_set:nn { CutinHeading:#1 } { + font = { \sffamily\gtfamily\bfseries }, + onelinemax = { 6\jlreq@zw }, + twolinemax = { 20\jlreq@zw } , + indent = { 0pt }, + after_space = { 1\jlreq@zw } + } + \keys_set:nn { CutinHeading:#1 } {#3} + \bool_if:nT { \dim_compare_p:n {\l__jlreq_after_space_tl < 0.99\jlreq@zw} || \dim_compare_p:n { \l__jlreq_after_space_tl > 2.01\jlreq@zw } }{ + \jlreq@note{窓見出しと本文との空き量は,基本版面の文字サイズの全角以上,2倍未満とする~(4.1.10.c).}% }{}% - \edef\jlreq@do{% - \noexpand\def\expandonce{\csname #1\endcsname}{% - \noexpand\UseHook{jlreq/heading/before}% - \noexpand\UseHook{jlreq/heading/before/#1}% - \noexpand\jlreq@CutinHeading@start{#1}{\expandonce{\jlreq@fontcommand}}{\expandonce{\jlreq@indent}}{\expandonce{\jlreq@after@space}}{\expandonce{\jlreq@onelinemax}}{\expandonce{\jlreq@twolinemax}}% - }% - }% - \expandafter\endgroup - \jlreq@do + \cs_set:Nx \l__jlreq_do: { + \exp_not:N \DeclareDocumentCommand \exp_not:c {#1} {m} { + \exp_not:N \UseHook{jlreq/heading/before}% + \exp_not:N \UseHook{jlreq/heading/before/#1}% + \exp_not:N \__jlreq_CutinHeading_start:nnnnnnn{#1}{\exp_not:o \l__jlreq_fontcommand_tl}{\exp_not:o \l__jlreq_indent_tl}{\exp_not:o \l__jlreq_after_space_tl}{\exp_not:o \l__jlreq_onelinemax_tl}{\exp_not:o \l__jlreq_twolinemax_tl}{####1} + } + } + \exp_after:wN \group_end: + \l__jlreq_do: } -\newcommand*{\NewCutinHeading}[3]{% +\NewDocumentCommand{\NewCutinHeading} { m m +m } {% \expandafter\@ifdefinable\csname #1\endcsname{\DeclareCutinHeading{#1}{#2}{#3}}% } -\newcommand*{\RenewCutinHeading}[3]{% +\NewDocumentCommand{\RenewCutinHeading} { m m +m } {% \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareCutinHeading{#1}{#2}{#3}}% } -\newcommand*{\ProvideCutinHeading}[3]{% +\NewDocumentCommand{\ProvideCutinHeading} { m m +m } {% \@ifundefined{#1}{\DeclareCutinHeading{#1}{#2}{#3}}{}% } -\ExplSyntaxOn -\NewDocumentCommand{\ModifyHeading}{m m}{ - \@ifundefined { jlreq@heading@setting@#1 } { \ClassError{jlreq}{Unknown heading: #1}{\@ehc} } {} +\NewDocumentCommand{\ModifyHeading}{m +m}{ + \@ifundefined { jlreq@heading@setting@#1 } { \ClassError{jlreq}{Unknown~heading:~#1}{\@ehc} } {} \group_begin: \tl_set:Nn \l_jlreq_tmpa_tl {#2} \str_set:Nn \l_jlreq_tmpa_str {#2} @@ -3045,23 +3017,22 @@ \exp_after:wN \group_end: \l_jlreq_do: } -\ExplSyntaxOff % 見出し#1をマクロ#2に保存する -\newcommand{\SaveHeading}[2]{% - \@ifundefined{jlreq@heading@setting@#1}{\ClassError{jlreq}{Unknown heading: #1}{\@ehc}}{}% +\NewDocumentCommand{\SaveHeading}{ m m }{% + \@ifundefined{jlreq@heading@setting@#1}{\ClassError{jlreq}{Unknown~heading:~#1}{\@ehc}}{}% \edef#2{% \csexpandonce{jlreq@heading@type@#1}{\unexpanded{#1}}{\csexpandonce{jlreq@heading@level@#1}}{\csexpandonce{jlreq@heading@setting@#1}}% }% } -\newcommand*{\jlreq@keepbaselineskip}[1]{% +\def\jlreq@keepbaselineskip#1{% \begingroup \edef\jlreq@do{\unexpanded{#1}\noexpand\baselineskip=\the\baselineskip}% \expandafter\endgroup \jlreq@do } -\newcommand*{\jlreq@HeadingType}[1]{% +\def\jlreq@HeadingType#1{% \ifcsname jlreq@heading@type@#1\endcsname \jlreq@HeadingType@{#1}{\RenewTobiraHeading}{TobiraHeading}{% \jlreq@HeadingType@{#1}{\RenewBlockHeading}{BlockHeading}{% @@ -3072,31 +3043,15 @@ UndefinedHeading% \fi } -\newcommand*{\jlreq@HeadingType@}[2]{% +\def\jlreq@HeadingType@#1#2{% \jlreq@if{\expandafter\expandafter\expandafter\ifx\csname jlreq@heading@type@#1\endcsname#2\fi}% } % 全ての見出しにマクロ#1を適用する. \def\jlreq@heading@execmacro@toallheadings#1{% - \begingroup - \def\jlreq@do{}% - \ifx\jlreq@heading@allheadings\@undefined - \jlreq@heading@execmacro@toallheadings@{#1}{chapter,part,section,subsection,subsubsection,paragraph,subparagraph}% - \else - \def\@tempa{\jlreq@heading@execmacro@toallheadings@{#1}}% - \expandafter\@tempa\expandafter{\jlreq@heading@allheadings}% - \fi - \expandafter\endgroup - \jlreq@do + \seq_map_inline:Nn \l__jlreq_heading_allheadings_seq { #1{##1} } } -\def\jlreq@heading@execmacro@toallheadings@#1#2{ - \@for\jlreq@tempa:=#2\do{% - \@ifundefined{\jlreq@tempa}{}{% - \eappto\jlreq@do{\noexpand#1{\expandonce{\jlreq@tempa}}}% - }% - }% -} \def\jlreq@clearheadingmarks#1{% \@ifundefined{#1mark}{}{% \expandafter\let\csname#1mark\endcsname=\@gobble @@ -3120,13 +3075,13 @@ %. 注 % 文字サイズは6ポイントくらい(4.2.3.a)とりあえす\scriptsize %.. 合印(4.2.3) -\newcommand*\jlreq@referencemark@format[1]{#1} +\newcommand*{\jlreq@referencemark@format}[1]{#1} \newif\ifjlreqadjustreferencemark \jlreqadjustreferencemarktrue -\ExplSyntaxOn -\jlreq@jlreqsetup@add{reference_mark}[inline,interlinear]{ - \def\jlreq@referencemark{#1} - \str_if_eq:VnTF \jlreq@referencemark { inline } { +\keys_define:nn { jlreqsetup } { + reference_mark .choice:, + reference_mark / inline .code:n = { + \def\jlreq@referencemark{#1} \def\jlreq@notemark##1{% \jlreq@ifydir{% \hbox{}\hbox{\@textsuperscript{\normalfont\jlreq@referencemark@format{##1}}}\hbox{}% @@ -3148,7 +3103,9 @@ }% \noexpand\jlreq@if{\noexpand\ifnum 0\expandonce{\@tempa}>0~\noexpand\fi}{}{\noexpand\inhibitglue}% } - }{% reference_mark=interlinear + }, + reference_mark / interlinear .code:n = { + \def\jlreq@referencemark{#1} \def\jlreq@notemark##1{{% \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{##1}}% \@tempdima=\wd\@tempboxa @@ -3178,7 +3135,6 @@ \def\jlreq@hook@postnote{\jlreq@fixjfm} } } -\ExplSyntaxOff % \@footnotemarkをシンプルなものにする \def\jlreq@setdefaultnotemark#1#2{% \def#1{% @@ -3211,51 +3167,51 @@ \jlreq@do % インデントの計算:脚注の長さが文字の整数倍になるように字下げする(4.2.5.b) -\jlreq@jlreqsetup@add{footnote_indent}{% - \if@tate\else - \ifdim\dimexpr#1\relax=0pt \else\jlreq@note{脚注は,一般にその前に区切りのための罫線を挿入するので,字下げは行わなくてよい(4.2.5.b).}\fi - \fi - \begingroup - \footnotesize - \jlreq@footnoteindent=\dimexpr#1\relax - \@tempdima=\dimexpr\textwidth - \jlreq@footnoteindent\relax - \@tempdimb=1\jlreq@zw - \divide\@tempdima\@tempdimb \multiply\@tempdima\@tempdimb - \edef\jlreq@do{\noexpand\jlreq@footnoteindent=\the\dimexpr\textwidth - \@tempdima\relax}% - \expandafter\endgroup - \jlreq@do +\keys_define:nn { jlreqsetup } { + footnote_indent .code:n = { + \bool_if:nT { \legacy_if_p:n { @tate } && \dim_compare_p:n { #1 = 0pt } } { + \jlreq@note{脚注は,一般にその前に区切りのための罫線を挿入するので,字下げは行わなくてよい(4.2.5.b).} + } + \begingroup + \footnotesize + \jlreq@footnoteindent=\dimexpr#1\relax + \@tempdima=\dimexpr\textwidth - \jlreq@footnoteindent\relax + \@tempdimb=1\jlreq@zw + \divide\@tempdima\@tempdimb \multiply\@tempdima\@tempdimb + \edef\jlreq@do{\noexpand\jlreq@footnoteindent=\the\dimexpr\textwidth - \@tempdima\relax}% + \expandafter\endgroup + \jlreq@do + } } \newcommand{\@makefntext}[1]{\jlreq@makefntext{#1}} -\ExplSyntaxOn -\jlreq@jlreqsetup@add{footnote_second_indent}{% - \legacy_if:nF { @tate }{ - \bool_if:nF { - ( \dim_compare_p:n { 0.99\jlreq@zw < \dimexpr #1\relax } && \dim_compare_p:n { \dimexpr #1\relax < 1.01\jlreq@zw } ) || - ( \dim_compare_p:n { -1.01\jlreq@zw < \dimexpr #1\relax } && \dim_compare_p:n { \dimexpr #1\relax < -0.99\jlreq@zw } ) - }{\jlreq@note{脚注が2行以上となった場合,脚注の2行目以下の字下げを1行目より,脚注の文字サイズの全角アキとするか,逆に,1行目の字下げを2行目より,脚注の文字サイズの全角アキとする (4.2.5.d).}} - } - \ifdim\dimexpr #1\relax<0pt - \def\jlreq@makefntext{} - \else - \def\jlreq@makefntext{\addtolength{\leftskip}{\glueexpr #1\relax}} - \fi - \long\edef\jlreq@makefntext##1{\expandonce{\jlreq@makefntext}% - \unexpanded{% - \addtolength{\leftskip}{\jlreq@footnoteindent}% - \parindent=1\jlreq@zw - \noindent - \hskip-\glueexpr #1\relax - \jlreq@referencemark@format{\@thefnmark}% - \hskip\glueexpr 1\jlreq@zw\relax - }##1% +\keys_define:nn { jlreqsetup } { + footnote_second_indent .code:n = { + \legacy_if:nF { @tate }{ + \bool_if:nF { + ( \dim_compare_p:n { 0.99\jlreq@zw < #1 } && \dim_compare_p:n { #1 < 1.01\jlreq@zw } ) || + ( \dim_compare_p:n { -1.01\jlreq@zw < #1 } && \dim_compare_p:n { #1 < -0.99\jlreq@zw } ) + }{\jlreq@note{脚注が2行以上となった場合,脚注の2行目以下の字下げを1行目より,脚注の文字サイズの全角アキとするか,逆に,1行目の字下げを2行目より,脚注の文字サイズの全角アキとする~(4.2.5.d).}} + } + \dim_compare:nTF { #1 < 0pt } { + \def\jlreq@makefntext{} + }{ + \def\jlreq@makefntext{\addtolength{\leftskip}{\glueexpr #1\relax}} + } + \long\edef\jlreq@makefntext##1{\expandonce{\jlreq@makefntext}% + \unexpanded{% + \addtolength{\leftskip}{\jlreq@footnoteindent}% + \parindent=1\jlreq@zw + \noindent + \hskip-\glueexpr #1\relax + \jlreq@referencemark@format{\@thefnmark}% + \hskip\glueexpr 1\jlreq@zw\relax + }##1% + } } } -\ExplSyntaxOff -\jlreq@jlreqsetup@add{footnotetext_indent}{ - \ClassWarningNoLine{jlreq}{footnotetext_indent was removed} -} +\keys_define:nn { jlreqsetup } { footnotetext_indent .code:n = {\ClassWarningNoLine{jlreq}{footnotetext_indent~was~removed} } } \ifx l\jlreq@engine \fnfixbottomtrue @@ -3300,7 +3256,6 @@ \let\footnotetext=\jlreq@temporary@saved@footnotetext } -\ExplSyntaxOn \bool_if:nTF { \legacy_if_p:n { @tate } && (\legacy_if_p:n { @twoside } || \legacy_if_p:n { @twocolumn }) }{ % 縦組の傍注は,その見開き内に付いている合印に対応する注を,奇数ページの左端にそろえて配置する.多段組では最下段の左端にそろえて配置する.(4.2.6.a) % 必要ならば\footnoteを\footnotemarkと\footnotetextにわけ,\footnotetextをアウトプット時まで遅延することで実現する. @@ -3324,7 +3279,7 @@ \def\jlreq@footnote@delayfootnote@page{% \jlreq@setcurrentpage \jlreq@resultcnt=\numexpr\jlreq@currentpage\relax - \ifnum\jlreq@resultcnt=\value{page}\if@firstcolumn\else\jlreq@resultcnt=-1 \fi\fi + \ifnum\jlreq@resultcnt=\value{page}\if@firstcolumn\else\jlreq@resultcnt=-1~\fi\fi } \fi \long\def\jlreq@footnote@delayfootnote@delay#1#2{% @@ -3374,7 +3329,7 @@ \def\jlreq@result{}#2[#4]\jlreq@result \def\jlreq@result{}#3[#4]{#5}% \jlreq@restore@jlreq@footnotes}% - \jlreq@if{\ifnum\jlreq@resultcnt=-1 \fi}{\noexpand\jlreq@result}{\unexpanded{% + \int_compare:nTF { \jlreq@resultcnt=-1 }{\noexpand\jlreq@result}{\unexpanded{% \xappto\jlreq@footnote@delayfootnoteslist{% \noexpand\jlreq@footnote@delayfootnote{\the\jlreq@resultcnt}{% \noexpand\jlreq@restore@original@footnotes @@ -3421,19 +3376,18 @@ \jlreq@hook@postnote } } -\ExplSyntaxOff % 合印 \renewcommand*{\@makefnmark}{% \jlreq@ifydir{\jlreq@notemark{\@thefnmark}}{\hbox{\jlreq@notemark{\@thefnmark}}}% } % 4.2.2注3 -\if@tate +\legacy_if:nTF { @tate } { \renewcommand*{\thefootnote}{\jlreq@open@bracket@before@space\inhibitglue(\tatechuyoko*{\@arabic\c@footnote})\inhibitglue} -\else +}{ \renewcommand*{\thefootnote}{\arabic{footnote}\hbox{})\inhibitglue} -\fi -\ifthenelse{\equal{\jlreq@article@type}{article}}{}{\@addtoreset{footnote}{chapter}} +} +\str_if_eq:VnF \jlreq@article@type { article } { \@addtoreset{footnote}{chapter} } %.. 後注(4.2.4) @@ -3522,12 +3476,16 @@ } % 4.2.4.b \jlreq@endnote@indent=2\jlreq@mol -\jlreq@jlreqsetup@add{endnote_second_indent}{ - \def\jlreq@endnote@second@indent{#1} - \ifthenelse{ - \( \lengthtest{0.99\jlreq@zw < #1} \AND \lengthtest{#1 < 1.01\jlreq@zw} \) \OR - \( \lengthtest{1.99\jlreq@zw < #1} \AND \lengthtest{#1 < 2.01\jlreq@zw} \) - }{}{\jlreq@note{後注が2行以上となった場合,後注の2行目以下の字下げは,1行目より,後注の文字サイズの2倍又は全角とする (4.2.4.d).}} +\keys_define:nn { jlreqsetup } { + endnote_second_indent .code:n = { + \def\jlreq@endnote@second@indent{#1} + \bool_if:nTF { + ( \dim_compare_p:n { 0.99\jlreq@zw < #1 } && \dim_compare_p:n { #1 < 1.01\jlreq@zw } ) || + ( \dim_compare_p:n { 1.99\jlreq@zw < #1 } && \dim_compare_p:n { #1 < 2.01\jlreq@zw } ) + } {} { + \jlreq@note{後注が2行以上となった場合,後注の2行目以下の字下げは,1行目より,後注の文字サイズの2倍又は全角とする (4.2.4.d).} + } + } } \newcommand{\@makeendtext}[1]{% \csname\jlreq@endnotemarkname\endcsname @@ -3537,48 +3495,49 @@ \let\@makeendmark=\@makefnmark % \theendnoteの出力を仕込む -\jlreq@jlreqsetup@add{endnote_position}{ - \AddToHook{jlreq/heading/before}[jlreq/endnote]{} - \RemoveFromHook{jlreq/heading/before}[jlreq/endnote] - \jlreq@tempafalse % headingsが指定された - \jlreq@tempbfalse % paragraphが指定された - % \jlreq@tempcにセクション名たちを入れていく - \def\jlreq@tempc{} - \@for\jlreq@tempa:=#1\do{ - \expandafter\jlreq@helper@trim\expandafter{\jlreq@tempa}{\jlreq@tempa}% - \jlreq@switch{\jlreq@tempa}{ - {headings}{\jlreq@tempatrue} - {paragraph}{ - \jlreq@tempatrue% _paragraphの時は_headingsも有効にする - \jlreq@tempbtrue - } - { - \expandafter\jlreq@iffirsttoken@ignorespaces\expandafter{\jlreq@tempa}{_}{ - \edef\jlreq@tempc{\jlreq@tempc,\expandafter\@gobble\jlreq@tempa} - }{ - \ClassError{jlreq}{Invalid value \jlreq@tempa\space in endnote_position}{\@ehc} +\keys_define:nn { jlreqsetup } {endnote_position .code:n = { + \AddToHook{jlreq/heading/before}[jlreq/endnote]{} + \RemoveFromHook{jlreq/heading/before}[jlreq/endnote] + \jlreq@tempafalse % headingsが指定された + \jlreq@tempbfalse % paragraphが指定された + % \jlreq@tempcにセクション名たちを入れていく + \def\jlreq@tempc{} + \clist_map_variable:nNn {#1} \jlreq@tempa { + \expandafter\jlreq@helper@trim\expandafter{\jlreq@tempa}{\jlreq@tempa}% + \jlreq@switch{\jlreq@tempa}{ + {headings}{\jlreq@tempatrue} + {paragraph}{ + \jlreq@tempatrue% _paragraphの時は_headingsも有効にする + \jlreq@tempbtrue + } + { + \str_if_eq:eeTF { \str_head:N \jlreq@tempa } {_} { + \edef\jlreq@tempc{\jlreq@tempc,\expandafter\@gobble\jlreq@tempa} + }{ + \ClassError{jlreq}{Invalid~value~\jlreq@tempa\space in~endnote_position}{\@ehc} + } } } } - } - - \ifjlreq@tempb - \edef\endnote{\unexpanded{\def\par{\@restorepar\theendnotes\par}}\expandonce{\jlreq@endnote@impl}} - \else - \let\endnote=\jlreq@endnote@impl - \fi + + \ifjlreq@tempb + \edef\endnote{\unexpanded{\def\par{\@restorepar\theendnotes\par}}\expandonce{\jlreq@endnote@impl}} + \else + \let\endnote=\jlreq@endnote@impl + \fi - \ifjlreq@tempa - \AddToHook{jlreq/heading/before}[jlreq/endnote]{\theendnotes} - \else - \@for\@tempa:=\jlreq@tempc\do{ - \ifx\@tempa\@empty\else - \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{} - \RemoveFromHook{jlreq/heading/before/\@tempa}[jlreq/endnote] - \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{\theendnotes} - \fi - } - \fi + \ifjlreq@tempa + \AddToHook{jlreq/heading/before}[jlreq/endnote]{\theendnotes} + \else + \clist_map_variable:NNn \jlreq@tempc \@tempa { + \tl_if_empty:VF \@tempa { + \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{} + \RemoveFromHook{jlreq/heading/before/\@tempa}[jlreq/endnote] + \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{\theendnotes} + } + } + \fi + } } \AtEndDocument{\theendnotes} @@ -3591,7 +3550,7 @@ % (1) では\sidenote[]{}を定義 % (2) では\sidenote{見出し}{注中身}を定義 % sidenote_length>0ptの時のみ定義する -\jlreq@if{\ifdim\jlreq@sidenote@length>0pt \fi} +\jlreq@if{\ifdim\jlreq@sidenote@length>0pt\relax\fi} { \def\jlreq@sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名 \long\def\@sidenotetext#1{% @@ -3603,10 +3562,12 @@ } \jlreq@setdefaultnotemark\@sidenotemark\@makesidemark \def\jlreq@sidenotecounter{footnote}% 傍注用のカウンタ名 - \jlreq@jlreqsetup@add{sidenote_type}[number,symbol]{\def\jlreq@sidenote@type{#1}} + \keys_define:nn { jlreqsetup } { + sidenote_type .choices:nn = { number, symbol } { \def\jlreq@sidenote@type{#1} } + } \def\jlreq@sidenote@type{number} - \jlreq@jlreqsetup@addtofinally{ - \ifthenelse{\equal{\jlreq@sidenote@type}{number}}{ + \__jlreq_jlreqsetup_addtofinally:n { + \str_if_eq:VnT \jlreq@sidenote@type { number } { \def\sidenote{\jlreq@hook@prenote\@ifnextchar[{\jlreq@sidenote}{\jlreq@sidenote[]}} \def\sidenotemark{\jlreq@hook@prenote\@ifnextchar[{\jlreq@sidenotemark}{\jlreq@sidenotemark[]}} \def\sidenotetext{\@ifnextchar[{\jlreq@sidenotetext}{\jlreq@sidenotetext[]}} @@ -3643,7 +3604,8 @@ \long\def\@makesidetext#1{ \kern-1\jlreq@zw\csname\jlreq@sidenotemarkname\endcsname\hspace{0.5\jlreq@mol}#1} \fi \let\@makesidemark=\@makefnmark - }{% sidenote_type = symbol + } + \str_if_eq:VnT \jlreq@sidenote@type { symbol } {% sidenote_type = symbol \long\def\sidenote#1#2{\jlreq@sidenote{#1}{#2}} \def\sidenotemark#1{\jlreq@sidenotemark{#1}} \long\def\sidenotetext#1#2{\jlreq@sidenotetext{#1}{#2}} @@ -3668,20 +3630,20 @@ \apptocmd{\sidenotemark}{\jlreq@hook@postnote}{}{} } } - \jlreq@jlreqsetup@add{sidenote_symbol}{\def\jlreq@sidenote@defaultmark{#1}} - \jlreq@jlreqsetup@add{sidenote_keyword_font}{\def\jlreq@sidenote@keywordfont{#1}} + \keys_define:nn { jlreqsetup } { sidenote_symbol .tl_set:N = \jlreq@sidenote@defaultmark } + \keys_define:nn { jlreqsetup } { sidenote_keyword_font .tl_set:N = \jlreq@sidenote@keywordfont } }{} %.. 割注(3.4) \def\inlinenotesize{.6\jlreq@jafontsize} % 割注の文字サイズ \let\jlreq@inlinenote@autolinebreak=\\% 計測時は\linebreakより\\の方が安定する.悩ましい……. -\newcommand{\jlreq@inlinenote@kakkofontsize}{% +\def\jlreq@inlinenote@kakkofontsize{% \fontsize{\dimexpr\inlinenotesize * 2\relax}{\dimexpr \inlinenotesize * 2\relax}% \selectfont } -\newcommand{\jlreq@inlinenote@fontsize}{% +\def\jlreq@inlinenote@fontsize{% \fontsize{\inlinenotesize}{\inlinenotesize}% \selectfont } @@ -3691,16 +3653,20 @@ % \inlinenote*は自動で改行されない.\\で改行位置を指定する. \newif\ifjlreq@in@inlinenote \jlreq@in@inlinenotefalse -\newcommand*{\jlreq@inlinenote@}[1]{% - \ifjlreq@in@inlinenote\ClassError{jlreq}{\string#1\space can't be nested}{\@ehc}\fi +\NewDocumentCommand{\inlinenote}{ s m } { + \ifjlreq@in@inlinenote\ClassError{jlreq}{\string\inlinenote\space can't~be~nested}{\@ehc}\fi + \jlreq@in@inlinenotetrue + \ifvmode\leavevmode\fi + \IfBooleanTF {#1} { \jlreq@inlinenote@noauto {#2} } { \jlreq@inlinenote@auto {#2} } +} +\NewDocumentCommand{\warichu}{ s m } { + \ifjlreq@in@inlinenote\ClassError{jlreq}{\string\warichu\space can't~be~nested}{\@ehc}\fi \jlreq@in@inlinenotetrue \ifvmode\leavevmode\fi - \@ifstar\jlreq@inlinenote@noauto\jlreq@inlinenote@auto + \IfBooleanTF {#1} { \jlreq@inlinenote@noauto {#2} } { \jlreq@inlinenote@auto {#2} } } -\DeclareRobustCommand*{\inlinenote}{\jlreq@inlinenote@{\inlinenote}} -\DeclareRobustCommand*{\warichu}{\jlreq@inlinenote@{\warichu}} -\newcommand*{\jlreq@inlinenote@auto}[1]{% +\def\jlreq@inlinenote@auto#1{% % 割注初め括弧の前の場所を保存 \jlreq@savepos@for@rest@linewidth % \jlreq@tempdimbに,現在行の残り長さを入れる @@ -3730,10 +3696,10 @@ \fi % \jlreq@parshapeargに\parshapeに指定する書式の最後以外を入れる. \ifnum\@tempcntb>2\relax - \edef\jlreq@parshapearg{0pt \the\jlreq@tempdimb\space 0pt \the\jlreq@tempdimb}% + \edef\jlreq@parshapearg{0pt~\the\jlreq@tempdimb\space 0pt~\the\jlreq@tempdimb}% \@tempcnta=4\relax \@whilenum\@tempcnta<\@tempcntb\do{% - \edef\jlreq@parshapearg{\jlreq@parshapearg\space 0pt \the\linewidth\space 0pt \the\linewidth}% + \edef\jlreq@parshapearg{\jlreq@parshapearg\space 0pt~\the\linewidth\space 0pt~\the\linewidth}% \advance\@tempcnta by 2\relax }% \setlength{\jlreq@tempdimc}{\dimexpr\jlreq@tempdimc - \jlreq@tempdimb - \linewidth * \numexpr(\@tempcntb - 4)/2\relax\relax}% @@ -3755,10 +3721,10 @@ \@tempcntb=1001\relax \fi \advance\@tempcntb by 2\relax - \edef\jlreq@parshapearg{\jlreq@parshapearg 0pt \the\jlreq@tempdimb 0pt \the\jlreq@tempdimb}% + \edef\jlreq@parshapearg{\jlreq@parshapearg~0pt~\the\jlreq@tempdimb~0pt~\the\jlreq@tempdimb}% }% \ifvoid\jlreq@resultbox - \ClassWarning{jlreq}{\string\warichu\space failed, may be a bug}% + \ClassWarning{jlreq}{\string\warichu\space failed,~may~be~a~bug}% \else \@tempcnta=0 \splittopskip=0pt\relax @@ -3769,7 +3735,7 @@ \addtolength{\jlreq@tempdimb}{-\wd\@tempboxa}% \setbox\@tempboxa=\box\jlreq@resultbox \@whilenum\@tempcnta<\jlreq@inlinenote@lines\do{% - \ifnum\@tempcnta>0 \jlreq@inlinenote@autolinebreak\fi + \int_compare:nT { \@tempcnta > 0 } { \jlreq@inlinenote@autolinebreak } % \jlreq@tempdimaに今の行の長さを入れる \ifnum\@tempcnta<\numexpr\jlreq@inlinenote@lines - 2\relax \ifnum\@tempcnta=0\jlreq@tempdima=\jlreq@tempdimb @@ -3804,7 +3770,7 @@ \jlreq@inlinenote@endnote } -\newcommand*{\jlreq@inlinenote@noauto}[1]{% +\def\jlreq@inlinenote@noauto#1{% \setbox\jlreq@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize\inhibitglue\jlreq@open@bracket@before@space(}% \inhibitglue\jlreq@box@putcenter\jlreq@tempboxa \jlreq@inlinenote@noauto@#1\\\jlreq@endmark\jlreq@endmark @@ -3840,7 +3806,7 @@ \jlreq@box@putcenter\@tempboxa } -\newcommand{\jlreq@inlinenote@endnote}{% +\def\jlreq@inlinenote@endnote{% \jlreq@in@inlinenotefalse {% \setbox\jlreq@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize)}% @@ -3856,14 +3822,14 @@ % * それ以降はX % として整形した際に,#5行以内に収まる. % \jlreq@resultboxに整形結果を返す(垂直ボックス).見つからなかったらvoid.\globalに設定する. -\newcommand{\jlreq@inlinenote@determinelength}[7]{% +\def\jlreq@inlinenote@determinelength#1#2#3#4#5#6#7{% \begingroup % \message{#1 の試行開始,行数 = #5, \the\dimexpr#6\relax から \the\dimexpr#7\relaxまで}% \@tempcnta=1\relax \def\@tempa{}% % 調整に使う行の\parshape指定を\@tempaに入れる.長さは\jlreq@tempdima. \@whilenum\@tempcnta<#4\do{% - \expandafter\def\expandafter\@tempa\expandafter{\@tempa 0pt \the\jlreq@tempdima}% + \expandafter\def\expandafter\@tempa\expandafter{\@tempa 0pt~\the\jlreq@tempdima}% \advance\@tempcnta by 1\relax }% \@tempcnta=0 @@ -3877,7 +3843,7 @@ \setbox\@tempboxa=\vbox{#2% \vbadness=10000\hbadness=10000\vfuzz=\maxdimen\hfuzz=\maxdimen \parindent=0pt\leftskip=0pt\rightskip=0pt - \parshape #5 #3 \@tempa 0pt \the\maxdimen + \parshape #5~#3~\@tempa 0pt~\the\maxdimen #1\par\global\@tempcntb=\prevgraf}% % \message{\string\jlreq@tempdima = \the\jlreq@tempdima で試行,行数は\the\@tempcntb , 書式 #5 #3 \@tempa 0pt \the\maxdimen}% \fi @@ -3918,24 +3884,27 @@ % 2.6.1.cの後半が前半と整合的でないように見える…… % 柱:両柱と片柱(2.6.3) \@tempdima=\jlreq@speciallength{\jlreq@headfoot@sidemargin} -\ifthenelse{\lengthtest{\@tempdima=0pt} \OR \(\lengthtest{0.99\zw < \@tempdima} \AND \lengthtest{\@tempdima < 1.01\zw}\)}{}{ +\bool_if:nTF { + \dim_compare_p:n { \@tempdima = 0pt } || + ( \dim_compare_p:n { 0.99\jlreq@zw < \@tempdima } && \dim_compare_p:n { \@tempdima < 1.01\jlreq@zw} ) +} {} { \jlreq@note{ノンブルまたは柱は,基本版面の左右にそろえるか,全角アキだけ寄せた位置に配置する (2.6.1.b).} } %.. 場所指定解析 % bottom-leftみたいなのを解釈する.入力の順番はどっちでも良いが,出力は<top/bottom><left/right>の順番 % #1 = bottom-leftみたいなのを{bottom}{left}に変換し,#2に代入,#3はデフォルト値,出力形式で入れる -\newcommand*{\jlreq@pagestyle@parse@position}[3]{% +\def\jlreq@pagestyle@parse@position#1#2#3{% \jlreq@ifempty{#1}{\def#2{#3}}% {% \begingroup \jlreq@pagestyle@parse@position@#1-\jlreq@endmark - \ifthenelse{\equal{\jlreq@tempa}{fore}}{% + \str_if_eq:VnTF \jlreq@tempa { fore } { \expandafter\jlreq@pagestyle@parse@position@\jlreq@tempb-\jlreq@endmark - \ifthenelse{\equal{\jlreq@tempa}{edge}}{% + \str_if_eq:VnTF \jlreq@tempa { edge } { \def\jlreq@tempa{fore-edge}% }{% - \ClassError{jlreq}{Invalid position: fore-\jlreq@tempa}{\@ehc}% + \ClassError{jlreq}{Invalid~position:~fore-\jlreq@tempa}{\@ehc}% }% }{}% % \jlreq@tempcに縦方向を,\jlreq@tempdに横方向を入れる @@ -3953,14 +3922,14 @@ \def\jlreq@pagestyle@parse@position@#1-#2\jlreq@endmark{% \def\jlreq@tempa{#1}\def\jlreq@tempb{#2}% \jlreq@ifempty{#2}{% - \ifx\jlreq@tempb\@empty\ClassError{jlreq}{Invalid position: #1}{\@ehc}\fi + \ifx\jlreq@tempb\@empty\ClassError{jlreq}{Invalid~position:~#1}{\@ehc}\fi }{% \def\@tempa##1-\jlreq@endmark{\def\jlreq@tempb{##1}}% \@tempa#2\jlreq@endmark\relax }% } -\newcommand*\jlreq@pagestyle@parse@position@@[1]{% +\def\jlreq@pagestyle@parse@position@@#1{% \jlreq@switch{#1}{ {top}{\def\jlreq@tempc{#1}} {bottom}{\def\jlreq@tempc{#1}} @@ -3970,16 +3939,16 @@ {gutter}{\if@tate\def\jlreq@tempd{right}\else\def\jlreq@tempd{left}\fi} {fore_edge}{\if@tate\def\jlreq@tempd{left}\else\def\jlreq@tempd{right}\fi} {fore-edge}{\if@tate\def\jlreq@tempd{left}\else\def\jlreq@tempd{right}\fi} - {\ClassError{jlreq}{Invalid position: #1}{\@ehc}} + {\ClassError{jlreq}{Invalid~position:~#1}{\@ehc}} }% } % レベル#1より低いレベルの見出しの**markを\markboth{}{}にする \def\jlreq@pagestyle@setclearmark#1{% - \@for\@tempa:=\jlreq@heading@allheadings\do{% - \@ifundefined{\@tempa}{}{% - \@ifundefined{jlreq@heading@level@\@tempa}{}{% - \ifnum\csname jlreq@heading@level@\@tempa\endcsname<#1\relax\expandafter\def\csname\@tempa mark\endcsname##1{\markboth{}{}}\fi + \seq_map_inline:Nn \l__jlreq_heading_allheadings_seq { + \@ifundefined{##1}{}{% + \@ifundefined{jlreq@heading@level@##1}{}{% + \ifnum\csname jlreq@heading@level@##1\endcsname<#1\relax\expandafter\def\csname##1 mark\endcsname####1{\markboth{}{}}\fi }% }% }% @@ -4034,14 +4003,14 @@ % #1@heading@levelにレベルを入れる \def\jlreq@pagestyle@setmark#1#2#3#4#5{% \begingroup - \expandafter\jlreq@iffirsttoken\expandafter{#1}{_}{% - \ifthenelse{\equal{#3}{odd}}{\let\jlreq@leftright=r}{\let\jlreq@leftright=l}% + \str_if_eq:eeTF {\str_head:N #1} {_} { + \str_if_eq:nnTF {#3} { odd } { \let\jlreq@leftright=r } { \let\jlreq@leftright=l } \edef\jlreq@do{% \unexpanded{\def#1}{% \ifx l\jlreq@leftright - \ifnum#2=0 \noexpand\leftmark\else\unexpanded{\jlreq@extraleftmark{#2}}\fi + \int_compare:nTF { #2 = 0 } { \exp_not:N \leftmark } { \exp_not:n {\jlreq@extraleftmark{#2}} } \else - \ifnum#2=0 \noexpand\rightmark\else\unexpanded{\jlreq@extrarightmark{#2}}\fi + \int_compare:nTF { #2 = 0 } { \exp_not:N \rightmark } { \exp_not:n {\jlreq@extrarightmark{#2}} } \fi }% }% @@ -4052,7 +4021,7 @@ \eappto\jlreq@do{% \noexpand\let\expandonce{\csname\expandafter\@gobble\string #1@heading@level\endcsname}=\expandonce{\csname jlreq@heading@level@\jlreq@headingname\endcsname}% \unexpanded{\def#5}{\expandonce{#5},\expandonce{\jlreq@headingname}}% - \noexpand\appto\expandonce{\csname #4@\jlreq@headingname\endcsname}{{{\ifnum#2=0 #3\fi}{#2}{\ifx r\jlreq@leftright r\else l\fi}}}% + \noexpand\appto\expandonce{\csname #4@\jlreq@headingname\endcsname}{{{\int_compare:nT {#2=0} {#3}}{#2}{\ifx r\jlreq@leftright r\else l\fi}}}% }% }{\def\jlreq@do{}}% \expandafter\endgroup @@ -4065,7 +4034,7 @@ % #4: {{mark_formatからさらに調べるやつ (odd|even)}{マークの何番目か.extraでない場合は0}{l or r(leftかrightか)}}の並び \def\jlreq@pagestyle@make@headingmark#1#2#3#4{% \begingroup - \@for\jlreq@i:=0,1,2\do{% + \clist_map_variable:nNn {0,1,2} \jlreq@i { \expandafter\def\csname jlreq@leftmark@\jlreq@i\endcsname{}% \expandafter\def\csname jlreq@rightmark@\jlreq@i\endcsname{}% }% @@ -4079,7 +4048,7 @@ \else \eappto\jlreq@do{\jlreq@ifempty{#1}{\noexpand\markboth}{\noexpand\jlreq@markboth}{\csexpandonce{jlreq@leftmark@0}}{\csexpandonce{jlreq@rightmark@0}}}% \fi - \@for\jlreq@i:=1,2\do{% + \clist_map_variable:nNn {1,2} \jlreq@i { \expandafter\ifx\csname jlreq@leftmark@\jlreq@i\endcsname\@empty \expandafter\ifx\csname jlreq@rightmark@\jlreq@i\endcsname\@empty\else \eappto\jlreq@do{\noexpand\jlreq@setextrarightmark{\jlreq@i}{\csexpandonce{jlreq@rightmark@\jlreq@i}}}% @@ -4115,8 +4084,8 @@ \unexpanded{##1}% }% \jlreq@parsekeyval@nokey{% - \jlreq@ifempty{##1}{}{\ifthenelse{\equal{##1}{#3}}{\edef\jlreq@tempb{\unexpanded{##2}}}{}}% - \ifthenelse{\equal{##1}{_#1}}{\edef\jlreq@tempb{\unexpanded{##2}}}{}% + \tl_if_empty:nF {##1} {\str_if_eq:nnT {##1} {#3} {\edef\jlreq@tempb{\unexpanded{##2}}}} + \str_if_eq:nnT {##1} {_#1} {\edef\jlreq@tempb{\unexpanded{##2}}}% }{#2}% \ifx l#5% \expandafter\edef\csname jlreq@leftmark@#4\endcsname{\expandonce{\jlreq@tempb}}% @@ -4136,8 +4105,7 @@ % \edef内だと,#1 != 0ptならば\hskip \dimexpr#1\relaxになる \def\jlreq@pagestyle@hskip#1{% - \ifdim\dimexpr#1\relax=0pt \expandafter\@gobble\else\expandafter\@firstofone\fi - {\noexpand\hskip\noexpand\dimexpr#1\noexpand\relax}% + \dim_compare:nF { #1 = 0pt }{\noexpand\hskip\noexpand\dimexpr#1\noexpand\relax}% } \def\jlreq@pagestyle@setheadfoot@#1#2#3#4{% \begingroup @@ -4202,7 +4170,7 @@ }% } \def\jlreq@pagestyle@make@runninghead@#1#2#3#4#5{% - \jlreq@if{\ifnum\numexpr\jlreq@ifendmark{#5}{1}{0}*\ifjlreq@tempa 1\else 0\fi\relax=1 \fi}{% + \jlreq@if{\ifnum\numexpr\jlreq@ifendmark{#5}{1}{0}*\ifjlreq@tempa 1\else 0\fi\relax=1~\fi}{% % 項目が一つしか無い \jlreq@ifempty{#2}{\csappto}{\cspreto}{#1}{#4}% }{% @@ -4259,89 +4227,79 @@ %.. \DeclarePageStyle \newbox\jlreq@PageStyle@box -\newcommand{\DeclarePageStyle}[2]{% +\NewDocumentCommand{\DeclarePageStyle} { m +m } {% \expandafter\edef\csname jlreq@pagestyle@setting@#1\endcsname{\unexpanded{#2}}% \begingroup - \def\jlreq@nombre@i@position{}% - \def\jlreq@nombre@i{\thepage}% - \def\jlreq@running@head@i@position{}% - \def\jlreq@odd@running@head@i{}% - \def\jlreq@even@running@head@i{}% - \def\jlreq@command{}% - \def\jlreq@mark@format{}% - \def\jlreq@font{}% - \def\jlreq@nombre@font{}% - \def\jlreq@running@head@font{}% % フォーマットを空という可能性もあるかもしれないので,デフォルト値は\relaxで表す. \let\jlreq@oddheadformat\relax \let\jlreq@evenheadformat\relax \let\jlreq@oddfootformat\relax \let\jlreq@evenfootformat\relax % 柱とノンブルの間 - \def\jlreq@gap{1.5\jlreq@zw}% - \def\jlreq@nombre@gap{}% - \def\jlreq@running@head@gap{}% - \newif\ifjlreq@clearmarkcommand\jlreq@clearmarkcommandtrue - \newif\ifjlreq@pstate\jlreq@pstatefalse % PageStyleTATE - \@for\jlreq@i:=ii,iii\do{% - \expandafter\def\csname jlreq@nombre@\jlreq@i @position\endcsname{}% - \expandafter\def\csname jlreq@running@head@\jlreq@i @position\endcsname{}% - \expandafter\def\csname jlreq@nombre@\jlreq@i\endcsname{}% - \expandafter\def\csname jlreq@odd@running@head@\jlreq@i\endcsname{}% - \expandafter\def\csname jlreq@even@running@head@\jlreq@i\endcsname{}% - \expandafter\def\csname jlreq@nombre@\jlreq@i @font\endcsname{}% - \expandafter\def\csname jlreq@running@head@\jlreq@i @font\endcsname{}% - }% - \jlreq@parsekeyval[PageStyle:#1]{ - *{tate}{\jlreq@pstatetrue} - *{yoko}{\jlreq@pstatefalse} - {nombre}{\def\jlreq@nombre@i{##1}} - {nombre_position}{\def\jlreq@nombre@i@position{##1}} - {running_head_position}{\def\jlreq@running@head@i@position{##1}} - {odd_running_head}{\def\jlreq@odd@running@head@i{##1}} - {even_running_head}{\def\jlreq@even@running@head@i{##1}} - {font}{% + \newif\ifjlreq@clearmarkcommand + \newif\ifjlreq@pstate % PageStyleTATE + \keys_define:nn { PageStyle:#1 } { + tate .code:n = {\jlreq@pstatetrue}, + yoko .code:n = {\jlreq@pstatefalse}, + nombre .tl_set:N = \jlreq@nombre@i, + nombre_position .tl_set:N = \jlreq@nombre@i@position, + running_head_position .tl_set:N = \jlreq@running@head@i@position, + odd_running_head .tl_set:N = \jlreq@odd@running@head@i, + even_running_head .tl_set:N = \jlreq@even@running@head@i, + font .code:n = { \def\jlreq@nombre@font{##1}% \def\jlreq@running@head@font{##1}% - } - {nombre_font}{\def\jlreq@nombre@font{##1}} - {running_head_font}{\def\jlreq@running@head@font{##1}} - {mark_format}{\edef\jlreq@mark@format{\unexpanded{##1}}} - {command}{\edef\jlreq@command{\unexpanded{##1}}} - {gap}{\def\jlreq@gap{##1}} - {nombre_gap}{\def\jlreq@nombre@gap{##1}} - {running_head_gap}{\def\jlreq@running@head@gap{##1}} + }, + nombre_font .tl_set:N = \jlreq@nombre@font, + running_head_font .tl_set:N = \jlreq@running@head@font, + mark_format .code:n = {\edef\jlreq@mark@format{\unexpanded{##1}}}, + command .code:n = {\edef\jlreq@command{\unexpanded{##1}}}, + gap .tl_set:N = \jlreq@gap, + nombre_gap .tl_set:N = \jlreq@nombre@gap, + running_head_gap .tl_set:N = \jlreq@running@head@gap, % trueにすると,\ps@***実行時にまず\***markを全て\@gobbleにする. - {clear_markcommand}[true,false]{\csname jlreq@clearmarkcommand##1\endcsname} - {odd_head_format}{\edef\jlreq@oddheadformat{\unexpanded{##1}}} - {even_head_format}{\edef\jlreq@evenheadformat{\unexpanded{##1}}} - {odd_foot_format}{\edef\jlreq@oddfootformat{\unexpanded{##1}}} - {even_foot_format}{\edef\jlreq@evenfootformat{\unexpanded{##1}}} + clear_markcommand .choices:nn = {true,false}{\csname jlreq@clearmarkcommand##1\endcsname}, + odd_head_format .code:n = {\edef\jlreq@oddheadformat{\unexpanded{##1}}}, + even_head_format .code:n = {\edef\jlreq@evenheadformat{\unexpanded{##1}}}, + odd_foot_format .code:n = {\edef\jlreq@oddfootformat{\unexpanded{##1}}}, + even_foot_format .code:n = {\edef\jlreq@evenfootformat{\unexpanded{##1}}}, % 二つ目 - {nombre_ii}{\def\jlreq@nombre@ii{##1}} - {nombre_ii_position}{\def\jlreq@nombre@ii@position{##1}} - {running_head_ii_position}{\def\jlreq@running@head@ii@position{##1}} - {odd_running_head_ii}{\def\jlreq@odd@running@head@ii{##1}} - {even_running_head_ii}{\def\jlreq@even@running@head@ii{##1}} - {nombre_ii_font}{\def\jlreq@nombre@ii@font{##1}} - {running_head_ii_font}{\def\jlreq@running@head@ii@font{##1}} + nombre_ii .tl_set:N = \jlreq@nombre@ii, + nombre_ii_position .tl_set:N = \jlreq@nombre@ii@position, + running_head_ii_position .tl_set:N = \jlreq@running@head@ii@position, + odd_running_head_ii .tl_set:N = \jlreq@odd@running@head@ii, + even_running_head_ii .tl_set:N = \jlreq@even@running@head@ii, + nombre_ii_font .tl_set:N = \jlreq@nombre@ii@font, + running_head_ii_font .tl_set:N = \jlreq@running@head@ii@font, % 三つ目 - {nombre_iii}{\def\jlreq@nombre@iii{##1}} - {nombre_iii_position}{\def\jlreq@nombre@iii@position{##1}} - {running_head_iii_position}{\def\jlreq@running@head@iii@position{##1}} - {odd_running_head_iii}{\def\jlreq@odd@running@head@iii{##1}} - {even_running_head_iii}{\def\jlreq@even@running@head@iii{##1}} - {nombre_iii_font}{\def\jlreq@nombre@iii@font{##1}} - {running_head_iii_font}{\def\jlreq@running@head@iii@font{##1}} - }{#2}% + nombre_iii .tl_set:N = \jlreq@nombre@iii, + nombre_iii_position .tl_set:N = \jlreq@nombre@iii@position, + running_head_iii_position .tl_set:N = \jlreq@running@head@iii@position, + odd_running_head_iii .tl_set:N = \jlreq@odd@running@head@iii, + even_running_head_iii .tl_set:N = \jlreq@even@running@head@iii, + nombre_iii_font .tl_set:N = \jlreq@nombre@iii@font, + running_head_iii_font .tl_set:N = \jlreq@running@head@iii@font + } + \keys_set:nn { PageStyle:#1 } { + yoko, + nombre_font = {}, nombre_position = {}, nombre = {\thepage}, + nombre_ii_font = {}, nombre_ii_position = {}, nombre_ii = {}, + nombre_iii_font = {}, nombre_iii_position = {}, nombre_iii = {}, + running_head_font = {}, running_head_position = {}, odd_running_head = {}, even_running_head = {}, + running_head_ii_font = {}, running_head_ii_position = {}, odd_running_head_ii = {}, even_running_head_ii = {}, + running_head_iii_font = {}, running_head_iii_position = {}, odd_running_head_iii = {}, even_running_head_iii = {}, + command = {}, mark_format = {}, gap = {1.5\jlreq@zw}, nombre_gap = {}, running_head_gap = {}, + clear_markcommand = {true}, + } + \keys_set:nn { PageStyle:#1 } {#2} % ノンブル同士の間や柱同士の間のデフォルトはノンブルと柱の間の空き量 \ifx\jlreq@nombre@gap\@empty\let\jlreq@nombre@gap=\jlreq@gap\fi \ifx\jlreq@running@head@gap\@empty\let\jlreq@running@head@gap=\jlreq@gap\fi % _iiが存在するか調べて\ifjlreq@headii@existに入れる \newif\ifjlreq@headii@exist \jlreq@headii@existfalse - \jlreq@for@noexpand\jlreq@tempa:=\jlreq@odd@running@head@ii,\jlreq@odd@running@head@ii\do{% - \expandafter\ifx\jlreq@tempa\@empty\else\jlreq@headii@existtrue\fi + \clist_map_inline:nn { \jlreq@odd@running@head@ii, \jlreq@odd@running@head@ii } { + \tl_if_empty:VF ##1 { \jlreq@headii@existtrue } }% % markの処理 % (odd|even)_running_head(_ii)が_<見出し命令>で与えられている場合,次のようにする. @@ -4356,8 +4314,8 @@ % * \jlreq@(odd|even)@running@head(@ii)@heading@levelに<見出し命令>のレベルを入れる.レベルが不明な時は\relaxになる. % また,\jlreq@headingmarklistに<見出し命令>の一覧を入れる. \def\jlreq@headingmarklist{}% - \@for\jlreq@parity:=odd,even\do{% - \@for\jlreq@i:=0,1,2\do{% + \clist_map_variable:nNn { odd, even } \jlreq@parity { + \clist_map_variable:nNn { 0, 1, 2 } \jlreq@i { % \jlreq@pagestyle@setmarkが上の処理を行う. \edef\jlreq@next{\noexpand\jlreq@pagestyle@setmark{\expandonce{\csname jlreq@\jlreq@parity @running@head@\@roman\numexpr\jlreq@i + 1\relax\endcsname}}{\expandonce{\jlreq@i}}{\expandonce{\jlreq@parity}}{jlreq@markdata}{\noexpand\jlreq@headingmarklist}}% \jlreq@next @@ -4366,7 +4324,7 @@ % \jlreq@minimumlevelに見出しの最低(数値が小さいという意味)レベルを入れる. \let\jlreq@minimumlevel=\@undefined \def\jlreq@markdefinecommand{}% - \@for\jlreq@heading:=\jlreq@headingmarklist\do{% + \exp_args:No \clist_map_variable:nNn \jlreq@headingmarklist \jlreq@heading { \ifx\jlreq@heading\@empty\else \expandafter\let\expandafter\jlreq@level\csname jlreq@heading@level@\jlreq@heading\endcsname \ifx\jlreq@level\relax\else @@ -4389,8 +4347,8 @@ \fi }}% % 二番目以降にフォント設定を追加 - \@for\jlreq@i:=ii,iii\do{% - \@for\jlreq@parity:=odd,even\do{% + \clist_map_variable:nNn { ii, iii } \jlreq@i { + \clist_map_variable:nNn { odd, even } \jlreq@parity { \jlreq@pagestyle@addfont@tocs{jlreq@\jlreq@parity @running@head@\jlreq@i}{jlreq@running@head@\jlreq@i @font}% }% \jlreq@pagestyle@addfont@tocs{jlreq@nombre@\jlreq@i}{jlreq@nombre@\jlreq@i @font}% @@ -4410,7 +4368,7 @@ \jlreq@pagestyle@addifempty{\jlreq@running@head@iii@position}{\jlreq@even@running@head@ii}{\jlreq@gapcs}{\jlreq@even@running@head@iii}% \jlreq@pagestyle@addifempty{\jlreq@running@head@ii@position}{\jlreq@even@running@head@i}{\jlreq@gapcs}{\jlreq@even@running@head@ii}% \def\jlreq@nombre@contents{}% ノンブルを入れる(下の方に出力) - \@for\jlreq@i:=i,ii,iii\do{% + \clist_map_variable:nNn { i, ii, iii } \jlreq@i { \expandafter\let\expandafter\jlreq@position\csname jlreq@nombre@\jlreq@i @position\endcsname \expandafter\ifx\csname jlreq@nombre@\jlreq@i\endcsname\@empty\else \jlreq@ifgluezero{\glueexpr\jlreq@position\relax}{\def\jlreq@position{}}{}% @@ -4425,9 +4383,9 @@ \fi }% % \jlreq@(odd|even)@contentsに柱を入れる(上の方に出力) - \@for\jlreq@parity:=odd,even\do{% + \clist_map_variable:nNn { odd, even } \jlreq@parity { \expandafter\def\csname jlreq@\jlreq@parity @contents\endcsname{}% - \@for\jlreq@i:=i,ii,iii\do{% + \clist_map_variable:nNn { i, ii, iii } \jlreq@i { \expandafter\let\expandafter\jlreq@position\csname jlreq@running@head@\jlreq@i @position\endcsname \expandafter\ifx\csname jlreq@\jlreq@parity @running@head@\jlreq@i\endcsname\@empty\else \jlreq@ifgluezero{\glueexpr\jlreq@position\relax}{\def\jlreq@position{}}{}% @@ -4489,41 +4447,50 @@ \def\jlreq@nombre@i@position@default{{bottom}{center}}% \def\jlreq@running@head@i@position@default{{top}{center}}% % ii以降の位置は指定されていない場合はiのそれに合わせる - \@for\jlreq@tempa:=jlreq@nombre,jlreq@running@head\do{% - \@for\jlreq@i:=ii,iii\do{% + \clist_map_variable:nNn { jlreq@nombre, jlreq@running@head } \jlreq@tempa { + \clist_map_variable:nNn { ii, iii } \jlreq@i { \expandafter\ifx\csname\jlreq@tempa @\jlreq@i @position\endcsname\@empty \expandafter\let\csname\jlreq@tempa @\jlreq@i @position\expandafter\endcsname\csname\jlreq@tempa @i@position\endcsname \fi \expandafter\edef\csname\jlreq@tempa @\jlreq@i @position@default\endcsname{\csname\jlreq@tempa @i@position@default\endcsname}% }% }% - \@for\jlreq@tempa:=jlreq@nombre@i@position,jlreq@nombre@ii@position,jlreq@nombre@iii@position,jlreq@running@head@i@position,jlreq@running@head@ii@position,jlreq@running@head@iii@position\do{% + \clist_map_variable:nNn { + jlreq@nombre@i@position, jlreq@nombre@ii@position, jlreq@nombre@iii@position, jlreq@running@head@i@position, jlreq@running@head@ii@position, jlreq@running@head@iii@position + } \jlreq@tempa { \edef\jlreq@next{\noexpand\jlreq@pagestyle@parse@position{\csexpandonce{\jlreq@tempa}}{\expandonce{\csname\jlreq@tempa\endcsname}}{\csexpandonce{\jlreq@tempa @default}}}% \jlreq@next }% - \ifthenelse{\( - \boolean{@tate} \AND \( - \equal{\expandafter\@secondoftwo\jlreq@nombre@i@position}{right} \OR - \equal{\expandafter\@secondoftwo\jlreq@running@head@i@position}{right} - \)\) \OR \( - \(\NOT \boolean{@tate}\) \AND \( - \equal{\expandafter\@secondoftwo\jlreq@nombre@i@position}{left} \OR - \equal{\expandafter\@secondoftwo\jlreq@running@head@i@position}{left} - \) - \)}{% + \bool_if:nT { ( + \legacy_if_p:n { @tate } && ( + \str_if_eq_p:ee { \expandafter\@secondoftwo\jlreq@nombre@i@position } { right } || + \str_if_eq_p:ee { \expandafter\@secondoftwo\jlreq@running@head@i@position }{ right } + ))}{ + )) || ( + (! \legacy_if_p:n { @tate } ) && ( + \str_if_eq_p:ee { \expandafter\@secondoftwo\jlreq@nombre@i@position }{ left } || + \str_if_eq_p:ee { \expandafter\@secondoftwo\jlreq@running@head@i@position }{ left } + ) + )}{ \if@twoside \jlreq@note{柱やノンブルは,左ページでは,基本版面の左端の延長線にノンブル又は柱の先頭をそろえて配置するか,基本版面の左端の延長線から基本版面の文字サイズの全角アキだけ右に寄せた位置に配置する (ページスタイル #1 内,2.6.1.b).}% \fi - }{}% + }% % フォント変更命令に文字出力命令が入っているとエラーになるのを回避するために\setboxでごまかす. \setbox\jlreq@tempboxa=\hbox{\jlreq@running@head@font - \ifthenelse{\lengthtest{\jlreq@gap < 1.49\jlreq@zw} \OR \( \lengthtest{\jlreq@gap > 1.51\jlreq@zw} \AND \lengthtest{\jlreq@gap < 1.99\jlreq@zw} \) \OR \lengthtest{\jlreq@gap > 2.01\jlreq@zw}}{\jlreq@note{ノンブルと柱との空き量は柱に使用する文字サイズの2倍又は1.5倍とする (ページスタイル #1 内,2.6.1.c).}}{}% + \bool_if:nT { + \dim_compare_p:n { \jlreq@gap < 1.49\jlreq@zw } || + ( \dim_compare_p:n { \jlreq@gap > 1.51\jlreq@zw } && \dim_compare_p:n { \jlreq@gap < 1.99\jlreq@zw } ) || + \dim_compare_p:n { \jlreq@gap > 2.01\jlreq@zw } + }{ + \jlreq@note{ノンブルと柱との空き量は柱に使用する文字サイズの2倍又は1.5倍とする (ページスタイル #1 内,2.6.1.c).} + } }% % 初期化 - \@for\jlreq@parity:=odd,even\do{% - \@for\jlreq@vert:=top,bottom\do{% - \@for\jlreq@hor:=left,center,right\do{% - \@for\jlreq@type:=nombre,running@head\do{% + \clist_map_variable:nNn { odd, even } \jlreq@parity { + \clist_map_variable:nNn { top, bottom } \jlreq@vert { + \clist_map_variable:nNn { left, center, right } \jlreq@hor { + \clist_map_variable:nNn { nombre, running@head } \jlreq@type { \expandafter\def\csname jlreq@\jlreq@type @\jlreq@parity @\jlreq@vert @\jlreq@hor\endcsname{}% }% }% @@ -4532,13 +4499,13 @@ \jlreq@ifleftpage{\jlreq@parity}{\def\jlreq@pagehor{left}}{\def\jlreq@pagehor{right}}% % \jlreq@(running@head|nombre)@(odd|even)@(top|bottom)@(left|center|right)に入れていく % 左ページではノンブルが左(2.6.1.c),i,ii,...はiが左になるようにする. - \@for\jlreq@i:=i,ii,iii\do{% + \clist_map_variable:nNn { i, ii, iii } \jlreq@i { % nombre \expandafter\ifx\csname jlreq@nombre@\jlreq@i\endcsname\@empty\else \edef\jlreq@position{\csname jlreq@nombre@\jlreq@i @position\endcsname}% \edef\jlreq@vert{\expandafter\@firstoftwo\jlreq@position}% \edef\jlreq@hor{\expandafter\@secondoftwo\jlreq@position}% - \ifthenelse{\equal{\jlreq@parity}{even}}{\jlreq@reverse@leftright{\jlreq@hor}}{}% + \str_if_eq:VnT \jlreq@parity { even } {\jlreq@reverse@leftright{\jlreq@hor}} \jlreq@ifleftpage{\jlreq@parity}{\let\jlreq@addtocs=\cseappto}{\let\jlreq@addtocs\csepreto}% \edef\jlreq@csname{jlreq@nombre@\jlreq@parity @\jlreq@vert @\jlreq@hor}% \expandafter\ifx\csname\jlreq@csname\endcsname\@empty\else\jlreq@addtocs{\jlreq@csname}{\unexpanded{\hskip\glueexpr}\expandonce{\jlreq@nombre@gap}\noexpand\relax}\fi @@ -4550,23 +4517,23 @@ \edef\jlreq@position{\csname jlreq@running@head@\jlreq@i @position\endcsname}% \edef\jlreq@vert{\expandafter\@firstoftwo\jlreq@position}% \edef\jlreq@hor{\expandafter\@secondoftwo\jlreq@position}% - \ifthenelse{\equal{\jlreq@parity}{even}}{\jlreq@reverse@leftright{\jlreq@hor}}{}% - \ifthenelse{\equal{\jlreq@hor}{\jlreq@pagehor}}{\let\jlreq@addtocs=\cseappto}{\let\jlreq@addtocs=\csepreto}% + \str_if_eq:VnT \jlreq@parity { even } {\jlreq@reverse@leftright{\jlreq@hor}} + \str_if_eq:VVTF \jlreq@hor \jlreq@pagehor {\let\jlreq@addtocs=\cseappto}{\let\jlreq@addtocs=\csepreto}% \edef\jlreq@csname{jlreq@running@head@\jlreq@parity @\jlreq@vert @\jlreq@hor}% \jlreq@addtocs{\jlreq@csname}{{\csexpandonce{jlreq@\jlreq@parity @running@head@\jlreq@i}}}% \fi }% % {A}{B}{C}の順だった柱を結合する.本体は\jlreq@pagestyle@make@runninghead. - \@for\jlreq@vert:=top,bottom\do{% - \@for\jlreq@hor:=left,center,right\do{% - \ifthenelse{\equal{\jlreq@hor}{right}}{\def\jlreq@tempa{*}}{\def\jlreq@tempa{}}% + \clist_map_variable:nNn { top, bottom } \jlreq@vert { + \clist_map_variable:nNn { left, center, right } \jlreq@hor { + \str_if_eq:VnTF \jlreq@hor { right } { \def\jlreq@tempa{*} } { \def\jlreq@tempa{} } \edef\jlreq@do{\noexpand\jlreq@pagestyle@make@runninghead{jlreq@running@head@\jlreq@parity @\jlreq@vert @\jlreq@hor}{\expandonce{\jlreq@tempa}}{\expandonce{\jlreq@running@head@gap}}}% \jlreq@do }% }% % ノンブルと柱を結合し,必要ならばフォント設定をする. - \@for\jlreq@vert:=top,bottom\do{% - \@for\jlreq@hor:=left,center,right\do{% + \clist_map_variable:nNn { top, bottom } \jlreq@vert {% + \clist_map_variable:nNn { left, center, right } \jlreq@hor {% \edef\jlreq@csname{jlreq@\jlreq@parity @\jlreq@vert @\jlreq@hor}% \edef\jlreq@runheadcsname{jlreq@running@head@\jlreq@parity @\jlreq@vert @\jlreq@hor}% \edef\jlreq@nombrecsname{jlreq@nombre@\jlreq@parity @\jlreq@vert @\jlreq@hor}% @@ -4587,10 +4554,10 @@ }{% % % 両方ある場合:左ページではノンブルが左,右ページではノンブルが右. \jlreq@ifleftpage{\jlreq@parity}{% - \ifthenelse{\equal{\jlreq@hor}{right}}{% + \str_if_eq:VnTF \jlreq@hor { right } { % <ノンブル><空き><柱>,右寄せ % 柱が空出ないときに限り<空き>を入れる. - \jlreq@pagestyle@addfont@totokens{\unexpanded{\ifdim\wd\jlreq@PageStyle@box=0pt \else\hskip}\expandonce{\jlreq@gap}\unexpanded{\relax\fi}}{jlreq@running@head@font}{jlreq@tempa}% + \jlreq@pagestyle@addfont@totokens{\exp_not:N \dim_compare:nF { \exp_not:n { \wd\jlreq@PageStyle@box=0pt } } { \exp_not:N \hskip\expandonce{\jlreq@gap}\exp_no:N \relax } }{jlreq@running@head@font}{jlreq@tempa}% \expandafter\edef\csname\jlreq@csname\endcsname{% \unexpanded{\setbox\jlreq@PageStyle@box=\hbox}{\expandonce{\jlreq@running@head@font}\csexpandonce{\jlreq@runheadcsname}}% \csexpandonce{\jlreq@nombrecsname}\expandonce{\jlreq@tempa}\unexpanded{\box\jlreq@PageStyle@box}% @@ -4602,11 +4569,14 @@ \expandafter\edef\csname\jlreq@csname\endcsname{\csexpandonce{\jlreq@nombrecsname}\expandonce{\jlreq@tempa}}% }% }{% - \ifthenelse{\equal{\jlreq@hor}{left}}{% + \str_if_eq:VnTF \jlreq@hor { left } { % <柱><空き><ノンブル>,左寄せ \jlreq@pagestyle@addfont@totokens{% \unexpanded{\setbox\jlreq@PageStyle@box=\hbox}{\csexpandonce{\jlreq@runheadcsname}}% - \unexpanded{\copy\jlreq@PageStyle@box\ifdim\wd\jlreq@PageStyle@box=0pt \else\hskip\glueexpr}\expandonce{\jlreq@gap}\unexpanded{\relax\fi}% + \unexpanded{\copy\jlreq@PageStyle@box} + \exp_not:N \dim_compare:nF { \exp_not:n { \wd\jlreq@PageStyle@box=0pt } } { + \exp_not:n { \hskip\glueexpr } \exp_not:o {\jlreq@gap} \exp_not:N \relax + } }{jlreq@running@head@font}{jlreq@tempa}% \expandafter\edef\csname\jlreq@csname\endcsname{\expandonce{\jlreq@tempa}\csexpandonce{\jlreq@nombrecsname}}% }{% @@ -4625,7 +4595,7 @@ \jlreq@pagestyle@setheadfoot{\jlreq@oddfoot}{jlreq@odd@bottom@left}{jlreq@odd@bottom@center}{jlreq@odd@bottom@right}% \jlreq@pagestyle@setheadfoot{\jlreq@evenhead}{jlreq@even@top@left}{jlreq@even@top@center}{jlreq@even@top@right}% \jlreq@pagestyle@setheadfoot{\jlreq@evenfoot}{jlreq@even@bottom@left}{jlreq@even@bottom@center}{jlreq@even@bottom@right}% - \ifthenelse{\lengthtest{\jlreq@sidenote@length >0pt} \AND \(\NOT\boolean{@tate}\)}{% + \bool_if:nTF { \dim_compare_p:n { \jlreq@sidenote@length > 0pt } && (! \legacy_if_p:n { @tate } ) }{ \def\jlreq@defaultformat{\hss\hbox to \jlreqyokoheadlength{####1}\hss}% }{% \def\jlreq@defaultformat{####1}% @@ -4689,18 +4659,18 @@ \fi \edef\jlreqtateheadlength{\unexpanded{\dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\jlreq@zh}\fi\noexpand\relax} -\newcommand*{\NewPageStyle}[2]{% +\NewDocumentCommand{\NewPageStyle} { m +m } {% \expandafter\@ifdefinable\csname ps@#1\endcsname{\DeclarePageStyle{#1}{#2}}% } -\newcommand*{\RenewPageStyle}[2]{% +\NewDocumentCommand{\RenewPageStyle} { m +m } {% \@ifundefined{ps@#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclarePageStyle{#1}{#2}}% } -\newcommand*{\ProvidePageStyle}[2]{% +\NewDocumentCommand{\ProvidePageStyle} { m +m } {% \@ifundefined{ps@#1}{\DeclarePageStyle{#1}{#2}}{}% } -\newcommand*{\ModifyPageStyle}[2]{% +\NewDocumentCommand{\ModifyPageStyle} { m +m } {% \begingroup - \@ifundefined{jlreq@pagestyle@setting@#1}{\ClassError{jlreq}{Unknown pagestyle: #1}{\@ehc}}{}% + \@ifundefined{jlreq@pagestyle@setting@#1}{\ClassError{jlreq}{Unknown~pagestyle:~#1}{\@ehc}}{}% \expandafter\let\expandafter\setting\expandafter=\csname jlreq@pagestyle@setting@#1\endcsname \edef\jlreq@do{\noexpand\RenewPageStyle{#1}{\expandonce{\setting},\unexpanded{#2}}}% \expandafter\endgroup @@ -4731,7 +4701,7 @@ \noexpand\edef\expandonce{\csname #2\endcsname}{\unexpanded{\unexpanded{##1}}} \noexpand\def\expandonce{\csname #1\endcsname}{}% }% - \expandafter\@for\expandafter\jlreq@tempa\expandafter:\expandafter=\csname #1\endcsname\do{% + \clist_map_variable:cNn {#1} \jlreq@tempa { \epreto\jlreq@do{\noexpand\let\expandonce{\csname #2@\jlreq@tempa\endcsname}\noexpand\@undefined}% }% }{% @@ -4793,12 +4763,11 @@ \vskip\belowcaptionskip }} -\jlreq@jlreqsetup@add{caption_font}{\jlreq@jlreqsetup@withenv{jlreq@@makecaption@font@envlist}{jlreq@@makecaption@font@setting}{#1}} -\jlreq@jlreqsetup@add{caption_label_font}{\jlreq@jlreqsetup@withenv{jlreq@@makecaption@label@font@envlist}{jlreq@@makecaption@label@font@setting}{#1}} -\jlreq@jlreqsetup@add{caption_label_format}{\jlreq@jlreqsetup@withenv{jlreq@@makecaption@label@format@envlist}{jlreq@@makecaption@label@format@setting}{#1}} -\jlreq@jlreqsetup@add{caption_after_label_space}{\jlreq@jlreqsetup@withenv{jlreq@@makecaption@after@label@space@envlist}{jlreq@@makecaption@after@label@space@setting}{#1}} +\keys_define:nn { jlreqsetup } {caption_font .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@font@envlist}{jlreq@@makecaption@font@setting}{#1}}} +\keys_define:nn { jlreqsetup } {caption_label_font .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@label@font@envlist}{jlreq@@makecaption@label@font@setting}{#1}}} +\keys_define:nn { jlreqsetup } {caption_label_format .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@label@format@envlist}{jlreq@@makecaption@label@format@setting}{#1}}} +\keys_define:nn { jlreqsetup } {caption_after_label_space .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@after@label@space@envlist}{jlreq@@makecaption@after@label@space@setting}{#1}}} -\ExplSyntaxOn %% %% \jlreq@@makecaption@align@setting@small(@env)に小さい時のalign,jlreq@@makecaption@align@setting@large(@env)に大きいときのalignを入れる. %% \l_jlreq_tmpb_tlに各環境の設定クリア @@ -4879,21 +4848,22 @@ } } -\jlreq@jlreqsetup@add{caption_align}{% - \group_begin: - \tl_clear:N \l_jlreq_tmpb_tl - \tl_clear:N \l_jlreq_tmpc_tl - \tl_clear:N \l_jlreq_tmpd_tl - \keys_set:nn { __jlreqsetup_caption_align } {#1} - \cs_set:Nx \l_jlreq_do:{ - \exp_not:o \l_jlreq_tmpb_tl - \exp_not:o \l_jlreq_tmpc_tl - \exp_not:o \l_jlreq_tmpd_tl - } - \exp_after:wN \group_end: - \l_jlreq_do: +\keys_define:nn { jlreqsetup } { + caption_align .code:n = { + \group_begin: + \tl_clear:N \l_jlreq_tmpb_tl + \tl_clear:N \l_jlreq_tmpc_tl + \tl_clear:N \l_jlreq_tmpd_tl + \keys_set:nn { __jlreqsetup_caption_align } {#1} + \cs_set:Nx \l_jlreq_do:{ + \exp_not:o \l_jlreq_tmpb_tl + \exp_not:o \l_jlreq_tmpc_tl + \exp_not:o \l_jlreq_tmpd_tl + } + \exp_after:wN \group_end: + \l_jlreq_do: + } } -\ExplSyntaxOff % 特に根拠のない値 \setlength\abovecaptionskip{.5\jlreq@gol} @@ -4901,7 +4871,6 @@ %.. figure環境 \newcounter{figure} -\ExplSyntaxOn \str_if_eq:VnTF \jlreq@article@type { article } { \renewcommand{\thefigure}{\@arabic\c@figure} }{% @@ -4929,7 +4898,6 @@ \newcommand*{\fnum@table}{\tablename\thetable} \newenvironment{table}{\@float{table}}{\end@float} \newenvironment{table*}{\@dblfloat{table}}{\end@dblfloat} -\ExplSyntaxOff %. タイトル周り \newenvironment{titlepage}{% @@ -4947,7 +4915,6 @@ \fi } -\ExplSyntaxOn \if@titlepage \newcommand{\maketitle}{% % jarticleとかからあまり変更していない @@ -5011,7 +4978,6 @@ \jlreq@endofmaketitle } \fi -\ExplSyntaxOff % いろいろクリアする. \def\jlreq@endofmaketitle{% \setcounter{footnote}{0}% @@ -5058,7 +5024,6 @@ %.. abstract \def\jlreq@parhook@abstract{} -\ExplSyntaxOn \str_if_eq:VnF \jlreq@article@type { book } { \newbox\jlreq@abstractbox \newcommand*{\abstractname}{概要} @@ -5145,7 +5110,6 @@ } \fi } -\ExplSyntaxOff %. 箇条書き. cf. JISX4051 8.4 % 用語定義型 \newenvironment{description}{\list{}{% @@ -5173,8 +5137,8 @@ \ifjlreq@parsekeyval@nokey@novalue{% % 生の値.環境に対するものをクリアし,全ての<i-iv>に同じ値を設定 % 環境一覧リストもクリア. - \@for\jlreq@tempa:=i,ii,iii,iv,v,vi\do{% - \expandafter\@for\expandafter\jlreq@tempb\expandafter:\expandafter=\csname #1\endcsname\do{% + \clist_map_variable:nNn {i,ii,iii,iv,v,vi} \jlreq@tempa{ + \clist_map_variable:cNn {#1} \jlreq@tempb { \ifx\jlreq@tempb\@empty\else \eappto\jlreq@generalset{\noexpand\let\expandonce{\csname #2@\jlreq@tempa @\jlreq@tempb\endcsname}\noexpand\@undefined}% \fi @@ -5185,10 +5149,9 @@ }% \appto\jlreq@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} }{ - \ifthenelse{\equal{##1}{i} \OR \equal{##1}{ii} \OR \equal{##1}{iii} \OR \equal{##1}{iv} \OR \equal{##1}{v} \OR \equal{##1}{vi}}{% + \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に値を入れる - \expandafter\@for\expandafter\jlreq@tempa\expandafter:\expandafter=\csname #1\endcsname\do{ + \clist_map_variable:cNn {#1} \jlreq@tempa { \ifx\jlreq@tempa\@empty\else \epreto\jlreq@envset{\noexpand\let\expandonce{\csname #2@##1@\jlreq@tempa\endcsname}\noexpand\@undefined}% \fi @@ -5199,7 +5162,7 @@ \jlreq@parsekeyval@nokey{% \ifjlreq@parsekeyval@nokey@novalue{% % i - viまでに全てセットする. - \@for\jlreq@tempa:=i,ii,iii,iv,v,vi\do{% + \clist_map_variable:nNn {i,ii,iii,iv,v,vi} \jlreq@tempa{ \epreto\jlreq@envset{\noexpand\edef\expandonce{\csname #2@\jlreq@tempa @##1\endcsname}{\unexpanded{\unexpanded{####1}}}}% }% }{% @@ -5222,10 +5185,10 @@ \def\jlreq@itemization@beforeafter@space@envlist{} -\jlreq@jlreqsetup@add{itemization_beforeafter_space}{\jlreq@jlreqsetup@itemization{jlreq@itemization@beforeafter@space@envlist}{jlreq@itemization@beforeafter@space@setting}{#1}} -\jlreq@jlreqsetup@add{itemization_itemsep}{\jlreq@jlreqsetup@withenv{jlreq@itemization@itemsep@envlist}{jlreq@itemization@itemsep@setting}{#1}} -\jlreq@jlreqsetup@add{itemization_labelsep}{\jlreq@jlreqsetup@withenv{jlreq@itemization@labelsep@envlist}{jlreq@itemization@labelsep@setting}{#1}} -\jlreq@jlreqsetup@add{itemization_label_length}{\jlreq@jlreqsetup@itemization{jlreq@itemization@label@length@envlist}{jlreq@itemization@label@length@setting}{#1}} +\keys_define:nn { jlreqsetup } {itemization_beforeafter_space .code:n = {\jlreq@jlreqsetup@itemization{jlreq@itemization@beforeafter@space@envlist}{jlreq@itemization@beforeafter@space@setting}{#1}}} +\keys_define:nn { jlreqsetup } {itemization_itemsep .code:n = {\jlreq@jlreqsetup@withenv{jlreq@itemization@itemsep@envlist}{jlreq@itemization@itemsep@setting}{#1}}} +\keys_define:nn { jlreqsetup } {itemization_labelsep .code:n = {\jlreq@jlreqsetup@withenv{jlreq@itemization@labelsep@envlist}{jlreq@itemization@labelsep@setting}{#1}}} +\keys_define:nn { jlreqsetup } {itemization_label_length .code:n = {\jlreq@jlreqsetup@itemization{jlreq@itemization@label@length@envlist}{jlreq@itemization@label@length@setting}{#1}}} % enumerate, itemize用初期化,#1 = i,ii,... \def\jlreq@init@list#1{% \setlength{\partopsep}{0pt}% @@ -5248,10 +5211,14 @@ \def\@listvi{\jlreq@init@list{vi}} % 引用系.3.5.2の例. -\jlreq@jlreqsetup@add{quote_indent}{\def\jlreq@quote@indent{#1}} -\jlreq@jlreqsetup@add{quote_end_indent}{\def\jlreq@quote@end@indent{#1}} -\jlreq@jlreqsetup@add{quote_fontsize}[normalsize,small,footnotesize,scriptsize,tiny,]{\jlreq@ifempty{#1}{\def\jlreq@quote@fontsize{}}{\edef\jlreq@quote@fontsize{\expandonce{\csname #1\endcsname}}}} -\jlreq@jlreqsetup@add{quote_beforeafter_space}{\def\jlreq@quote@beforeafter@space{#1}} +\keys_define:nn { jlreqsetup } { quote_indent .tl_set:N = \jlreq@quote@indent } +\keys_define:nn { jlreqsetup } { quote_end_indent .tl_set:N = \jlreq@quote@end@indent } +\keys_define:nn { jlreqsetup }{ + quote_fontsize .choices:nn = {normalsize,small,footnotesize,scriptsize,tiny,{}}{ + \jlreq@ifempty{#1}{\def\jlreq@quote@fontsize{}}{\edef\jlreq@quote@fontsize{\expandonce{\csname #1\endcsname}}} + } +} +\keys_define:nn { jlreqsetup } { quote_beforeafter_space .tl_set:N = \jlreq@quote@beforeafter@space } \newenvironment{verse} {\let\\\@centercr @@ -5329,14 +5296,12 @@ \setlength\fboxsep{.3\zw} \setlength\fboxrule{\jlreq@omotekeiwidth} % 根拠はない % 後で -\ExplSyntaxOn \str_if_eq:VnTF \jlreq@article@type { article } { \renewcommand{\theequation}{\@arabic\c@equation} }{% \@addtoreset{equation}{chapter} \renewcommand{\theequation}{\ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} } -\ExplSyntaxOff %. 目次 \setcounter{tocdepth}{3} @@ -5361,12 +5326,11 @@ \newcount\jlreq@top@contents % トップ見出しを入れる.レベルと同じ値. \jlreq@top@contents=-100 -\newcommand*{\jlreq@set@top@contents}[1]{% +\def\jlreq@set@top@contents#1{% \ifnum\jlreq@top@contents=-100 \jlreq@top@contents=#1\relax \fi } -\ExplSyntaxOn \str_if_eq:VnTF \jlreq@article@type { article } { \newcommand{\tableofcontents}{% \jlreq@top@contents=-100\relax @@ -5394,7 +5358,6 @@ \if@restonecol\twocolumn\fi } } -\ExplSyntaxOff % JIS X 4051自身の目次に近づけようかと……なりきれてないけど. % 文字の大きさは全て同じ(\normalsize)にする. @@ -5496,21 +5459,22 @@ \newcommand{\subsubitem}{\@idxitem \hspace*{3\jlreq@mol}} \newcommand{\indexspace}{\par \vskip 1\jlreq@gol \@plus .5\jlreq@gol \@minus .3\jlreq@gol\relax} \def\jlreq@theindex@pagestyle{} -\jlreq@jlreqsetup@add{theindex_pagestyle}{ - \def\jlreq@tempa{}% ページスタイル名 - \def\jlreq@theindex@pagestyle{}% - \jlreq@tempafalse % restore - \jlreq@parsekeyval@nokey{% - \ifjlreq@parsekeyval@nokey@novalue{\def\jlreq@tempa{##1}}{% - \jlreq@switch{##1}{% - {restore}{\csname jlreq@tempa##2\endcsname}% +\keys_define:nn { jlreqsetup } {theindex_pagestyle .code:n = { + \def\jlreq@tempa{}% ページスタイル名 + \def\jlreq@theindex@pagestyle{}% + \jlreq@tempafalse % restore + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{\def\jlreq@tempa{##1}}{% + \jlreq@switch{##1}{% + {restore}{\csname jlreq@tempa##2\endcsname}% + }% }% - }% - }{#1}% - \eappto\jlreq@theindex@pagestyle{\unexpanded{\let\jlreq@theindex@savedpagestyle}\ifjlreq@tempa\noexpand\jlreq@current@pagestyle\else\noexpand\@undefined\fi}% - \ifx\jlreq@tempa\@empty\else - \eappto\jlreq@theindex@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq@tempa}}}% - \fi + }{#1}% + \eappto\jlreq@theindex@pagestyle{\unexpanded{\let\jlreq@theindex@savedpagestyle}\ifjlreq@tempa\noexpand\jlreq@current@pagestyle\else\noexpand\@undefined\fi}% + \ifx\jlreq@tempa\@empty\else + \eappto\jlreq@theindex@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq@tempa}}}% + \fi + } } %. 前付,後付,付録 @@ -5540,13 +5504,13 @@ {runin}{\def\jlreq@declaretype{RenewRunin}} {cutin}{\def\jlreq@declaretype{RenewCutin}} {modify}{\def\jlreq@declaretype{Modify}} - {\ClassError{jlreq}{Unknown heading type `####2'}{\@ehc}} + {\ClassError{jlreq}{Unknown~heading~type~`####2'}{\@ehc}} }% } {heading_level}{\def\jlreq@level{####2}} {% - \jlreq@ifempty{#1}{\@firstofone}{% - \ifthenelse{\equal{####1}{restore}}{% + \tl_if_empty:nTF {#1} { \@firstofone }{% + \str_if_eq:nnTF {####1} { restore } { \csname jlreq@tempa####2\endcsname\@gobble }{\@firstofone}% }% @@ -5563,7 +5527,7 @@ }% % \jlreq@declareに\ModifyHeadingか\Renew***Headingを入れる \edef\jlreq@declare{\expandonce{\csname\jlreq@declaretype Heading\endcsname}{##1}}% - \ifthenelse{\NOT \equal{\jlreq@declaretype}{Modify}}{% + \str_if_eq:VnF \jlreq@declaretype { Modify } { \ifx\jlreq@level\@empty % \frontmatter時でのレベルを引用する. \edef\jlreq@declare{% @@ -5589,77 +5553,82 @@ \def\jlreq@matter@counter@norestore#1#2{% \def#1{}% \jlreq@parsekeyval@nokey{% - \jlreq@parsekeyval*{ - {value}{\appto#1{\setcounter{##1}{####1}}} - {the}{\eappto#1{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}} - }{##2}% + \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_set:nn { __jlreq_keyval } {##2} }{#2}% } -\ifthenelse{\equal{\jlreq@article@type}{book}}{ +\str_if_eq:VnT \jlreq@article@type { book } { \newif\if@mainmatter \@mainmattertrue - \jlreq@jlreqsetup@add{frontmatter_pagebreak}{% + \keys_define:nn { jlreqsetup } {frontmatter_pagebreak .code:n = {% \edef\jlreq@frontmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}% + }} + \keys_define:nn { jlreqsetup } {frontmatter_counter .code:n = {% + \def\jlreq@frontmatter@counter{}% + \def\jlreq@tempa{}% 復帰させるカウンタ名リスト + \jlreq@parsekeyval@nokey{% + \def\jlreq@tempb{}% 中身 + \jlreq@tempatrue % restore + \keys_define:nn { frontmatter_counter } { + value .code:n = {\appto\jlreq@tempb{\setcounter{##1}{####1}}}, + restore .code:n = {\csname jlreq@tempa####1\endcsname}, + the .code:n = {\eappto\jlreq@tempb{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}} + } + \keys_set:nn { frontmatter_counter } {##2} + \ifjlreq@tempa + \epreto\jlreq@tempb{% + \noexpand\let\expandonce{\csname jlreq@frontmatter@savedcounter@the@##1\endcsname}\expandonce{\csname the##1\endcsname}% + \noexpand\edef\expandonce{\csname jlreq@frontmatter@savedcounter@value@##1\endcsname}{\unexpanded{\the\value{##1}}}% + }% + \eappto\jlreq@tempa{\ifx\jlreq@tempa\@empty\else ,\fi\unexpanded{##1}}% + \fi + \eappto\jlreq@frontmatter@counter{\expandonce{\jlreq@tempb}}% + }{#1}% + \eappto\jlreq@frontmatter@counter{\unexpanded{\def\jlreq@frontmatter@restorecounters}{\expandonce{\jlreq@tempa}}}% + } } - \jlreq@jlreqsetup@add{frontmatter_counter}{% - \def\jlreq@frontmatter@counter{}% - \def\jlreq@tempa{}% 復帰させるカウンタ名リスト - \jlreq@parsekeyval@nokey{% - \def\jlreq@tempb{}% 中身 + \keys_define:nn { jlreqsetup } {frontmatter_heading .code:n = {\jlreq@matter@heading[\jlreq@frontmatter@restoreheadings]{jlreq@frontmatter@savedheading}{\jlreq@frontmatter@heading}{#1}}} + \keys_define:nn { jlreqsetup } {frontmatter_pagestyle .code:n = {% + \def\jlreq@tempa{}% ページスタイル名 + \def\jlreq@frontmatter@pagestyle{}% \jlreq@tempatrue % restore - \jlreq@parsekeyval{ - {value}{\appto\jlreq@tempb{\setcounter{##1}{####1}}} - {restore}{\csname jlreq@tempa####1\endcsname} - {the}{\eappto\jlreq@tempb{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}} - }{##2}% - \ifjlreq@tempa - \epreto\jlreq@tempb{% - \noexpand\let\expandonce{\csname jlreq@frontmatter@savedcounter@the@##1\endcsname}\expandonce{\csname the##1\endcsname}% - \noexpand\edef\expandonce{\csname jlreq@frontmatter@savedcounter@value@##1\endcsname}{\unexpanded{\the\value{##1}}}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{\def\jlreq@tempa{##1}}{% + \jlreq@switch{##1}{% + {restore}{\csname jlreq@tempa##2\endcsname}% + }% }% - \eappto\jlreq@tempa{\ifx\jlreq@tempa\@empty\else ,\fi\unexpanded{##1}}% + }{#1}% + \ifjlreq@tempa + \appto\jlreq@frontmatter@pagestyle{\let\jlreq@frontmatter@savedpagestyle\jlreq@current@pagestyle}% \fi - \eappto\jlreq@frontmatter@counter{\expandonce{\jlreq@tempb}}% - }{#1}% - \eappto\jlreq@frontmatter@counter{\unexpanded{\def\jlreq@frontmatter@restorecounters}{\expandonce{\jlreq@tempa}}}% + \ifx\jlreq@tempa\@empty\else + \eappto\jlreq@frontmatter@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq@tempa}}}% + \fi + } } - \jlreq@jlreqsetup@add{frontmatter_heading}{\jlreq@matter@heading[\jlreq@frontmatter@restoreheadings]{jlreq@frontmatter@savedheading}{\jlreq@frontmatter@heading}{#1}} - \jlreq@jlreqsetup@add{frontmatter_pagestyle}{% - \def\jlreq@tempa{}% ページスタイル名 - \def\jlreq@frontmatter@pagestyle{}% - \jlreq@tempatrue % restore - \jlreq@parsekeyval@nokey{% - \ifjlreq@parsekeyval@nokey@novalue{\def\jlreq@tempa{##1}}{% - \jlreq@switch{##1}{% - {restore}{\csname jlreq@tempa##2\endcsname}% + \keys_define:nn { jlreqsetup } {frontmatter_precode .code:n = {\edef\jlreq@frontmatter@precode{\unexpanded{#1}}}} + \keys_define:nn { jlreqsetup } {frontmatter_postcode .code:n = {\edef\jlreq@frontmatter@postcode{\unexpanded{#1}}}} + \keys_define:nn { jlreqsetup } {frontmatter_pagination .code:n = {% + \def\jlreq@pagination@frontmatterstyle{arabic}% + \let\jlreq@pagination@mainmatterpagecommand=\pagenumbering + \clist_map_variable:nNn {#1} \jlreq@tempa { + \expandafter\jlreq@helper@trim\expandafter{\jlreq@tempa}{\jlreq@tempa}% + \jlreq@switch{\jlreq@tempa}{ + {continuous}{% + \def\jlreq@pagination@mainmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}% + } + {independent}{\let\jlreq@pagination@mainmatterpagecommand=\pagenumbering} + {\edef\jlreq@pagination@frontmatterstyle{\jlreq@tempa}} }% }% - }{#1}% - \ifjlreq@tempa - \appto\jlreq@frontmatter@pagestyle{\let\jlreq@frontmatter@savedpagestyle\jlreq@current@pagestyle}% - \fi - \ifx\jlreq@tempa\@empty\else - \eappto\jlreq@frontmatter@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq@tempa}}}% - \fi - } - \jlreq@jlreqsetup@add{frontmatter_precode}{\edef\jlreq@frontmatter@precode{\unexpanded{#1}}} - \jlreq@jlreqsetup@add{frontmatter_postcode}{\edef\jlreq@frontmatter@postcode{\unexpanded{#1}}} - \jlreq@jlreqsetup@add{frontmatter_pagination}{% - \def\jlreq@pagination@frontmatterstyle{arabic}% - \let\jlreq@pagination@mainmatterpagecommand=\pagenumbering - \@for\jlreq@tempa:=#1\do{% - \expandafter\jlreq@helper@trim\expandafter{\jlreq@tempa}{\jlreq@tempa}% - \jlreq@switch{\jlreq@tempa}{ - {continuous}{% - \def\jlreq@pagination@mainmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}% - } - {independent}{\let\jlreq@pagination@mainmatterpagecommand=\pagenumbering} - {\edef\jlreq@pagination@frontmatterstyle{\jlreq@tempa}} - }% - }% + } } - \newcommand*{\frontmatter}{% + \NewDocumentCommand{\frontmatter}{}{% \jlreq@frontmatter@precode \jlreq@frontmatter@pagebreak \@mainmatterfalse @@ -5673,20 +5642,18 @@ \def\jlreq@frontmatter@restorecounters{} \def\jlreq@frontmatter@restoreheadings{} \def\jlreq@frontmatter@restorecommands{} - \jlreq@jlreqsetup@add{mainmatter_pagebreak}{% + \keys_define:nn { jlreqsetup } {mainmatter_pagebreak .code:n = {% \edef\jlreq@mainmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}% - } - \jlreq@jlreqsetup@add{mainmatter_pagestyle}{% + }} + \keys_define:nn { jlreqsetup } {mainmatter_pagestyle .code:n = {% \edef\jlreq@mainmatter@pagestyle{\jlreq@ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}% - } - \jlreq@jlreqsetup@add{mainmatter_counter}{\jlreq@matter@counter@norestore{\jlreq@mainmatter@counter}{#1}}% - \jlreq@jlreqsetup@add{mainmatter_heading}{\jlreq@matter@heading{\jlreq@mainmatter@heading}{#1}}% - \jlreq@jlreqsetup@add{mainmatter_precode}{\edef\jlreq@mainmatter@precode{\unexpanded{#1}}}% - \jlreq@jlreqsetup@add{mainmatter_postcode}{\edef\jlreq@mainmatter@postcode{\unexpanded{#1}}}% - \jlreq@jlreqsetup@add{mainmatter_pagination}{% - \def\jlreq@pagination@mainmatterstyle{#1}% - } - \newcommand*{\mainmatter}{% + }} + \keys_define:nn { jlreqsetup } {mainmatter_counter .code:n = {\jlreq@matter@counter@norestore{\jlreq@mainmatter@counter}{#1}}} + \keys_define:nn { jlreqsetup } {mainmatter_heading .code:n = {\jlreq@matter@heading{\jlreq@mainmatter@heading}{#1}}} + \keys_define:nn { jlreqsetup } {mainmatter_precode .code:n = {\edef\jlreq@mainmatter@precode{\unexpanded{#1}}}} + \keys_define:nn { jlreqsetup } {mainmatter_postcode .code:n = {\edef\jlreq@mainmatter@postcode{\unexpanded{#1}}}} + \keys_define:nn { jlreqsetup } {mainmatter_pagination .tl_set:N = \jlreq@pagination@mainmatterstyle} + \NewDocumentCommand{\mainmatter}{}{% \jlreq@mainmatter@precode \jlreq@mainmatter@pagebreak \@mainmattertrue @@ -5695,44 +5662,45 @@ }{% \expandafter\pagestyle\expandafter{\jlreq@frontmatter@savedpagestyle}% }% - \@for\jlreq@tempa:=\jlreq@frontmatter@restorecounters\do{% + \clist_map_variable:NNn \jlreq@frontmatter@restorecounters \jlreq@tempa { \setcounter{\jlreq@tempa}{\csname jlreq@frontmatter@savedcounter@value@\jlreq@tempa\endcsname}% \expandafter\let\csname the\jlreq@tempa\expandafter\endcsname\csname jlreq@frontmatter@savedcounter@the@\jlreq@tempa\endcsname }% \jlreq@mainmatter@counter - \@for\jlreq@tempa:=\jlreq@frontmatter@restoreheadings\do{\csname jlreq@frontmatter@savedheading@\jlreq@tempa\endcsname} + \clist_map_variable:NNn \jlreq@frontmatter@restoreheadings \jlreq@tempa { \csname jlreq@frontmatter@savedheading@\jlreq@tempa\endcsname } \jlreq@mainmatter@heading - \@for\jlreq@tempa:=\jlreq@frontmatter@restorecommands\do{% + \clist_map_variable:NNn \jlreq@frontmatter@restorecommands \jlreq@tempa { \expandafter\let\csname \jlreq@tempa\expandafter\endcsname\csname jlreq@frontmatter@savedcommand@\jlreq@tempa\endcsname }% \expandafter\jlreq@pagination@mainmatterpagecommand\expandafter{\jlreq@pagination@mainmatterstyle}% \jlreq@mainmatter@postcode } - \jlreq@jlreqsetup@add{backmatter_pagebreak}{% + \keys_define:nn { jlreqsetup } {backmatter_pagebreak .code:n = {% \edef\jlreq@backmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}% - } - \jlreq@jlreqsetup@add{backmatter_pagestyle}{% + }} + \keys_define:nn { jlreqsetup } {backmatter_pagestyle .code:n = {% \edef\jlreq@backmatter@pagestyle{\jlreq@ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}% - } - \jlreq@jlreqsetup@add{backmatter_counter}{\jlreq@matter@counter@norestore{\jlreq@backmatter@counter}{#1}}% - \jlreq@jlreqsetup@add{backmatter_heading}{\jlreq@matter@heading{\jlreq@backmatter@heading}{#1}} - \jlreq@jlreqsetup@add{backmatter_precode}{\edef\jlreq@backmatter@precode{\unexpanded{#1}}} - \jlreq@jlreqsetup@add{backmatter_postcode}{\edef\jlreq@backmatter@postcode{\unexpanded{#1}}} - \jlreq@jlreqsetup@add{backmatter_pagination}{ - \let\jlreq@pagination@backmatterpagecommand=\pagenumbering - \def\jlreq@pagination@backmatterstyle{arabic}% - \@for\jlreq@tempa:=#1\do{% - \expandafter\jlreq@helper@trim\expandafter{\jlreq@tempa}{\jlreq@tempa}% - \jlreq@switch{\jlreq@tempa}{ - {continuous}{% - \def\jlreq@pagination@backmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}% - } - {independent}{\let\jlreq@pagination@backmatterpagecommand=\pagenumbering} - {\edef\jlreq@pagination@backmatterstyle{\jlreq@tempa}} + }} + \keys_define:nn { jlreqsetup } {backmatter_counter .code:n = {\jlreq@matter@counter@norestore{\jlreq@backmatter@counter}{#1}}} + \keys_define:nn { jlreqsetup } {backmatter_heading .code:n = {\jlreq@matter@heading{\jlreq@backmatter@heading}{#1}}} + \keys_define:nn { jlreqsetup } {backmatter_precode .code:n = {\edef\jlreq@backmatter@precode{\unexpanded{#1}}}} + \keys_define:nn { jlreqsetup } {backmatter_postcode .code:n = {\edef\jlreq@backmatter@postcode{\unexpanded{#1}}}} + \keys_define:nn { jlreqsetup } {backmatter_pagination .code:n = { + \let\jlreq@pagination@backmatterpagecommand=\pagenumbering + \def\jlreq@pagination@backmatterstyle{arabic}% + \clist_map_variable:nNn {#1} \jlreq@tempa { + \expandafter\jlreq@helper@trim\expandafter{\jlreq@tempa}{\jlreq@tempa}% + \jlreq@switch{\jlreq@tempa}{ + {continuous}{% + \def\jlreq@pagination@backmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}% + } + {independent}{\let\jlreq@pagination@backmatterpagecommand=\pagenumbering} + {\edef\jlreq@pagination@backmatterstyle{\jlreq@tempa}} + }% }% - }% + } } - \newcommand*{\backmatter}{% + \NewDocumentCommand{\backmatter}{}{% \jlreq@backmatter@precode \jlreq@backmatter@pagebreak \jlreq@backmatter@pagestyle @@ -5742,13 +5710,13 @@ \expandafter\jlreq@pagination@backmatterpagecommand\expandafter{\jlreq@pagination@backmatterstyle}% \jlreq@backmatter@postcode } -}{} +} -\jlreq@jlreqsetup@add{appendix_counter}{\jlreq@matter@counter@norestore{\jlreq@appendix@counter}{#1}} -\jlreq@jlreqsetup@add{appendix_heading}{\jlreq@matter@heading{\jlreq@appendix@heading}{#1}} -\jlreq@jlreqsetup@add{appendix_precode}{\edef\jlreq@appendix@precode{\unexpanded{#1}}} -\jlreq@jlreqsetup@add{appendix_postcode}{\edef\jlreq@appendix@postcode{\unexpanded{#1}}} -\newcommand*{\appendix}{% +\keys_define:nn { jlreqsetup } {appendix_counter .code:n = {\jlreq@matter@counter@norestore{\jlreq@appendix@counter}{#1}}} +\keys_define:nn { jlreqsetup } {appendix_heading .code:n = {\jlreq@matter@heading{\jlreq@appendix@heading}{#1}}} +\keys_define:nn { jlreqsetup } {appendix_precode .code:n = {\edef\jlreq@appendix@precode{\unexpanded{#1}}}} +\keys_define:nn { jlreqsetup } {appendix_postcode .code:n = {\edef\jlreq@appendix@postcode{\unexpanded{#1}}}} +\NewDocumentCommand{\appendix}{}{% \par \jlreq@appendix@precode \jlreq@appendix@counter @@ -5761,7 +5729,7 @@ \protected\def\tatechuyoko{\@ifstar {\jlreq@tatechuyoko@i}% {% - \jlreq@iftdir{}{\ClassError{jlreq}{\string\tatechuyoko\space is not allowed in yoko mode}{\@ehc}}% + \jlreq@iftdir{}{\ClassError{jlreq}{\string\tatechuyoko\space is~not~allowed~in~yoko~mode}{\@ehc}}% \jlreq@tatechuyoko@ii }% } @@ -5771,9 +5739,9 @@ \unexpanded{\ifvmode\leavevmode\fi}% \ifx l\jlreq@engine\unexpanded{% \jlreq@lastnodechar=\lastnodechar\relax - \ifnum\jlreq@lastnodechar>-1 \inhibitglue\fi + \int_compare:nT { \jlreq@lastnodechar>-1 } { \inhibitglue } }\else\unexpanded{% - \ifnum\lastnodechar>-1 \inhibitglue\fi + \int_compare:nT { \jlreq@lastnodechar>-1 } { \inhibitglue } \jlreq@lastnodechar=\lastnodechar\relax }\fi } @@ -5788,7 +5756,7 @@ \hbox{\yoko \begingroup \setbox\jlreq@tempboxa=\hbox{阿}% - \vrule width 0pt height \ht\jlreq@tempboxa depth \dp\jlreq@tempboxa + \vrule width~0pt~height~\ht\jlreq@tempboxa depth~\dp\jlreq@tempboxa \endgroup #1}% \futurelet\jlreq@nextchar\jlreq@tatechuyoko@iii @@ -5808,18 +5776,57 @@ \jlreq@do } -\ExplSyntaxOn \jlreq@saveoriginalcs{kanjishape} \ifx l\jlreq@engine + \cs_new:Nn \__jlreq_setkanjiskip:nn { + \group_begin: + \ltj@setpar@global + \cs_set:Nn \l_jlreq_do: {} + \tl_if_empty:nF {#1} { + \skip_set:Nn \l_jlreq_tmpa_skip { #1 } + \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do: + \exp_not:N \cs_set:Npn \exp_not:N \jlreqkanjiskip { \skip_use:N \l_jlreq_tmpa_skip } + \exp_not:N \ltjsetkanjiskip \skip_use:N \l_jlreq_tmpa_skip + } + } + \tl_if_empty:nF {#2} { + \skip_set:Nn \l_jlreq_tmpa_skip { #2 } + \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do: + \exp_not:N \cs_set:Npn \exp_not:N \jlreqxkanjiskip { \skip_use:N \l_jlreq_tmpa_skip } + \exp_not:N \ltjsetxkanjiskip \skip_use:N \l_jlreq_tmpa_skip + } + } + \exp_after:wN \group_end: + \l_jlreq_do: + } +\else + \cs_new:Nn \__jlreq_setkanjiskip:nn { + \group_begin: + \cs_set:Nn \l_jlreq_do: {} + \tl_if_empty:nF {#1} { + \skip_set:Nn \l_jlreq_tmpa_skip { #1 } + \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do: + \exp_not:N \cs_set:Npx \exp_not:N \jlreqkanjiskip { \skip_use:N \l_jlreq_tmpa_skip } + \exp_not:N \skip_set:Nn \exp_not:N \kanjiskip { \skip_use:N \l_jlreq_tmpa_skip } + } + } + \tl_if_empty:nF {#2} { + \skip_set:Nn \l_jlreq_tmpa_skip { #2 } + \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do: + \exp_not:N \cs_set:Npx \exp_not:N \jlreqxkanjiskip { \skip_use:N \l_jlreq_tmpa_skip } + \exp_not:N \skip_set:Nn \exp_not:N \xkanjiskip { \skip_use:N \l_jlreq_tmpa_skip } + } + } + \exp_after:wN \group_end: + \l_jlreq_do: + } +\fi +\ifx l\jlreq@engine \cs_set:Nn \l_jlreq_tmpa:n { \NewDocumentCommand { \jidori } { m m } { \mode_if_vertical:TF { \leavevmode } {} \group_begin: - \ltj@setpar@global - \ltjsetkanjiskip 0pt~plus~1fil~minus~0pt - \ltjsetxkanjiskip 0pt~plus~1fil~minus~0pt - \renewcommand*{ \jlreqkanjiskip } { 0pt~plus~1fil~minus~0pt } - \renewcommand*{ \jlreqxkanjiskip } { 0pt~plus~1fil~minus~0pt } + \__jlreq_setkanjiskip:nn { 0pt~plus~1fil~minus~0pt } { 0pt~plus~1fil~minus~0pt } \hbox_to_wd:nn {##1} { \def#1 { } \kanjishape{n-jidori}\selectfont @@ -5837,10 +5844,7 @@ \NewDocumentCommand { \jidori } { m m } { \mode_if_vertical:TF { \leavevmode } {} \group_begin: - \setlength { \kanjiskip } { 0pt~plus~15zw~minus~0pt } - \setlength { \xkanjiskip } { 0pt~plus~15zw~minus~0pt } - \renewcommand* { \jlreqkanjiskip } { 0pt~plus~15zw~minus~0pt } - \renewcommand* { \jlreqxkanjiskip } { 0pt~plus~15zw~minus~0pt } + \__jlreq_setkanjiskip:nn { 0pt~plus~15zw~minus~0pt } { 0pt~plus~15zw~minus~0pt } \hbox_to_wd:nn {#1} { \kanjishape{n-jidori}\selectfont \inhibitglue #2 @@ -5849,7 +5853,13 @@ \group_end: } \fi -\ExplSyntaxOff +\NewDocumentCommand { \akigumi } { m m } { + \mode_if_vertical:TF { \leavevmode } {} + \group_begin: + \__jlreq_setkanjiskip:nn { \jlreqkanjiskip + #1 } { } + \hbox:n {#2} + \group_end: +} % 日にち \newif\if西暦 @@ -5857,21 +5867,26 @@ \def\和暦{\西暦false} % #1年#2月#3日 #4は\numberとか\kansujiとか \def\jlreq@wareki#1#2#3#4{% - \jlreq@warekiyear{#1}{#2}{#3}{#4}% + \__jlreq_warekiyear:nnnn{#1}{#2}{#3}{#4}% #4#2月#4#3日% } -\def\jlreq@warekiyear#1#2#3#4{% +\cs_set:Nn \__jlreq_warekiyear:nnnn { % 昭和:1989年1月7日まで - \ifnum0\ifnum#1<1989 1\fi\ifnum#1=1989 \ifnum#2=1 \ifnum#3<8 1\fi\fi\fi>0 - 昭和\jlreq@warekiyear@{#1}{1926}{#4}% - % 平成:2019年4月末日まで - \else\ifnum0\ifnum#1<2019 1\fi\ifnum#1=2019 \ifnum#2<5 1\fi\fi>0 - 平成\jlreq@warekiyear@{#1}{1989}{#4}% - \else - 令和\jlreq@warekiyear@{#1}{2019}{#4}% - \fi\fi + \bool_if:nTF { \int_compare_p:n { #1 < 1989 } || + ( \int_compare_p:n { #1 == 1989 } && \int_compare_p:n { #2 == 1 } && \int_compare_p:n { #3 < 8 } ) }{ + 昭和\__jlreq_warekiyear_aux:nnn{#1}{1926}{#4}% + }{ + % 平成:2019年4月末日まで + \bool_if:nTF { \int_compare_p:n { #1 < 2019 } || ( \int_compare_p:n { #1 == 2019 } && \int_compare_p:n { #2 < 5 } ) } { + 平成\__jlreq_warekiyear_aux:nnn{#1}{1989}{#4}% + }{ + 令和\__jlreq_warekiyear_aux:nnn{#1}{2019}{#4}% + } + } +} +\cs_set:Nn \__jlreq_warekiyear_aux:nnn { + \int_compare:nTF { #1 = #2 } {元年} { \int_eval:n { #1 - #2 + 1 } 年 } } -\def\jlreq@warekiyear@#1#2#3{\ifnum#1=#2 元年\else #3\numexpr#1-#2+1\relax 年\fi} \def\today{% \if西暦 \jlreq@iftdir{% @@ -5891,11 +5906,11 @@ }% \fi } -\jlreq@jlreqsetup@add{year_style}[seireki,wareki]{% - \jlreq@switch{#1}{% - {seireki}{\西暦true} - {wareki}{\西暦false} - } + +\keys_define:nn { jlreqsetup } { + year_style .choice:, + year_style / seireki .code:n = {\西暦true}, + year_style / wareki .code:n = {\西暦false} } % 時刻 @@ -5933,40 +5948,42 @@ \def\jlreq@setupamsthm{ \newtheoremstyle{jlreq}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\jlreq@theorem@font}{\dimexpr\jlreq@theorem@indent\relax}{\jlreq@theorem@label@font}{}{1\jlreq@zw}{\thmname{##1}\thmnumber{\ ##2}\thmnote{(##3)}} } -\jlreq@jlreqsetup@add{theorem_beforeafter_space}{ - \def\jlreq@theorem@beforeafter@space{#1} - \begingroup\jlreq@tempdima=\dimexpr\jlreq@theorem@beforeafter@space\relax\endgroup - \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} -} -\jlreq@jlreqsetup@add{theorem_indent}{ - \def\jlreq@theorem@indent{#1} - \begingroup\jlreq@tempdima=\dimexpr\jlreq@theorem@indent\relax\endgroup - \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} +\keys_define:nn { jlreqsetup } {theorem_beforeafter_space .code:n = { + \def\jlreq@theorem@beforeafter@space{#1} + \begingroup\jlreq@tempdima=\dimexpr\jlreq@theorem@beforeafter@space\relax\endgroup + \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} + } } -\jlreq@jlreqsetup@add{theorem_font}{ - \def\jlreq@theorem@font{#1} - \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} +\keys_define:nn { jlreqsetup } {theorem_indent .code:n = { + \def\jlreq@theorem@indent{#1} + \begingroup\jlreq@tempdima=\dimexpr\jlreq@theorem@indent\relax\endgroup + \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} + } } -\jlreq@jlreqsetup@add{theorem_label_font}{ - \def\jlreq@theorem@label@font{#1} - \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} +\keys_define:nn { jlreqsetup } {theorem_font .code:n = { + \def\jlreq@theorem@font{#1} + \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} + } } -\jlreq@jlreqsetup@add{proof_label_font}{ - \def\jlreq@proof@label@font{#1} +\keys_define:nn { jlreqsetup } {theorem_label_font .code:n = { + \def\jlreq@theorem@label@font{#1} + \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} + } } +\keys_define:nn { jlreqsetup } {proof_label_font .tl_set:N = \jlreq@proof@label@font} %. デフォルト設定 %.. 見出し \if@tate \renewcommand{\thepart}{\jlreq@Kanji{part}} - \ifthenelse{\equal{\jlreq@article@type}{article}}{}{\renewcommand{\thechapter}{\jlreq@Kanji{chapter}}} + \str_if_eq:VnF \jlreq@article@type { article }{\renewcommand{\thechapter}{\jlreq@Kanji{chapter}}} \renewcommand{\thesection}{\tatechuyoko*{\@arabic\c@section}} \renewcommand{\thesubsection}{\tatechuyoko*{\@alph\c@subsection}} \renewcommand{\thesubsubsection}{\tatechuyoko*{\@arabic\c@subsubsection}} \renewcommand{\theparagraph}{(\tatechuyoko*{\@arabic\c@paragraph})} \renewcommand{\thesubparagraph}{(\tatechuyoko*{\@arabic\c@subparagraph})} - \ifthenelse{\equal{\jlreq@article@type}{article}}{ + \str_if_eq:VnTF \jlreq@article@type { article } { \NewBlockHeading{part}{0}{font={\jlreq@keepbaselineskip{\LARGE}},indent=4\jlreq@zw,lines=4,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\large}}} \if@twoside\ModifyHeading{part}{allowbreak_if_evenpage=true}\fi } @@ -5990,11 +6007,10 @@ \renewcommand{\thesubsubsection}{\thesubsection .\arabic{subsubsection}} \renewcommand{\theparagraph}{\thesubsubsection .\arabic{paragraph}} \renewcommand{\thesubparagraph}{\theparagraph .\arabic{subparagraph}} - \ifthenelse{\equal{\jlreq@article@type}{article}}{ + \str_if_eq:VnTF \jlreq@article@type { article } { \NewBlockHeading{part}{0}{font={\jlreq@keepbaselineskip{\LARGE\sffamily\gtfamily\bfseries}},label_format={第\thepart 部},lines=4,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\large}}} \renewcommand{\thesection}{\arabic{section}} - } - {% book, report + }{% book, report \NewTobiraHeading{part}{-1}{label_format={第\thepart 部\hspace*{1\jlreq@gol}},format={\null\vfil {\Huge\sffamily\gtfamily\bfseries #1#2}\vfil}} \NewBlockHeading{chapter}{0}{% font={\jlreq@keepbaselineskip{\huge\sffamily\gtfamily\bfseries}}, @@ -6011,71 +6027,71 @@ \NewRuninHeading{subparagraph}{5}{font={\jlreq@keepbaselineskip{\normalsize\sffamily\gtfamily\bfseries}},indent=2\jlreq@zw} \fi -\ifthenelse{\equal{\jlreq@article@type}{article}}{}{% book, report - \if@openright +\str_if_eq:VnF \jlreq@article@type { article } { + \legacy_if:nTF { @openright } { \ModifyHeading{part}{type=naka} - \if@tate + \legacy_if:nTF { @tate } { \ModifyHeading{chapter}{pagebreak=begin_with_even_page} - \else + }{ \ModifyHeading{chapter}{pagebreak=begin_with_odd_page} - \fi - \else + } + }{ \ModifyHeading{part}{type=han} \ModifyHeading{chapter}{pagebreak=clearpage} - \fi + } } %.. ページスタイル \RenewPageStyle{empty}{nombre={},odd_running_head={},even_running_head={}} -\ifthenelse{\equal{\jlreq@article@type}{article}}{ - \if@twoside +\str_if_eq:VnTF \jlreq@article@type { article } { + \legacy_if:nTF { @twoside } { \NewPageStyle{headings}{odd_running_head={_subsection},even_running_head={_section}} - \else + }{ \NewPageStyle{headings}{odd_running_head={_section},even_running_head={}} - \fi + } }{% book, article - \if@twoside + \legacy_if:nTF { @twoside } { \NewPageStyle{headings}{odd_running_head={_section},even_running_head={_chapter}} - \else + }{ \NewPageStyle{headings}{odd_running_head={_chapter},even_running_head={}} - \fi + } \ModifyPageStyle{headings}{mark_format={_chapter={第\thechapter 章\quad #1}}} } -\if@tate +\legacy_if:nTF { @tate } { \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@twoside + \legacy_if:nTF { @twoside } { \ModifyPageStyle{plain}{nombre_position={top-left}} \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-left,running_head_position=top-left} \ModifyPageStyle{myheadings}{nombre_position=bottom-left,running_head_position=top-left} - \else + }{ \ModifyPageStyle{plain}{nombre_position={top-center}} \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center} \ModifyPageStyle{myheadings}{nombre_position=bottom-center,running_head_position=top-center} - \fi -\else% yoko + } +}{% yoko \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_markcommand=false} -\fi +} \ModifyPageStyle{plain}{font=\small} \ModifyPageStyle{headings}{font=\small} \ModifyPageStyle{myheadings}{font=\small} %.. 注 \jlreqsetup{reference_mark=inline} -\if@tate +\legacy_if:nTF { @tate } { \jlreqsetup{footnote_indent=1\jlreq@zw}% 根拠なし -\else +}{ \jlreqsetup{footnote_indent=0pt}% (4.2.5.b) -\fi +} \jlreqsetup{footnote_second_indent=1\jlreq@zw} \jlreqsetup{endnote_second_indent=2\jlreq@zw} \jlreqsetup{endnote_position=headings} -\ifdim\jlreq@sidenote@length>0pt +\dim_compare:nT { \jlreq@sidenote@length>0pt } { \jlreqsetup{sidenote_type=number} \jlreqsetup{sidenote_symbol=*,sidenote_keyword_font={}} -\fi +} %.. キャプション \jlreqsetup{ @@ -6087,7 +6103,7 @@ } %.. 箇条書き -\if@tate +\legacy_if:nTF { @tate } { \renewcommand{\theenumi}{\jlreq@Kanji{enumi}} \renewcommand{\theenumii}{\tatechuyoko*{\@arabic\c@enumii}} \renewcommand{\theenumiii}{\tatechuyoko*{\@arabic\c@enumiii}} @@ -6096,7 +6112,7 @@ \newcommand{\labelenumii}{\theenumii} \newcommand{\labelenumiii}{\theenumiii} \newcommand{\labelenumiv}{\theenumiv} -\else +}{ \renewcommand{\theenumi}{\@arabic\c@enumi} \renewcommand{\theenumii}{\@alph\c@enumii} \renewcommand{\theenumiii}{\@roman\c@enumiii} @@ -6105,20 +6121,20 @@ \newcommand{\labelenumii}{(\theenumii)\hspace{.5\jlreq@zw}} \newcommand{\labelenumiii}{\theenumiii.\hspace{.5\jlreq@zw}} \newcommand{\labelenumiv}{\theenumiv.\hspace{.5\jlreq@zw}} -\fi +} \renewcommand{\p@enumii}{\theenumi} \renewcommand{\p@enumiii}{\theenumi(\theenumii)} \renewcommand{\p@enumiv}{\p@enumiii\theenumiii} \newcommand{\labelitemi}{\hbox to 1\jlreq@zw{\hss\textbullet\hss}} %\newcommand{\labelitemi}{•} -\if@tate +\legacy_if:nTF { @tate } { \newcommand{\labelitemii}{○} \newcommand{\labelitemiii}{*} -\else +}{ \newcommand{\labelitemii}{\hbox to 1\jlreq@zw{\hss\textendash\hss}} \newcommand{\labelitemiii}{\hbox to 1\jlreq@zw{\hss\textasteriskcentered\hss}} -\fi +} \newcommand{\labelitemiv}{\hbox to 1\jlreq@zw{\hss ・\hss}} % 見出しが一つ上のレベルからどのくらいずれているかを入れる. @@ -6139,7 +6155,6 @@ } %.. 引用 -\ExplSyntaxOn \jlreqsetup{ quote_indent=2\jlreq@zw, quote_end_indent=0pt, @@ -6170,11 +6185,11 @@ mainmatter_precode = {}, mainmatter_postcode = {}, } - \if@openright + \legacy_if:nTF { @openright } { \jlreqsetup{backmatter_pagebreak=cleardoublepage} - \else + }{ \jlreqsetup{backmatter_pagebreak=clearpage} - \fi + } \jlreqsetup{ backmatter_pagestyle = plain, backmatter_counter = { @@ -6193,50 +6208,49 @@ } } \str_if_eq:VnTF \jlreq@article@type { article } { - \if@tate + \legacy_if:nTF { @tate } { \jlreqsetup{ appendix_counter = { section = {value = 0, the = {\tatechuyoko*{\Alph{section}}}}, subsection = {value = 0}, } } - \else + }{ \jlreqsetup{ appendix_counter = { section = {value = 0, the = {\Alph{section}}}, subsection = {value = 0}, } } - \fi + } \jlreqsetup{appendix_heading = {},appendix_precode = {},appendix_postcode = {}} }{%book, report - \if@tate + \legacy_if:nTF { @tate } { \jlreqsetup{ appendix_counter = { chapter = {value = 0, the = {\tatechuyoko*{\Alph{chapter}}}}, } } - \else + }{ \jlreqsetup{ appendix_counter = { chapter = {value = 0, the = {\Alph{chapter}}}, } } - \fi - \jlreqsetup{ - appendix_heading = { - chapter = {label_format = {付録\thechapter}} - }, - appendix_postcode = {% - \str_if_eq:VnT \jlreq@current@pagestyle { headings } { - \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}% - \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}% - }{}% - }, - appendix_precode = {} - } + } + \jlreqsetup{ + appendix_heading = { + chapter = {label_format = {付録\thechapter}} + }, + appendix_postcode = {% + \str_if_eq:VnT \jlreq@current@pagestyle { headings } { + \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}% + \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}% + }{}% + }, + appendix_precode = {} + } } -\ExplSyntaxOff \jlreqsetup{theindex_pagestyle=plain} \jlreqsetup{year_style=seireki} \jlreqsetup{ @@ -6267,6 +6281,8 @@ \onecolumn \raggedbottom \fi + +\ExplSyntaxOff \endinput diff --git a/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua b/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua index 4b84ffcedf1..6172b1b463d 100644 --- a/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua +++ b/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua @@ -15,26 +15,26 @@ xkanjiskipは{1,-3},kanjiskip={0,0} local stretch_width = 0.25 -- 空き第四段階の空き量 local hyphen_glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, stretch_width, 0, priority = {-1,0}}, - [9] = {0, 0, 0}, - [10] = {0, 0, 0}, - [11] = {0, 0, 0}, - [12] = {0, stretch_width, 0, priority = {-1,0}}, - [13] = {0, stretch_width, 0, priority = {-1,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, - [15] = {0, stretch_width, 0, priority = {-1,0}}, - [16] = {0, stretch_width, 0, priority = {-1,0}}, - [0] = {0, stretch_width, 0, priority = {-1,0}}, - [27] = {0, stretch_width, 0, priority = {-1,0}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [9] = {0, 0, 0, kanjiskip_natural = 1}, + [10] = {0, 0, 0, kanjiskip_natural = 1}, + [11] = {0, 0, 0, kanjiskip_natural = 1}, + [12] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [13] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [15] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [16] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [0] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [27] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0, 0}, @@ -65,26 +65,26 @@ local jfm = { width = 0.5,height = 0.88,depth = 0.12, align = 'right', glue = { - [1] = {0, 0, 0}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, 0, 0}, - [9] = {0, 0, 0}, - [10] = {0, 0, 0}, - [11] = {0, 0, 0}, - [12] = {0, 0, 0}, - [13] = {0, 0, 0}, - [14] = {0, 0, 0}, - [15] = {0, 0, 0}, - [16] = {0, 0, 0}, - [0] = {0, 0, 0}, - [27] = {0, 0, 0}, + [1] = {0, 0, 0, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, 0, 0, kanjiskip_natural = 1}, + [9] = {0, 0, 0, kanjiskip_natural = 1}, + [10] = {0, 0, 0, kanjiskip_natural = 1}, + [11] = {0, 0, 0, kanjiskip_natural = 1}, + [12] = {0, 0, 0, kanjiskip_natural = 1}, + [13] = {0, 0, 0, kanjiskip_natural = 1}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, + [15] = {0, 0, 0, kanjiskip_natural = 1}, + [16] = {0, 0, 0, kanjiskip_natural = 1}, + [0] = {0, 0, 0, kanjiskip_natural = 1}, + [27] = {0, 0, 0, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0, 0}, @@ -107,26 +107,26 @@ local jfm = { width = 0.5,height = 0.88,depth = 0.12, align = 'left', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [301] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [302] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [4] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [9] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [10] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [11] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [12] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [13] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, - [15] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [16] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [0] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [27] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, + [1] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [301] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [302] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [4] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [9] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [10] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [11] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [12] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [13] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [15] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [16] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [0] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [27] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, @@ -170,26 +170,26 @@ local jfm = { width = 1,height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, stretch_width, 0.25, ratio = 1, priority = {-1,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, stretch_width, 0, priority = {-1,0}}, - [9] = {0, 0, 0}, - [10] = {0, 0, 0}, - [11] = {0, 0, 0}, - [12] = {0, stretch_width, 0, priority = {-1,0}}, - [13] = {0, stretch_width, 0, priority = {-1,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, - [15] = {0, stretch_width, 0, priority = {-1,0}}, - [16] = {0, stretch_width, 0, priority = {-1,0}}, - [0] = {0, stretch_width, 0, priority = {-1,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, stretch_width, 0.25, ratio = 1, priority = {-1,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [9] = {0, 0, 0, kanjiskip_natural = 1}, + [10] = {0, 0, 0, kanjiskip_natural = 1}, + [11] = {0, 0, 0, kanjiskip_natural = 1}, + [12] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [13] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [15] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [16] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [0] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, @@ -212,26 +212,26 @@ local jfm = { width = 0.5,height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [2] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [300] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [301] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [302] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [4] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [5] = {0.5, 0, 0.5, ratio = 0.5, priority = {0,-1}}, - [6] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [7] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [8] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [9] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [10] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [11] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, - [12] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [13] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [14] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [15] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [16] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [0] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, - [27] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}}, + [1] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [2] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [300] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [301] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [302] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [4] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [5] = {0.5, 0, 0.5, ratio = 0.5, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [7] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [8] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [9] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [10] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [11] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1}, + [12] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [13] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [14] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [15] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [16] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [0] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, + [27] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1}, --[[ [20] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, [21] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}}, @@ -254,26 +254,26 @@ local jfm = { width = 0.5,height = 0.88,depth = 0.12, align = 'left', glue = { - [1] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [2] = {0, 0, 0}, - [300] = {0.5, 0, 0, ratio = 0}, - [301] = {0.5, 0, 0, ratio = 0}, - [302] = {0.5, 0, 0, ratio = 0}, - [4] = {0.5, 0, 0, ratio = 0}, - [5] = {0.75, 0, 0.25, ratio = 0.33333333, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [9] = {0.5, 0, 0, ratio = 0}, - [10] = {0.5, 0, 0, ratio = 0}, - [11] = {0.5, 0, 0, ratio = 0}, - [12] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [13] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [14] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [15] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [16] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [0] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, - [27] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}}, + [1] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [301] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [302] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [4] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [5] = {0.75, 0, 0.25, ratio = 0.33333333, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [9] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [10] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [11] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1}, + [12] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [13] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [14] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [15] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [16] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [0] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, + [27] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.5, 0, 0, ratio = 0}, @@ -296,26 +296,26 @@ local jfm = { width = 0.5,height = 0.88,depth = 0.12, align = 'left', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [301] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [302] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [4] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [5] = {0.75, 0, 0.75, ratio = 0.33333333, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [9] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [10] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [11] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, - [12] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [13] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [14] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [15] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [16] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [0] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, - [27] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}}, + [1] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [301] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [302] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [4] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [5] = {0.75, 0, 0.75, ratio = 0.33333333, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [9] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [10] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [11] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1}, + [12] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [13] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [14] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [15] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [16] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [0] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, + [27] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}}, @@ -337,26 +337,26 @@ local jfm = { width = 1,height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, [8] = {0, 0, 0}, -- 空き注4 --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, 0, 0}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, - [0] = {0, 0.25, 0, priority = {0,0}}, - [27] = {0, 0.25, 0, priority = {0,0}}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [27] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0.25, 0, priority = {0,0}}, @@ -377,26 +377,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, stretch_width, 0, priority = {-1,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, --- [0] = {0, 0.25, 0, priority = {0,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, @@ -417,26 +417,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, stretch_width, 0, priority = {-1,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, --- [0] = {0, 0.25, 0, priority = {0,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, @@ -457,26 +457,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, stretch_width, 0, priority = {-1,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, --- [0] = {0, 0.25, 0, priority = {0,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0, 0.125, ratio = 0, priority = {1,-3}}, @@ -497,26 +497,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, 0, 0.5, ratio = 1, priority = {0,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, --- [8] = {0, 0.25, 0, priority = {0,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, 0, 0}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, - [0] = {0, 0.25, 0, priority = {0,0}}, - [27] = {0, 0.25, 0, priority = {0,0}}, + [1] = {0.5, 0, 0.5, ratio = 1, priority = {0,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, +-- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [27] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0.25, 0, priority = {0,0}}, @@ -537,26 +537,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, --- [8] = {0, 0.25, 0, priority = {0,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, - [0] = {0, 0.25, 0, priority = {0,0}}, - [27] = {0, 0.25, 0, priority = {0,0}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, +-- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [27] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0.25, 0, priority = {0,0}}, @@ -577,26 +577,26 @@ local jfm = { align = 'middle', width= 1,height = 0.88,depth = 0.12, glue = { - [1] = {0, stretch_width, 0, priority = {-1,0}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, stretch_width, 0, priority = {-1,0}}, - [9] = {0, 0, 0}, - [10] = {0, 0, 0}, - [11] = {0, 0, 0}, - [12] = {0, stretch_width, 0, priority = {-1,0}}, - [13] = {0, stretch_width, 0, priority = {-1,0}}, - [14] = {0, stretch_width, 0, priority = {-1,0}}, - [15] = {0, stretch_width, 0, priority = {-1,0}}, - [16] = {0, stretch_width, 0, priority = {-1,0}}, - [0] = {0, stretch_width, 0, priority = {-1,0}}, - [27] = {0, stretch_width, 0, priority = {-1,0}}, + [1] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [9] = {0, 0, 0, kanjiskip_natural = 1}, + [10] = {0, 0, 0, kanjiskip_natural = 1}, + [11] = {0, 0, 0, kanjiskip_natural = 1}, + [12] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [13] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [15] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [16] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [0] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, + [27] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0, 0}, @@ -617,26 +617,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, --- [8] = {0, 0.25, 0, priority = {0,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, 0, 0}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, --- [0] = {0, 0.25, 0, priority = {0,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, +-- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, @@ -659,26 +659,26 @@ local jfm = { height = 0.88,depth = 0.12, align = 'middle', glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, --- [8] = {0, 0.25, 0, priority = {0,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, 0, 0}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, --- [0] = {0, 0.25, 0, priority = {0,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, +-- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, @@ -716,26 +716,26 @@ local jfm = { align = 'middle', width = 1,height = 0.88,depth = 0.12, glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, --- [8] = {0, 0.25, 0, priority = {0,0}}, --- [9] = {0, 0.25, 0, priority = {0,0}}, --- [10] = {0, 0.25, 0, priority = {0,0}}, --- [11] = {0, 0.25, 0, priority = {0,0}}, --- [12] = {0, 0.25, 0, priority = {0,0}}, --- [13] = {0, 0.25, 0, priority = {0,0}}, - [14] = {0, 0, 0}, --- [15] = {0, 0.25, 0, priority = {0,0}}, --- [16] = {0, 0.25, 0, priority = {0,0}}, --- [0] = {0, 0.25, 0, priority = {0,0}}, --- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, +-- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, +-- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}}, @@ -1003,26 +1003,26 @@ local jfm = { [27] = {-- 欧文 chars = {'alchar'}, glue = { - [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}}, - [2] = {0, 0, 0}, - [300] = {0, 0, 0}, - [301] = {0, 0, 0}, - [302] = {0, 0, 0}, - [4] = {0, 0, 0}, - [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}}, - [6] = {0, 0, 0}, - [7] = {0, 0, 0}, - [8] = {0, 0.25, 0, priority = {0,0}}, --- [9] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}}, --- [10] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}}, --- [11] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}}, - [12] = {0, 0.25, 0, priority = {0,0}}, + [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1}, + [2] = {0, 0, 0, kanjiskip_natural = 1}, + [300] = {0, 0, 0, kanjiskip_natural = 1}, + [301] = {0, 0, 0, kanjiskip_natural = 1}, + [302] = {0, 0, 0, kanjiskip_natural = 1}, + [4] = {0, 0, 0, kanjiskip_natural = 1}, + [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1}, + [6] = {0, 0, 0, kanjiskip_natural = 1}, + [7] = {0, 0, 0, kanjiskip_natural = 1}, + [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, +-- [9] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1}, +-- [10] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1}, +-- [11] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1}, + [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1}, [13] = {0, 0.25, 0, priority = {0,0}},-- 空け注10 - [14] = {0, 0, 0}, --- [15] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}}, --- [16] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}}, --- [0] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}}, --- [27] = {0, 0, 0, ratio = 0, priority = {1,0}}, + [14] = {0, 0, 0, kanjiskip_natural = 1}, +-- [15] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1}, +-- [16] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1}, +-- [0] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1}, +-- [27] = {0, 0, 0, ratio = 0, priority = {1,0}, kanjiskip_natural = 1}, --[[ [20] = {0, 0, 0}, [21] = {0, 0.25, 0, priority = {0,0}}, diff --git a/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua b/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua index eb88fd30480..5e17344a9e8 100644 --- a/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua +++ b/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua @@ -7,24 +7,66 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, - [14]={ 0, 0, 0 }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["left"]=0, @@ -35,32 +77,128 @@ local jfm={ ["chars"]={ "(", "〔", "[", "{", "〈", "《", "「", "『", "【", "⦅", "〘", "〖", "«", "〝", "‘", "“" }, ["depth"]=0.5, ["glue"]={ - [0]={ 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + [0]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, - [8]={ 0, 0, 0 }, - [9]={ 0, 0, 0 }, - [10]={ 0, 0, 0 }, - [11]={ 0, 0, 0 }, - [12]={ 0, 0, 0 }, - [13]={ 0, 0, 0 }, - [14]={ 0, 0, 0 }, - [15]={ 0, 0, 0 }, - [16]={ 0, 0, 0 }, - [27]={ 0, 0, 0 }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [8]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [9]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [10]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [11]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [12]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [13]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [15]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [16]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [27]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=0.5, @@ -75,6 +213,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -82,14 +221,21 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, - { 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [4]={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -97,15 +243,27 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -113,6 +271,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -120,6 +279,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -127,6 +287,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -134,6 +295,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -141,6 +303,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -148,12 +311,14 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [15]={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -161,6 +326,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -168,6 +334,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -175,6 +342,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -182,6 +350,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -189,6 +358,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -205,68 +375,127 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, { 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [9]={ 0, 0, 0 }, - [10]={ 0, 0, 0 }, - [11]={ 0, 0, 0 }, + [9]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [10]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [11]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [12]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [13]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [15]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [16]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=1, @@ -281,6 +510,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -288,6 +518,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -295,6 +526,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -302,6 +534,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -309,6 +542,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0.5, }, @@ -316,6 +550,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -323,6 +558,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -330,6 +566,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -337,6 +574,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -344,6 +582,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -351,6 +590,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -358,6 +598,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -365,6 +606,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -372,6 +614,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -379,6 +622,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -386,6 +630,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -393,6 +638,7 @@ local jfm={ 0.25, 0.25, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -1 }, ["ratio"]=0, }, @@ -400,6 +646,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -407,6 +654,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -414,6 +662,7 @@ local jfm={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0, }, @@ -431,6 +680,7 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -438,29 +688,48 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, - { 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [4]={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, [5]={ 0.75, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0.33333333, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -468,24 +737,28 @@ local jfm={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, [10]={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, [11]={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, [12]={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -493,6 +766,7 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -500,6 +774,7 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -507,6 +782,7 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -514,6 +790,7 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -521,6 +798,7 @@ local jfm={ 0.5, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, ["ratio"]=0, }, @@ -528,18 +806,21 @@ local jfm={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, [301]={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, [302]={ 0.5, 0, 0, + ["kanjiskip_natural"]=1, ["ratio"]=0, }, }, @@ -556,6 +837,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -563,14 +845,21 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, - { 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [4]={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -578,15 +867,27 @@ local jfm={ 0.75, 0, 0.75, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=0.33333333, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -594,6 +895,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -601,6 +903,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -608,6 +911,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -615,6 +919,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -622,6 +927,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -629,6 +935,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -636,6 +943,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -643,6 +951,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -650,6 +959,7 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=0, }, @@ -657,6 +967,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -664,6 +975,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -671,6 +983,7 @@ local jfm={ 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=0, }, @@ -687,37 +1000,81 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, { 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0, 0 }, - [14]={ 0, 0, 0 }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=1, @@ -731,35 +1088,74 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -772,35 +1168,74 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -813,35 +1248,74 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -854,36 +1328,80 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, { 0.5, 0, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, - [14]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -896,41 +1414,81 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, { 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -943,73 +1501,133 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, { 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [9]={ 0, 0, 0 }, - [10]={ 0, 0, 0 }, - [11]={ 0, 0, 0 }, + [9]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [10]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [11]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [12]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [13]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [15]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [16]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=1, @@ -1023,24 +1641,66 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, - [14]={ 0, 0, 0 }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -1053,24 +1713,66 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, - [14]={ 0, 0, 0 }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -1082,30 +1784,54 @@ local jfm={ 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, [12]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ 0, 0 }, }, [13]={ @@ -1114,10 +1840,30 @@ local jfm={ 0, ["priority"]={ 0, 0 }, }, - [14]={ 0, 0, 0 }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [14]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, }, @@ -1138,74 +1884,134 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, { 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [9]={ 0, 0, 0 }, - [10]={ 0, 0, 0 }, - [11]={ 0, 0, 0 }, + [9]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [10]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [11]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [12]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [13]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [15]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [16]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=0.25, @@ -1219,74 +2025,134 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, { 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [9]={ 0, 0, 0 }, - [10]={ 0, 0, 0 }, - [11]={ 0, 0, 0 }, + [9]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [10]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [11]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [12]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [13]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [15]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [16]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=0.5, @@ -1300,74 +2166,134 @@ local jfm={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, { 0.5, 0.25, 0.5, + ["kanjiskip_natural"]=1, ["priority"]={ -1, -2 }, ["ratio"]=1, }, - { 0, 0, 0 }, - [4]={ 0, 0, 0 }, + { + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [4]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [5]={ 0.25, 0, 0.25, + ["kanjiskip_natural"]=1, ["priority"]={ 0, -1 }, ["ratio"]=1, }, - [6]={ 0, 0, 0 }, - [7]={ 0, 0, 0 }, + [6]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [7]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [8]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [9]={ 0, 0, 0 }, - [10]={ 0, 0, 0 }, - [11]={ 0, 0, 0 }, + [9]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [10]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [11]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, [12]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [13]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [14]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [15]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [16]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, [27]={ 0, 0.25, 0, + ["kanjiskip_natural"]=1, ["priority"]={ -1, 0 }, }, - [300]={ 0, 0, 0 }, - [301]={ 0, 0, 0 }, - [302]={ 0, 0, 0 }, + [300]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [301]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, + [302]={ + 0, + 0, + 0, + ["kanjiskip_natural"]=1, + }, }, ["height"]=0.5, ["width"]=1, |