From cdde74fc51a74159b464afaf5a1570117d90c858 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 10 Dec 2018 22:57:36 +0000 Subject: jlreq (10dec18) git-svn-id: svn://tug.org/texlive/trunk@49375 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/jlreq/README-ja.md | 82 +- Master/texmf-dist/doc/latex/jlreq/README.md | 12 +- Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html | 87 +- .../doc/latex/jlreq/jlreq-trimmarks-ja.html | 65 +- .../doc/latex/jlreq/jlreq-trimmarks-ja.md | 40 +- .../doc/latex/jlreq/jlreq-trimmarks.html | 67 +- .../texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md | 40 +- Master/texmf-dist/doc/latex/jlreq/jlreq.html | 13 +- .../texmf-dist/tex/latex/jlreq/jlreq-helpers.sty | 61 +- .../texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty | 593 ++++++++++--- Master/texmf-dist/tex/latex/jlreq/jlreq.cls | 943 +++++++++++++++------ 11 files changed, 1547 insertions(+), 456 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/jlreq/README-ja.md b/Master/texmf-dist/doc/latex/jlreq/README-ja.md index df4d5028984..5cc5490b8a1 100644 --- a/Master/texmf-dist/doc/latex/jlreq/README-ja.md +++ b/Master/texmf-dist/doc/latex/jlreq/README-ja.md @@ -122,23 +122,23 @@ * `reference_mark=[inline/interlinear]`:合印の配置方法を指定します.`inline`にすると該当項目の後ろの行中に配置します.`interlinear`を指定すると該当項目の上(横組)または右(縦組)に配置します. * `footnote_second_indent=<寸法>`: 脚注(横書き時)または傍注(縦書き時)の二行目以降の字下げ量を指定します.一行目からの相対字下げ量です. * `sidenote_type=[number/symbol]`:傍注と本文との対応の方法を指定します.`number`が規定で,注の位置に通し番号が入り,それにより対応が示されます.`symbol`とすると,注の位置に特定の記号が入り,また注がついている単語が強調されます. -* `sidenote_symbol=<記号>`:`sidenote_symbol=symbol`の時に,注の位置に入る記号.デフォルト* -* `sidenote_keyword_font=<命令>`:`sidenote_symbol=symbol`の時に,注のついている単語のフォント指定.デフォルトは無し(強調しない) +* `sidenote_symbol=<コード>`:`sidenote_symbol=symbol`の時に,注の位置に入る記号.デフォルト* +* `sidenote_keyword_font=<コード>`:`sidenote_symbol=symbol`の時に,注のついている単語のフォント指定.デフォルトは無し(強調しない) * `endnote_second_indent=<寸法>`: 後柱の二行目以降の字下げ量を指定します.一行目からの相対字下げ量です. * `endnote_position=[headings/paragraph/{_<見出し名1>,_<見出し名2>,...}]`:後注の出力場所を指定します.`headings`は各見出しの直前(デフォルト),`paragraph`は改段落の際に出力します.また,`endnote_position={_chapter,_section}`とすると,`\chapter`と`\section`の直前に出力します. ### キャプション 図表のキャプションを`\jlreqsetup`で変更できます. -* `caption_font=<命令>`:キャプション自身のフォントを指定します. -* `caption_label_font=<命令>`:キャプションのラベルのフォントを指定します. +* `caption_font=<コード>`:キャプション自身のフォントを指定します. +* `caption_label_font=<コード>`:キャプションのラベルのフォントを指定します. * `caption_after_label_space=<寸法>`:ラベルとキャプションの間の空きを指定します. -* `caption_label_format=<書式>`:ラベルの書式を指定します.`caption_label_format={#1:}`のようにします.`#1`が「図1」のような番号に置換されます. +* `caption_label_format=<コード>`:ラベルの書式を指定します.`caption_label_format={#1:}`のようにします.`#1`が「図1」のような番号に置換されます. * `caption_align=[{left/right/center/bottom/top/<環境名1>=<位置指定1>,<環境名2>=<位置指定2>,...}]`:キャプションの場所を指定します.`caption_align=left`のように指定します.`caption_align={center,table=right}`とすると,`table`のみ右,そのほかは中央配置となります. ### 引用 `quote / quotation / verse`環境の挙動を`\jlreqsetup`で指定できます. -* `quote_indent=<寸法>`:字下げを指定します.デフォルトは2zwです.一行の長さが文字サイズの整数倍になるように調整されます. -* `quote_end_indent=<寸法>`:字上げを指定します.デフォルトは0zwです. +* `quote_indent=<寸法>`:字下げを指定します.デフォルトは2\zwです.一行の長さが文字サイズの整数倍になるように調整されます. +* `quote_end_indent=<寸法>`:字上げを指定します.デフォルトは0\zwです. * `quote_beforeafter_space=<寸法>`:前後の空きを指定します.`quote_beforeafter_space=1\baselineskip`とすると一行あきます. * `quote_fontsize=[normalsize/small/footnotesize/scriptsize/tiny]`:フォントサイズを指定します. @@ -151,45 +151,66 @@ `\jlreqsetup`で指定します. * `theorem_beforeafter_space=<寸法>`:定理環境の前後の空きを指定します. +### 前付きなど +`\fontmatter` / `\mainmatter` / `\backmatter` / `\appendix`での処理を`\jlreqsetup`で指定できます. +* `frontmatter_pagebreak=[cleardoublepage/clearpage/]`:`\frontmatter`実行時の改ページを実行する命令名を指定します.空にすると何もしません. +* `frontmatter_counter={<カウンタ名>={value=<値>, the=<コード>, restore=[true/false]},...}`:`\frontmatter`時でのカウンタの操作を指定します.例えば`chapter={value=0,the={[\arabic{chapter]}}`とすると,`chapter`カウンタの値が`0`になり,`\thechapter`が`[\arabic{chapter}]`となります.デフォルトでは`\mainmatter`時に値と`\the<カウンタ名>`の定義を戻しますが,`restore=false`とするとこの動きが抑制されます. +* `frontmatter_heading={<見出し命令名>={<設定>},...}`:見出し命令の動きを変更します.`\Delare***Heading`で指定できる項目の他以下を受け付けます. + - `heading_type=[Tobira/Block/Runin/Cutin/Modify]`:見出しの種類です.`Modify`が指定された場合は`\ModifyHeading`での変更となります. + - `heading_level=<数値>`:見出し命令のレベルを設定します.指定されなかった場合は,`\frontmatter`実行時の値が使われます.`heading_type=Modify`の時は無視されます. + - `restore=[true/false]`:`true`が指定されると,`\mainmatter`で元の定義を復帰します.デフォルトは`true`です. +* `frontmatter_pagestyle={<ページスタイル名>[,restore=[true/false]]}`:`\frontmatter`実行時にここで指定されたページスタイルへと切り替えます.デフォルトでは`\mainmatter`時にもとのページスタイルに戻しますが,`restore=false`を指定すると戻しません. +* `frontmatter_pagination={<ページ番号指定>[,continuous,independent]}`:ページ番号の出力形式を,`frontmatter_pagination=roman`のようにLaTeXの命令名で指定します.更に`continuous`が指定されると通しノンブルとなります.`independent`で別ノンブルです. +* `frontmatter_precode=<コード>`:`\frontmatter`時に最初に実行されるコードです. +* `frontmatter_postcode=<コード>`:`\frontmatter`時に最後に実行されるコードです. + +`frontmatter`を`mainmatter`や`backmatter`,`appendix`へと変えた設定も存在します.ただし,以下のような違いがあります. +* `restore=[true/false]`は無効な設定です. +* `mainmatter_pagination`に`continuous`と`independent`は指定できません. +* `appendix_pagebreak`,`appendix_pagestyle`,`appendix_pagination`はありません. + + ## 見出し -見出しの設定は,`\Declare***Heading`という命令で行います(***には見出しの種類に応じた文字列が入る).書式はすべて +新しい見出しを`\New***Heading`という命令で作ることができます(***には見出しの種類に応じた文字列が入る).書式はすべて ``` -\Declare***Heading{<命令名>}{<レベル>}{<設定>} +\New***Heading{<命令名>}{<レベル>}{<設定>} ``` -となっています.また,`\New***Heading`,`\Renew***Heading`,`\Provide***Heading`も同時に用意されます.それぞれ +となっています.また,`\Renew***Heading`,`\Provide***Heading`,`\Declare***Heading`も同時に用意されます.それぞれ -* `\New***Heading`:指定した名前の命令が既に定義されている場合はエラー. * `\Renew***Heading`:指定した名前の命令が定義されていなければエラー. * `\Provide***Heading`:指定した名前の命令が定義されていない場合に限り見出し命令の定義が行われる. +* `\Declare***Heading`:指定した名前の命令が定義されているか否かによらず新しく見出し命令を定義する. となっています. ### 扉見出し -`\DeclareTobiraHeading`で作成します.通常のクラスファイルにおける`\section`等と同じ書式の命令ができます.設定は以下の通り. +`\NewTobiraHeading`で作成します.通常のクラスファイルにおける`\section`等と同じ書式の命令ができます.設定は以下の通り. * `type=[han/naka]`:`han`だと半扉見出しを,`naka`だと中扉見出しを作ります. -* `pagestyle=<ページスタイル>`:見出し箇所のページスタイルを指定します. -* `label_format=<書式>`:ラベルを出力する命令を指定します.たとえば`label_format={第\thechapter 章}`のように指定します. -* `format=<書式>`:実際に出力する書式を指定します.`format={\null\vfil {\Huge\bfseries #1#2}}`のようにします.`#1`はラベルに,`#2`は見出し文字列に置き換えられます. +* `pagestyle=<ページスタイル名>`:見出し箇所のページスタイルを指定します. +* `label_format=<コード>`:ラベルを出力する命令を指定します.たとえば`label_format={第\thechapter 章}`のように指定します. +* `format=<コード>`:実際に出力する書式を指定します.`format={\null\vfil {\Huge\bfseries #1#2}}`のようにします.`#1`はラベルに,`#2`は見出し文字列に置き換えられます.この中では`\jlreqHeadingLabel`,`\jlreqHeadingText`という命令が利用可能です.いずれも引数を一つとる命令で,それぞれラベル,見出し文字列が空ならば空に,そうでなければ与えられた引数自身を出力します.例えば`format={[\jlreqHeadingLabel{Label=#1}]}`と指定されていれば,ラベルが空でない時には`[Label=<ラベル>]`を,そうでなければ`[]`を出力します. +* `number=[true/false]':採番を行うかを指定します.ただし,`number=false`の場合でも対応するカウンタは定義されます.また`\the<カウンタ名>`の変更もされないので,必要ならば再定義が必要になります. ### 別行見出し -`\DeclareBlockHeading`で作成します.`\<命令名>*[running head]{見出し文字列}[副題]`という書式の命令を作成します.設定は以下の通り. +`\NewBlockHeading`で作成します.`\<命令名>*[running head]{見出し文字列}[副題]`という書式の命令を作成します.設定は以下の通り. #### 書式関連 -* `font=<命令>`:見出しのフォントを指定します. -* `subtitle_font=<命令>`:副題のフォントを指定します. -* `label_format=<命令>`:ラベルのフォーマットを指定します.`label_format={第\thechapter 章}`などのようにします. -* `subtitle_format=<命令>`:副題のフォーマットを指定します.`subtitle_format={「#1」}`のようにします.`#1`が副題自身になります. +* `font=<コード>`:見出しのフォントを指定します. +* `subtitle_font=<コード>`:副題のフォントを指定します. +* `label_format=<コード>`:ラベルのフォーマットを指定します.`label_format={第\thechapter 章}`などのようにします. +* `subtitle_format=<コード>`:副題のフォーマットを指定します.`subtitle_format={「#1」}`のようにします.`#1`は副題自身に置き換えられます. +* `format=<コード>`:見出し全体のフォーマットを指定します.`#1`がラベル,`#2`が見出し文字列,`#3`が副題に置き換えられます.内部では`\jlreqHeadingLabel`,`\jlreqHeadingText`,`\jlreqHeadingSubtitle`という命令が利用可能です.いずれも引数を一つとる命令で,それぞれラベル,見出し文字列,副題が空ならば空に,そうでなければ与えられた引数自身を出力します.例えば`format={[\jlreqHeadingLabel{Label=#1}]}`と指定されていれば,ラベルが空でない時には`[Label=<ラベル>]`を,そうでなければ`[]`を出力します. #### インデント関連 * `align=[left/center/right]`:見出し位置の横方向の配置場所を指定します. * `indent=<寸法>`:見出し全体の字下げ量を指定します. * `end_indent=<寸法>`:見出し全体の字上げ量を指定します. * `after_label_space=<寸法>`:ラベル後,見出し文字列までの空きを指定します. -* `second_heading_text_indent=[<寸法>/{<寸法>,<寸法>}]`:見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,`second_heading_text_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.(ラベルがない時は一行目の頭が起点.)また,`second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}`という指定をすると,ラベルの有無に応じて値を変更することができます.`<ラベルがある時>`の指定ではやはり`*`を使うことができます. -* `subtitle_indent=<寸法>`:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します. +* `second_heading_text_indent=[<寸法>/{<寸法>,<寸法>}]`:見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,`second_heading_text_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.また,`second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}`という指定をすると,ラベルの有無に応じて値を変更することができます.`<ラベルがある時>`の指定ではやはり`*`を使うことができます. +* `subtitle_indent=<寸法>`:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します.ただし,`subtitle_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.`subtitle_indent=true`の時のみ有効です. #### その他 * `subtitle_break=[true/false]`:見出し文字列と副題の間を改行するか指定します. @@ -197,6 +218,7 @@ * `pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki/begin_with_odd_page/begin_with_even_page]`:見出し直前の改ページを指定します.それぞれ,改ページ,`\cleardoublepage`実行,改段,なりゆき,奇数ページ開始,偶数ページ開始,です. * `afterindent=[true/false]`:見出し直後の段落の字下げを行うかを指定します. * `column_spanning=[true/false]`: 段抜きの見出しにします.`pagebreak=nariyuki`または`pagebreak=clearcolumn`の時には無視されます. +* `number=[true/false]':採番を行うかを指定します.`\NewTobiraHeading`と同様の注意が必要です. #### 行取り 行取りの指定は以下のいずれかの方法で行うことができます. @@ -232,15 +254,16 @@ なお,見出しが連続しているかは単純に別行見出しの命令が並んで書かれているかのみで判断します.従ってそれらの命令間に出力には関係しないような命令が挟まっていたとしても,見出しが連続して掲げられているとは判断されません.ただし,見出し命令の間に空白,改行または`\label[<オプション>]{<引数>}…{<引数>}`という形のもののみが挟まれている場合は,見出しが連続していると判断されます. ### 同行見出し -`\DeclareRuninHeading`で作成します.通常の文書クラスにおける`\section`と同様の,`\<命令名>*[running head]{見出し文字列}`という書式の命令が作成されます.設定は以下の通り. +`\NewRuninHeading`で作成します.通常の文書クラスにおける`\section`と同様の,`\<命令名>*[running head]{見出し文字列}`という書式の命令が作成されます.設定は以下の通り. * `font=<命令>`:見出しのフォントを指定します. * `indent=<寸法>` 見出し文字列全体の字下げ量を指定します. * `after_label_space=<寸法>`:ラベル後,見出し文字列までの空きを指定します. * `label_format=<命令>`:ラベルのフォーマットを指定します.`label_format={\theparagraph}`などのようにします. +* `number=[true/false]':採番を行うかを指定します.`\NewTobiraHeading`と同様の注意が必要です. ### 窓見出し -`\DeclareCutinHeading`で作成します.`\<命令名>{見出し文字列}`という書式の命令を作成します.設定は以下の通り. +`\NewCutinHeading`で作成します.`\<命令名>{見出し文字列}`という書式の命令を作成します.設定は以下の通り. * `font=<命令>`:見出しのフォントを指定します. * `indent=<寸法>`:見出し全体の字下げ量を指定します. @@ -266,7 +289,7 @@ ## ページスタイル ``` -\DeclarePageStyle{<ページスタイル名>}{<設定>} +\NewPageStyle{<ページスタイル名>}{<設定>} ``` によりページスタイルを定義することができます.`<設定>`はkeyval形式です.定義したページスタイルは`\pagestyle`で適用できます.設定は以下の通り. @@ -274,7 +297,7 @@ * `tate`:縦書きで小口側に出力します. * `font=<命令>`:柱とノンブルのフォントを指定します. * `running_head_position`, `nombre_position`:柱とノンブルの位置を指定します.`yoko`か`tate`のどちらが指定されているかで指定方法が変わります. - - `yoko`指定時:`top-left`のように指定できます.`top / bottom / center / left / right / gutter / fore_edge`が使えます.`gutter`はのど,`fore_edge`は小口です.`left`,`right`の指定は奇数ページに対するものです.`twoside`が指定されている場合,偶数ページはその逆になります. + - `yoko`指定時:`top-left`のように指定できます.`top / bottom / center / left / right / gutter / fore-edge`が使えます.`gutter`はのど,`fore-edge`は小口です.`left`,`right`の指定は奇数ページに対するものです.`twoside`が指定されている場合,偶数ページはその逆になります. - `tate`指定時:`<寸法>`が指定できます.`running_head_position`は柱の天からの下げ量を,`nombre_position`はノンブルの地からの上げ量を指定します. * `nombre=<書式>`:出力するノンブルを指定します.デフォルトは`\thepage`. * `odd_running_head=<書式>`,`even_running_head=<書式>`:それぞれ奇数ページ,偶数ページの柱を指定します.`_section`のように`_`から始まる名前を指定すると,対応する見出しを出力します.(`_section`だと現在の`\section`を出力する.) @@ -282,7 +305,7 @@ * `nombre_ii=<書式>`: 二つ目のノンブルを指定します.`nombre_ii_position`で場所指定もできます.指定方法は`nombre`や`nombre_position`と同じです.`odd_running_head_ii`,`even_running_head_ii`,`running_head_ii_position`もあります.`nombre_ii_position`や`running_head_ii_position`が指定されなかった場合,`yoko`指定時にはそれぞれ`nombre_position`および`running_head_position`と同じ位置に設定されます.`tate`指定時は一つ目のノンブルや柱に続く場所に表示されます. -`\NewPageStyle`,`\RenewPageStyle`,`\ProvidePageStyle`もあります.`\ModifyPageStyle`により既存のページスタイルを改変することが可能です. +`\RenewPageStyle`,`\ProvidePageStyle`,`\DeclarePageStyle`もあります.`\ModifyPageStyle`により既存のページスタイルを改変することが可能です. ## JFM 以下のような独自のJFMを使います.パッケージによっては,パッケージ独自のJFMや,また標準のJFMを使うように設定がし直される場合があります.例えばLuaTeX-jaに付属するluatexja-presetパッケージは通常LuaTeX-ja標準のJFMを使います.本クラスファイルで使っているJFMを使う場合は, @@ -398,6 +421,11 @@ JFMの名前は次の通りです.`[]`で囲まれている文字は設定に * 2018-09-01 - `\mag`が`1000`でない場合も動くようにした(つもり). - バグ修正. +* 2018-12-10 + - 見出し命令を作る命令に`number=[true/false]`を追加. + - `\frontmatter`等の挙動を設定できるようにした. + - `\jlreqHeadingLabel`等を扉見出しと別行見出しの`format`内で使えるようにした. + - バグ修正 -------------- diff --git a/Master/texmf-dist/doc/latex/jlreq/README.md b/Master/texmf-dist/doc/latex/jlreq/README.md index b9a49687f2c..261c5e8a31a 100644 --- a/Master/texmf-dist/doc/latex/jlreq/README.md +++ b/Master/texmf-dist/doc/latex/jlreq/README.md @@ -4,14 +4,14 @@ This package provides the class file and JFM (Japanese font metric) files for LuaTeX-ja / pLaTeX / upLaTeX. This aims to implement [Requirements for Japanese Text Layout](https://www.w3.org/TR/jlreq/). ## Installation -Run `make`, then JFM files are created. Move the files as follows: +Run `make` to generate JFM files. Move the files as follows: * *.tfm -> $TEXMF/fonts/tfm/public/jlreq * *.vf -> $TEXMF/fonts/vf/public/jlreq -* jfm-jlreq.lua jfm-jlreqv.lua -> $TEXMF/tex/luatex/jlreq +* jfm-jlreq.lua, jfm-jlreqv.lua -> $TEXMF/tex/luatex/jlreq * jlreq.cls, jlreq-helpers.sty -> $TEXMF/tex/latex/jlreq -`make install` will do this where $TEXMF=$TEXMFHOME +The other way to install is just to run `make install`. It will install all files in `$TEXMFHOME`. ## Usage See [README-ja.md](README-ja.md) (in Japanese). @@ -96,6 +96,12 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS * 2018-09-01 - jlreq works with unusual `\mag`. - Fixed bugs. +* 2018-12-10 + - Added `number=[true/false]` to `\New***Heading`. + - Added options for `\frontmatter` etc in `\jlreqsetup`. + - Made `\jlreqHeadingLabel` etc available in `format` in `\NewTobiraHeading` and `\NewBlockHeading`. + - Fixed bugs. + -------------- Noriyuki Abe diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html index 60d4f9d9bc1..102b6bb0b19 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html @@ -185,25 +185,25 @@
  • reference_mark=[inline/interlinear]:合印の配置方法を指定します.inlineにすると該当項目の後ろの行中に配置します.interlinearを指定すると該当項目の上(横組)または右(縦組)に配置します.
  • footnote_second_indent=<寸法>: 脚注(横書き時)または傍注(縦書き時)の二行目以降の字下げ量を指定します.一行目からの相対字下げ量です.
  • sidenote_type=[number/symbol]:傍注と本文との対応の方法を指定します.numberが規定で,注の位置に通し番号が入り,それにより対応が示されます.symbolとすると,注の位置に特定の記号が入り,また注がついている単語が強調されます.
  • -
  • sidenote_symbol=<記号>sidenote_symbol=symbolの時に,注の位置に入る記号.デフォルト*
  • -
  • sidenote_keyword_font=<命令>sidenote_symbol=symbolの時に,注のついている単語のフォント指定.デフォルトは無し(強調しない)
  • +
  • sidenote_symbol=<コード>sidenote_symbol=symbolの時に,注の位置に入る記号.デフォルト*
  • +
  • sidenote_keyword_font=<コード>sidenote_symbol=symbolの時に,注のついている単語のフォント指定.デフォルトは無し(強調しない)
  • endnote_second_indent=<寸法>: 後柱の二行目以降の字下げ量を指定します.一行目からの相対字下げ量です.
  • endnote_position=[headings/paragraph/{_<見出し名1>,_<見出し名2>,...}]:後注の出力場所を指定します.headingsは各見出しの直前(デフォルト),paragraphは改段落の際に出力します.また,endnote_position={_chapter,_section}とすると,\chapter\sectionの直前に出力します.
  • キャプション

    図表のキャプションを\jlreqsetupで変更できます.

    引用

    quote / quotation / verse環境の挙動を\jlreqsetupで指定できます.

    @@ -218,33 +218,57 @@ +

    前付きなど

    +

    \fontmatter / \mainmatter / \backmatter / \appendixでの処理を\jlreqsetupで指定できます.

    + +

    frontmattermainmatterbackmatterappendixへと変えた設定も存在します.ただし,以下のような違いがあります.

    +

    見出し

    -

    見出しの設定は,\Declare***Headingという命令で行います(***には見出しの種類に応じた文字列が入る).書式はすべて

    -
    \Declare***Heading{<命令名>}{<レベル>}{<設定>}
    +

    新しい見出しを\New***Headingという命令で作ることができます(***には見出しの種類に応じた文字列が入る).書式はすべて

    +
    \New***Heading{<命令名>}{<レベル>}{<設定>}
     
    -

    となっています.また,\New***Heading\Renew***Heading\Provide***Headingも同時に用意されます.それぞれ

    +

    となっています.また,\Renew***Heading\Provide***Heading\Declare***Headingも同時に用意されます.それぞれ

      -
    • \New***Heading:指定した名前の命令が既に定義されている場合はエラー.
    • \Renew***Heading:指定した名前の命令が定義されていなければエラー.
    • \Provide***Heading:指定した名前の命令が定義されていない場合に限り見出し命令の定義が行われる.
    • +
    • \Declare***Heading:指定した名前の命令が定義されているか否かによらず新しく見出し命令を定義する.

    となっています.

    扉見出し

    -

    \DeclareTobiraHeadingで作成します.通常のクラスファイルにおける\section等と同じ書式の命令ができます.設定は以下の通り.

    +

    \NewTobiraHeadingで作成します.通常のクラスファイルにおける\section等と同じ書式の命令ができます.設定は以下の通り.

    • type=[han/naka]hanだと半扉見出しを,nakaだと中扉見出しを作ります.
    • -
    • pagestyle=<ページスタイル>:見出し箇所のページスタイルを指定します.
    • -
    • label_format=<書式>:ラベルを出力する命令を指定します.たとえばlabel_format={第\thechapter 章}のように指定します.
    • -
    • format=<書式>:実際に出力する書式を指定します.format={\null\vfil {\Huge\bfseries #1#2}}のようにします.#1はラベルに,#2は見出し文字列に置き換えられます.
    • +
    • pagestyle=<ページスタイル名>:見出し箇所のページスタイルを指定します.
    • +
    • label_format=<コード>:ラベルを出力する命令を指定します.たとえばlabel_format={第\thechapter 章}のように指定します.
    • +
    • format=<コード>:実際に出力する書式を指定します.format={\null\vfil {\Huge\bfseries #1#2}}のようにします.#1はラベルに,#2は見出し文字列に置き換えられます.この中では\jlreqHeadingLabel\jlreqHeadingTextという命令が利用可能です.いずれも引数を一つとる命令で,それぞれラベル,見出し文字列が空ならば空に,そうでなければ与えられた引数自身を出力します.例えばformat={[\jlreqHeadingLabel{Label=#1}]}と指定されていれば,ラベルが空でない時には[Label=<ラベル>]を,そうでなければ[]を出力します.
    • +
    • number=[true/false]':採番を行うかを指定します.ただし,number=falseの場合でも対応するカウンタは定義されます.また\the<カウンタ名>`の変更もされないので,必要ならば再定義が必要になります.

    別行見出し

    -

    \DeclareBlockHeadingで作成します.\<命令名>*[running head]{見出し文字列}[副題]という書式の命令を作成します.設定は以下の通り.

    +

    \NewBlockHeadingで作成します.\<命令名>*[running head]{見出し文字列}[副題]という書式の命令を作成します.設定は以下の通り.

    書式関連

      -
    • font=<命令>:見出しのフォントを指定します.
    • -
    • subtitle_font=<命令>:副題のフォントを指定します.
    • -
    • label_format=<命令>:ラベルのフォーマットを指定します.label_format={第\thechapter 章}などのようにします.
    • -
    • subtitle_format=<命令>:副題のフォーマットを指定します.subtitle_format={「#1」}のようにします.#1が副題自身になります.
    • +
    • font=<コード>:見出しのフォントを指定します.
    • +
    • subtitle_font=<コード>:副題のフォントを指定します.
    • +
    • label_format=<コード>:ラベルのフォーマットを指定します.label_format={第\thechapter 章}などのようにします.
    • +
    • subtitle_format=<コード>:副題のフォーマットを指定します.subtitle_format={「#1」}のようにします.#1は副題自身に置き換えられます.
    • +
    • format=<コード>:見出し全体のフォーマットを指定します.#1がラベル,#2が見出し文字列,#3が副題に置き換えられます.内部では\jlreqHeadingLabel\jlreqHeadingText\jlreqHeadingSubtitleという命令が利用可能です.いずれも引数を一つとる命令で,それぞれラベル,見出し文字列,副題が空ならば空に,そうでなければ与えられた引数自身を出力します.例えばformat={[\jlreqHeadingLabel{Label=#1}]}と指定されていれば,ラベルが空でない時には[Label=<ラベル>]を,そうでなければ[]を出力します.

    インデント関連

      @@ -252,8 +276,8 @@
    • indent=<寸法>:見出し全体の字下げ量を指定します.
    • end_indent=<寸法>:見出し全体の字上げ量を指定します.
    • after_label_space=<寸法>:ラベル後,見出し文字列までの空きを指定します.
    • -
    • second_heading_text_indent=[<寸法>/{<寸法>,<寸法>}]:見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,second_heading_text_indent=*1\zwのように先頭に*をつけるとラベルの頭を起点としての指定になります.(ラベルがない時は一行目の頭が起点.)また,second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}という指定をすると,ラベルの有無に応じて値を変更することができます.<ラベルがある時>の指定ではやはり*を使うことができます.
    • -
    • subtitle_indent=<寸法>:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します.
    • +
    • second_heading_text_indent=[<寸法>/{<寸法>,<寸法>}]:見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,second_heading_text_indent=*1\zwのように先頭に*をつけるとラベルの頭を起点としての指定になります.また,second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}という指定をすると,ラベルの有無に応じて値を変更することができます.<ラベルがある時>の指定ではやはり*を使うことができます.
    • +
    • subtitle_indent=<寸法>:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します.ただし,subtitle_indent=*1\zwのように先頭に*をつけるとラベルの頭を起点としての指定になります.subtitle_indent=trueの時のみ有効です.

    その他

      @@ -262,6 +286,7 @@
    • pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki/begin_with_odd_page/begin_with_even_page]:見出し直前の改ページを指定します.それぞれ,改ページ,\cleardoublepage実行,改段,なりゆき,奇数ページ開始,偶数ページ開始,です.
    • afterindent=[true/false]:見出し直後の段落の字下げを行うかを指定します.
    • column_spanning=[true/false]: 段抜きの見出しにします.pagebreak=nariyukiまたはpagebreak=clearcolumnの時には無視されます.
    • +
    • number=[true/false]':採番を行うかを指定します.\NewTobiraHeading`と同様の注意が必要です.

    行取り

    行取りの指定は以下のいずれかの方法で行うことができます.

    @@ -292,15 +317,16 @@

    なお,見出しが連続しているかは単純に別行見出しの命令が並んで書かれているかのみで判断します.従ってそれらの命令間に出力には関係しないような命令が挟まっていたとしても,見出しが連続して掲げられているとは判断されません.ただし,見出し命令の間に空白,改行または\label[<オプション>]{<引数>}…{<引数>}という形のもののみが挟まれている場合は,見出しが連続していると判断されます.

    同行見出し

    -

    \DeclareRuninHeadingで作成します.通常の文書クラスにおける\sectionと同様の,\<命令名>*[running head]{見出し文字列}という書式の命令が作成されます.設定は以下の通り.

    +

    \NewRuninHeadingで作成します.通常の文書クラスにおける\sectionと同様の,\<命令名>*[running head]{見出し文字列}という書式の命令が作成されます.設定は以下の通り.

    • font=<命令>:見出しのフォントを指定します.
    • indent=<寸法> 見出し文字列全体の字下げ量を指定します.
    • after_label_space=<寸法>:ラベル後,見出し文字列までの空きを指定します.
    • label_format=<命令>:ラベルのフォーマットを指定します.label_format={\theparagraph}などのようにします.
    • +
    • number=[true/false]':採番を行うかを指定します.\NewTobiraHeading`と同様の注意が必要です.

    窓見出し

    -

    \DeclareCutinHeadingで作成します.\<命令名>{見出し文字列}という書式の命令を作成します.設定は以下の通り.

    +

    \NewCutinHeadingで作成します.\<命令名>{見出し文字列}という書式の命令を作成します.設定は以下の通り.

    のように使います.

    ページスタイル

    -
    \DeclarePageStyle{<ページスタイル名>}{<設定>}
    +
    \NewPageStyle{<ページスタイル名>}{<設定>}
     

    によりページスタイルを定義することができます.<設定>はkeyval形式です.定義したページスタイルは\pagestyleで適用できます.設定は以下の通り.

      @@ -328,7 +354,7 @@
    • font=<命令>:柱とノンブルのフォントを指定します.
    • running_head_position, nombre_position:柱とノンブルの位置を指定します.yokotateのどちらが指定されているかで指定方法が変わります.
        -
      • yoko指定時:top-leftのように指定できます.top / bottom / center / left / right / gutter / fore_edgeが使えます.gutterはのど,fore_edgeは小口です.leftrightの指定は奇数ページに対するものです.twosideが指定されている場合,偶数ページはその逆になります.
      • +
      • yoko指定時:top-leftのように指定できます.top / bottom / center / left / right / gutter / fore-edgeが使えます.gutterはのど,fore-edgeは小口です.leftrightの指定は奇数ページに対するものです.twosideが指定されている場合,偶数ページはその逆になります.
      • tate指定時:<寸法>が指定できます.running_head_positionは柱の天からの下げ量を,nombre_positionはノンブルの地からの上げ量を指定します.
    • nombre=<書式>:出力するノンブルを指定します.デフォルトは\thepage
    • @@ -336,7 +362,7 @@
    • mark_format={[odd=<書式>/even=<書式>/_<見出し命令名>=<書式>],...}:見出しを柱に出力する際のフォーマットを指定します.mark_format={_section={節\thesection:#1},_chapter={第\thechapter 章\quad #1}}のように指定します.見出し命令名の代わりにoddevenも指定でき,それぞれ奇数ページ/偶数ページの柱の書式になります.\pagestyle実行時に\sectionmark等を定義することで実現しています.
    • nombre_ii=<書式>: 二つ目のノンブルを指定します.nombre_ii_positionで場所指定もできます.指定方法はnombrenombre_positionと同じです.odd_running_head_iieven_running_head_iirunning_head_ii_positionもあります.nombre_ii_positionrunning_head_ii_positionが指定されなかった場合,yoko指定時にはそれぞれnombre_positionおよびrunning_head_positionと同じ位置に設定されます.tate指定時は一つ目のノンブルや柱に続く場所に表示されます.
    -

    \NewPageStyle\RenewPageStyle\ProvidePageStyleもあります.\ModifyPageStyleにより既存のページスタイルを改変することが可能です.

    +

    \RenewPageStyle\ProvidePageStyle\DeclarePageStyleもあります.\ModifyPageStyleにより既存のページスタイルを改変することが可能です.

    JFM

    以下のような独自のJFMを使います.パッケージによっては,パッケージ独自のJFMや,また標準のJFMを使うように設定がし直される場合があります.例えばLuaTeX-jaに付属するluatexja-presetパッケージは通常LuaTeX-ja標準のJFMを使います.本クラスファイルで使っているJFMを使う場合は,

    \usepackage[jfm_yoko=jlreq,jfm_tate=jlreqv,hiragino-pron]{luatexja-preset}
    @@ -482,6 +508,13 @@
  • \mag1000でない場合も動くようにした(つもり).
  • バグ修正.
  • +
  • 2018-12-10 +
      +
    • 見出し命令を作る命令にnumber=[true/false]を追加.
    • +
    • \frontmatter等の挙動を設定できるようにした.
    • +
    • \jlreqHeadingLabel等を扉見出しと別行見出しのformat内で使えるようにした.
    • +
    • バグ修正
    • +

  • Noriyuki Abe https://github.com/abenori/jlreq

    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 9acc37879e5..88c972a4e85 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.html @@ -52,6 +52,36 @@ background-color: #F8F8F8; border-style: none; } + div.sourceCode { overflow-x: auto; text-indent: 0em;} + code span.kw { color: #007020; font-weight: bold; } /* Keyword */ + code span.dt { color: #902000; } /* DataType */ + code span.dv { color: #40a070; } /* DecVal */ + code span.bn { color: #40a070; } /* BaseN */ + code span.fl { color: #40a070; } /* Float */ + code span.ch { color: #4070a0; } /* Char */ + code span.st { color: #4070a0; } /* String */ + code span.co { color: #008000; } /* Comment */ + code span.ot { color: #007020; } /* Other */ + code span.al { color: #ff0000; font-weight: bold; } /* Alert */ + code span.fu { color: #0040FF; } /* Function */ + code span.er { color: #ff0000; font-weight: bold; } /* Error */ + code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + code span.cn { color: #880000; } /* Constant */ + code span.sc { color: #4070a0; } /* SpecialChar */ + code span.vs { color: #4070a0; } /* VerbatimString */ + code span.ss { color: #bb6688; } /* SpecialString */ + code span.im { } /* Import */ + code span.va { color: #19177c; } /* Variable */ + code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ + code span.op { color: #666666; } /* Operator */ + code span.bu { color: #0040FF; } /* BuiltIn */ + code span.ex { } /* Extension */ + code span.pp { color: #bc7a00; } /* Preprocessor */ + code span.at { color: #7d9029; } /* Attribute */ + code span.do { color: #ba2121; font-style: italic; } /* Documentation */ + code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ + code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ + code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ @@ -109,7 +139,36 @@

    \jlreqtrimmarkssetup

    パッケージオプションで指定できない設定を行えます.keyval形式です.

    -

    show=banner時に出力される文字列.

    +

    show=banner時に出力される文字列.通常は左上に出力されますが,四つ角および上下左右の中心に出力することもできます.例えば次のように指定します.

    +
    \jlreqtrimmarkssetup{
    +  banner={
    +    top-right={
    +      tate={
    +        odd = {奇数ページの右上に縦書きで表示},
    +        even = {偶数ページの右上に縦書きで表示},
    +      },
    +      yoko={右上に横書きで表示}, % ページの偶奇によらず共通
    +      corner={右上角に横書きで表示},
    +      in-yoko = {右上版面内に横書きで表示},
    +      in-tate = {右上版面内に縦書きで表示},
    +    },
    +    bottom-center={
    +      left = {中央下の左に表示}, % 必要ならばodd=, even=が利用可能
    +      right = {中央下の右に表示},
    +      in = {中央下の版面内に表示},
    +    }
    +  }
    +}
    +

    各項目に\thepageを指定するとページ数を出力できます.キー名は省略することもできます.例えば次の通り.

    +
    \jlreqtrimmarkssetup{
    +  banner={
    +    tate = {左上に縦書き}, % 場所が省略されるとtop-leftと見なされる.
    +    odd = {左上奇数ページ}, % 省略されたのでyokoと見なされる.
    +    top-right = {
    +      odd = {右上奇数ページ} % ここもyokoが省略されている.
    +    }
    +  }
    +}

    trimmarks_width

    トンボ自身の太さを指定します.

    color

    @@ -145,6 +204,10 @@
  • \mag1000でない場合も動くようにした(つもり)
  • バグ修正
  • +
  • 2018-12-10 +
      +
    • \jlreqtrimmarkssetup内のbannerを拡張.
    • +

  • Noriyuki Abe https://github.com/abenori/jlreq

    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 c76deae6780..94fec535587 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks-ja.md @@ -65,7 +65,42 @@ dviドライバの指定です.エンジンに`lualatex`を利用する場合 パッケージオプションで指定できない設定を行えます.keyval形式です. ### `banner` -`show=banner`時に出力される文字列. +`show=banner`時に出力される文字列.通常は左上に出力されますが,四つ角および上下左右の中心に出力することもできます.例えば次のように指定します. + +```latex +\jlreqtrimmarkssetup{ + banner={ + top-right={ + tate={ + odd = {奇数ページの右上に縦書きで表示}, + even = {偶数ページの右上に縦書きで表示}, + }, + yoko={右上に横書きで表示}, % ページの偶奇によらず共通 + corner={右上角に横書きで表示}, + in-yoko = {右上版面内に横書きで表示}, + in-tate = {右上版面内に縦書きで表示}, + }, + bottom-center={ + left = {中央下の左に表示}, % 必要ならばodd=, even=が利用可能 + right = {中央下の右に表示}, + in = {中央下の版面内に表示}, + } + } +} +``` +各項目に`\thepage`を指定するとページ数を出力できます.キー名は省略することもできます.例えば次の通り. +```latex +\jlreqtrimmarkssetup{ + banner={ + tate = {左上に縦書き}, % 場所が省略されるとtop-leftと見なされる. + odd = {左上奇数ページ}, % 省略されたのでyokoと見なされる. + top-right = { + odd = {右上奇数ページ} % ここもyokoが省略されている. + } + } +} +``` + ### `trimmarks_width` トンボ自身の太さを指定します. @@ -94,7 +129,8 @@ dviドライバの指定です.エンジンに`lualatex`を利用する場合 - `bleed_margin`を`\jlreqtrimmarkssetup`からパッケージオプションに移した. - `\mag`が`1000`でない場合も動くようにした(つもり) - バグ修正 - +* 2018-12-10 + - `\jlreqtrimmarkssetup`内の`banner`を拡張. -------------- 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 9ecdcdf93ae..d586cc7dac2 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.html @@ -52,13 +52,43 @@ background-color: #F8F8F8; border-style: none; } + div.sourceCode { overflow-x: auto; text-indent: 0em;} + code span.kw { color: #007020; font-weight: bold; } /* Keyword */ + code span.dt { color: #902000; } /* DataType */ + code span.dv { color: #40a070; } /* DecVal */ + code span.bn { color: #40a070; } /* BaseN */ + code span.fl { color: #40a070; } /* Float */ + code span.ch { color: #4070a0; } /* Char */ + code span.st { color: #4070a0; } /* String */ + code span.co { color: #008000; } /* Comment */ + code span.ot { color: #007020; } /* Other */ + code span.al { color: #ff0000; font-weight: bold; } /* Alert */ + code span.fu { color: #0040FF; } /* Function */ + code span.er { color: #ff0000; font-weight: bold; } /* Error */ + code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + code span.cn { color: #880000; } /* Constant */ + code span.sc { color: #4070a0; } /* SpecialChar */ + code span.vs { color: #4070a0; } /* VerbatimString */ + code span.ss { color: #bb6688; } /* SpecialString */ + code span.im { } /* Import */ + code span.va { color: #19177c; } /* Variable */ + code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ + code span.op { color: #666666; } /* Operator */ + code span.bu { color: #0040FF; } /* BuiltIn */ + code span.ex { } /* Extension */ + code span.pp { color: #bc7a00; } /* Preprocessor */ + code span.at { color: #7d9029; } /* Attribute */ + code span.do { color: #ba2121; font-style: italic; } /* Documentation */ + code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ + code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ + code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */

    jlreq-trimmarks

    What is this?

    -

    This package outputs trim marks. It works with LuaTeX-ja / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout and any document class (not only with jlreq class). It provides the following.

    +

    This package outputs trim (register) marks. It works with LuaTeX-ja / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout and any document class (not only with jlreq class). It provides the following.

    +
  • 2018-12-10 +
      +
    • Extended banner in \jlreqtrimmarkssetup.
    • +

  • Noriyuki Abe https://github.com/abenori/jlreq

    diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md index bcaaf774185..d4a3098e52b 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-trimmarks.md @@ -1,7 +1,7 @@ # jlreq-trimmarks ## What is this? -This package outputs trim marks. It works with [LuaTeX-ja](https://osdn.jp/projects/luatex-ja/wiki/FrontPage) / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout and any document class (not only with jlreq class). It provides the following. +This package outputs trim (register) marks. It works with [LuaTeX-ja](https://osdn.jp/projects/luatex-ja/wiki/FrontPage) / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout and any document class (not only with jlreq class). It provides the following. * Output trim marks * Set TrimBox and BleedBox if possible. @@ -64,6 +64,41 @@ Set the additional settings with the keyval style. ### `banner` The things which the package outputs when `show=banner` is specified in the package option. +Normally it is showed in the left of the top. You can also put them in many places, for example: + +```latex +\jlreqtrimmarkssetup{ + banner={ + top-right={ + vertical={ + odd = {In the right of the top, only in odd pages, vertical mode.}, + even = {In the right of the top, only in even pages, vertical mode.}, + }, + horizontal={In the right of the top, horizontal mode.}, % does not depend on the parity of the page number + corner={In the corner of the right of the top, horizontal mode.}, + in-horizontal = {In the right of the top, horizontal mode, in the trim area.}, + in-vertical = {In the right of the top, vertical mode, in the trim area.}, + }, + bottom-center={ + left = {In the left in the center of the bottom}, % odd=, even= is also available + right = {In the right in the center of the bottom}, + in = {In the trim area in the center of the bottom.}, + } + } +} +``` +You can use `\thepage` to output the number of the page. The keys can be ommited. For example: +```latex +\jlreqtrimmarkssetup{ + banner={ + vertical = {Vertical mode, in the top of the left}, + odd = {In the top of the left, only in odd pages.}, % regarded as `horizontal` + top-right = { + odd = {In the top of the right, only in odd pages, horizontal mode.} + } + } +} +``` ### `trimmarks_width` Set the width of trim marks. @@ -91,7 +126,8 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS - Moved `bleed_margin` from `\jlreqtrimmarkssetup` to a package option. - jlreq-trimmarks works with unusugal`\mag`. - Fixed bugs. - +* 2018-12-10 + - Extended `banner` in `\jlreqtrimmarkssetup`. -------------- Noriyuki Abe diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq.html b/Master/texmf-dist/doc/latex/jlreq/jlreq.html index 9deb07b3a6c..c63cd2ed0dc 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq.html @@ -60,14 +60,14 @@

    What is this?

    This package provides the class file and JFM (Japanese font metric) files for LuaTeX-ja / pLaTeX / upLaTeX. This aims to implement Requirements for Japanese Text Layout.

    Installation

    -

    Run make, then JFM files are created. Move the files as follows:

    +

    Run make to generate JFM files. Move the files as follows:

    • *.tfm -> $TEXMF/fonts/tfm/public/jlreq
    • *.vf -> $TEXMF/fonts/vf/public/jlreq
    • -
    • jfm-jlreq.lua jfm-jlreqv.lua -> $TEXMF/tex/luatex/jlreq
    • +
    • jfm-jlreq.lua, jfm-jlreqv.lua -> $TEXMF/tex/luatex/jlreq
    • jlreq.cls, jlreq-helpers.sty -> $TEXMF/tex/latex/jlreq
    -

    make install will do this where $TEXMF=$TEXMFHOME

    +

    The other way to install is just to run make install. It will install all files in $TEXMFHOME.

    Usage

    See README-ja.md (in Japanese).

    LICENSE

    @@ -188,6 +188,13 @@
  • jlreq works with unusual \mag.
  • Fixed bugs.
  • +
  • 2018-12-10 +
      +
    • Added number=[true/false] to \New***Heading.
    • +
    • Added options for \frontmatter etc in \jlreqsetup.
    • +
    • Made \jlreqHeadingLabel etc available in format in \NewTobiraHeading and \NewBlockHeading.
    • +
    • Fixed bugs.
    • +

  • Noriyuki Abe https://github.com/abenori/jlreq

    diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty index 9bf28042489..484e873f8e3 100644 --- a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty +++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty @@ -248,32 +248,38 @@ % は一回だけ展開される. \newcommand{\jlreq@parsekeyval@nokey}[2]{% \begingroup - \def\jlreq@do{}% - \def\jlreq@parsekeyval@nokey@execute##1##2{#1}% - \expandafter\jlreq@parsekeyval@nokey@i#2,\jlreq@endmark,% + \long\def\jlreq@do{}% + \long\def\jlreq@parsekeyval@nokey@execute##1##2{#1}% + \expandafter\jlreq@parsekeyval@nokey@i@wuniq\expandafter\jlreq@uniqtoken#2,\jlreq@endmark,% \expandafter\endgroup \jlreq@do } -\long\def\jlreq@parsekeyval@nokey@i#1,{\jlreq@ifendmark{#1}{}{\jlreq@parsekeyval@nokey@ii#1=\jlreq@endmark}} -\long\def\jlreq@parsekeyval@nokey@ii#1=#2\jlreq@endmark{% - \jlreq@ifempty{#2}{\jlreq@parsekeyval@nokey@iii{#2}{#1}}{% +\long\def\jlreq@parsekeyval@nokey@i@wuniq#1,{\expandafter\jlreq@parsekeyval@nokey@i\expandafter{\@gobble#1}} +\long\def\jlreq@parsekeyval@nokey@i#1{\jlreq@ifendmark{#1}{}{\jlreq@parsekeyval@nokey@ii@wuniq\jlreq@uniqtoken#1=\jlreq@endmark}} +\long\def\jlreq@parsekeyval@nokey@ii@wuniq#1=#2\jlreq@endmark{\expandafter\jlreq@parsekeyval@nokey@ii\expandafter{\@gobble#1}{#2}}% +\long\def\jlreq@parsekeyval@nokey@ii#1#2{% + \jlreq@ifempty{#2}{\jlreq@parsekeyval@nokey@iii{*}{#2}{#1}}{% \edef\jlreq@tempa{% - \noexpand\jlreq@parsekeyval@nokey@iii{\jlreq@parsekeyval@nokey@removeequal{#2}}{\unexpanded{#1}}% + \noexpand\jlreq@parsekeyval@nokey@iii{}{\jlreq@parsekeyval@nokey@removeequal{#2}}{\unexpanded{#1}}% }% \jlreq@tempa }% } -\long\def\jlreq@parsekeyval@nokey@iii#1#2{% - \jlreq@remove@spaceandbracket{#1}{\jlreq@tempa}% - \jlreq@remove@spaceandbracket{#2}{\jlreq@tempb}% +% valueが与えられていない場合は#1=*になる.そうでなければ#1は空 +\long\def\jlreq@parsekeyval@nokey@iii#1#2#3{% + \jlreq@remove@spaceandbracket{#2}{\jlreq@tempa}% + \jlreq@remove@spaceandbracket{#3}{\jlreq@tempb}% \ifx\jlreq@tempb\@empty\else - \edef\@tempa{\noexpand\jlreq@parsekeyval@nokey@iv{\expandonce{\jlreq@tempb}}{\expandonce{\jlreq@tempa}}}% + \edef\@tempa{\noexpand\jlreq@parsekeyval@nokey@iv{#1}{\expandonce{\jlreq@tempb}}{\expandonce{\jlreq@tempa}}}% \@tempa \fi - \jlreq@parsekeyval@nokey@i + \jlreq@parsekeyval@nokey@i@wuniq\jlreq@uniqtoken } -\long\def\jlreq@parsekeyval@nokey@iv#1#2{% - \eappto\jlreq@do{\expandonce{\jlreq@parsekeyval@nokey@execute{#1}{#2}}}% +\long\def\jlreq@parsekeyval@nokey@iv#1#2#3{% + \eappto\jlreq@do{% + \unexpanded{\let\ifjlreq@parsekeyval@nokey@novalue}\jlreq@ifempty{#1}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}% + \expandonce{\jlreq@parsekeyval@nokey@execute{#2}{#3}}% + }% } \long\def\jlreq@parsekeyval@nokey@removeequal#1{\jlreq@parsekeyval@nokey@removeequal@\jlreq@uniqtoken#1\jlreq@endmark} \long\def\jlreq@parsekeyval@nokey@removeequal@#1=\jlreq@endmark{\expandafter\unexpanded\expandafter{\@gobble#1}} @@ -322,7 +328,7 @@ % {str1}{xyz} % {default} % ここは#1を受け付けない(パラメータトークンを受け付けたい場合のため). %} -> abcd -% 文字列比較→\edefして比較する +% strは\edefで展開されるが,\jlreq@switch*の場合は展開されない. % 第一引数は\jlreq@tempaに入れておく. \long\def\jlreq@helper@switch@executeoption#1[#2]{% \begingroup @@ -331,33 +337,34 @@ \jlreq@do{#1}% } \long\def\jlreq@helper@removeoption[#1]{} -\newcommand{\jlreq@switch}[2]{% +\newcommand{\jlreq@switch}{\@ifstar{\jlreq@switch@{*}}{\jlreq@switch@{}}} +\newcommand{\jlreq@switch@}[3]{% \begingroup \let\jlreq@do\@undefined - \edef\jlreq@tempa{#1}% ループ中ずっと保存する - \jlreq@helper@switch@#2\jlreq@endmark + \edef\jlreq@tempa{\jlreq@ifempty{#1}{#2}{\unexpanded{#2}}}% ループ中ずっと保存する + \jlreq@helper@switch@{#1}#3\jlreq@endmark \ifx\jlreq@do\@undefined - \def\jlreq@do{\@ifnextchar[{\jlreq@helper@switch@executeoption{#1}}{}}% + \edef\jlreq@do{\unexpanded{\jlreq@ifnextchar[{\jlreq@helper@switch@executeoption{#2}}{}}}% \else \appto\jlreq@do{\@ifnextchar[{\jlreq@helper@removeoption}{}}% \fi \expandafter\endgroup \jlreq@do } -\long\def\jlreq@helper@switch@#1{% - \jlreq@ifendmark{#1}{}{\jlreq@helper@switch@@{#1}}% +\long\def\jlreq@helper@switch@#1#2{% + \jlreq@ifendmark{#2}{}{\jlreq@helper@switch@@{#1}{#2}}% } -\long\def\jlreq@helper@switch@@#1#2{% - \jlreq@ifendmark{#2}{% - \edef\jlreq@do{\unexpanded{#1}}% +\long\def\jlreq@helper@switch@@#1#2#3{% + \jlreq@ifendmark{#3}{% + \edef\jlreq@do{\unexpanded{#2}}% }{% - \edef\jlreq@tempb{#1}% + \edef\jlreq@tempb{\jlreq@ifempty{#1}{#2}{\unexpanded{#2}}}% \ifx\jlreq@tempa\jlreq@tempb\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi{% - \edef\jlreq@do{\unexpanded{#2}}% + \edef\jlreq@do{\unexpanded{#3}}% \jlreq@deleteuntileendmark }{% - \jlreq@helper@switch@ + \jlreq@helper@switch@{#1}% }% }% } diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty index e5d13f08ff7..19ced9a2072 100644 --- a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty +++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty @@ -1,5 +1,5 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{jlreq-trimmarks}[2018/09/01 jlreq-trimmarks] +\ProvidesPackage{jlreq-trimmarks}[2018/12/10 jlreq-trimmarks] \RequirePackage{xkeyval,etoolbox} \RequirePackage{jlreq-helpers} @@ -27,7 +27,7 @@ \DeclareOptionX{#1}{% \jlreq@ifempty{##1}{}{\PackageError{jlreq-trimmarks}{The option #1 should have no value}{\@ehc}}% #2% - } + }% } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@DeclareOption} @@ -101,17 +101,17 @@ \jlreq@trimmarks@addpapersize{hagaki}[hagaki] % width -> \jlreq@resulta, height -> \jlreq@resultb -\edef\jlreq@trimmarks@analyzepapersize#1{% - \noexpand\jlreq@switch{#1}{% +\edef\jlreq@trimmarks@analyzepapersize#1{ + \noexpand\jlreq@switch{#1}{ \expandonce{\jlreq@trimmarks@switchpapersize}% {% - \noexpand\jlreq@helper@dividebycomma{#1} - \unexpanded{\ifjlreq@result\else} - \unexpanded{\def\jlreq@resulta}{#1} - \unexpanded{\def\jlreq@resultb}{#1} + \noexpand\jlreq@helper@dividebycomma{#1}% + \unexpanded{\ifjlreq@result\else}% + \unexpanded{\def\jlreq@resulta}{#1}% + \unexpanded{\def\jlreq@resultb}{#1}% \noexpand\fi }% - }\noexpand\relax% + }\noexpand\relax } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@analyzepapersize} @@ -127,7 +127,7 @@ \newif\ifjlreq@trimmarks@option@show \jlreq@trimmarks@option@showfalse \DeclareOptionX{show}{% - \jlreq@trimmarks@showtrue + \jlreq@trimmarks@option@showtrue \jlreq@ifempty{#1}{ \jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue }{ @@ -202,17 +202,137 @@ \fi \fi +\long\def\jlreq@trimmarks@setbanner#1#2{% + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@switch{##1}{ + {yoko}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{##2}}} + {horizontal}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{##2}}} + {tate}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{##2}}} + {vertial}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{##2}}} + {corner}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{corner@#1}{##2}}} + {in-yoko}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{##2}}} + {in-horizontal}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{##2}}} + {in-tate}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{##2}}} + {in-vertial}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{##2}}} + }% + }% + }{#2}% + \ifx\jlreq@do\@empty + \appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{#2}}% + \fi + \expandafter\endgroup + \jlreq@do +} + +\long\def\jlreq@trimmarks@setbanner@#1#2{% + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@switch*{##1}{ + {left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{##2}}} + {right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{##2}}} + {above}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{##2}}} + {below}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{##2}}} + {in}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{in@#1}{##2}}} + }% + }% + }{#2}% + \ifx\jlreq@do\@empty + \appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{#2}}% + \fi + \expandafter\endgroup + \jlreq@do +} + +\long\def\jlreq@trimmarks@setbanner@@#1#2{% + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@switch*{##1}{ + {odd}{\appto\jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{##2}}}} + {even}{\appto\jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@even@#1\endcsname{\unexpanded{##2}}}} + }% + }% + }{#2}% + \ifx\jlreq@do\@empty + \appto\jlreq@do{% + \expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{#2}}% + \expandafter\edef\csname jlreq@trimmarks@banner@even@#1\endcsname{\unexpanded{#2}}% + }% + \fi + \expandafter\endgroup + \jlreq@do +} + \newcommand{\jlreqtrimmarkssetup}[1]{% - \jlreq@parsekeyval{% - {banner}{\@bannertoken{##1}\maketombowbox} - {trimmarks_width}{\setlength{\@tombowwidth}{##1}\maketombowbox} - {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} - } + \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}{}% + }% + }% + }% + \@bannertoken{}% + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@tempafalse + \jlreq@switch*{####1}{ + {top-left}{\jlreq@tempatrue\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{####2}}} + {left-top}{\jlreq@tempatrue\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{####2}}} + {top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{####2}}} + {right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{####2}}} + {bottom-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{####2}}} + {left-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{####2}}} + {bottom-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{####2}}} + {right-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{####2}}} + {top-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{####2}}} + {center-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{####2}}} + {bottom-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{####2}}} + {center-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{####2}}} + {center-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{####2}}} + {right-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{####2}}} + {center-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{####2}}} + {left-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{####2}}} + }% + \ifjlreq@tempa + \appto\jlreq@do{\expandafter\@bannertoken\expandafter{\jlreq@trimmarks@banner@odd@yoko@top@left}}% + \fi + }% + }{##1}% + \ifx\jlreq@do\@empty + \jlreq@trimmarks@setbanner{top@left}{##1}% + \expandafter\@bannertoken\expandafter{\jlreq@trimmarks@banner@odd@yoko@top@left}% + \else + \jlreq@do + \fi + } + {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}% + }% \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}}} @@ -229,19 +349,18 @@ {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}}} - } + {% + \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 - } - } - } - \maketombowbox - } - }{#1} + }% + }% + }% + }% + }{#1}% } \@onlypreamble\jlreqtrimmarkssetup \jlreqtrimmarkssetup{ @@ -249,6 +368,7 @@ \jobname\space(\number\year-\two@digits\month-\two@digits\day \space\two@digits\hour:\two@digits\minute)% }, + banner_font={}, color={} } @@ -266,7 +386,7 @@ \fi \fi -\ifx l\jlreq@engine +\ifx l\jlreq@trimmarks@engine \setlength{\pagewidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax} \setlength{\pageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax} \else @@ -274,9 +394,9 @@ \setlength{\pdfpageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax} \fi -\hoffset=\dimexpr(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \ifx l\jlreq@engine 1in\else 1truein\fi\relax -\voffset=\dimexpr(\jlreq@trimmarks@paperheight - \paperheight)/2 - \ifx l\jlreq@engine 1in\else 1truein\fi\relax -\ifx l\jlreq@engine\else +\hoffset=\dimexpr(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \ifx l\jlreq@trimmarks@engine 1in\else 1truein\fi\relax +\voffset=\dimexpr(\jlreq@trimmarks@paperheight - \paperheight)/2 - \ifx l\jlreq@trimmarks@engine 1in\else 1truein\fi\relax +\ifx l\jlreq@trimmarks@engine\else \@ifundefined{@tombowreset@@paper}{ \AtBeginDocument{% \addtolength{\oddsidemargin}{\dimexpr 1truein - 1in\relax}% @@ -308,77 +428,360 @@ \setlength{\stockwidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax} \setlength{\stockheight}{\dimexpr\jlreq@trimmarks@paperheight\relax} - -\def\maketombowbox{% - \setbox\@TL\hbox to\z@{\yoko\hss - \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@ - \vrule height10mm width\@tombowwidth depth\z@ - \iftombowdate - \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% - \fi}% - \setbox\@Tl\hbox to\z@{\yoko\hss - \vrule width10mm height\@tombowwidth depth\z@ - \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@}% - \setbox\@TC\hbox{\yoko - \vrule width10mm height\@tombowwidth depth\z@ - \vrule height10mm width\@tombowwidth depth\z@ - \vrule width10mm height\@tombowwidth depth\z@}% - \setbox\@TR\hbox to\z@{\yoko - \vrule height10mm width\@tombowwidth depth\z@ - \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@\hss}% - \setbox\@Tr\hbox to\z@{\yoko - \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@ - \vrule width10mm height\@tombowwidth depth\z@\hss}% - \setbox\@BL\hbox to\z@{\yoko\hss - \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@ - \vrule depth10mm width\@tombowwidth height\z@}% - \setbox\@Bl\hbox to\z@{\yoko\hss - \vrule width10mm depth\@tombowwidth height\z@ - \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@}% - \setbox\@BC\hbox{\yoko - \vrule width10mm depth\@tombowwidth height\z@ - \vrule depth10mm width\@tombowwidth height\z@ - \vrule width10mm depth\@tombowwidth height\z@}% - \setbox\@BR\hbox to\z@{\yoko - \vrule depth10mm width\@tombowwidth height\z@ - \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@\hss}% - \setbox\@Br\hbox to\z@{\yoko - \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@ - \vrule width10mm depth\@tombowwidth height\z@\hss}% - \setbox\@CL\hbox to\z@{\yoko\hss - \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth - \vrule height10mm depth10mm width\@tombowwidth}% - \setbox\@CR\hbox to\z@{\yoko - \vrule height10mm depth10mm width\@tombowwidth - \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% +\def\jlreq@trimmarks@outputbanner#1#2{% + \iftombowdate + \expandafter\let\expandafter\jlreq@tempa\csname jlreq@trimmarks@banner@\ifodd\c@page odd\else even\fi @#1\endcsname + \ifx\jlreq@tempa\@empty\else + \def\@tempa##1{#2}% + \expandafter\@tempa\expandafter{\jlreq@tempa}% + \fi + \fi } -\def\@outputtombow{% - % 6mm = \@tombowbleed: from plcore - \@@paperwidth=\dimexpr\@@paperwidth - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax - \@@paperheight=\dimexpr\@@paperheight - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax - \ifjlreq@trimmarks@show - \vbox to\z@{\kern-\dimexpr 10mm + \jlreq@trimmarks@bleed\relax + +\def\jlreq@trimmarks@outputtombow{% + \vbox to\z@{% + \kern-\dimexpr 10mm + \jlreq@trimmarks@bleed\relax \boxmaxdepth\maxdimen \moveleft\jlreq@trimmarks@bleed\vbox to\@@paperheight{% \color@begingroup\jlreq@trimmarks@color - \hbox to\@@paperwidth{\hskip\jlreq@trimmarks@bleed\relax - \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\jlreq@trimmarks@bleed}% + \hbox to\@@paperwidth{% + \hskip\jlreq@trimmarks@bleed\relax + \setbox\jlreq@tempboxa=\hbox to\z@{% \@TL + \yoko\hss + \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ + \iftombowdate + \setbox\jlreq@tempboxa=\hbox to\z@{\hskip5mm\@bannerfont\jlreq@trimmarks@bannerfont + \ifodd\c@page\the\@bannertoken\else\jlreq@trimmarks@banner@even@yoko@top@left\fi + \hss}% + \dp\jlreq@tempboxa=0pt + \raise 4pt\box\jlreq@tempboxa + \fi + \jlreq@trimmarks@outputbanner{inyoko@top@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + }% + \dp\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hfill + \setbox\jlreq@tempboxa=\hbox{% \@TC + \yoko + \vrule width10mm height\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{before@top@center}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}% + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \raise 4pt\box\jlreq@tempboxa + }% + \jlreq@trimmarks@outputbanner{in@top@center}{% + \setbox\jlreq@tempboxa=\hbox{\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax + \jlreq@tempdimb=0.5\wd\jlreq@tempboxa + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdimb\raise-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdimb + }% + \vrule height10mm width\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{after@top@center}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \raise 4pt\box\jlreq@tempboxa + }% + \vrule width10mm height\@tombowwidth depth\z@ + }% + \dp\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hfill + \setbox\jlreq@tempboxa=\hbox to\z@{% \@TR + \yoko + \jlreq@trimmarks@outputbanner{yoko@top@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}% + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise 4pt\box\jlreq@tempboxa + }% + \jlreq@trimmarks@outputbanner{inyoko@top@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \vrule height10mm width\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{corner@top@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip\dimexpr\jlreq@trimmarks@bleed + 4pt\relax\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise 4pt\box\jlreq@tempboxa + }% + \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@\hss + }% + \dp\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hskip\jlreq@trimmarks@bleed + }% \kern-10mm - \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% + \hbox to\@@paperwidth{% + \hbox to\z@{% \@Tl + \yoko\hss + \vrule width10mm height\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{corner@top@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 4pt}% + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt + \raise\dimexpr \jlreq@trimmarks@bleed + 4pt\relax\box\jlreq@tempboxa + }% + \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{tate@top@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax + \fi + \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\raise-5mm\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \jlreq@trimmarks@outputbanner{intate@top@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax + \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + }% + \hfill + \hbox to\z@{% \@Tr + \yoko + \jlreq@trimmarks@outputbanner{tate@top@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\raise -5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + \jlreq@trimmarks@outputbanner{intate@top@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \wd\jlreq@tempboxa\relax + \fi + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@ + \hss + }% + }% \vfill - \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% + \hbox to\@@paperwidth{% + \hbox to\z@{% \@CL + \yoko\hss + \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth + \jlreq@trimmarks@outputbanner{before@center@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax + \fi + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \jlreq@trimmarks@outputbanner{after@center@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax + \fi + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \vrule height10mm depth10mm width\@tombowwidth + \jlreq@trimmarks@outputbanner{in@center@left}{% + \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax + \jlreq@tempdimb=.5\wd\jlreq@tempboxa + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed\relax + \jlreq@tempdimb=.5\dimexpr\ht\jlreq@tempboxa + \dp\jlreq@tempboxa\relax + \fi + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\raise\jlreq@tempdimb\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + }% + \hfill + \hbox to\z@{% \@CR + \yoko + \jlreq@trimmarks@outputbanner{in@center@right}{% + \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax + \jlreq@tempdimb=0.5\wd\jlreq@tempboxa + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \wd\jlreq@tempboxa\relax + \jlreq@tempdimb=0.5\dimexpr\ht\jlreq@tempboxa + \dp\jlreq@tempboxa\relax + \fi + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\raise\jlreq@tempdimb\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \vrule height10mm depth10mm width\@tombowwidth + \jlreq@trimmarks@outputbanner{before@center@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}% + \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + \jlreq@trimmarks@outputbanner{after@center@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss + }% + }% \vfill - \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% + \hbox to\@@paperwidth{% + \hbox to\z@{% \@Bl + \yoko\hss + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{tate@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax + \fi + \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\raise 5mm\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \jlreq@trimmarks@outputbanner{intate@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax + \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + }% + \hfill + \hbox to\z@{% \@Br + \yoko + \jlreq@trimmarks@outputbanner{tate@bottom@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\ifx l\jlreq@trimmarks@engine\ht\jlreq@tempboxa + \fi 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern\jlreq@tempdima\raise5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima + }% + \jlreq@trimmarks@outputbanner{intate@bottom@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \wd\jlreq@tempboxa\relax + \fi + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima + }% + \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{corner@bottom@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 4pt\relax\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed + 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \vrule width10mm depth\@tombowwidth height\z@\hss + }% + }% \kern-10mm - \hbox to\@@paperwidth{\hskip\jlreq@trimmarks@bleed\relax - \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\jlreq@trimmarks@bleed}% + \hbox to\@@paperwidth{% + \hskip\jlreq@trimmarks@bleed\relax + \setbox\jlreq@tempboxa=\hbox to\z@{% \@BL + \yoko\hss + \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{corner@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip\dimexpr\jlreq@trimmarks@bleed + 4pt\relax}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \vrule depth10mm width\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{yoko@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hskip 5mm\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \jlreq@trimmarks@outputbanner{inyoko@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \dp\jlreq@tempboxa\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise\jlreq@tempdima\box\jlreq@tempboxa + }% + }% + \ht\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hfill + \setbox\jlreq@tempboxa=\hbox{% \@BC + \yoko + \vrule width10mm depth\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{before@bottom@center}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \jlreq@trimmarks@outputbanner{in@bottom@center}{% + \setbox\jlreq@tempboxa=\hbox{\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax + \jlreq@tempdimb=.5\wd\jlreq@tempboxa + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt + \kern-\jlreq@tempdimb\raise\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdimb + }% + \vrule depth10mm width\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{before@bottom@center}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \vrule width10mm depth\@tombowwidth height\z@ + }% + \ht\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hfill + \setbox\jlreq@tempboxa=\hbox to 0pt{% \@BR + \yoko + \jlreq@trimmarks@outputbanner{yoko@bottom@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise-\jlreq@tempdima\box\jlreq@tempboxa + }% + \jlreq@trimmarks@outputbanner{inyoko@bottom@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \raise\jlreq@tempdima\box\jlreq@tempboxa + }% + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@\hss + }% + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hskip\jlreq@trimmarks@bleed + }% \color@endgroup}\vss }% - \fi +} +\def\@outputtombow{% + % 6mm = \@tombowbleed: from plcore + \@@paperwidth=\dimexpr\@@paperwidth - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax + \@@paperheight=\dimexpr\@@paperheight - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax + \ifjlreq@trimmarks@show\expandafter\jlreq@trimmarks@outputtombow\fi } \ifjlreq@trimmarks@digital - \ifx l\jlreq@engine + \ifx l\jlreq@trimmarks@engine \setlength\jlreq@resultdimen{1pt} \else \jlreq@helper@divide{\the\mag pt}{1000pt} @@ -430,6 +833,6 @@ % always true \tombowtrue -\maketombowbox + \endinput diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls index d3712ede72a..6fc46710125 100644 --- a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls +++ b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls @@ -5,7 +5,7 @@ %% % (based on JLReq 20120403 https://www.w3.org/TR/2012/NOTE-jlreq-20120403/ja/) \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{jlreq}[2018/09/01 jlreq] +\ProvidesClass{jlreq}[2018/12/10 jlreq] \RequirePackage{xkeyval,everyhook,filehook,etoolbox,ifthen} \RequirePackage{jlreq-helpers} @@ -189,6 +189,7 @@ \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}} %.. 柱とノンブル \newcommand*{\jlreq@option@headfoot@verticalpos}{} @@ -254,6 +255,9 @@ \jlreq@DeclareOption{openany}{\@openrightfalse\jlreq@option@opentrue} \jlreq@DeclareOption{leqno}{\input{leqno.clo}} \jlreq@DeclareOption{fleqn}{\input{fleqn.clo}} +\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}}} @@ -320,7 +324,11 @@ % 必要パッケージのロード \ifx l\jlreq@engine - \RequirePackage{luatexja} + \ifjlreq@option@enablejfam + \RequirePackage{luatexja} + \else + \RequirePackage[disablejfam]{luatexja} + \fi \directlua{jlreq = {}} \fi @@ -558,21 +566,21 @@ \fi %. 基本設定 -\providecommand*{\jlreq@kanjiskip}{0pt plus 0.25\zw minus 0pt} -\providecommand*{\jlreq@xkanjiskip}{0.25\zw plus 0.25\zw minus 0.125\zw} +\providecommand*{\jlreqkanjiskip}{0pt plus 0.25\zw minus 0pt} +\providecommand*{\jlreqxkanjiskip}{0.25\zw plus 0.25\zw minus 0.125\zw} \ifx l\jlreq@engine - \ltjsetparameter{kanjiskip=\jlreq@kanjiskip} - \ltjsetparameter{xkanjiskip=\jlreq@xkanjiskip} + \ltjsetparameter{kanjiskip=\jlreqkanjiskip} + \ltjsetparameter{xkanjiskip=\jlreqxkanjiskip} \else - \kanjiskip=\jlreq@kanjiskip - \xkanjiskip=\jlreq@xkanjiskip + \kanjiskip=\jlreqkanjiskip + \xkanjiskip=\jlreqxkanjiskip \fi % 文字クラスのリスト(必要なものだけ) % 開き括弧(文字クラス1) \edef\jlreq@charlist@openingbrackets{(〔[{〈《「『【‘“\ifx p\jlreq@engine\else ⦅〘〖«〝\fi} % 閉じ括弧(文字クラス2) -\edef\jlreq@charlist@closingbrackets{)〕]}〉》」』】’”\ifx p\jlreq@engine\else⦆〙〗»〟\fi} +\edef\jlreq@charlist@closingbrackets{)〕]}〉》」』】’”\ifx p\jlreq@engine\else ⦆〙〗»〟\fi} % ハイフン(文字クラス3) \edef\jlreq@charlist@hyphens{‐〜\ifx p\jlreq@engine\else ゠–\fi} % 区切り約物(文字クラス4) @@ -948,17 +956,19 @@ \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} % 数式フォント設定 -\ifx l\jlreq@engine\else - \DeclareSymbolFont{mincho}{\jlreq@yokokanjiencoding}{mc}{m}{n} - \DeclareSymbolFontAlphabet{\mathmc}{mincho} - \SetSymbolFont{mincho}{bold}{\jlreq@yokokanjiencoding}{gt}{m}{n} - \jfam\symmincho - \DeclareMathAlphabet{\mathgt}{\jlreq@yokokanjiencoding}{gt}{m}{n} +\ifjlreq@option@enablejfam + \ifx l\jlreq@engine\else + \DeclareSymbolFont{mincho}{\jlreq@yokokanjiencoding}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{\jlreq@yokokanjiencoding}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{\jlreq@yokokanjiencoding}{gt}{m}{n} + \fi + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}% + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}% + } \fi -\AtBeginDocument{% - \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}% - \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}% -} % 和文間隔 \DeclareRobustCommand*\ {\futurelet\jlreq@nextchar\jlreq@zenkakuspace@ignorespaces} @@ -1049,18 +1059,18 @@ \ifdim\@tempskipa=\maxdimen\else \appto\jlreq@setfontsizehook{% \ltj@setpar@global - \ltjsetkanjiskip\jlreq@kanjiskip + \ltjsetkanjiskip\jlreqkanjiskip \@tempskipa=\ltjgetparameter{xkanjiskip}% \ifdim\@tempskipa>0pt - \ltjsetxkanjiskip\jlreq@xkanjiskip + \ltjsetxkanjiskip\jlreqxkanjiskip \fi } \fi \else \appto\jlreq@setfontsizehook{% - \kanjiskip=\jlreq@kanjiskip + \kanjiskip=\jlreqkanjiskip \ifdim\xkanjiskip>0pt - \xkanjiskip=\jlreq@xkanjiskip + \xkanjiskip=\jlreqxkanjiskip \fi } \fi @@ -1381,7 +1391,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 @@ -1511,7 +1521,9 @@ \jlreq@tempdimb=\dimexpr\the\numexpr\jlreq@tempdima/\dimexpr 1\zw\relax + 2\relax\zw\relax \edef\jlreq@do{% \unexpanded{\def\jlreq@result}{% - \noexpand\def\expandonce{\csname l@#1\endcsname}{\unexpanded{\@dottedtocline{#2}{0\zw}}{\the\jlreq@tempdimb}}% + \noexpand\def\expandonce{\csname l@#1\endcsname}{% + \unexpanded{\@dottedtocline{#2}{0\zw}}{\the\jlreq@tempdimb}% + }% }% }% \expandafter\endgroup @@ -1519,15 +1531,22 @@ }{\def\jlreq@result{}}% } +% \jlreq@heading@make@maketoc{セクション名}{レベル} \def\jlreq@heading@make@maketoc#1#2{% % 目次への出力をするマクロ.外部に切り出しておく. \@ifundefined{jlreq@heading@maketoc@#1}{% - % {1 = *}{2 = ラベル}{3 = running head} + % {1 = */-}{2 = ラベル}{3 = running head} + % 1はcounter=falseならば-,星付き命令ならば*,それ以外は空. + % 1が*または-の時は見出しにはラベルが現れないが,2には常にラベルが入るので,必要ならばここで無視する. \expandafter\def\csname jlreq@heading@maketoc@#1\endcsname##1##2##3{% - \ifnum0\jlreq@ifempty{##1}{}{1}\ifnum #2>\c@secnumdepth 1\fi>0\else + \jlreq@iffirsttoken{##1}{*}{}{% \csname #1mark\endcsname{##3}% - \addcontentsline{toc}{#1}{\protect\numberline{##2}##3}% - \fi + \ifnum0\jlreq@iffirsttoken{##1}{-}{1}{}\ifnum #2>\c@secnumdepth 1\fi>0 + \addcontentsline{toc}{#1}{##3}% + \else + \addcontentsline{toc}{#1}{\jlreq@ifempty{##2}{}{\protect\numberline{##2}}##3}% + \fi + }{}% }% }{}% } @@ -1549,6 +1568,7 @@ \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}} @@ -1559,6 +1579,7 @@ {naka}{\def\jlreq@heading@clearpage{\clearpage\hbox{}\clearpage}} }% } + {number}[true,false]{\csname jlreq@number##1\endcsname} }{#3}% \def\jlreq@do{}% \ifx\jlreq@format\@undefined @@ -1570,21 +1591,39 @@ \edef\jlreq@do{% \expandonce{\jlreq@do}% \noexpand\def\expandonce{\csname jlreq@TobiraHeading@start@#1\endcsname}[####1]####2{% - \unexpanded{\ifnum#2>\c@secnumdepth\else}% - \unexpanded{\refstepcounter{#1}}% - \noexpand\fi - \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{}{\expandonce{\jlreq@label@format}}{####1}% - \unexpanded{\ifnum#2>\c@secnumdepth\relax}% + \ifjlreq@number + \unexpanded{\ifnum#2>\c@secnumdepth\else}% + \unexpanded{\refstepcounter{#1}}% + \noexpand\fi + \fi + \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{\ifjlreq@number\else -\fi}{\expandonce{\jlreq@label@format}}{####1}% + \unexpanded{\jlreq@ifempty{##2}% + {\long\gdef\jlreqHeadingText####1{}}% + {\long\gdef\jlreqHeadingText####1{####1}}% + }% + \ifjlreq@number + \unexpanded{\ifnum#2>\c@secnumdepth\relax}% + \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}% + \expandonce{\jlreq@format{}{##1}}% + \noexpand\else + \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}% + \expandafter\expandonce\expandafter{\jlreq@formatwlabel{##2}}% + \noexpand\fi + \else + \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}% \expandonce{\jlreq@format{}{##1}}% - \noexpand\else - \expandafter\expandonce\expandafter{\jlreq@formatwlabel{##2}}% - \noexpand\fi + \fi \noexpand\@afterheading \expandonce{\jlreq@heading@clearpage}% \unexpanded{\if@restonecol\twocolumn\fi}% }% \noexpand\def\expandonce{\csname jlreq@TobiraHeading@start@s@#1\endcsname}####1{% - \expandonce{\jlreq@format{}{##1}}% + \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}% + \unexpanded{\jlreq@ifempty{##1}% + {\long\gdef\jlreqHeadingText####1{}}% + {\long\gdef\jlreqHeadingText####1{####1}}% + }% + \expandonce{\jlreq@format{}{##1}} \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{*}{\expandonce{\jlreq@label@format}}{####1}% \noexpand\@afterheading \expandonce{\jlreq@heading@clearpage}% @@ -1613,7 +1652,8 @@ %.. 別行見出し % \jlreq@BlockHeading@start:別行見出しを出力する命令. -% \jlreq@BlockHeading@start{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 = フォーマット関連}{5 = 全体フォーマット}*{見出し}[副題] +% \jlreq@BlockHeading@start{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 = カウンタ関連}{5 = フォーマット関連}{6 = 全体フォーマット}*{見出し}[副題] +% カウンタ関連=-,*,無し:-はカウンタ関連を処理しない.*はさらに目次に追加しない(星付き命令と同様).星付きで呼び出された時は常に*同等. % スペース関連={配置:lcr(左中央右)}{字下げ(寸法)}{字上げ(寸法)}{前空き}{後空き}{行取りの行数}{空か*か,偶数ページでも改ページを許可するならば空} % 前/後空きはprefixにa:/s:/r:が入る.r:は空きがその値そのものになる.a:/s:は行取りに加えて入る.a:で指定された空きはページ行頭では入らない % 後空きの時はs:は指定できない. @@ -1623,19 +1663,19 @@ % 見出し全体のフォーマット内では#1=ラベル,#2=見出し文字列,#3=副題,それぞれ各々のフォーマットに基づき整形される. % ラベルフォーマットでは#1=カウンタ名,見出し文字列フォーマットでは#1=見出し文字列,副題フォーマットでは#1=副題 % ラベルのみのフォーマットは目次に使われる. -\newcommand{\jlreq@BlockHeading@start}[5]{% +\newcommand{\jlreq@BlockHeading@start}[6]{% \if@noskipsec\leavevmode\fi - \edef\jlreq@BlockHeading@start@format{\unexpanded{#4}}% この二つは\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる) - \edef\jlreq@BlockHeading@start@totalformat{\unexpanded{#5}}% - \jlreq@BlockHeading@start@{#1}{#2}{#3}% + \edef\jlreq@BlockHeading@start@format{\unexpanded{#5}}% この二つは\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる) + \edef\jlreq@BlockHeading@start@totalformat{\unexpanded{#6}}% + \jlreq@BlockHeading@start@{#1}{#2}{#3}{#4}% } % {1 = 命令}{2 = レベル}{3 = スペース関連} -\newcommand{\jlreq@BlockHeading@start@}[3]{% - \@ifstar{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{*}}}{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{}}}% +\newcommand{\jlreq@BlockHeading@start@}[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 = 見出し} \long\def\jlreq@BlockHeading@start@@#1#2#3#4[#5]#6{% - \jlreq@ifnextchar[{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}}{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}[]}% + \@ifnextchar[{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}}{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}[]}% } % {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}{5 = running head}{6 = 見出し}[7 = 副題] @@ -1696,7 +1736,7 @@ } % コントロールシークエンスを保存 -\def\jlreq@BlockHeading@start@afterheading@saveafter@cs#1{% +\long\def\jlreq@BlockHeading@start@afterheading@saveafter@cs#1{% \csgappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{#1}% \jlreq@BlockHeading@start@afterheading@saveafter@option } @@ -1704,15 +1744,25 @@ \def\jlreq@BlockHeading@start@afterheading@saveafter@option{% \@ifnextchar[{\jlreq@BlockHeading@start@afterheading@saveafter@option@}{\jlreq@BlockHeading@start@afterheading@saveafter@arguments}% } -\def\jlreq@BlockHeading@start@afterheading@saveafter@option@[#1]{% +\long\def\jlreq@BlockHeading@start@afterheading@saveafter@option@[#1]{% \csxappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{\unexpanded{[#1]}}% \jlreq@BlockHeading@start@afterheading@saveafter@arguments } % 引数を保存し続けるループ \def\jlreq@BlockHeading@start@afterheading@saveafter@arguments{% - \jlreq@ifnextchar\bgroup{\jlreq@BlockHeading@start@afterheading@saveafter@arguments@}{\jlreq@BlockHeading@start@afterheading}% + \futurelet\jlreq@nextchar\jlreq@BlockHeading@start@afterheading@saveafter@arguments@ } -\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@#1{% +\edef\jlreq@BlockHeading@start@afterheading@saveafter@arguments@{% + \noexpand\ifx\space\unexpanded{\jlreq@nextchar\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@\else\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@\fi}% +} +\expandafter\def\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@\space{% + \csgappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{ }% + \jlreq@BlockHeading@start@afterheading@saveafter@arguments +} +\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@{% + \jlreq@ifnextchar\bgroup{\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@@}{\jlreq@BlockHeading@start@afterheading}% +} +\long\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@@#1{% \csxappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{\unexpanded{{#1}}}% \jlreq@BlockHeading@start@afterheading@saveafter@arguments } @@ -1724,10 +1774,10 @@ % {1 = 命令}{2 = レベル}{3 = スペース関連(横方向のみ)}{4 = フォーマット群}{5 = *}{6 = running head}{7 = 見出し}{8 = 副題} \long\def\jlreq@BlockHeading@start@makeoutput#1#2#3#4#5#6#7#8{% \begingroup - \ifnum0\jlreq@ifempty{#5}{}{1}\ifnum #2>\c@secnumdepth 1\fi>0 + \ifnum #2>\c@secnumdepth \def\jlreq@tempc{*}% \else - \def\jlreq@tempc{}% + \def\jlreq@tempc{#5}% \fi \long\def\jlreq@tempa##1##2##3##4##5##6##7{% \long\def\jlreq@tempa{##1}% 素のラベルのフォーマットを取り出す @@ -1739,7 +1789,18 @@ \jlreq@do \edef\jlreq@do{% \unexpanded{\def\jlreq@resulta}{% - \expandafter\if\jlreq@tempc *\else\unexpanded{\refstepcounter{#1}}\fi + \ifx\jlreq@tempc\@empty + \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}% + \unexpanded{\refstepcounter{#1}}% + \else + \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}% + \fi + \jlreq@ifempty{#7}% + {\unexpanded{\long\gdef\jlreqHeadingText####1{}}}% + {\unexpanded{\long\gdef\jlreqHeadingText####1{####1}}}% + \jlreq@ifempty{#8}% + {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{}}}% + {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{####1}}}% \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{\unexpanded{#5}}{\expandonce{\jlreq@tempa}}{\unexpanded{#6}}% }% \unexpanded{\def\jlreq@resultb}{% @@ -1801,15 +1862,15 @@ }% } -% 行取り処理 +% 行取り処理.#3が空の時は行取りの処理はしない.(空白挿入は行う.) % {1 = 前空き}{2 = 後ろ空き}{3 = トータル行数}{4 = 偶数ページ改ページするなら空}{5 = 出力} -\long\def\jlreq@BlockHeading@start@gyodori#1#2#3#4#5{{% - \par +\long\def\jlreq@BlockHeading@start@gyodori#1#2#3#4#5{\par{% \jlreq@ifempty{#4}{\jlreq@setcurrentpage}{}% \setbox\jlreq@tempboxa=\vbox{#5}% % \jlreq@tempskip(a/b)に前/後ろに入れるべき値を入れる % #1がa:ならばその値は\jlreq@tempskipaには足さず\jlreq@tempskipcに入れておく \jlreq@tempskipa=0pt + \jlreq@tempskipb=0pt \jlreq@tempskipc=0pt \jlreq@BlockHeading@start@analyzespace#1:\jlreq@endmark \let\jlreq@maeakitype=\jlreq@resulta @@ -1823,7 +1884,11 @@ \setbox\jlreq@tempboxb=\hbox{阿}% \ifx\jlreq@lines\@empty \ifx\jlreq@maeaki\@empty\else - \jlreq@tempskipa=\glueexpr\jlreq@maeaki\relax + \ifx a\jlreq@maeakitype + \jlreq@tempskipc=\glueexpr\jlreq@maeaki\relax + \else + \jlreq@tempskipa=\glueexpr\jlreq@maeaki\relax + \fi \fi \ifx\jlreq@ushiroaki\@empty\else \jlreq@tempskipb=\glueexpr\jlreq@ushiroaki\relax @@ -1858,26 +1923,42 @@ \jlreq@tempskipa=\glueexpr\jlreq@tempdima - \jlreq@tempskipb + \baselineskip - \ht\jlreq@tempboxb\relax \fi \fi + % \jlreq@tempdimaの利用ここまで \fi \jlreq@ifgluezero\jlreq@tempskipc{}{\vskip\jlreq@tempskipc\relax}% \ifx r\jlreq@maeakitype\prevdepth=-1000pt\fi + % \jlreq@tempdimb, \jlreq@tempdimcに出力対称の高さを深さを代入 + \jlreq@tempdimb=\ht\jlreq@tempboxa + \jlreq@tempdimc=\dp\jlreq@tempboxa \setbox\jlreq@tempboxa=\vbox{% \jlreq@ifgluezero\jlreq@tempskipa{}{\vskip\jlreq@tempskipa}% - \unvbox\jlreq@tempboxa}% - \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa\relax - \ht\jlreq@tempboxa=0pt - \box\jlreq@tempboxa + \unvbox\jlreq@tempboxa + }% + \ifx\jlreq@lines\@empty + \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 + % \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 + \fi \jlreq@ifempty{#4}{\ifodd\jlreq@currentpage\nobreak\fi}{\nobreak}% - \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt\else\prevdepth=0pt\fi \jlreq@ifgluezero\jlreq@tempskipb{}{\vskip\jlreq@tempskipb}% \edef\jlreq@do{% - \unexpanded{\def\jlreq@parhook@gyodori}{% - \noexpand\parskip=\the\parskip - \unexpanded{\def\jlreq@parhook@gyodori{}}% - }% - \unexpanded{\parskip=0pt plus 1pt}% + \ifdim\parskip=0pt \else + \unexpanded{\def\jlreq@parhook@gyodori}{% + \noexpand\parskip=\the\parskip + \unexpanded{\def\jlreq@parhook@gyodori{}}% + }% + \unexpanded{\parskip=0pt plus 1pt}% + \fi }% -\expandafter}\jlreq@do} + \expandafter}\jlreq@do +} \PushPostHook{par}{\jlreq@parhook@gyodori} \def\jlreq@parhook@gyodori{} @@ -1891,7 +1972,7 @@ \def\jlreq@BlockHeading@gyodori@parsekeyval@#1{% \@ifnextchar[{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}}{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}[jlreq@key]}% } -\def\jlreq@BlockHeading@gyodori@parsekeyval@@#1[#2]#3#4#5#6{% +\long\def\jlreq@BlockHeading@gyodori@parsekeyval@@#1[#2]#3#4#5#6{% \begingroup \def\jlreq@lines{#6}% \def\jlreq@before@space{}% @@ -1903,9 +1984,11 @@ {before_space}{\def\jlreq@before@space{##1}} {after_space}{\def\jlreq@after@space{##1}} {before_lines}{% - \jlreq@iffirsttoken@ignorespaces{##1}{*}% - {\edef\jlreq@before@lines{s:\expandonce{\@gobble ##1}}}% - {\def\jlreq@before@lines{a:##1}}% + \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}% @@ -1952,6 +2035,7 @@ \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\zw}% \def\jlreq@afterindent{\@afterindenttrue}% \def\jlreq@allowbreak@evenpage{*}% 偶数ページでも改ページを許可するならば空,そうでないなら* @@ -1959,6 +2043,7 @@ \def\jlreq@subtitle@indent{1\zw}% \def\jlreq@column@spanning{false}% \newif\ifjlreq@column@spanning@possible\jlreq@column@spanning@possiblefalse + \newif\ifjlreq@number \jlreq@numbertrue % a,bみたいなのをaとbにわける.カンマがなければbは空.引数を{a}{b}として##2を呼び出す. \def\jlreq@parsecomma##1##2{% \jlreq@helper@dividebycomma{##1}% @@ -2007,7 +2092,15 @@ } {label_format}{\edef\jlreq@label@format{\unexpanded{##1}}} {subtitle_format}{\edef\jlreq@subtitle@format{\unexpanded{##1}}} - {subtitle_indent}{\def\jlreq@subtitle@indent{##1}} + {subtitle_indent}{% + \jlreq@iffirsttoken{##1}{*}{% + \jlreq@subtitleindent@withlabelfalse + \edef\jlreq@subtitle@indent{\expandonce{\@gobble ##1}}% + }{% + \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]{% @@ -2042,6 +2135,7 @@ }% \ifjlreq@tempa\ClassWarningNoLine{jlreq}{Invalid input `##1' for column_spanning in BlockHeading #1}\fi } + {number}[true,false]{\csname jlreq@number##1\endcsname} }{#3}% \def\jlreq@do{}% 初期化.これに最終処理を入れていく. % 入力チェック @@ -2051,48 +2145,69 @@ \def\jlreq@column@spanning{false}% \fi }{}% - \edef\jlreq@format{\expandonce{\jlreq@font}\expandonce{\jlreq@format}}% % 空き量などの調整を含んだラベル \edef\jlreq@label@format@modified{% \noexpand\noindent - \unexpanded{\setbox\jlreq@tempboxa=\hbox}{\expandonce{\jlreq@label@format}}% - \unexpanded{\hangindent=\glueexpr}(\expandonce{\jlreq@after@label@space}) + (\expandonce{\jlreq@second@heading@text@indent@wlabel})% - \ifjlreq@hang - +\wd\jlreq@tempboxa\relax + \ifnum 0\ifjlreq@subtitleindent@withlabel 1\fi\ifjlreq@hang 1\fi>0 + \unexpanded{\setbox\jlreq@tempboxa=\hbox}{\expandonce{\jlreq@label@format}}% + \unexpanded{\xdef\jlreq@BlockHeading@start@labellength{\the\wd\jlreq@tempboxa}}% + \unexpanded{\box\jlreq@tempboxa}% \else - \relax - \unexpanded{\edef\jlreq@BlockHeading@start@labellength{\the\wd\jlreq@tempboxa}}% + \expandonce{\jlreq@label@format}% + \fi + \inhibitglue\hbox{}% + \ifdim\dimexpr\jlreq@after@label@space\relax=0pt \else + \noexpand\hspace*{\noexpand\dimexpr\expandonce{\jlreq@after@label@space}\noexpand\relax}% \fi - \box\jlreq@tempboxa }% \edef\jlreq@heading@text@format@wlabel{% - \ifdim\dimexpr\jlreq@after@label@space\relax=0pt\else - \noexpand\hspace*{\noexpand\dimexpr\expandonce{\jlreq@after@label@space}\noexpand\relax}% + \ifnum 0\ifdim\jlreq@second@heading@text@indent@wlabel>0pt 1\fi\ifjlreq@hang 1\fi>0 + \unexpanded{\hangindent=\glueexpr}(\expandonce{\jlreq@second@heading@text@indent@wlabel})% + \ifjlreq@hang + (\expandonce{\jlreq@after@label@space}) + \unexpanded{\jlreq@BlockHeading@start@labellength}\fi + \noexpand\relax \fi \expandonce{\jlreq@heading@text@format}% }% \edef\jlreq@heading@text@format@wolabel{% - \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=0pt\else - \noexpand\hangindent=\noexpand\dimexpr\expandonce{\jlreq@second@heading@text@indent@wolabel}\noexpand\relax + \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=0pt \else + \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@second@heading@text@indent@wolabel}\noexpand\relax \fi \expandonce{\jlreq@heading@text@format}% }% \def\jlreq@make@subtitle@format##1##2{% \edef##1{% - \ifjlreq@subtitle@break\unexpanded{{\par}\hangafter=0}\fi - \unexpanded{\hangindent=\dimexpr\hangindent + }(\expandonce{\jlreq@subtitle@indent}) ##2\noexpand\relax - \ifdim\jlreq@subtitle@indent=0pt\else - \ifjlreq@subtitle@break\else\unexpanded{\hspace*}{\expandonce{\jlreq@subtitle@indent}}\fi + \ifjlreq@subtitle@break + \unexpanded{\par}% + ##2% + \fi + \ifdim\jlreq@subtitle@indent=0pt \else + \ifjlreq@subtitle@break\else + \unexpanded{\hspace*}{\expandonce{\jlreq@subtitle@indent}}% + \fi + \fi + \ifjlreq@subtitle@break + \unexpanded{\nobreak\noindent}% \fi - \unexpanded{\nobreak\noindent}% - {\ifx\jlreq@subtitle@font\@empty\else\expandonce{\jlreq@subtitle@font}\fi\expandonce{\jlreq@subtitle@format}}% + {\expandonce{\jlreq@subtitle@font}\expandonce{\jlreq@subtitle@format}}% }% }% \jlreq@make@subtitle@format\jlreq@subtitle@format@wlabel{% - - (\expandonce{\jlreq@second@heading@text@indent@wlabel})% - \ifjlreq@hang\else + (\noexpand\jlreq@BlockHeading@start@labellength)\fi + \ifjlreq@subtitleindent@withlabel + \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 + \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 + \noexpand\hangafter=0 + \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@subtitle@indent}\noexpand\relax + \fi }% - \jlreq@make@subtitle@format\jlreq@subtitle@format@wolabel{- (\expandonce{\jlreq@second@heading@text@indent@wolabel})}% \jlreq@heading@make@l@{#1}{#2}{\jlreq@label@format}% \eappto\jlreq@do{\expandonce{\jlreq@result}}% \jlreq@BlockHeading@gyodori@parsekeyval*[BlockHeading:#1]{#3}{}{}{1}% @@ -2104,12 +2219,12 @@ % 前開きが常に入ってしまうので,a:の時は除去する \jlreq@iffirsttoken{##1}{a}{\def\jlreq@spaceset{{}{##2}{##3}}}{} \edef\jlreq@totalformat{% - \noexpand\twocolumn[% + \noexpand\twocolumn[{% % 普段自動で入る\topskipと\baselineskipを手動で入れる \jlreq@iffirsttoken{##1}{r}{}{\unexpanded{\vskip\topskip\relax}}% \unexpanded{####1}% \jlreq@iffirsttoken{##2}{r}{}{\unexpanded{\vskip\glueexpr\baselineskip - \topskip\relax}}% - ]% + }]% }% }% \expandafter\@tempa\jlreq@spaceset @@ -2122,11 +2237,12 @@ \expandonce{\jlreq@pagebreak}% \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}% {% {\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@label@format@modified}}% {\expandonce{\jlreq@heading@text@format@wlabel}}{\expandonce{\jlreq@heading@text@format@wolabel}}% {\expandonce{\jlreq@subtitle@format@wlabel}}{\expandonce{\jlreq@subtitle@format@wolabel}}% - {\expandonce{\jlreq@format}}% + {\expandonce{\jlreq@font}\expandonce{\jlreq@format}}% }% {\expandonce{\jlreq@totalformat}}% }}% @@ -2264,7 +2380,7 @@ \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 @@ -2402,15 +2518,15 @@ } %.. 同行見出し -% {1 = 命令名}{2 = レベル}{3 = ラベルフォーマット}{4 = ラベルありフォーマット}{5 = ラベルなしフォーマット} +% {1 = 命令名}{2 = レベル}{3 = */-}{4 = ラベルフォーマット}{5 = ラベルありフォーマット}{6 = ラベルなしフォーマット} % 4,5は見出し文字列が#1になる. -\long\def\jlreq@RuninHeading@start#1#2#3#4#5{% - \edef\jlreq@RuninHeading@start@format@label{\unexpanded{#3}}% - \edef\jlreq@RuninHeading@start@format@wlabel{\unexpanded{#4}}% - \edef\jlreq@RuninHeading@start@format@wolabel{\unexpanded{#5}}% - \@ifstar{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{*}}}{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{}}}% +\long\def\jlreq@RuninHeading@start#1#2#3#4#5#6{% + \edef\jlreq@RuninHeading@start@format@label{\unexpanded{#4}}% + \edef\jlreq@RuninHeading@start@format@wlabel{\unexpanded{#5}}% + \edef\jlreq@RuninHeading@start@format@wolabel{\unexpanded{#6}}% + \@ifstar{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{*}}}{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{#3}}}% } -% {1 = 命令名}{2 = レベル}{3 = *}{4 = running head}{5 = 見出し} +% {1 = 命令名}{2 = レベル}{3 = */-}{4 = running head}{5 = 見出し} \long\def\jlreq@RuninHeading@start@#1#2#3[#4]#5{% \edef\jlreq@do{\unexpanded{\jlreq@RuninHeading@start@@{#1}{#2}{#3}{#4}{#5}}{\expandonce{\jlreq@RuninHeading@start@format@label}}{\expandonce{\jlreq@RuninHeading@start@format@wlabel}}{\expandonce{\jlreq@RuninHeading@start@format@wolabel}}}% \jlreq@do @@ -2466,6 +2582,7 @@ \def\jlreq@label@font{}% \def\jlreq@label@format{\@seccntformat{#1}}% \def\jlreq@after@space{1\zw}% + \newif\ifjlreq@number \jlreq@numbertrue \jlreq@parsekeyval[RuninHeading:#1]{% {font}{\def\jlreq@font{##1}} {indent}{\def\jlreq@indent{##1}} @@ -2479,6 +2596,7 @@ \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}% @@ -2507,7 +2625,7 @@ \noexpand\edef\expandonce{\csname #1\endcsname}{% \noexpand\unexpanded{% \unexpanded{\jlreq@hook@beforeheadings{#1}}% - \unexpanded{\jlreq@RuninHeading@start{#1}{#2}}{\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@format@wlabel}}{\expandonce{\jlreq@format@wolabel}}% + \unexpanded{\jlreq@RuninHeading@start{#1}{#2}}{\ifjlreq@number\else -\fi}{\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@format@wlabel}}{\expandonce{\jlreq@format@wolabel}}% }% }% }% @@ -2564,11 +2682,11 @@ \hspace*{#2}% \copy\@tempboxa \hspace*{#3}% - \par % でかい見出しボックスの分をキャンセルする空きを入れる % \baselineskip - \ht\jlreq@tempboxaはTeXが挿入するスキップの分 - \vskip -\dimexpr\ht\@tempboxa + \dp\@tempboxa + \baselineskip - \ht\jlreq@tempboxa\relax\relax \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 }% @@ -2652,7 +2770,7 @@ \jlreq@do } -\newcommand*\jlreq@HeadingType[1]{% +\newcommand*{\jlreq@HeadingType}[1]{% \ifcsname jlreq@heading@type@#1\endcsname \jlreq@HeadingType@{#1}{\RenewTobiraHeading}{TobiraHeading}{% \jlreq@HeadingType@{#1}{\RenewBlockHeading}{BlockHeading}{% @@ -2663,7 +2781,7 @@ UndefinedHeading% \fi } -\newcommand*\jlreq@HeadingType@[2]{% +\newcommand*{\jlreq@HeadingType@}[2]{% \expandafter\expandafter\expandafter\ifx\csname jlreq@heading@type@#1\endcsname#2\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } @@ -2774,33 +2892,6 @@ \ModifyHeading{chapter}{pagebreak=clearpage} \fi } -\jlreq@switch{\jlreq@article@type}{ - {book}{% - \renewcommand{\jlreq@heading@maketoc@chapter}[3]{% - \jlreq@ifempty{#1}{% - \chaptermark{#3}% - \ifnum0\if@mainmatter\else1\fi\ifnum\jlreq@heading@level@chapter>\c@secnumdepth 1\fi>0 - \addcontentsline{toc}{chapter}{#3}% - \else - \addcontentsline{toc}{chapter}{\protect\numberline{#2}#3}% - \fi - }{}% - } - } - {report}{ - \renewcommand{\jlreq@heading@maketoc@chapter}[3]{% - \jlreq@ifempty{#1}{% - \chaptermark{#3}% - \ifnum0\ifnum\jlreq@heading@level@chapter>\c@secnumdepth 1\fi>0 - \addcontentsline{toc}{chapter}{#3}% - \else - \addcontentsline{toc}{chapter}{\protect\numberline{#2}#3}% - \fi - }{}% - } - } -} - %. 注 % 文字サイズは6ポイントくらい(4.2.3.a)とりあえす\scriptsize @@ -3230,7 +3321,7 @@ \def\jlreq@sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名 \long\def\@sidenotetext#1{% \marginpar{\reset@font\footnotesize - \color@begingroup + \color@begingroup\normalcolor \@makesidetext{#1}% \color@endgroup }% @@ -3326,12 +3417,14 @@ % \inlinenote*は自動で改行されない.\\で改行位置を指定する. \newif\ifjlreq@in@inlinenote \jlreq@in@inlinenotefalse -\newcommand*{\inlinenote}{% - \ifjlreq@in@inlinenote\ClassError{jlreq}{\string\inlinenote\space can't be nested}{\@ehc}\fi +\newcommand*{\jlreq@inlinenote@}[1]{% + \ifjlreq@in@inlinenote\ClassError{jlreq}{\string#1\space can't be nested}{\@ehc}\fi \jlreq@in@inlinenotetrue \ifvmode\leavevmode\fi - \@ifstar\jlreq@inlinenote@noauto\jlreq@inlinenote@auto} -\let\warichu=\inlinenote + \@ifstar\jlreq@inlinenote@noauto\jlreq@inlinenote@auto +} +\newcommand*{\inlinenote}{\jlreq@inlinenote@{\inlinenote}} +\newcommand*{\warichu}{\jlreq@inlinenote@{\warichu}} \newcommand*{\jlreq@inlinenote@auto}[1]{% % 割注初め括弧の前の場所を保存 @@ -3359,9 +3452,7 @@ \else \jlreq@tempdima=\dimexpr\jlreq@tempdimc - \jlreq@tempdimb\relax \divide\jlreq@tempdima\linewidth - \@tempcntb=\number\jlreq@tempdima - \multiply\@tempcntb by 2\relax - \advance\@tempcntb by 4\relax + \@tempcntb=\numexpr 2*\number\jlreq@tempdima + 4\relax \fi % \jlreq@parshapeargに\parshapeに指定する書式の最後以外を入れる. \ifnum\@tempcntb>2\relax @@ -3492,58 +3583,60 @@ % として整形した際に,#5行以内に収まる. % \jlreq@resultboxに整形結果を返す(垂直ボックス).見つからなかったらvoid.\globalに設定する. \newcommand{\jlreq@inlinenote@determinelength}[7]{% -% \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}% - \advance\@tempcnta by 1\relax - }% - \@tempcnta=0 - \jlreq@tempdima=#6\relax - % \jlreq@tempdimaを少しずつ伸ばしていく - \@whilenum\@tempcnta<1000\do{% - \ifnum\@tempcnta>999\relax% ループが長すぎる - \global\setbox\jlreq@resultbox=\voidb@x% - \@tempcnta=1001\relax - \else - \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 - #1\par\global\@tempcntb=\prevgraf}% -% \message{\string\jlreq@tempdima = \the\jlreq@tempdima で試行,行数は\the\@tempcntb , 書式 #5 #3 \@tempa 0pt \the\maxdimen}% - \fi - \jlreq@getlastbox{\@tempboxa}% - \setbox\jlreq@tempboxa=\box\jlreq@resultbox - \ifnum\@tempcntb<#5\relax% 行数が達していないならOK -% \message{行数 = \the\@tempcntb により確定} - % #5行になるまで空の水平ボックスを加えていく. - \global\setbox\jlreq@resultbox=\vbox{#2% - \unvbox\@tempboxa\hbox{\unhbox\jlreq@tempboxa\unskip\unskip\unpenalty}% - \@whilenum\@tempcntb<#5\do{\hbox{}\advance\@tempcntb by 1}}% - \@tempcnta=1001\relax - \else - % そうでない場合は最後の二行の長さを比較する + \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}% + \advance\@tempcnta by 1\relax + }% + \@tempcnta=0 + \jlreq@tempdima=#6\relax + % \jlreq@tempdimaを少しずつ伸ばしていく + \@whilenum\@tempcnta<1000\do{% + \ifnum\@tempcnta>999\relax% ループが長すぎる + \global\setbox\jlreq@resultbox=\voidb@x% + \@tempcnta=1001\relax + \else + \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 + #1\par\global\@tempcntb=\prevgraf}% + % \message{\string\jlreq@tempdima = \the\jlreq@tempdima で試行,行数は\the\@tempcntb , 書式 #5 #3 \@tempa 0pt \the\maxdimen}% + \fi \jlreq@getlastbox{\@tempboxa}% - \setbox\jlreq@tempboxb=\box\jlreq@resultbox -% \message{最終行の長さ \the\wd\jlreq@tempboxa, その前の長さ \the\wd\jlreq@tempboxb}% - \ifdim\wd\jlreq@tempboxa>\wd\jlreq@tempboxb - \advance\jlreq@tempdima by 0.3pt\relax% 0.3ptに意味はない + \setbox\jlreq@tempboxa=\box\jlreq@resultbox + \ifnum\@tempcntb<#5\relax% 行数が達していないならOK + % \message{行数 = \the\@tempcntb により確定} + % #5行になるまで空の水平ボックスを加えていく. + \global\setbox\jlreq@resultbox=\vbox{#2% + \unvbox\@tempboxa\hbox{\unhbox\jlreq@tempboxa\unskip\unskip\unpenalty}% + \@whilenum\@tempcntb<#5\do{\hbox{}\advance\@tempcntb by 1}}% + \@tempcnta=1001\relax \else - % 後ろが短いのでOK - \global\setbox\jlreq@resultbox=\vbox{#2\unvbox\@tempboxa\box\jlreq@tempboxb\box\jlreq@tempboxa}% - \jlreq@resultdimen=\jlreq@tempdima + % そうでない場合は最後の二行の長さを比較する + \jlreq@getlastbox{\@tempboxa}% + \setbox\jlreq@tempboxb=\box\jlreq@resultbox + % \message{最終行の長さ \the\wd\jlreq@tempboxa, その前の長さ \the\wd\jlreq@tempboxb}% + \ifdim\wd\jlreq@tempboxa>\wd\jlreq@tempboxb + \advance\jlreq@tempdima by 0.3pt\relax% 0.3ptに意味はない + \else + % 後ろが短いのでOK + \global\setbox\jlreq@resultbox=\vbox{#2\unvbox\@tempboxa\box\jlreq@tempboxb\box\jlreq@tempboxa}% + \jlreq@resultdimen=\jlreq@tempdima + \@tempcnta=1001\relax + \fi + \fi + \ifdim\jlreq@tempdima>#7\relax + \global\setbox\jlreq@resultbox=\box\voidb@x \@tempcnta=1001\relax \fi - \fi - \ifdim\jlreq@tempdima>#7\relax - \global\setbox\jlreq@resultbox=\box\voidb@x - \@tempcnta=1001\relax - \fi - \advance\@tempcnta by 1\relax - }% + \advance\@tempcnta by 1\relax + }% + \endgroup } %. ページスタイル. @@ -3594,6 +3687,7 @@ {center}{\def\jlreq@tempd{#1}} {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}} }% } @@ -3859,7 +3953,11 @@ \def\jlreq@pagestyle@make@headingmark@@#1#2#3#4#5{% % \jlreq@tempbに\***markの定義を入れる - \edef\jlreq@tempb{\expandonce{\csname the#1\endcsname}\noexpand\quad\unexpanded{##1}}% + \edef\jlreq@tempb{% + \expandonce{\csname the#1\endcsname}% + \noexpand\ifx\expandonce{\csname the#1\endcsname}\unexpanded{\@empty\else\quad\fi}% + \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}}}{}% @@ -3907,20 +4005,20 @@ % #1の左右に傍注調整用の空白を入れて#1に代入する \def\jlreq@pagestyle@addsidenotemargin@left#1{% - \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{}{\marginparwidth+\marginparsep}% + \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{}% } -\def\jlreq@pagestyle@addsidenotemargin@right#1{ - \jlreq@pagestyle@addsidenotemargin@{#1}{}{\marginparwidth+\marginparsep}{\marginparwidth+\marginparsep}% +\def\jlreq@pagestyle@addsidenotemargin@right#1{% + \jlreq@pagestyle@addsidenotemargin@{#1}{}{\marginparwidth+\marginparsep}% } -\def\jlreq@pagestyle@addsidenotemargin@bothside#1{ - \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{\marginparwidth+\marginparsep}{2\marginparwidth+2\marginparsep}% +\def\jlreq@pagestyle@addsidenotemargin@bothside#1{% + \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{\marginparwidth+\marginparsep}% } % #2: 左,#3:右,#4:#2 + #3 -\def\jlreq@pagestyle@addsidenotemargin@#1#2#3#4{% +\def\jlreq@pagestyle@addsidenotemargin@#1#2#3{% \ifx#1\@empty\else \edef#1{% \jlreq@ifempty{#2}{}{\unexpanded{\hskip-\dimexpr #2\relax}}% - \unexpanded{\hbox to \dimexpr\textwidth + #4\relax}{\expandonce{#1}}% + \expandonce{#1}% \jlreq@ifempty{#3}{}{\unexpanded{\hskip-\dimexpr #3\relax}}% }% \fi @@ -3931,9 +4029,9 @@ \ifx#1\@empty\ifx#4\@empty\else\eappto#2{\expandonce{#3}\expandonce{#4}}\def#4{}\fi\fi } -% #1: ターゲットなコントロールシークエンスの名前,#2:*ならばreverseする,#3:空き % #1に入っている{柱1}{柱2}... という並びから,実際に出力する柱を構築する. % 間に空白を入れる. +% #1: ターゲットなコントロールシークエンスの名前,#2:*ならばreverseする,#3:空き \def\jlreq@pagestyle@make@runninghead#1#2#3{% \expandafter\ifx\csname #1\endcsname\@empty\expandafter\@gobble\else\expandafter\@firstofone\fi{% \edef\jlreq@do{% @@ -3967,6 +4065,15 @@ }% } +% #1= cs,#2 = フォーマットの入ったcs,#3 = デフォルトフォーマットの入ったcs +\def\jlreq@pagestyle@applyformat#1#2#3{% + % デフォルト時に限り,\hbox to ***{空トークン}を避ける + \ifnum 0\ifx#1\@empty\else 1\fi\ifx#2\relax\else 1\fi>0 + \edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\ifx#2\relax\expandonce{#3}\else\expandonce{#2}\fi}}\jlreq@do + \edef#1{\expandafter\expandonce\expandafter{\expandafter\jlreq@tempa\expandafter{#1}}}% + \fi +} + %.. \DeclarePageStyle \newcommand{\DeclarePageStyle}[2]{% \expandafter\edef\csname jlreq@pagestyle@setting@#1\endcsname{\unexpanded{#2}}% @@ -3979,6 +4086,10 @@ \def\jlreq@command{}% \def\jlreq@mark@format{}% \def\jlreq@font{}% + \let\jlreq@oddheadformat\relax + \let\jlreq@evenheadformat\relax + \let\jlreq@oddfootformat\relax + \let\jlreq@evenfootformat\relax % 柱とノンブルの間 \def\jlreq@gap{1.5\zw}% \def\jlreq@nombre@gap{}% @@ -4008,6 +4119,10 @@ {running_head_gap}{\def\jlreq@running@head@gap{##1}} % 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}}} % 二つ目 {nombre_ii}{\def\jlreq@nombre@ii{##1}} {nombre_ii_position}{\def\jlreq@nombre@ii@position{##1}} @@ -4120,13 +4235,20 @@ \fi }% % \jlreq@(odd|even)headの構築 + \@ifundefined{jlreq@\jlreq@parity headformat} + {\def\jlreq@format{####1}}% + {\expandafter\let\expandafter\jlreq@format\csname jlreq@\jlreq@parity headformat\endcsname}% + \edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\expandonce{\jlreq@format}}}\jlreq@do + \edef\jlreq@tempb{% + \csexpandonce{jlreq@\jlreq@parity @contents}% + \noexpand\hfil + \expandonce{\jlreq@nombre@contents}% + }% \expandafter\edef\csname jlreq@\jlreq@parity head\endcsname{% \unexpanded{\setbox\jlreq@tempboxa=\hbox to \dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\zh}\fi\noexpand\relax {% \unexpanded{\tate\adjustbaseline}% - \csexpandonce{jlreq@\jlreq@parity @contents}% - \noexpand\hfil - \expandonce{\jlreq@nombre@contents}% + \expandafter\expandonce\expandafter{\expandafter\jlreq@tempa\expandafter{\jlreq@tempb}}% }% % Underful対策 \ifx l\jlreq@engine @@ -4138,7 +4260,7 @@ }% % \jlreq@tempboxaに入っているボックスを正しく配置する \edef\jlreq@lefthead@adjustbox{% - \noexpand\hskip\noexpand\dimexpr\if@tate\unexpanded{- \Cdp}\fi - \unexpanded{\headsep - 1\zw\relax}% + \noexpand\hskip\noexpand\dimexpr\if@tate\unexpanded{- \Cdp}\fi \unexpanded{- \headsep - 1\zw\relax}% \unexpanded{\box\jlreq@tempboxa\hfil}% }% \edef\jlreq@righthead@adjustbox{% @@ -4264,6 +4386,15 @@ \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}% + \ifdim\marginparwidth>0pt + \def\jlreq@defaultformat{\hbox to \jlreqyokoheadlength{####1}}% + \else + \def\jlreq@defaultformat{####1}% + \fi + \jlreq@pagestyle@applyformat{\jlreq@oddhead}{\jlreq@oddheadformat}{\jlreq@defaultformat}% + \jlreq@pagestyle@applyformat{\jlreq@evenhead}{\jlreq@evenheadformat}{\jlreq@defaultformat}% + \jlreq@pagestyle@applyformat{\jlreq@oddfoot}{\jlreq@oddfootformat}{\jlreq@defaultformat}% + \jlreq@pagestyle@applyformat{\jlreq@evenfoot}{\jlreq@evenfootformat}{\jlreq@defaultformat}% % 傍注用調整 \ifdim\marginparwidth>0pt \if@tate\else @@ -4304,6 +4435,17 @@ \jlreq@do } +\ifdim\marginparwidth>0pt + \if@twocolumn + \def\jlreqyokoheadlength{\dimexpr\textwidth + 2\marginparwidth + 2\marginparsep\relax} + \else + \def\jlreqyokoheadlength{\dimexpr\textwidth + \marginparwidth + \marginparsep\relax} + \fi +\else + \def\jlreqyokoheadlength{\textwidth} +\fi +\edef\jlreqtateheadlength{\unexpanded{\dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\zh}\fi\noexpand\relax} + \newcommand*{\NewPageStyle}[2]{% \expandafter\@ifdefinable\csname ps@#1\endcsname{\DeclarePageStyle{#1}{#2}}% } @@ -4376,11 +4518,12 @@ \vskip\abovecaptionskip \edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\expandonce{\jlreq@makecaption@label@format}}}% \jlreq@do - \jlreq@ifempty{#1}{}{% - \edef\jlreq@tempa{{\noexpand\jlreq@@makecaption@label@font\expandonce{\jlreq@tempa{#1}}\unexpanded{\hskip \glueexpr\jlreq@makecaption@after@label@space\relax}}}% - }% - \appto\jlreq@tempa{{\jlreq@@makecaption@font #2}}% - \setbox\@tempboxa=\hbox{\jlreq@tempa}% + \setbox\jlreq@tempboxa=\hbox{\jlreq@@makecaption@label@font #1}% + \ifdim\wd\jlreq@tempboxa=0pt + \edef\jlreq@tempa{\unexpanded{{\jlreq@@makecaption@font #2}}}% + \else + \edef\jlreq@tempa{{\noexpand\jlreq@@makecaption@label@font\expandonce{\jlreq@tempa{#1}}\unexpanded{\hskip\glueexpr\jlreq@makecaption@after@label@space\relax}}\unexpanded{{\jlreq@@makecaption@font #2}}}% + \fi \@ifundefined{@currenvir}{% \@ifundefined{@captype}% {\def\jlreq@tempb{}}% @@ -4389,11 +4532,12 @@ \@ifundefined{jlreq@caption@align@\jlreq@tempb}% {\let\jlreq@align=\jlreq@caption@align}% {\expandafter\let\expandafter\jlreq@align\csname jlreq@caption@align@\jlreq@tempb\endcsname}% + \setbox\@tempboxa=\hbox{\jlreq@tempa}% \ifdim\wd\@tempboxa>\hsize\relax {% \ifx c\jlreq@align\centering\fi \ifx r\jlreq@align\raggedleft\fi - \jlreq@tempa\par + \unhbox\@tempboxa\par }% \else \global\@minipagefalse @@ -4718,7 +4862,7 @@ }% }% \def\jlreq@tempa{% - \jlreq@parsekeyval{% + \jlreq@parsekeyval[jlreqsetup: itemization_beforeafter_space]{% {i}{\appto\jlreq@do{\def\jlreq@itemization@beforeafter@space@i{####1}}} {ii}{\appto\jlreq@do{\def\jlreq@itemization@beforeafter@space@ii{####1}}} {iii}{\appto\jlreq@do{\def\jlreq@itemization@beforeafter@space@iii{####1}}} @@ -4968,12 +5112,12 @@ \interlinepenalty\@M \leavevmode \@lnumwidth #3\relax - \@tempcnta=#1\relax - \advance\@tempcnta by -\jlreq@top@contents - \@tempdima=1\jlreq@mol - \multiply \@tempdima by \@tempcnta + \@tempcnta=#1\relax + \advance\@tempcnta by -\jlreq@top@contents + \@tempdima=1\jlreq@mol + \multiply \@tempdima by \@tempcnta \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip - \advance\leftskip\@tempdima + \advance\leftskip\@tempdima {#4}\nobreak \leaders\hbox{$\m@th\mkern \@dotsep mu$\null\inhibitglue ・\inhibitglue\null$\m@th\mkern \@dotsep mu$}% \hfill\nobreak @@ -5053,71 +5197,336 @@ \newcommand{\subsubitem}{\@idxitem \hspace*{3\jlreq@mol}} \newcommand{\indexspace}{\par \vskip 1\jlreq@gol \@plus .5\jlreq@gol \@minus .3\jlreq@gol\relax} - %. 前付,後付,付録 + +% \jlreq@matter@heading[restoreする見出し一覧を入れる制御綴]{#2@<見出し命令名>に今の見出しの中身を入れる}{生成する制御綴の名前}{設定} +\def\jlreq@matter@heading{\@ifnextchar[{\jlreq@matter@heading@}{\jlreq@matter@heading@[]{}}} +\def\jlreq@matter@heading@[#1]#2#3#4{% + \begingroup + \def\jlreq@restoreheadings{}% 復帰させる見出し名(カンマ区切り) + \def\jlreq@headingscmds{}% \ModiryHeadings**,\RenewHeadings**の塊 + \jlreq@parsekeyval@nokey{% + % ##1 = 見出し命令名, ##2 = 設定 + \def\jlreq@headingsettings{}% Modifyする中身 + \def\jlreq@declaretype{Modify}% + \def\jlreq@level{}% + \jlreq@tempatrue % restore + \jlreq@parsekeyval@nokey{% + % 各見出し命令に対する設定を解析 + \ifjlreq@parsekeyval@nokey@novalue{% + \eappto\jlreq@headingsettings{\unexpanded{####1}}% + }{% + \jlreq@switch{####1}{% + {heading_type}{% + \lowercase{\def\jlreq@tempa{####2}}% + \jlreq@switch{\jlreq@tempa}{ + {tobira}{\def\jlreq@declaretype{RenewTobira}} + {block}{\def\jlreq@declaretype{RenewBlock}} + {runin}{\def\jlreq@declaretype{RenewRunin}} + {cutin}{\def\jlreq@declaretype{RenewCutin}} + {modify}{\def\jlreq@declaretype{Modify}} + {\ClassError{jlreq}{Unknown heading type `####2'}{\@ehc}} + }% + } + {heading_level}{\def\jlreq@level{####2}} + {% + \jlreq@ifempty{#1}{\@firstofone}{% + \ifthenelse{\equal{####1}{restore}}{% + \csname jlreq@tempa####2\endcsname\@gobble + }{\@firstofone}% + }% + {\eappto\jlreq@headingsettings{\ifx\jlreq@headingsettings\@empty\else ,\fi\unexpanded{####1={####2}}}}% + }% + }% + }% + }{##2}% + \jlreq@ifempty{#1}{}{% + \ifjlreq@tempa + \eappto\jlreq@headingscmds{\noexpand\SaveHeading{\unexpanded{##1}}{\expandonce{\csname #2@##1\endcsname}}}% + \eappto\jlreq@restoreheadings{\ifx\jlreq@restoreheadings\@empty\else ,\fi\unexpanded{##1}}% + \fi + }% + % \jlreq@declareに\ModifyHeadingか\Renew***Headingを入れる + \ifx\jlreq@\@empty\else + \edef\jlreq@declare{\expandonce{\csname\jlreq@declaretype Heading\endcsname}{##1}}% + \ifthenelse{\NOT \equal{\jlreq@declaretype}{Modify}}{% + \ifx\jlreq@level\@empty + % \frontmatter時でのレベルを引用する. + \edef\jlreq@declare{% + \unexpanded{\edef\jlreq@tempa}{\noexpand\unexpanded{\expandonce{\jlreq@declare}}{\noexpand\expandonce{\expandonce{\csname jlreq@heading@level@##1\endcsname}}}}% + \noexpand\jlreq@tempa + }% + \else + \eappto\jlreq@declare{{\expandonce{\jlreq@level}}}% + \fi + }{}% + \eappto\jlreq@headingscmds{\expandonce{\jlreq@declare}{\expandonce{\jlreq@headingsettings}}}% + \fi + }{#4}% + \edef\jlreq@do{% + \unexpanded{\def#3}{% + \expandonce{\jlreq@headingscmds}% + \jlreq@ifempty{#1}{}{\unexpanded{\def#1}{\expandonce{\jlreq@restoreheadings}}}% + }% + }% + \expandafter\endgroup + \jlreq@do +} + +\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}% + }{#2}% +} + \ifthenelse{\equal{\jlreq@article@type}{book}}{ +% \tracingmacros=1 \newif\if@mainmatter \@mainmattertrue + \jlreq@jlreqsetup@add{frontmatter_pagebreak}{% + \edef\jlreq@frontmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}% + } + \jlreq@jlreqsetup@add{frontmatter_counter}{% + \def\jlreq@frontmatter@counter{}% + \def\jlreq@tempa{}% 復帰させるカウンタ名リスト + \jlreq@parsekeyval@nokey{% + \def\jlreq@tempb{}% 中身 + \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}}}% + }% + \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_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}% + }% + }% + }{#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{% + \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}{% - \cleardoublepage + \jlreq@frontmatter@precode + \jlreq@frontmatter@pagebreak \@mainmatterfalse - \let\jlreq@pagestyle@atmain\jlreq@current@pagestyle - \SaveHeading{chapter}{\jlreq@heading@chapter@atmain}% - \ModifyHeading{chapter}{label_format={},after_label_space=0pt}% - \pagestyle{plain}% - \pagenumbering{roman}} + \let\jlreq@frontmatter@savedpagestyle\@undefined + \jlreq@frontmatter@pagestyle + \jlreq@frontmatter@counter + \jlreq@frontmatter@heading + \expandafter\gdef\expandafter\thepage\expandafter{\csname @\jlreq@pagination@frontmatterstyle\endcsname\c@page}% + \jlreq@frontmatter@postcode + } + \def\jlreq@frontmatter@restorecounters{} + \def\jlreq@frontmatter@restoreheadings{} + \def\jlreq@frontmatter@restorecommands{} + \jlreq@jlreqsetup@add{mainmatter_pagebreak}{% + \edef\jlreq@mainmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}% + } + \jlreq@jlreqsetup@add{mainmatter_pagestyle}{% + \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}{% - \cleardoublepage + \jlreq@mainmatter@precode + \jlreq@mainmatter@pagebreak \@mainmattertrue - \@ifundefined{jlreq@pagestyle@atmain}{}{% - \expandafter\pagestyle\expandafter{\jlreq@pagestyle@atmain}% + \@ifundefined{jlreq@frontmatter@savedpagestyle}{% + \jlreq@mainmatter@pagestyle + }{% + \expandafter\pagestyle\expandafter{\jlreq@frontmatter@savedpagestyle}% }% - \@ifundefined{jlreq@heading@chapter@atmain}{}{\jlreq@heading@chapter@atmain}% - \setcounter{chapter}{0}% - \pagenumbering{arabic}} - \newcommand*{\backmatter}{% - \if@openright - \cleardoublepage - \else - \clearpage - \fi - \ifthenelse{\equal{\jlreq@article@type}{article}}{}{%book, report - \SaveHeading{chapter}{\jlreq@heading@chapter@atmain}% - \ModifyHeading{chapter}{label_format={},after_label_space=0pt}% + \@for\jlreq@tempa:=\jlreq@frontmatter@restorecounters\do{% + \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} + \jlreq@mainmatter@heading + \@for\jlreq@tempa:=\jlreq@frontmatter@restorecommands\do{% + \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}{% + \edef\jlreq@backmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}% + } + \jlreq@jlreqsetup@add{backmatter_pagestyle}{% + \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{% + \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}} + }% }% - \pagestyle{plain}% + } + \newcommand*{\backmatter}{% + \jlreq@backmatter@precode + \jlreq@backmatter@pagebreak + \jlreq@backmatter@pagestyle \@mainmatterfalse - \setcounter{chapter}{0}} + \jlreq@backmatter@counter + \jlreq@backmatter@heading + \expandafter\jlreq@pagination@backmatterpagecommand\expandafter{\jlreq@pagination@backmatterstyle}% + \jlreq@backmatter@postcode + } + \jlreqsetup{ + frontmatter_pagebreak = cleardoublepage, + frontmatter_pagestyle = {plain,restore = true}, + frontmatter_heading = {chapter={number=false, restore = true}}, + frontmatter_counter = { + figure = {the = \arabic{figure},restore = true}, + table = {the = \arabic{table},restore = true}, + }, + frontmatter_precode = {}, + frontmatter_postcode = {}, + } + \jlreqsetup{ + mainmatter_pagebreak = cleardoublepage, + mainmatter_counter = { + chapter = {value = 0}, + }, + mainmatter_pagestyle = {}, + mainmatter_heading = {}, + mainmatter_precode = {}, + mainmatter_postcode = {}, + } + \if@openright + \jlreqsetup{backmatter_pagebreak=cleardoublepage} + \else + \jlreqsetup{backmatter_pagebreak=clearpage} + \fi + \jlreqsetup{ + backmatter_pagestyle = plain, + backmatter_counter = { + chapter={value = 0, the = {}}, + figure = {value = 0, the = {\arabic{figure}}}, + table = {value = 0, the = {\arabic{table}}} + }, + backmatter_heading = {chapter = {number = false}}, + backmatter_precode = {}, + backmatter_postcode = {} + } + \jlreqsetup{ + frontmatter_pagination = {independent,roman}, + mainmatter_pagination = {arabic}, + backmatter_pagination = {continuous,arabic}, + } }{} -\newcommand*{\appendix}{\par - \setcounter{section}{0}% + +\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}{% + \par + \jlreq@appendix@precode + \jlreq@appendix@counter + \jlreq@appendix@heading + \jlreq@appendix@postcode } \ifthenelse{\equal{\jlreq@article@type}{article}}{ - \appto\appendix{% - \setcounter{subsection}{0}% - \if@tate - \def\thesection{\jlreq@rensuji{\Alph{section}}}% - \else - \def\thesection{\Alph{section}}% - \fi - } + \if@tate + \jlreqsetup{ + appendix_counter = { + section = {value = 0, the = {\jlreq@rensuji{\Alph{section}}}}, + subsection = {value = 0}, + } + } + \else + \jlreqsetup{ + appendix_counter = { + section = {value = 0, the = {\Alph{chapter}}}, + subsection = {value = 0}, + } + } + \fi + \jlreqsetup{appendix_heading = {},appendix_precode = {},appendix_postcode = {}} }{%book, report - \appto\appendix{% - \setcounter{chapter}{0}% - \if@tate - \def\thechapter{\jlreq@rensuji{\Alph{chapter}}}% - \else - \def\thechapter{\Alph{chapter}}% - \fi - \ModifyHeading{chapter}{label_format={付録\thechapter}}% - \ifx\jlreq@current@pagestyle\@undefined\else - \ifthenelse{\equal{\jlreq@current@pagestyle}{headings}}{% - \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}% - \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}% - }{}% - \fi - } + \if@tate + \jlreqsetup{ + appendix_counter = { + chapter = {value = 0, the = {\jlreq@rensuji{\Alph{chapter}}}}, + } + } + \else + \jlreqsetup{ + appendix_counter = { + chapter = {value = 0, the = {\Alph{chapter}}}, + } + } + \fi + \jlreqsetup{ + appendix_heading = { + chapter = {label_format = {付録\thechapter}} + }, + appendix_postcode = {% + \ifthenelse{\equal{\jlreq@current@pagestyle}{headings}}{% + \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}% + \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}% + }{}% + }, + appendix_precode = {} + } } %. その他諸々 -- cgit v1.2.3