diff options
author | Karl Berry <karl@freefriends.org> | 2017-04-29 22:22:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-04-29 22:22:55 +0000 |
commit | a64b4791da7a1ea0fb4652e5a729eac97378f936 (patch) | |
tree | 9259c032947abef7879470656be9a1371d564f01 /Master/texmf-dist | |
parent | 3f99609b0e6bb17494a6f8bd9d49033f50762c74 (diff) |
jlreq (29apr17)
git-svn-id: svn://tug.org/texlive/trunk@44117 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
54 files changed, 808 insertions, 578 deletions
diff --git a/Master/texmf-dist/doc/latex/jlreq/README-ja.md b/Master/texmf-dist/doc/latex/jlreq/README-ja.md index ed830827ac8..887500f7492 100644 --- a/Master/texmf-dist/doc/latex/jlreq/README-ja.md +++ b/Master/texmf-dist/doc/latex/jlreq/README-ja.md @@ -56,11 +56,17 @@ ``` です.`&`が省略されている場合は自動で調整されます. +### `\tatechuyoko` +縦中横を出力します.`\tatechuyoko{<文字列>}`とします.縦書きでない場所で使うとエラーになります. + +### `\jafontsize` +和文フォントサイズを指定する`\fontsize`です.クラスオプションで`jafontscale=0.9`とされている場合,`\fontsize{9pt}{15pt}`とすると和文フォントのサイズは`8.1pt`となりますが,`\jafontsize{9pt}{15pt}`とすると`9pt`となります.(欧文フォントサイズは`10pt`となる.)なお,第二引数は`\fontsize`の第二引数と全く同じです. + ### `\jlreqsetup` -設定用命令です.プリアンブルでしか使えません.文書に対する殆どの設定はクラスオプションにより行いますが,一部の設定はこの命令を通じて行います. +設定用命令です.プリアンブルでしか使えません.文書に対する設定は,クラスオプションとして行うか`\jlreqsetup`を通じて行うかします.どちらで設定するかは設定項目によります. ### その他 -* ルビは提供されません.[PXrubrica](https://github.com/zr-tex8r/PXrubrica)(pLaTeX / upLaTeX)またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います. +* ルビは提供されません.[PXrubrica](https://github.com/zr-tex8r/PXrubrica)またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います. * 日本語組版処理の要件2.3.2.dによれば,二段組の最後のページの各段の行数は揃えることが望ましいとされていますが,この処理は行われません.`nidanfloat`パッケージを使い, ```latex \usepackage[balance]{nidanfloat} @@ -70,56 +76,67 @@ ## 各種設計 設計はクラスオプションまたは`\jlreqsetup`によりkeyval形式で行います.以下では次の用法を使います. -* `[A/B]`: AまたはBです.`[A/B/C]`等も同様. -* `<寸法>`: TeXが認識する寸法です.簡単な式(10pt+10ptのような)を使うこともできます.また,クラスオプションでは,場合によっては次のような特殊な値を使うこともできます.(これらはpLaTeX / upLaTeXではもとから利用可能ですが,LuaLaTeXでも利用可能なように処理されています.)`\jlreqsetup`内のような場所では,常に`\zw`や`\zh`により全角幅が記述できます.以下,たとえば`Q`が利用可能な場合は`<寸法;Q>`のように記述します. - - `Q`: 0.25mmと解釈されます. - - `zw`, `zh`: 全角幅として解釈されます. +* `[A/B]`:AまたはBです.`[A/B/C]`等も同様. +* `<寸法>`:TeXが認識する寸法です.簡単な式(`10pt+10pt`のような)を使うこともできます.また,クラスオプションでは,場合によっては次のような特殊な値を使うこともできます.(これらはpLaTeX / upLaTeXではもとから利用可能ですが,LuaLaTeXでも利用可能なように処理されています.)`\jlreqsetup`内のような場所では,常に`\zw`や`\zh`により全角幅が記述できます.以下,たとえば`Q`が利用可能な場合は`<寸法;Q>`のように記述します. + - `Q`:0.25mmと解釈されます. + - `zw`, `zh`:全角幅として解釈されます. ### 基本版面 クラスオプションです. -* `paper=[<紙サイズ名>/{<寸法>,<寸法>}]`:紙サイズです.紙サイズ名はa0からa10,b0からb10,c2からc8を指定できます.B列はJIS B列です.また,`{<縦>,<横>}`と直接寸法を指定することもできます. -* `fontsize=<寸法;Q>` : フォントサイズ.デフォルトは10pt. -* `line_length=<寸法;zw,zh>` : 一行の長さ.デフォルトは紙の縦幅の0.75倍.実際の値は一文字の長さの整数倍になるように補正されます. -* `number_of_lines=<自然数値>` : 一ページの行数.デフォルトは紙の横幅の0.75倍になるような値. -* `gutter=<寸法;zw,zh>` : のどの余白の大きさ. +* `paper=[<紙サイズ名>/{<寸法>,<寸法>}]`:紙サイズです.紙サイズ名はa0からa10,b0からb10,c2からc8を指定できます.B列はJIS B列です.また,`{<横>,<縦>}`と直接寸法を指定することもできます. +* `fontsize=<寸法;Q>`:欧文フォントサイズ.デフォルトは10pt. +* `jafontsize=<寸法;Q>`:和文フォントサイズ. +* `jafontscale=<実数値>`:欧文フォントと和文フォントの比(和文 / 欧文).`fontsize`と`jafontsize`が両方指定されている場合は無視される.デフォルトは1. +* `line_length=<寸法;zw,zh>`:一行の長さ.デフォルトは紙の縦幅の0.75倍.実際の値は一文字の長さの整数倍になるように補正されます. +* `number_of_lines=<自然数値>`:一ページの行数.デフォルトは紙の横幅の0.75倍になるような値. +* `gutter=<寸法;zw,zh>`:のどの余白の大きさ. - `tate`無指定時は奇数ページ左,偶数ページ右の余白 - `tate`指定時は奇数ページ右,偶数ページ左の余白 - `twoside`が指定されていない時は,常に奇数ページ扱いで余白が設定される -* `head_space=<寸法;zw,zh>` : 天の空き量.デフォルトは中央寄せになるような値. -* `foot_space=<寸法;zw,zh>` : 地の空き量.デフォルトは中央寄せになるような値. -* `baselineskip=<寸法;Q,zw,zh>` : 行送り.デフォルトはfontsizeの1.7倍. -* `linegap=<寸法;Q,zw,zh>` : 行間. +* `head_space=<寸法;zw,zh>`:天の空き量.デフォルトは中央寄せになるような値. +* `foot_space=<寸法;zw,zh>`:地の空き量.デフォルトは中央寄せになるような値. +* `baselineskip=<寸法;Q,zw,zh>`:行送り.デフォルトは`jafontsize`の1.7倍. +* `linegap=<寸法;Q,zw,zh>`:行間. * `headfoot_sidemargin=<寸法;zw,zh>`:柱やノンブルの左右の空き. -* `column_gap=<寸法;zw,zh>`: 段間(twocolumn指定時のみ). +* `column_gap=<寸法;zw,zh>`:段間(`twocolumn`指定時のみ). +* `sidenote_width=<寸法;zw,zh>`:傍注の幅を指定します. ### 組み方 クラスオプションです. -* `open_bracket_pos=[zenkaku_tentsuki/zenkakunibu_nibu/nibu_tentsuki]`: 始め括弧が行頭に来た際の配置方法を指定します.それぞれ段落開始全角折り返し行頭天付き(デフォルト),段落開始全角二分折り返し行頭二分,段落開始二分折り返し行頭天付きを意味します. -* `hanging_punctuation`: ぶら下げ組をします. +* `open_bracket_pos=[zenkaku_tentsuki/zenkakunibu_nibu/nibu_tentsuki]`:始め括弧が行頭に来た際の配置方法を指定します.それぞれ段落開始全角折り返し行頭天付き(デフォルト),段落開始全角二分折り返し行頭二分,段落開始二分折り返し行頭天付きを意味します. +* `hanging_punctuation`:ぶら下げ組をします. ### 注関係 -* `reference_mark=[inline/interlinear]`: 合印の配置方法を指定します.`inline`にすると該当項目の後ろの行中に配置します.`interlinear`を指定すると該当項目の上(横組)または右(縦組)に配置します.クラスオプションです. -* `sidenote_type=[number/symbol]`: クラスオプションです.傍注と本文との対応の方法を指定します.`number`が規定で,注の位置に通し番号が入り,それにより対応が示されます.`symbol`とすると,注の位置に特定の記号が入り,また注がついている単語が強調されます.ここに入る記号と単語の強調は`\jlreqsetup`に次を渡すことで指定します. - - - `sidenote_symbol=<記号>`: 注の位置に入る記号.デフォルト* - - `sidenote_keyword_font=<命令>`: 注のついている単語のフォント指定.デフォルトは無し(強調しない) +`\jlreqsetup`で指定します. -* `sidenote_width=<寸法;zw,zh>`: 傍注の幅を指定します.基本版面の設定に合わせて設定してください.クラスオプションです. -* `endnote_position=[headings/paragraph/{_<見出し名1>,_<見出し名2>,...}]`:後注の出力場所を指定します.`headings`は各見出しの直前(デフォルト),`paragraph`は改段落の際に出力します.また,`endnote_position={_chapter,_section}`とすると,`\chapter`と`\section`の直前に出力します.クラスオプションです. +* `reference_mark=[inline/interlinear]`:合印の配置方法を指定します.`inline`にすると該当項目の後ろの行中に配置します.`interlinear`を指定すると該当項目の上(横組)または右(縦組)に配置します. +* `sidenote_type=[number/symbol]`:傍注と本文との対応の方法を指定します.`number`が規定で,注の位置に通し番号が入り,それにより対応が示されます.`symbol`とすると,注の位置に特定の記号が入り,また注がついている単語が強調されます. +* `sidenote_symbol=<記号>`:`sidenote_symbol=symbol`の時に,注の位置に入る記号.デフォルト* +* `sidenote_keyword_font=<命令>`:`sidenote_symbol=symbol`の時に,注のついている単語のフォント指定.デフォルトは無し(強調しない) +* `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=<命令>`:キャプションのラベルのフォントを指定します. ### 引用 -`quote / quotation / verse`環境の挙動をクラスオプションで指定できます. -* `quote_indent=<寸法;zw,zh>`: 字下げを指定します.デフォルトは2zwです.一行の長さが文字サイズの整数倍になるように調整されます. -* `quote_end_indent=<寸法;zw,zh>`: 字上げを指定します.デフォルトは0zwです. -* `quote_beforeafter_space=<寸法>`: 前後の空きを指定します.`quote_beforeafter_space=1\baselineskip`とすると一行あきます. -* `quote_fontsize=[normalsize/small/footnotesize/scriptsize/tiny]`: フォントサイズを指定します. +`quote / quotation / verse`環境の挙動を`\jlreqsetup`で指定できます. +* `quote_indent=<寸法>`:字下げを指定します.デフォルトは2zwです.一行の長さが文字サイズの整数倍になるように調整されます. +* `quote_end_indent=<寸法>`:字上げを指定します.デフォルトは0zwです. +* `quote_beforeafter_space=<寸法>`:前後の空きを指定します.`quote_beforeafter_space=1\baselineskip`とすると一行あきます. +* `quote_fontsize=[normalsize/small/footnotesize/scriptsize/tiny]`:フォントサイズを指定します. + +### 箇条書き +`\jlreqsetup`で指定します. +* `itemization_beforeafter_space=<寸法>`:箇条書きの前後の空きを指定します. +* `itemization_itemsep=<寸法>`:項目同士の空きを指定します. + +### 定理環境 +`\jlreqsetup`で指定します. +* `theorem_beforeafter_space=<寸法>`:定理環境の前後の空きを指定します. ## 見出し 見出しの設定は,`\Declare***Heading`という命令で行います(***には見出しの種類に応じた文字列が入る).書式はすべて @@ -133,32 +150,32 @@ ### 扉見出し `\DeclareTobiraHeading`で作成します.通常のクラスファイルにおける`\section`等と同じ書式の命令ができます.設定は以下の通り. -* `type=[han/naka]`: `han`だと半扉見出しを,`naka`だと中扉見出しを作ります. -* `pagestyle=<ページスタイル>`: 見出し箇所のページスタイルを指定します. -* `label_format=<書式>`: ラベルを出力する命令を指定します.たとえば`label_format={第\thechapter 章}`のように指定します. -* `format=<書式>`: 実際に出力する書式を指定します.`format={\null\vfil {\Huge\bfseries #1#2}}`のようにします.`#1`はラベルに,`#2`は見出し文字列に置き換えられます. +* `type=[han/naka]`:`han`だと半扉見出しを,`naka`だと中扉見出しを作ります. +* `pagestyle=<ページスタイル>`:見出し箇所のページスタイルを指定します. +* `label_format=<書式>`:ラベルを出力する命令を指定します.たとえば`label_format={第\thechapter 章}`のように指定します. +* `format=<書式>`:実際に出力する書式を指定します.`format={\null\vfil {\Huge\bfseries #1#2}}`のようにします.`#1`はラベルに,`#2`は見出し文字列に置き換えられます. ### 別行見出し `\DeclareBlockHeading`で作成します.`\<命令名>*[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`が副題自身になります. #### インデント関連 * `indent=<寸法/center>` 見出し全体の字下げ量を指定します.`indent=center`とすると見出しを中央寄せします. -* `end_indent=<寸法/center>`: 見出し全体の字上げ量を指定します.`end_indent=center`とすると見出しを中央寄せします. -* `after_label_space=<寸法>`: ラベル後,見出し文字列までの空きを指定します. -* `second_heading_text_indent=<寸法/{寸法,寸法}>`: 見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,`second_heading_text_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.(ラベルがない時は一行目の頭が起点.)また,`second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}`という指定をすると,ラベルの有無に応じて値を変更することができます.`<ラベルがある時>`の指定ではやはり`*`を使うことができます. -* `subtitle_indent=<寸法>`: 副題のインデント量を指定します.見出し文字列の一行目を起点として指定します. +* `end_indent=<寸法/center>`:見出し全体の字上げ量を指定します.`end_indent=center`とすると見出しを中央寄せします. +* `after_label_space=<寸法>`:ラベル後,見出し文字列までの空きを指定します. +* `second_heading_text_indent=<寸法/{寸法,寸法}>`:見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,`second_heading_text_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.(ラベルがない時は一行目の頭が起点.)また,`second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}`という指定をすると,ラベルの有無に応じて値を変更することができます.`<ラベルがある時>`の指定ではやはり`*`を使うことができます. +* `subtitle_indent=<寸法>`:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します. #### その他 -* `subtitle_break=<true/false>`: 見出し文字列と副題の間を改行するか指定します. -* `allowbreak_if_evenpage=[true/false]`: 見出しが偶数ページにあった場合,その直後の改ページを許可します. -* `pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki]`: 見出し直前の改ページを指定します.それぞれ,改ページ,改丁,改段,なりゆきです. -* `afterindent=[true/false]`: 見出し直後の段落の字下げを行うかを指定します. +* `subtitle_break=<true/false>`:見出し文字列と副題の間を改行するか指定します. +* `allowbreak_if_evenpage=[true/false]`:見出しが偶数ページにあった場合,その直後の改ページを許可します. +* `pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki]`:見出し直前の改ページを指定します.それぞれ,改ページ,改丁,改段,なりゆきです. +* `afterindent=[true/false]`:見出し直後の段落の字下げを行うかを指定します. #### 行取り 行取りの指定は以下のいずれかの方法で行うことができます. @@ -170,16 +187,16 @@ ### 同行見出し `\DeclareRuninHeading`で作成します.通常の文書クラスにおける`\section`と同様の,`\<命令名>*[running head]{見出し文字列}`という書式の命令が作成されます.設定は以下の通り. -* `font=<命令>`: 見出しのフォントを指定します. +* `font=<命令>`:見出しのフォントを指定します. * `indent=<寸法>` 見出し文字列全体の字下げ量を指定します. ### 窓見出し `\DeclareCutinHeading`で作成します.`\<命令名>{見出し文字列}`という書式の命令を作成します.設定は以下の通り. -* `font=<命令>`: 見出しのフォントを指定します. -* `indent=<寸法>`: 見出し全体の字下げ量を指定します. -* `after_space=<寸法>`: 見出しと本文との間の空きを指定します. -* `onelinemax=<寸法>`, `twolinemax=<寸法>`: 見出し文字列の長さが`onelinemax`以下ならば一行で,`twolinemax`以下ならば二行で窓見出しを出力します.それ以上の場合は三行です.デフォルトはそれぞれ6文字,20文字の長さ. +* `font=<命令>`:見出しのフォントを指定します. +* `indent=<寸法>`:見出し全体の字下げ量を指定します. +* `after_space=<寸法>`:見出しと本文との間の空きを指定します. +* `onelinemax=<寸法>`, `twolinemax=<寸法>`:見出し文字列の長さが`onelinemax`以下ならば一行で,`twolinemax`以下ならば二行で窓見出しを出力します.それ以上の場合は三行です.デフォルトはそれぞれ6文字,20文字の長さ. ### `\ModifyHeading` 既に(上のどれかを使い)定義された見出し命令の設定を変更します.たとえば @@ -204,19 +221,19 @@ ``` によりページスタイルを定義することができます.柱やノンブルを出力します.設定は以下の通り. -* `yoko`: 横書きで上下に出力します.デフォルト. -* `tate`: 縦書きで小口側に出力します. -* `font=<命令>`: 柱とノンブルのフォントを指定します. -* `running_head_position`, `nombre_position`: 柱とノンブルの位置を指定します.`yoko`か`tate`のどちらが指定されているかで挙動が変わります. +* `yoko`:横書きで上下に出力します.デフォルト. +* `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`が指定されている場合,偶数ページはその逆になります. - `tate`指定時:`<寸法>`が指定できます.`running_head_position`は柱の天からの下げ量を,`nombre_position`はノンブルの地からの上げ量を指定します. -* `nombre=<書式>`: 出力するノンブルを指定します.デフォルトは`\thepage`. +* `nombre=<書式>`:出力するノンブルを指定します.デフォルトは`\thepage`. * `odd_running_head=<書式>`,`even_running_head=<書式>`:それぞれ奇数ページ,偶数ページの柱を指定します.`_section`のように`_`から始まる名前を指定すると,対応する見出しを出力します.(`_section`だと現在の`\section`を出力する.) `\ModifyPageStyle`により既存のページスタイルを改変することが可能です. ## その他 -* クラスオプション`jlreq_warnings`を渡されると,日本語組版処理の要件に反する設定が行われた場合に警告がされます. +* クラスオプション`jlreq_notes`が渡されると,日本語組版処理の記述と矛盾する設定が行われた場合に通知がされます. ## ライセンス このパッケージは二条項BSDライセンスの元で配布されています.詳しくは[LICENSE](LICENSE)をご覧ください. @@ -240,7 +257,14 @@ * 2017-04-04 - バグ修正. - `\DeclarePageStyle`に`tate`と`font`オプションを追加. - +* 2017-04-29 + - バグ修正 + - `jafontsize`と`jafontscale`をクラスオプションに,また`\jafontsize`を追加. + - `\tatechuyoko`を追加. + - クラスオプション`jlreq_warnings`を`jlreq_notes`に変更. + - いくつかのクラスオプションを`\jlreqsetup`に移動. + - いくつかのオプションを`\jlreqsetup`に追加. + - クラスオプションの`paper={<縦>,<横>}`を`paper={<横>,<縦>}`に変更. -------------- Noriyuki Abe diff --git a/Master/texmf-dist/doc/latex/jlreq/README.md b/Master/texmf-dist/doc/latex/jlreq/README.md index 4059b95aff8..1819f169271 100644 --- a/Master/texmf-dist/doc/latex/jlreq/README.md +++ b/Master/texmf-dist/doc/latex/jlreq/README.md @@ -38,6 +38,14 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS * 2017-04-04 - Fix a bug. - Add options `tate` and `font` to `\DeclarePageStyle`. +* 2017-04-29 + - Fix bugs. + - Add `jafontsize` and `jafontscale` options and `\jafontsize`. + - Add `\tatechuyoko`. + - `jlreq_warnings` -> `jlreq_notes` (class option). + - Move some class options to `\jlreqsetup`. + - Add some options to `\jlreqsetup`. + - paper={<height>,<width>} -> paper={<width>,<height>}. -------------- diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html index 946406f4391..5d06e9ab5b1 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq-ja.html @@ -60,10 +60,10 @@ code > span.fl { color: #40a070; } /* Float */ code > span.ch { color: #4070a0; } /* Char */ code > span.st { color: #4070a0; } /* String */ - code > span.co { color: #60a0b0; } /* Comment */ + 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: #08307E; } /* Function */ + 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 */ @@ -74,7 +74,7 @@ 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: #7E0000; } /* BuiltIn */ + code > span.bu { color: #0040FF; } /* BuiltIn */ code > span.ex { } /* Extension */ code > span.pp { color: #bc7a00; } /* Preprocessor */ code > span.at { color: #7d9029; } /* Attribute */ @@ -123,11 +123,15 @@ <p>割注を出力します.行分割位置などは自動で計算されます.(複数回のコンパイルが必要.)<code>\warichu*</code>ではこれらの位置を手動で指定できます.書式は</p> <pre><code>\warichu*{(一行目前) & (一行目後)\\ (二行目前) & (二行目後)...}</code></pre> <p>です.<code>&</code>が省略されている場合は自動で調整されます.</p> +<h3 id="tatechuyoko"><code>\tatechuyoko</code></h3> +<p>縦中横を出力します.<code>\tatechuyoko{<文字列>}</code>とします.縦書きでない場所で使うとエラーになります.</p> +<h3 id="jafontsize"><code>\jafontsize</code></h3> +<p>和文フォントサイズを指定する<code>\fontsize</code>です.クラスオプションで<code>jafontscale=0.9</code>とされている場合,<code>\fontsize{9pt}{15pt}</code>とすると和文フォントのサイズは<code>8.1pt</code>となりますが,<code>\jafontsize{9pt}{15pt}</code>とすると<code>9pt</code>となります.(欧文フォントサイズは<code>10pt</code>となる.)なお,第二引数は<code>\fontsize</code>の第二引数と全く同じです.</p> <h3 id="jlreqsetup"><code>\jlreqsetup</code></h3> -<p>設定用命令です.プリアンブルでしか使えません.文書に対する殆どの設定はクラスオプションにより行いますが,一部の設定はこの命令を通じて行います.</p> +<p>設定用命令です.プリアンブルでしか使えません.文書に対する設定は,クラスオプションとして行うか<code>\jlreqsetup</code>を通じて行うかします.どちらで設定するかは設定項目によります.</p> <h3>その他</h3> <ul> -<li>ルビは提供されません.<a href="https://github.com/zr-tex8r/PXrubrica">PXrubrica</a>(pLaTeX / upLaTeX)またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います.</li> +<li>ルビは提供されません.<a href="https://github.com/zr-tex8r/PXrubrica">PXrubrica</a>またはluatexja-ruby(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います.</li> <li><p>日本語組版処理の要件2.3.2.dによれば,二段組の最後のページの各段の行数は揃えることが望ましいとされていますが,この処理は行われません.<code>nidanfloat</code>パッケージを使い,</p> <div class="sourceCode"><pre class="sourceCode latex"><code class="sourceCode latex"><span class="bu">\usepackage</span>[balance]{<span class="ex">nidanfloat</span>}</code></pre></div> <p>とするとこの処理が行われます.ただし,最終ページでの<code>\newpage</code>や<code>\clearpage</code>が正しく動作しません.詳しくは<code>nidanfloat</code>パッケージのマニュアルをご覧ください.</p></li> @@ -135,63 +139,75 @@ <h2>各種設計</h2> <p>設計はクラスオプションまたは<code>\jlreqsetup</code>によりkeyval形式で行います.以下では次の用法を使います.</p> <ul> -<li><code>[A/B]</code>: AまたはBです.<code>[A/B/C]</code>等も同様.</li> -<li><code><寸法></code>: TeXが認識する寸法です.簡単な式(10pt+10ptのような)を使うこともできます.また,クラスオプションでは,場合によっては次のような特殊な値を使うこともできます.(これらはpLaTeX / upLaTeXではもとから利用可能ですが,LuaLaTeXでも利用可能なように処理されています.)<code>\jlreqsetup</code>内のような場所では,常に<code>\zw</code>や<code>\zh</code>により全角幅が記述できます.以下,たとえば<code>Q</code>が利用可能な場合は<code><寸法;Q></code>のように記述します. +<li><code>[A/B]</code>:AまたはBです.<code>[A/B/C]</code>等も同様.</li> +<li><code><寸法></code>:TeXが認識する寸法です.簡単な式(<code>10pt+10pt</code>のような)を使うこともできます.また,クラスオプションでは,場合によっては次のような特殊な値を使うこともできます.(これらはpLaTeX / upLaTeXではもとから利用可能ですが,LuaLaTeXでも利用可能なように処理されています.)<code>\jlreqsetup</code>内のような場所では,常に<code>\zw</code>や<code>\zh</code>により全角幅が記述できます.以下,たとえば<code>Q</code>が利用可能な場合は<code><寸法;Q></code>のように記述します. <ul> -<li><code>Q</code>: 0.25mmと解釈されます.</li> -<li><code>zw</code>, <code>zh</code>: 全角幅として解釈されます.</li> +<li><code>Q</code>:0.25mmと解釈されます.</li> +<li><code>zw</code>, <code>zh</code>:全角幅として解釈されます.</li> </ul></li> </ul> <h3>基本版面</h3> <p>クラスオプションです.</p> <ul> -<li><code>paper=[<紙サイズ名>/{<寸法>,<寸法>}]</code>:紙サイズです.紙サイズ名はa0からa10,b0からb10,c2からc8を指定できます.B列はJIS B列です.また,<code>{<縦>,<横>}</code>と直接寸法を指定することもできます.</li> -<li><code>fontsize=<寸法;Q></code> : フォントサイズ.デフォルトは10pt.</li> -<li><code>line_length=<寸法;zw,zh></code> : 一行の長さ.デフォルトは紙の縦幅の0.75倍.実際の値は一文字の長さの整数倍になるように補正されます.</li> -<li><code>number_of_lines=<自然数値></code> : 一ページの行数.デフォルトは紙の横幅の0.75倍になるような値.</li> -<li><code>gutter=<寸法;zw,zh></code> : のどの余白の大きさ. +<li><code>paper=[<紙サイズ名>/{<寸法>,<寸法>}]</code>:紙サイズです.紙サイズ名はa0からa10,b0からb10,c2からc8を指定できます.B列はJIS B列です.また,<code>{<横>,<縦>}</code>と直接寸法を指定することもできます.</li> +<li><code>fontsize=<寸法;Q></code>:欧文フォントサイズ.デフォルトは10pt.</li> +<li><code>jafontsize=<寸法;Q></code>:和文フォントサイズ.</li> +<li><code>jafontscale=<実数値></code>:欧文フォントと和文フォントの比(和文 / 欧文).<code>fontsize</code>と<code>jafontsize</code>が両方指定されている場合は無視される.デフォルトは1.</li> +<li><code>line_length=<寸法;zw,zh></code>:一行の長さ.デフォルトは紙の縦幅の0.75倍.実際の値は一文字の長さの整数倍になるように補正されます.</li> +<li><code>number_of_lines=<自然数値></code>:一ページの行数.デフォルトは紙の横幅の0.75倍になるような値.</li> +<li><code>gutter=<寸法;zw,zh></code>:のどの余白の大きさ. <ul> <li><code>tate</code>無指定時は奇数ページ左,偶数ページ右の余白</li> <li><code>tate</code>指定時は奇数ページ右,偶数ページ左の余白</li> <li><code>twoside</code>が指定されていない時は,常に奇数ページ扱いで余白が設定される</li> </ul></li> -<li><code>head_space=<寸法;zw,zh></code> : 天の空き量.デフォルトは中央寄せになるような値.</li> -<li><code>foot_space=<寸法;zw,zh></code> : 地の空き量.デフォルトは中央寄せになるような値.</li> -<li><code>baselineskip=<寸法;Q,zw,zh></code> : 行送り.デフォルトはfontsizeの1.7倍.</li> -<li><code>linegap=<寸法;Q,zw,zh></code> : 行間.</li> +<li><code>head_space=<寸法;zw,zh></code>:天の空き量.デフォルトは中央寄せになるような値.</li> +<li><code>foot_space=<寸法;zw,zh></code>:地の空き量.デフォルトは中央寄せになるような値.</li> +<li><code>baselineskip=<寸法;Q,zw,zh></code>:行送り.デフォルトは<code>jafontsize</code>の1.7倍.</li> +<li><code>linegap=<寸法;Q,zw,zh></code>:行間.</li> <li><code>headfoot_sidemargin=<寸法;zw,zh></code>:柱やノンブルの左右の空き.</li> -<li><code>column_gap=<寸法;zw,zh></code>: 段間(twocolumn指定時のみ).</li> +<li><code>column_gap=<寸法;zw,zh></code>:段間(<code>twocolumn</code>指定時のみ).</li> +<li><code>sidenote_width=<寸法;zw,zh></code>:傍注の幅を指定します.</li> </ul> <h3>組み方</h3> <p>クラスオプションです.</p> <ul> -<li><code>open_bracket_pos=[zenkaku_tentsuki/zenkakunibu_nibu/nibu_tentsuki]</code>: 始め括弧が行頭に来た際の配置方法を指定します.それぞれ段落開始全角折り返し行頭天付き(デフォルト),段落開始全角二分折り返し行頭二分,段落開始二分折り返し行頭天付きを意味します.</li> -<li><code>hanging_punctuation</code>: ぶら下げ組をします.</li> +<li><code>open_bracket_pos=[zenkaku_tentsuki/zenkakunibu_nibu/nibu_tentsuki]</code>:始め括弧が行頭に来た際の配置方法を指定します.それぞれ段落開始全角折り返し行頭天付き(デフォルト),段落開始全角二分折り返し行頭二分,段落開始二分折り返し行頭天付きを意味します.</li> +<li><code>hanging_punctuation</code>:ぶら下げ組をします.</li> </ul> <h3>注関係</h3> +<p><code>\jlreqsetup</code>で指定します.</p> <ul> -<li><code>reference_mark=[inline/interlinear]</code>: 合印の配置方法を指定します.<code>inline</code>にすると該当項目の後ろの行中に配置します.<code>interlinear</code>を指定すると該当項目の上(横組)または右(縦組)に配置します.クラスオプションです.</li> -<li><p><code>sidenote_type=[number/symbol]</code>: クラスオプションです.傍注と本文との対応の方法を指定します.<code>number</code>が規定で,注の位置に通し番号が入り,それにより対応が示されます.<code>symbol</code>とすると,注の位置に特定の記号が入り,また注がついている単語が強調されます.ここに入る記号と単語の強調は<code>\jlreqsetup</code>に次を渡すことで指定します.</p> -<ul> -<li><code>sidenote_symbol=<記号></code>: 注の位置に入る記号.デフォルト*</li> -<li><code>sidenote_keyword_font=<命令></code>: 注のついている単語のフォント指定.デフォルトは無し(強調しない)</li> -</ul></li> -<li><code>sidenote_width=<寸法;zw,zh></code>: 傍注の幅を指定します.基本版面の設定に合わせて設定してください.クラスオプションです.</li> -<li><p><code>endnote_position=[headings/paragraph/{_<見出し名1>,_<見出し名2>,...}]</code>:後注の出力場所を指定します.<code>headings</code>は各見出しの直前(デフォルト),<code>paragraph</code>は改段落の際に出力します.また,<code>endnote_position={_chapter,_section}</code>とすると,<code>\chapter</code>と<code>\section</code>の直前に出力します.クラスオプションです.</p></li> +<li><code>reference_mark=[inline/interlinear]</code>:合印の配置方法を指定します.<code>inline</code>にすると該当項目の後ろの行中に配置します.<code>interlinear</code>を指定すると該当項目の上(横組)または右(縦組)に配置します.</li> +<li><code>sidenote_type=[number/symbol]</code>:傍注と本文との対応の方法を指定します.<code>number</code>が規定で,注の位置に通し番号が入り,それにより対応が示されます.<code>symbol</code>とすると,注の位置に特定の記号が入り,また注がついている単語が強調されます.</li> +<li><code>sidenote_symbol=<記号></code>:<code>sidenote_symbol=symbol</code>の時に,注の位置に入る記号.デフォルト*</li> +<li><code>sidenote_keyword_font=<命令></code>:<code>sidenote_symbol=symbol</code>の時に,注のついている単語のフォント指定.デフォルトは無し(強調しない)</li> +<li><code>endnote_position=[headings/paragraph/{_<見出し名1>,_<見出し名2>,...}]</code>:後注の出力場所を指定します.<code>headings</code>は各見出しの直前(デフォルト),<code>paragraph</code>は改段落の際に出力します.また,<code>endnote_position={_chapter,_section}</code>とすると,<code>\chapter</code>と<code>\section</code>の直前に出力します.</li> </ul> <h3>キャプション</h3> <p>図表のキャプションを<code>\jlreqsetup</code>で変更できます.</p> <ul> -<li><code>caption_font=<命令></code>: キャプション自身のフォントを指定します.</li> -<li><code>caption_label_font=<命令></code>: キャプションのラベルのフォントを指定します.</li> +<li><code>caption_font=<命令></code>:キャプション自身のフォントを指定します.</li> +<li><code>caption_label_font=<命令></code>:キャプションのラベルのフォントを指定します.</li> </ul> <h3>引用</h3> -<p><code>quote / quotation / verse</code>環境の挙動をクラスオプションで指定できます.</p> +<p><code>quote / quotation / verse</code>環境の挙動を<code>\jlreqsetup</code>で指定できます.</p> +<ul> +<li><code>quote_indent=<寸法></code>:字下げを指定します.デフォルトは2zwです.一行の長さが文字サイズの整数倍になるように調整されます.</li> +<li><code>quote_end_indent=<寸法></code>:字上げを指定します.デフォルトは0zwです.</li> +<li><code>quote_beforeafter_space=<寸法></code>:前後の空きを指定します.<code>quote_beforeafter_space=1\baselineskip</code>とすると一行あきます.</li> +<li><code>quote_fontsize=[normalsize/small/footnotesize/scriptsize/tiny]</code>:フォントサイズを指定します.</li> +</ul> +<h3>箇条書き</h3> +<p><code>\jlreqsetup</code>で指定します.</p> <ul> -<li><code>quote_indent=<寸法;zw,zh></code>: 字下げを指定します.デフォルトは2zwです.一行の長さが文字サイズの整数倍になるように調整されます.</li> -<li><code>quote_end_indent=<寸法;zw,zh></code>: 字上げを指定します.デフォルトは0zwです.</li> -<li><code>quote_beforeafter_space=<寸法></code>: 前後の空きを指定します.<code>quote_beforeafter_space=1\baselineskip</code>とすると一行あきます.</li> -<li><code>quote_fontsize=[normalsize/small/footnotesize/scriptsize/tiny]</code>: フォントサイズを指定します.</li> +<li><code>itemization_beforeafter_space=<寸法></code>:箇条書きの前後の空きを指定します.</li> +<li><code>itemization_itemsep=<寸法></code>:項目同士の空きを指定します.</li> +</ul> +<h3>定理環境</h3> +<p><code>\jlreqsetup</code>で指定します.</p> +<ul> +<li><code>theorem_beforeafter_space=<寸法></code>:定理環境の前後の空きを指定します.</li> </ul> <h2>見出し</h2> <p>見出しの設定は,<code>\Declare***Heading</code>という命令で行います(***には見出しの種類に応じた文字列が入る).書式はすべて</p> @@ -200,34 +216,34 @@ <h3>扉見出し</h3> <p><code>\DeclareTobiraHeading</code>で作成します.通常のクラスファイルにおける<code>\section</code>等と同じ書式の命令ができます.設定は以下の通り.</p> <ul> -<li><code>type=[han/naka]</code>: <code>han</code>だと半扉見出しを,<code>naka</code>だと中扉見出しを作ります.</li> -<li><code>pagestyle=<ページスタイル></code>: 見出し箇所のページスタイルを指定します.</li> -<li><code>label_format=<書式></code>: ラベルを出力する命令を指定します.たとえば<code>label_format={第\thechapter 章}</code>のように指定します.</li> -<li><code>format=<書式></code>: 実際に出力する書式を指定します.<code>format={\null\vfil {\Huge\bfseries #1#2}}</code>のようにします.<code>#1</code>はラベルに,<code>#2</code>は見出し文字列に置き換えられます.</li> +<li><code>type=[han/naka]</code>:<code>han</code>だと半扉見出しを,<code>naka</code>だと中扉見出しを作ります.</li> +<li><code>pagestyle=<ページスタイル></code>:見出し箇所のページスタイルを指定します.</li> +<li><code>label_format=<書式></code>:ラベルを出力する命令を指定します.たとえば<code>label_format={第\thechapter 章}</code>のように指定します.</li> +<li><code>format=<書式></code>:実際に出力する書式を指定します.<code>format={\null\vfil {\Huge\bfseries #1#2}}</code>のようにします.<code>#1</code>はラベルに,<code>#2</code>は見出し文字列に置き換えられます.</li> </ul> <h3>別行見出し</h3> <p><code>\DeclareBlockHeading</code>で作成します.<code>\<命令名>*[running head]{見出し文字列}[副題]</code>という書式の命令を作成します.設定は以下の通り.</p> <h4>書式関連</h4> <ul> -<li><code>font=<命令></code>: 見出しのフォントを指定します.</li> -<li><code>subtitle_font=<命令></code>: 副題のフォントを指定します.</li> -<li><code>label_format=<命令></code>: ラベルのフォーマットを指定します.<code>label_format={第\thechapter 章}</code>などのようにします.</li> -<li><code>subtitle_format=<命令></code>: 副題のフォーマットを指定します.<code>subtitle_format={「#1」}</code>のようにします.<code>#1</code>が副題自身になります.</li> +<li><code>font=<命令></code>:見出しのフォントを指定します.</li> +<li><code>subtitle_font=<命令></code>:副題のフォントを指定します.</li> +<li><code>label_format=<命令></code>:ラベルのフォーマットを指定します.<code>label_format={第\thechapter 章}</code>などのようにします.</li> +<li><code>subtitle_format=<命令></code>:副題のフォーマットを指定します.<code>subtitle_format={「#1」}</code>のようにします.<code>#1</code>が副題自身になります.</li> </ul> <h4>インデント関連</h4> <ul> <li><code>indent=<寸法/center></code> 見出し全体の字下げ量を指定します.<code>indent=center</code>とすると見出しを中央寄せします.</li> -<li><code>end_indent=<寸法/center></code>: 見出し全体の字上げ量を指定します.<code>end_indent=center</code>とすると見出しを中央寄せします.</li> -<li><code>after_label_space=<寸法></code>: ラベル後,見出し文字列までの空きを指定します.</li> -<li><code>second_heading_text_indent=<寸法/{寸法,寸法}></code>: 見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,<code>second_heading_text_indent=*1\zw</code>のように先頭に<code>*</code>をつけるとラベルの頭を起点としての指定になります.(ラベルがない時は一行目の頭が起点.)また,<code>second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}</code>という指定をすると,ラベルの有無に応じて値を変更することができます.<code><ラベルがある時></code>の指定ではやはり<code>*</code>を使うことができます.</li> -<li><code>subtitle_indent=<寸法></code>: 副題のインデント量を指定します.見出し文字列の一行目を起点として指定します.</li> +<li><code>end_indent=<寸法/center></code>:見出し全体の字上げ量を指定します.<code>end_indent=center</code>とすると見出しを中央寄せします.</li> +<li><code>after_label_space=<寸法></code>:ラベル後,見出し文字列までの空きを指定します.</li> +<li><code>second_heading_text_indent=<寸法/{寸法,寸法}></code>:見出し文字列の二行目以降のインデントを指定します.一行目の頭を起点として指定しますが,<code>second_heading_text_indent=*1\zw</code>のように先頭に<code>*</code>をつけるとラベルの頭を起点としての指定になります.(ラベルがない時は一行目の頭が起点.)また,<code>second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}</code>という指定をすると,ラベルの有無に応じて値を変更することができます.<code><ラベルがある時></code>の指定ではやはり<code>*</code>を使うことができます.</li> +<li><code>subtitle_indent=<寸法></code>:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します.</li> </ul> <h4 id="-1">その他</h4> <ul> -<li><code>subtitle_break=<true/false></code>: 見出し文字列と副題の間を改行するか指定します.</li> -<li><code>allowbreak_if_evenpage=[true/false]</code>: 見出しが偶数ページにあった場合,その直後の改ページを許可します.</li> -<li><code>pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki]</code>: 見出し直前の改ページを指定します.それぞれ,改ページ,改丁,改段,なりゆきです.</li> -<li><code>afterindent=[true/false]</code>: 見出し直後の段落の字下げを行うかを指定します.</li> +<li><code>subtitle_break=<true/false></code>:見出し文字列と副題の間を改行するか指定します.</li> +<li><code>allowbreak_if_evenpage=[true/false]</code>:見出しが偶数ページにあった場合,その直後の改ページを許可します.</li> +<li><code>pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki]</code>:見出し直前の改ページを指定します.それぞれ,改ページ,改丁,改段,なりゆきです.</li> +<li><code>afterindent=[true/false]</code>:見出し直後の段落の字下げを行うかを指定します.</li> </ul> <h4>行取り</h4> <p>行取りの指定は以下のいずれかの方法で行うことができます.</p> @@ -239,16 +255,16 @@ <h3>同行見出し</h3> <p><code>\DeclareRuninHeading</code>で作成します.通常の文書クラスにおける<code>\section</code>と同様の,<code>\<命令名>*[running head]{見出し文字列}</code>という書式の命令が作成されます.設定は以下の通り.</p> <ul> -<li><code>font=<命令></code>: 見出しのフォントを指定します.</li> +<li><code>font=<命令></code>:見出しのフォントを指定します.</li> <li><code>indent=<寸法></code> 見出し文字列全体の字下げ量を指定します.</li> </ul> <h3>窓見出し</h3> <p><code>\DeclareCutinHeading</code>で作成します.<code>\<命令名>{見出し文字列}</code>という書式の命令を作成します.設定は以下の通り.</p> <ul> -<li><code>font=<命令></code>: 見出しのフォントを指定します.</li> -<li><code>indent=<寸法></code>: 見出し全体の字下げ量を指定します.</li> -<li><code>after_space=<寸法></code>: 見出しと本文との間の空きを指定します.</li> -<li><code>onelinemax=<寸法></code>, <code>twolinemax=<寸法></code>: 見出し文字列の長さが<code>onelinemax</code>以下ならば一行で,<code>twolinemax</code>以下ならば二行で窓見出しを出力します.それ以上の場合は三行です.デフォルトはそれぞれ6文字,20文字の長さ.</li> +<li><code>font=<命令></code>:見出しのフォントを指定します.</li> +<li><code>indent=<寸法></code>:見出し全体の字下げ量を指定します.</li> +<li><code>after_space=<寸法></code>:見出しと本文との間の空きを指定します.</li> +<li><code>onelinemax=<寸法></code>, <code>twolinemax=<寸法></code>:見出し文字列の長さが<code>onelinemax</code>以下ならば一行で,<code>twolinemax</code>以下ならば二行で窓見出しを出力します.それ以上の場合は三行です.デフォルトはそれぞれ6文字,20文字の長さ.</li> </ul> <h3 id="modifyheading"><code>\ModifyHeading</code></h3> <p>既に(上のどれかを使い)定義された見出し命令の設定を変更します.たとえば</p> @@ -265,21 +281,21 @@ <pre><code>\DeclarePageStyle{<ページスタイル名>}{<設定>}</code></pre> <p>によりページスタイルを定義することができます.柱やノンブルを出力します.設定は以下の通り.</p> <ul> -<li><code>yoko</code>: 横書きで上下に出力します.デフォルト.</li> -<li><code>tate</code>: 縦書きで小口側に出力します.</li> -<li><code>font=<命令></code>: 柱とノンブルのフォントを指定します.</li> -<li><code>running_head_position</code>, <code>nombre_position</code>: 柱とノンブルの位置を指定します.<code>yoko</code>か<code>tate</code>のどちらが指定されているかで挙動が変わります. +<li><code>yoko</code>:横書きで上下に出力します.デフォルト.</li> +<li><code>tate</code>:縦書きで小口側に出力します.</li> +<li><code>font=<命令></code>:柱とノンブルのフォントを指定します.</li> +<li><code>running_head_position</code>, <code>nombre_position</code>:柱とノンブルの位置を指定します.<code>yoko</code>か<code>tate</code>のどちらが指定されているかで挙動が変わります. <ul> <li><code>yoko</code>指定時:<code>top-left</code>のように指定できます.<code>top/bottom/center/left/right/gutter/fore_edge</code>が使えます.<code>gutter</code>はのど,<code>fore_edge</code>は小口です.<code>left</code>,<code>right</code>の指定は奇数ページに対するものです.<code>twoside</code>が指定されている場合,偶数ページはその逆になります.</li> <li><code>tate</code>指定時:<code><寸法></code>が指定できます.<code>running_head_position</code>は柱の天からの下げ量を,<code>nombre_position</code>はノンブルの地からの上げ量を指定します.</li> </ul></li> -<li><code>nombre=<書式></code>: 出力するノンブルを指定します.デフォルトは<code>\thepage</code>.</li> +<li><code>nombre=<書式></code>:出力するノンブルを指定します.デフォルトは<code>\thepage</code>.</li> <li><code>odd_running_head=<書式></code>,<code>even_running_head=<書式></code>:それぞれ奇数ページ,偶数ページの柱を指定します.<code>_section</code>のように<code>_</code>から始まる名前を指定すると,対応する見出しを出力します.(<code>_section</code>だと現在の<code>\section</code>を出力する.)</li> </ul> <p><code>\ModifyPageStyle</code>により既存のページスタイルを改変することが可能です.</p> <h2 id="-2">その他</h2> <ul> -<li>クラスオプション<code>jlreq_warnings</code>を渡されると,日本語組版処理の要件に反する設定が行われた場合に警告がされます.</li> +<li>クラスオプション<code>jlreq_notes</code>が渡されると,日本語組版処理の記述と矛盾する設定が行われた場合に通知がされます.</li> </ul> <h2>ライセンス</h2> <p>このパッケージは二条項BSDライセンスの元で配布されています.詳しくは<a href="LICENSE" class="uri">LICENSE</a>をご覧ください.</p> @@ -313,6 +329,16 @@ <li>バグ修正.</li> <li><code>\DeclarePageStyle</code>に<code>tate</code>と<code>font</code>オプションを追加.</li> </ul></li> +<li>2017-04-29 +<ul> +<li>バグ修正</li> +<li><code>jafontsize</code>と<code>jafontscale</code>をクラスオプションに,また<code>\jafontsize</code>を追加.</li> +<li><code>\tatechuyoko</code>を追加.</li> +<li>クラスオプション<code>jlreq_warnings</code>を<code>jlreq_notes</code>に変更.</li> +<li>いくつかのクラスオプションを<code>\jlreqsetup</code>に移動.</li> +<li>いくつかのオプションを<code>\jlreqsetup</code>に追加.</li> +<li>クラスオプションの<code>paper={<縦>,<横>}</code>を<code>paper={<横>,<縦>}</code>に変更.</li> +</ul></li> </ul> <hr /> <p>Noriyuki Abe<br /> diff --git a/Master/texmf-dist/doc/latex/jlreq/jlreq.html b/Master/texmf-dist/doc/latex/jlreq/jlreq.html index b52c653c6a8..04b1a0d80e9 100644 --- a/Master/texmf-dist/doc/latex/jlreq/jlreq.html +++ b/Master/texmf-dist/doc/latex/jlreq/jlreq.html @@ -102,6 +102,16 @@ <li>Fix a bug.</li> <li>Add options <code>tate</code> and <code>font</code> to <code>\DeclarePageStyle</code>.</li> </ul></li> +<li>2017-04-29 +<ul> +<li>Fix bugs.</li> +<li>Add <code>jafontsize</code> and <code>jafontscale</code> options and <code>\jafontsize</code>.</li> +<li>Add <code>\tatechuyoko</code>.</li> +<li><code>jlreq_warnings</code> -> <code>jlreq_notes</code> (class option).</li> +<li>Move some class options to <code>\jlreqsetup</code>.</li> +<li>Add some options to <code>\jlreqsetup</code>.</li> +<li>paper={<height>,<width>} -> paper={<width>,<height>}.</li> +</ul></li> </ul> <hr /> <p>Noriyuki Abe<br /> diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq-v.tfm Binary files differindex 36d84ccebda..958b9abf0dd 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq.tfm Binary files differindex 6e25b572b5b..33cfaba5ee2 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreq.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg-v.tfm Binary files differindex 36d84ccebda..958b9abf0dd 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg.tfm Binary files differindex 6e25b572b5b..33cfaba5ee2 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bjlreqg.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq-v.tfm Binary files differindex 0f92aa088c5..68ac8cd26ea 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq.tfm Binary files differindex dc0c8b022cd..d6a8eda2e5c 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreq.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg-v.tfm Binary files differindex 0f92aa088c5..68ac8cd26ea 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg.tfm Binary files differindex dc0c8b022cd..d6a8eda2e5c 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/bzjlreqg.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq-v.tfm Binary files differindex e0d74fd96d2..c966ac9e5c9 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq.tfm Binary files differindex 42ca15e8de5..ee26bfb2d8d 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreq.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg-v.tfm Binary files differindex e0d74fd96d2..c966ac9e5c9 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg.tfm Binary files differindex 42ca15e8de5..ee26bfb2d8d 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/jlreqg.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/ubjlreq-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/ubjlreq-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/ubjlreq-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/ubjlreqg-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/ubjlreqg-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/ubjlreqg-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/ubzjlreq-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/ubzjlreq-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/ubzjlreq-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/ubzjlreqg-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/ubzjlreqg-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/ubzjlreqg-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/ujlreq-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/ujlreq-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/ujlreq-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/ujlreqg-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/ujlreqg-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/ujlreqg-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/uzjlreq-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/uzjlreq-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/uzjlreq-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/uzjlreqg-q.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/uzjlreqg-q.tfm Binary files differnew file mode 100644 index 00000000000..8dbf787b3ec --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/uzjlreqg-q.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq-v.tfm Binary files differindex f784af0a5e0..7713bcb8eb4 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq.tfm Binary files differindex 4323f79418e..98ec248f375 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreq.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg-v.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg-v.tfm Binary files differindex f784af0a5e0..7713bcb8eb4 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg-v.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg-v.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg.tfm b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg.tfm Binary files differindex 4323f79418e..98ec248f375 100644 --- a/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg.tfm +++ b/Master/texmf-dist/fonts/tfm/public/jlreq/zjlreqg.tfm diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-q.vf Binary files differnew file mode 100644 index 00000000000..16af8b9644a --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-v.vf Binary files differindex 1e30d40fec0..1ba50ef4e56 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq.vf Binary files differindex db682e402bb..6da1c14f4e3 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreq.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-q.vf Binary files differnew file mode 100644 index 00000000000..d8ab57e0590 --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-v.vf Binary files differindex c5c261fa02f..1c30b0f4d7c 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg.vf Binary files differindex 4199872c214..0bcba4a1586 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubjlreqg.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-q.vf Binary files differnew file mode 100644 index 00000000000..16af8b9644a --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-v.vf Binary files differindex 00b4f4e88ba..9a2cf9efbb4 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq.vf Binary files differindex ad2b0a4dc59..72c4f43e6b0 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreq.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-q.vf Binary files differnew file mode 100644 index 00000000000..d8ab57e0590 --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-v.vf Binary files differindex 16e45462cdd..ea7f8ee47fc 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg.vf Binary files differindex 7a401ffcc4c..3ed6ab66f67 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ubzjlreqg.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-q.vf Binary files differnew file mode 100644 index 00000000000..16af8b9644a --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-v.vf Binary files differindex 8d117bbbc3d..1605cd28330 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq.vf Binary files differindex bb0ff2e07c0..2a5299981a6 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreq.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-q.vf Binary files differnew file mode 100644 index 00000000000..d8ab57e0590 --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-v.vf Binary files differindex d9a14ef56aa..48817e4351e 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg.vf b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg.vf Binary files differindex 49822260cda..9fae2863913 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/ujlreqg.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-q.vf Binary files differnew file mode 100644 index 00000000000..16af8b9644a --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-v.vf Binary files differindex 872f99d961c..c7fcfa97b39 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq.vf b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq.vf Binary files differindex b583aea61cc..a5affae98e3 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreq.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-q.vf b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-q.vf Binary files differnew file mode 100644 index 00000000000..d8ab57e0590 --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-q.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-v.vf b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-v.vf Binary files differindex a25da39d0c4..8814fc7b212 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-v.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg-v.vf diff --git a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg.vf b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg.vf Binary files differindex c4ebeaf1f04..4f0eb9e67fc 100644 --- a/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg.vf +++ b/Master/texmf-dist/fonts/vf/public/jlreq/uzjlreqg.vf diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls index 7d25d0efd4c..4c14104d8b6 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}[2017/04/04 jlreq] +\ProvidesClass{jlreq}[2017/04/29 jlreq] \RequirePackage{xkeyval,everyhook,filehook,etoolbox,ifthen} %. helper1 @@ -128,35 +128,6 @@ } \def\jlreq@helper@removelastcomma#1,\jlreq@endmark{#1} -% #1が#2のトークン内と\ifxで一致すれば#3を,そうでなければ#4を実行する. -% #2は\edefで展開する.{}があるとバグるかも. -\def\jlreq@ifintokenlist#1#2{% - \begingroup - \jlreq@tempafalse - \edef\@tempa{#2}% - \expandafter\jlreq@helper@ifintokenlist@\expandafter{\@tempa}{#1}% - \ifjlreq@tempa - \def\jlreq@do{\@firstoftwo}% - \else - \def\jlreq@do{\@secondoftwo}% - \fi - \expandafter\endgroup - \jlreq@do -} -\def\jlreq@helper@ifintokenlist@#1#2{% - \jlreq@helper@ifintokenlist@@{#2}#1\jlreq@endmark -} -\def\jlreq@helper@ifintokenlist@@#1#2{% - \jlreq@ifendmark{#2}{% - \def\jlreq@next{}% - }{% - \ifx#1#2\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi - {\jlreq@tempatrue\def\jlreq@next{\jlreq@deleteuntileendmark}}% - {\def\jlreq@next{\jlreq@helper@ifintokenlist@@{#1}}}% - }% - \jlreq@next -} - % vbox #1の最後を\jlreq@resultboxに入れる % #1の最後の行は消える \newcommand*{\jlreq@getlastbox}[1]{% @@ -385,14 +356,14 @@ %.. 基本版面.まずは紙サイズ. \def\jlreq@switchpapersize{} \jlreq@aftercls@addtodeletecs{\jlreq@switchpapersize} -\newcommand*\jlreq@addpapersize[4][]{% - \jlreq@ifempty{#2}{}{ - \jlreq@DeclareOption{#2}{\setlength\paperheight{#3}\setlength\paperwidth{#4}} - \appto\jlreq@switchpapersize{{#2}{\setlength\paperheight{#3}\setlength\paperwidth{#4}}} - } - \jlreq@ifempty{#1}{}{ - \appto\jlreq@switchpapersize{{#1}{\setlength\paperheight{#3}\setlength\paperwidth{#4}}} - } +% \jlreq@addpapersize{paper=に指定するもの}{単独オプション名}{横}{縦} +\newcommand*{\jlreq@addpapersize}[4]{% + \@for\@tempa:=#1\do{% + \eappto\jlreq@switchpapersize{{\expandonce{\@tempa}}{\unexpanded{\setlength{\paperwidth}{#3}\setlength{\paperheight}{#4}}}}% + }% + \@for\@tempa:=#2\do{% + \expandafter\jlreq@DeclareOption\expandafter{\@tempa}{\setlength{\paperwidth}{#3}\setlength{\paperheight}{#4}}% + }% } \jlreq@aftercls@addtodeletecs{\jlreq@addpapersize} \DeclareOptionX{paper}{ @@ -401,8 +372,8 @@ [\unexpanded{% \jlreq@helper@dividebycomma{#1}% \ifjlreq@tempa - \setlength{\paperheight}{\dimexpr\jlreq@tempc\relax}% - \setlength{\paperwidth}{\dimexpr\jlreq@tempd\relax}% + \setlength{\paperwidth}{\dimexpr\jlreq@tempc\relax}% + \setlength{\paperheight}{\dimexpr\jlreq@tempd\relax}% \else \ClassError{jlreq}{The paper #1 is unknown}{\@ehc}% \fi @@ -411,48 +382,44 @@ \jlreq@do } % 紙サイズ一覧.b*はJIS B. -% [paper=で指定できるようにするもの]{オプション名}{縦}{横} -\jlreq@addpapersize[a3]{a3paper}{420mm}{297mm} -\jlreq@addpapersize[a4]{a4paper}{297mm}{210mm} -\jlreq@addpapersize[a5]{a5paper}{210mm}{148mm} -\jlreq@addpapersize[a6]{a6paper}{148mm}{105mm} -\jlreq@addpapersize[b4]{b4paper}{364mm}{257mm} -\jlreq@addpapersize[b5]{b5paper}{257mm}{182mm} -\jlreq@addpapersize[b6]{b6paper}{182mm}{128mm} -\jlreq@addpapersize{a4j}{297mm}{210mm} -\jlreq@addpapersize{a5j}{210mm}{148mm} -\jlreq@addpapersize{b4j}{364mm}{257mm} -\jlreq@addpapersize{b5j}{257mm}{182mm} -\jlreq@addpapersize{a4var}{283mm}{210mm} -\jlreq@addpapersize{b5var}{230mm}{182mm} -\jlreq@addpapersize[letter]{letterpaper}{11in}{8.5in} -\jlreq@addpapersize[legal]{legalpaper}{14in}{8.5in} -\jlreq@addpapersize[executive]{executivepaper}{10.5in}{7.25in} -% 追加 -\jlreq@addpapersize[a0]{}{1189mm}{841mm} -\jlreq@addpapersize[a1]{}{841mm}{594mm} -\jlreq@addpapersize[a2]{}{594mm}{420mm} -\jlreq@addpapersize[a7]{}{105mm}{74mm} -\jlreq@addpapersize[a8]{}{74mm}{52mm} -\jlreq@addpapersize[a9]{}{52mm}{37mm} -\jlreq@addpapersize[a10]{}{37mm}{26mm} - -\jlreq@addpapersize[b0]{}{1456mm}{1030mm} -\jlreq@addpapersize[b1]{}{1030mm}{728mm} -\jlreq@addpapersize[b2]{}{728mm}{515mm} -\jlreq@addpapersize[b3]{}{515mm}{364mm} -\jlreq@addpapersize[b7]{}{128mm}{91mm} -\jlreq@addpapersize[b8]{}{91mm}{64mm} -\jlreq@addpapersize[b9]{}{64mm}{45mm} -\jlreq@addpapersize[b10]{}{45mm}{32mm} - -\jlreq@addpapersize[c2]{}{648mm}{458mm} -\jlreq@addpapersize[c3]{}{458mm}{324mm} -\jlreq@addpapersize[c4]{}{354mm}{229mm} -\jlreq@addpapersize[c5]{}{229mm}{162mm} -\jlreq@addpapersize[c6]{}{162mm}{114mm} -\jlreq@addpapersize[c7]{}{114mm}{81mm} -\jlreq@addpapersize[c8]{}{81mm}{57mm} +\jlreq@addpapersize{a0,A0}{}{841mm}{1189mm} +\jlreq@addpapersize{a1,A1}{}{594mm}{841mm} +\jlreq@addpapersize{a2,A2}{}{420mm}{594mm} +\jlreq@addpapersize{a3,A3}{a3paper}{297mm}{420mm} +\jlreq@addpapersize{a4,A4}{a4paper}{210mm}{297mm} +\jlreq@addpapersize{a5,A5}{a5paper}{148mm}{210mm} +\jlreq@addpapersize{a6,A6}{a6paper}{105mm}{148mm} +\jlreq@addpapersize{a7,A7}{}{74mm}{105mm} +\jlreq@addpapersize{a8,A8}{}{52mm}{74mm} +\jlreq@addpapersize{a9,A9}{}{37mm}{52mm} +\jlreq@addpapersize{a10,A10}{}{26mm}{37mm} + +\jlreq@addpapersize{b0,B0}{}{1030mm}{1456mm} +\jlreq@addpapersize{b1,B1}{}{728mm}{1030mm} +\jlreq@addpapersize{b2,B2}{}{515mm}{728mm} +\jlreq@addpapersize{b3,B3}{}{364mm}{515mm} +\jlreq@addpapersize{b4,B4}{b4paper}{257mm}{364mm} +\jlreq@addpapersize{b5,B5}{b5paper}{182mm}{257mm} +\jlreq@addpapersize{b6,B6}{b6paper}{128mm}{182mm} +\jlreq@addpapersize{b7,B7}{}{91mm}{128mm} +\jlreq@addpapersize{b8,B8}{}{64mm}{91mm} +\jlreq@addpapersize{b9,B9}{}{45mm}{64mm} +\jlreq@addpapersize{b10,B10}{}{32mm}{45mm} + +\jlreq@addpapersize{c2,C2}{}{458mm}{648mm} +\jlreq@addpapersize{c3,C3}{}{324mm}{458mm} +\jlreq@addpapersize{c4C,C4}{}{229mm}{354mm} +\jlreq@addpapersize{c5,C5}{}{162mm}{229mm} +\jlreq@addpapersize{c6,C6}{}{114mm}{162mm} +\jlreq@addpapersize{c7,C7}{}{81mm}{114mm} +\jlreq@addpapersize{c8,C8}{}{57mm}{81mm} + +\jlreq@addpapersize{a4var}{}{210mm}{283mm} +\jlreq@addpapersize{b5var}{}{182mm}{230mm} + +\jlreq@addpapersize{letter}{letterpaper}{8.5in}{11in} +\jlreq@addpapersize{legal}{legalpaper}{8.5in}{14in} +\jlreq@addpapersize{executive}{executivepaper}{7.25in}{10.5in} %.. フォントサイズ,行長,1ページあたりの行数で基本版面のサイズを決める(2.4.1.a) @@ -462,7 +429,12 @@ \jlreq@DeclareOption{10pt}{\renewcommand*{\jlreq@option@fontsize}{10pt}} \jlreq@DeclareOption{11pt}{\renewcommand*{\jlreq@option@fontsize}{11pt}} \jlreq@DeclareOption{12pt}{\renewcommand*{\jlreq@option@fontsize}{12pt}} - +\newcommand*{\jlreq@option@jafontsize}{} +\jlreq@aftercls@addtodeletecs{\jlreq@option@jafontsize} +\DeclareOptionX{jafontsize}{\renewcommand*{\jlreq@option@jafontsize}{#1}} +\newcommand*{\jlreq@option@jafontscale}{1} +\DeclareOptionX{jafontscale}{\renewcommand*{\jlreq@option@jafontscale}{#1}} +\jlreq@aftercls@addtodeletecs{\jlreq@option@jafontscale} %.. 行の長さ \newcommand*{\jlreq@option@line@length}{} \jlreq@aftercls@addtodeletecs{\jlreq@option@line@length} @@ -500,7 +472,7 @@ \DeclareOptionX{column_gap}{\renewcommand*{\jlreq@option@column@gap{#1}}} %.. 行送り,指定無しの場合は文字サイズの1.7倍とする.(1.5から2倍が好ましい:2.4.2.d 注3) -\newcommand*{\jlreq@option@baselineskip}{} +\newcommand*{\jlreq@option@baselineskip}{17zw/10} \jlreq@aftercls@addtodeletecs{\jlreq@option@baselineskip} \DeclareOptionX{baselineskip}{\def\jlreq@option@baselineskip{#1}} \DeclareOptionX{linegap}{\def\jlreq@option@baselineskip{1zw + #1}} @@ -515,33 +487,11 @@ \jlreq@DeclareOption{hanging_punctuation}{\jlreq@burasagetrue} %.. 注 -% 合印の場所(4.2.3)行間に入れるか否か -\newcommand*{\jlreq@referencemark}{inline} -\define@choicekey{jlreq.cls}{reference_mark}{inline,interlinear}{\renewcommand*{\jlreq@referencemark}{#1}} -% 脚注の字下げ,一行目を下げるならばone,二行目以降ならばtwo.ちょっと酷いので後で考える. -\newcommand*{\jlreq@footnotetext@indent}{one} -\define@choicekey{jlreq.cls}{footnotetext_indent}{one,two}{\renewcommand*{\jlreq@footnotetext@indent}{#1}} -% 後注をどこに配置するか.headings(全ての見出し),paragraph(段落後),_で始まるやつ(その名前の見出し).カンマ区切り -\newcommand*{\jlreq@endnote@position}{headings} -\DeclareOptionX{endnote_position}{\renewcommand*{\jlreq@endnote@position}{#1}} % 傍注のタイプ -\newcommand*{\jlreq@sidenote@type}{number} -\define@choicekey{jlreq.cls}{sidenote_type}{number,symbol}{\renewcommand*{\jlreq@sidenote@type}{#1}} \newcommand*{\jlreq@option@sidenote@width}{} \jlreq@aftercls@addtodeletecs{\jlreq@option@sidenote@width} \DeclareOptionX{sidenote_width}{\renewcommand*{\jlreq@option@sidenote@width}{#1}} -%.. 引用 -\def\jlreq@quote@indent{2zw} -\DeclareOptionX{quote_indent}{\def\jlreq@quote@indent{#1}} -\def\jlreq@quote@end@indent{0zw} -\DeclareOptionX{quote_end_indent}{\def\jlreq@quote@end@indent{#1}} -\def\jlreq@quote@fontsize{normalsize} -\define@choicekey{jlreq.cls}{quote_fontsize}{normalsize,small,footnotesize,scriptsize,tiny}{\def\jlreq@quote@fontsize{#1}} -\def\jlreq@quote@beforeafter@space{0pt} -\DeclareOptionX{quote_beforeafter_space}{\def\jlreq@quote@beforeafter@space{#1}} - - %.. もろもろ \newif\if@restonecol \@restonecolfalse \newif\if@titlepage \@titlepagefalse @@ -577,10 +527,10 @@ \jlreq@DeclareOption{leqno}{\input{leqno.clo}} \jlreq@DeclareOption{fleqn}{\input{fleqn.clo}} -\newcommand*{\jlreq@warning}[1]{} -\jlreq@DeclareOption{jlreq_warnings}{\renewcommand*{\jlreq@warning}[1]{\ClassWarningNoLine{jlreq}{(JLReq warning) ##1}}} +\newcommand*{\jlreq@note}[1]{} +\jlreq@DeclareOption{jlreq_notes}{\renewcommand*{\jlreq@note}[1]{\message{^^JJLReq note: ##1^^J}}} -\ExecuteOptionsX{article_type=article,paper=a4,fontsize=10pt,open_bracket_pos=zenkaku_tentsuki,reference_mark=inline,footnotetext_indent=one,endnote_position=headings,onecolumn,final} +\ExecuteOptionsX{article_type=article,paper=a4,open_bracket_pos=zenkaku_tentsuki,onecolumn,final} % \@removeelementを一旦置き換えてから\ProcessOptionsXを実行する \let\jlreq@original@@removeelement=\@removeelement \let\@removeelement=\jlreq@helper@removeelement @@ -605,21 +555,36 @@ \fi \def\jlreq@jlreqsetup@keyvallist{} +\def\jlreq@jlreqsetup@finally{} \newcommand{\jlreqsetup}[1]{% \begingroup \edef\jlreq@do{\unexpanded{\jlreq@parsekeyval[jlreqsetup]}{\expandonce{\jlreq@jlreqsetup@keyvallist}}}% \expandafter\endgroup \jlreq@do{#1}% + \jlreq@jlreqsetup@finally +} +% \jlreqsetupの項目に加えるマクロ.\jlreq@jlreqsetup@add{key}{action}とするとkeyに対して定義できる. +% action内ではvalが#1として取得できる.(従ってaction内でマクロを定義する際には##1を使う必要がある.) +\newcommand{\jlreq@jlreqsetup@add}[1]{% + \@ifnextchar[{\jlreq@jlreqsetup@add@{#1}}{\jlreq@jlreqsetup@add@@{#1}}% +} +\long\def\jlreq@jlreqsetup@add@#1[#2]#3{% + \eappto\jlreq@jlreqsetup@keyvallist{\unexpanded{{#1}[#2]{#3}}}% } -\newcommand{\jlreq@jlreqsetup@add}[2]{% +\long\def\jlreq@jlreqsetup@add@@#1#2{% \eappto\jlreq@jlreqsetup@keyvallist{\unexpanded{{#1}{#2}}}% } +% \jlreqsetupの最後に必ず実行される処理を入れる. +\newcommand\jlreq@jlreqsetup@addtofinally[1]{\eappto\jlreq@jlreqsetup@finally{\unexpanded{#1}}} \jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@add} +\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@add@} +\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@add@@} +\jlreq@aftercls@addtodeletecs{\jlreq@jlreqsetup@addtofinally} \@onlypreamble\jlreqsetup % エンジンの設定 \ifx\jlreq@engine\@undefined - \ifx\luatexversion\@undefined + \ifx\directlua\@undefined \ifx\ucs\@undefined \let\jlreq@engine=p \else @@ -669,10 +634,16 @@ \def\jlreq@iftbox#1{\iftbox#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} } +\ifx l\jlreq@engine + \newcommand*{\jlreq@getpostbreakpenalty}[1]{\ltjgetparameter{postbreakpenalty}{#1}} +\else + \newcommand*{\jlreq@getpostbreakpenalty}[1]{\postbreakpenalty#1} +\fi + % 現在行の残りを得る. \ifx l\jlreq@engine % 以下のコードはおかしい. - \newcommand*{\jlreq@calc@current@linewidth}{% + \newcommand*{\jlreq@calc@current@linewidth@onecolumn}{% \dimexpr\zposx{jlreq@rest@width.pos.\the\jlreq@zref@reference@count} sp - \@totalleftmargin - \ifodd\jlreq@currentpage \oddsidemargin @@ -682,7 +653,7 @@ - 1in - \hoffset\relax } \else - \newcommand*{\jlreq@calc@current@linewidth}{% + \newcommand*{\jlreq@calc@current@linewidth@onecolumn}{% \dimexpr \jlreq@ifydir{% \zposx{jlreq@rest@width.pos.\the\jlreq@zref@reference@count} sp - \hoffset @@ -704,10 +675,19 @@ \relax } \fi +\newcommand*{\jlreq@calc@current@linewidth}{% + \dimexpr\jlreq@calc@current@linewidth@onecolumn + \if@twocolumn + \ifdim\jlreq@calc@current@linewidth@onecolumn<\dimexpr\linewidth+\columnsep\relax\else + - \linewidth - \columnsep + \fi + \fi + \relax +} \newdimen\jlreq@current@linewidth \newdimen\jlreq@rest@linewidth -% この命令以降,次にこの命令を実行する前まで\jlreq@rest@linewidth/\jlreq@rest@linewidthで +% この命令以降,次にこの命令を実行する前まで\jlreq@current@linewidth/\jlreq@rest@linewidthで % この場所における残り長さが取得できる. \newcommand*{\jlreq@savepos@for@rest@linewidth}{% \jlreq@setcurrentpage @@ -731,11 +711,13 @@ \expandafter\endgroup \jlreq@do } + \newcount\jlreq@lastnodechar % jlreq@lastnodecharに入っている値と次のトークン(\futureletで得る)の間に入るJFMグルー等を挿入する -\def\jlreq@fixjfm{% +\newcommand*{\jlreq@fixjfm}{% \ifnum\jlreq@lastnodechar>-1 \def\jlreq@do{% + \ifnum\jlreq@getpostbreakpenalty{\jlreq@lastnodechar}=0\else\penalty\jlreq@getpostbreakpenalty{\jlreq@lastnodechar}\fi \jlreq@isletter{\jlreq@nextchar}{% \jlreq@calc@jfmglue{\char\jlreq@lastnodechar}{\jlreq@nextchar}% % \message{fixjfm Insert: \the\jlreq@resultskip}% @@ -750,6 +732,41 @@ \@tempa } +% #1÷#2を\jlreq@resultdimenに入れる.(#1,#2は寸法を与える.) +\ifx l\jlreq@engine + \newcommand*{\jlreq@divide}[2]{% + \jlreq@resultdimen=\directlua{tex.print(tostring(\strip@pt\dimexpr #1\relax/\strip@pt\dimexpr #2\relax) .. "pt ")}% + } +\else + \newcommand*{\jlreq@divide}[2]{% + \begingroup + \@tempdima=#1\relax\@tempdimb=#2\relax + % 分母を正にする + \ifdim\@tempdimb<0pt \@tempdima=-\@tempdima\@tempdimb=-\@tempdimb\fi + % \jlreq@tempdima*\@tempdimb <= \@tempdima < (\jlreq@tempdima + 1)*\@tempdimb + % となる整数\jlreq@tempdimaを捜し,\jlreq@tempdimb=\jlreq@tempdima + 1とする + \jlreq@tempdima=0pt + \ifdim\@tempdima<0pt + \loop\ifdim\strip@pt\jlreq@tempdima\@tempdimb>\@tempdima\advance\jlreq@tempdima by -1pt\repeat + \else + \loop\ifdim\strip@pt\jlreq@tempdima\@tempdimb<\@tempdima\advance\jlreq@tempdima by 1pt\repeat + \ifdim\strip@pt\jlreq@tempdima\@tempdimb=\@tempdima\else\advance\jlreq@tempdima by -1pt\fi + \fi + \jlreq@tempdimb=\dimexpr\jlreq@tempdima + 1pt\relax + % \jlreq@tempdimaと\jlreq@tempdimbで挟んでいく二分法 + \jlreq@tempcnta=0 % 無限ループを避けるためのカウンタ + \loop\ifnum\numexpr\ifdim\dimexpr\jlreq@tempdimb - \jlreq@tempdima\relax>1sp 1\else0\fi*\ifnum\jlreq@tempcnta<100 1\else 0\fi\relax=1 + \jlreq@tempdimc=\dimexpr(\jlreq@tempdima+\jlreq@tempdimb)/2\relax + \ifdim\strip@pt\jlreq@tempdimc\@tempdimb>\@tempdima\jlreq@tempdimb=\jlreq@tempdimc + \else\jlreq@tempdima=\jlreq@tempdimc\fi + \advance\jlreq@tempcnta by 1 + \repeat + \edef\jlreq@do{\noexpand\jlreq@resultdimen=\the\jlreq@tempdima\noexpand\relax}% + \expandafter\endgroup + \jlreq@do + } +\fi + %. 基本設定 \def\jlreq@kanjiskip{0pt plus 0.25zw minus 0pt} \def\jlreq@xkanjiskip{0.25zw plus 0.25zw minus 0.125zw} @@ -1042,20 +1059,39 @@ \jlreq@setprebreakpenalty{‥}{10000} % ¥100とか70%とか…… +% フォントサイズを設定 \newdimen\jlreq@fontsize +\newdimen\jlreq@jafontsize \ifx l\jlreq@engine - \setlength{\jlreq@fontsize}{% + \def\jlreq@expand@optionfontsize#1{% \dimexpr\directlua{ local act = string.char(92) - local s = [[\jlreq@option@fontsize]] + local s = [[#1]] s = s:gsub("Q",act .. "dimexpr 0.25mm" .. act .. "relax") tex.print(s) }\relax }% \else - \setlength{\jlreq@fontsize}{\dimexpr\jlreq@option@fontsize\relax} + \def\jlreq@expand@optionfontsize#1{\dimexpr#1\relax} +\fi +\jlreq@aftercls@addtodeletecs{\jlreq@expand@optionfontsize} +\ifx\jlreq@option@fontsize\@empty + \ifx\jlreq@option@jafontsize\@empty + \jlreq@fontsize=10pt + \jlreq@jafontsize=\jlreq@option@jafontscale\jlreq@fontsize + \else + \setlength{\jlreq@jafontsize}{\jlreq@expand@optionfontsize{\jlreq@option@jafontsize}} + \jlreq@divide{\jlreq@jafontsize}{\jlreq@option@jafontscale pt} + \jlreq@fontsize=\jlreq@resultdimen + \fi +\else + \setlength{\jlreq@fontsize}{\jlreq@expand@optionfontsize{\jlreq@option@fontsize}} + \ifx\jlreq@option@jafontsize\@empty + \jlreq@jafontsize=\jlreq@option@jafontscale\jlreq@fontsize + \else + \setlength{\jlreq@jafontsize}{\jlreq@expand@optionfontsize{\jlreq@option@jafontsize}} + \fi \fi - %. フォント \RequirePackage{lmodern} @@ -1096,31 +1132,57 @@ \DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} %.. 和文 +% 行頭括弧に対して\inhibitglueを入れたりする命令を作る +\def\jlreq@openbreackets@list{(〔[{〈《「『【‘“} +\ifx p\jlreq@engine\else\edef\jlreq@openbreackets@list{\jlreq@openbreackets@list ⦅〘〖«〝}\fi +\jlreq@aftercls@addtodeletecs{\jlreq@openbreackets@list} +% \jlreq@openbreackets@listの各括弧に対して,\ifx\jlreq@nextchar 「1\fiみたいなのが並んだのを作る +\def\jlreq@tempa{} +\def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\appto\jlreq@tempa{\ifx\jlreq@nextchar#11\fi}\jlreq@do}} +\expandafter\jlreq@do\jlreq@openbreackets@list\jlreq@endmark +% JFM glueの伸び縮みで行頭括弧が揃わないのを防ぐために常に\inhibitglueを入れる. +\ifthenelse{\equal{\jlreq@open@bracket@pos}{nibu_tentsuki}}{ + \edef\jlreq@openbracket@hook{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0 \unexpanded{\hskip -.5\jlreq@mol\inhibitglue}\noexpand\fi} +}{% zenkakunibu_nibu,zenkaku_tentsuki + \edef\jlreq@openbracket@hook{\noexpand\ifnum0\expandonce{\jlreq@tempa}>0 \unexpanded{\inhibitglue}\noexpand\fi} +} % JFMに関連する設定 \ifx l\jlreq@engine % この値は後でjfm-jlreq内で読む \directlua{jlreq.open_bracket_pos = [[\jlreq@open@bracket@pos]]} - \ifjlreq@burasage\directlua{jlreq.burasage = true} - \else\directlua{jlreq.burasage = false}\fi + \ifjlreq@burasage\directlua{jlreq.burasage = true}\else\directlua{jlreq.burasage = false}\fi + % 行頭括弧はJFMで対応できるが,\item後だけはどうしようもない. + \jlreq@saveoriginalcs{list} + \jlreq@saveoriginalcs{endlist} + \def\list{\jlreq@pushhook@postpar{\futurelet\jlreq@nextchar\jlreq@openbracket@hook}\jlreq@original@list} + \def\endlist{\jlreq@pophook@postpar\jlreq@original@endlist} \else % 非LuaTeXの場合はJFMの入れ替えと\everyparでの処理で対処. - \def\jlreq@jfmname@prefix{} - \def\jlreq@openbreackets@list{(〔[{〈《「『【} - \ifx u\jlreq@engine\edef\jlreq@openbreackets@list{\jlreq@openbreackets@list {⦅〘〖«〝‘“}}\fi % \jlreq@jfmnameにJFMの名前を入れる + \def\jlreq@jfmname@prefix{} + \jlreq@aftercls@addtodeletecs{\jlreq@jfmname@prefix} \ifjlreq@burasage\edef\jlreq@jfmname@prefix{b\jlreq@jfmname@prefix}\fi \ifthenelse{\equal{\jlreq@open@bracket@pos}{zenkakunibu_nibu}}{\edef\jlreq@jfmname@prefix{\jlreq@jfmname@prefix z}}{} \ifx u\jlreq@engine\edef\jlreq@jfmname@prefix{u\jlreq@jfmname@prefix}\fi \edef\jlreq@jfmname{\jlreq@jfmname@prefix jlreq} \edef\jlreq@jfmnameg{\jlreq@jfmname@prefix jlreqg} - % JFM glueの伸び縮みで行頭括弧が揃わないのを防ぐために常に\inhibitglueを入れる. - \ifthenelse{\equal{\jlreq@open@bracket@pos}{nibu_tentsuki}}{ - \def\jlreq@openbracket@hook{\jlreq@ifintokenlist{\jlreq@nextchar}{\jlreq@openbreackets@list}{\hskip -.5\jlreq@mol\inhibitglue}{}} - }{% zenkakunibu_nibu,zenkaku_tentsuki - \def\jlreq@openbracket@hook{\jlreq@ifintokenlist{\jlreq@nextchar}{\jlreq@openbreackets@list}{\inhibitglue}{}} - } \AtBeginDocument{\PushPostHook{par}{\futurelet\jlreq@nextchar\jlreq@openbracket@hook}} \fi +\newcount\jlreq@count@listnest +\jlreq@count@listnest=0 +\def\jlreq@pushhook@postpar#1{% + \advance\jlreq@count@listnest by 1 + \def\@tempa{\SavePostHook{par}}% + \expandafter\@tempa\csname jlreq@save@posthook@par \the\jlreq@count@listnest\endcsname + \PushPostHook{par}{#1}% +} +\def\jlreq@pophook@postpar{% + \def\@tempa{\RestorePostHook{par}}% + \expandafter\@tempa\csname jlreq@save@posthook@par \the\jlreq@count@listnest\endcsname + \expandafter\let\csname jlreq@save@posthook@par \the\jlreq@count@listnest\endcsname=\@undefined + \advance\jlreq@count@listnest by -1 +} + % 開き括弧の幅が全角の場合は,ベタ組にするために補正が必要 \ifthenelse{\equal{\jlreq@open@bracket@pos}{zenkakunibu_nibu}}{ \def\jlreq@open@bracket@before@space{\hskip -.5\jlreq@mol} @@ -1143,22 +1205,25 @@ \def\jlreq@yokokanjiencoding{JY2} \def\jlreq@tatekanjiencoding{JT2} \fi +\jlreq@divide{\jlreq@jafontsize}{\jlreq@fontsize} +\edef\jlreq@jafontscale{\strip@pt\jlreq@resultdimen} +\jlreq@aftercls@addtodeletecs{\jlreq@jafontscale} \ifx l\jlreq@engine \def\jlreq@yokokanjiencoding{JY3} \def\jlreq@tatekanjiencoding{JT3} \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax \expandafter\let\csname JT3/mc/m/n/10\endcsname\relax - \DeclareFontShape{JY3}{mc}{m}{n}{<->\ltj@stdmcfont:jfm=jlreq;script=latn;-kern}{} - \DeclareFontShape{JY3}{gt}{m}{n}{<->\ltj@stdgtfont:jfm=jlreq;script=latn;-kern}{} - \DeclareFontShape{JT3}{mc}{m}{n}{<->\ltj@stdmcfont:jfm=jlreqv;script=latn;-kern}{} - \DeclareFontShape{JT3}{gt}{m}{n}{<->\ltj@stdgtfont:jfm=jlreqv;script=latn;-kern}{} + \DeclareFontShape{JY3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont:jfm=jlreq;script=latn;-kern}{} + \DeclareFontShape{JY3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont:jfm=jlreq;script=latn;-kern}{} + \DeclareFontShape{JT3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont:jfm=jlreqv;script=latn;-kern}{} + \DeclareFontShape{JT3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont:jfm=jlreqv;script=latn;-kern}{} \else \expandafter\let\csname \jlreq@yokokanjiencoding/mc/m/n/10\endcsname\relax \expandafter\let\csname \jlreq@tatekanjiencoding/mc/m/n/10\endcsname\relax - \DeclareFontShape{\jlreq@yokokanjiencoding}{mc}{m}{n}{<-> \jlreq@jfmname}{} - \DeclareFontShape{\jlreq@yokokanjiencoding}{gt}{m}{n}{<-> \jlreq@jfmnameg}{} - \DeclareFontShape{\jlreq@tatekanjiencoding}{mc}{m}{n}{<-> \jlreq@jfmname-v}{} - \DeclareFontShape{\jlreq@tatekanjiencoding}{gt}{m}{n}{<-> \jlreq@jfmnameg-v}{} + \DeclareFontShape{\jlreq@yokokanjiencoding}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmname}{} + \DeclareFontShape{\jlreq@yokokanjiencoding}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmnameg}{} + \DeclareFontShape{\jlreq@tatekanjiencoding}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmname-v}{} + \DeclareFontShape{\jlreq@tatekanjiencoding}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmnameg-v}{} \fi \DeclareFontShape{\jlreq@yokokanjiencoding}{mc}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{\jlreq@yokokanjiencoding}{gt}{bx}{n}{<->ssub*gt/m/n}{} @@ -1207,38 +1272,34 @@ % いったん文字サイズを変更((u)platexの際にzh/zwをきちんとするため) \@setfontsize\normalsize{\jlreq@fontsize}{\jlreq@fontsize}% \newdimen\jlreq@baselineskip -\ifx\jlreq@option@baselineskip\@empty - \setlength{\jlreq@baselineskip}{\dimexpr 17\jlreq@fontsize/10\relax}% +\ifx l\jlreq@engine + \setlength{\jlreq@baselineskip}{% + \dimexpr\directlua{ + local act = string.char(92) + local s = [[\jlreq@option@baselineskip]] + s = s:gsub("Q",act .. "dimexpr 0.25mm" .. act .. "relax"):gsub("zh",act .. "zh"):gsub("zw",act .. "zw") + tex.print(s) + }\relax + }% \else - \ifx l\jlreq@engine - \setlength{\jlreq@baselineskip}{% - \dimexpr\directlua{ - local act = string.char(92) - local s = [[\jlreq@option@baselineskip]] - s = s:gsub("Q",act .. "dimexpr 0.25mm" .. act .. "relax"):gsub("zh",act .. "zh"):gsub("zw",act .. "zw") - tex.print(s) - }\relax - }% - \else - \setlength{\jlreq@baselineskip}{\jlreq@option@baselineskip} - \fi + \setlength{\jlreq@baselineskip}{\dimexpr\jlreq@option@baselineskip\relax} \fi \ifdim\jlreq@fontsize>\jlreq@baselineskip \ClassError{jlreq}{The baselineskip is less than fontsize}{\@ehc}% \fi -\ifthenelse{\lengthtest{\jlreq@baselineskip<1.5\jlreq@fontsize} \OR \lengthtest{\jlreq@baselineskip>2\jlreq@fontsize}}{ - \jlreq@warning{行間は二分以上全角以下が望ましい (2.4.2.d 注3)} +\ifthenelse{\lengthtest{\jlreq@baselineskip<1.5\zw} \OR \lengthtest{\jlreq@baselineskip>2\zw}}{ + \jlreq@note{行間は二分以上全角以下が望ましい (2.4.2.d 注3).} }{} \emergencystretch 3\jlreq@gol %.. 文字サイズ変更 % 文字サイズを基準としているような寸法に対しては, -% \@setfontsizeが実行されるたびに追随して値を変える +% \set@fontsizeが実行されるたびに追随して値を変える % その処理は\jlreq@setfontsizehookに入れる -\jlreq@saveoriginalcs{@setfontsize} -\renewcommand*{\@setfontsize}[3]{% - \jlreq@original@@setfontsize{#1}{#2}{#3}% +\jlreq@saveoriginalcs{set@fontsize} +\renewcommand*{\set@fontsize}[3]{% + \jlreq@original@set@fontsize{#1}{#2}{#3}% \jlreq@setfontsizehook } \def\jlreq@setfontsizehook{} @@ -1251,6 +1312,20 @@ \fi } \fi +\jlreq@divide{\jlreq@fontsize}{\jlreq@jafontsize} +\edef\jlreq@jafontinvscale{\strip@pt\jlreq@resultdimen} +\newcommand*{\jafontsize}[2]{% + \begingroup + \jlreq@iffloat{#1}{% + \jlreq@tempdima=\jlreq@jafontinvscale\dimexpr #1pt\relax + \edef\jlreq@do{\noexpand\fontsize{\strip@pt\jlreq@tempdima}{\unexpanded{#2}}}% + }{% + \jlreq@tempdima=\jlreq@jafontinvscale\dimexpr#1\relax + \edef\jlreq@do{\noexpand\fontsize{\expandonce{\the\jlreq@tempdima}}{\unexpanded{#2}}}% + }% + \expandafter\endgroup + \jlreq@do +} \renewcommand{\normalsize}{% \@setfontsize\normalsize{\jlreq@fontsize}{\jlreq@baselineskip}% @@ -1271,26 +1346,19 @@ % 4.1.3.a % 2.5.2 \baselineskipは一定の方がよい? +% \@listiは再定義しないようにした.(\normalsizeと共用でJLReq通りだと思う.) \newcommand{\footnotesize}{% \@setfontsize\footnotesize{.8\jlreq@fontsize}{\dimexpr 115\jlreq@baselineskip/170\relax}% 脚注文字サイズの二分より少し小さい値を行間に: 4.2.5.e - \abovedisplayskip .6\jlreq@gol \@plus.2\jlreq@gol \@minus.4\jlreq@gol - \abovedisplayshortskip \z@ \@plus.1\jlreq@gol - \belowdisplayshortskip .3\jlreq@gol \@plus.1\jlreq@gol \@minus.2\jlreq@gol - \def\@listi{\leftmargin\leftmargini - \topsep .3\jlreq@gol \@plus.1\jlreq@gol \@minus.1\jlreq@gol - \parsep .2\jlreq@gol \@plus.1\jlreq@gol \@minus.1\jlreq@gol - \itemsep \parsep}% + \abovedisplayskip .6\jlreq@fontsize \@plus.2\jlreq@fontsize \@minus.4\jlreq@fontsize + \abovedisplayshortskip \z@ \@plus.1\jlreq@fontsize + \belowdisplayshortskip .3\jlreq@fontsize \@plus.1\jlreq@fontsize \@minus.2\jlreq@fontsize \belowdisplayskip \abovedisplayskip} % tsize10.cloの引数を,そのまま\jlreq@fontsize/\jlreq@baselineskipでスケーリングしているだけ. \newcommand{\small}{% \@setfontsize\small{.9\jlreq@fontsize}{\dimexpr 11\jlreq@baselineskip/17\relax}% - \abovedisplayskip .85\jlreq@gol \@plus.3\jlreq@gol \@minus.4\jlreq@gol - \abovedisplayshortskip \z@ \@plus.2\jlreq@gol - \belowdisplayshortskip .4\jlreq@gol \@plus.2\jlreq@gol \@minus.2\jlreq@gol - \def\@listi{\leftmargin\leftmargini - \topsep .4\jlreq@gol \@plus.2\jlreq@gol \@minus.2\jlreq@gol - \parsep .2\jlreq@gol \@plus.1\jlreq@gol \@minus.1\jlreq@gol - \itemsep \parsep}% + \abovedisplayskip .85\jlreq@fontsize \@plus.3\jlreq@fontsize \@minus.4\jlreq@fontsize + \abovedisplayshortskip \z@ \@plus.2\jlreq@fontsize + \belowdisplayshortskip .4\jlreq@fontsize \@plus.2\jlreq@fontsize \@minus.2\jlreq@fontsize \belowdisplayskip \abovedisplayskip} \newcommand{\scriptsize}{\@setfontsize\scriptsize{\dimexpr 7\jlreq@fontsize/10\relax}{\dimexpr 8\jlreq@baselineskip/17\relax}} \newcommand{\tiny}{\@setfontsize\tiny{\dimexpr 5\jlreq@fontsize/10\relax}{\dimexpr 6\jlreq@baselineskip/17\relax}} @@ -1380,7 +1448,7 @@ %.. \textwidth:文字送り方向の行長 % 二段の場合は最初の段の頭から次の段の後まで % 一度\textwidthに一行の長さの文字数を入れる(段組の場合でも) -\@tempdima=1\jlreq@fontsize +\@tempdima=1\zw \ifx\jlreq@option@line@length\@empty \if@tate \setlength{\textwidth}{0.75\paperheight} @@ -1396,11 +1464,11 @@ \divide\textwidth\@tempdima \if@tate \ifnum\number\textwidth>52 - \jlreq@warning{一行の長さは52文字以下が望ましい (2.4.2.c 注2)} + \jlreq@note{一行の長さは52文字以下が望ましい (2.4.2.c 注2).} \fi \else \ifnum\number\textwidth>40 - \jlreq@warning{一行の長さは40文字以下が望ましい (2.4.2.c 注2)} + \jlreq@note{一行の長さは40文字以下が望ましい (2.4.2.c 注2).} \fi \fi \fi @@ -1432,7 +1500,7 @@ \else\def\jlreq@option@headfoot@verticalpos{2zh}\fi \fi \setlength{\headsep}{\jlreq@speciallength{\jlreq@option@headfoot@verticalpos}} -\ifdim\headsep<1\zw\jlreq@warning{基本版面との上下方向の最低の空き量を,基本版面の文字サイズの全角アキとする (26.1.a)}\fi +\ifdim\headsep<1\zw\relax\jlreq@note{基本版面との上下方向の最低の空き量を,基本版面の文字サイズの全角アキとする (26.1.a).}\fi \setlength{\headheight}{1\zw} %.. 横 \ifx\jlreq@option@gutter\@empty @@ -1464,7 +1532,7 @@ \def\jlreq@settopmarginbyhead#1{ \if@tate \setlength{\topmargin}{\dimexpr #1 - \headsep - \headheight - 1in\relax} - \jlreq@warning{縦組の場合は地の空き量を指定する (2.4.1.b)} + \jlreq@note{縦組の場合は地の空き量を指定する (2.4.1.b).} \else \setlength{\topmargin}{\dimexpr #1 - \headsep - \headheight - 1in - \topskip + \Cht\relax} \fi @@ -1475,7 +1543,7 @@ \if@tate \setlength{\topmargin}{\dimexpr\paperheight - \textwidth - \headsep - \headheight - 1in - #1\relax} \else - \jlreq@warning{横組の場合は天の空き量を指定する (2.4.1.b)} + \jlreq@note{横組の場合は天の空き量を指定する (2.4.1.b).} \setlength{\topmargin}{\dimexpr\paperheight - \textheight + \topskip - 1\zh - \headsep - \headheight - 1in - #1\relax} \fi } @@ -1508,7 +1576,7 @@ %.. 下 \setlength{\footskip}{\dimexpr\headsep + 1\zw\relax} % \maxdepth + \topskip = フォントサイズ×1.5(だってさ) -\setlength{\maxdepth}{\dimexpr1.5\jlreq@fontsize - \topskip\relax} +\setlength{\maxdepth}{\dimexpr1.5\zw - \topskip\relax} %. 見出し関係 (4.1) % 見出しの直前に実行される @@ -1538,7 +1606,7 @@ \edef\jlreq@label@format{\expandonce{\csname the#1\endcsname}}% \def\jlreq@heading@clearpage{\cleardoublepage}% \def\jlreq@pagestyle{empty}% - \jlreq@parsekeyval[DeclareTobiraHeading]{ + \jlreq@parsekeyval[DeclareTobiraHeading:#1]{ {label_format}{\def\jlreq@label@format{##1}} {format}{\def\jlreq@format####1####2{##1}} {pagestyle}{\def\jlreq@pagestyle{##1}} @@ -1815,7 +1883,7 @@ \@tempa##1,\jlreq@endmark \jlreq@do }% - \jlreq@parsekeyval[BlockHeading]{ + \jlreq@parsekeyval[BlockHeading:#1]{ {lines}{\def\jlreq@lines{##1}} {before_space}{\def\jlreq@before@space{##1}} {after_space}{\def\jlreq@after@space{##1}} @@ -1977,7 +2045,7 @@ \def\jlreq@mark{}% \def\jlreq@label@font{}% \def\jlreq@after@space{1\jlreq@mol}% - \jlreq@parsekeyval[RuninHeading]{% + \jlreq@parsekeyval[RuninHeading:#1]{% {font}{\def\jlreq@font{##1}} {indent}{\def\jlreq@indent{##1}} {mark}{\def\jlreq@mark{##1}} @@ -2079,11 +2147,11 @@ \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewCutinHeading}% \begingroup \def\jlreq@fontcommand{\sffamily\bfseries}% - \def\jlreq@onelinemax{6\jlreq@fontsize}% - \def\jlreq@twolinemax{20\jlreq@fontsize}% + \def\jlreq@onelinemax{6\zw}% + \def\jlreq@twolinemax{20\zw}% \def\jlreq@indent{0\jlreq@mol}% \def\jlreq@after@space{1\jlreq@mol}% - \jlreq@parsekeyval[CutinHeading]{ + \jlreq@parsekeyval[CutinHeading:#1]{ {font}{\def\jlreq@fontcommand{##1}} {onelinemax}{\def\jlreq@onelinemax{##1}} {twolinemax}{\def\jlreq@twolinemax{##1}} @@ -2091,7 +2159,7 @@ {after_space}{\def\jlreq@after@space{##1}} }{#3}% \ifthenelse{\lengthtest{\jlreq@after@space < 0.99\jlreq@mol} \OR \lengthtest{\jlreq@after@space > 2.01\jlreq@mol}}{% - \jlreq@warning{窓見出しと本文との空き量は,基本版面の文字サイズの全角以上,2倍未満とする (4.1.10.c)}%& + \jlreq@note{窓見出しと本文との空き量は,基本版面の文字サイズの全角以上,2倍未満とする (4.1.10.c).}%& }{}% \edef\jlreq@do{% \noexpand\def\expandonce{\csname #1\endcsname}{% @@ -2298,83 +2366,80 @@ % 合印:4.2.3 % 文字サイズは6ポイントくらい(4.2.3.a)とりあえす\scriptsize -% \footnoteとか\footnotemarkの前に#2後に#3を入れる -\newcommand*{\jlreq@modify@noteandmark}[4]{% - \edef\@tempa{\expandafter\@gobble\string#1}% - \jlreq@saveoriginalcs{\@tempa}% - \edef#1{% - \unexpanded{#3}% - \noexpand\@ifnextchar[{\expandonce{\csname jlreq@fixjfm@\@tempa @\endcsname}}{\expandonce{\csname jlreq@fixjfm@\@tempa @@\endcsname}}% - } - \long\expandafter\edef\csname jlreq@fixjfm@\@tempa @\endcsname[##1]##2{% - \expandonce{\csname jlreq@original@\@tempa\endcsname}[##1]{##2}% - \unexpanded{#4}% - } - \long\expandafter\edef\csname jlreq@fixjfm@\@tempa @@\endcsname##1{% - \expandonce{\csname jlreq@original@\@tempa\endcsname}{##1}% - \unexpanded{#4}% - } - \edef\@tempa{\expandafter\@gobble\string#2}% - \jlreq@saveoriginalcs{\@tempa}% - \edef#2{% - \unexpanded{#3}% - \noexpand\@ifnextchar[{\expandonce{\csname jlreq@fixjfm@\@tempa @\endcsname}}{\expandonce{\csname jlreq@fixjfm@\@tempa @@\endcsname}}% - } - \expandafter\edef\csname jlreq@fixjfm@\@tempa @\endcsname[##1]{% - \expandonce{\csname jlreq@original@\@tempa\endcsname}[##1]% - \unexpanded{#4}% - } - \expandafter\edef\csname jlreq@fixjfm@\@tempa @@\endcsname{% - \expandonce{\csname jlreq@original@\@tempa\endcsname}% - \unexpanded{#4}% - } +% \footnoteと\footnotemarkの前後に\jlreq@hook@prenote/\jlreq@hook@postnoteを入れる +\jlreq@saveoriginalcs{footnote}% +\def\footnote{% + \jlreq@hook@prenote + \@ifnextchar[{\jlreq@fixjfm@footnote@}{\jlreq@fixjfm@footnote@@}% +} +\long\def\jlreq@fixjfm@footnote@[#1]#2{% + \jlreq@original@footnote[#1]{#2}% + \jlreq@hook@postnote +} +\long\def\jlreq@fixjfm@footnote@@#1{% + \jlreq@original@footnote{#1}% + \jlreq@hook@postnote +} +\jlreq@saveoriginalcs{footnotemark}% +\def\footnotemark{% + \jlreq@hook@prenote + \@ifnextchar[{\jlreq@fixjfm@footnotemark@}{\jlreq@fixjfm@footnotemark@@}% +} +\def\jlreq@fixjfm@footnotemark@[#1]{% + \jlreq@original@footnotemark[#1]% + \jlreq@hook@postnote +} +\def\jlreq@fixjfm@footnotemark@@{% + \jlreq@original@footnotemark + \jlreq@hook@postnote } \newcommand*\jlreq@referencemark@format[1]{#1} -\ifthenelse{\equal{\jlreq@referencemark}{inline}}{ - \newcommand*{\jlreq@notemark}[1]{% - \jlreq@ifydir{% - \hbox{}\hbox{\@textsuperscript{\normalfont\jlreq@referencemark@format{#1}}}\hbox{}% - }{% - \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{#1}}% - \raise\dimexpr.5\jlreq@gol - (\ht\@tempboxa + \dp\@tempboxa)/2\relax\box\@tempboxa - }% - } - \newcommand*{\jlreq@modify@noteandmark@fixjfm}[2]{% - \jlreq@modify@noteandmark{#1}{#2}{\inhibitglue}{\inhibitglue} - } -}{ - \newcommand*{\jlreq@notemark}[1]{{% - \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{#1}}% - % 行頭に来たときに頭を天にそろえる処理. - \jlreq@savepos@for@rest@linewidth - \ifdim\jlreq@current@linewidth<\wd\@tempboxa - \@tempdima=\jlreq@current@linewidth - \else +\newif\ifjlreqadjustreferencemark +\jlreqadjustreferencemarktrue +\jlreq@jlreqsetup@add{reference_mark}[inline,interlinear]{ + \def\jlreq@referencemark{#1} + \ifthenelse{\equal{\jlreq@referencemark}{inline}}{ + \def\jlreq@notemark##1{% + \jlreq@ifydir{% + \hbox{}\hbox{\@textsuperscript{\normalfont\jlreq@referencemark@format{##1}}}\hbox{}% + }{% + \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{##1}}% + \raise\dimexpr.5\jlreq@gol - \ht\@tempboxa\relax\box\@tempboxa + }% + } + \def\jlreq@hook@prenote{\inhibitglue} + \def\jlreq@hook@postnote{\inhibitglue} + }{% reference_mark=interlinear + \def\jlreq@notemark##1{{% + \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{##1}}% \@tempdima=\wd\@tempboxa - \fi - \setbox\jlreq@tempboxa=\hbox to\z@{\hskip-\@tempdima\raise\dimexpr.5\zw + (\ht\@tempboxa + \dp\@tempboxa)/2\relax\box\@tempboxa\hss}% - \dp\jlreq@tempboxa=0pt\ht\jlreq@tempboxa=0pt\box\jlreq@tempboxa}}% - \ifx l\jlreq@engine - % luatexの時は\inhibitglueすると\lastnodechar=-1になる - \newcommand*{\jlreq@modify@noteandmark@fixjfm}[2]{% - \jlreq@modify@noteandmark{#1}{#2}{% + % 行頭に来たときに頭を天にそろえる処理. + \ifjlreqadjustreferencemark + \jlreq@savepos@for@rest@linewidth + \ifdim\jlreq@current@linewidth<\wd\@tempboxa + \@tempdima=\jlreq@current@linewidth + \fi + \fi + \setbox\jlreq@tempboxa=\hbox to\z@{\hskip-\@tempdima\raise\dimexpr.5\zw + (\ht\@tempboxa + \dp\@tempboxa)/2\relax\box\@tempboxa\hss}% + \dp\jlreq@tempboxa=0pt\ht\jlreq@tempboxa=0pt\box\jlreq@tempboxa}% + }% + \ifx l\jlreq@engine + \def\jlreq@hook@prenote{% \jlreq@lastnodechar=\lastnodechar \ifnum\lastnodechar>-1\inhibitglue\fi - }{\jlreq@fixjfm} - } - \else - % (u)platexの時は代入すると\inhibitglueが効かなくなる - \newcommand*{\jlreq@modify@noteandmark@fixjfm}[2]{% - \jlreq@modify@noteandmark{#1}{#2}{% + } + \else + % (u)platexの時は代入すると\inhibitglueが効かなくなる + \def\jlreq@hook@prenote{% \ifnum\lastnodechar>-1\inhibitglue\fi \jlreq@lastnodechar=\lastnodechar - }{\jlreq@fixjfm} - } - \fi + } + \fi + \def\jlreq@hook@postnote{\jlreq@fixjfm} + } } -\jlreq@aftercls@addtodeletecs{\jlreq@modify@noteandmark@fixjfm} -\jlreq@modify@noteandmark@fixjfm{\footnote}{\footnotemark} +\jlreqsetup{reference_mark=inline} % \@footnotemarkをシンプルなものにする \def\jlreq@setdefaultnotemark#1#2{% \def#1{% @@ -2384,7 +2449,6 @@ \ifhmode\spacefactor\@x@sf\fi \relax} } -\def\@tempa{@footnotemark} \jlreq@setdefaultnotemark\@footnotemark\@makefnmark %.. 脚注 (縦書きの時は傍注,4.2.5) {% @@ -2415,15 +2479,19 @@ \global\jlreq@footnoteindent=\dimexpr\textwidth - \@tempdima\relax } % 4.2.5.d -\ifthenelse{\equal{\jlreq@footnotetext@indent}{one}}{ - \newcommand\@makefntext[1]{\parindent 1\jlreq@mol - \addtolength{\leftskip}{\dimexpr\jlreq@footnoteindent + 1\jlreq@mol\relax}% 全体をインデント+1文字分下げる - \noindent\hskip -1\jlreq@mol\jlreq@referencemark@format{\@thefnmark}\hskip 1\jlreq@mol#1}% 見出し出力と一文字分の空き -}{ - \newcommand\@makefntext[1]{\parindent 1\jlreq@mol - \addtolength{\leftskip}{\jlreq@footnoteindent}% 全体をインデント - \noindent\hskip 1\jlreq@mol\jlreq@referencemark@format{\@thefnmark}\hskip 1\jlreq@mol#1}% 見出し出力と一文字分の空き +\newcommand{\@makefntext}[1]{\jlreq@makefntext{#1}} +\jlreq@jlreqsetup@add{footnotetext_indent}{ + \ifthenelse{\equal{#1}{one}}{ + \long\def\jlreq@makefntext##1{\parindent 1\jlreq@mol + \addtolength{\leftskip}{\dimexpr\jlreq@footnoteindent + 1\jlreq@mol\relax}% 全体をインデント+1文字分下げる + \noindent\hskip -1\jlreq@mol\jlreq@referencemark@format{\@thefnmark}\hskip 1\jlreq@mol##1}% 見出し出力と一文字分の空き + }{ + \long\def\jlreq@makefntext##1{\parindent 1\jlreq@mol + \addtolength{\leftskip}{\jlreq@footnoteindent}% 全体をインデント + \noindent\hskip 1\jlreq@mol\jlreq@referencemark@format{\@thefnmark}\hskip 1\jlreq@mol##1}% 見出し出力と一文字分の空き + } } +\jlreqsetup{footnotetext_indent=one} % 合印 \renewcommand*{\@makefnmark}{% \jlreq@ifydir{\jlreq@notemark{\@thefnmark}}{\hbox{\jlreq@notemark{\@thefnmark}}}% @@ -2432,7 +2500,7 @@ \if@tate \renewcommand*{\thefootnote}{\jlreq@open@bracket@before@space\inhibitglue(\rensuji{\@arabic\c@footnote})\inhibitglue} \else - \renewcommand*{\thefootnote}{\arabic{footnote})\inhibitglue} + \renewcommand*{\thefootnote}{\arabic{footnote}\hbox{})\inhibitglue} \fi %.. 後注(4.2.4) @@ -2447,10 +2515,10 @@ \def\jlreq@endnote@texts{} \long\def\jlreq@endnote@addtext#1#2{% \expandafter\gdef\expandafter\jlreq@endnote@texts\expandafter{\jlreq@endnote@texts{{#1}{#2}}}} -\def\endnote{\@ifnextchar[{\jlreq@endnote}{\jlreq@endnote[]}} -\def\endnotemark{\@ifnextchar[{\jlreq@endnotemark}{\jlreq@endnotemark[]}} +\def\endnote{\jlreq@hook@prenote\@ifnextchar[{\jlreq@endnote}{\jlreq@endnote[]}} +\def\endnotemark{\jlreq@hook@prenote\@ifnextchar[{\jlreq@endnotemark}{\jlreq@endnotemark[]}} \def\endnotetext{\@ifnextchar[{\jlreq@endnotetext}{\jlreq@endnotetext[]}} -\long\def\jlreq@endnote[#1]#2{\jlreq@endnotemark[#1]\@endnotetext{#2}} +\long\def\jlreq@endnote[#1]#2{\jlreq@endnotemark[#1]\@endnotetext{#2}\jlreq@hook@postnote} \def\jlreq@endnotemark[#1]{% \jlreq@ifempty{#1}{% \stepcounter{\jlreq@endnotecounter}% @@ -2462,6 +2530,7 @@ \endgroup }% \@endnotemark + \jlreq@hook@postnote } \jlreq@setdefaultnotemark\@endnotemark\@makeendmark \long\def\jlreq@endnotetext[#1]#2{% @@ -2517,7 +2586,6 @@ \par \fi } -\jlreq@modify@noteandmark@fixjfm{\endnote}{\endnotemark} \jlreq@endnote@indent=2\jlreq@mol % 二行目以降を全角分下げる \newcommand{\@makeendtext}[1]{\parindent 1\jlreq@mol @@ -2525,56 +2593,67 @@ \def\@makeendmark{\@makefnmark} % \theendnoteの出力を仕込む -\jlreq@tempafalse -% \jlreq@tempcにセクション名たちを入れていく -\def\jlreq@tempc{} -\@for\jlreq@tempa:=\jlreq@endnote@position\do{ - \jlreq@switch{\jlreq@tempa}{ - {headings}{\jlreq@tempatrue} - {paragraph}{ - \jlreq@tempatrue% _paragraphの時は_headingsも有効にする - \PushPostHook{par}{% - \ifx\jlreq@endnote@texts\@empty\else - \vskip\dimexpr-\baselineskip\relax - \vskip\dimexpr0pt\relax - \theendnotes +\PushPostHook{par}{\jlreq@endnote@parhook} +\edef\jlreq@do{ + \unexpanded{\def\jlreq@hook@beforeheadings#1}{\expandonce{\jlreq@hook@beforeheadings{#1}}\unexpanded{\jlreq@endnote@hook@beforeheadings{#1}}} +} +\jlreq@do + +\jlreq@jlreqsetup@add{endnote_position}{ + \def\jlreq@endnote@parhook{} + \def\jlreq@endnote@hook@beforeheadings##1{} + \jlreq@tempafalse % headingsが指定された + % \jlreq@tempcにセクション名たちを入れていく + \def\jlreq@tempc{} + \@for\jlreq@tempa:=#1\do{ + \jlreq@switch{\jlreq@tempa}{ + {headings}{\jlreq@tempatrue} + {paragraph}{ + \jlreq@tempatrue% _paragraphの時は_headingsも有効にする + \def\jlreq@endnote@parhook{% + \ifx\jlreq@endnote@texts\@empty\else + \vskip\dimexpr-\baselineskip\relax + \vskip\dimexpr0pt\relax + \theendnotes + \fi + } + } + { + \def\@tempa##1##2\jlreq@endmark{##1} + \edef\@tempa{\expandafter\@tempa\jlreq@tempa\jlreq@endmark} + \expandafter\ifx\@tempa _ + \def\@tempa##1##2\jlreq@endmark{\def\jlreq@result{##2}} + \expandafter\@tempa\jlreq@tempa\jlreq@endmark + \edef\jlreq@tempc{\jlreq@tempc,\jlreq@result} + \else + \ClassError{jlreq}{Invalid value \jlreq@tempa\space in endnote_position}{\@ehc} \fi } } - { - \def\@tempa#1#2\jlreq@endmark{#1} - \edef\@tempa{\expandafter\@tempa\jlreq@tempa\jlreq@endmark} - \expandafter\ifx\@tempa _ - \def\@tempa#1#2\jlreq@endmark{\def\jlreq@result{#2}} - \expandafter\@tempa\jlreq@tempa\jlreq@endmark - \edef\jlreq@tempc{\jlreq@tempc,\jlreq@result} - \else - \ClassError{jlreq}{Invalid value \jlreq@tempa\space in endnote_position}{\@ehc} - \fi - } } -} -\ifjlreq@tempa - \edef\jlreq@do{% - \unexpanded{\def\jlreq@hook@beforeheadings#1}{\expandonce{\jlreq@hook@beforeheadings{#1}}% - \noexpand\theendnotes + \ifjlreq@tempa + \edef\jlreq@do{% + \unexpanded{\def\jlreq@endnote@hook@beforeheadings##1}{\expandonce{\jlreq@endnote@hook@beforeheadings{##1}}% + \noexpand\theendnotes + } } - } - \jlreq@do -\else - \@for\@tempa:=\jlreq@tempc\do{ - \ifx\@tempa\@empty\else - \edef\jlreq@do{% - \unexpanded{\def\jlreq@hook@beforeheadings#1}{\expandonce{\jlreq@hook@beforeheadings{#1}}% - \unexpanded{\def\@tempa}{\@tempa}\unexpanded{\def\@tempb{#1}}% - \unexpanded{\ifx\@tempa\@tempb\theendnotes\fi}% + \jlreq@do + \else + \@for\@tempa:=\jlreq@tempc\do{ + \ifx\@tempa\@empty\else + \edef\jlreq@do{% + \unexpanded{\def\jlreq@endnote@hook@beforeheadings##1}{\expandonce{\jlreq@endnote@hook@beforeheadings{##1}}% + \unexpanded{\def\@tempa}{\@tempa}\unexpanded{\def\@tempb{##1}}% + \unexpanded{\ifx\@tempa\@tempb\theendnotes\fi}% + } } - } - \jlreq@do - \fi - } -\fi + \jlreq@do + \fi + } + \fi +} +\jlreqsetup{endnote_position=headings} \AtEndDocument{\theendnotes} %.. 傍注(4.2.7) @@ -2598,7 +2677,7 @@ \fi \fi \ifx\jlreq@option@sidenote@width\@empty - \setlength{\marginparwidth}{\dimexpr\jlreq@tempdima - 2\jlreq@fontsize - \marginparsep\relax} + \setlength{\marginparwidth}{\dimexpr\jlreq@tempdima - 2\zw - \marginparsep\relax} % 4.7.2.b: 並列中の行長は15文から20字程度 \ifdim\marginparwidth>20\jlreq@mol \global\marginparwidth=20\jlreq@mol @@ -2615,6 +2694,10 @@ \global\setlength{\marginparpush}{.5\@tempdima} % 同上:g } +\ifdim\marginparwidth>25\zw\relax + \jlreq@note{並列注の字詰め方向の長さ(行長)は,15字から20字くらいである.ケースによっては25字程度にする場合もある (4.2.7).} +\fi + \def\jlreq@sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名 % (1) \footnoteとかと同じ形式 sidenote_type=number @@ -2632,104 +2715,88 @@ }% } \jlreq@setdefaultnotemark\@sidenotemark\@makesidemark -\ifthenelse{\equal{\jlreq@sidenote@type}{number}}{ - \def\jlreq@sidenotecounter{footnote}% 傍注用のカウンタ名 - \def\sidenote{\@ifnextchar[{\jlreq@sidenote}{\jlreq@sidenote[]}} - \def\sidenotemark{\@ifnextchar[{\jlreq@sidenotemark}{\jlreq@sidenotemark[]}} - \def\sidenotetext{\@ifnextchar[{\jlreq@sidenotetext}{\jlreq@sidenotetext[]}} - \long\def\jlreq@sidenote[#1]#2{\jlreq@sidenotemark[#1]\@sidenotetext{#2}} - \def\jlreq@sidenotemark[#1]{% - \jlreq@ifempty{#1}{% - \stepcounter{\jlreq@sidenotecounter}% - \expandafter\protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% - }{% - \begingroup - \csname c@\jlreq@sidenotecounter\endcsname #1\relax - \expandafter\unrestored@protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% - \endgroup - }% - \@sidenotemark - } - \long\def\jlreq@sidenotetext[#1]#2{% - \jlreq@ifempty{#1}{% - \expandafter\protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% - }{% - \begingroup - \csname c@\jlreq@sidenotecounter\endcsname#1\relax - \expandafter\unrestored@protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% - \endgroup - }% - \@sidenotetext{#2}% - } - \def\@sidenotemark{\@makesidemark} - \ifx l\jlreq@engine - \long\def\@makesidetext#1{\csname\jlreq@sidenotemarkname\endcsname\hspace{0.5\jlreq@mol}#1} - \else - % thefootnote = \inhibitglue (...だと\inhibitglueが効かない - \long\def\@makesidetext#1{ \kern-1\jlreq@mol\csname\jlreq@sidenotemarkname\endcsname\hspace{0.5\jlreq@mol}#1} - \fi - \def\@makesidemark{\@makefnmark} - \jlreq@modify@noteandmark@fixjfm{\sidenote}{\sidenotemark} -}{% sidenote_type = symbol - \jlreq@jlreqsetup@add{sidenote_symbol}{\def\jlreq@sidenote@defaultmark{#1}} - \jlreq@jlreqsetup@add{sidenote_keyword_font}{\def\jlreq@sidenote@keywordfont{#1}} - \jlreqsetup{ - sidenote_symbol=*,sidenote_keyword_font={}, - } - \def\sidenote{\jlreq@sidenote} - \def\sidenotemark{\jlreq@sidenotemark} - \def\sidenotetext{\jlreq@sidenotetext} - \long\def\jlreq@sidenote#1#2{\jlreq@sidenotemark{#1}\jlreq@sidenotetext{#1}{#2}} - \ifthenelse{\equal{\jlreq@referencemark}{inline}}{% - \def\@tempa{\inhibitglue} - }{ +\def\jlreq@sidenotecounter{footnote}% 傍注用のカウンタ名 +\jlreq@jlreqsetup@add{sidenote_type}[number,symbol]{\def\jlreq@sidenote@type{#1}} +\jlreqsetup{sidenote_type=number} +\jlreq@jlreqsetup@addtofinally{ + \ifthenelse{\equal{\jlreq@sidenote@type}{number}}{ + \def\sidenote{\jlreq@hook@prenote\@ifnextchar[{\jlreq@sidenote}{\jlreq@sidenote[]}} + \def\sidenotemark{\jlreq@hook@prenote\@ifnextchar[{\jlreq@sidenotemark}{\jlreq@sidenotemark[]}} + \def\sidenotetext{\@ifnextchar[{\jlreq@sidenotetext}{\jlreq@sidenotetext[]}} + \long\def\jlreq@sidenote[#1]#2{\jlreq@sidenotemark[#1]\@sidenotetext{#2}\jlreq@hook@postnote} + \def\jlreq@sidenotemark[#1]{% + \jlreq@ifempty{#1}{% + \stepcounter{\jlreq@sidenotecounter}% + \expandafter\protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% + }{% + \begingroup + \csname c@\jlreq@sidenotecounter\endcsname #1\relax + \expandafter\unrestored@protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% + \endgroup + }% + \@sidenotemark + \jlreq@hook@postnote + } + \long\def\jlreq@sidenotetext[#1]#2{% + \jlreq@ifempty{#1}{% + \expandafter\protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% + }{% + \begingroup + \csname c@\jlreq@sidenotecounter\endcsname#1\relax + \expandafter\unrestored@protected@xdef\csname\jlreq@sidenotemarkname\endcsname{\csname the\jlreq@sidenotecounter\endcsname}% + \endgroup + }% + \@sidenotetext{#2}% + } + % \hspace{0.5\jlreq@mol}の部分は二分空きにする例もある(4.2.7.g) \ifx l\jlreq@engine - \def\@tempa{% - \jlreq@lastnodechar=\lastnodechar - \ifnum\lastnodechar>-1\inhibitglue\fi - } + \long\def\@makesidetext#1{\csname\jlreq@sidenotemarkname\endcsname\hspace{0.5\jlreq@mol}#1} \else - \def\@tempa{% - \ifnum\lastnodechar>-1\inhibitglue\fi - \jlreq@lastnodechar=\lastnodechar - } + % thefootnote = \inhibitglue (...だと\inhibitglueが効かないので空白を挟む + \long\def\@makesidetext#1{ \kern-1\zw\csname\jlreq@sidenotemarkname\endcsname\hspace{0.5\jlreq@mol}#1} \fi - } - \edef\jlreq@sidenotemark#1{% - {\noexpand\reset@font\jlreq@sidenote@keywordfont #1}% - \expandonce{\@tempa}% - \unexpanded{% + \def\@makesidemark{\@makefnmark} + }{% sidenote_type = symbol + \def\sidenote{\jlreq@sidenote} + \def\sidenotemark{\jlreq@sidenotemark} + \def\sidenotetext{\jlreq@sidenotetext} + \long\def\jlreq@sidenote#1#2{\jlreq@sidenotemark{#1}\jlreq@sidenotetext{#1}{#2}} + \edef\jlreq@sidenotemark#1{% + {\unexpanded{\reset@font\jlreq@sidenote@keywordfont}#1}% + \noexpand\jlreq@hook@prenote \ifx\jlreq@sidenote@defaultmark\@empty\else - \expandafter\edef\csname\jlreq@sidenotemarkname\endcsname{\jlreq@sidenote@defaultmark}% - \@sidenotemark + \expandafter\edef\expandonce{\csname\jlreq@sidenotemarkname\endcsname}{\expandonce{\jlreq@sidenote@defaultmark}}% + \noexpand\@sidenotemark \fi - }% - } - \def\@sidenotemark{\@makesidemark} - % カスタマイズできるべき? - \long\def\jlreq@sidenotetext#1#2{% - \expandafter\def\csname\jlreq@sidenotemarkname\endcsname{\inhibitglue\null{\reset@font\sffamily\bfseries\inhibitglue #1}}% - \@sidenotetext{#2}% - } - \long\def\@makesidetext#1{{\sffamily\bfseries\csname\jlreq@sidenotemarkname\endcsname}\hspace*{1\jlreq@mol}#1} - \def\@makesidemark{\@makefnmark} - \ifthenelse{\equal{\jlreq@referencemark}{interlinear}}{\def\@tempa{\jlreq@fixjfm}}{\def\@tempa{\inhibitglue}} - \edef\jlreq@do{ - % \jlreq@lastnodecharの仕込みはすんでいる - \unexpanded{\long\def\sidenote#1#2}{% - \expandonce{\sidenote{#1}{#2}}% - \expandonce{\@tempa}% } - \unexpanded{\long\def\sidenotemark#1}{% - \expandonce{\sidenotemark{#1}}% - \expandonce{\@tempa}% + % カスタマイズできるべき? + \long\def\jlreq@sidenotetext#1#2{% + \expandafter\def\csname\jlreq@sidenotemarkname\endcsname{\inhibitglue\null{\reset@font\sffamily\bfseries\inhibitglue #1}}% + \@sidenotetext{#2}% + } + \long\def\@makesidetext#1{{\sffamily\bfseries\csname\jlreq@sidenotemarkname\endcsname}\hspace*{1\jlreq@mol}#1} + \def\@makesidemark{\@makefnmark} + + \edef\jlreq@do{ + % \jlreq@lastnodecharの仕込みはすんでいる + \unexpanded{\long\def\sidenote#1#2}{% + \expandonce{\sidenote{#1}{#2}}% + \noexpand\jlreq@hook@postnote + } + \unexpanded{\long\def\sidenotemark#1}{% + \expandonce{\sidenotemark{#1}}% + \noexpand\jlreq@hook@postnote + } } + \jlreq@do } - \jlreq@do } +\jlreq@jlreqsetup@add{sidenote_symbol}{\def\jlreq@sidenote@defaultmark{#1}} +\jlreq@jlreqsetup@add{sidenote_keyword_font}{\def\jlreq@sidenote@keywordfont{#1}} +\jlreqsetup{sidenote_symbol=*,sidenote_keyword_font={}} %.. 割注(3.4) -\def\inlinenotesize{.6\jlreq@fontsize} % 割注の文字サイズ +\def\inlinenotesize{.6\jlreq@jafontsize} % 割注の文字サイズ \let\jlreq@inlinenote@autolinebreak=\\% 計測時は\linebreakより\\の方が安定する.悩ましい……. \newcommand{\jlreq@inlinenote@kakkofontsize}{% @@ -2814,7 +2881,7 @@ \edef\jlreq@parshapearg{\jlreq@parshapearg 0pt \the\jlreq@tempdimb 0pt \the\jlreq@tempdimb}% }% \ifvoid\jlreq@resultbox - \ClassWarning{jlreq}{\string\inlinenote\space failed, maybe a bug}% + \ClassWarning{jlreq}{\string\warichu\space failed, maybe a bug}% \else \@tempcnta=0 \splittopskip=0pt\relax @@ -2831,6 +2898,7 @@ \ifnum\@tempcnta=0\jlreq@tempdima=\jlreq@tempdimb \else\jlreq@tempdima=\linewidth\fi \else + % 最終行は自然長に任せる \jlreq@tempdima=-1pt\relax \fi {% @@ -2838,25 +2906,18 @@ \vbadness=10000 \setbox\jlreq@tempboxa=\vsplit\@tempboxa to \dimexpr\jlreq@inlinenote@baselineskip*2\relax \vbadness=\@tempa\relax - % \jlreq@inlinenote@autolinebreak=\\の場合には,割注の長さを計測した物に長さに強制する \jlreq@getlastbox{\jlreq@tempboxa}% \setbox\jlreq@tempboxb=\box\jlreq@resultbox \jlreq@getlastbox{\jlreq@tempboxa}% \setbox\jlreq@tempboxa=\box\jlreq@resultbox - \ifx\jlreq@inlinenote@autolinebreak\\\relax - \ifdim\jlreq@tempdima>0pt\relax - \setbox\jlreq@tempboxa=\vbox{\jlreq@inlinenote@fontsize% - \hbox to \jlreq@tempdima{\unhbox\jlreq@tempboxa}% - \hbox to \jlreq@tempdima{\unhbox\jlreq@tempboxb}}% - \else - \setbox\jlreq@tempboxa=\vbox{\jlreq@inlinenote@fontsize% - \hbox{\unhbox\jlreq@tempboxa}% - \hbox{\unhbox\jlreq@tempboxb}}% - \fi - \else - \setbox\jlreq@tempboxa=\vbox{\jlreq@inlinenote@fontsize% + \ifdim\jlreq@tempdima>0pt\relax + \setbox\jlreq@tempboxa=\vbox{\jlreq@inlinenote@fontsize \hbox to \jlreq@tempdima{\unhbox\jlreq@tempboxa}% \hbox to \jlreq@tempdima{\unhbox\jlreq@tempboxb}}% + \else + \setbox\jlreq@tempboxa=\vbox{\jlreq@inlinenote@fontsize + \hbox{\unhbox\jlreq@tempboxa}% + \hbox{\unhbox\jlreq@tempboxb}}% \fi \jlreq@box@putcenter\jlreq@tempboxa }% @@ -2914,19 +2975,25 @@ }% } -% \jlreq@inlinenote@determinelength{テキスト(1)}{書式指定(2)}{\parshape指定(3)}{調整に使う行数(4)}{成功行数(5)}{最小長さ(6)}{最大長さ(7)} -% \jlreq@resultboxに整形結果を返す.見つからなかったらvoid +% \jlreq@inlinenote@determinelength{テキスト(1)}{フォントとか指定(2)}{\parshape指定(3)}{調整に使う行数(4)}{成功行数(5)}{最小長さ(6)}{最大長さ(7)} +% 次を満たす長さXの最小値を求める(ただし#6 <= X <= #7) +% #1を +% * #5 - #4行目までは#3の指定に従う +% * それ以降はX +% として整形した際に,#5行以内に収まる. +% \jlreq@resultboxに整形結果を返す(垂直ボックス).見つからなかったらvoid \newcommand{\jlreq@inlinenote@determinelength}[7]{% -% \message{#1 の試行開始,行数 = #5, \the#6 から \the#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% @@ -2943,6 +3010,7 @@ \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}}% @@ -2953,7 +3021,7 @@ \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 + \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}% @@ -2977,7 +3045,7 @@ % 柱:両柱と片柱(2.6.3) \@tempdima=\jlreq@speciallength{\jlreq@headfoot@sidemargin} \ifthenelse{\lengthtest{\@tempdima=0pt} \OR \(\lengthtest{0.99\zw < \@tempdima} \AND \lengthtest{\@tempdima < 1.01\zw}\)}{}{ - \jlreq@warning{ノンブルまたは柱は,基本版面の左右にそろえるか,全角アキだけ寄せた位置に配置する (2.6.1.b)} + \jlreq@note{ノンブルまたは柱は,基本版面の左右にそろえるか,全角アキだけ寄せた位置に配置する (2.6.1.b).} } % bottom-leftみたいなのを解釈する.入力の順番はどっちでも良いが,出力は<top/bottom><left/right>の順番 @@ -3040,10 +3108,10 @@ % 柱とノンブルの間 \def\jlreq@gap{1.5\zw}% \newif\ifjlreq@clearmark\jlreq@clearmarktrue - \newif\ifjlreq@tate\jlreq@tatefalse - \jlreq@parsekeyval[PageStyle]{ - *{tate}{\jlreq@tatetrue} - *{yoko}{\jlreq@tatefalse} + \newif\ifjlreq@pstate\jlreq@pstatefalse + \jlreq@parsekeyval[PageStyle:#1]{ + *{tate}{\jlreq@pstatetrue} + *{yoko}{\jlreq@pstatefalse} {nombre_position}{\def\jlreq@nombre@position{##1}} {running_head_position}{\def\jlreq@running@head@position{##1}} {nombre}{\def\jlreq@nombre{##1}} @@ -3110,15 +3178,15 @@ \expandafter\@tempb\jlreq@odd@running@head\jlreq@endmark\jlreq@endmark \ifx\jlreq@odd@running@head@level\@empty\else\ifx\jlreq@even@running@head@level\@empty\else \ifnum\jlreq@odd@running@head@level<\jlreq@even@running@head@level - \jlreq@warning{偶数ページには奇数ページよりアウトラインレベルの高い見出しを入れる (ページスタイル #1内,2.6.3.a)}% + \jlreq@note{偶数ページには奇数ページよりアウトラインレベルの高い見出しを入れる (ページスタイル #1内,2.6.3.a).}% \fi \fi\fi % \jlreq@[even/odd][head/foot]に入れていく.tateか否かで場合分け. - \ifjlreq@tate\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi{% + \ifjlreq@pstate\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi{% \ifx\jlreq@nombre@position\@empty\def\jlreq@nombre@position{0pt}\fi \ifx\jlreq@running@head@position\@empty\def\jlreq@running@head@position{0pt}\fi \if@tate\else - \jlreq@warning{ノンブルおよび柱を縦組にして配置するのは縦組の場合のみである (ページスタイル #1 内,2.6.1)}% + \jlreq@note{ノンブルおよび柱を縦組にして配置するのは縦組の場合のみである (ページスタイル #1 内,2.6.1).}% \fi % 柱とノンブルを入れる箱を作る(\jlreq@resultを展開すると\setboxするマクロがでる) \def\jlreq@make@tatebox##1{% @@ -3201,11 +3269,11 @@ \) \)}{% \if@twoside - \jlreq@warning{柱やノンブルは,左ページでは,基本版面の左端の延長線にノンブル又は柱の先頭をそろえて配置するか,基本版面の左端の延長線から基本版面の文字サイズの全角アキだけ右に寄せた位置に配置する (ページスタイル #1 内,2.6.1.b)}% + \jlreq@note{柱やノンブルは,左ページでは,基本版面の左端の延長線にノンブル又は柱の先頭をそろえて配置するか,基本版面の左端の延長線から基本版面の文字サイズの全角アキだけ右に寄せた位置に配置する (ページスタイル #1 内,2.6.1.b).}% \fi }{}% {\jlreq@font - \ifthenelse{\lengthtest{\jlreq@gap < 1.49\zw} \OR \( \lengthtest{\jlreq@gap > 1.51\zw} \AND \lengthtest{\jlreq@gap < 1.99\zw} \) \OR \lengthtest{\jlreq@gap > 2.01\zw}}{\jlreq@warning{ノンブルと柱との空き量は文字サイズの2倍又は1.5倍とする (ページスタイル #1 内,2.6.1.c)}}{}% + \ifthenelse{\lengthtest{\jlreq@gap < 1.49\zw} \OR \( \lengthtest{\jlreq@gap > 1.51\zw} \AND \lengthtest{\jlreq@gap < 1.99\zw} \) \OR \lengthtest{\jlreq@gap > 2.01\zw}}{\jlreq@note{ノンブルと柱との空き量は文字サイズの2倍又は1.5倍とする (ページスタイル #1 内,2.6.1.c).}}{}% }% % ##2を##1 = left/center/rightの場所,##4を##3の場所に置く.被った場合は##2を外側にする. % 戻り値は\jlreq@result @@ -3511,6 +3579,7 @@ \jlreq@iftdir{\yoko}{}% \rlap{\@textsuperscript{\normalfont\@thefnmark}}% }}% + \renewcommand{\jlreq@referencemark@format}[1]{\@makefnmark}% うーん \if@twocolumn \ifnum\col@number=\@ne \@maketitle @@ -3589,13 +3658,18 @@ \else \newenvironment{abstract}{% \ifnum0\if@twocolumn\else1\fi\ifjlreq@preamble1\fi>0 + \ifjlreq@preamble + \ifx l\jlreq@engine\else + \jlreq@pushhook@postpar{\futurelet\jlreq@nextchar\jlreq@openbracket@hook}% + \fi + \fi % とりあえず全部ボックスに入れる. \global\setbox\jlreq@abstractbox=\vtop\bgroup \ifjlreq@preamble % preamble後っぽく振る舞う \@noskipsecfalse % \@nodocumentが入っているので一時的に無効化 - \everypar{} + \everypar{}% \fi \if@twocolumn \parindent=0pt @@ -3639,7 +3713,11 @@ \fi \egroup \fi - \ifjlreq@preamble\else + \ifjlreq@preamble + \ifx l\jlreq@engine\else + \jlreq@pophook@postpar + \fi + \else \unvbox\jlreq@abstractbox \fi } @@ -3669,12 +3747,16 @@ \setlength\leftmarginv{1\jlreq@mol} \setlength\leftmarginvi{1\jlreq@mol} +%.. 箇条書き +\jlreq@jlreqsetup@add{itemization_beforeafter_space}{\def\jlreq@itemization@beforeafter@space{#1}} +\jlreq@jlreqsetup@add{itemization_itemsep}{\def\jlreq@itemization@itemsep{#1}} +\jlreqsetup{itemization_beforeafter_space=0pt,itemization_itemsep=0pt} % enumerate, itemize用初期化 \def\jlreq@init@list{% \setlength{\labelwidth}{2\jlreq@mol}% - \setlength{\topsep}{0pt}% + \setlength{\topsep}{\dimexpr\jlreq@itemization@beforeafter@space\relax}% \setlength{\partopsep}{0pt}% - \setlength{\itemsep}{0pt}% + \setlength{\itemsep}{\dimexpr\jlreq@itemization@itemsep\relax}% \setlength{\parsep}{0pt}% \setlength{\listparindent}{\parindent}% % itemizeは直後ベタ,enumerateは直後全角空き. @@ -3735,28 +3817,34 @@ \newcommand{\labelitemiv}{\hbox to 1\jlreq@mol{\hss ・\hss}} % 引用系.3.5.2の例. +\jlreq@jlreqsetup@add{quote_indent}{\def\jlreq@quote@indent{#1}} +\jlreq@jlreqsetup@add{quote_end_indent}{\def\jlreq@quote@end@indent{#1}} +\jlreq@jlreqsetup@add{quote_fontsize}[normalsize,small,footnotesize,scriptsize,tiny,]{\jlreq@ifempty{#1}{\def\jlreq@quote@fontsize{}}{\edef\jlreq@quote@fontsize{\expandonce{\csname #1\endcsname}}}} +\jlreq@jlreqsetup@add{quote_beforeafter_space}{\def\jlreq@quote@beforeafter@space{#1}} +\jlreqsetup{quote_indent=2\zw,quote_end_indent=0pt,quote_fontsize=,quote_beforeafter_space=0pt} + \newenvironment{verse} {\let\\\@centercr - \list{}{\itemsep\z@ \itemindent -2\jlreq@mol% + \list{}{\itemsep\z@ \itemindent -2\jlreq@mol \listparindent\itemindent \labelwidth\z@ \labelsep\z@ - \leftmargin=\jlreq@speciallength{\jlreq@quote@indent}% + \leftmargin=\dimexpr\jlreq@quote@indent\relax \addtolength{\leftmargin}{2\jlreq@mol}% - \rightmargin=\jlreq@speciallength{\jlreq@quote@end@indent}% - \csname\jlreq@quote@fontsize\endcsname + \rightmargin=\dimexpr\jlreq@quote@end@indent\relax + \jlreq@quote@fontsize \@tempdima=1\zw \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax \@tempdimc=\@tempdimb \divide\@tempdimb by \@tempdima\multiply\@tempdimb by \@tempdima - \topsep=\jlreq@speciallength{\jlreq@quote@beforeafter@space}% + \topsep=\dimexpr\jlreq@quote@beforeafter@space\relax \leftmargin=\dimexpr\leftmargin + \@tempdimc - \@tempdimb\relax}% \item\relax}{\endlist} \newenvironment{quotation} {\list{}{% - \leftmargin=\jlreq@speciallength{\jlreq@quote@indent}% - \rightmargin=\jlreq@speciallength{\jlreq@quote@end@indent}% - \csname\jlreq@quote@fontsize\endcsname + \leftmargin=\dimexpr\jlreq@quote@indent\relax + \rightmargin=\dimexpr\jlreq@quote@end@indent\relax + \jlreq@quote@fontsize \@tempdima=1\zw \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax \@tempdimc=\@tempdimb @@ -3766,14 +3854,14 @@ \itemindent\listparindent \labelwidth\z@ \labelsep\z@ - \topsep=\jlreq@speciallength{\jlreq@quote@beforeafter@space}% + \topsep=\dimexpr\jlreq@quote@beforeafter@space\relax \parsep\z@ \@plus.1\jlreq@gol}% \item\relax}{\endlist} \newenvironment{quote} {\list{}{% - \leftmargin=\jlreq@speciallength{\jlreq@quote@indent}% - \rightmargin=\jlreq@speciallength{\jlreq@quote@end@indent}% - \csname\jlreq@quote@fontsize\endcsname + \leftmargin=\dimexpr\jlreq@quote@indent\relax + \rightmargin=\dimexpr\jlreq@quote@end@indent\relax + \jlreq@quote@fontsize \@tempdima=1\zw \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax \@tempdimc=\@tempdimb @@ -4034,6 +4122,27 @@ } } +%. その他諸々 +%.. 縦中横 +\DeclareRobustCommand*{\tatechuyoko}[1]{% + \jlreq@ifydir{\ClassError{jlreq}{\string\tatechuyoko\space is not allowed in yoko mode}{\@ehc}}{}% + \jlreq@lastnodechar=\lastnodechar + \ifvmode\leavevmode\fi + \ifnum\jlreq@lastnodechar=-1\else + \inhibitglue + \jlreq@calc@jfmglue{\char\jlreq@lastnodechar}{阿}% + \ifdim\jlreq@resultskip=0pt\else\hskip\jlreq@resultskip\fi + \fi + \hbox{\yoko \vrule width 0pt height 0.88\zw depth 0.12\zw #1}% + \def\jlreq@do{% + \jlreq@isletter{\jlreq@nextchar}{% + \jlreq@calc@jfmglue{\jlreq@nextchar}{阿}% + \ifdim\jlreq@resultskip=0pt\else\hskip\jlreq@resultskip\fi + \inhibitglue + }{}% + }% + \futurelet\jlreq@nextchar\jlreq@do +} % 日にち \newif\if西暦 \西暦true @@ -4064,26 +4173,38 @@ \fi }}} -%. 定理環境 -\def\jlreq@theorem@abovebelowspace{1\baselineskip}%とりあえず前後に一行分のアキ +%.. 定理環境 \jlreq@saveoriginalcs{@begintheorem} -\def\@begintheorem#1#2{\topsep=\jlreq@theorem@abovebelowspace +\jlreq@saveoriginalcs{@opargbegintheorem} +\def\@begintheorem#1#2{\topsep=\dimexpr\jlreq@theorem@beforeafter@space\relax \trivlist\labelsep=1\jlreq@mol + \itemindent=\dimexpr\jlreq@theorem@indent\relax \item[\hskip \labelsep{\sffamily\bfseries #1\ #2}]} -\jlreq@saveoriginalcs{@opargbegintheorem} -\def\@opargbegintheorem#1#2#3{\topsep=\jlreq@theorem@abovebelowspace +\def\@opargbegintheorem#1#2#3{\topsep=\dimexpr\jlreq@theorem@beforeafter@space\relax \trivlist\labelsep=1\jlreq@mol + \itemindent=\dimexpr\jlreq@theorem@indent\relax \item[\hskip \labelsep{\sffamily\bfseries #1\ #2(#3)}]} - -\AtEndOfPackageFile*{amsthm}{ - \newtheoremstyle{jlreq}{\jlreq@theorem@abovebelowspace}{\jlreq@theorem@abovebelowspace}{\normalfont}{}{\sffamily\bfseries}{}{1\jlreq@mol}{\thmname{#1}\thmnumber{\ #2}\thmnote{ (#3)}} - \theoremstyle{jlreq} - \jlreq@saveoriginalcs{proof} - \jlreq@saveoriginalcs{endproof} +\AtEndOfPackageFile*{amsthm}{% + \jlreq@saveoriginalcs{proof}% + \jlreq@saveoriginalcs{endproof}% \def\proof{\@ifnextchar[{\jlreq@proof}{\jlreq@proof[\proofname]}} \def\jlreq@proof[#1]{\labelsep=1\jlreq@mol\jlreq@original@proof[{\normalfont\sffamily\bfseries #1\inhibitglue}\nopunct]} \renewcommand{\proofname}{証明} + \jlreq@setupamsthm + \theoremstyle{jlreq} +} +\def\jlreq@setupamsthm{ + \newtheoremstyle{jlreq}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\normalfont}{\dimexpr\jlreq@theorem@indent\relax}{\sffamily\bfseries}{}{1\jlreq@mol}{\thmname{##1}\thmnumber{\ ##2}\thmnote{ (##3)}} +} +\jlreq@jlreqsetup@add{theorem_beforeafter_space}{ + \def\jlreq@theorem@beforeafter@space{#1} + \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} +} +\jlreq@jlreqsetup@add{theorem_indent}{ + \def\jlreq@theorem@indent{#1} + \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{} } +\jlreqsetup{theorem_beforeafter_space=1\baselineskip,theorem_indent=0pt} % デフォルト設定 diff --git a/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua b/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua index 9ddd2936f78..a0d6134bd24 100644 --- a/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua +++ b/Master/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua @@ -2990,4 +2990,45 @@ local jfm={ ["zh"]=1, ["zw"]=1, } +local function add_space(before,after,glueorkern,space,ratio) + if jfm[before][glueorkern] == nil then jfm[before][glueorkern] = {} end + if jfm[before][glueorkern][after] == nil then jfm[before][glueorkern][after] = {0} end + local origratio = jfm[before][glueorkern][after].ratio + if origratio == nil then origratio = 0.5 end + jfm[before][glueorkern][after].ratio = (jfm[before][glueorkern][after][1] * origratio + space * ratio) / (jfm[before][glueorkern][after][1] + ratio) + jfm[before][glueorkern][after][1] = jfm[before][glueorkern][after][1] + space +end + +if jlreq ~= nil then + if type(jlreq.open_bracket_pos) == "string" then + local r = jlreq.open_bracket_pos:find("_") + local danraku = jlreq.open_bracket_pos:sub(1,r - 1) + local orikaeshi = jlreq.open_bracket_pos:sub(r + 1) + + -- 折り返し行頭の開き括弧を二分下げる……つもり + if orikaeshi == "nibu" then + -- widthを二分増やし,その代わりJFMグルーを二分減らす + jfm[1].width = jfm[1].width + 0.5 + for k,v in pairs(jfm) do + if type(k) == "number" then + add_space(k,1,"glue",-0.5,1) + end + end + end + + -- 段落行頭の下げ + if danraku == "zenkakunibu" then + add_space(90,1,"glue",0.5,1) + elseif danraku == "nibu" then + add_space(90,1,"glue",-0.5,1) + end + end + + -- ぶら下げ組を有効にする. + if jlreq.burasage == true then + for _,class in ipairs({6,7}) do + table.insert(jfm[class].end_adjust,-0.5) + end + end +end luatexja.jfont.define_jfm(jfm) |