summaryrefslogtreecommitdiff
path: root/language/japanese/jlreq
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-08-01 03:04:31 +0000
committerNorbert Preining <norbert@preining.info>2022-08-01 03:04:31 +0000
commitc7ecdfe2e07e2e010de5e2a8d94c001c5dc9fc27 (patch)
tree80bdca45c628ce054648b8b6adc4c97d21bd48bb /language/japanese/jlreq
parent0d7064c66024537b237407f8b36413b055cf9a9a (diff)
CTAN sync 202208010304
Diffstat (limited to 'language/japanese/jlreq')
-rw-r--r--language/japanese/jlreq/LICENSE12
-rw-r--r--language/japanese/jlreq/Makefile274
-rw-r--r--language/japanese/jlreq/README-ja.md546
-rw-r--r--language/japanese/jlreq/README-template.html94
-rw-r--r--language/japanese/jlreq/README-template.tex68
-rw-r--r--language/japanese/jlreq/README.md181
-rw-r--r--language/japanese/jlreq/jfm-jlreq-jidori.lua190
-rw-r--r--language/japanese/jlreq/jfm-jlreq.lua1195
-rw-r--r--language/japanese/jlreq/jlreq-complements.sty259
-rw-r--r--language/japanese/jlreq/jlreq-helpers.sty510
-rw-r--r--language/japanese/jlreq/jlreq-ja.pdfbin371560 -> 0 bytes
-rw-r--r--language/japanese/jlreq/jlreq-trimmarks-ja.md174
-rw-r--r--language/japanese/jlreq/jlreq-trimmarks.md168
-rw-r--r--language/japanese/jlreq/jlreq-trimmarks.sty981
-rw-r--r--language/japanese/jlreq/jlreq.cls6553
-rw-r--r--language/japanese/jlreq/jlreq.pdfbin119802 -> 0 bytes
-rw-r--r--language/japanese/jlreq/luajfm2pl.lua342
-rw-r--r--language/japanese/jlreq/make_variant_jfm.lua211
18 files changed, 0 insertions, 11758 deletions
diff --git a/language/japanese/jlreq/LICENSE b/language/japanese/jlreq/LICENSE
deleted file mode 100644
index 194b3d9994..0000000000
--- a/language/japanese/jlreq/LICENSE
+++ /dev/null
@@ -1,12 +0,0 @@
-(2-clause BSD license)
-jlreq and jlreq-trimmarks
-Copyright 2017-2022, Noriyuki Abe.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/language/japanese/jlreq/Makefile b/language/japanese/jlreq/Makefile
deleted file mode 100644
index ed84b71336..0000000000
--- a/language/japanese/jlreq/Makefile
+++ /dev/null
@@ -1,274 +0,0 @@
-TEXMF:=$(shell kpsewhich -var-value=TEXMFHOME)
-MAKEJVFCNF:=$(shell ls -R $(shell kpsewhich --var-value=TEXMFDIST)/fonts/source | awk '/:$$/{sub(/:$$/,"");f=$$0} tolower($$0) ~ /makejvf-upjpn\.cnf$$/{print f"/"$$0}' | head -n 1)
-
-.PHONY: all jfm doc latexdoc pdfdoc htmldoc jfm-install cls-install sty-install install tds uninstall jfmclean docclean clean
-
-all: jfm
-
-jfm: \
- jfm-jlreqv.lua jfm-jlreqv-jidori.lua \
- jlreq.tfm bjlreq.tfm zjlreq.tfm bzjlreq.tfm \
- jlreq.vf bjlreq.vf zjlreq.vf bzjlreq.vf \
- ujlreq.tfm ubjlreq.tfm uzjlreq.tfm ubzjlreq.tfm \
- ujlreq.vf ubjlreq.vf uzjlreq.vf ubzjlreq.vf \
- ujlreq-q.tfm ubjlreq-q.tfm uzjlreq-q.tfm ubzjlreq-q.tfm \
- ujlreq-q.vf ubjlreq-q.vf uzjlreq-q.vf ubzjlreq-q.vf \
- jlreqg.tfm bjlreqg.tfm zjlreqg.tfm bzjlreqg.tfm \
- jlreqg.vf bjlreqg.vf zjlreqg.vf bzjlreqg.vf \
- ujlreqg.tfm ubjlreqg.tfm uzjlreqg.tfm ubzjlreqg.tfm \
- ujlreqg.vf ubjlreqg.vf uzjlreqg.vf ubzjlreqg.vf \
- ujlreqg-q.tfm ubjlreqg-q.tfm uzjlreqg-q.tfm ubzjlreqg-q.tfm \
- ujlreqg-q.vf ubjlreqg-q.vf uzjlreqg-q.vf ubzjlreqg-q.vf \
- jlreq-v.tfm bjlreq-v.tfm zjlreq-v.tfm bzjlreq-v.tfm \
- jlreq-v.vf bjlreq-v.vf zjlreq-v.vf bzjlreq-v.vf \
- ujlreq-v.tfm ubjlreq-v.tfm uzjlreq-v.tfm ubzjlreq-v.tfm \
- ujlreq-v.vf ubjlreq-v.vf uzjlreq-v.vf ubzjlreq-v.vf \
- jlreqg-v.tfm bjlreqg-v.tfm zjlreqg-v.tfm bzjlreqg-v.tfm \
- jlreqg-v.vf bjlreqg-v.vf zjlreqg-v.vf bzjlreqg-v.vf \
- ujlreqg-v.tfm ubjlreqg-v.tfm uzjlreqg-v.tfm ubzjlreqg-v.tfm \
- ujlreqg-v.vf ubjlreqg-v.vf uzjlreqg-v.vf ubzjlreqg-v.vf \
- jlreq-jidori.tfm jlreq-jidori.vf jlreqg-jidori.tfm jlreqg-jidori.vf \
- jlreq-v-jidori.tfm jlreq-v-jidori.vf jlreqg-v-jidori.tfm jlreqg-v-jidori.vf \
- ujlreq-jidori.tfm ujlreq-jidori.vf ujlreqg-jidori.tfm ujlreqg-jidori.vf \
- ujlreq-jidori-q.tfm ujlreq-jidori-q.vf ujlreqg-jidori-q.tfm ujlreqg-jidori-q.vf \
- ujlreq-v-jidori.tfm ujlreq-v-jidori.vf ujlreqg-v-jidori.tfm ujlreqg-v-jidori.vf
-
- rm -f rml.tfm rmlv.tfm gbm.tfm gbmv.tfm uprml-h.tfm uprml-hq.tfm upgbm-h.tfm upgbm-hq.tfm uprml-v.tfm uprml-vq.tfm upgbm-v.tfm upgbm-vq.tfm
-
-# .pl
-u%-v.pl: jfm-%v-pl.lua luajfm2pl.lua
- texlua luajfm2pl.lua $*v-pl $@
-
-%-v.pl: jfm-%v-pl.lua luajfm2pl.lua
- texlua luajfm2pl.lua --noutf $*v-pl $@
-
-u%.pl: jfm-%-pl.lua luajfm2pl.lua
- texlua luajfm2pl.lua $*-pl $@
-
-%.pl: jfm-%-pl.lua luajfm2pl.lua
- texlua luajfm2pl.lua --noutf $*-pl $@
-
-jlreq-jidori.pl: jfm-jlreq-jidori-pl.lua
- texlua luajfm2pl.lua --noutf jlreq-jidori-pl $@
-
-jlreq-v-jidori.pl: jfm-jlreqv-jidori-pl.lua
- texlua luajfm2pl.lua --noutf jlreqv-jidori-pl $@
-
-ujlreq-jidori.pl: jfm-jlreq-jidori-pl.lua
- texlua luajfm2pl.lua jlreq-jidori-pl $@
-
-ujlreq-v-jidori.pl: jfm-jlreqv-jidori-pl.lua
- texlua luajfm2pl.lua jlreqv-jidori-pl $@
-
-
-# .vf
-u%g-q.vf: u%g-q.tfm
- makejvf -i -u jisq $< upgbm-hq.tfm
-
-u%-q.vf: u%-q.tfm
- makejvf -i -u jisq $< uprml-hq.tfm
-
-u%g-v.vf: u%g-v.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} $< upgbm-v.tfm
-
-u%g.vf: u%g.tfm u%g-q.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} -H -U u$*g-q $< upgbm-h.tfm
-
-%g-v.vf: %g-v.tfm
- makejvf -i $< gbmv.tfm
-
-%g.vf: %g.tfm
- makejvf -i $< gbm.tfm
-
-u%-v.vf: u%-v.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} $< uprml-v.tfm
-
-%-v.vf: %-v.tfm
- makejvf -i $< rmlv.tfm
-
-u%.vf: u%.tfm u%-q.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} -H -U u$*-q $< uprml-h.tfm
-
-%.vf: %.tfm
- makejvf -i $< rml.tfm
-
-jlreq-jidori.vf: jlreq-jidori.tfm
- makejvf -i $< rml.tfm
-
-jlreq-v-jidori.vf: jlreq-v-jidori.tfm
- makejvf -i $< rmlv.tfm
-
-jlreqg-jidori.vf: jlreqg-jidori.tfm
- makejvf -i $< gbm.tfm
-
-jlreqg-v-jidori.vf: jlreqg-v-jidori.tfm
- makejvf -i $< gbmv.tfm
-
-ujlreq-jidori-q.vf: ujlreq-jidori-q.tfm
- makejvf -i -u jisq $< uprml-hq.tfm
-
-ujlreqg-jidori-q.vf: ujlreqg-jidori-q.tfm
- makejvf -i -u jisq $< upgbm-hq.tfm
-
-ujlreq-jidori.vf: ujlreq-jidori.tfm ujlreq-jidori-q.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} -H -U ujlreq-jidori-q $< uprml-h.tfm
-
-ujlreq-v-jidori.vf: ujlreq-v-jidori.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} -H $< uprml-v.tfm
-
-ujlreqg-jidori.vf: ujlreqg-jidori.tfm ujlreqg-jidori-q.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} -H -U ujlreqg-jidori-q $< upgbm-h.tfm
-
-ujlreqg-v-jidori.vf: ujlreqg-v-jidori.tfm
- makejvf -i -u custom -t ${MAKEJVFCNF} -H $< upgbm-v.tfm
-
-
-# .tfm
-u%-q.tfm: u%.pl
- uppltotf -kanji=uptex $< $@
-
-u%g-q.tfm: u%-q.tfm
- cp $< $@
-
-%g-v.tfm: %-v.tfm
- cp $< $@
-
-%g.tfm: %.tfm
- cp $< $@
-
-u%.tfm: u%.pl
- uppltotf -kanji=uptex $< $@
-
-%.tfm: %.pl
- ppltotf -kanji=utf8 $< $@
-
-ujlreq%-jidori.tfm: ujlreq%-jidori.pl
- uppltotf -kanji=uptex $< $@
-
-jlreq%-jidori.tfm: jlreq%-jidori.pl
- ppltotf -kanji=utf8 $< $@
-
-ujlreqg-jidori.tfm: ujlreq-jidori.tfm
- cp $< $@
-
-ujlreqg-v-jidori.tfm: ujlreq-v-jidori.tfm
- cp $< $@
-
-jlreqg-jidori.tfm: jlreq-jidori.tfm
- cp $< $@
-
-jlreqg-v-jidori.tfm: jlreq-v-jidori.tfm
- cp $< $@
-
-ujlreq-jidori-q.tfm: ujlreq-jidori.pl
- uppltotf -kanji=uptex $< $@
-
-ujlreqg-jidori-q.tfm: ujlreq-jidori-q.tfm
- cp $< $@
-
-
-jfm-jlreqv.lua jfm-jlreq-pl.lua jfm-bjlreq-pl.lua jfm-zjlreq-pl.lua jfm-bzjlreq-pl.lua jfm-jlreqv-pl.lua jfm-bjlreqv-pl.lua jfm-zjlreqv-pl.lua jfm-bzjlreqv-pl.lua jfm-jlreqv-jidori.lua jfm-jlreq-jidori-pl.lua jfm-jlreqv-jidori-pl.lua: make_variant_jfm.lua jfm-jlreq.lua jfm-jlreq-jidori.lua
- texlua make_variant_jfm.lua
-
-doc: pdfdoc htmldoc
-
-latexdoc: jlreq.tex jlreq-ja.tex
-
-jlreq%tex: README%md README-template.tex
- pandoc --verbose -f gfm -t latex --pdf-engine=lualatex --template README-template.tex $< -o $@
-
-pdfdoc: jlreq.pdf jlreq-ja.pdf
-
-jlreq.pdf: README.md README-template.tex
- sed -e "s/\\[README-ja.md\\](README-ja.md)/[jlreq-ja.pdf](jlreq-ja.pdf)/" README.md | pandoc --verbose -f gfm -t latex --pdf-engine=lualatex --template README-template.tex -o $@
-
-jlreq-ja.pdf: README-ja.md README-template.tex
- pandoc --verbose -f gfm -t latex --pdf-engine=lualatex --template README-template.tex $< -o $@
-
-htmldoc: jlreq.html jlreq-ja.html jlreq-trimmarks.html jlreq-trimmarks-ja.html
-
-jlreq-ja.html: README-ja.md README-template.html
- pandoc --verbose -f gfm -t html5 -V lang=ja -M title=jlreq --template README-template.html -o jlreq-ja.html README-ja.md
-
-jlreq.html: README.md README-template.html
- sed -e "s/\\[README-ja.md\\](README-ja.md)/[jlreq-ja.html](jlreq-ja.html)/" README.md | pandoc --verbose -f gfm -t html5 -V lang=en -M title=jlreq --template README-template.html -o jlreq.html
-
-jlreq-trimmarks-ja.html: jlreq-trimmarks-ja.md README-template.html
- pandoc --verbose -f gfm -t html5 -V lang=ja -M title=jlreq-trimmarks --template README-template.html -o jlreq-trimmarks-ja.html jlreq-trimmarks-ja.md
-
-jlreq-trimmarks.html: jlreq-trimmarks.md README-template.html
- pandoc --verbose -f gfm -t html5 -V lang=en -M title=jlreq-trimmarks --template README-template.html -o jlreq-trimmarks.html jlreq-trimmarks.md
-
-
-jfm-install: jfm
- mkdir -p ${TEXMF}/fonts/tfm/public/jlreq
- install *.tfm ${TEXMF}/fonts/tfm/public/jlreq
- mkdir -p ${TEXMF}/fonts/vf/public/jlreq
- install *.vf ${TEXMF}/fonts/vf/public/jlreq
- mkdir -p ${TEXMF}/tex/luatex/jlreq
- install jfm-jlreqv.lua jfm-jlreq.lua jfm-jlreq-jidori.lua jfm-jlreqv-jidori.lua ${TEXMF}/tex/luatex/jlreq
-
-cls-install:
- mkdir -p ${TEXMF}/tex/latex/jlreq
- install jlreq-helpers.sty ${TEXMF}/tex/latex/jlreq
- install jlreq-complements.sty ${TEXMF}/tex/latex/jlreq
- install jlreq.cls ${TEXMF}/tex/latex/jlreq
-
-sty-install:
- mkdir -p ${TEXMF}/tex/latex/jlreq
- install jlreq-trimmarks.sty ${TEXMF}/tex/latex/jlreq
-
-install: jfm-install cls-install sty-install
-
-tds: jfm jlreq.cls README.md README-ja.md LICENSE jlreq.html jlreq-ja.html jlreq-trimmarks.html jlreq-trimmarks-ja.html jlreq.pdf jlreq-ja.pdf
- mkdir -p ./tds/fonts/tfm/public/jlreq
- cp -f *.tfm ./tds/fonts/tfm/public/jlreq
- mkdir -p ./tds/fonts/vf/public/jlreq
- cp -f *.vf ./tds/fonts/vf/public/jlreq
- mkdir -p ./tds/tex/luatex/jlreq
- cp jfm-jlreq.lua ./tds/tex/luatex/jlreq
- cp jfm-jlreqv.lua ./tds/tex/luatex/jlreq
- cp jfm-jlreq-jidori.lua ./tds/tex/luatex/jlreq
- cp jfm-jlreqv-jidori.lua ./tds/tex/luatex/jlreq
- mkdir -p ./tds/tex/latex/jlreq
- cp jlreq.cls ./tds/tex/latex/jlreq
- cp jlreq-helpers.sty ./tds/tex/latex/jlreq
- cp jlreq-complements.sty ./tds/tex/latex/jlreq
- cp jlreq-trimmarks.sty ./tds/tex/latex/jlreq
- mkdir -p ./tds/doc/latex/jlreq
- cp README.md ./tds/doc/latex/jlreq
- cp README-ja.md ./tds/doc/latex/jlreq
- cp jlreq-trimmarks.md ./tds/doc/latex/jlreq
- cp jlreq-trimmarks-ja.md ./tds/doc/latex/jlreq
- cp LICENSE ./tds/doc/latex/jlreq
- cp jlreq.html ./tds/doc/latex/jlreq
- cp jlreq-ja.html ./tds/doc/latex/jlreq
- cp jlreq-trimmarks.html ./tds/doc/latex/jlreq
- cp jlreq-trimmarks-ja.html ./tds/doc/latex/jlreq
- cp jlreq.pdf ./tds/doc/latex/jlreq
- cp jlreq-ja.pdf ./tds/doc/latex/jlreq
- mkdir -p ./tds/source/latex/jlreq
- cp README-template.html ./tds/source/latex/jlreq
- cp README-template.tex ./tds/source/latex/jlreq
- cp Makefile ./tds/source/latex/jlreq
- cp make_variant_jfm.lua ./tds/source/latex/jlreq
- cp luajfm2pl.lua ./tds/source/latex/jlreq
-
-uninstall:
- rm -rf ${TEXMF}/fonts/tfm/public/jlreq
- rm -rf ${TEXMF}/fonts/vf/public/jlreq
- rm -rf ${TEXMF}/tex/luatex/jlreq
- rm -rf ${TEXMF}/tex/latex/jlreq
-
-jfmclean:
- rm -f *jlreq*.tfm *jlreq*.pl *jlreq*.vf
- rm -f jfm-jlreqv.lua
- rm -f jfm-*jlreq*-pl.lua
- rm -f jfm-jlreqv-jidori.lua
-
-docclean:
- rm -f jlreq.tex jlreq.pdf jlreq.html jlreq-ja.tex jlreq-ja.pdf jlreq-ja.html jlreq-trimmarks.html jlreq-trimmarks-ja.html
-
-clean: jfmclean docclean
-
-
diff --git a/language/japanese/jlreq/README-ja.md b/language/japanese/jlreq/README-ja.md
deleted file mode 100644
index 78766ca570..0000000000
--- a/language/japanese/jlreq/README-ja.md
+++ /dev/null
@@ -1,546 +0,0 @@
-# jlreq
-
-## これは何?
-[日本語組版処理の要件](https://www.w3.org/TR/jlreq/?lang=ja)の実装を試みる[LuaTeX-ja](https://osdn.jp/projects/luatex-ja/wiki/FrontPage) / pLaTeX / upLaTeX用のクラスファイルと,それに必要なJFMの組み合わせです.
-
-## 提供されるもの
-クラスファイルjlreq.clsと,横書きLuaTeX-ja用のJFMであるjfm-jlreq.luaが用意されています.また,縦書きのJFMやpLaTeX / upLaTeX用のJFMを生成するいくつかのスクリプトがあります.
-
-## インストール
-`make`で必要なJFMを生成してください.その後,
-
-* *.tfm -> $TEXMF/fonts/tfm/public/jlreq
-* *.vf -> $TEXMF/fonts/vf/public/jlreq
-* jfm-jlreq.lua, jfm-jlreqv.lua, jfm-jlreq-jidori.lua jfm-jlreqv-jidori.lua -> $TEXMF/tex/luatex/jlreq
-* jlreq.cls, jlreq-helpers.sty -> $TEXMF/tex/latex/jlreq
-
-と配置します.`make install`とすると,$TEXMF=$TEXMFHOMEとしてこのコピーを行います.
-
-## 動作環境
-pLaTeX / upLaTeX / LuaLaTeX上で動きます.以下のパッケージを内部で読み込みます.
-
-* (常時):l3keys2e,lmodern
-* (LuaLaTeX非利用時):everyhook
-* (LuaLaTeX利用時):luatexja,luatexja-adjust
-
-リリース時点での最新版での動作を確認しています.
-
-
-## 使い方
-通常通り
-```latex
-\documentclass{jlreq}
-```
-とします.これで横書きのarticle相当の文書クラスとなります.エンジンは自動判定されますが,指定する場合はクラスオプションに`platex/uplatex/lualatex`のいずれかを渡してください.縦書きにするには`tate`オプションを渡します.また,reportやbook相当の文書クラスとするには,それぞれ`report`や`book`オプションを渡します.たとえば,縦書きの本を作成するには
-```latex
-\documentclass[tate,book]{jlreq}
-```
-とします.
-
-その他,`oneside` / `twoside` / `onecolumn` / `twocolumn` / `titlepage` / `notitlepage` / `draft` / `final` / `landscape` / `openright` / `openany` / `leqno` / `fleqn`というよくあるオプションを受け付けます.また`disablejfam`オプションを渡すと,和文フォントを数式用に登録しません.
-
-標準的な文書クラスと同じように中身を書くことができますが,次のような命令が追加 / 拡張されています.なお,本ドキュメントでは[日本語組版処理の要件](https://www.w3.org/TR/jlreq/?lang=ja)における用語を断りなく使います.
-
-### `\jlreqsetup`
-設定用命令です.プリアンブルでしか使えません.文書に対する設定は,クラスオプションとして行うか`\jlreqsetup`を通じて行うかします.どちらで設定するかは設定項目によります.
-
-### `\section`
-`\section*[running head]{見出し文字列}[副題]`というように,通常の書式に加えて副題を受け付けられるように拡張されています.その他,`\part`(articleのみ),`\chapter`(book/reportのみ),`\subsection`,`\subsubsection`も副題を受け付けます.
-
-### `abstract`環境
-プリアンブルにもかけるようになっています.プリアンブルに書かれた場合は,`\maketitle`とともに出力されます.二段組の場合は,段組にならず概要を出力することができます.
-
-### `\sidenote`
-この命令は傍注の幅が正の時にのみ定義されます.デフォルトの基本版面ではこの幅は0に設定されています.従って`\sidenote`は定義されません.後の基本版面の設定を参考にしてください.
-
-`\sidenote`は傍注(縦組みの場合は脚注)を出力します.内部では`\marginpar`を使っています.デフォルトでは`\footnote`と同様の書式となりますが,`\jlreqsetup`で`sidenote_type=symbol`が指定されている場合,その書式は`\sidenote{該当項目}{注}`となります.たとえば
-```latex
-刊行できる\sidenote{原稿}{印刷などの方法により……}を入手する仕事である.
-```
-とします.後の説明も参照してください.
-
-
-### `\endnote`
-後注を指定します.`\footnote`と同様の書式です.デフォルトでは,注自身の出力は見出し直前に行われます.この動作は`\jlreqsetup`に`endnote_position`を渡すことで制御できます.詳しくは後の注関係の説明をご覧ください.また`\theendnotes`を実行するとその場に出力をします.
-
-### `\warichu`
-割注を出力します.行分割位置などは自動で計算されます.(複数回のコンパイルが必要.)`\warichu*`ではこれらの位置を手動で指定できます.書式は
-```
-\warichu*{(一行目前) & (一行目後)\\ (二行目前) & (二行目後)...}
-```
-です.`&`が省略されている場合は自動で調整されます.
-
-### `\tatechuyoko`
-縦中横を出力します.`\tatechuyoko{<中身>}`とします.`\tatechuyoko`は縦書きでない場所で使うとエラーになりますが,`\tatechuyoko*`は縦書きでない場所ではそのまま出力されます.
-
-### `\jidori`
-`\jidori{<寸法>}{<中身>}`により,中身を寸法の長さに字取りしたものを出力することができます.
-
-### `\akigumi`
-`\akigumi{<寸法>}{<中身>}`により,中身の文字間を寸法の長さとして空き組した結果を出力することができます.ただしLuaLaTeX利用時以外は正しい出力結果とはなりません.
-
-### `\jafontsize`
-和文フォントサイズを指定する`\fontsize`です.クラスオプションで`jafontscale=0.9`とされている場合,`\fontsize{9pt}{15pt}`とすると和文フォントのサイズは`8.1pt`となりますが,`\jafontsize{9pt}{15pt}`とすると`9pt`となります.(欧文フォントサイズは`10pt`となる.)なお,第二引数は`\fontsize`の第二引数と全く同じです.
-
-### `\ `
-全角空白(U+3000)一文字からなるマクロです.和字間隔を挿入します.LuaLaTeXでは` `のみでも和字間隔を入力できます.
-
-### その他
-* ルビや圏点は提供されません.[PXrubrica](https://github.com/zr-tex8r/PXrubrica)または`luatexja-ruby`(LuaLaTeX,LuaTeX-jaパッケージに付属)を使うと良いかと思います.
-* pLaTeX / upLaTeX利用時はそれぞれ`zw`および`zh`に展開されるマクロ`\zw`と`\zh`が定義されます.LuaLaTeX利用時はLuaTeX-ja内で同名のマクロが定義されます.
-* 日本語組版処理の要件2.3.2.dによれば,横組みにおける二段組の最後のページの各段の行数は揃えることが望ましいとされていますが,この処理は行われません.`nidanfloat`パッケージを使い,
-
- ```latex
- \usepackage[balance]{nidanfloat}
- ```
-
- とするとこの処理が行われます.ただし,最終ページでの`\newpage`や`\clearpage`が正しく動作しません.詳しくは`nidanfloat`パッケージのマニュアルをご覧ください.
-* フォントを設定する機能は有していません.和文フォントは,LuaLaTeX利用時は`luatexja-fontspec`や`luatexja-preset`(いずれもLuaTeX-jaパッケージに付属)により設定することができます.dvipdfmxを使う場合は,[PXchfon](https://github.com/zr-tex8r/PXchfon)での設定が可能です.
-* 和文間の空白((u)pTeXでは`\kanjiskip`に,LuateX-jaでは`kanjiskip`パラメータに格納されているもの)は,デフォルトでは1/4文字分までの空きを許容した設定になっています.これは日本語組版処理の要件に従ったものですが,TeXでの機能の制限などもあり,場合によってはあまり適切ではない結果を生じることがあります.この値を変更する場合は,`\jlreqkanjiskip`を再定義してください.例えば,
-
- ```latex
- \documentclass{jlreq}
- \renewcommand{\jlreqkanjiskip}{0pt plus .1\zw minus .01\zw}
- \begin{document}
- (本文)
- \begin{document}
- ```
-
- のようにします.和文と欧文の間の空白((u)pTeXでは`\xkanjiskip`に,LuateX-jaでは`xkanjiskip`パラメータに格納されているもの)も同様に`\jlreqxkanjiskip`を再定義することで変更することができます.
-* `book`指定時に,クラスオプションとして`openany`を指定していても,`\mainmatter`の後に白ページが挿入されることがあります.これは標準のクラスファイルと挙動を合わせたものです.`\jlreqsetup{mainmatter_pagebreak=clearpage}`とすることで白ページが入らなくなりますが,デフォルトでは`\mainmatter`でページ数をリセットしますので,ページ数の偶奇の整合性がとれなくなる可能性があります.`\jlreqsetup{frontmatter_pagination={arabic,continuous}}`のようにして通しノンブルに変更することを検討してみてください.詳しくは下記の「前付きなど」を参照してください.
-
-
-## 各種設計
-設計はクラスオプションまたは`\jlreqsetup`によりkeyval形式で行います.ただし,クラスオプションではLaTeXの実装により,本来可能な入力が受け付けられないケースがあります.多くの場合は空白を除くことにより解決します.
-
-以下では次の用法を使います.
-
-* `[A/B]`:AまたはBです.`[A/B/C]`等も同様.
-* `<寸法>`:TeXが認識する寸法です.簡単な式(`10pt+10pt`のような)を使うこともできます.また,クラスオプションでは,場合によっては次のような特殊な値を使うこともできます.(これらはpLaTeX / upLaTeXではもとから利用可能ですが,LuaLaTeXでも利用可能なように処理されています.)`\jlreqsetup`内のような場所では,常に`\zw`や`\zh`により全角幅が記述できます.以下,たとえば`Q`,`H`が利用可能な場合は`<寸法;Q,H>`のように記述します.
- - `Q`,`H`:0.25mmと解釈されます.
- - `zw`, `zh`:全角幅として解釈されます.
-* `<コード>`:LaTeXのコードです.
-* `<フォント設定コード>`:`\Large`や`\bfseries`のようなフォント設定の命令です.`\Large\bfseries`のように複数指定することもできます.
-
-
-### 基本版面
-クラスオプションです.
-
-* `paper=[<紙サイズ名>/{<寸法>,<寸法>}]`:紙サイズです.紙サイズ名は`a0paper`から`a10paper`,`b0paper`から`b10paper`,`c2paper`から`c8paper`を指定できます.B列はISO B列です.JIS B列を指定する場合は,`b0j`から`b10j`の対応するものを指定してください.また,`letterpaper`,`legalpaper`,`executivepaper`が指定できます.さらに,`{<横>,<縦>}`と直接寸法を指定することもできます.
-* `fontsize=<寸法;Q,H>`:欧文フォントサイズ.デフォルトは10pt.
-* `jafontsize=<寸法;Q,H>`:和文フォントサイズ.
-* `jafontscale=<実数値>`:欧文フォントと和文フォントの比(和文 / 欧文).`fontsize`と`jafontsize`が両方指定されている場合は無視される.デフォルトは1.
-* `line_length=<寸法;zw,zh>`:一行の長さ.デフォルトは字送り方向の紙幅の0.75倍.実際の値は一文字の長さの整数倍になるように補正されます.
-* `number_of_lines=<自然数値>`:一ページの行数.デフォルトは行送り方向の紙幅の0.75倍になるような値.
-* `gutter=<寸法;zw,zh>`:のどの余白の大きさ.
- - `tate`無指定時は奇数ページ左,偶数ページ右の余白
- - `tate`指定時は奇数ページ右,偶数ページ左の余白
- - `twoside`が指定されていない時は,常に奇数ページ扱いで余白が設定される
-* `fore-edge=<寸法;zw,zh>`:小口(のどでない方)の余白の大きさ.「日本語組版処理の要件」にある方法で余白を指定する限り使われることはありませんが,便利なこともあるので実装されています.
-* `head_space=<寸法;zw,zh>`:天の空き量.デフォルトは中央寄せになるような値.
-* `foot_space=<寸法;zw,zh>`:地の空き量.デフォルトは中央寄せになるような値.
-* `baselineskip=<寸法;Q,H,zw,zh>`:行送り.デフォルトは`jafontsize`の1.7倍.
-* `linegap=<寸法;Q,H,zw,zh>`:行間.
-* `headfoot_sidemargin=<寸法;zw,zh>`:柱やノンブルの左右の空き.
-* `column_gap=<寸法;zw,zh>`:段間(`twocolumn`指定時のみ).
-* `sidenote_length=<寸法;zw,zh>`:傍注の幅を指定します.
-
-### 組み方
-クラスオプションです.
-* `open_bracket_pos=[zenkaku_tentsuki/zenkakunibu_nibu/nibu_tentsuki]`:始め括弧が行頭に来た際の配置方法を指定します.それぞれ段落開始全角折り返し行頭天付き(デフォルト),段落開始全角二分折り返し行頭二分,段落開始二分折り返し行頭天付きを意味します.
-* `hanging_punctuation`:ぶら下げ組をします.
-
-### 逆ノンブル
-クラスオプションです.
-* `use_reverse_pagination`:逆ノンブルの機能を利用可能にします.`jlreqreversepage`という「読み取り専用のカウンタ」が定義されます.(本物のカウンタではありません.)`\arabic`などの命令や`\value`が適用可能です.また`\thejlreqreversepage`が`\arabic{jlreqreversepage}`として定義されます.
-
-### 注関係
-`\jlreqsetup`で指定します.
-
-* `reference_mark=[inline/interlinear]`:合印の配置方法を指定します.`inline`にすると該当項目の後ろの行中に配置します.`interlinear`を指定すると該当項目の上(横組)または右(縦組)に配置します.
-* `footnote_second_indent=<寸法>`: 脚注(横書き時)または傍注(縦書き時)の二行目以降の字下げ量を指定します.一行目からの相対字下げ量です.
-* `sidenote_type=[number/symbol]`:傍注と本文との対応の方法を指定します.`number`が規定で,注の位置に通し番号が入り,それにより対応が示されます.`symbol`とすると,注の位置に特定の記号が入り,また注がついている単語が強調されます.
-* `sidenote_symbol=<コード>`:`sidenote_symbol=symbol`の時に,注の位置に入る記号.デフォルト*
-* `sidenote_keyword_font=<フォント設定コード>`:`sidenote_symbol=symbol`の時に,注のついている単語のフォント指定.デフォルトは無し(強調しない)
-* `endnote_second_indent=<寸法>`: 後柱の二行目以降の字下げ量を指定します.一行目からの相対字下げ量です.
-* `endnote_position=[headings/paragraph/{_<見出し名1>,_<見出し名2>,...}]`:後注の出力場所を指定します.`headings`は各見出しの直前(デフォルト),`paragraph`は改段落の際に出力します.また,`endnote_position={_chapter,_section}`とすると,`\chapter`と`\section`の直前に出力します.`<_見出し名>`を指定するためには,対象の見出しが本クラスファイルの機能を使って作られていなければいけません.
-
-### キャプション
-図表のキャプションを`\jlreqsetup`で変更できます.全ての設定で,各環境ごとの設定をすることができます.例えば`caption_font=\normalsize,table=\Large`とすると,table環境内では`\Large`が適用され,そのほかの環境内では`\normalsize`が適用されます.他の設定も同様です.
-* `caption_font=<フォント設定コード>`:キャプション自身のフォントを指定します.
-* `caption_label_font=<フォント設定コード>`:キャプションのラベルのフォントを指定します.
-* `caption_after_label_space=<寸法>`:ラベルとキャプションの間の空きを指定します.
-* `caption_label_format=<コード>`:ラベルの書式を指定します.`caption_label_format={#1:}`のようにします.`#1`が「図1」のような番号に置換されます.
-* `caption_align=[left/right/center/bottom/top]`:キャプションの場所を指定します.{center,*left}のようにすると,通常は中央配置だがキャプションが大きいときには左に配置されます.
-
-### 引用
-`quote / quotation / verse`環境の挙動を`\jlreqsetup`で指定できます.
-* `quote_indent=<寸法>`:字下げを指定します.デフォルトは2\zwです.一行の長さが文字サイズの整数倍になるように調整されます.
-* `quote_end_indent=<寸法>`:字上げを指定します.デフォルトは0\zwです.
-* `quote_beforeafter_space=<寸法>`:前後の空きを指定します.`quote_beforeafter_space=1\baselineskip`とすると一行あきます.
-* `quote_fontsize=[normalsize/small/footnotesize/scriptsize/tiny]`:フォントサイズを指定します.
-
-### 箇条書き
-`\jlreqsetup`で指定します.
-* `itemization_beforeafter_space=<寸法>`:箇条書きの前後の空きを指定します.`itemization_beforeafter_space={i=<寸法>}`とするとトップレベルのみに設定を行います.`itemization_beforeafter_space={0pt,i=10pt,ii=5pt}`とすれば,レベル1の箇条書きに10ptを,レベル2のそれに5ptを,それ以外には0ptを設定します.レベルは上記のように小文字ローマ数字で指定します.
-* `itemization_itemsep=<寸法>`:項目同士の空きを指定します.
-
-### 定理環境
-`\jlreqsetup`で指定します.
-* `theorem_beforeafter_space=<寸法>`:定理環境の前後の空きを指定します.
-* `theorem_label_font=<フォント設定コード>`:定理環境のラベル部分のフォントを設定します.
-* `theorem_font=<フォント設定コード>`:定理環境本体のフォントを設定します.
-
-`amsthm`パッケージが読み込まれると,新しい定理スタイル`jlreq`が定義され,現在のスタイルが`jlreq`へと変更されます.このとき,上記設定はこの`jlreq`スタイルへの設定として機能します.
-
-### 前付きなど
-`\frontmatter` / `\mainmatter` / `\backmatter` / `\appendix`での処理を`\jlreqsetup`で指定できます.
-* `frontmatter_pagebreak=[cleardoublepage/clearpage/]`:`\frontmatter`実行時の改ページを実行する命令名を指定します.空にすると何もしません.
-* `frontmatter_counter={<カウンタ名>={value=<値>, the=<コード>, restore=[true/false]},...}`:`\frontmatter`時でのカウンタの操作を指定します.例えば`chapter={value=0,the={[\arabic{chapter]}}`とすると,`chapter`カウンタの値が`0`になり,`\thechapter`が`[\arabic{chapter}]`となります.デフォルトでは`\mainmatter`時に値と`\the<カウンタ名>`の定義を戻しますが,`restore=false`とするとこの動きが抑制されます.
-* `frontmatter_heading={<見出し命令名>={<設定>},...}`:見出し命令の動きを変更します.`\Delare***Heading`で指定できる項目の他以下を受け付けます.
- - `heading_type=[Tobira/Block/Runin/Cutin/Modify]`:見出しの種類です.`Modify`が指定された場合は`\ModifyHeading`での変更となります.
- - `heading_level=<数値>`:見出し命令のレベルを設定します.指定されなかった場合は,`\frontmatter`実行時の値が使われます.`heading_type=Modify`の時は無視されます.
- - `restore=[true/false]`:`true`が指定されると,`\mainmatter`で元の定義を復帰します.デフォルトは`true`です.
-* `frontmatter_pagestyle={<ページスタイル名>[,restore=[true/false]]}`:`\frontmatter`実行時にここで指定されたページスタイルへと切り替えます.デフォルトでは`\mainmatter`時にもとのページスタイルに戻しますが,`restore=false`を指定すると戻しません.
-* `frontmatter_pagination={<ページ番号指定>[,continuous,independent]}`:ページ番号の出力形式を,`frontmatter_pagination=roman`のようにLaTeXの命令名で指定します.更に`continuous`が指定されると通しノンブルとなります.`independent`で別ノンブルです.
-* `frontmatter_precode=<コード>`:`\frontmatter`時に最初に実行されるコードです.
-* `frontmatter_postcode=<コード>`:`\frontmatter`時に最後に実行されるコードです.
-
-`frontmatter`を`mainmatter`や`backmatter`,`appendix`へと変えた設定も存在します.ただし,以下のような違いがあります.
-* `restore=[true/false]`は無効な設定です.
-* `mainmatter_pagination`に`continuous`と`independent`は指定できません.
-* `appendix_pagebreak`,`appendix_pagestyle`,`appendix_pagination`はありません.
-
-
-## 見出し
-新しい見出しを`\New***Heading`という命令で作ることができます(***には見出しの種類に応じた文字列が入る).書式はすべて
-
-```
-\New***Heading{<命令名>}{<レベル>}{<設定>}
-```
-
-となっています.また,`\Renew***Heading`,`\Provide***Heading`,`\Declare***Heading`も同時に用意されます.それぞれ
-
-* `\Renew***Heading`:指定した名前の命令が定義されていなければエラー.
-* `\Provide***Heading`:指定した名前の命令が定義されていない場合に限り見出し命令の定義が行われる.
-* `\Declare***Heading`:指定した名前の命令が定義されているか否かによらず新しく見出し命令を定義する.
-
-となっています.
-
-### 扉見出し
-`\NewTobiraHeading`で作成します.通常のクラスファイルにおける`\section`等と同じ書式の命令ができます.設定は以下の通り.
-
-* `type=[han/naka]`:`han`だと半扉見出しを,`naka`だと中扉見出しを作ります.
-* `pagestyle=<ページスタイル名>`:見出し箇所のページスタイルを指定します.
-* `label_format=<コード>`:ラベルを出力する命令を指定します.たとえば`label_format={第\thechapter 章}`のように指定します.
-* `format=<コード>`:実際に出力する書式を指定します.`format={\null\vfil {\Huge\bfseries #1#2}}`のようにします.`#1`はラベルに,`#2`は見出し文字列に置き換えられます.この中では`\jlreqHeadingLabel`,`\jlreqHeadingText`という命令が利用可能です.いずれも引数を一つとる命令で,それぞれラベル,見出し文字列が空ならば空に,そうでなければ与えられた引数自身を出力します.例えば`format={[\jlreqHeadingLabel{Label=#1}]}`と指定されていれば,ラベルが空でない時には`[Label=<ラベル>]`を,そうでなければ`[]`を出力します.
-* `number=[true/false]`:採番を行うかを指定します.ただし,`number=false`の場合でも対応するカウンタは定義されます.また`\the<カウンタ名>`の変更もされないので,必要ならば再定義が必要になります.
-
-### 別行見出し
-`\NewBlockHeading`で作成します.`\<命令名>*[running head]{見出し文字列}[副題]`という書式の命令を作成します.設定は以下の通り.
-
-#### 書式関連
-* `font=<フォント設定コード>`:見出しのフォントを指定します.
-* `subtitle_font=<フォント設定コード>`:副題のフォントを指定します.
-* `label_format=<コード>`:ラベルのフォーマットを指定します.`label_format={第\thechapter 章}`などのようにします.
-* `subtitle_format=<コード>`:副題のフォーマットを指定します.`subtitle_format={「#1」}`のようにします.`#1`は副題自身に置き換えられます.
-* `format=<コード>`:見出し全体のフォーマットを指定します.`#1`がラベル,`#2`が見出し文字列,`#3`が副題に置き換えられます.内部では`\jlreqHeadingLabel`,`\jlreqHeadingText`,`\jlreqHeadingSubtitle`という命令が利用可能です.いずれも引数を一つとる命令で,それぞれラベル,見出し文字列,副題が空ならば空に,そうでなければ与えられた引数自身を出力します.例えば`format={[\jlreqHeadingLabel{Label=#1}]}`と指定されていれば,ラベルが空でない時には`[Label=<ラベル>]`を,そうでなければ`[]`を出力します.なお,実際に`#1`が置き換えられるのはラベル自身ではなく,それに空きの調整などが入ったコードです.従って,予期しない結果を得ることもあり得ます.`#2`,`#3`も同様です.
-
-#### インデント関連
-* `align=[left/center/right]`:見出し位置の横方向の配置場所を指定します.
-* `indent=<寸法>`:見出し全体の字下げ量を指定します.
-* `end_indent=<寸法>`:見出し全体の字上げ量を指定します.
-* `after_label_space=<寸法>`:ラベル後,見出し文字列までの空きを指定します.
-* `second_heading_text_indent=[<寸法>/{<寸法>,<寸法>}]`:見出し文字列の二行目以降のインデントを指定します.見出し文字列一行目の頭を起点として指定しますが,`second_heading_text_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.また,`second_heading_text_indent={<ラベルがある時>,<ラベルがない時>}`という指定をすると,ラベルの有無に応じて値を変更することができます.`<ラベルがある時>`の指定ではやはり`*`を使うことができます.
-* `subtitle_indent=<寸法>`:副題のインデント量を指定します.見出し文字列の一行目を起点として指定します.ただし,`subtitle_indent=*1\zw`のように先頭に`*`をつけるとラベルの頭を起点としての指定になります.`subtitle_break=true`の時のみ有効です.
-
-#### その他
-* `subtitle_break=[true/false]`:見出し文字列と副題の間を改行するか指定します.
-* `allowbreak_if_evenpage=[true/false]`:見出しが偶数ページにあった場合,その直後の改ページを許可します.
-* `pagebreak=[clearpage/cleardoublepage/clearcolumn/nariyuki/begin_with_odd_page/begin_with_even_page]`:見出し直前の改ページを指定します.それぞれ,改ページ,`\cleardoublepage`実行,改段,なりゆき,奇数ページ開始,偶数ページ開始,です.
-* `pagestyle=<ページスタイル名>`:見出し箇所のページスタイルを指定します.
-* `afterindent=[true/false]`:見出し直後の段落の字下げを行うかを指定します.
-* `column_spanning=[true/false]`: 段抜きの見出しにします.`pagebreak=nariyuki`または`pagebreak=clearcolumn`の時には無視されます.
-* `number=[true/false]`:採番を行うかを指定します.`\NewTobiraHeading`と同様の注意が必要です.
-
-#### 行取り
-行取りの指定は以下のいずれかの方法で行うことができます.
-
-* 行数を指定し,その中央に配置します.`lines=<自然数値>`により行数を指定します.`before_lines=<自然数値>`や`after_lines=<自然数値>`により,さらに前後に追加する行数を指定します.たとえば`lines=3,after_lines=1`とすれば,四行の中に配置され,前の空きよりも後ろの空きの方が一行分大きくなります.`before_lines`により指定された空きはページ頭には入りませんが,`before_lines=*1`というように`*`を先頭につけると常に入るようになります.
-* 行数と,前後いずれかの空きを指定します.`lines=<自然数値>`により行数を,`before_space=<寸法>`または`after_space=<寸法>`のいずれかの指定によりそれぞれ前または後ろの空きを指定します.
-* 前後の空きを指定します.`before_space=<寸法>`および`after_space=<寸法>`を指定します.
-
-#### 連続して掲げる見出しの行取り
-``\SetBlockHeadingSpaces``により,見出しが連続して掲げられたときの行取りを設定することができます.``\SetBlockHeadingSpaces``は
-
-```latex
-\SetBlockHeadingSpaces{
- {_part{lines=3,before_lines=1},_section{lines=2},_subsection{lines=2}}
- [lines=5]{_section,23pt,_subsection,16pt}
-}
-```
-
-のように使います.この意味は次の通りです.
-
-* `\part`,`\section`,`\subsection`という順番で見出しが掲げられていて,その前後が見出しでない場合は,`\part`は三行取り+前に一行空き,`\section`と`\subsection`は二行取りとなります.
-* `\section`,`\subsection`という順番で見出しが掲げられていて,その前後が見出しでない場合は,全体で五行取りとし,`\section`と`\subsection`との間に`23pt`の空き,`\subsection`の後に`16pt`の空きを入れます.
-
-個々の設定は以下のようになります.
-
-* 各々の``{}``内には``_<見出し命令名>``か``<寸法>``をカンマ区切りで並べます.
-* 先頭に``[]``で囲まれた設定を追加できます.これは連続して掲げられた見出し全体への設定となります.``lines / before_lines / after_lines / before_space / after_space``が利用可能です.各々の意味は上述の行取り指定と同じです.
-* 寸法はそのまま空き量を表します.
-* ``_<見出し命令名>``の後に``{}``で囲まれた設定を追加することで,その見出しの空き量を設定します.設定しない場合は前後に空きが入りません.
-* 見出しに対する``{}``で囲まれた設定内では,``lines / before_lines / after_lines / before_space / after_space``が利用可能です.各々の意味は上述の行取り指定と同じです.
-* ``{}``で囲まれた部分を``*``のみにすると(例えば``_section{*}``とすると)単独で掲げた場合と同じ設定を使います.
-
-なお,見出しが連続しているかは単純に別行見出しの命令が並んで書かれているかのみで判断します.従ってそれらの命令間に出力には関係しないような命令が挟まっていたとしても,見出しが連続して掲げられているとは判断されません.ただし,見出し命令の間に空白,改行または`\label[<オプション>]{<引数>}…{<引数>}`という形のもののみが挟まれている場合は,見出しが連続していると判断されます.
-
-### 同行見出し
-`\NewRuninHeading`で作成します.通常の文書クラスにおける`\section`と同様の,`\<命令名>*[running head]{見出し文字列}`という書式の命令が作成されます.設定は以下の通り.
-
-* `font=<フォント設定コード>`:見出しのフォントを指定します.
-* `indent=<寸法>` 見出し文字列全体の字下げ量を指定します.
-* `after_label_space=<寸法>`:ラベル後,見出し文字列までの空きを指定します.
-* `label_format=<コード>`:ラベルのフォーマットを指定します.`label_format={\theparagraph}`などのようにします.
-* `after_space=<寸法>`:見出しと本文との間の空きを指定します.
-* `number=[true/false]`:採番を行うかを指定します.`\NewTobiraHeading`と同様の注意が必要です.
-
-### 窓見出し
-`\NewCutinHeading`で作成します.`\<命令名>{見出し文字列}`という書式の命令を作成します.設定は以下の通り.
-
-* `font=<フォント設定コード>`:見出しのフォントを指定します.
-* `indent=<寸法>`:見出し全体の字下げ量を指定します.
-* `after_space=<寸法>`:見出しと本文との間の空きを指定します.
-* `onelinemax=<寸法>`, `twolinemax=<寸法>`:見出し文字列の長さが`onelinemax`以下ならば一行で,`twolinemax`以下ならば二行で窓見出しを出力します.それ以上の場合は三行です.デフォルトはそれぞれ6文字,20文字の長さ.
-
-### `\ModifyHeading`
-既に(上のどれかを使い)定義された見出し命令の設定を変更します.たとえば
-```latex
-\ModifyHeading{section}{lines=10}
-```
-とすると,`\section`のフォントなどの設定はそのままに,行取りのみが10行に変更されます.見出しの種類を変更することはできません.
-
-### `\SaveHeading`
-見出し命令の定義を待避します.
-```latex
-\SaveHeading{section}{\restoresection} % \sectionの中身を\restoresectionに待避.
-\RenewBlockHeading{section}{1}{font=……} % \sectionを新しく定義する.
-……
-\restoresection % \sectionの中身を元に戻す.
-```
-のように使います.
-
-## ページスタイル
-```
-\NewPageStyle{<ページスタイル名>}{<設定>}
-```
-によりページスタイルを定義することができます.`<設定>`はkeyval形式です.定義したページスタイルは`\pagestyle`で適用できます.設定は以下の通り.
-
-* `yoko`:横書きで上下に出力します.デフォルト.
-* `tate`:縦書きで小口側に出力します.
-* `running_head_font=<フォント設定命令>`:柱のフォントを指定します.
-* `nombre_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`.
-* `odd_running_head=<書式>`,`even_running_head=<書式>`:それぞれ奇数ページ,偶数ページの柱を指定します.`_section`のように`_`から始まる名前を指定すると,対応する見出しを出力します.(`_section`だと現在の`\section`を出力する.)
-* `mark_format={[odd=<書式>/even=<書式>/_<見出し命令名>=<書式>],...}`:見出しを柱に出力する際のフォーマットを指定します.`mark_format={_section={節\thesection:#1},_chapter={第\thechapter 章\quad #1}}`のように指定します.見出し命令名の代わりに`odd`や`even`も指定でき,それぞれ奇数ページ/偶数ページの柱の書式になります.`\pagestyle`実行時に`\sectionmark`等を定義することで実現しています.
-* `nombre_ii=<書式>`: 二つ目のノンブルを指定します.`nombre_ii_position`で場所指定,`nombre_ii_font`でフォント設定もできます.指定方法は`nombre`や`nombre_position`と同じです.`odd_running_head_ii`,`even_running_head_ii`,`running_head_ii_position`,`running_head_ii_font`もあります.`nombre_ii_position`や`running_head_ii_position`が指定されなかった場合,`yoko`指定時にはそれぞれ`nombre_position`および`running_head_position`と同じ位置に設定されます.`tate`指定時は一つ目のノンブルや柱に続く場所に表示されます.
-
-
-`\RenewPageStyle`,`\ProvidePageStyle`,`\DeclarePageStyle`もあります.`\ModifyPageStyle`により既存のページスタイルを改変することが可能です.
-
-## JFM
-以下のような独自のJFMを使います.パッケージによっては,パッケージ独自のJFMや,また標準のJFMを使うように設定がし直される場合があります.本クラスファイルで使用するJFMを使う場合には,パッケージオプションなどを適切に与えて設定をする必要があります.
-
-### pLaTeX/upLaTeXの場合
-JFMの名前は次の通りです.`[]`で囲まれている文字は設定により入ったり入らなかったりします.
-```
-[u][b][z]jlreq[g][-v]
-```
-それぞれの文字は以下の場合に入ります.
-
-* `u`: upLaTeX利用時
-* `b`: ぶら下げ組み利用時.(クラスオプションに`hanging_punctuation`が指定された時.)
-* `z`: 行頭における開き括弧類の前の空きが,段落開始時が全角二分,折り返し時が二分の時.(クラスオプションに`open_bracket_pos=zenkakunibu_nibu`が指定された時.)
-* `g`: ゴシック用フォント.
-* `-v`: 縦書き用.
-
-例えば,ぶら下げ組みを利用せず,クラスオプションに`open_bracket_pos=zenkakunibu_nibu`が指定されいてるソースをpLaTeXで処理した場合,横書き明朝体には`zjlreq`という名前のJFMが使われます.
-
-### LuaLaTeXの場合
-* 横書き用のJFMは`jlreq`
-* 縦書き用のJFMは`jlreqv`
-
-となります.ゴシックも同じJFMを使います.本クラスファイルは,LuaTeX-ja標準のJFMをこれらに変更します.
-
-
-## その他
-* クラスオプション`jlreq_notes`が渡されると,日本語組版処理の記述と矛盾する設定が行われた場合に通知がされます.
-
-## ライセンス
-このパッケージは二条項BSDライセンスの元で配布されています.詳しくは[LICENSE](LICENSE)をご覧ください.
-
-## 履歴
-* 2017-02-08
- - 最初のバージョン.
-* 2017-02-17
- - いくつかバグを修正.
- - クラスオプション/`\jlreqsetup`にいくつかのキーを追加/変更.
- - `abstract`環境を実装.
- - パッケージを読み込んでいるだけのはやめた.
-* 2017-03-14
- - いくつかバグを修正.
- - 和文ファミリを欧文ファミリに従属させるようにした.
- - `\DeclareBlockHeading`にオプションをたくさん追加.
- - quote環境などを調整するオプションを追加.
-* 2017-03-20
- - バグ修正.
- - `\footnote / \sidenote / \endnote`の周りに必要ならば空白を挿入するようにした.
-* 2017-04-04
- - バグ修正.
- - `\DeclarePageStyle`に`tate`と`font`オプションを追加.
-* 2017-04-29
- - バグ修正
- - `jafontsize`と`jafontscale`をクラスオプションに,また`\jafontsize`を追加.
- - `\tatechuyoko`を追加.
- - クラスオプション`jlreq_warnings`を`jlreq_notes`に変更.
- - いくつかのクラスオプションを`\jlreqsetup`に移動.
- - いくつかのオプションを`\jlreqsetup`に追加.
- - クラスオプションの`paper={<縦>,<横>}`を`paper={<横>,<縦>}`に変更.
-* 2017-06-11
- - `plext` / `lltjext`の読み込みを中止.
- - `\DeclareBlockHeading`に`align`を追加.`indent=center`や`end_indent=center`を廃止.
- - 一部の`\kcatcode` (upLaTeX時) を変更.
-* 2017-08-13
- - `column_spanning`を`\DeclareBlockHeading`に追加.
- - ページレイアウトにおける「本文の長さ」に傍注の長さを入れるようにした.
- - 傍注の長さのデフォルトを0とした.
- - 傍注の長さが0の時には`\sidenote`を定義しないようにした.
- - 和字間隔を挿入する命令を追加.
-* 2017-08-29
- - 縦書きでも著者名が横書きで出てしまうバグを修正.
-* 2017-11-23
- - バグ修正
- - `\SetBlockHeadingSpaces`を追加.
- - `\contentsname` と `\indexname`に入っていたスペースを削除.
-* 2017-12-02
- - バグ修正
-* 2017-12-22
- - JFMを改善.
- - 別行見出しの間の`\label`の検出方法を変更.
- - `\theequation`,`\thefigure`,`\thetable`に章番号を追加.
-* 2018-02-01
- - 縦書きの傍注は奇数ページにのみ出るようにした(改善の余地ありかも).
- - LuaTeX時に`\fnfixbottomtrue`を追加.
- - キャプション関係のオプションを`\jlreqsetup`に追加.
- - `itemization_beforeafter_space`を拡張.
- - バグ修正.
-* 2018-04-11
- - 縦書き二段組みの傍注を下段に出すようにした.
- - `begin_width_(odd|even)_page`を`\DeclareBlockHeading`に追加.
- - `\labelenumi`らをjarticleなどにあわせた.
- - `column_gap`クラスオプションを使うとコンパイルできなかったバグ修正.
- - `mark_format`を`\DeclarePageStyle`に追加.
-* 2018-05-19
- - 目次内のラベルの長さを今までよりも長くした.
- - 一部のマクロをjlreq-helpers.styに分離した.
- - バグ修正.
-* 2018-06-17
- - シリーズbもゴシックにするようにした.
- - バグ修正.
-* 2018-08-08
- - `\DeclarePageStyle`に`nombre_ii`等を追加.
- - バグ修正.
- - `\jlreqsetup`に`footnote_second_indent`と`endnote_second_indent`を追加.
-* 2018-08-15
- - バグ修正.
-* 2018-09-01
- - `\mag`が`1000`でない場合も動くようにした(つもり).
- - バグ修正.
-* 2018-12-10
- - 見出し命令を作る命令に`number=[true/false]`を追加.
- - `\frontmatter`等の挙動を設定できるようにした.
- - `\jlreqHeadingLabel`等を扉見出しと別行見出しの`format`内で使えるようにした.
- - バグ修正
-* 2019-01-15
- - `\NewPageStyle`に`nombre_font`などを追加.`font`もまだ有効だが以降非推奨とする.
- - `\NewBlockHeading`の`format`に`#1`が含まれてもエラーが起こらないようにした.
- - `\jlreqsetup`の`caption_label_format`などを拡張.
- - バグ修正.
-* 2019-04-01
- - 逆ノンブルを利用可能にするクラスオプション`use_reverse_pagination`を追加.
- - `zref`パッケージの利用をやめた.
- - 新元号を追加.
- - バグ修正.
-* 2019-05-07
- - わずかな誤差で行数が減ってしまうのを防ぐために,`\textwidth`と`\textheight`を少しだけ増やした.
- - `\DeclarePageStyle`内の`running_head_ii`などの実装を変更.
- - バグ修正
-* 2019-09-24
- - `\@cite`と`\@biblabel`を再定義していたのをやめた.
- - 別行見出しの前に`\allowbreak`を追加.
- - バグ修正.
-* 2020-02-07
- - `itemization_label_length`のデフォルト値を`\leftmargini`などにした.
- - `\rmfamily`などの再定義をやめ,`\@rmfamilyhook`などにコードを挿入することにした.
- - `\parskip`を`0pt`に変更.
- - バグ修正.
-* 2020-05-01
- - `\jlreqsetup`に`theorem_label_font`と`theorem_font`を追加.
- - バグ修正.
-* 2020-09-27
- - `\tatechuyoko`の`*`版を追加.
- - バグ修正
-* 2020-12-29
- - クラスオプションの`fontsize`などで,LuaLaTeXでも`H`を使えるようにした.
- - `\jidori`を追加.
- - バグ修正.
-* 2021-03-17
- - `\maketitle`でのページスタイルを`empty`でないときには`plain`にするようにした.
- - `\item`直後のJFMグルーをなくした.
- - 同行見出し直後のJFMグルーをなくした.
- - バグ修正.
-* 2021-05-28
- - `\jlreqsetup`の`caption_align`を拡張.
- - `\ifthenelse`を少し削除.
-* 2021-07-22
- - `\IfHookExistsTF`の利用を中止.
- - `\akigumi`を追加.
- - `xkeyval`パッケージと`ifthen`パッケージの利用をやめた.
- - expl3コードとの親和性を高めた.
- - `\DeclareBlockHeading`に`pagestyle`を追加.
- - バグ修正
-* 2021-07-25
- - ifthenの読み込みを復活.(Re:VIEWのための一時的なもの.)
- - バグ修正
-* 2021-07-30
- - バグ修正
-* 2021-08-12
- - `etoolbox`への直接の依存をなくした.
- - バグ修正
-* 2021-10-09
- - バグ修正
-* 2021-11-05
- - `paper=b*`をISO系列とした.
- - LaTeXのフック関連コードの多くを削除.(まだ安定していなそうなので.)
- - `\RequirePackage{ifthen}`をやめた.
- - upLaTeXにおける`\kcatcode`の再設定をやめた.
-* 2022-04-05
- - `\jlreqsetup`に`warichu_opening`と`warichu_closing`を追加.
- - 別行見出し周りのペナルティを少し調整.
- - `\DeclareFontShape`後の`\selectfont`でエラーが出るバグ修正.
- - `use_reverse_pagination`がうまく動いていなかったのを修正.
- - 二番目の柱を使うと不自然に消えることがあるバグの修正.ついでに`\DeclarePageStyle`を書き直した.
- - `\@makefntext`を調整.
- - その他バグ修正.
-* 2022-04-11
- - バグ修正.
-* 2022-07-13
- - 右側の柱が正しく配置されないバグ修正.
-
---------------
-Noriyuki Abe
-https://github.com/abenori/jlreq
diff --git a/language/japanese/jlreq/README-template.html b/language/japanese/jlreq/README-template.html
deleted file mode 100644
index ac39350120..0000000000
--- a/language/japanese/jlreq/README-template.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html$if(lang)$ lang="$lang$"$endif$>
-<head>
- <meta charset="utf-8">
- <meta name="generator" content="pandoc">
- <title>$title$</title>
- <style>
- .markdown-body {
- padding-top: 10px;
- padding-bottom: 10px;
- background-color: white;
- padding: 30px;
- line-height: 170%;
- }
- h1{
- font-size: 200%;
- }
- h2{
- border-style: solid;
- border-width: 0 0 0.1em 0em;
- padding: 0 0 0.2em 0em;
- border-color: #EEEEEE;
- margin-top: 2em;
- }
- h3{
- border-style: solid;
- border-width: 0 0 0 0.5em;
- padding: 0 0 0 0.5em;
- border-color: #EEEEEE;
- margin-top: 2em;
- }
- code{
- white-space: pre;
- font-weight: normal;
- background-color: #F4F4F4;
- border-color: #F4F4F4;
- border-style: solid;
- border-width: .2em .5em;
- border-radius: .2em;
- }
- pre{
- background-color: #F8F8F8;
- border-color: #F8F8F8;
- border-width: 1em;
- border-style: solid;
- border-radius: .5em;
- padding: 0;
- margin: 0;
- line-height: 130%;
- }
- pre code{
- background-color: #F8F8F8;
- border-style: none;
- }
-$if(highlighting-css)$
- div.sourceCode { overflow-x: auto; text-indent: 0em;}
- code span.kw { color: #007020; font-weight: bold; } /* Keyword */
- code span.dt { color: #902000; } /* DataType */
- code span.dv { color: #40a070; } /* DecVal */
- code span.bn { color: #40a070; } /* BaseN */
- code span.fl { color: #40a070; } /* Float */
- code span.ch { color: #4070a0; } /* Char */
- code span.st { color: #4070a0; } /* String */
- code span.co { color: #008000; } /* Comment */
- code span.ot { color: #007020; } /* Other */
- code span.al { color: #ff0000; font-weight: bold; } /* Alert */
- code span.fu { color: #0040FF; } /* Function */
- code span.er { color: #ff0000; font-weight: bold; } /* Error */
- code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
- code span.cn { color: #880000; } /* Constant */
- code span.sc { color: #4070a0; } /* SpecialChar */
- code span.vs { color: #4070a0; } /* VerbatimString */
- code span.ss { color: #bb6688; } /* SpecialString */
- code span.im { } /* Import */
- code span.va { color: #19177c; } /* Variable */
- code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
- code span.op { color: #666666; } /* Operator */
- code span.bu { color: #0040FF; } /* BuiltIn */
- code span.ex { } /* Extension */
- code span.pp { color: #bc7a00; } /* Preprocessor */
- code span.at { color: #7d9029; } /* Attribute */
- code span.do { color: #ba2121; font-style: italic; } /* Documentation */
- code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
- code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
- code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
-$endif$
- </style>
-</head>
-<body>
-<article class="markdown-body">
-$body$
-</article>
-</body>
-</html>
diff --git a/language/japanese/jlreq/README-template.tex b/language/japanese/jlreq/README-template.tex
deleted file mode 100644
index f8b87bf115..0000000000
--- a/language/japanese/jlreq/README-template.tex
+++ /dev/null
@@ -1,68 +0,0 @@
-\documentclass[paper=a4,fontsize=11pt,jafontscale=0.92,lualatex]{jlreq}
-\usepackage[jfm_yoko=jlreq,jfm_tate=jlreqv,hiragino-pron,nfssonly]{luatexja-preset}
-\usepackage[unicode=true]{hyperref}
-\hypersetup{pdfborder={0 0 0},breaklinks=true,colorlinks=true,linkcolor=blue,urlcolor=blue}
-\usepackage[T1]{fontenc}
-\newcommand{\tightlist}{}
-\setlength{\parindent}{0pt}
-\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
-\renewcommand{\thesection}{}
-\renewcommand{\thesubsection}{\arabic{subsection}}
-\ModifyHeading{section}{font={\Huge\bfseries\sffamily},indent=0pt,after_label_space=0pt}
-\ModifyHeading{paragraph}{indent=0pt}
-% \ttfamilyを戻す
-\makeatletter
-\DeclareRobustCommand\ttfamily{\not@math@alphabet\ttfamily\mathtt\romanfamily\ttdefault\selectfont}
-\makeatother
-\ltjsetparameter{alxspmode={`\\,allow}}
-\ltjsetparameter{alxspmode={`*,allow}}
-\usepackage{xcolor}
-\usepackage{fancyvrb}
-\usepackage{tcolorbox}
-\tcbuselibrary{skins}
-\usepackage{moreverb}
-\renewenvironment{verbatim}{\begingroup\tcbverbatimwrite{\jobname.tmp}}
-{\endtcbverbatimwrite\endgroup
-\begin{Shaded}
-\verbatimtabinput{\jobname.tmp}
-\end{Shaded}
-}
-\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
-\newtcolorbox{Shaded}{colframe=white,beforeafter skip=1\zw}
-\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
-\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
-\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
-\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
-\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
-\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
-\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
-\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
-\newcommand{\ImportTok}[1]{#1}
-\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{#1}}
-\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{#1}}
-\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{#1}}}
-\newcommand{\CommentVarTok}[1]{\textcolor[HTML]{008000}{\textbf{#1}}}
-\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
-\newcommand{\FunctionTok}[1]{\textcolor[HTML]{0040FF}{#1}}
-\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
-\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
-\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
-\newcommand{\BuiltInTok}[1]{\textcolor[HTML]{0040FF}{#1}}
-\newcommand{\ExtensionTok}[1]{#1}
-\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
-\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
-\newcommand{\RegionMarkerTok}[1]{#1}
-\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
-\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
-\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
-\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
-\newcommand{\NormalTok}[1]{#1}
-
-%\setcounter{secnumdepth}{0}
-
-\begin{document}
-$body$
-\end{document}
diff --git a/language/japanese/jlreq/README.md b/language/japanese/jlreq/README.md
deleted file mode 100644
index 9d9506678b..0000000000
--- a/language/japanese/jlreq/README.md
+++ /dev/null
@@ -1,181 +0,0 @@
-# jlreq
-
-## What is this?
-This package provides the class file and JFM (Japanese font metric) files for LuaTeX-ja / pLaTeX / upLaTeX. This aims to implement [Requirements for Japanese Text Layout](https://www.w3.org/TR/jlreq/?lang=en).
-
-## Installation
-Run `make` to generate JFM files. Move the files as follows:
-
-* *.tfm -> $TEXMF/fonts/tfm/public/jlreq
-* *.vf -> $TEXMF/fonts/vf/public/jlreq
-* jfm-jlreq.lua, jfm-jlreqv.lua, jfm-jlreq-jidori.lua jfm-jlreqv-jidori.lua -> $TEXMF/tex/luatex/jlreq
-* jlreq.cls, jlreq-helpers.sty -> $TEXMF/tex/latex/jlreq
-
-The other way to install is just to run `make install`. It will install all files in `$TEXMFHOME`.
-
-## Usage
-See [README-ja.md](README-ja.md) (in Japanese).
-
-## LICENSE
-This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENSE).
-
-## CHANGELOG
-* 2017-02-08
- - First release.
-* 2017-02-17
- - Fixed bugs.
- - Implement `abstract` environment.
- - Changed/Added some keys to class option/`\jlreqsetup`
- - Stopped to load `pxrubirica`, `luatexja-ruby` and `nidanfloat`.
-* 2017-03-14
- - Fixed bugs.
- - `\sffamily` etc. also change the Japanese font family.
- - Added many options to `\DeclareBlockHeading`.
- - Some options related to `quote` environment etc.
-* 2017-03-20
- - Fixed bugs.
- - Insert some spaces around `\footnote / \sidenote / \endnote`.
-* 2017-04-04
- - Fixed a bug.
- - Added options `tate` and `font` to `\DeclarePageStyle`.
-* 2017-04-29
- - Fixed bugs.
- - Added `jafontsize` and `jafontscale` options and `\jafontsize`.
- - Added `\tatechuyoko`.
- - `jlreq_warnings` -> `jlreq_notes` (class option).
- - Moved some class options to `\jlreqsetup`.
- - Added some options to `\jlreqsetup`.
- - `paper={<height>,<width>}` -> `paper={<width>,<height>}`.
-* 2017-06-11
- - Stopped to load `plext` and `lltjext`.
- - Added `align` to `\DeclareBlockHeading` and delete `indent=center`, `end_indent=center`.
- - Changed `\kcatcode` for some characters (upLaTeX).
-* 2017-08-13
- - Added `column_spanning` to `\DeclareBlockHeading`.
- - Sidenotes are a part of the main text now.
- - Changed the default length of sidenotes to 0.
- - jlreq does not define `\sidenote` if the length for sidenotes is zero.
- - Added a command for the full-width ideographic space.
-* 2017-08-29
- - Fixed a bug.
-* 2017-11-23
- - Fixed bugs.
- - Added `\SetBlockHeadingSpaces`.
- - Removed a space from `\contentsname` and `\indexname`.
-* 2017-12-02
- - Fixed bugs.
-* 2017-12-22
- - Improved JFM.
- - Change the way to detect `\label` between block headings.
- - Added chapter number to `\theequation`,`\thefigure`,`\thetable`.
-* 2018-02-01
- - Sidenotes appears only odd pages in `tate` mode.
- - Added `\fnfixbottomtrue` for LuaLaTeX.
- - Added some options related to captions.
- - Extended `itemization_beforeafter_space`.
- - Fixed bugs.
-* 2018-04-11
- - Sidenotes (`\footnote`) appears in the second column in `tate` mode.
- - Added options `begin_widh_(odd|even)_page` to `\DeclareBlockHeading`.
- - Changed `\labelenumi` as in `jarticle` etc.
- - Fix a bug on `column_gap` class option.
- - Added `mark_format` to `\DeclarePageStyle`.
-* 2018-05-19
- - Made the width of the label in the table of contents longer.
- - Moved some macros to jlreq-helpers.sty
- - Fixed bugs.
-* 2018-06-17
- - Gothic font is attached to font shape 'b'.
- - Fixed bugs.
-* 2018-08-08
- - Added `nombre_ii` etc. to `\DeclarePageStyle`.
- - Fixed bugs.
- - Added `footnote_second_indent` and `endnote_second_indent` to `\jlreqsetup`.
-* 2018-08-15
- - Fixed bugs.
-* 2018-09-01
- - jlreq works with unusual `\mag`.
- - Fixed bugs.
-* 2018-12-10
- - Added `number=[true/false]` to `\New***Heading`.
- - Added options for `\frontmatter` etc in `\jlreqsetup`.
- - Made `\jlreqHeadingLabel` etc available in `format` in `\NewTobiraHeading` and `\NewBlockHeading`.
- - Fixed bugs.
-* 2019-01-15
- - Added `nombre_font` etc to `\NewPageStyle`. `font` is deprecated.
- - `format` without `#1` is allowed in `\NewBlockHeading`.
- - Extended `caption_label_format` etc. in `\jlreqsetup`.
- - Fixed bugs.
-* 2019-04-01
- - Added `use_reverse_pagination` to the class option.
- - Stopped to use `zref` package.
- - New regnal year.
- - Fixed bugs.
-* 2019-05-07
- - Added a small length to `\textwidth` and `\textheight`.
- - Changed the implementation of `running_head_ii` etc. in `\DeclarePageStyle`.
- - Fixed bugs.
-* 2019-09-24
- - Deleted the (re-)definitions of `\@cite` and `\@biblabel`.
- - Added `\allowbreak` before block headings.
- - Fixed bugs.
-* 2020-02-07
- - Changed the default value of `itemization_label_length` to `\leftmargini` etc.
- - Removed the redefinitions `\rmfamily` etc and added a code to `\@rmfamilyhook`.
- - Changed `\parskip` to `0pt`.
- - Fixed bugs.
-* 2020-05-01
- - Added `theorem_label_font` and `theorem_font` to `\jlreqsetup`.
- - Fixed bugs.
-* 2020-09-27
- - Added `*`-version of `\tatechuyoko`.
- - Fixed bugs.
-* 2020-12-29
- - `fontsize` etc. with LuaLaTeX accept `H`.
- - Added `\jidori`.
- - Fixed bugs.
-* 2021-03-17
- - Use the pagestyle `plain` at `\maketitle` if the current one is not `empty`
- - Removed JFM glue after `\item`.
- - Removed JFM glue after block headings.
- - Fixed bugs.
-* 2021-05-28
- - Extended `caption_align` in `\jlreqsetup`.
- - Removed some `\ifthenelse`.
-* 2021-07-22
- - Stopped to use `\IfHookExistsTF`.
- - Added `\akigumi`.
- - Stopped to load packages `xkeyval` and `ifthen`.
- - It has more compatibility with expl3.
- - Added `pagestyle` to `\DeclareBlockHeading`.
- - Fixed bugs.
-* 2021-07-25
- - Load `ifthen` again. (Only for Re:VIEW, will be removed in future.)
- - Fixed bugs.
-* 2021-08-12
- - Removed the direct dependence on `etoolbox` package.
- - Fixed a bug.
-* 2021-10-09
- - Fixed bugs.
-* 2021-11-05
- - `paper=b*` is regarded as a ISO series.
- - Removed many codes relating with LaTeX hooks mechanism (because it seems not stable.)
- - Removed `\RequirePackage{ifthen}`.
- - Removed `\kcatcode`settings with upLaTeX.
-* 2022-04-05
- - Added `warichu_opening` and `warichu_closing` to `\jlreqsetup`.
- - Change a little bit penalties around block heading.
- - Fixed a bug: `\selectfont` after `\DeclareFontShape` raised an error.
- - Fixed a bug: `use_reverse_pagination` did not work.
- - Fixed a bug: A second running head disappeared sometimes.
- - Rewrote `\DeclarePageStyle`.
- - Deleted `\@makefntext`, define `\@makefntext` directly.
- - Fixed other bugs.
-* 2022-04-11
- - Fixed a bug.
-* 2022-07-13
- - Fixed a bug: The position of running heads were not correct.
-
---------------
-Noriyuki Abe
-https://github.com/abenori/jlreq
diff --git a/language/japanese/jlreq/jfm-jlreq-jidori.lua b/language/japanese/jlreq/jfm-jlreq-jidori.lua
deleted file mode 100644
index 38990f5585..0000000000
--- a/language/japanese/jlreq/jfm-jlreq-jidori.lua
+++ /dev/null
@@ -1,190 +0,0 @@
-local jfm = {
- dir = 'yoko',
- zw = 1.0,
- zh = 1.0,
- -- 使わない
- kanjiskip = {0, 0, 0},
- xkanjiskip = {0, 0, 0},
- version = 3,
- [0] = {
- left = 0,
- align = 'middle',
- width = 1,height = 0.88,depth = 0.12,
- glue = {
- [1] = {0.5, 0, 0, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, kanjiskip_stretch = 1},
- }
- },
- [1] = { -- 始め括弧類
- chars = {'(', '〔', '[', '{', '〈', '《', '「', '『', '【', '⦅', '〘', '〖', '«', '〝',
- '‘', '“'},
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'right',
- glue = {
- [0] = {0, 0, 0},
- [1] = {0, 0, 0},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1},
- [7] = {0, 0, 0},
- [8] = {0, 0, 0},
- [14] = {0, 0, 0},
- [27] = {0, 0, 0},
- }
- },
- [2] = { -- 終わり括弧類
- chars = { ')', '〕', ']', '}', '〉', '》', '」', '』', '】', '⦆', '〙', '〗', '»', '〟',
- '’', '”'},
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'left',
- glue = {
- [0] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [1] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [300] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [301] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [302] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, kanjiskip_stretch = 1},
- [8] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [27] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- }
- },
- [300] = {
- chars = {'‐'},
- width = 0.25,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- }
- },
-
- [301] = {
- chars = {'゠', '–'},
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- }
- },
-
- [302] = {
- chars = {'〜'},
- width = 1,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- }
- },
- [5] = { -- 中点類
- chars = {'・', ':',
- ';'
- },
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [0] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [1] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [2] = {0.25, 0, 0.25, ratio = 0},
- [300] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [301] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [302] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [5] = {0.25, 0, 0.25, ratio = 0.5, kanjiskip_stretch = 1},
- [6] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [7] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [8] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [14] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- [27] = {0.25, 0, 0.25, ratio = 0, kanjiskip_stretch = 1},
- }
- },
- [6] = { -- 句点類
- chars = {'。',
- '.'}, -- 縦書きでは使わない
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'left',
- glue = {
- [0] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [1] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [300] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [301] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [302] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [5] = {0.75, 0, 0.25, ratio = 0.33333333, kanjiskip_stretch = 1},
- [8] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [14] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- [27] = {0.5, 0, 0, ratio = 0, kanjiskip_stretch = 1},
- }
- },
- [7] = { -- 読点類
- chars = {'、',
- ','}, -- 縦書きでは使わない
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'left',
- glue = {
- [0] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [1] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [300] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [301] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [302] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [5] = {0.75, 0, 0.75, ratio = 0.33333333, kanjiskip_stretch = 1},
- [8] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [14] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- [27] = {0.5, 0, 0.5, ratio = 0, kanjiskip_stretch = 1},
- }
- },
- [8] = { -- 分離禁止文字
- chars = {'—', '…', '‥', '〳', '〴', '〵'},
- width = 1,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, kanjiskip_stretch = 1},
- [8] = {0, 0, 0},
- }
- },
- [14] = { -- 和字間隔,前には空きが入り後ろには入らないようにする.
- chars = {' '},
- align = 'middle',
- width= 1,height = 0.88,depth = 0.12,
- glue = {
- [0] = {0, 0, 0},
- [1] = {0, 0, 0},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1},
- [6] = {0, 0, 0},
- [8] = {0, 0, 0},
- [27] = {0, 0, 0},
- },
- },
- [27] = {-- 欧文
- chars = {'alchar'},
- glue = {
- [1] = {0.5, 0, 0, kanjiskip_stretch = 1},
- [2] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, kanjiskip_stretch = 1},
- [27] = {0, 0, 0},
- }
- },
- [90] = { -- 行頭
- chars = {'parbdd','boxbdd'},
- glue = {
- [1] = {0, 0, 0},
- },
- },
-}
-
-luatexja.jfont.define_jfm(jfm)
-
diff --git a/language/japanese/jlreq/jfm-jlreq.lua b/language/japanese/jlreq/jfm-jlreq.lua
deleted file mode 100644
index 6172b1b463..0000000000
--- a/language/japanese/jlreq/jfm-jlreq.lua
+++ /dev/null
@@ -1,1195 +0,0 @@
---[[
-3.1.3
-3.1.6.a
-]]
-
---[[
-優先順位は,第n段階を3 - nに対応させる.
- 段階 1, 2, 3, 4, 5, 6
-priority 2, 1, 0,-1,-2,-3
-xkanjiskipは{1,-3},kanjiskip={0,0}
-\ltjsetparameter{stretch_priority={kanjiskip=1,xkanjiskip=-3}}
-\ltjsetparameter{stretch_priority={kanjiskip=0,xkanjiskip=0}}
-]]
-
-local stretch_width = 0.25 -- 空き第四段階の空き量
-
-local hyphen_glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [9] = {0, 0, 0, kanjiskip_natural = 1},
- [10] = {0, 0, 0, kanjiskip_natural = 1},
- [11] = {0, 0, 0, kanjiskip_natural = 1},
- [12] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [13] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [15] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [16] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [0] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [27] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
---[[
- [20] = {0, 0, 0},
- [21] = {0, 0, 0},
- [22] = {0, 0, 0},
- [23] = {0, 0, 0},
- [24] = {0, 0, 0},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0},
- [28] = {0, 0, 0},
- [29] = {0, 0, 0},
- [30] = {0, 0, 0},
-]]
-}
-
-local jfm = {
- dir = 'yoko',
- zw = 1.0,
- zh = 1.0,
- version = 3,
- -- 文字クラス4,9,10,11,15,16,19との間は(x)kanjiskipで調整する.
- kanjiskip = {0, 0.25, 0},
- xkanjiskip = {0.25, 0.25, 0.125},
-
- -- alignは適当
- [1] = { -- 始め括弧類
- chars = {'(', '〔', '[', '{', '〈', '《', '「', '『', '【', '⦅', '〘', '〖', '«', '〝',
- '‘', '“'},
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'right',
- glue = {
- [1] = {0, 0, 0, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, 0, 0, kanjiskip_natural = 1},
- [9] = {0, 0, 0, kanjiskip_natural = 1},
- [10] = {0, 0, 0, kanjiskip_natural = 1},
- [11] = {0, 0, 0, kanjiskip_natural = 1},
- [12] = {0, 0, 0, kanjiskip_natural = 1},
- [13] = {0, 0, 0, kanjiskip_natural = 1},
- [14] = {0, 0, 0, kanjiskip_natural = 1},
- [15] = {0, 0, 0, kanjiskip_natural = 1},
- [16] = {0, 0, 0, kanjiskip_natural = 1},
- [0] = {0, 0, 0, kanjiskip_natural = 1},
- [27] = {0, 0, 0, kanjiskip_natural = 1},
---[[
- [20] = {0, 0, 0},
- [21] = {0, 0, 0},
- [22] = {0, 0, 0},
- [23] = {0, 0, 0},
- [24] = {0, 0, 0},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0},
- [28] = {0, 0, 0},
- [29] = {0, 0, 0},
- [30] = {0, 0, 0},
- -- [22][23] 注1
- ]]
- },
- },
-
- [2] = { -- 終わり括弧類
- chars = { ')', '〕', ']', '}', '〉', '》', '」', '』', '】', '⦆', '〙', '〗', '»', '〟',
- '’', '”'},
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'left',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [301] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [302] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [4] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [9] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [10] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [11] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [12] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [13] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [15] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [16] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [0] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [27] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [22] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [23] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [24] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [25] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [26] = {0.5, 0, 0, ratio = 0, priority = {0,-2}},
- [28] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [29] = {0, 0, 0},
- [30] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- ]]
- },
- end_adjust = {0.5,0},
- },
-
- -- [3*]はハイフン類.幅が違うので分ける.
- [300] = {
- chars = {'‐'},
- width = 0.25,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = hyphen_glue,-- 上の方で定義
- },
-
- [301] = {
- chars = {'゠', '–'},
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = hyphen_glue,
- },
-
- [302] = {
- chars = {'〜'},
- width = 1,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = hyphen_glue,
- },
-
- [4] = { -- 区切り約物
- chars = {'!', '?', '‼', '⁇', '⁈', '⁉'},
- width = 1,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, stretch_width, 0.25, ratio = 1, priority = {-1,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [9] = {0, 0, 0, kanjiskip_natural = 1},
- [10] = {0, 0, 0, kanjiskip_natural = 1},
- [11] = {0, 0, 0, kanjiskip_natural = 1},
- [12] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [13] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [15] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [16] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [0] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0, 0},
- [23] = {0, 0, 0},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [28] = {0, 0, 0},
- [29] = {0, 0, 0},
- [30] = {0, 0, 0},
- ]]
- },
- },
-
- [5] = { -- 中点類
- chars = {'・', ':',
- ';'
- },
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [2] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [300] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [301] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [302] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [4] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [5] = {0.5, 0, 0.5, ratio = 0.5, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [7] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [8] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [9] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [10] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [11] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}, kanjiskip_natural = 1},
- [12] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [13] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [14] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [15] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [16] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [0] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- [27] = {0.25, stretch_width, 0.25, ratio = 0, priority = {-1,-1}, kanjiskip_natural = 1},
- --[[
- [20] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [21] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [22] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [23] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [24] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [25] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [26] = {0.25, 0, 0, ratio = 0, priority = {0,-1}},
- [28] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [29] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- [30] = {0.25, 0, 0.25, ratio = 0, priority = {0,-1}},
- ]]
- },
- end_adjust = {0.25,0}, -- 0.25 -> 0は詰め,優先順位は第三段階
- },
-
- [6] = { -- 句点類
- chars = {'。',
- '.'}, -- 縦書きでは使わない
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'left',
- glue = {
- [1] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [301] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [302] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [4] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [5] = {0.75, 0, 0.25, ratio = 0.33333333, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [9] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [10] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [11] = {0.5, 0, 0, ratio = 0, kanjiskip_natural = 1},
- [12] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [13] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [14] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [15] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [16] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [0] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- [27] = {0.5, stretch_width, 0, ratio = 0, priority = {-1,0}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.5, 0, 0, ratio = 0},
- [22] = {0.5, 0, 0, ratio = 0},
- [23] = {0.5, 0, 0, ratio = 0},
- [24] = {0.5, 0, 0, ratio = 0},
- [25] = {0.5, 0, 0, ratio = 0},
- [26] = {0.5, 0, 0, ratio = 0},
- [28] = {0.5, 0, 0, ratio = 0},
- [29] = {0.5, 0, 0, ratio = 0},
- [30] = {0.5, 0, 0, ratio = 0},
- ]]
- },
- end_adjust = {0.5, 0},
- },
-
- [7] = { -- 読点類
- chars = {'、',
- ','}, -- 縦書きでは使わない
- width = 0.5,height = 0.88,depth = 0.12,
- align = 'left',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [301] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [302] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [4] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [5] = {0.75, 0, 0.75, ratio = 0.33333333, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [9] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [10] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [11] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}, kanjiskip_natural = 1},
- [12] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [13] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [14] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [15] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [16] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [0] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- [27] = {0.5, stretch_width, 0.5, ratio = 0, priority = {-1,-2}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [22] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [23] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [24] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [25] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [26] = {0.5, 0, 0, ratio = 0, priority = {0,-2}},
- [28] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [29] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- [30] = {0.5, 0, 0.5, ratio = 0, priority = {0,-2}},
- ]]
- },
- end_adjust = {0.5, 0},
- },
-
- [8] = { -- 分離禁止文字
- chars = {'—', '…', '‥', '〳', '〴', '〵'},
- width = 1,height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, 0, 0}, -- 空き注4
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, 0, 0, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [27] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0, 0, 0},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [9] = { -- 繰返し記号
- chars = {'ヽ', 'ヾ', 'ゝ', 'ゞ', '々', '〻'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [10] = { -- 長音記号
- chars = {'ー'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [11] = { -- 小書きの仮名
- chars = {'ぁ', 'ぃ', 'ぅ', 'ぇ', 'ぉ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'っ', 'ゃ', 'ゅ', 'ょ', 'ゎ', 'ゕ', 'ゖ', 'ッ', 'ャ', 'ュ', 'ョ', 'ヮ', 'ヵ', 'ヶ', 'ㇰ', 'ㇱ', 'ㇲ', 'ㇳ', 'ㇴ', 'ㇵ', 'ㇶ', 'ㇷ', 'ㇸ', 'ㇹ', 'ㇺ', 'ㇻ', 'ㇼ', 'ㇽ', 'ㇾ', 'ㇿ', 'ㇷ゚'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [12] = { -- 前置省略記号
- chars = {'¥', '$', '£', '#', '€', '№'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, priority = {0,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
--- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, 0, 0, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [27] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0, 0, 0},
- [25] = {0, 0.25, 0, priority = {0,0}},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [13] = { -- 後置省略記号
- chars = {'°', '′', '″', '℃', '¢', '%', '‰', '㏋', 'ℓ', '㌃', '㌍', '㌔', '㌘', '㌢', '㌣', '㌦', '㌧', '㌫', '㌶', '㌻', '㍉', '㍊', '㍍', '㍑', '㍗', '㎎', '㎏', '㎜', '㎝', '㎞', '㎡', '㏄'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
--- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [27] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0, 0.25, 0, priority = {0,0}},
- [25] = {0, 0.25, 0, priority = {0,0}},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [14] = { -- 和字間隔
- chars = {' '},
- align = 'middle',
- width= 1,height = 0.88,depth = 0.12,
- glue = {
- [1] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [9] = {0, 0, 0, kanjiskip_natural = 1},
- [10] = {0, 0, 0, kanjiskip_natural = 1},
- [11] = {0, 0, 0, kanjiskip_natural = 1},
- [12] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [13] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [14] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [15] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [16] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [0] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- [27] = {0, stretch_width, 0, priority = {-1,0}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0, 0, 0},
- [22] = {0, 0, 0},
- [23] = {0, 0, 0},
- [24] = {0, 0, 0},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0},
- [28] = {0, 0, 0},
- [29] = {0, 0, 0},
- [30] = {0, 0, 0},
- ]]
- },
- },
-
- [15] = { -- 平仮名
- chars = {'あ', 'い', 'う', 'え', 'お', 'か', 'が', 'き', 'ぎ', 'く', 'ぐ', 'け', 'げ', 'こ', 'ご', 'さ', 'ざ', 'し', 'じ', 'す', 'ず', 'せ', 'ぜ', 'そ', 'ぞ', 'た', 'だ', 'ち', 'ぢ', 'つ', 'づ', 'て', 'で', 'と', 'ど', 'な', 'に', 'ぬ', 'ね', 'の', 'は', 'ば', 'ぱ', 'ひ', 'び', 'ぴ', 'ふ', 'ぶ', 'ぷ', 'へ', 'べ', 'ぺ', 'ほ', 'ぼ', 'ぽ', 'ま', 'み', 'む', 'め', 'も', 'や', 'ゆ', 'よ', 'ら', 'り', 'る', 'れ', 'ろ', 'わ', 'ゐ', 'ゑ', 'を', 'ん', 'ゔ', 'か゚', 'き゚', 'く゚', 'け゚', 'こ゚'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
--- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, 0, 0, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- ]]
- --[[
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- [16] = { -- 片仮名
- chars = {'ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'グ', 'ケ', 'ゲ', 'コ', 'ゴ', 'サ', 'ザ', 'シ', 'ジ', 'ス', 'ズ', 'セ', 'ゼ', 'ソ', 'ゾ', 'タ', 'ダ', 'チ', 'ヂ', 'ツ', 'ヅ', 'テ', 'デ', 'ト', 'ド', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'バ', 'パ', 'ヒ', 'ビ', 'ピ', 'フ', 'ブ', 'プ', 'ヘ', 'ベ', 'ペ', 'ホ', 'ボ', 'ポ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヰ', 'ヱ', 'ヲ', 'ン', 'ヴ', 'ヷ', 'ヸ', 'ヹ', 'ヺ', 'カ゚', 'キ゚', 'ク゚', 'ケ゚', 'コ゚', 'セ゚', 'ツ゚', 'ト゚'},
- height = 0.88,depth = 0.12,
- align = 'middle',
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
--- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, 0, 0, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- ]]
- --[[
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
- --[[
- [17] = { -- 等号類
- chars = {'=', '≠', '≒', '≃', '≅', '≈', '≡', '≢', '<', '>', '≦', '≧', '≪', '≫', '≶', '≷', '⋚', '⋛', '∧', '∨', '⌅', '⌆', '⊂', '⊃', '⊄', '⊅', '⊆', '⊇', '⊊', '⊋', '∈', '∋', '∉', '∪', '∩', '∥', '∦', '⇒', '⇔', '↔', '∽', '∝', '⊥', '⊕', '⊗'},
- align = 'middle',
- width = 1,
- },
-
- [18] = { -- 演算記号
- chars = {'+', '-', '×', '÷', '±', '∓'},
- align = 'middle',
- width = 1,
- },
- ]]
-
- -- [19] -- 漢字等:「その他の和文」として[0]で扱う
- [0] = { -- = [19]
- left = 0,
- align = 'middle',
- width = 1,height = 0.88,depth = 0.12,
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
--- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [9] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [10] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [11] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [13] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [14] = {0, 0, 0, kanjiskip_natural = 1},
--- [15] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [16] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [0] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}, kanjiskip_natural = 1},
- --[[
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- ]]
- },
- },
-
-
- --[[
- [20] = { -- 合印中の文字
- glue = {
- [1] = {0,5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0, 0.25, 0, priority = {0,0}},
- [10] = {0, 0.25, 0, priority = {0,0}},
- [11] = {0, 0.25, 0, priority = {0,0}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0, 0.25, 0, priority = {0,0}},
- [16] = {0, 0.25, 0, priority = {0,0}},
- [0] = {0, 0.25, 0, priority = {0,0}},
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0, 0.25, 0, priority = {0,0}},
- [25] = {0, 0.25, 0, priority = {0,0}},
- [26] = {0, 0, 0},
- [27] = {0, 0.25, 0, priority = {0,0}},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- },
- },
-
- [21] = {-- 親文字群中の文字(添え字付き)
- glue = {
- [1] = {0,5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [10] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [11] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [16] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [0] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [20] = {0, 0, 0},
- [21] = {0, 0, 0},-- 注9,空け注5
- [22] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [23] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [24] = {0, 0.25, 0, priority = {0,0}},
- [25] = {0, 0.25, 0, priority = {0,0}},
- [26] = {0, 0, 0},
- [27] = {0, 0.25, 0, priority = {0,0}},
- [28] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},表6と表3が整合的でない
- [29] = {0, 0, 0},
- [30] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- },
- },
-
- [22] = { -- 親文字群中の文字(熟語ルビ以外のルビ付き)
- glue = {
- [1] = {0,5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0, 0.25, 0, priority = {0,0}},
- [10] = {0, 0.25, 0, priority = {0,0}},
- [11] = {0, 0.25, 0, priority = {0,0}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0, 0.25, 0, priority = {0,0}},
- [16] = {0, 0.25, 0, priority = {0,0}},
- [0] = {0, 0.25, 0, priority = {0,0}},
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}}, -- 空け注10
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- },
- },
-
- [23] = { -- 親文字群中の文字(熟語ルビ付き)
- glue = {
- [1] = {0,5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0, 0.25, 0, priority = {0,0}},
- [10] = {0, 0.25, 0, priority = {0,0}},
- [11] = {0, 0.25, 0, priority = {0,0}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0, 0.25, 0, priority = {0,0}},
- [16] = {0, 0.25, 0, priority = {0,0}},
- [0] = {0, 0.25, 0, priority = {0,0}},
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},-- 空け注7
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [26] = {0, 0, 0},
- [27] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- },
- },
-
- [24] = { -- 連数字中の文字
- chars = {' ', ',', '.', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'},
- glue = {
- [1] = {0,5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [10] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [11] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0, 0},-- 空け注8
- [14] = {0, 0, 0},
- [15] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [16] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [0] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [23] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [24] = {0, 0, 0},
- [25] = {0.25, 0, 0, ratio = 0},
- [26] = {0, 0, 0},
- [27] = {0, 0, 0},-- 空け注9
- [28] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [29] = {0, 0, 0},
- [30] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- }
- },
-
- [25] = { -- 単位記号中の文字
- chars = {' ', '(', ')', '/', '1', '2', '3', '4', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'Ω', 'μ', '℧', 'Å', '−', '・'},
- glue = {
- [1] = {0,5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},-- 注12
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [10] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [11] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [16] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [0] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [23] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [24] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0},
- [27] = {0, 0, 0},
- [28] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [29] = {0, 0, 0},
- [30] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- }
- },
-
- [26] = { -- 欧文間隔
- chars = {' '},
- glue = { -- 表3の方には記述がないのは何故?
- [1] = {0.5, 0, 0.5, ratio = 1},
- [2] = {0, 0, 0},
- [300] = {0, 0, 0},
- [301] = {0, 0, 0},
- [302] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0, 0},
- [9] = {0, 0, 0},
- [10] = {0, 0, 0},
- [11] = {0, 0, 0},
- [12] = {0, 0, 0},
- [13] = {0, 0, 0},
- [14] = {0, 0, 0},
- [15] = {0, 0, 0},
- [16] = {0, 0, 0},
- [0] = {0, 0, 0},
- [21] = {0, 0, 0},
- [22] = {0, 0, 0},
- [23] = {0, 0, 0},
- [24] = {0, 0, 0},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0},
- [27] = {0, 0, 0},
- [28] = {0, 0, 0},
- [29] = {0, 0, 0},-- 注13, (空け)注4
- [30] = {0, 0, 0},
- }
- },
-]]
- [27] = {-- 欧文
- chars = {'alchar'},
- glue = {
- [1] = {0.5, stretch_width, 0.5, ratio = 1, priority = {-1,-2}, kanjiskip_natural = 1},
- [2] = {0, 0, 0, kanjiskip_natural = 1},
- [300] = {0, 0, 0, kanjiskip_natural = 1},
- [301] = {0, 0, 0, kanjiskip_natural = 1},
- [302] = {0, 0, 0, kanjiskip_natural = 1},
- [4] = {0, 0, 0, kanjiskip_natural = 1},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}, kanjiskip_natural = 1},
- [6] = {0, 0, 0, kanjiskip_natural = 1},
- [7] = {0, 0, 0, kanjiskip_natural = 1},
- [8] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
--- [9] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1},
--- [10] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1},
--- [11] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1},
- [12] = {0, 0.25, 0, priority = {0,0}, kanjiskip_natural = 1},
- [13] = {0, 0.25, 0, priority = {0,0}},-- 空け注10
- [14] = {0, 0, 0, kanjiskip_natural = 1},
--- [15] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1},
--- [16] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1},
--- [0] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}, kanjiskip_natural = 1},
--- [27] = {0, 0, 0, ratio = 0, priority = {1,0}, kanjiskip_natural = 1},
---[[
- [20] = {0, 0, 0},
- [21] = {0, 0.25, 0, priority = {0,0}},
- [22] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [23] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [24] = {0, 0, 0},
- [25] = {0.25, 0, 0.125, ratio = 0, priority = {0,-1}},
- [26] = {0, 0, 0},
- [27] = {0, 0, 0},
- [28] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
- [29] = {0, 0, 0},
- [30] = {0.25, 0.25, 0.125, ratio = 0, priority = {1,-3}},
---]]
- }
- },
---[[
- [28] = { -- 割注始め括弧類
- chars = {'(', '〔', '['},
- glue = {
- [1] = {0, 0, 0},
- [2] = {0, 0, 0},
- [3] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0, 0, 0},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0, 0},
- [9] = {0, 0, 0},-- 注14
- [10] = {0, 0, 0},-- 注15
- [11] = {0, 0, 0},-- 注16
- [12] = {0, 0, 0},
- [13] = {0, 0, 0},
- [14] = {0, 0, 0},
- [15] = {0, 0, 0},
- [16] = {0, 0, 0},
- [0] = {0, 0, 0},
- [20] = {0, 0, 0},
- [21] = {0, 0, 0},
- [22] = {0, 0, 0},
- [23] = {0, 0, 0},
- [24] = {0, 0, 0},
- [25] = {0, 0, 0},
- [26] = {0, 0, 0}, -- 注13, (空け)注4
- [27] = {0, 0, 0},
- [28] = {0, 0, 0},
- [29] = {0, 0, 0},
- [30] = {0, 0, 0},
- }
- },
-
- [29] = { -- 割注終わり括弧類
- chars = {')', '〕', ']'},
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [3] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0, 0.25, 0, priority = {0,0}},
- [10] = {0, 0.25, 0, priority = {0,0}},
- [11] = {0, 0.25, 0, priority = {0,0}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0, 0.25, 0, priority = {0,0}},
- [16] = {0, 0.25, 0, priority = {0,0}},
- [0] = {0, 0.25, 0, priority = {0,0}},
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 1}, priority = {1,-3},
- [25] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [26] = {0, 0, 0},
- [27] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- }
- },
-
- [30] = { -- 縦中横中の文字
- glue = {
- [1] = {0.5, 0, 0.5, ratio = 1, priority = {0,-2}},
- [2] = {0, 0, 0},
- [3] = {0, 0, 0},
- [4] = {0, 0, 0},
- [5] = {0.25, 0, 0.25, ratio = 1, priority = {0,-1}},
- [6] = {0, 0, 0},
- [7] = {0, 0, 0},
- [8] = {0, 0.25, 0, priority = {0,0}},
- [9] = {0, 0.25, 0, priority = {0,0}},
- [10] = {0, 0.25, 0, priority = {0,0}},
- [11] = {0, 0.25, 0, priority = {0,0}},
- [12] = {0, 0.25, 0, priority = {0,0}},
- [13] = {0, 0.25, 0, priority = {0,0}},
- [14] = {0, 0, 0},
- [15] = {0, 0.25, 0, priority = {0,0}},
- [16] = {0, 0.25, 0, priority = {0,0}},
- [0] = {0, 0.25, 0, priority = {0,0}},
- [20] = {0, 0, 0},
- [21] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [22] = {0, 0.25, 0, priority = {0,0}},
- [23] = {0, 0.25, 0, priority = {0,0}},
- [24] = {0.25, 0.25, 0.125, ratio = 1}, priority = {1,-3},
- [25] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [26] = {0, 0, 0},
- [27] = {0.25, 0.25, 0.125, ratio = 1, priority = {1,-3}},
- [28] = {0, 0.25, 0, priority = {0,0}},
- [29] = {0, 0, 0},
- [30] = {0, 0.25, 0, priority = {0,0}},
- }
- },
- ]]
-
- [90] = { -- 行頭
- chars = {'parbdd','boxbdd'},
- glue = {
- [1] = {0, 0, 0}, -- 行頭括弧はベタ組
- },
- },
-}
-
-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)
diff --git a/language/japanese/jlreq/jlreq-complements.sty b/language/japanese/jlreq/jlreq-complements.sty
deleted file mode 100644
index 2e20114fe6..0000000000
--- a/language/japanese/jlreq/jlreq-complements.sty
+++ /dev/null
@@ -1,259 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-complements}[2022/07/13 jlreq-complements]
-\RequirePackage{jlreq-helpers}[2021/08/12]
-\RequirePackage{l3keys2e}
-
-\ExplSyntaxOn
-
-\str_new:N \g__jlreq_complements_setupname_str
-\str_new:N \g__jlreq_complements_engine_str
-\tl_new:N \g__jlreq_complements_finally
-
-\keys_define:nn { jlreq-complements } {
- setupname .code:n = {
- \str_set:Nn \g__jlreq_complements_setupname_str {#1}
- },
- uplatex .code:n = { \str_set:Nn \g__jlreq_complements_engine_str { uplatex } },
- uplatex .value_forbidden:n = true,
- platex .code:n = { \str_set:Nn \g__jlreq_complements_engine_str { platex } },
- platex .value_forbidden:n = true,
- lualatex .code:n = { \str_set:Nn \g__jlreq_complements_engine_str { lualatex } },
- lualatex .value_forbidden:n = true,
-}
-\keys_set:nn { jlreq-complements } { setupname = jlreqcomplementssetup }
-\ProcessKeysOptions { jlreq-complements }
-
-\str_if_empty:NT \g__jlreq_complements_engine_str {
- \jlreq@helper@guessengine
- \str_gset:Nx \g__jlreq_complements_engine_str {
- \ifx l\jlreq@result lualatex \fi
- \ifx u\jlreq@result uplatex \fi
- \ifx p\jlreq@result platex \fi
- }
-}
-\str_if_empty:NT \g__jlreq_complements_engine_str {
- \PackageError { jlreq-complements } { Cannot~determine~the~engine }{\@ehc}
-}
-
-\str_if_eq:VnTF \g__jlreq_complements_engine_str { lualatex } {
- \prg_new_conditional:Nnn \__jlreq_complements_iftdir: { T, F, TF} {
- \int_compare_p:n { (\ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8) == 3 }
- }
-}{
- \prg_new_conditional:Nnn \__jlreq_complements_iftdir: { T, F, TF} { \legacy_if_p:n { tdir } }
-}
-
-\@ifundefined{jlreq@zw}{
- \str_if_eq:VnTF \g__jlreq_complements_engine_str { lualatex }
- { \def\jlreq@zw{\zw} }
- { \def\jlreq@zw{zw} }
-}
-
-\exp_args:Nx \@ifundefined { \g__jlreq_complements_setupname_str } {
- \exp_args:Ncnx \NewDocumentCommand {\g__jlreq_complements_setupname_str} { +m } {
- \exp_not:N \keys_set:nn { \g__jlreq_complements_setupname_str } {\exp_not:n {#1}}
- }
-}{}
-
-\cs_if_exist:NF \keys_define:Vn {
- \cs_generate_variant:Nn \keys_define:nn {Vn}
- \tl_gput_right:Nn \g__jlreq_complements_finally {
- \cs_undefine:N \keys_define:Vn
- }
-}
-\cs_if_exist:NF \keys_set:Vn {
- \cs_generate_variant:Nn \keys_set:nn {Vn}
- \tl_gput_right:Nn \g__jlreq_complements_finally {
- \cs_undefine:N \keys_set:Vn
- }
-}
-
-%. thebibliography
-\prop_new:N \g__jlreq_complements_thebibliography_prop
-
-\clist_map_inline:nn { heading,mark,precode,postcode,indent,after_label_space } {
- \keys_define:Vn \g__jlreq_complements_setupname_str {
- thebibliography_#1 .code:n = {
- \prop_gput:Nnn \g__jlreq_complements_thebibliography_prop { #1 } { ##1 }
- }
- }
-}
-
-\keys_set:Vn \g__jlreq_complements_setupname_str {
- thebibliography_mark = { \@mkboth{\refname}{\refname} },
- thebibliography_heading = { \section*{\refname} },
- thebibliography_after_label_space = { 1\jlreq@zw },
- thebibliography_indent = { 0pt },
- thebibliography_precode = {},
- thebibliography_postcode = {},
-}
-
-\renewenvironment{thebibliography}[1]{%
- \prop_item:Nn \g__jlreq_complements_thebibliography_prop { precode }
- \prop_item:Nn \g__jlreq_complements_thebibliography_prop { heading }
- \prop_item:Nn \g__jlreq_complements_thebibliography_prop { mark }
- \list{\@biblabel{\@arabic\c@enumiv}}%
- {\settowidth\labelwidth{\@biblabel{#1}}%
- \labelsep=\prop_item:Nn \g__jlreq_complements_thebibliography_prop { after_label_space }
- \leftmargin\labelwidth
- \advance\leftmargin\labelsep
- \itemindent=\prop_item:Nn \g__jlreq_complements_thebibliography_prop { indent }
- \@openbib@code % only for compatibility
- \usecounter{enumiv}
- \let\p@enumiv\@empty
- \renewcommand\theenumiv{\@arabic\c@enumiv}}
- \sloppy
- \clubpenalty4000
- \@clubpenalty\clubpenalty
- \widowpenalty4000%
- \sfcode`\.\@m
-}{%
- \def\@noitemerr{\@latex@warning{Empty~`thebibliography'~environment}}%
- \endlist
- \prop_item:Nn \g__jlreq_complements_thebibliography_prop { postcode }
-}
-\let\@openbib@code\@empty
-
-%. theindex
-\prop_new:N \g__jlreq_complements_theindex_prop
-\clist_map_inline:nn { precode,postcode,heading,mark,column_gap,column_rule_width,pagestyle } {
- \keys_define:Vn \g__jlreq_complements_setupname_str {
- theindex_#1 .code:n = {
- \prop_gput:Nnn \g__jlreq_complements_theindex_prop { #1 } { ##1 }
- }
- }
-}
-
-\bool_new:N \g__jlreq_complements_theindex_yoko_bool
-\bool_new:N \g__jlreq_complements_theindex_twocolumn_bool
-\bool_new:N \g__jlreq_complements_theindex_restorepagestyle_bool
-\keys_define:Vn \g__jlreq_complements_setupname_str {
- theindex_yoko .bool_gset:N = \g__jlreq_complements_theindex_yoko_bool,
- theindex_twocolumn .bool_gset:N = \g__jlreq_complements_theindex_twcolumn_bool,
-}
-
-\keys_set:Vn \g__jlreq_complements_setupname_str {
- theindex_precode = {},
- theindex_postcode = {},
- theindex_heading = { \section*{\indexname} },
- theindex_mark = { \@mkboth{\indexname}{\indexname} },
- theindex_column_gap = { 2\jlreq@zw },
- theindex_column_rule_width = { 0pt },
- theindex_pagestyle = { plain },
- theindex_twocolumn = true
-}
-\legacy_if:nTF { @tate }
- { \keys_set:Vn \g__jlreq_complements_setupname_str { theindex_yoko = false } }
- { \keys_set:Vn \g__jlreq_complements_setupname_str { theindex_yoko = true } }
-
-
-\bool_new:N \l__jlreq_complements_resttate_bool
-\renewenvironment{theindex}{%
- \prop_item:Nn \g__jlreq_complements_theindex_prop { precode }
- \bool_set_false:N \l__jlreq_complements_resttate_bool
- \bool_if:NT \g__jlreq_complements_theindex_yoko_bool {
- \__jlreq_complements_iftdir:T { \clearpage \yoko \bool_set_true:N \l__jlreq_complements_resttate_bool }
- }
- \bool_if:NTF \g__jlreq_complements_theindex_twocolumn_bool {
- \setlength{\columnseprule}{ \prop_item:Nn \g__jlreq_complements_theindex_prop { column_rule_width } }
- \setlength{\columnsep} { \prop_item:Nn \g__jlreq_complements_theindex_prop { column_gap } }
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_not:N \twocolumn [ \prop_item:Nn \g__jlreq_complements_theindex_prop { heading } ] }
- \l__jlreq_tmpa_tl
- }{
- \tl_set:Nx \l__jlreq_tmpa_tl {
- \legacy_if:nT { @twocolumn } { \exp_not:N \onecolumn }
- \prop_item:Nn \g__jlreq_complements_theindex_prop { heading }
- }
- \l__jlreq_tmpa_tl
- }
- \prop_item:Nn \g__jlreq_complements_theindex_prop { mark }
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_not:N \pagestyle { \prop_item:Nn \g__jlreq_complements_theindex_prop { pagestyle } } }
- \parindent\z@
- \parskip\z@ \@plus .03\jlreq@zh\relax
- \let\item\@idxitem
-}{%
- \bool_if:NTF \g__jlreq_complements_theindex_twocolumn_bool {
- \legacy_if:nF { @twocolumn } { \onecolumn }
- }{
- \legacy_if:nT { @twocolumn } { \twocolumn }
- }
- \clearpage
- \bool_if:NT \l__jlreq_complements_resttate_bool { \tate }
- \prop_item:Nn \g__jlreq_complements_theindex_prop { postcode }
-}
-
-%. 定理環境
-\prop_new:N \g__jlreq_complements_theorem_prop
-\clist_map_inline:nn { beforeafter_space,indent,font,label_font } {
- \keys_define:Vn \g__jlreq_complements_setupname_str {
- theorem_#1 .code:n = {
- \prop_gput:Nnn \g__jlreq_complements_theorem_prop { #1 } { ##1 }
- \@ifpackageloaded{amsthm}{\__jlreq_complements_setup_amsthm_theoremstyle:}{}
- }
- }
-}
-\keys_define:Vn \g__jlreq_complements_setupname_str {
- proof_label_font .code:n = {
- \prop_gput:Nnn \g__jlreq_complements_theorem_prop { proof_label_font } {#1}
- }
-}
-
-\keys_set:Vn \g__jlreq_complements_setupname_str {
- theorem_beforeafter_space=1\baselineskip,
- theorem_indent=0pt,
- theorem_label_font = {\bfseries\gtfamily\sffamily},
- theorem_font = {\normalfont},
- proof_label_font = {\bfseries\gtfamily\sffamily},
-}
-
-\let\jlreq@complements@original@@begintheorem=\@begintheorem
-\let\jlreq@complements@original@@opargbegintheorem=\@opargbegintheorem
-\def\@begintheorem#1#2{\topsep=\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { beforeafter_space }\relax
- \trivlist\labelsep=1\jlreq@zw\relax
- \itemindent=\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { indent }\relax
- \prop_item:Nn \g__jlreq_complements_theorem_prop { font }
- \item[\hskip \labelsep{\reset@font\prop_item:Nn \g__jlreq_complements_theorem_prop { label_font } #1\ #2}]}
-\def\@opargbegintheorem#1#2#3{\topsep=\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { beforeafter_space }\relax
- \trivlist\labelsep=1\jlreq@zw\relax
- \itemindent=\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { indent }\relax
- \prop_item:Nn \g__jlreq_complements_theorem_prop { font }
- \item[\hskip \labelsep{\reset@font\prop_item:Nn \g__jlreq_complements_theorem_prop { label_font } #1\ #2(#3)}]}
-\cs_set:Nn \__jlreq_complements_setup_amsthm: {
- \let\jlreq@complements@original@proof=\proof
- \let\jlreq@complements@original@endproof=\endproof
- \tl_set:Nx \l__jlreq_tmpa_tl {
- \exp_not:n { \cs_set:Npn \__jlreq_complements_proof [##1] } {
- \exp_not:n { \labelsep=1\jlreq@zw\relax }
- \exp_not:o {\proof[{\reset@font\prop_item:Nn \g__jlreq_complements_theorem_prop { proof_label_font } ##1\inhibitglue}\nopunct]}
- }
- }
- \l__jlreq_tmpa_tl
- \def\proof{\@ifnextchar[{\__jlreq_complements_proof}{\__jlreq_complements_proof[\proofname]}}
- \renewcommand{\proofname}{証明}
- \__jlreq_complements_setup_amsthm_theoremstyle:
- \theoremstyle{jlreq}
- % 一度しか実行されないはず
- \cs_undefine:N \__jlreq_complements_setup_amsthm:
-}
-\cs_set:Nn \__jlreq_complements_setup_amsthm_theoremstyle: {
- \newtheoremstyle{jlreq}
- {\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { beforeafter_space } \relax}
- {\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { beforeafter_space } \relax}
- {\prop_item:Nn \g__jlreq_complements_theorem_prop { font } }
- {\dimexpr\prop_item:Nn \g__jlreq_complements_theorem_prop { indent } }
- {\prop_item:Nn \g__jlreq_complements_theorem_prop { label_font } }
- {}{1\jlreq@zw}{\thmname{##1}\thmnumber{\ ##2}\thmnote{(##3)}}
-}
-
-\@ifpackageloaded{amsthm}{
- \__jlreq_complements_setup_amsthm:
-}{
- \RequirePackage{filehook}
- \AtEndOfPackageFile{amsthm}{\__jlreq_complements_setup_amsthm:}
-}
-
-%. 終わり
-\g__jlreq_complements_finally
-\cs_undefine:N \g__jlreq_complements_finally
-
-\ExplSyntaxOff
diff --git a/language/japanese/jlreq/jlreq-helpers.sty b/language/japanese/jlreq/jlreq-helpers.sty
deleted file mode 100644
index ea475e87dd..0000000000
--- a/language/japanese/jlreq/jlreq-helpers.sty
+++ /dev/null
@@ -1,510 +0,0 @@
-% エンジン非依存のマクロ集
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-helpers}[2021/08/12 jlreq-helpers]
-
-\ExplSyntaxOn
-%. helper1
-\newcount\jlreq@tempcnta
-\newcount\jlreq@tempcntb
-\newcount\jlreq@tempcntc
-\newdimen\jlreq@tempdima
-\newdimen\jlreq@tempdimb
-\newdimen\jlreq@tempdimc
-\newskip\jlreq@tempskipa
-\newskip\jlreq@tempskipb
-\newskip\jlreq@tempskipc
-\newif\ifjlreq@tempa
-\newif\ifjlreq@tempb
-\newif\ifjlreq@tempc
-\newbox\jlreq@tempboxa
-\newbox\jlreq@tempboxb
-\newbox\jlreq@tempboxc
-% 計算結果を返すための変数
-\newdimen\jlreq@resultdimen
-\newskip\jlreq@resultskip
-\newbox\jlreq@resultbox
-\newif\ifjlreq@result
-\newcount\jlreq@resultcnt
-
-\def\jlreq@uniqtoken{\jlreq@uniqtoken@may@be@a@bug}
-\def\jlreq@endmark{\jlreq@endmark@may@be@a@bug}
-\long\def\jlreq@deleteuntileendmark#1\jlreq@endmark{}
-
-\def\jlreq@expandafter@ii{\expandafter\expandafter\expandafter}
-\edef\jlreq@expandafter@iii{\exp_not:o {\jlreq@expandafter@ii}\noexpand\expandafter\exp_not:o {\jlreq@expandafter@ii}}
-\edef\jlreq@expandtwice#1{\exp_not:o {\jlreq@expandafter@ii}\noexpand\unexpanded\exp_not:o {\jlreq@expandafter@ii}{#1}}
-\edef\jlreq@expand@three#1{\exp_not:o {\jlreq@expandafter@iii}\noexpand\unexpanded\exp_not:o {\jlreq@expandafter@iii}{#1}}
-
-% \jlreq@getfirsttoken#1\jlreq@uniqtoken{}\jlreq@endmark@の形で使う
-% 二回展開すると,#1の先頭(ただし空白は無視される)を取り出す.#1が空の場合は\jlreq@uniqtoken,先頭が{の場合は\bgroupとなる
-\def\jlreq@endmark@{\jlreq@endmark@@may@be@a@bug} % \jlreq@getfirsttokenだけのためのendmark
-\long\def\jlreq@getfirsttoken#1#{\jlreq@getfirsttoken@#1\bgroup\jlreq@endmark@}
-\long\def\jlreq@getfirsttoken@#1#2\jlreq@endmark@#3\jlreq@endmark@{#1}
-% 与えられたトークン列が空か(展開はしないでチェック)
-\long\def\jlreq@ifempty#1{\expandafter\ifx\expandafter\relax\detokenize{#1}\relax\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
-% #1の先頭トークンが#2か(ただし#1が空ならば#2=\jlreq@uniqtoken,#1={ならば#2=\bgroupでTRUEとなる)
-\long\edef\jlreq@iffirsttoken#1#2{%
- % スペースチェック
- \unexpanded{\expandafter\expandafter\expandafter\jlreq@deleteuntileendmark\expandafter\ifx\expandafter}\exp_not:o {\space}\noexpand\detokenize{#1}\unexpanded{\@undefined\jlreq@endmark\expandafter\@firstoftwo\else\jlreq@endmark\expandafter\@secondoftwo\fi}{%
- \noexpand\ifx\exp_not:o {\space}#2\unexpanded{\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}%
- }{%
- \noexpand\jlreq@iffirsttoken@ignorespaces{#1}{#2}%
- }%
-}
-% こちらは先頭のスペースを読み飛ばす
-\long\def\jlreq@iffirsttoken@ignorespaces#1#2{%
- \expandafter\expandafter\expandafter\ifx\jlreq@getfirsttoken#1\jlreq@uniqtoken{}\jlreq@endmark@#2\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
-}
-
-% #1が\jlreq@endmarkか
-\long\def\jlreq@ifendmark#1{\jlreq@iffirsttoken{#1}{\jlreq@endmark}}
-
-% 条件.\jlreq@if{\ifnum\@count=1 \fi}{<TRUE>}{<FALSE>}みたいに使う
-\def\jlreq@if@endmark{\jlreq@if@endmark}
-\long\def\jlreq@if#1{\jlreq@if@#1\jlreq@if@endmark}
-\@gobbletwo\if\if
-\long\def\jlreq@if@#1\fi\jlreq@if@endmark{#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
-
-% #1の先頭が引数なしのマクロか
-\long\def\jlreq@ifmacro@noargument#1{%
- \jlreq@ifempty{#1}{\@secondoftwo}{%
- \jlreq@iffirsttoken{#1}{~}{\@secondoftwo}{%
- \expandafter\expandafter\expandafter\jlreq@ifmacro@noargument@\jlreq@getfirsttoken#1\jlreq@uniqtoken{}\jlreq@endmark@
-}}}
-\long\def\jlreq@ifmacro@noargument@#1{\expandafter\jlreq@ifmacro@noargument@@\expandafter{\meaning #1}}
-\def\@tempa#1{%
- \def\jlreq@ifmacro@noargument@@##1{\jlreq@ifmacro@noargument@@@##1#1\noexpand\jlreq@endmark}
- \def\jlreq@ifmacro@noargument@@@##1#1##2\jlreq@endmark{\jlreq@ifempty{##1}}
-}
-\edef\jlreq@do{\noexpand\@tempa{\detokenize{macro:->}}}
-\jlreq@do
-% こちらは単にマクロか
-\def\@tempa#1{%
- \long\def\jlreq@ifmacro##1{\jlreq@ifempty{##1}{\@secondoftwo}{\expandafter\jlreq@ifmacro@i\meaning##1#1\jlreq@endmark}}
- \long\def\jlreq@ifmacro@i##1#1##2\jlreq@endmark{\jlreq@ifempty{##1}}
-}
-\edef\jlreq@do{\noexpand\@tempa{\detokenize{macro:}}}
-\jlreq@do
-
-
-
-% #1(skipレジスタ)が0か(展開不可).
-\newcommand*\jlreq@ifgluezero[1]{%
- \begingroup
- \edef\@tempa{\the#1}%
- \edef\@tempb{\detokenize{0.0pt}}%
- \edef\jlreq@do{\ifx\@tempa\@tempb\noexpand\@firstoftwo\else\noexpand\@secondoftwo\fi}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-% #1が#2で終わるか(展開不可)
-\newcommand*{\jlreq@ifendswith}[2]{%
- \jlreq@ifempty{#2}{\@firstoftwo}{%
- \begingroup
- \def\jlreq@tempa##1#2\jlreq@uniqtoken##2\jlreq@endmark{%
- \edef\jlreq@do{\jlreq@ifempty{##2}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}}%
- }%
- \jlreq@tempa#1\jlreq@uniqtoken#2\jlreq@uniqtoken\jlreq@endmark
- \expandafter\endgroup
- \jlreq@do
- }%
-}
-% #1が#2で始まるか(展開不可)
-\newcommand*{\jlreq@ifstartswith}[2]{%
- \jlreq@ifempty{#2}{\@firstoftwo}{%
- \jlreq@ifempty{#1}{\@secondoftwo}{%
- \begingroup
- \def\jlreq@tempa##1#2##2\jlreq@endmark{%
- \edef\jlreq@do{\jlreq@ifempty{##1}{\noexpand\@firstoftwo}{\noexpand\@secondoftwo}}%
- }%
- \jlreq@tempa#1#2\jlreq@endmark
- \expandafter\endgroup
- \jlreq@do
- }%
- }%
-}
-% #1が#2を含むか(展開不可){}内に#2があってもFALSE判定.
-\newcommand*{\jlreq@ifcontains}[2]{%
- \jlreq@ifempty{#2}{\@firstoftwo}{%
- \begingroup
- \def\jlreq@tempa##1#2##2\jlreq@endmark{%
- \edef\jlreq@do{\jlreq@ifempty{##2}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}}%
- }%
- \jlreq@tempa#1#2\jlreq@endmark
- \expandafter\endgroup
- \jlreq@do
- }%
-}
-
-% @removeelementの括弧があっても動くかもしれない版
-% #2から#1を消して#3に入れる
-\newcommand*{\jlreq@helper@removeelement}[3]{%
- \begingroup
- \edef\jlreq@tempa{\unexpanded{#1}}% 消したいやつ
- \def\jlreq@tempb{}% 消していない分を放り込んでいく
- \jlreq@tempatrue% 最初の\jlreq@tempbへの追加か.
- \jlreq@helper@removeelement@#2,\jlreq@endmark,%
- \edef\jlreq@do{\unexpanded{\def#3}{\exp_not:o {\jlreq@tempb}}}%
- \expandafter\endgroup
- \jlreq@do
-}
-\def\jlreq@helper@removeelement@#1,{%
- \jlreq@ifendmark{#1}{}{%
- \edef\@tempa{\unexpanded{#1}}%
- \ifx\jlreq@tempa\@tempa\expandafter\@gobble\else\expandafter\@firstofone\fi{%
- \tl_put_right:Nx \jlreq@tempb{\ifjlreq@tempa\else,\fi\unexpanded{#1}}%
- \jlreq@tempafalse
- }%
- \jlreq@helper@removeelement@
- }%
-}
-
-% 空白を無視しない\@ifnextchar
-\newcommand{\jlreq@ifnextchar}[3]{%
- \let\reserved@d=#1%
- \edef\reserved@a{\unexpanded{#2}}%
- \edef\reserved@b{\unexpanded{#3}}%
- \futurelet\jlreq@nextchar\jlreq@ifnextchar@
-}
-\def\jlreq@ifnextchar@{%
- \ifx\jlreq@nextchar\reserved@d\let\reserved@b\reserved@a\fi
- \reserved@b
-}
-% 空白を無視しない\@ifsart
-\newcommand*{\jlreq@ifstar}[2]{\jlreq@ifnextchar *{\edef\reserved@a*{\unexpanded{#1}}\reserved@a}{#2}}
-
-% カンマで区切って,その前と後ろを\jlreq@resulta,\jlreq@resultbに入れる
-% もしカンマがない場合は\ifjlreq@resultがfalseになる.
-\newcommand*{\jlreq@helper@dividebycomma}[1]{\jlreq@helper@dividebycomma@#1,\jlreq@endmark}
-\long\def\jlreq@helper@dividebycomma@#1,#2\jlreq@endmark{%
- \jlreq@helper@trim{#1}{\jlreq@resulta}%
- \jlreq@helper@trim{#2}{\jlreq@resultb}%
- \jlreq@if{\ifx\jlreq@resultb\@empty\fi}{%
- \jlreq@resultfalse
- }{%
- \jlreq@resulttrue
- \expandafter\def\expandafter\jlreq@resultb\expandafter{\jlreq@helper@removelastcomma#2\jlreq@endmark}%
- \expandafter\jlreq@helper@trim\expandafter{\jlreq@resultb}{\jlreq@resultb}%
- }%
-}
-\long\def\jlreq@helper@removelastcomma#1,\jlreq@endmark{#1}
-
-% vbox #1の最後を\jlreq@resultboxに入れる
-% #1の最後の行は消える
-\newcommand*{\jlreq@getlastbox}[1]{%
- \setbox#1=\vbox{\unvbox#1\relax
- \unskip\unskip\unpenalty\global\setbox\jlreq@resultbox=\lastbox}%
- \ifhbox\jlreq@resultbox
- \global\setbox\jlreq@resultbox=\hbox{%
- \unhbox\jlreq@resultbox\unskip\unskip\unpenalty}%
- \else
- \global\setbox\jlreq@resultbox=\copy\voidb@x
- \fi
-}
-
-% キー指定しないkeyval(独自実装)
-% \jlreq@parsekeyval@nokey{<action>}{<parse対象>}
-% action内では#1=key, #2=val
-% \ifjlreq@parsekeyval@nokey@novalue{<true code>}{<false code>}でvalueがないか判定できる.
-% *つきは<parse対象>を一回だけ展開する.
-\def\jlreq@parsekeyval@nokey{\@ifstar{\jlreq@parsekeyval@nokey@{*}}{\jlreq@parsekeyval@nokey@{}}}
-\newcommand{\jlreq@parsekeyval@nokey@}[3]{%
- \begingroup
- \long\def\jlreq@do{}%
- \long\def\jlreq@parsekeyval@nokey@execute##1##2{#2}%
- \jlreq@ifempty{#1}{%
- \jlreq@parsekeyval@nokey@i@wuniq\jlreq@uniqtoken#3,\jlreq@endmark,%
- }{%
- \expandafter\jlreq@parsekeyval@nokey@i@wuniq\expandafter\jlreq@uniqtoken#3,\jlreq@endmark,%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-\long\def\jlreq@parsekeyval@nokey@i@wuniq#1,{\expandafter\jlreq@parsekeyval@nokey@i\expandafter{\@gobble#1}}
-\long\def\jlreq@parsekeyval@nokey@i#1{\jlreq@ifendmark{#1}{}{\jlreq@parsekeyval@nokey@ii@wuniq\jlreq@uniqtoken#1=\jlreq@endmark}}
-\long\def\jlreq@parsekeyval@nokey@ii@wuniq#1=#2\jlreq@endmark{\expandafter\jlreq@parsekeyval@nokey@ii\expandafter{\@gobble#1}{#2}}%
-\long\def\jlreq@parsekeyval@nokey@ii#1#2{%
- \jlreq@ifempty{#2}{\jlreq@parsekeyval@nokey@iii{*}{#2}{#1}}{%
- \edef\jlreq@tempa{%
- \noexpand\jlreq@parsekeyval@nokey@iii{}{\jlreq@parsekeyval@nokey@removeequal{#2}}{\unexpanded{#1}}%
- }%
- \jlreq@tempa
- }%
-}
-% valueが与えられていない場合は#1=*になる.そうでなければ#1は空
-\long\def\jlreq@parsekeyval@nokey@iii#1#2#3{%
- \jlreq@remove@spaceandbracket{#2}{\jlreq@tempa}%
- \jlreq@remove@spaceandbracket{#3}{\jlreq@tempb}%
- \ifx\jlreq@tempb\@empty\else
- \edef\@tempa{\noexpand\jlreq@parsekeyval@nokey@iv{#1}{\exp_not:o {\jlreq@tempb}}{\exp_not:o {\jlreq@tempa}}}%
- \@tempa
- \fi
- \jlreq@parsekeyval@nokey@i@wuniq\jlreq@uniqtoken
-}
-\long\def\jlreq@parsekeyval@nokey@iv#1#2#3{%
- \tl_put_right:Nx \jlreq@do{%
- \unexpanded{\let\ifjlreq@parsekeyval@nokey@novalue}\jlreq@ifempty{#1}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}%
- \exp_not:o {\jlreq@parsekeyval@nokey@execute{#2}{#3}}%
- }%
-}
-\long\def\jlreq@parsekeyval@nokey@removeequal#1{\jlreq@parsekeyval@nokey@removeequal@\jlreq@uniqtoken#1\jlreq@endmark}
-\long\def\jlreq@parsekeyval@nokey@removeequal@#1=\jlreq@endmark{\expandafter\unexpanded\expandafter{\@gobble#1}}
-
-% #1の先頭のスペースを削除し,#2に入れる.
-\long\def\jlreq@helper@trim#1#2{\edef#2{\tl_trim_spaces:n{#1}}}
-
-\long\def\jlreq@remove@spaceandbracket#1#2{%
- \begingroup
- \jlreq@helper@trim{#1}{\jlreq@tempa}%
- \edef\jlreq@do{\unexpanded{\jlreq@remove@spaceandbracket@{#2}}\exp_not:o {\jlreq@tempa}\noexpand\jlreq@endmark}%
- \expandafter\endgroup
- \jlreq@do
-}
-\long\def\jlreq@remove@spaceandbracket@#1#2\jlreq@endmark{\edef#1{\unexpanded{#2}}}
-
-% \jlreq@switch{str}{
-% {str}{abcd}
-% {str1}{xyz}
-%}[default: input = #1] -> abcd
-%または
-%
-% \jlreq@switch{str}{
-% {str}{abcd}
-% {str1}{xyz}
-% {default} % ここは#1を受け付けない(パラメータトークンを受け付けたい場合のため).
-%} -> abcd
-% strは\edefで展開されるが,\jlreq@switch*の場合は展開されない.
-% 第一引数は\jlreq@tempaに入れておく.
-\long\def\jlreq@helper@switch@executeoption#1[#2]{%
- \begingroup
- \def\jlreq@do##1{#2}%
- \expandafter\endgroup
- \jlreq@do{#1}%
-}
-\long\def\jlreq@helper@removeoption[#1]{}
-\newcommand{\jlreq@switch}{\@ifstar{\jlreq@switch@{*}}{\jlreq@switch@{}}}
-\newcommand{\jlreq@switch@}[3]{%
- \begingroup
- \let\jlreq@do\@undefined
- \edef\jlreq@tempa{\jlreq@ifempty{#1}{#2}{\unexpanded{#2}}}% ループ中ずっと保存する
- \jlreq@helper@switch@{#1}#3\jlreq@endmark
- \ifx\jlreq@do\@undefined
- \edef\jlreq@do{\unexpanded{\jlreq@ifnextchar[{\jlreq@helper@switch@executeoption{#2}}{}}}%
- \else
- \tl_put_right:Nn \jlreq@do{\@ifnextchar[{\jlreq@helper@removeoption}{}}%
- \fi
- \expandafter\endgroup
- \jlreq@do
-}
-\long\def\jlreq@helper@switch@#1#2{%
- \jlreq@ifendmark{#2}{}{\jlreq@helper@switch@@{#1}{#2}}%
-}
-
-\long\def\jlreq@helper@switch@@#1#2#3{%
- \jlreq@ifendmark{#3}{%
- \edef\jlreq@do{\unexpanded{#2}}%
- }{%
- \edef\jlreq@tempb{\jlreq@ifempty{#1}{#2}{\unexpanded{#2}}}%
- \jlreq@if{\ifx\jlreq@tempa\jlreq@tempb\fi}{%
- \edef\jlreq@do{\unexpanded{#3}}%
- \jlreq@deleteuntileendmark
- }{%
- \jlreq@helper@switch@{#1}%
- }%
- }%
-}
-
-% オレオレラベル……
-% \jlreq@reference@ref{ラベル名}{デフォルト値}
-\def\jlreq@reference@ref#1{\jlreq@if{\expandafter\unless\expandafter\ifx\csname jlreq@reference@#1\endcsname\relax\fi}{\csname jlreq@reference@#1\endcsname}}
-% \jlreq@reference@label{ラベル名}{値}
-\long\def\jlreq@reference@label#1#2{\protected@write\@auxout{}{\string\@newl@bel{jlreq@reference}{#1}{#2}}}%
-\long\def\jlreq@reference@immediate@write#1#2{\immediate\write\@auxout{\string\@newl@bel{jlreq@reference}{#1}{#2}}}%
-\long\def\jlreq@reference@ifexist#1{\jlreq@if{\expandafter\unless\expandafter\ifx\csname jlreq@reference@#1\endcsname\relax\fi}}
-
-% 自動生成されるラベル用の番号
-\newcount\jlreq@reference@count
-\jlreq@reference@count=0
-
-% 現在のページを得る
-\newcount\jlreq@currentpage
-\newcommand*{\jlreq@setcurrentpage}{%
- \global\advance\jlreq@reference@count by 1
- \jlreq@reference@label{jlreq@currentpage.\the\jlreq@reference@count}{\noexpand\arabic{page}}%
- \global\jlreq@currentpage=\jlreq@reference@ref{jlreq@currentpage.\the\jlreq@reference@count}{\the\c@page}\relax
-}
-
-% 先頭にあるマクロを展開しまくった結果の先頭を#2に入れる.
-\newcommand{\jlreq@getfirsttoken@expandmacros}[2]{%
- \jlreq@iffirsttoken{#1}{~}{\def#2{~}}{%
- \jlreq@ifempty{#1}{\def#2{}}{%
- \jlreq@ifmacro@noargument{#1}{%
- \expandafter\jlreq@getfirsttoken@expandmacros\expandafter{#1}{#2}%
- }{%
- \expandafter\expandafter\expandafter\jlreq@getfirsttoken@expandmacros@\jlreq@getfirsttoken#1\jlreq@uniqtoken{}\jlreq@endmark@{#2}%
- }%
- }%
- }%
-}
-\long\def\jlreq@getfirsttoken@expandmacros@#1#2{\def#2{#1}}
-
-\long\def\jlreq@helper@checktokenlist#1#2{%
- \jlreq@ifendmark{#2}{\@firstoftwo}%
- {%
- \jlreq@if{\ifnum0#1{#2}>0~\fi}%
- {\jlreq@helper@checktokenlist{#1}}%
- {\expandafter\@secondoftwo\jlreq@deleteuntileendmark}%
- }%
-}
-\def\jlreq@helper@chknumlist#1{\ifx#101\fi\ifx#111\fi\ifx#121\fi\ifx#131\fi\ifx#141\fi\ifx#151\fi\ifx#161\fi\ifx#171\fi\ifx#181\fi\ifx#191\fi}
-\def\jlreq@helper@chkfloatlist#1{\jlreq@helper@chknumlist{#1}\ifx#1.1\fi}
-% #1が[0-9\.]*に当てはまるか.
-\newcommand*{\jlreq@iffloat}[1]{\jlreq@helper@checktokenlist{\jlreq@helper@chkfloatlist}#1\jlreq@endmark}
-\newcommand*{\jlreq@ifnumber}[1]{\jlreq@helper@checktokenlist{\jlreq@helper@chknumlist}#1\jlreq@endmark}
-
-% \jlreq@ifprimitive#1#2#3: #1がprimitiveならば#2を,そうでなければ#3を実行する
-% (\if(pdf)primitiveを避けるようにしている.)
-\newcommand*{\jlreq@ifprimitive}[1]{%
- \begingroup
- \edef\@tempa{\string#1}%
- \edef\@tempb{\meaning#1}%
- \expandafter\endgroup
- \ifx\@tempa\@tempb\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
-}
-
-\newcommand*{\jlreq@helper@guessengine}{%
- \token_if_primitive:NTF \directlua {
- \let\jlreq@result=l
- }{
- \let\jlreq@result=p
- \token_if_primitive:NT \ucs {
- \int_compare:nT { \ucs"FA4A = "FA4A } {
- \let\jlreq@result=u
- }
- }
- }
-}
-
-% #1を\@undefinedに,既に\@undefinedならば#2{#1}を呼ぶ
-\newcommand*{\jlreq@helper@undefcs}[2]{%
- \@ifundefined{\expandafter\@gobble\string #1}{#2{#1}}{\cs_undefine:N #1}%
-}
-% \if版
-\newcommand*{\jlreq@helper@undefif}[2]{%
- \@ifundefined{\expandafter\@gobble\string #1}{%
- \edef\@tempa{\expandafter\@gobble\string#1}%
- \edef\@tempa{\expandafter\@gobbletwo\@tempa}%
- \cs_undefine:N #1%
- \cs_undefine:c {\@tempa true}
- \cs_undefine:c {\@tempa false}
- }%
-}
-
-% 紙サイズ一覧
-\@namedef{jlreq@helper@papersizelist@a0paper}{{841mm}{1189mm}}
-\@namedef{jlreq@helper@papersizelist@a1paper}{{594mm}{841mm}}
-\@namedef{jlreq@helper@papersizelist@a2paper}{{420mm}{594mm}}
-\@namedef{jlreq@helper@papersizelist@a3paper}{{297mm}{420mm}}
-\@namedef{jlreq@helper@papersizelist@a4paper}{{210mm}{297mm}}
-\@namedef{jlreq@helper@papersizelist@a5paper}{{148mm}{210mm}}
-\@namedef{jlreq@helper@papersizelist@a6paper}{{105mm}{148mm}}
-\@namedef{jlreq@helper@papersizelist@a7paper}{{74mm}{105mm}}
-\@namedef{jlreq@helper@papersizelist@a8paper}{{52mm}{74mm}}
-\@namedef{jlreq@helper@papersizelist@a9paper}{{37mm}{52mm}}
-\@namedef{jlreq@helper@papersizelist@a10paper}{{26mm}{37mm}}
-
-\@namedef{jlreq@helper@papersizelist@b0paper}{{1000mm}{1414mm}}
-\@namedef{jlreq@helper@papersizelist@b1paper}{{707mm}{1000mm}}
-\@namedef{jlreq@helper@papersizelist@b2paper}{{500mm}{707mm}}
-\@namedef{jlreq@helper@papersizelist@b3paper}{{353mm}{500mm}}
-\@namedef{jlreq@helper@papersizelist@b4paper}{{250mm}{353mm}}
-\@namedef{jlreq@helper@papersizelist@b5paper}{{176mm}{250mm}}
-\@namedef{jlreq@helper@papersizelist@b6paper}{{125mm}{176mm}}
-\@namedef{jlreq@helper@papersizelist@b7paper}{{88mm}{125mm}}
-\@namedef{jlreq@helper@papersizelist@b8paper}{{63mm}{88mm}}
-\@namedef{jlreq@helper@papersizelist@b9paper}{{44mm}{63mm}}
-\@namedef{jlreq@helper@papersizelist@b10paper}{{31mm}{44mm}}
-
-\@namedef{jlreq@helper@papersizelist@b0j}{{1030mm}{1456mm}}
-\@namedef{jlreq@helper@papersizelist@b1j}{{728mm}{1030mm}}
-\@namedef{jlreq@helper@papersizelist@b2j}{{515mm}{728mm}}
-\@namedef{jlreq@helper@papersizelist@b3j}{{364mm}{515mm}}
-\@namedef{jlreq@helper@papersizelist@b4j}{{257mm}{364mm}}
-\@namedef{jlreq@helper@papersizelist@b5j}{{182mm}{257mm}}
-\@namedef{jlreq@helper@papersizelist@b6j}{{128mm}{182mm}}
-\@namedef{jlreq@helper@papersizelist@b7j}{{91mm}{128mm}}
-\@namedef{jlreq@helper@papersizelist@b8j}{{64mm}{91mm}}
-\@namedef{jlreq@helper@papersizelist@b9j}{{45mm}{64mm}}
-\@namedef{jlreq@helper@papersizelist@b10j}{{32mm}{45mm}}
-
-\@namedef{jlreq@helper@papersizelist@c2paper}{{458mm}{648mm}}
-\@namedef{jlreq@helper@papersizelist@c3paper}{{324mm}{458mm}}
-\@namedef{jlreq@helper@papersizelist@c4paper}{{229mm}{354mm}}
-\@namedef{jlreq@helper@papersizelist@c5paper}{{162mm}{229mm}}
-\@namedef{jlreq@helper@papersizelist@c6paper}{{114mm}{162mm}}
-\@namedef{jlreq@helper@papersizelist@c7paper}{{81mm}{114mm}}
-\@namedef{jlreq@helper@papersizelist@c8paper}{{57mm}{81mm}}
-
-\@namedef{jlreq@helper@papersizelist@a4var}{{210mm}{283mm}}
-\@namedef{jlreq@helper@papersizelist@b5var}{{182mm}{230mm}}
-
-\@namedef{jlreq@helper@papersizelist@letterpaper}{{8.5in}{11in}}
-\@namedef{jlreq@helper@papersizelist@legalpaper}{{8.5in}{14in}}
-\@namedef{jlreq@helper@papersizelist@executivepaper}{{7.25in}{10.5in}}
-\@namedef{jlreq@helper@papersizelist@hagaki}{{100mm}{148mm}}
-
-\@namedef{jlreq@helper@papersizelist@ansiapaper}{{8.5in}{11in}}
-\@namedef{jlreq@helper@papersizelist@ansibpaper}{{11in}{17in}}
-\@namedef{jlreq@helper@papersizelist@ansicpaper}{{17in}{22in}}
-\@namedef{jlreq@helper@papersizelist@ansidpaper}{{22in}{34in}}
-\@namedef{jlreq@helper@papersizelist@ansiepaper}{{34in}{44in}}
-
-
-% #1÷#2を\jlreq@resultdimenに入れる.(#1,#2は寸法を与える.)
-\newcommand*{\jlreq@helper@divide}[2]{%
- \begingroup
- \@tempdima=\dimexpr#1\relax\@tempdimb=\dimexpr#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\relax
- \repeat
- \edef\jlreq@do{\noexpand\jlreq@resultdimen=\the\jlreq@tempdima\noexpand\relax}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-
-\def\jlreq@helper@swap#1#2{%
- \let\jlreq@helper@swaptoken=#1%
- \let#1=#2%
- \let#2=\jlreq@helper@swaptoken
- \let\jlreq@helper@swaptoken=\@undefined
-}
-\def\jlreq@helper@swap@register#1#2{%
- \edef\jlreq@helper@swaptoken{\the#1}%
- #1=#2%
- #2=\jlreq@helper@swaptoken\relax
- \let\jlreq@helper@swaptoken=\@undefined
-}
-\ExplSyntaxOff
-
-\endinput
-
diff --git a/language/japanese/jlreq/jlreq-ja.pdf b/language/japanese/jlreq/jlreq-ja.pdf
deleted file mode 100644
index 2fa852d4e9..0000000000
--- a/language/japanese/jlreq/jlreq-ja.pdf
+++ /dev/null
Binary files differ
diff --git a/language/japanese/jlreq/jlreq-trimmarks-ja.md b/language/japanese/jlreq/jlreq-trimmarks-ja.md
deleted file mode 100644
index aace5bbeb3..0000000000
--- a/language/japanese/jlreq/jlreq-trimmarks-ja.md
+++ /dev/null
@@ -1,174 +0,0 @@
-# jlreq-trimmarks
-
-## これは何?
-トンボ(トリムマーク)を出力するためのパッケージです.[LuaTeX-ja](https://osdn.jp/projects/luatex-ja/wiki/FrontPage) / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout上で動きます.jlreqクラスファイルのみでなく,汎用的に動くように設計されています.以下の機能を提供します.
-
-* トンボの出力
-* 可能な場合には,TrimBox / BleedBoxを設定
-* 紙サイズの設定
-
-なお,本パッケージは[日本語組版処理の要件](https://www.w3.org/TR/jlreq/ja/) (JLReq)とは無縁です.JLReqにはトンボに関する記述はありません.
-
-## インストール
-$TEXMF/tex/latex/jlreq内にjlreq-trimmarks.styとjlreq-helpers.styを配置してください.
-
-
-## 使い方
-ドライバおよびエンジンを指定して`\usepackage`で読み込みます.エンジンは省略が可能です.
-
-````
-\usepackage[dvipdfmx,platex]{jlreq-trimmarks}
-````
-
-なお,クラスファイルの`tombow`オプションは使わないでください.
-
-## ノート
-jlreq-trimmarksは紙サイズを設定しますが,その他のパッケージとの兼ね合いで正しく機能しないことがあります.その際は[bxpapersize](https://github.com/zr-tex8r/BXpapersize)のようなより強力なパッケージを試してみてください.
-
-## オプション
-以下のパッケージオプションを受け付けます.keyval形式です.
-
-### `platex`, `uplatex`, `lulatex`
-エンジンの指定です.省略時は,
-
-* `jlreq`クラスファイルを読み込んでいる場合はそれと連動する
-* そうでなければ自動推定
-
-です.
-
-### `dvipdfmx`,`dvips`,`dviout`
-dviドライバの指定です.エンジンに`lualatex`を利用する場合は指定する必要はありません.省略時は`dvipdfmx`が使われます.
-
-### `trimmarks_paper`
-トンボ付きの紙サイズを指定します.
-* `trimmarks_paper=a4`のように,`a0--a10`, `b0--b10`, `c2--c8`(BはJIS B列)を指定できる他,`trimmarks_paper={<width>,<height>}`と直接寸法を指定することができます.
-* `a4+{1cm,2cm}`や`{10cm,20cm}+{1cm,2cm}`のように`<紙サイズ>+{<寸法横>,<寸法縦>}`とした場合は,指定された紙サイズから指定された寸法だけ増やした紙サイズを設定します.
-* `a4+2cm`は`a4+{2cm,2cm}`と等価です.
-* `+2cm`と紙サイズの部分を省略すると,現在の紙サイズを利用します.
-* デフォルトは`+2in`です.
-
-### `landscape`
-紙のサイズの縦と横とを入れ替えます.ただし入れ替えるのは`trimmarks_paper`で明示的に指定された値に限ります.例えば`landscape,trimmarks_paper=+{1cm,2cm}`とすると,もともとの紙サイズ(これは入れ替わらない)の横幅が2cm増え,縦幅が1cm増えた紙サイズとなります.
-
-### `show`
-出力する対象を指定します.`show={trimmarks,banner,digital}`のようにカンマ区切りのリストを与えます.引数を与えない場合は全て表示します.
-
-* `trimmarks`:トンボ自身を出力します.
-* `banner`:日付などを出力します.
-* `digital`:TrimBoxとBleedBoxの設定を行います(デジタルトンボ).
-* `no`:何も表示しません.
-
-### `bleed_margin`
-仕上がりと裁ち落としの間(ドブ)の長さを指定します.次のようにすると,上下左右を独立に変更できます.
-```latex
-\usepackage[bleed_margin={top=3mm,bottom=5mm,gutter=0mm,fore-edge=2mm}]{jlreq-trimmarks}
-```
-
-## `\jlreqtrimmarkssetup`
-パッケージオプションで指定できない設定を行えます.keyval形式です.
-
-### `banner`
-`show=banner`時に出力される文字列.通常は左上に出力されますが,四つ角および上下左右の中心に出力することもできます.指定は
-```latex
-\jlreqtrimmarkssetup{
- banner={
- <場所(上下,左右中央)>={
- <細かな位置>={
- <ページ数の偶奇に応じて>={
- <表示項目>
- }
- }
- }
- }
-}
-```
-のようになります.キー名は省略することもできます.例えば次のように指定します.
-
-```latex
-\jlreqtrimmarkssetup{
- banner={
- top-right={
- tate={
- odd={奇数ページの右上に縦書きで表示},
- even={偶数ページの右上に縦書きで表示},
- },
- yoko={右上に横書きで表示}, % ページの偶奇によらず共通
- corner={右上角に横書きで表示},
- in-yoko={右上版面内に横書きで表示},
- in-tate={右上版面内に縦書きで表示},
- },
- bottom-center={
- left={中央下の左に表示}, % odd=, even=も使用可能
- right={中央下の右に表示},
- in={中央下の版面内に表示},
- },
- center-gutter={
- above={ノド側中央の上側に表示},
- below={ノド側中央の下側に表示},
- },
- }
-}
-```
-場所は`top/bottom/center`と`left/right/center/gutter/fore-edge`の可能な組み合わせが指定可能です.各項目に`\thepage`を指定するとページ数を出力できます.
-
-次のような指定も可能です.
-```latex
-\jlreqtrimmarkssetup{
- banner={
- tate={左上に縦書き}, % 場所が省略されるとtop-leftと見なされる.
- odd={左上奇数ページ}, % 省略されたのでyokoと見なされる.
- top-right={
- odd={右上奇数ページ} % ここもyokoが省略されている.
- }
- }
-}
-```
-
-
-### `trimmarks_width`
-トンボ自身の太さを指定します.
-
-### ` color`
-トンボの色.この機能を利用するには,あらかじめ`\color`を定義するパッケージ(`color`パッケージまたはその派生)を読み込んでおく必要があります.ここでの指定は次のようにして`\color`命令に変換されます.
-
-* `cy`や`myk`のように`cmyk`という文字列の一部の場合は,`cmyk`で指定された色のみの色になります.例えば`color=cy`は`\color[cmyk]{1,0,1,0}`となります.
-* そうでない場合は`\color`の引数に回されます.`[***]`という形が先行する場合は,`\color`のオプションとして扱われます.例えば以下のようになります.
-
- - `black` -> `\color{black}`
- - `[cmyk]0.5,0.5,0.5,0` -> `\color[cmyk]{0.5,0.5,0.5,0}`
-
-## ライセンス
-このパッケージは二条項BSDライセンスの元で配布されています.詳しくは[LICENSE](LICENSE)をご覧ください.
-
-## 履歴
-* 2018-05-19
- - 最初のバージョン
-* 2018-06-17
- - バグ修正.
-* 2018-08-08
- - `trimmarks_paper`を拡張.
- - パッケージオプション`landscape`を追加.
-* 2018-09-01
- - `bleed_margin`を`\jlreqtrimmarkssetup`からパッケージオプションに移した.
- - `\mag`が`1000`でない場合も動くようにした(つもり)
- - バグ修正
-* 2018-12-10
- - `\jlreqtrimmarkssetup`内の`banner`を拡張.
-* 2019-04-01
- - `\jlreqtrimmarkssetup`内の`banner`を更に拡張.
- - `bleed_margin`を拡張.
-* 2020-05-01
- - `\jlreqtrimmarkssetup`の`banner`を使わない場合,`\@bannertoken`の中身を偶奇ページ両方に出力するようにした.
- - `\jlreqtrimmarkssetup`の`banner`を使う場合,`\@bannertoken`の中身を無視するようにした.
- - `\jlreqtrimmarkssetup`の`banner_font`が指定された場合,`\@bannerfont`を無視するようにした.
-* 2021-07-22
- - expl3コードとの親和性を高めた.
-* 2021-08-12
- - `etoolbox`に依存しないようにした.
-* 2022-07-13
- - 読み込み時にエラーが出るバグ修正.
-
---------------
-Noriyuki Abe
-https://github.com/abenori/jlreq
-
diff --git a/language/japanese/jlreq/jlreq-trimmarks.md b/language/japanese/jlreq/jlreq-trimmarks.md
deleted file mode 100644
index 3f4e72e4d3..0000000000
--- a/language/japanese/jlreq/jlreq-trimmarks.md
+++ /dev/null
@@ -1,168 +0,0 @@
-# jlreq-trimmarks
-
-## What is this?
-This package outputs trim (register) marks. It works with [LuaTeX-ja](https://osdn.jp/projects/luatex-ja/wiki/FrontPage) / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout and any document class (not only with jlreq class). It provides the following.
-
-* Output trim marks
-* Set TrimBox and BleedBox if possible.
-* Set the size of paper.
-
-Note that this package is independent from [Requirements for Japanese Text Layout](https://www.w3.org/TR/jlreq/) (JLReq). JLReq says nothing about trim marks.
-
-## Installation
-Move jlreq-trimmarks.sty and jlre-helpers.sty to $TEXMF/tex/latex/jlreq.
-
-## How to use
-Load it by `\usepackage` with specifying the TeX engine and the DVI driver.
-
-````
-\usepackage[dvipdfmx,platex]{jlreq-trimmarks}
-````
-
-Do not use `tombow` option in the document class.
-
-## Note
-jlreq-trimmarks sets the size of the paper. However, it may not work due to a conflict with other packages. In this case, please use more powerful package, e.g., [bxpapersize](https://github.com/zr-tex8r/BXpapersize).
-
-## Options
-The following package options (keyval style) are available.
-
-### `platex`, `uplatex`, `lulatex`
-Set the engine. If it is not specified, then the engine is
-
-* the one used in the jlreq class if the jlreq class is loaded.
-* guessed one if the jlreq class is not loaded.
-
-### `dvipdfmx`, `dvips`, `dviout`
-Set the dvi driver. You do not have to specify it when using the engine `lualatex`. If it is not specified (with `platex` or `uplatex`), then `dvipdfmx` is used.
-
-### `trimmarks_paper`
-Set the size of the paper including trim marks.
-
-* `trimmarks_paper=<paper type>`: specify via the paper type. for the paper type, you can use `a0--a10`, `b0--b10` and `c2--c8`. Note that `b0--b10` is `JIS B' (Japanese B-series variant).
-* `trimmarks_paper={<width>,height>}`: specify via the width and height.
-* `trimmarks_paper=<paper size>+{<width>,<height>}` (e.g. `trimmarks_paper=a4+{1cm,2cm}`): `<width>` (resp. `<height>`) is added to the width (resp. height) of the paper size specified by `<paper size>` For `<paper size>`, one can use `<paper type>` or `{<width>,<height>}` as in the above.
-* `trimmarks_paper=a4+2cm` is equivalent to `trimmarks_paper=a4+{2cm,2cm}`.
-* If `<paper size>` is empty (e.g. `trimmarks_paper=+2cm`), the current paper size (which is specified usually by the option for the document class) is used.
-
-### `landscape`
-Swap the width and the height. This swaps only the width and height which is specified with the option `trimmarks_paper`. For example, `landscape,trimmarks_paper=+{1cm,2cm}`, adds 1cm to the height and 2cm to the width. But the current paper size is not swapped.
-
-### `show`
-Specify the types of trim marks which the package outputs. It is specified with the comma separated list like `show={trimmarks,banner,digital}`. If no argument is given, everything will be showed.
-
-* `trimmarks`: outputs the trim marks.
-* `banner`: date etc.
-* `digital`:TrimBox and BleedBox.
-* `no`: nothing will be showed
-
-### `bleed_margin`
-Set the bleed margin.
-You can also specify as follows.
-```latex
-\usepackage[bleed_margin={top=3mm,bottom=5mm,gutter=0mm,fore-edge=2mm}]{jlreq-trimmarks}
-```
-
-## `\jlreqtrimmarkssetup`
-Set the additional settings with the keyval style.
-
-### `banner`
-The things which the package outputs when `show=banner` is specified in the package option.
-Normally it is showed in the left of the top. You can also put them in many places with
-```latex
-\jlreqtrimmarkssetup{
- banner={
- <Position (top/bottom, left/right, center)>={
- <more precise position>={
- <odd/even>={
- <content>
- }
- }
- }
- }
-}
-```
-Here is an example.
-```latex
-\jlreqtrimmarkssetup{
- banner={
- top-right={
- vertical={
- odd={In the right of the top, only in odd pages, vertical mode.},
- even={In the right of the top, only in even pages, vertical mode.},
- },
- horizontal={In the right of the top, horizontal mode.}, % does not depend on the parity of the page number
- corner={In the corner of the right of the top, horizontal mode.},
- in-horizontal={In the right of the top, horizontal mode, in the trim area.},
- in-vertical={In the right of the top, vertical mode, in the trim area.},
- },
- bottom-center={
- left={In the left in the center of the bottom}, % odd=, even= is also available
- right={In the right in the center of the bottom},
- in={In the trim area in the center of the bottom.},
- }
- }
-}
-```
-A possible combination of `top/bottom/center` and `left/right/center/gutter/fore-edge` can be used for the position.
-You can use `\thepage` to output the number of the page.
-
-The keys can be ommited. For example:
-```latex
-\jlreqtrimmarkssetup{
- banner={
- vertical={Vertical mode, in the top of the left},
- odd={In the top of the left, only in odd pages.}, % regarded as `horizontal`
- top-right={
- odd={In the top of the right, only in odd pages, horizontal mode.}
- }
- }
-}
-```
-
-### `trimmarks_width`
-Set the width of trim marks.
-
-### ` color`
-Set the color of the trim marks. You have to load a package which defines `\color` (`color' package or its variant) before loading this package to use this function. Here are some examples of specifying the color.
-
-* `color=c` -> `\color[cmyk]{1,0,0,0}`
-* `color=cyk` -> `\color[cmyk]{1,0,1,1}`
-* `black` -> `\color{black}`
-* `[cmyk]0.5,0.5,0.5,0` -> `\color[cmyk]{0.5,0.5,0.5,0}`
-
-## LICENSE
-This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENSE).
-
-## CHANGELOG
-* 2018-05-19
- - First release.
-* 2018-06-17
- - Fixed a bug.
-* 2018-08-08
- - Extended `trimmarks_paper`.
- - Added a package option `landscape`.
-* 2018-09-01
- - Moved `bleed_margin` from `\jlreqtrimmarkssetup` to a package option.
- - jlreq-trimmarks works with unusugal`\mag`.
- - Fixed bugs.
-* 2018-12-10
- - Extended `banner` in `\jlreqtrimmarkssetup`.
-* 2019-04-01
- - Extended `banner` in `\jlreqtrimmarkssetup`.
- - Extended `bleed_margin`.
-* 2020-05-01
- - `jlreq-trimmarks` outputs the contents in `\@bannertoken` when `banner` in `\jlreqtrimmarkssetup` is not used.
- - `\@bannertoken` is ignored when `banner` in `\jlreqtrimmarkssetup` is used.
- - `\@bannerfont` is ignored when `banner_font` in `\jlreqtrimmarkssetup` is used.
-* 2021-07-22
- - It has more compatibility with expl3.
-* 2021-08-12
- - Removed dependence on `etoolbox` package.
-* 2022-07-13
- - Fixed a bug: an error occurred when loading.
-
---------------
-Noriyuki Abe
-https://github.com/abenori/jlreq
-
diff --git a/language/japanese/jlreq/jlreq-trimmarks.sty b/language/japanese/jlreq/jlreq-trimmarks.sty
deleted file mode 100644
index b21bdcc453..0000000000
--- a/language/japanese/jlreq/jlreq-trimmarks.sty
+++ /dev/null
@@ -1,981 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-trimmarks}[2022/07/13 jlreq-trimmarks]
-\RequirePackage{l3keys2e}
-\RequirePackage{jlreq-helpers}
-
-\ExplSyntaxOn
-% check \tombowdatetrue
-\ifx\tombowdatetrue\@undefined
- \PackageError{jlreq-trimmarks}{This~package~only~works~with~pLaTeX,~upLaTeX~or~LuaTeX-ja}{\@ehc}
-\fi
-
-\cs_set:Nn \__jlreq_trimmarks_undeferr:n {\ClassError{jlreq-trimmarks}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}}
-% クラスファイル内でしか使わないマクロをクラスファイル終了時に未定義にする
-\seq_new:N \g__jlreq_trimmarks_afterpkg_deletecs_seq
-\seq_new:N \g__jlreq_trimmarks_afterpkg_deleteif_seq
-\cs_set:Nn \__jlreq_trimmarks_afterpkg_addtodeletecs:N {
- \seq_gput_right:Nn \g__jlreq_trimmarks_afterpkg_deletecs_seq {#1}
-}
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_afterpkg_addtodeletecs:N
-\cs_set:Nn \__jlreq_trimmarks_afterpkg_addtodeleteif:N {
- \seq_gput_right:Nn \g__jlreq_trimmarks_afterpkg_deleteif_seq {#1}
-}
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_afterpkg_addtodeleteif:N
-\AtEndOfPackage{%
- \seq_map_inline:Nn \g__jlreq_trimmarks_afterpkg_deletecs_seq {
- \jlreq@helper@undefcs{#1}{\__jlreq_trimmarks_undeferr:n}
- }
- \seq_map_inline:Nn \g__jlreq_trimmarks_afterpkg_deleteif_seq {
- \jlreq@helper@undefif{#1}{\__jlreq_trimmarks_undeferr:n}
- }
- \cs_undefine:N \g__jlreq_trimmarks_afterpkg_deletecs_seq
- \cs_undefine:N \g__jlreq_trimmarks_afterpkg_deleteif_seq
- \cs_undefine:N \__jlreq_trimmarks_undeferr:n
-}
-
-\@ifclassloaded{jlreq}{\let\ifjlreq@trimmarks@jlreqloaded=\@firstoftwo}{\let\ifjlreq@trimmarks@jlreqloaded=\@secondoftwo}
-
-\def\ifjlreq@trimmarks@tate@{\jlreq@if{\if@tate\fi}}%
-% \@firstoftwo when \if@tate is defined and \if@tate=\iftrue
-\def\ifjlreq@trimmarks@tate{%
- \jlreq@if{\ifnum0\ifx\if@tate\@undefined 1\fi\ifx\if@tate\relax 1\fi>0~\fi}{\@secondoftwo}{\ifjlreq@trimmarks@tate@}%
-}
-
-% dvipdfmx=f,dvips=s,dviout = o, lualatex = l
-\keys_define:nn { jlreq-trimmarks } {
- dvipdfmx .code:n = {\let\jlreq@trimmarks@driver=f}, .value_forbidden:n = true,
- dvips .code:n = {\let\jlreq@trimmarks@driver=s}, .value_forbidden:n = true,
- dviout .code:n = {\let\jlreq@trimmarks@driver=o}, .value_forbidden:n = true
-}
-\let\jlreq@trimmarks@engine=\jlreq@engine
-\keys_define:nn { jlreq-trimmarks } {
- lualatex .code:n = {\let\jlreq@trimmarks@engine=l}, .value_forbidden:n = true,
- uplatex .code:n = {\let\jlreq@trimmarks@engine=u}, .value_forbidden:n = true,
- platex .code:n = {\let\jlreq@trimmarks@engine=p}, .value_forbidden:n = true
-}
-
-\tl_new:N \g__jlreq_trimmarks_papersizelist_tl
-\cs_set:Nn \__jlreq_trimmarks_addpapersize:nn {
- \exp_args:Nnv \__jlreq_trimmarks_addpapersize_aux:nn {#1}{jlreq@helper@papersizelist@#2}
-}
-\cs_set:Nn \__jlreq_trimmarks_addpapersize_aux:nn {
- \__jlreq_trimmarks_addpapersize_auxi:nnn {#1}#2
-}
-\cs_set:Nn \__jlreq_trimmarks_addpapersize_auxi:nnn {
- \clist_map_inline:nn {#1} {
- \tl_gput_right:Nn \g__jlreq_trimmarks_papersizelist_tl { { ##1 } { \def\jlreq@resulta{#2} \def\jlreq@resultb{#3} } }
- }
-}
-\tl_set:Nn \g__jlreq_trimmarks_papersizechangeddate_tl {2021-11-05}
-\cs_set:Nn \__jlreq_trimmarks_addpapersize_withjisBwarning:nnn {
- \__jlreq_trimmarks_addpapersize_withwarning:nnn {#1}{#2}{
- The~option~`##1'~means~the~papersize~in~the~ISO~B-series,~not~in~the~JIS~B-series.~This~behavior~was~changed~from~jlreq-trimmarks~version~\g__jlreq_trimmarks_papersizechangeddate_tl.~Use~`trimmarks_paper=#3'~for~the~JIS-B-series.~If~you~want~to~specify~the~ISO~B-series~and~if~you~think~this~warning~is~annoying,~use~`trimmarks_paper=#2'
- }
-}
-\cs_set:Nn \__jlreq_trimmarks_addpapersize_withwarning:nnn {
- \exp_args:Nnv \__jlreq_trimmarks_addpapersize_withwarning_aux:nnn {#1}{jlreq@helper@papersizelist@#2}{#3}
-}
-\cs_set:Nn \__jlreq_trimmarks_addpapersize_withwarning_aux:nnn {
- \__jlreq_trimmarks_addpapersize_withwarning_auxi:nnnn {#1}#2{#3}
-}
-\cs_set:Nn \__jlreq_trimmarks_addpapersize_withwarning_auxi:nnnn {
- \cs_set:Nn \l__jlreq_tmpa:n {
- \PackageWarningNoLine{jlreq-trimmarks}{#4}
- }
- \clist_map_inline:nn {#1} {
- \tl_gput_right:Nx \g__jlreq_trimmarks_papersizelist_tl { { ##1 } {
- \exp_not:o { \l__jlreq_tmpa:n {##1} }
- \exp_not:n { \def\jlreq@resulta{#2} \def\jlreq@resultb{#3} }
- } }
- }
-}
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \g__jlreq_trimmarks_papersizelist_tl
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize:nn
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_aux:nn
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_auxi:nnn
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withjisBwarning:nnn
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withwarning:nnn
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withwarning_aux:nnn
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withwarning_auxi:nnnn
-
-\__jlreq_trimmarks_addpapersize:nn{a0,A0,a0paper}{a0paper}
-\__jlreq_trimmarks_addpapersize:nn{a1,A1,a1paper}{a1paper}
-\__jlreq_trimmarks_addpapersize:nn{a2,A2,a2paper}{a2paper}
-\__jlreq_trimmarks_addpapersize:nn{a3,A3,a3paper}{a3paper}
-\__jlreq_trimmarks_addpapersize:nn{a4,A4,a4paper}{a4paper}
-\__jlreq_trimmarks_addpapersize:nn{a5,A5,a5paper}{a5paper}
-\__jlreq_trimmarks_addpapersize:nn{a6,A6,a6paper}{a6paper}
-\__jlreq_trimmarks_addpapersize:nn{a7,A7,a7paper}{a7paper}
-\__jlreq_trimmarks_addpapersize:nn{a8,A8,a8paper}{a8paper}
-\__jlreq_trimmarks_addpapersize:nn{a9,A9,a9paper}{a9paper}
-\__jlreq_trimmarks_addpapersize:nn{a10,A10,a10paper}{a10paper}
-
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b0,B0}{b0paper}{b0j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b1,B1}{b1paper}{b1j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b2,B2}{b2paper}{b2j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b3,B3}{b3paper}{b3j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b4,B4}{b4paper}{b4j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b5,B5}{b5paper}{b5j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b6,B6}{b6paper}{b6j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b7,B7}{b7paper}{b7j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b8,B8}{b8paper}{b8j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b9,B9}{b9paper}{b9j}
-\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b10,B10}{b10paper}{b10j}
-
-\__jlreq_trimmarks_addpapersize:nn{c2,C2,c2paper}{c2paper}
-\__jlreq_trimmarks_addpapersize:nn{c3,C3,c3paper}{c3paper}
-\__jlreq_trimmarks_addpapersize:nn{c4,C4,c4paper}{c4paper}
-\__jlreq_trimmarks_addpapersize:nn{c5,C5,c5paper}{c5paper}
-\__jlreq_trimmarks_addpapersize:nn{c6,C6,c6paper}{c6paper}
-\__jlreq_trimmarks_addpapersize:nn{c7,C7,c7paper}{c7paper}
-\__jlreq_trimmarks_addpapersize:nn{c8,C8,c8paper}{c8paper}
-
-\__jlreq_trimmarks_addpapersize:nn{a4var}{a4var}
-\__jlreq_trimmarks_addpapersize:nn{b5var}{b5var}
-
-\__jlreq_trimmarks_addpapersize:nn{letter,letterpaper}{letterpaper}
-\__jlreq_trimmarks_addpapersize:nn{legal,legalpaper}{legalpaper}
-\__jlreq_trimmarks_addpapersize:nn{executive,executivepaper}{executivepaper}
-\__jlreq_trimmarks_addpapersize:nn{ansiapaper}{ansiapaper}
-\__jlreq_trimmarks_addpapersize:nn{ansibpaper}{ansibpaper}
-\__jlreq_trimmarks_addpapersize:nn{ansicpaper}{ansicpaper}
-\__jlreq_trimmarks_addpapersize:nn{ansidpaper}{ansidpaper}
-\__jlreq_trimmarks_addpapersize:nn{ansiepaper}{ansiepaper}
-\__jlreq_trimmarks_addpapersize:nn{hagaki}{hagaki}
-
-% width -> \jlreq@resulta, height -> \jlreq@resultb
-\def\jlreq@trimmarks@analyzepapersize#1{
- \str_case:nVF {#1} \g__jlreq_trimmarks_papersizelist_tl
- {
- \jlreq@helper@dividebycomma{#1}%
- \ifjlreq@result\else
- \def\jlreq@resulta{#1}%
- \def\jlreq@resultb{#1}%
- \fi
- }
-}
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@analyzepapersize
-
-\keys_define:nn { jlreq-trimmarks } { trimmarks_paper .tl_set:N = \jlreq@trimmarks@option@papersize }
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@option@papersize
-
-\newif\ifjlreq@trimmarks@digital \jlreq@trimmarks@digitaltrue
-\newif\ifjlreq@trimmarks@show \jlreq@trimmarks@showtrue
-\newif\ifjlreq@trimmarks@show@artbox \jlreq@trimmarks@show@artboxfalse
-\tombowdatetrue
-% flag: `show` is specified or not
-\newif\ifjlreq@trimmarks@option@show \jlreq@trimmarks@option@showfalse
-
-\keys_define:nn { jlreq-trimmarks } {
- show .code:n = {
- \jlreq@trimmarks@option@showtrue
- \jlreq@ifempty{#1}{
- \jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue
- }{
- \jlreq@trimmarks@showfalse\tombowdatefalse\jlreq@trimmarks@digitalfalse
- \clist_map_variable:nNn {#1} \jlreq@trimmarks@tempa {
- \expandafter\jlreq@helper@trim\expandafter{\jlreq@trimmarks@tempa}{\jlreq@trimmarks@tempa}
- \jlreq@switch{\jlreq@trimmarks@tempa}{
- {trimmarks}{\jlreq@trimmarks@showtrue}
- {banner}{\tombowdatetrue}
- {digital}{\jlreq@trimmarks@digitaltrue}
- {digital*}{\jlreq@trimmarks@digitaltrue\jlreq@trimmarks@show@artboxtrue}
- {no}{\tombowdatefalse\jlreq@trimmarks@showfalse\jlreq@trimmarks@digitalfalse}
- }[\PackageError{jlreq-trimmarks}{Unknown~value~`##1'~in~the~option~`show'}{\@ehc}]
- }
- }
- }
-}
-\keys_define:nn { jlreq-trimmarks } {
- bleed_margin .code:n = {
- \begingroup
- \def\jlreq@do{}%
- \jlreq@parsekeyval@nokey{
- \ifjlreq@parsekeyval@nokey@novalue{%
- \clist_map_variable:nNn { top,bottom,gutter,fore-edge } \jlreq@tempa {
- \epreto\jlreq@do{%
- \noexpand\def\exp_not:o {\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname}{##1}%
- }%
- }%
- }{%
- \bool_if:nTF {
- \str_if_eq_p:nn {##1} {top} || \str_if_eq_p:nn {##1} {bottom} ||
- \str_if_eq_p:nn {##1} {gutter} || \str_if_eq_p:nn {##1} {fore-edge}
- }{
- \tl_put_right:Nx \jlreq@do{%
- \noexpand\def\exp_not:o {\csname jlreq@trimmarks@bleed@##1\endcsname}{##2}%
- }%
- }{%
- \PackageError{jlreq-trimmarks}{Unknown~position~`##1'~in~bleed_margin}{\@ehc}
- }%
- }%
- }{#1}%
- \expandafter\endgroup
- \jlreq@do
- }
-}
-
-\newif\ifjlreq@trimmarks@landscape \jlreq@trimmarks@landscapefalse
-\keys_define:nn { jlreq-trimmarks } { landscape .code:n = {\jlreq@trimmarks@landscapetrue}, .value_forbidden:n = true }
-\__jlreq_trimmarks_afterpkg_addtodeleteif:N \ifjlreq@trimmarks@landscape
-
-\keys_set:nn { jlreq-trimmarks } {
- trimmarks_paper = {+2in},
- bleed_margin = { top = 3mm, bottom = 3mm, gutter = 3mm, fore-edge = 3mm },
-}
-\ProcessKeysOptions { jlreq-trimmarks }
-
-\ifjlreq@trimmarks@option@show\else
- \ifx o\jlreq@trimmarks@driver
- \jlreq@trimmarks@digitalfalse
- \jlreq@trimmarks@showtrue
- \jlreq@trimmarks@show@artboxfalse
- \fi
-\fi
-
-\def\jlreq@trimmarks@setpapersize#1{
- \jlreq@ifcontains{#1}{+}{
- \def\@tempa##1+##2\jlreq@endmark{
- \jlreq@helper@trim{##1}{\jlreq@trimmarks@tempa}
- \jlreq@helper@trim{##2}{\jlreq@trimmarks@tempb}
- \ifx\jlreq@trimmarks@tempa\@empty
- \let\jlreq@tempa=\paperwidth
- \let\jlreq@tempb=\paperheight
- \else
- \expandafter\jlreq@trimmarks@analyzepapersize\expandafter{\jlreq@trimmarks@tempa}
- \let\jlreq@tempa=\jlreq@resulta
- \let\jlreq@tempb=\jlreq@resultb
- \ifjlreq@trimmarks@landscape\jlreq@helper@swap{\jlreq@tempa}{\jlreq@tempb}\fi
- \fi
- \expandafter\jlreq@trimmarks@analyzepapersize\expandafter{\jlreq@trimmarks@tempb}
- \ifjlreq@trimmarks@landscape\jlreq@helper@swap{\jlreq@resulta}{\jlreq@resultb}\fi
- \edef\jlreq@trimmarks@paperwidth{\the\dimexpr\jlreq@tempa + \jlreq@resulta\relax}
- \edef\jlreq@trimmarks@paperheight{\the\dimexpr\jlreq@tempb + \jlreq@resultb\relax}
- }
- \@tempa#1\jlreq@endmark
- }{
- \jlreq@trimmarks@analyzepapersize{#1}
- \ifjlreq@trimmarks@landscape\jlreq@helper@swap{\jlreq@resulta}{\jlreq@resultb}\fi
- \edef\jlreq@trimmarks@paperwidth{\jlreq@resulta}
- \edef\jlreq@trimmarks@paperheight{\jlreq@resultb}
- }
-}
-\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@setpapersize
-\expandafter\jlreq@trimmarks@setpapersize\expandafter{\jlreq@trimmarks@option@papersize}
-
-\ifx o\jlreq@trimmarks@driver
- \ifjlreq@trimmarks@digital
- \PackageError{jlreq-trimmarks}{`show=digital'~can't~be~used~with~the~driver~`dviout'}{\@ehc}
- \fi
-\fi
-
-\long\def\jlreq@trimmarks@setbanner#1#2#3{%
- \begingroup
- \def\jlreq@do{}%
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{}{%
- \jlreq@switch{##1}{
- {yoko}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}}
- {horizontal}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}}
- {tate}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}}
- {vertial}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}}
- {corner}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{corner@#1}{corner@#2}{##2}}}
- {in-yoko}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}}
- {in-horizontal}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}}
- {in-tate}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}}
- {in-vertial}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}}
- }%
- }%
- }{#3}%
- \jlreq@if{\ifx\jlreq@do\@empty\fi}{%
- \tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{#3}}%
- }{}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\long\def\jlreq@trimmarks@setbanner@#1#2#3{%
- \begingroup
- \def\jlreq@do{}%
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{}{%
- \jlreq@switch*{##1}{
- {left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{##2}}}
- {right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{after@#2}{##2}}}
- {above}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{##2}}}
- {below}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{after@#2}{##2}}}
- {in}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{in@#1}{in@#2}{##2}}}
- }%
- }%
- }{#3}%
- \jlreq@if{\ifx\jlreq@do\@empty\fi}{
- \tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{#3}}%
- }{}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-% #1 = odd, #2 = even
-\long\def\jlreq@trimmarks@setbanner@@#1#2#3{%
- \begingroup
- \def\jlreq@do{}%
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{}{%
- \jlreq@switch*{##1}{
- {odd}{\tl_put_right:Nn \jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{##2}}}}
- {even}{\tl_put_right:Nn \jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@even@#2\endcsname{\unexpanded{##2}}}}
- }%
- }%
- }{#3}%
- \jlreq@if{\ifx\jlreq@do\@empty\fi}{
- \tl_put_right:Nn \jlreq@do{%
- \expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{#3}}%
- \expandafter\edef\csname jlreq@trimmarks@banner@even@#2\endcsname{\unexpanded{#3}}%
- }%
- }{}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\keys_define:nn { jlreqtrimmarkssetup } {
- banner .code:n = {
- \clist_map_variable:nNn { odd,even } \@tempa {
- \clist_map_variable:nNn { tate,yoko,corner,inyoko,intate } \jlreq@tempa {
- \clist_map_variable:nNn {top,bottom} \jlreq@tempb {
- \clist_map_variable:nNn {left,right} \jlreq@tempc {
- \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @\jlreq@tempc}{}%
- }%
- }%
- }%
- \clist_map_variable:nNn {before,after} \jlreq@tempa {
- \clist_map_variable:nNn {top,bottom,in} \jlreq@tempb {
- \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @center}{}%
- }%
- \clist_map_variable:nNn {left,right,in} \jlreq@tempb {
- \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @center@\jlreq@tempb}{}%
- }%
- }%
- }%
- \def\jlreq@do{}%
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{}{%
- \edef\jlreq@gutterodd{\ifjlreq@trimmarks@tate{right}{left}}%
- \if@twoside
- \edef\jlreq@guttereven{\ifjlreq@trimmarks@tate{left}{right}}%
- \else
- \let\jlreq@guttereven\jlreq@gutterodd
- \fi
- \jlreq@switch*{##1}{
- {top-left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}}
- {left-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}}
- {top-right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}}
- {right-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}}
- {top-gutter}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}}
- {gutter-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}}
- {top-fore-edge}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}}
- {fore-edge-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}}
- {bottom-left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}}
- {left-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}}
- {bottom-right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}}
- {right-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}}
- {bottom-gutter}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}}
- {gutter-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}}
- {bottom-fore-edge}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}}
- {fore-edge-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}}
- {top-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}}
- {center-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}}
- {bottom-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}}
- {center-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}}
- {center-right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}}
- {right-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}}
- {center-left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}}
- {left-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}}
- {center-gutter}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}}
- {gutter-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}}
- {center-fore-edge}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}}
- {fore-edge-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}}
- }%
- }%
- }{#1}%
- \jlreq@if{\ifx\jlreq@do\@empty\fi}{
- \tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{#1}}%
- }{}%
- \jlreq@do
- },
- banner_font .tl_set:N = \jlreq@trimmarks@bannerfont,
- trimmarks_width .code:n = {\setlength{\@tombowwidth}{#1}},
- color .code:n = {
- \jlreq@ifempty{#1}{%
- \def\jlreq@trimmarks@color{\normalcolor}%
- }{%
- \@ifundefined{color}{%
- \PackageError{jlreq-trimmarks}{`\string\color'~is~not~defined,~please~load~the~package~`color'~or~its~variant~before~this~package}{\@ehc}%
- }%
- \jlreq@switch{#1}{
- {c}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,0}}}
- {m}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,0}}}
- {y}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,0}}}
- {k}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,0,1}}}
- {cm}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,0}}}
- {cy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,0}}}
- {ck}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,1}}}
- {my}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,0}}}
- {mk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,1}}}
- {yk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,1}}}
- {cmy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,0}}}
- {cmk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,1}}}
- {cyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,1}}}
- {myk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,1}}}
- {cmyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,1}}}
- {%
- \jlreq@iffirsttoken{##1}{[}{%
- \def\@tempa[####1]####2\jlreq@endmark{\def\jlreq@trimmarks@color{\color[####1]{####2}}}%
- }{%
- \def\@tempa####1\jlreq@endmark{\def\jlreq@trimmarks@color{\color{####1}}}%
- }%
- \@tempa##1\jlreq@endmark
- }%
- }%
- }%
- }%
-}
-\NewDocumentCommand { \jlreqtrimmarkssetup } { +m } {
- \keys_set:nn { jlreqtrimmarkssetup } {#1}
-}
-\@onlypreamble\jlreqtrimmarkssetup
-\@bannertoken{%
- \jobname\space(\number\year-\two@digits\month-\two@digits\day
- \space\two@digits\hour :\two@digits\minute)%
-}
-\jlreqtrimmarkssetup{
- banner={\the\@bannertoken},
- banner_font={\@bannerfont},
- color={}
-}
-
-\ifx\jlreq@trimmarks@engine\@undefined
- \jlreq@helper@guessengine
- \let\jlreq@trimmarks@engine=\jlreq@result
-\fi
-
-\ifx\jlreq@trimmarks@driver\@undefined
- \ifx l\jlreq@trimmarks@engine
- \let\jlreq@trimmarks@driver=l
- \else
- % default: dvipdfmx
- \let\jlreq@trimmarks@driver=f
- \fi
-\fi
-
-\ifx l\jlreq@trimmarks@engine
- \setlength{\pagewidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax}
- \setlength{\pageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
-\else
- \setlength{\pdfpagewidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax}
- \setlength{\pdfpageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
-\fi
-
-\hoffset=\dimexpr(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \ifx l\jlreq@trimmarks@engine 1in\else 1truein\fi\relax
-\voffset=\dimexpr(\jlreq@trimmarks@paperheight - \paperheight)/2 - \ifx l\jlreq@trimmarks@engine 1in\else 1truein\fi\relax
-\ifx l\jlreq@trimmarks@engine\else
- \@ifundefined{@tombowreset@@paper}{
- \AtBeginDocument{%
- \addtolength{\oddsidemargin}{\dimexpr 1truein - 1in\relax}%
- \addtolength{\evensidemargin}{\dimexpr 1truein - 1in\relax}%
- \addtolength{\topmargin}{\dimexpr 1truein - 1in\relax}%
- }
- }{
- \def\@tombowreset@@paper{%
- \@@topmargin\topmargin
- \jlreq@if{\iftombow\fi}{
- \@@paperwidth\paperwidth
- \advance\@@paperwidth 2\dimexpr\@tombowbleed\relax
- \@@paperheight\paperheight \advance\@@paperheight 10mm\relax
- \advance\@@paperheight 2\dimexpr\@tombowbleed\relax
- % 1in -> 1truein
- \advance\@@topmargin 1truein\relax \advance\@themargin 1truein\relax
- }{}%
- }
- }
-\fi
-
-\ifx l\jlreq@trimmarks@driver\else
- \jlreq@helper@divide{\the\mag pt}{1000pt}
- \edef\@tempa{\noexpand\AtBeginDvi{\noexpand\special{papersize=\the\dimexpr\strip@pt\jlreq@resultdimen\dimexpr\jlreq@trimmarks@paperwidth\relax\relax, \the\dimexpr\strip@pt\jlreq@resultdimen\dimexpr\jlreq@trimmarks@paperheight\relax\relax}}}
- \@tempa
-\fi
-\@ifundefined{stockheight}{\newlength{\stockheight}}{}
-\@ifundefined{stockwidth}{\newlength{\stockwidth}}{}
-\setlength{\stockwidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax}
-\setlength{\stockheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
-
-\def\jlreq@trimmarks@outputbanner#1#2{%
- \jlreq@if{\iftombowdate\fi}{%
- \expandafter\let\expandafter\jlreq@tempa\csname jlreq@trimmarks@banner@\ifodd\c@page odd\else even\fi @#1\endcsname
- \jlreq@if{\ifx\jlreq@tempa\@empty\fi}{}{%
- \def\@tempa##1{#2}%
- \expandafter\@tempa\expandafter{\jlreq@tempa}%
- }%
- }{}%
-}
-\def\jlreq@trimmarks@bleed{3mm}
-% left=gutter?
-\def\ifjlreq@trimmarks@leftisgutter{%
- \ifjlreq@trimmarks@tate {
- \bool_if:nTF { ! ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) ) }
- }{
- \bool_if:nTF { ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) }
- }
-}
-\def\jlreq@trimmarks@bleed@left{\ifjlreq@trimmarks@leftisgutter{\jlreq@trimmarks@bleed@gutter}{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}}
-\def\jlreq@trimmarks@bleed@right{\ifjlreq@trimmarks@leftisgutter{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}{\jlreq@trimmarks@bleed@gutter}}
-
-\def\jlreq@trimmarks@outputtombow{%
- \vbox to\z@{%
- \kern-\dimexpr 10mm + \jlreq@trimmarks@bleed@top\relax
- \boxmaxdepth\maxdimen
- \moveleft\jlreq@trimmarks@bleed@left\vbox to\@@paperheight{%
- \color@begingroup\jlreq@trimmarks@color
- \hbox to\@@paperwidth{%
- \hskip\jlreq@trimmarks@bleed@left\relax
- \setbox\jlreq@tempboxa=\hbox to\z@{% \@TL
- \yoko\hss
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@left\relax height\@tombowwidth depth\z@
- \vrule height10mm width\@tombowwidth depth\z@
- \jlreq@trimmarks@outputbanner{yoko@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to\z@{\hskip5mm\jlreq@trimmarks@bannerfont##1\hss}%
- \dp\jlreq@tempboxa=0pt
- \raise 4pt\box\jlreq@tempboxa
- }%
- \jlreq@trimmarks@outputbanner{inyoko@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@top\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- }%
- \dp\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \hfill
- \setbox\jlreq@tempboxa=\hbox{% \@TC
- \yoko
- \vrule width10mm height\@tombowwidth depth\z@
- \jlreq@trimmarks@outputbanner{before@top@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \raise 4pt\box\jlreq@tempboxa
- }%
- \jlreq@trimmarks@outputbanner{in@top@center}{%
- \setbox\jlreq@tempboxa=\hbox{\jlreq@trimmarks@bannerfont##1}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@top\relax
- \jlreq@tempdimb=0.5\wd\jlreq@tempboxa
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdimb\raise-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdimb
- }%
- \vrule height10mm width\@tombowwidth depth\z@
- \jlreq@trimmarks@outputbanner{after@top@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \raise 4pt\box\jlreq@tempboxa
- }%
- \vrule width10mm height\@tombowwidth depth\z@
- }%
- \dp\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \hfill
- \setbox\jlreq@tempboxa=\hbox to\z@{% \@TR
- \yoko
- \jlreq@trimmarks@outputbanner{yoko@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise 4pt\box\jlreq@tempboxa
- }%
- \jlreq@trimmarks@outputbanner{inyoko@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1}%
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \ht\jlreq@tempboxa\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \vrule height10mm width\@tombowwidth depth\z@
- \jlreq@trimmarks@outputbanner{corner@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip\dimexpr\jlreq@trimmarks@bleed@right + 4pt\relax\jlreq@trimmarks@bannerfont##1\hss}%
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise 4pt\box\jlreq@tempboxa
- }%
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@right\relax height\@tombowwidth depth\z@\hss
- }%
- \dp\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \hskip\jlreq@trimmarks@bleed@right
- }%
- \kern-10mm
- \hbox to\@@paperwidth{%
- \hbox to\z@{% \@Tl
- \yoko\hss
- \vrule width10mm height\@tombowwidth depth\z@
- \jlreq@trimmarks@outputbanner{corner@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 4pt}%
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt
- \raise\dimexpr \jlreq@trimmarks@bleed@top + 4pt\relax\box\jlreq@tempboxa
- }%
- \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed@top\relax width\@tombowwidth depth\z@
- \jlreq@trimmarks@outputbanner{tate@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
- \else
- \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
- \fi
- \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\raise-5mm\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \jlreq@trimmarks@outputbanner{intate@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax
- \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- }%
- \hfill
- \hbox to\z@{% \@Tr
- \yoko
- \jlreq@trimmarks@outputbanner{tate@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\raise -5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- \jlreq@trimmarks@outputbanner{intate@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \ht\jlreq@tempboxa\relax
- \else
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \wd\jlreq@tempboxa\relax
- \fi
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed@top\relax width\@tombowwidth depth\z@
- \vrule width10mm height\@tombowwidth depth\z@
- \hss
- }%
- }%
- \vfill
- \hbox to\@@paperwidth{%
- \hbox to\z@{% \@CL
- \yoko\hss
- \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
- \jlreq@trimmarks@outputbanner{before@center@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
- \else
- \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
- \fi
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \jlreq@trimmarks@outputbanner{after@center@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
- \else
- \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
- \fi
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \vrule height10mm depth10mm width\@tombowwidth
- \jlreq@trimmarks@outputbanner{in@center@left}{%
- \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left + \ht\jlreq@tempboxa\relax
- \jlreq@tempdimb=.5\wd\jlreq@tempboxa
- \else
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left\relax
- \jlreq@tempdimb=.5\dimexpr\ht\jlreq@tempboxa + \dp\jlreq@tempboxa\relax
- \fi
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\raise\jlreq@tempdimb\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- }%
- \hfill
- \hbox to\z@{% \@CR
- \yoko
- \jlreq@trimmarks@outputbanner{in@center@right}{%
- \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \ht\jlreq@tempboxa\relax
- \jlreq@tempdimb=0.5\wd\jlreq@tempboxa
- \else
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \wd\jlreq@tempboxa\relax
- \jlreq@tempdimb=0.5\dimexpr\ht\jlreq@tempboxa + \dp\jlreq@tempboxa\relax
- \fi
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\raise\jlreq@tempdimb\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \vrule height10mm depth10mm width\@tombowwidth
- \jlreq@trimmarks@outputbanner{before@center@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
- \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- \jlreq@trimmarks@outputbanner{after@center@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
- \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss
- }%
- }%
- \vfill
- \hbox to\@@paperwidth{%
- \hbox to\z@{% \@Bl
- \yoko\hss
- \vrule width10mm depth\@tombowwidth height\z@
- \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed@bottom\relax width\@tombowwidth height\z@
- \jlreq@trimmarks@outputbanner{tate@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
- \else
- \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
- \fi
- \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\raise 5mm\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \jlreq@trimmarks@outputbanner{intate@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax
- \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- }%
- \hfill
- \hbox to\z@{% \@Br
- \yoko
- \jlreq@trimmarks@outputbanner{tate@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
- \jlreq@tempdima=\dimexpr\ifx l\jlreq@trimmarks@engine\ht\jlreq@tempboxa + \fi 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern\jlreq@tempdima\raise5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima
- }%
- \jlreq@trimmarks@outputbanner{intate@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
- \ifx l\jlreq@trimmarks@engine
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \ht\jlreq@tempboxa\relax
- \else
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \wd\jlreq@tempboxa\relax
- \fi
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
- }%
- \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed@bottom\relax width\@tombowwidth height\z@
- \jlreq@trimmarks@outputbanner{corner@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 4pt\relax\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom + 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \vrule width10mm depth\@tombowwidth height\z@\hss
- }%
- }%
- \kern-10mm
- \hbox to\@@paperwidth{%
- \hskip\jlreq@trimmarks@bleed@left\relax
- \setbox\jlreq@tempboxa=\hbox to\z@{% \@BL
- \yoko\hss
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@left\relax depth\@tombowwidth height\z@
- \jlreq@trimmarks@outputbanner{corner@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip\dimexpr\jlreq@trimmarks@bleed@left + 4pt\relax}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \vrule depth10mm width\@tombowwidth height\z@
- \jlreq@trimmarks@outputbanner{yoko@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \jlreq@trimmarks@outputbanner{inyoko@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@bottom + \dp\jlreq@tempboxa\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise\jlreq@tempdima\box\jlreq@tempboxa
- }%
- }%
- \ht\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \hfill
- \setbox\jlreq@tempboxa=\hbox{% \@BC
- \yoko
- \vrule width10mm depth\@tombowwidth height\z@
- \jlreq@trimmarks@outputbanner{before@bottom@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \jlreq@trimmarks@outputbanner{in@bottom@center}{%
- \setbox\jlreq@tempboxa=\hbox{\jlreq@trimmarks@bannerfont##1}%
- \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom\relax
- \jlreq@tempdimb=.5\wd\jlreq@tempboxa
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
- \kern-\jlreq@tempdimb\raise\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdimb
- }%
- \vrule depth10mm width\@tombowwidth height\z@
- \jlreq@trimmarks@outputbanner{before@bottom@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \vrule width10mm depth\@tombowwidth height\z@
- }%
- \ht\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \hfill
- \setbox\jlreq@tempboxa=\hbox to 0pt{% \@BR
- \yoko
- \jlreq@trimmarks@outputbanner{yoko@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
- \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise-\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \jlreq@trimmarks@outputbanner{inyoko@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1}%
- \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom\relax
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \raise\jlreq@tempdima\box\jlreq@tempboxa
- }%
- \vrule depth10mm width\@tombowwidth height\z@
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@right\relax depth\@tombowwidth height\z@\hss
- }%
- \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \hskip\jlreq@trimmarks@bleed@right
- }%
- \color@endgroup}\vss
- }%
-}
-\def\@outputtombow{%
- % 6mm = \@tombowbleed: from plcore
- \@@paperwidth=\dimexpr\@@paperwidth - 6mm + \dimexpr\jlreq@trimmarks@bleed@left + \jlreq@trimmarks@bleed@right\relax\relax
- \@@paperheight=\dimexpr\@@paperheight - 6mm + \dimexpr\jlreq@trimmarks@bleed@top + \jlreq@trimmarks@bleed@bottom\relax\relax
- \ifjlreq@trimmarks@show\expandafter\jlreq@trimmarks@outputtombow\fi
-}
-
-\ifjlreq@trimmarks@digital
- \ifx l\jlreq@trimmarks@engine
- \setlength\jlreq@resultdimen{1pt}
- \else
- \jlreq@helper@divide{\the\mag pt}{1000pt}
- \fi
- % 0.9963 = 1pt/1bp (almost)
- \edef\jlreq@trimmarks@pttobp#1{\noexpand\strip@pt\noexpand\dimexpr\strip@pt\jlreq@resultdimen\noexpand\dimexpr0.9963\noexpand\dimexpr#1\unexpanded{\relax\relax\relax}}
- \edef\jlreq@trimmarks@trimboxsize{%
- [%
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2}~
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2}~
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2}~
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight + \paperheight)/2}%
- ]
- }
- \jlreq@tempcnta=\c@page
- \def\@tempa{%
- [%
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \jlreq@trimmarks@bleed@left}~
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2 - \jlreq@trimmarks@bleed@bottom}~
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2 + \jlreq@trimmarks@bleed@right}~
- \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight + \paperheight)/2 + \jlreq@trimmarks@bleed@top}%
- ]
- }
- \c@page=1
- \edef\jlreq@trimmarks@bleedboxsize@odd{\@tempa}
- \c@page=2
- \edef\jlreq@trimmarks@bleedboxsize@even{\@tempa}%
- \c@page=\jlreq@tempcnta
- \edef\jlreq@trimmarks@pdfattribute@odd{%
- /TrimBox~\jlreq@trimmarks@trimboxsize
- \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi
- /BleedBox~\jlreq@trimmarks@bleedboxsize@odd
- }
- \edef\jlreq@trimmarks@pdfattribute@even{%
- /TrimBox~\jlreq@trimmarks@trimboxsize
- \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi
- /BleedBox~\jlreq@trimmarks@bleedboxsize@even
- }
- \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@pttobp
- \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@trimboxsize
- \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@bleedboxsize@odd
- \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@bleedboxsize@even
- \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@pdfattribute@odd
- \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@pdfattribute@even
-
- \begingroup
- \c@page=1\relax
- \jlreq@tempdima=\jlreq@trimmarks@bleed@left
- \c@page=2\relax
- \ifdim\jlreq@trimmarks@bleed@left=\jlreq@tempdima
- \global\let\jlreq@tempa\@firstoftwo
- \else
- \global\let\jlreq@tempa\@secondoftwo
- \fi
- \endgroup
- \jlreq@tempa{
- % no difference between odd pages and even pages
- \ifx l\jlreq@trimmarks@driver
- \edef\@tempa{\noexpand\pdfvariable pageattr{\jlreq@trimmarks@pdfattribute@odd}}
- \@tempa
- \fi
- \ifx f\jlreq@trimmarks@driver
- \tl_put_left:Nx \@outputtombow {\noexpand\special{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@odd>>}}
- \fi
- \ifx s\jlreq@trimmarks@driver
- \edef\@tempa{\noexpand\special{ps:SDict~begin~
- [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~
- \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi
- [~/BleedBox~\jlreq@trimmarks@bleedboxsize@odd /PAGE~pdfmark~
- end}}%
- \@tempa
- \fi
- }{
- \ifx l\jlreq@trimmarks@driver
- % in \@outputtombow, it's too late
- \tl_put_left:Nx \@outputpage {%
- \unexpanded{\ifodd\c@page\pdfvariable} pageattr{\jlreq@trimmarks@pdfattribute@odd}%
- \unexpanded{\else\pdfvariable} pageattr{\jlreq@trimmarks@pdfattribute@even}\noexpand\fi
- }
- \fi
- \ifx f\jlreq@trimmarks@driver
- \tl_put_left:Nx \@outputtombow {%
- \unexpanded{\ifodd\c@page\special}{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@odd>>}%
- \unexpanded{\else\special}{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@even>>}\noexpand\fi
- }
- \fi
- \ifx s\jlreq@trimmarks@driver
- \tl_put_left:Nx \@outputtombow {%
- \unexpanded{\ifodd\c@page\special}{ps:SDict~begin~
- [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~
- \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi
- [~/BleedBox~\jlreq@trimmarks@bleedboxsize@odd /PAGE~pdfmark~
- end}\unexpanded{\else\special}{ps:SDict~begin~
- [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~
- \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi
- [~/BleedBox~\jlreq@trimmarks@bleedboxsize@even /PAGE~pdfmark~
- end}\noexpand\fi
- }
- \fi
- }
-\fi
-
-% always true
-\tombowtrue
-
-\ExplSyntaxOff
-\endinput
diff --git a/language/japanese/jlreq/jlreq.cls b/language/japanese/jlreq/jlreq.cls
deleted file mode 100644
index 8615e3bf30..0000000000
--- a/language/japanese/jlreq/jlreq.cls
+++ /dev/null
@@ -1,6553 +0,0 @@
-%% Japanese document class based on requirements for Japanese text layout
-%%
-%% The package is distributed under the BSD 2-Clause License
-%%
-%%
-% (based on JLReq 20200811 https://www.w3.org/TR/2020/NOTE-jlreq-20200811/)
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2022/07/13 jlreq]
-\RequirePackage{l3keys2e}
-\RequirePackage{etoolbox}
-\RequirePackage{jlreq-helpers}[2021/08/12]
-
-\ExplSyntaxOn
-\int_new:N \l__jlreq_tmpa_int
-\tl_new:N \l__jlreq_tmpa_tl
-\tl_new:N \l__jlreq_tmpb_tl
-\tl_new:N \l__jlreq_tmpc_tl
-\cs_new:Nn \l_jlreq_do: {}
-\str_new:N \l__jlreq_tmpa_str
-\str_new:N \l__jlreq_tmpb_str
-\str_new:N \l__jlreq_tmpc_str
-\bool_new:N \l_jlreq_tmpa_bool
-\clist_new:N \l_jlreq_tmpa_clist
-\seq_new:N \l__jlreq_tmpa_seq
-\dim_new:N \l__jlreq_tmpa_dim
-\skip_new:N \l_jlreq_tmpa_skip
-\box_new:N \l_jlreq_tmpa_box
-\box_new:N \l_jlreq_tmpb_box
-\box_new:N \l_jlreq_tmpc_box
-\prop_new:N \l__jlreq_tmpa_prop
-
-\tl_new:N \l__jlreq_result_tl
-\prop_new:N \l__jlreq_result_prop
-
-\cs_set:Nn \__jlreq_undeferr:n {\ClassError{jlreq}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}}
-% クラスファイル内でしか使わないマクロをクラスファイル終了時に未定義にする
-\seq_new:N \g__jlreq_aftercls_deletecs_seq
-\seq_new:N \g__jlreq_aftercls_deleteif_seq
-\cs_set:Nn \__jlreq_aftercls_addtodeletecs:N {
- \seq_gput_right:Nn \g__jlreq_aftercls_deletecs_seq {#1}
-}
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_aftercls_addtodeletecs:N
-\cs_set:Nn \__jlreq_aftercls_addtodeleteif:N {
- \seq_gput_right:Nn \g__jlreq_aftercls_deleteif_seq {#1}
-}
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_aftercls_addtodeleteif:N
-\AtEndOfClass{%
- \seq_map_inline:Nn \g__jlreq_aftercls_deletecs_seq {
- \jlreq@helper@undefcs{#1}{\__jlreq_undeferr:n}
- }
- \seq_map_inline:Nn \g__jlreq_aftercls_deleteif_seq {
- \jlreq@helper@undefif{#1}{\__jlreq_undeferr:n}
- }
- \cs_undefine:N \g__jlreq_aftercls_deletecs_seq
- \cs_undefine:N \g__jlreq_aftercls_deleteif_seq
- \cs_undefine:N \__jlreq_undeferr:n
-}
-
-% preambleにいるかのスイッチ
-\newif\ifjlreq@preamble
-\jlreq@preambletrue
-\AtBeginDocument{\jlreq@preamblefalse}
-
-\def\jlreq@saveoriginalcs#1{%
- \@ifundefined{#1}{
- \ClassError{jlreq}{Trying~to~save~#1~but~it's~not~defined,~may~be~a~bug}{\@ehc}%
- }{}
- \@ifundefined{jlreq@original@#1}{}{
- \ClassError{jlreq}{Trying~to~save~#1~twice,~may~be~a~bug}{\@ehc}%
- }
- \begingroup
- \edef\jlreq@do{\noexpand\let\exp_not:c {jlreq@original@#1}=\exp_not:c {#1}}
- \expandafter\endgroup
- \jlreq@do
-}
-
-\def\jlreq@useoriginalcs#1{%
- \jlreq@if{\ifcsname jlreq@original@#1\endcsname\fi}%
- {\csname jlreq@original@#1\endcsname}%
- {#1}%
-}
-\def\jlreq@restoreoriginalcs#1{%
- \jlreq@if{\ifcsname jlreq@original@\expandafter\@gobble\string#1\endcsname\fi}%
- {\expandafter\let\expandafter#1\csname jlreq@original@\expandafter\@gobble\string#1\endcsname}{}%
-}
-
-%. オプションの定義
-% オプション処理の際にしか使わない変数(後でそれを元に別の変数を調整する)
-% ものは\jlreq@option@<key>に格納する.
-% _とかは@に変換する.
-% エンジン類
-\keys_define:nn { jlreq } {
- uplatex .code:n = { \let\jlreq@engine=u }, uplatex .value_forbidden:n = true,
- platex .code:n = { \let\jlreq@engine=p }, platex .value_forbidden:n = true,
- lualatex .code:n = { \let\jlreq@engine=l }, lualatex .value_forbidden:n = true,
- % 文書のタイプ
- article_type .choices:nn = {article,report,book}{\def\jlreq@article@type{#1}},
- article .code:n = { \def\jlreq@article@type{article} }, article .value_forbidden:n = true,
- report .code:n = { \def\jlreq@article@type{report} }, report .value_forbidden:n = true,
- book .code:n = { \def\jlreq@article@type{book} }, book .value_forbidden:n = true
-}
-
-%.. 基本版面.まずは紙サイズ.
-\tl_new:N \g__jlreq_papersizelist_tl
-\cs_set:Nn \__jlreq_addpapersize:nnn {
- \exp_args:Nnnv \__jlreq_addpapersize_aux:nnn {#1}{#2}{jlreq@helper@papersizelist@#3}
-}
-\cs_set:Nn \__jlreq_addpapersize_aux:nnn {
- \__jlreq_addpapersize_auxi:nnnn {#1}{#2}#3
-}
-\cs_set:Nn \__jlreq_addpapersize_auxi:nnnn {
- \clist_map_inline:nn {#1} {
- \tl_gput_right:Nn \g__jlreq_papersizelist_tl { { ##1 } { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} } }
- }
- \clist_map_inline:nn {#2} {
- \keys_define:nn { jlreq } {
- ##1 .code:n = { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} },
- ##1 .value_forbidden:n = true
- }
- }
-}
-\keys_define:nn { jlreq } {
- paper .code:n = {
- \str_case:nVF {#1} \g__jlreq_papersizelist_tl {
- \jlreq@helper@dividebycomma{#1}%
- \legacy_if:nTF { jlreq@result } {
- \setlength{\paperwidth}{\dimexpr\jlreq@resulta\relax}
- \setlength{\paperheight}{\dimexpr\jlreq@resultb\relax}
- } {
- \ClassError { jlreq } { The~paper~#1~is~unknown } {\@ehc}
- }
- }
- }
-}
-
-\cs_set:Nn \__jlreq_addpapersize_withwarning:nnnn {
- \exp_args:Nnnv \__jlreq_addpapersize_withwarning_aux:nnnn {#1}{#2}{jlreq@helper@papersizelist@#3}{#4}
-}
-\cs_set:Nn \__jlreq_addpapersize_withwarning_aux:nnnn {
- \__jlreq_addpapersize_withwarning_auxi:nnnnn {#1}{#2}#3{#4}
-}
-\cs_set:Nn \__jlreq_addpapersize_withwarning_auxi:nnnnn {
- \cs_set:Nn \l__jlreq_tmpa:n {
- \ClassWarningNoLine{jlreq}{#5}
- }
- \clist_map_inline:nn {#1} {
- \tl_gput_right:Nx \g__jlreq_papersizelist_tl { { ##1 } {
- \exp_not:o { \l__jlreq_tmpa:n {##1} }
- \exp_not:n { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} }
- } }
- }
- \clist_map_inline:nn {#2} {
- \cs_set:Nx \l__jlreq_do: {
- \exp_not:N \keys_define:nn { jlreq } {
- ##1 .code:n = {
- \exp_not:o { \l__jlreq_tmpa:n {##1} }
- \exp_not:n { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} }
- },
- ##1 .value_forbidden:n = true
- }
- }
- \l__jlreq_do:
- }
-}
-
-\tl_set:Nn \g__jlreq_papersizechangeddate_tl{2021-11-05}
-\cs_set:Nn \__jlreq_addpapersize_withjisBwarning:nnnn {
- \__jlreq_addpapersize_withwarning:nnnn {#1} {#2} {#3} {The~option~`##1'~means~the~papersize~in~the~ISO~B-series,~not~in~the~JIS~B-series.~This~behavior~was~changed~from~jlreq~version~\g__jlreq_papersizechangeddate_tl.~Use~`paper=#4'~for~the~JIS-B-series.}
-}
-
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize:nnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_aux:nnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_auxi:nnnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withwarning:nnnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withwarning_aux:nnnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withwarning_auxi:nnnnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withjisBwarning:nnnn
-\__jlreq_aftercls_addtodeletecs:N \g__jlreq_papersizelist_tl
-
-% 紙サイズ一覧.b*はJIS B.
-\__jlreq_addpapersize:nnn{a0paper}{}{a0paper}
-\__jlreq_addpapersize:nnn{a1paper}{}{a1paper}
-\__jlreq_addpapersize:nnn{a2paper}{}{a2paper}
-\__jlreq_addpapersize:nnn{a3paper}{a3paper}{a3paper}
-\__jlreq_addpapersize:nnn{a4paper}{a4paper}{a4paper}
-\__jlreq_addpapersize:nnn{a5paper}{a5paper}{a5paper}
-\__jlreq_addpapersize:nnn{a6paper}{a6paper}{a6paper}
-\__jlreq_addpapersize:nnn{a7paper}{}{a7paper}
-\__jlreq_addpapersize:nnn{a8paper}{}{a8paper}
-\__jlreq_addpapersize:nnn{a9paper}{}{a9paper}
-\__jlreq_addpapersize:nnn{a10paper}{}{a10paper}
-
-\__jlreq_addpapersize:nnn{a0,A0}{}{a0paper}
-\__jlreq_addpapersize:nnn{a1,A1}{}{a1paper}
-\__jlreq_addpapersize:nnn{a2,A2}{}{a2paper}
-\__jlreq_addpapersize:nnn{a3,A3}{}{a3paper}
-\__jlreq_addpapersize:nnn{a4,A4}{}{a4paper}
-\__jlreq_addpapersize:nnn{a5,A5}{}{a5paper}
-\__jlreq_addpapersize:nnn{a6,A6}{}{a6paper}
-\__jlreq_addpapersize:nnn{a7,A7}{}{a7paper}
-\__jlreq_addpapersize:nnn{a8,A8}{}{a8paper}
-\__jlreq_addpapersize:nnn{a9,A9}{}{a9paper}
-\__jlreq_addpapersize:nnn{a10,A10}{}{a10paper}
-
-\__jlreq_addpapersize:nnn{b0paper}{}{b0paper}
-\__jlreq_addpapersize:nnn{b1paper}{}{b1paper}
-\__jlreq_addpapersize:nnn{b2paper}{}{b2paper}
-\__jlreq_addpapersize:nnn{b3paper}{}{b3paper}
-\__jlreq_addpapersize:nnn{b4paper}{}{b4paper}
-\__jlreq_addpapersize:nnn{b5paper}{}{b5paper}
-\__jlreq_addpapersize:nnn{b6paper}{}{b6paper}
-\__jlreq_addpapersize:nnn{b7paper}{}{b7paper}
-\__jlreq_addpapersize:nnn{b8paper}{}{b8paper}
-\__jlreq_addpapersize:nnn{b9paper}{}{b9paper}
-\__jlreq_addpapersize:nnn{b10paper}{}{b10paper}
-
-\__jlreq_addpapersize:nnn{c2paper}{}{c2paper}
-\__jlreq_addpapersize:nnn{c3paper}{}{c3paper}
-\__jlreq_addpapersize:nnn{c4paper}{}{c4paper}
-\__jlreq_addpapersize:nnn{c5paper}{}{c5paper}
-\__jlreq_addpapersize:nnn{c6paper}{}{c6paper}
-\__jlreq_addpapersize:nnn{c7paper}{}{c7paper}
-\__jlreq_addpapersize:nnn{c8paper}{}{c8paper}
-
-\__jlreq_addpapersize:nnn{c2,C2}{}{c2paper}
-\__jlreq_addpapersize:nnn{c3,C3}{}{c3paper}
-\__jlreq_addpapersize:nnn{c4,C4}{}{c4paper}
-\__jlreq_addpapersize:nnn{c5,C5}{}{c5paper}
-\__jlreq_addpapersize:nnn{c6,C6}{}{c6paper}
-\__jlreq_addpapersize:nnn{c7,C7}{}{c7paper}
-\__jlreq_addpapersize:nnn{c8,C8}{}{c8paper}
-
-\__jlreq_addpapersize_withjisBwarning:nnnn{b0,B0}{}{b0paper}{b0j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b1,B1}{}{b1paper}{b1j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b2,B2}{}{b2paper}{b2j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b3,B3}{}{b3paper}{b3j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b4,B4}{}{b4paper}{b4j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b5,B5}{}{b5paper}{b5j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b6,B6}{}{b6paper}{b6j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b7,B7}{}{b7paper}{b7j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b8,B8}{}{b8paper}{b8j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b9,B9}{}{b9paper}{b9j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{b10,B10}{}{b10paper}{b10j}
-
-\__jlreq_addpapersize_withjisBwarning:nnnn{}{b4paper}{b4paper}{b4j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{}{b5paper}{b5paper}{b5j}
-\__jlreq_addpapersize_withjisBwarning:nnnn{}{b6paper}{b6paper}{b6j}
-
-\__jlreq_addpapersize:nnn{b0j}{}{b0j}
-\__jlreq_addpapersize:nnn{b1j}{}{b1j}
-\__jlreq_addpapersize:nnn{b2j}{}{b2j}
-\__jlreq_addpapersize:nnn{b3j}{}{b3j}
-\__jlreq_addpapersize:nnn{b4j}{}{b4j}
-\__jlreq_addpapersize:nnn{b5j}{}{b5j}
-\__jlreq_addpapersize:nnn{b6j}{}{b6j}
-\__jlreq_addpapersize:nnn{b7j}{}{b7j}
-\__jlreq_addpapersize:nnn{b8j}{}{b8j}
-\__jlreq_addpapersize:nnn{b9j}{}{b9j}
-\__jlreq_addpapersize:nnn{b10j}{}{b10j}
-
-\__jlreq_addpapersize:nnn{a4var}{}{a4var}
-\__jlreq_addpapersize:nnn{b5var}{}{b5var}
-
-\__jlreq_addpapersize:nnn{letter,letterpaper}{letterpaper}{letterpaper}
-\__jlreq_addpapersize:nnn{legal,legalpaper}{legalpaper}{legalpaper}
-\__jlreq_addpapersize:nnn{executive,executivepaper}{executivepaper}{executivepaper}
-\__jlreq_addpapersize:nnn{ansiapaper}{}{ansiapaper}
-\__jlreq_addpapersize:nnn{ansibpaper}{}{ansibpaper}
-\__jlreq_addpapersize:nnn{ansicpaper}{}{ansicpaper}
-\__jlreq_addpapersize:nnn{ansidpaper}{}{ansidpaper}
-\__jlreq_addpapersize:nnn{ansiepaper}{}{ansiepaper}
-\__jlreq_addpapersize:nnn{hagaki}{}{hagaki}
-
-
-%.. フォントサイズ,行長,1ページあたりの行数で基本版面のサイズを決める(2.4.1.a)
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@fontsize
-\keys_define:nn { jlreq } {
- fontsize .tl_set:N = \jlreq@option@fontsize,
- 10pt .code:n = {\def\jlreq@option@fontsize{10pt}}, 10pt .value_forbidden:n = true,
- 11pt .code:n = {\def\jlreq@option@fontsize{11pt}}, 11pt .value_forbidden:n = true,
- 12pt .code:n = {\def\jlreq@option@fontsize{12pt}}, 12pt .value_forbidden:n = true,
- jafontsize .tl_set:N = \jlreq@option@jafontsize,
- jafontscale .tl_set:N = \jlreq@option@jafontscale
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@jafontsize
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@jafontscale
-%.. 行の長さ
-\keys_define:nn { jlreq } { line_length .tl_set:N = \jlreq@option@line@length }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@line@length
-%.. 1ページあたりの行数
-\keys_define:nn { jlreq } { number_of_lines .tl_set:N = \jlreq@option@number@of@lines }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@number@of@lines
-
-% 地の空き量,のどの空き量で配置位置を決める(2.4.1.b)省略されたら中央配置.
-%.. 天
-\keys_define:nn { jlreq } { head_space .tl_set:N = \jlreq@option@head@space }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@head@space
-%.. 地
-\keys_define:nn { jlreq } { foot_space .tl_set:N = \jlreq@option@foot@space }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@foot@space
-%.. のど
-\keys_define:nn { jlreq } { gutter .tl_set:N = \jlreq@option@gutter }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@gutter
-%.. 小口
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@fore@edge
-\keys_define:nn { jlreq } {
- fore_edge .tl_set:N = \jlreq@option@fore@edge,
- fore-edge .tl_set:N = \jlreq@option@fore@edge
-}
-
-%.. 柱とノンブル
-% 本文とヘッダ/フッタの間の空き
-\keys_define:nn { jlreq } { headfoot_verticalposition .tl_set:N = \jlreq@option@headfoot@verticalpos }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@headfoot@verticalpos
-% 柱やノンブルの左右の空き
-\keys_define:nn { jlreq } { headfoot_sidemargin .tl_set:N = \jlreq@headfoot@sidemargin }
-
-%.. 段間
-\keys_define:nn { jlreq } { column_gap .tl_set:N = \jlreq@option@column@gap }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@column@gap
-
-%.. 行送り,指定無しの場合は文字サイズの1.7倍とする.(1.5から2倍が好ましい:2.4.2.d 注3)
-\keys_define:nn { jlreq } {
- baselineskip .tl_set:N = \jlreq@option@baselineskip,
- linegap .code:n = { \def\jlreq@option@baselineskip{1zw + #1} }
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@baselineskip
-
-%.. 組み方系
-% 行頭に括弧が来たときの配置:3.1.5
-% 段落頭指定_折り返し行頭指定 で与える.
-\keys_define:nn { jlreq } { open_bracket_pos .choices:nn = {zenkaku_tentsuki,zenkakunibu_nibu,nibu_tentsuki}{\def\jlreq@open@bracket@pos{#1}} }
-% ぶら下げ組みをするか:3.8.2 注1
-\newif\ifjlreq@burasage\jlreq@burasagefalse
-\keys_define:nn { jlreq } { hanging_punctuation .code:n = {\jlreq@burasagetrue}, hanging_punctuation .value_forbidden:n = true}
-% jsarticleと同じkanjiskipを使う
-\newif\ifjlreq@narrow@kanjiskip\jlreq@narrow@kanjiskipfalse
-\keys_define:nn { jlreq } { narrow_kanjiskip .code:n = {\jlreq@narrow@kanjiskiptrue}, narrow_kanjiskip .value_forbidden:n = true}
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@narrow@kanjiskip
-
-%.. 注
-% 傍注のタイプ
-\keys_define:nn { jlreq } { sidenote_length .tl_set:N = \jlreq@option@sidenote@length }
-\__jlreq_aftercls_addtodeletecs:N \jlreq@option@sidenote@length
-
-%.. 逆ノンブル
-\newif\ifjlreq@option@use@reverse@pagination
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@option@use@reverse@pagination
-\jlreq@option@use@reverse@paginationfalse
-\keys_define:nn { jlreq } { use_reverse_pagination .code:n = {\jlreq@option@use@reverse@paginationtrue}, use_reverse_pagination .value_forbidden:n = true }
-
-%.. もろもろ
-\newif\if@restonecol\@restonecolfalse
-\newif\if@titlepage\@titlepagefalse
-\newif\if@landscape\@landscapefalse
-\newif\if@tate \@tatefalse
-\newif\ifjlreq@option@titlepage \jlreq@option@titlepagefalse % titlepageかnotitlepageかが指定された
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@option@titlepage
-\keys_define:nn { jlreq } {
- landscape .code:n = {\@landscapetrue}, landscape .value_forbidden:n = true,
- tombo .code:n = {\ClassWarningNoLine{jlreq}{The~option~`tombo'~is~not~supported~by~jlreq~class.~Please~use~the~jlreq-trimmarks~package}},
- tombow .code:n = {\ClassWarningNoLine{jlreq}{The~option~`tombow'~is~not~supported~by~jlreq~class.~Please~use~the~jlreq-trimmarks~package}},
- mentuke .code:n = {\ClassWarningNoLine{jlreq}{The~option~`mentuke'~is~not~supported~by~jlreq~class.~Please~use~the~jlreq-trimmarks~package}},
- tate .code:n = { \@tatetrue }, tate .value_forbidden:n = true
-}
-
-\newif\ifjlreq@option@twoside\jlreq@option@twosidefalse % onesideかtwosideが指定された
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@option@twoside
-\keys_define:nn { jlreq } {
- oneside .code:n = { \@twosidefalse\@mparswitchfalse\jlreq@option@twosidetrue }, oneside .value_forbidden:n = true,
- twoside .code:n = { \@twosidetrue\@mparswitchtrue\jlreq@option@twosidetrue }, twoside .value_forbidden:n = true,
- onecolumn .code:n = { \@twocolumnfalse }, onecolumn .value_forbidden:n = true,
- twocolumn .code:n = { \@twocolumntrue }, twocolumn .value_forbidden:n = true,
- titlepage .code:n = { \jlreq@option@titlepagetrue\@titlepagetrue }, titlepage .value_forbidden:n = true,
- notitlepage .code:n = { \jlreq@option@titlepagetrue\@titlepagefalse }, notitlepage .value_forbidden:n = true,
- draft .code:n = { \setlength\overfullrule{5pt} }, draft .value_forbidden:n = true,
- final .code:n = { \setlength\overfullrule{0pt} }, final .value_forbidden:n = true
-}
-\newif\if@openright
-\newif\ifjlreq@option@open \jlreq@option@openfalse % openrightかopenanyが指定された
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@option@open
-\keys_define:nn { jlreq } {
- openright .code:n = { \@openrighttrue\jlreq@option@opentrue }, openright .value_forbidden:n = true,
- openany .code:n = { \@openrightfalse\jlreq@option@opentrue }, openany .value_forbidden:n = true,
- leqno .code:n = { \input{leqno.clo } }, leqno .value_forbidden:n = true,
- fleqn .code:n = { \input{fleqn.clo } }, fleqn .value_forbidden:n = true
-}
-\newif\ifjlreq@option@enablejfam \jlreq@option@enablejfamtrue
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@option@enablejfam
-\keys_define:nn { jlreq } { disablejfam .code:n = { \jlreq@option@enablejfamfalse }, disablejfam .value_forbidden:n = true}
-
-\def\jlreq@note#1{}
-\keys_define:nn { jlreq } { jlreq_notes .code:n = { \def\jlreq@note##1{\message{^^JJLReq note: ##1^^J}}}, jlreq_notes .value_forbidden:n = true}
-
-\keys_set:nn { jlreq } {
- article_type=article,paper=a4,
- number_of_lines={},line_length = {},
- head_space={},foot_space={},gutter={},fore_edge={},
- jafontsize={},jafontscale={1},baselineskip={17zw/10},
- sidenote_length=0pt,column_gap={2zw},
- headfoot_verticalposition = {},headfoot_sidemargin={0pt},
- open_bracket_pos=zenkaku_tentsuki,
- onecolumn,final }
-\ProcessKeysOptions { jlreq }
-
-\legacy_if:nF { jlreq@option@titlepage } {
- \str_if_eq:VnTF \jlreq@article@type { article } { \@titlepagefalse } { \@titlepagetrue }
-}
-\legacy_if:nF { jlreq@option@open } {
- \str_if_eq:VnTF \jlreq@article@type { book } { \@openrighttrue } { \@openrightfalse }
-}
-% articleではopenrightは効かない.
-\str_if_eq:VnT \jlreq@article@type { article } {
- \legacy_if:nT { @openright } {
- \ClassWarningNoLine { jlreq } { The~option~`openright'~is~ignored~in~article }
- \@openrightfalse
- }
-}
-\legacy_if:nF { jlreq@option@twoside } {
- \str_if_eq:VnTF \jlreq@article@type { book } { \@twosidetrue } { \@twosidefalse }
-}
-
-\tl_new:N \g__jlreq_jlreqsetup_finally_tl
-\NewDocumentCommand{\jlreqsetup} { +m } {
- \keys_set:nn { jlreqsetup } {#1}
- \tl_use:N \g__jlreq_jlreqsetup_finally_tl
-}
-% \jlreqsetupの最後に必ず実行される処理を入れる.
-\cs_set:Nn \__jlreq_jlreqsetup_addtofinally:n { \tl_gput_right:Nx \g__jlreq_jlreqsetup_finally_tl { \exp_not:n {#1} } }
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_jlreqsetup_addtofinally:n
-\@onlypreamble\jlreqsetup
-
-% エンジンの設定
-\ifx\jlreq@engine\@undefined
- \jlreq@helper@guessengine
- \let\jlreq@engine=\jlreq@result
- \message{jlreq~guessed~engine:~
- \ifx l\jlreq@engine lualatex\fi
- \ifx p\jlreq@engine platex\fi
- \ifx u\jlreq@engine uplatex\fi
- }%
-\fi
-
-%.. JFMとluatexjaのロード
-\ifx l\jlreq@engine
- \def\ltj@stdyokojfm{jlreq}
- \def\ltj@stdtatejfm{jlreqv}
- \directlua{jlreq = {}}
- % この値は後でjfm-jlreq内で読む
- \directlua{jlreq.open_bracket_pos = [[\jlreq@open@bracket@pos]]}
- \ifjlreq@burasage\directlua{jlreq.burasage = true}\else\directlua{jlreq.burasage = false}\fi
- % luatexjaのロード
- \ifjlreq@option@enablejfam
- \RequirePackage{luatexja}
- \else
- \RequirePackage[disablejfam]{luatexja}
- \fi
- \RequirePackage{luatexja-adjust}
- \ltjenableadjust[lineend=extended,priority=true]
- \ltjsetparameter{stretch_priority={kanjiskip=0,xkanjiskip=10}}
- \ltjsetparameter{shrink_priority={kanjiskip=0,xkanjiskip=-30}}
-\else
- \RequirePackage{everyhook}
- \def\jlreq@jfmname@prefix{}
- \__jlreq_aftercls_addtodeletecs:N \jlreq@jfmname@prefix
- \ifjlreq@burasage\edef\jlreq@jfmname@prefix{b\jlreq@jfmname@prefix}\fi
- \str_if_eq:VnT \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} % JFMの名前
- \edef\jlreq@jfmnameg{\jlreq@jfmname@prefix jlreqg} % ゴシックなJFMの名前
- \__jlreq_aftercls_addtodeletecs:N \jlreq@jfmname
- \__jlreq_aftercls_addtodeletecs:N \jlreq@jfmnameg
-\fi
-
-% (u)pLaTeXの場合ここで初めて\epTeXinputencodingが発行されるので,
-% これ以前には和文は使えない.
-\ifx l\jlreq@engine\else
- \epTeXinputencoding utf8
- \def\zw{zw}\def\zh{zh}
- % http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1508&parent=8435
- \if@tate\AtEndPreamble{\par}\fi
-\fi
-\let\jlreq@zw=\zw
-\let\jlreq@zh=\zh
-\if@tate
- \AtBeginDocument{\tate\message{《縦組モード》}\adjustbaseline}
-\fi
-
-% \jlreq@gol(Gyo Okuri Length), \jlreq@mol (Moji Okuri Length)を定義
-\let\jlreq@gol=\zh
-\let\jlreq@mol=\zw
-
-%. helper2(エンジン依存系:和文文字を含むものもこれ以降)
-% #1のboxを今の真ん中に配置する.
-\def\jlreq@box@putcenter#1{%
- \begingroup
- \jlreq@tempdima=\dimexpr(\ht#1 - \dp#1)/2\relax
- \setbox\jlreq@tempboxa=\hbox{阿}%
- \edef\jlreq@do{%
- \noexpand\lower\the\dimexpr(\jlreq@tempdima - (\ht\jlreq@tempboxa - \dp\jlreq@tempboxa)/2)\relax\unexpanded{\box#1}%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-
-% #1の先頭が文字か
-\long\def\jlreq@ifletter#1{%
- \jlreq@iffirsttoken{#1}{~}{\@secondoftwo}{%
- \expandafter\expandafter\expandafter\jlreq@helper@ifletter\jlreq@getfirsttoken#1\jlreq@uniqtoken{}\jlreq@endmark@
- }%
-}
-
-\long\def\jlreq@helper@ifletter#1{%
- \jlreq@if{%
- \ifnum
- 0%
- \ifcat 阿\noexpand #11\fi
- \ifcat あ\noexpand #11\fi
- \ifcat (\noexpand #11\fi
- \ifcat A\noexpand #11\fi
- \ifcat 1\noexpand #11\fi
- >0~
- \fi}%
-}
-
-
-% 組方向を判定
-% \jlreq@if(y|t)(dir|box)を定義する.
-\jlreq@if{\ifx l\jlreq@engine\fi}{
- \def\jlreq@ifydir { \int_compare:nTF { \ltjgetparameter{direction} == 4 } }
- \def\jlreq@iftdir { \int_compare:nTF { (\ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8) == 3 } }
- \def\jlreq@ifybox#1{ \int_compare:nTF { \ltjgetparameter{boxdir}{#1} == 4 } }
- \def\jlreq@iftbox#1{ \int_compare:nTF { (\ltjgetparameter{boxdir}{#1}-(\ltjgetparameter{boxdir}{#1}/8)*8) == 3 } }
-}{
- \def\jlreq@ifydir{\jlreq@if{\ifydir\fi}}
- \def\jlreq@iftdir{\jlreq@if{\iftdir\fi}}
- \def\jlreq@ifybox#1{\jlreq@if{\ifybox#1\fi}}
- \def\jlreq@iftbox#1{\jlreq@if{\iftbox#1\fi}}
-}
-
-% 左ページであるか
-% #1 : odd or even or ページ数
-\def\jlreq@ifleftpage#1{%
- \bool_if:nTF { ( \legacy_if_p:n { @tate } &&
- \bool_lazy_or_p:nn { \str_if_eq_p:ee {#1} { odd } }
- { \bool_lazy_and_p:nn { ! \str_if_eq_p:ee {#1} { even } } { \int_if_odd_p:n {#1} } }
- ) || ( ! \legacy_if_p:n { @tate } &&
- \bool_lazy_or_p:nn { \str_if_eq_p:ee {#1} { even } }
- { \bool_lazy_and_p:nn { ! \str_if_eq_p:ee {#1} { odd } } { ! \int_if_odd_p:n {#1} } }
- ) }
-}
-
-\ifx l\jlreq@engine
- \def\jlreq@getpostbreakpenalty#1{\ltjgetparameter{postbreakpenalty}{#1}}
-\else
- \def\jlreq@getpostbreakpenalty#1{\postbreakpenalty#1}
-\fi
-
-% 現在行の残りを得る.
-\ifx l\jlreq@engine
- % 以下のコードはLuaTeX-jaのバグ?に依存している
- % https://ja.osdn.net/projects/luatex-ja/ticket/36489
- \def\jlreq@calc@current@linewidth@onecolumn{%
- \dimexpr
- \jlreq@reference@ref{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{0} sp - \@totalleftmargin -
- \ifodd\jlreq@currentpage
- \oddsidemargin
- \else
- \evensidemargin
- \fi
- \iftombow -1in \fi
- - \pdfvariable horigin - \hoffset
- \relax
- }
-\else
- % トンボ出力時にはjlreq-trimmarksであることを仮定する.
- % 新しいpLaTeXに対しては,jlreq-trimmarksは内部の1inを1trueinに書き換える
- \@ifundefined{@tombowreset@@paper}{
- \def\jlreq@tombow@adjust{\iftombow -1in \fi}
- }{
- \def\jlreq@tombow@adjust{\iftombow -1truein \fi}
- }
- \def\jlreq@calc@current@linewidth@onecolumn{%
- \dimexpr
- \jlreq@ifydir{%
- \jlreq@reference@ref{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{0} sp - \hoffset
- \ifodd\jlreq@currentpage
- - \oddsidemargin
- \else
- - \evensidemargin
- \fi
- }{%
- \ifdim\pdfpagewidth=0pt
- \paperheight
- \else
- \pdfpageheight
- \fi
- - \topmargin - \headheight - \headsep - \voffset
- - \jlreq@reference@ref{jlreq@rest@width.pos.Y.\the\jlreq@reference@count}{0} sp
- }%
- \jlreq@tombow@adjust
- - \@totalleftmargin - 1in
- \relax
- }
-\fi
-\def\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@current@linewidth/\jlreq@rest@linewidthで
-% この行の行頭からの長さ/残りの長さが取得できる
-\jlreq@ifprimitive{\pdfsavepos}{\jlreq@tempatrue}{\jlreq@tempafalse}
-\edef\jlreq@savepos@for@rest@linewidth{\unexpanded{%
- \jlreq@setcurrentpage
- \global\advance\jlreq@reference@count by 1
- }%
- \ifjlreq@tempa
- \unexpanded{%
- \pdfsavepos
- \jlreq@reference@label{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{\noexpand\the\noexpand\pdflastxpos}%
- \jlreq@reference@label{jlreq@rest@width.pos.Y.\the\jlreq@reference@count}{\noexpand\the\noexpand\pdflastypos}%
- }%
- \else
- \unexpanded{%
- \savepos
- \jlreq@reference@label{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{\noexpand\the\noexpand\lastxpos}%
- \jlreq@reference@label{jlreq@rest@width.pos.Y.\the\jlreq@reference@count}{\noexpand\the\noexpand\lastypos}%
- }%
- \fi
- \unexpanded{%
- \global\jlreq@current@linewidth=\jlreq@calc@current@linewidth
- \global\jlreq@rest@linewidth=\dimexpr\linewidth - \jlreq@current@linewidth\relax
- \edef\jlreq@savepos@iflabelundefined{\jlreq@reference@ifexist{jlreq@rest@width.pos.X.\the\jlreq@reference@count}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}}%
- }%
-}
-
-\ifx l\jlreq@engine
- \newcommand*{\lastnodechar}{\directlua{luatexja.pltx_composite_last_node_char()}}% undocumentedな機能を使っている
-\fi
-
-% #1と#2の間に入るjmglue((x)kanjiskipも)を\jlreq@resultskipに入れる
-\ifx l\jlreq@engine
- \def\jlreq@calc@jfmglue#1#2{%
- \begingroup
- \setbox\jlreq@tempboxa=\hbox{\inhibitglue #1\inhibitglue\hbox{}\inhibitglue#2\inhibitglue}%
- \setbox\jlreq@tempboxb=\hbox{\inhibitglue #1#2\inhibitglue}%
- \edef\jlreq@do{\noexpand\jlreq@resultskip=\the\dimexpr\wd\jlreq@tempboxb - \wd\jlreq@tempboxa\relax\noexpand\relax}%
- \jlreq@do
- \directlua{
- local~width = 0~
- local~stretch = 0~
- local~shrink = 0~
- local~n = tex.box["jlreq@tempboxb"].head~
- while~n~do~
- % すべてのglueの和を計算する.
- if~n.id == node.id("glue")~then~
- width = width + n.width~
- stretch = stretch + n.stretch~
- shrink = shrink + n.shrink~
- end~
- n = n.next~
- end~
- tex.setglue("jlreq@tempskipa",width,stretch,shrink)
- }%
- % TeXで計測した物と一致していなければTeXでの方を信じる
- \ifdim\jlreq@resultskip=\jlreq@tempskipa
- \edef\jlreq@do{\noexpand\jlreq@resultskip=\the\jlreq@tempskipa\relax}%
- \fi
- \expandafter\endgroup
- \jlreq@do
- }
-\else
- \def\jlreq@calc@jfmglue#1#2{%
- \begingroup
- \setbox\jlreq@tempboxa=\hbox{\inhibitglue #1\inhibitglue\hbox{}\inhibitglue#2\inhibitglue}%
- \setbox\jlreq@tempboxb=\hbox{\inhibitglue #1#2\inhibitglue}%
- \edef\jlreq@do{\noexpand\jlreq@resultskip=\the\dimexpr\wd\jlreq@tempboxb - \wd\jlreq@tempboxa\relax\noexpand\relax}%
- \expandafter\endgroup
- \jlreq@do
- }
-\fi
-
-\newcount\jlreq@lastnodechar
-% \jlreq@fixjfm<次の文字>の形で使う.
-% jlreq@lastnodecharに入っている値と次のトークン(\futureletで得る)の間に入るJFMグルー等を挿入する
-\def\jlreq@fixjfm{%
- \begingroup
- \ifnum\jlreq@lastnodechar>-1
- \def\jlreq@do{\futurelet\jlreq@nextchar\jlreq@insertjfm}%
- \else\def\jlreq@do{}\fi
- \expandafter\endgroup
- \jlreq@do
-}
-% \jlreq@nextcharと\jlreq@lastnodecharの間のJFMグルーを挿入
-\def\jlreq@insertjfm{%
- \ifnum\jlreq@getpostbreakpenalty{\jlreq@lastnodechar}=0\else\penalty\jlreq@getpostbreakpenalty{\jlreq@lastnodechar}\fi
- \begingroup
- \def\jlreq@do{}%
- \jlreq@getfirsttoken@expandmacros{\jlreq@nextchar}{\jlreq@tempa}%
- \expandafter\jlreq@ifletter\expandafter{\jlreq@tempa}{%
- \jlreq@calc@jfmglue{\char\jlreq@lastnodechar}{\jlreq@tempa}%
-% \message{fixjfm,~before~lastnodechar~=~\the\jlreq@lastnodechar,~after~=~\meaning\jlreq@nextchar,~Insert:~\the\jlreq@resultskip}
- \edef\jlreq@do{%
- \noexpand\hskip\the\jlreq@resultskip\space
- \noexpand\inhibitglue
- }%
- }{}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\ifx l\jlreq@engine
- \def\jlreq@divide#1#2{%
- \jlreq@resultdimen=\directlua{tex.print(tostring(\strip@pt\dimexpr #1\relax/\strip@pt\dimexpr #2\relax) .. "pt~")}%
- }
-\else
- \let\jlreq@divide=\jlreq@helper@divide
-\fi
-
-%. 文字関連設定
-% ダミー
-\def\@ptsize{0}
-%.. (x)kanjiskip
-\ifjlreq@narrow@kanjiskip
- \providecommand*{\jlreqkanjiskip}{0pt~plus~.1\jlreq@zw ~minus~.01\jlreq@zw}
-\else
- \providecommand*{\jlreqkanjiskip}{0pt~plus~0.25\jlreq@zw ~minus~0pt}
-\fi
-\providecommand*{\jlreqxkanjiskip}{0.25\jlreq@zw ~plus~0.25\jlreq@zw ~minus~0.125\jlreq@zw}
-\jlreq@if{\ifx l\jlreq@engine\fi}{
- \AtBeginDocument{%
- \ltjsetparameter{kanjiskip=\jlreqkanjiskip}%
- \ltjsetparameter{xkanjiskip=\jlreqxkanjiskip}%
- }
-}{
- \AtBeginDocument{%
- \kanjiskip=\jlreqkanjiskip
- \xkanjiskip=\jlreqxkanjiskip
- }
-}
-
-% フォントサイズを設定
-\newdimen\jlreq@fontsize
-\newdimen\jlreq@jafontsize
-\ifx l\jlreq@engine
- % Q,zw,zhが正しく扱われるようになる.\dimexprつきに展開される.
- \def\jlreq@expand@optionfontsize#1{%
- \dimexpr\directlua{
- local~act = string.char(92)~
- local~s = [[#1]]~
- s = s:gsub("[QH]",act .. "dimexpr 0.25mm" .. act .. "relax")~
- tex.print(s)~
- }\relax
- }%
-\else
- \def\jlreq@expand@optionfontsize#1{\dimexpr#1\relax}
-\fi
-\__jlreq_aftercls_addtodeletecs:N \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
-
-
-% 行頭の括弧は \jlreq@open@bracket@before@space \inhibitglue 「みたいにする.
-\str_if_eq:VnTF \jlreq@open@bracket@pos { zenkakunibu_nibu } {
- \def\jlreq@open@bracket@before@space{\hskip\glueexpr-.5\jlreq@zw\relax}
-}{
- \def\jlreq@open@bracket@before@space{}
-}
-
-\ifx p\jlreq@engine
- \def\jlreq@yokokanjiencoding{JY1}
- \def\jlreq@tatekanjiencoding{JT1}
-\fi
-\ifx u\jlreq@engine
- \def\jlreq@yokokanjiencoding{JY2}
- \def\jlreq@tatekanjiencoding{JT2}
-\fi
-\ifx l\jlreq@engine
- \def\jlreq@yokokanjiencoding{JY3}
- \def\jlreq@tatekanjiencoding{JT3}
-\fi
-\jlreq@divide{\jlreq@jafontsize}{\jlreq@fontsize}
-\edef\jlreq@jafontscale{\strip@pt\jlreq@resultdimen}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@jafontscale
-\ifx l\jlreq@engine
- \jlreq@saveoriginalcs{DeclareFontShape@}
- \def\DeclareFontShape@#1#2#3#4#5#6{
- \group_begin:
- \bool_if:nT { \str_if_eq_p:nn {#1} {JY3} || \str_if_eq_p:nn {#1} {JT3} } {
- \tl_set:Nx \l__jlreq_tmpa_tl {#5}
- \tl_if_in:NnTF \l__jlreq_tmpa_tl { jfm=jlreq } {
- \tl_if_in:NnTF \l__jlreq_tmpa_tl { jfm=jlreqv }{
- \tl_replace_all:Nnn \l__jlreq_tmpa_tl { jfm=jlreqv } { jfm=jlreqv-jidori }
- }{
- \tl_replace_all:Nnn \l__jlreq_tmpa_tl { jfm=jlreq } { jfm=jlreq-jidori }
- }
- \cs_set:Nx \l_jlreq_do: {
- \exp_not:N \jlreq@useoriginalcs{DeclareFontShape@}
- \exp_not:n { {#1} {#2} {#3} { #4-jidori } }
- { \tl_use:N \l__jlreq_tmpa_tl } { \exp_not:n {#6} }
- }
- }{
- \tl_if_in:NnT \l__jlreq_tmpa_tl {<->ssub} {
- \cs_set:Nn \l_jlreq_do: {
- \jlreq@useoriginalcs{DeclareFontShape@} {#1} {#2} {#3} { #4-jidori } {#5} {#6}
- }
- }
- }
- }
- \exp_after:wN \group_end: \l_jlreq_do:
- \jlreq@useoriginalcs{DeclareFontShape@} {#1} {#2} {#3} {#4} {#5} {#6}
- }
- \DeclareFontShape{JY3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont :jfm=jlreq;script=latn;-kern}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont :jfm=jlreq;script=latn;-kern}{}
- \DeclareFontShape{JT3}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdmcfont :jfm=jlreqv;script=latn;-kern}{}
- \DeclareFontShape{JT3}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\ltj@stdgtfont :jfm=jlreqv;script=latn;-kern}{}
-\else
- \DeclareFontShape{\jlreq@yokokanjiencoding}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmname}{}
- \DeclareFontShape{\jlreq@yokokanjiencoding}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmnameg}{}
- \DeclareFontShape{\jlreq@tatekanjiencoding}{mc}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmname-v}{}
- \DeclareFontShape{\jlreq@tatekanjiencoding}{gt}{m}{n}{<->s*[\jlreq@jafontscale]\jlreq@jfmnameg-v}{}
- \edef\jlreq@tempa{\ifx u\jlreq@engine u\fi}
- \DeclareFontShape{\jlreq@yokokanjiencoding}{mc}{m}{n-jidori}{<->s*[\jlreq@jafontscale]\jlreq@tempa jlreq-jidori}{}
- \DeclareFontShape{\jlreq@yokokanjiencoding}{gt}{m}{n-jidori}{<->s*[\jlreq@jafontscale]\jlreq@tempa jlreqg-jidori}{}
- \DeclareFontShape{\jlreq@tatekanjiencoding}{mc}{m}{n-jidori}{<->s*[\jlreq@jafontscale]\jlreq@tempa jlreq-v-jidori}{}
- \DeclareFontShape{\jlreq@tatekanjiencoding}{gt}{m}{n-jidori}{<->s*[\jlreq@jafontscale]\jlreq@tempa jlreqg-v-jidori}{}
-\fi
-
-\exp_args:Nx \clist_map_inline:nn {\jlreq@yokokanjiencoding,\jlreq@tatekanjiencoding} {% #1 = encoding
- \clist_map_inline:nn { n,it,sl,sc } {% ##1 = shape
- \clist_map_inline:nn { m,b,bx,sb,c } {% ####1 = series
- \bool_if:nF { \str_if_eq_p:nn {##1} {n} && \str_if_eq_p:nn {####1} {m} } {
- \DeclareFontShape{#1}{gt}{####1}{##1}{<->ssub*gt/m/n}{}
- }
- }
- \clist_map_inline:nn { bx,b,sb } {% ####1 = series
- \DeclareFontShape{#1}{mc}{####1}{##1}{<->ssub*gt/m/n}{}
- }
- \clist_map_inline:nn { m,c } {% ####1 = series
- \bool_if:nF { \str_if_eq_p:nn {##1} {n} && \str_if_eq_p:nn {####1} {m} } {
- \DeclareFontShape{#1}{mc}{####1}{##1}{<->ssub*mc/m/n}{}
- }
- }
- }
-}
-
-%.. 文字クラスのリスト
-% 開き括弧(文字クラス1)
-\edef\jlreq@charlist@openingbrackets{(〔[{〈《「『【‘“\ifx p\jlreq@engine\else ⦅〘〖«〝\fi}
-% 閉じ括弧(文字クラス2)
-\edef\jlreq@charlist@closingbrackets{)〕]}〉》」』】’”\ifx p\jlreq@engine\else ⦆〙〗»〟\fi}
-% ハイフン(文字クラス3)
-\edef\jlreq@charlist@hyphens{‐〜\ifx p\jlreq@engine\else ゠–\fi}
-% 区切り約物(文字クラス4)
-\edef\jlreq@charlist@dividingpunctuationmarks{!?\ifx p\jlreq@engine\else ‼⁇⁈⁉\fi}
-% 中点類(文字クラス5)
-\edef\jlreq@charlist@middlenodes{・:;}
-% 句点類(文字クラス6)
-\edef\jlreq@charlist@fullstops{。.}
-% 読点類(文字クラス7)
-\edef\jlreq@charlist@commas{、,}
-% 分離禁止文字(文字クラス8)
-\edef\jlreq@charlist@inseparablecharacters{—…‥\ifx p\jlreq@engine\else 〳〴〵\fi}
-% 繰返し記号(文字クラス9)
-\edef\jlreq@charlist@iterationmarks{ヽヾゝゞ々\ifx p\jlreq@engine\else 〻\fi}
-% 長音記号(文字クラス10)
-\edef\jlreq@charlist@prolongedsoundmark{ー}
-% 小書きの仮名(文字クラス11)
-\edef\jlreq@charlist@smallkana{ぁぃぅぇぉァィゥェォっゃゅょゎッャュョヮヵヶ\ifx p\jlreq@engine\else ゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ\fi}%ㇷ゚
-% 前置省略記号(文字クラス12)
-\edef\jlreq@charlist@prefixedabbreviations{¥$£#\ifx p\jlreq@engine\else €№\fi}
-% 平仮名(文字クラス15)
-\edef\jlreq@charlist@hiragana{あいうえおかがきぎくぐけげこごさざしじすずせぜそぞただちぢつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもやゆよらりるれろわゐゑをん\ifx p\jlreq@engine\else ゔ\fi}% か゚き゚く゚け゚こ゚
-% 片仮名(文字クラス16)
-\edef\jlreq@charlist@katakana{アイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラリルレロワヰヱヲンヴ\ifx p\jlreq@engine\else ヷヸヹヺ\fi}% カ゚キ゚ク゚ケ゚コ゚セ゚ツ゚ト゚
-
-%.. 行頭括弧調整
-\ifx l\jlreq@engine
- % \itemの直後は折り返し行頭と同じにする.
- \jlreq@saveoriginalcs{@item}
- \cs_set:Nn \__jlreq_hook_everypar: {}
- \def\@item[#1]{%
- \cs_set:Nn \__jlreq_hook_everypar: { \cs_set:Nn \__jlreq_hook_everypar: {} \inhibitglue }
- \jlreq@useoriginalcs{@item}[#1]%
- \expandafter\everypar\expandafter{\the\everypar\__jlreq_hook_everypar:}
- }
-\else
- \jlreq@saveoriginalcs{item}
- \AtBeginDocument{\PushPostHook{par}{\jlreq@hook@everypar}}
- \def\jlreq@hook@everypar{}
- % 非LuaTeXの場合はJFMの入れ替えと\everyparでの処理で対処.
- % 行頭括弧に対して\inhibitglueを入れたりする命令を作る
- % \jlreq@charlist@openingbracketsの各括弧に対して,\ifx\jlreq@nextchar 「1\fiみたいなのが並んだのを作る
- \def\jlreq@tempa{}
- \def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\tl_put_right:Nn \jlreq@tempa{\ifx\jlreq@nextchar#11\fi}\jlreq@do}}
- \expandafter\jlreq@do\jlreq@charlist@openingbrackets\jlreq@endmark
- % JFM glueの伸び縮みで行頭括弧が揃わないのを防ぐために常に\inhibitglueを入れる.
- \str_if_eq:VnTF \jlreq@open@bracket@pos { nibu_tentsuki } {
- \edef\jlreq@openbracket@hook@ii{\noexpand\ifnum0\exp_not:o {\jlreq@tempa}>0~\unexpanded{\hskip -.5\jlreq@zw\inhibitglue}\noexpand\fi}
- }{% zenkakunibu_nibu,zenkaku_tentsuki
- \edef\jlreq@openbracket@hook@ii{\noexpand\ifnum0\exp_not:o {\jlreq@tempa}>0~\unexpanded{\inhibitglue}\noexpand\fi}
- }
- % source special対策
- \def\jlreq@openbracket@hook@i{\ifx\jlreq@nextchar\special\expandafter\jlreq@openbracket@hook@iii\else\expandafter\jlreq@openbracket@hook@ii\fi}
- \def\jlreq@openbracket@hook@iii#1#2{#1{#2}\futurelet\jlreq@nextchar\jlreq@openbracket@hook@i}
- \def\jlreq@openbracket@hook{\futurelet\jlreq@nextchar\jlreq@openbracket@hook@i}
- \let\jlreq@hook@everypar=\jlreq@openbracket@hook
- \renewcommand*{\item}{%
- \def\jlreq@hook@everypar{%
- \let\jlreq@hook@everypar=\jlreq@openbracket@hook
- \inhibitglue
- }%
- \jlreq@useoriginalcs{item}%
- }
-\fi
-
-%.. 禁則処理
-\ifx l\jlreq@engine
- \cs_set:Nn \__jlreq_setpostbreakpenalty_aux:nn {\ltjsetparameter{postbreakpenalty={`#1,#2}}}
- \cs_set:Nn \__jlreq_setprebreakpenalty_aux:nn {\ltjsetparameter{prebreakpenalty={`#1,#2}}}
- \cs_set:Nn \__jlreq_addjaxspmode_aux:nn {%
- \jlreq@tempcnta=\ltjgetparameter{jaxspmode}{`#1}%
- \str_case:nn {#2} {
- { pre } {%
- \ifnum\jlreq@tempcnta=2
- \ltjsetparameter{jaxspmode={`#1,allow}}%
- \else\ifnum\jlreq@tempcnta=0
- \ltjsetparameter{jaxspmode={`#1,preonly}}%
- \fi\fi
- }
- { post } {%
- \ifnum\jlreq@tempcnta=1
- \ltjsetparameter{jaxspmode={`#1,allow}}%
- \else\ifnum\jlreq@tempcnta=0
- \ltjsetparameter{jaxspmode={`#1,postonly}}%
- \fi\fi
- }
- }%
- }
- \cs_set:Nn \__jlreq_deljaxspmode_aux:nn {
- \jlreq@tempcnta=\ltjgetparameter{jaxspmode}{`#1}%
- \str_case:nn {#2} {
- { pre } {%
- \ifnum\jlreq@tempcnta=2
- \ltjsetparameter{jaxspmode={`#1,postonly}}%
- \else\ifnum\jlreq@tempcnta=1
- \ltjsetparameter{jaxspmode={`#1,inhibit}}%
- \fi\fi
- }
- { post } {%
- \ifnum\jlreq@tempcnta=3
- \ltjsetparameter{jaxspmode={`#1,preonly}}%
- \else\ifnum\jlreq@tempcnta=2
- \ltjsetparameter{jaxspmode={`#1,inhibit}}%
- \fi\fi
- }
- }%
- }
-\else
- \cs_set:Nn \__jlreq_setpostbreakpenalty_aux:nn {\postbreakpenalty`#1=#2}
- \cs_set:Nn \__jlreq_setprebreakpenalty_aux:nn {\prebreakpenalty`#1=#2}
- \cs_set:Nn \__jlreq_addjaxspmode_aux:nn {
- \jlreq@tempcnta=\inhibitxspcode`#1
- \str_case:nn {#2} {
- { pre }{%
- \ifnum\jlreq@tempcnta=1
- \inhibitxspcode`#1=3
- \else\ifnum\jlreq@tempcnta=0
- \inhibitxspcode`#1=2
- \fi\fi
- }
- { post }{%
- \ifnum\jlreq@tempcnta=2
- \inhibitxspcode`#1=3
- \else\ifnum\jlreq@tempcnta=0
- \inhibitxspcode`#1=1
- \fi\fi
- }
- }%
- }
- \cs_set:Nn \__jlreq_deljaxspmode_aux:nn {
- \jlreq@tempcnta=\inhibitxspcode`#1
- \str_case;nn {#2} {
- { pre } {%
- \ifnum\jlreq@tempcnta=3
- \inhibitxspcode`#1=1
- \else\ifnum\jlreq@tempcnta=2
- \inhibitxspcode`#1=0
- \fi\fi
- }
- { post } {%
- \ifnum\jlreq@tempcnta=3
- \inhibitxspcode`#1=2
- \else\ifnum\jlreq@tempcnta=1
- \inhibitxspcode`#1=0
- \fi\fi
- }
- }%
- }
-\fi
-% #1{...}{#3}を...が#2のリストに対して適用.
-\cs_set:Nn \__jlreq_iterateapply:Nnn {
- \tl_map_inline:nn {#2} {
- #1{##1}{#3}
- }
-}
-\cs_set:Nn \__jlreq_setpostbreakpenalty:nn { \__jlreq_iterateapply:Nnn \__jlreq_setpostbreakpenalty_aux:nn {#1} {#2}}
-\cs_generate_variant:Nn \__jlreq_setpostbreakpenalty:nn { Vn }
-\cs_set:Nn \__jlreq_setprebreakpenalty:nn { \__jlreq_iterateapply:Nnn \__jlreq_setprebreakpenalty_aux:nn {#1} {#2} }
-\cs_generate_variant:Nn \__jlreq_setprebreakpenalty:nn { Vn }
-\cs_set:Nn \__jlreq_addjaxspmode:nn {\__jlreq_iterateapply:Nnn \__jlreq_addjaxspmode_aux:nn {#1} {#2} }
-\cs_generate_variant:Nn \__jlreq_addjaxspmode:nn { Vn }
-\cs_set:Nn \__jlreq_deljaxspmode:nn { \__jlreq_iterateapply:Nnn \__jlreq_deljaxspmode_aux:nn {#1} {#2} }
-\cs_generate_variant:Nn \__jlreq_deljaxspmode:nn { Vn }
-
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_iterateapply:Nnn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_setpostbreakpenalty:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_setpostbreakpenalty:Vn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_setpostbreakpenalty_aux:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_setprebreakpenalty:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_setprebreakpenalty:Vn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_setprebreakpenalty_aux:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addjaxspmode:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addjaxspmode:Vn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_addjaxspmode_aux:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_deljaxspmode:nn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_deljaxspmode:Vn
-\__jlreq_aftercls_addtodeletecs:N \__jlreq_deljaxspmode_aux:nn
-
-% 行末禁則
-\__jlreq_setpostbreakpenalty:Vn \jlreq@charlist@openingbrackets {10000}
-\__jlreq_setpostbreakpenalty:Vn \jlreq@charlist@prefixedabbreviations {10000}
-
-% 行頭禁則
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@closingbrackets {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@hyphens {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@dividingpunctuationmarks {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@middlenodes {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@fullstops {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@commas {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@iterationmarks {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@prolongedsoundmark {10000}
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@smallkana {10000}
-
-% xkanjiskip
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@iterationmarks {pre}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@iterationmarks {post}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@prolongedsoundmark {pre}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@prolongedsoundmark {post}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@smallkana {pre}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@smallkana {post}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@hiragana {pre}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@hiragana {post}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@katakana {pre}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@katakana {post}
-\__jlreq_addjaxspmode:Vn \jlreq@charlist@dividingpunctuationmarks {post}
-
-% 分割禁止(分離禁止文字は特定の並びで分割禁止だが,とりあえず一括で禁止しておく.)
-\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@inseparablecharacters {10000}
-% ¥100とか70%とか……
-
-%.. フォント
-\RequirePackage{lmodern}
-
-%.. 古いフォントコマンド
-\DeclareOldFontCommand{\jlreq@oldfontcommand@mc}{\normalfont\mcfamily}{\mathmc}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@gt}{\normalfont\gtfamily}{\mathgt}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@rm}{\normalfont\rmfamily}{\mathrm}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@sf}{\normalfont\sffamily}{\mathsf}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@tt}{\normalfont\ttfamily}{\mathtt}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@bf}{\normalfont\bfseries}{\mathbf}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@it}{\normalfont\itshape}{\mathit}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@sl}{\normalfont\slshape}{\@nomath\sl}
-\DeclareOldFontCommand{\jlreq@oldfontcommand@sc}{\normalfont\scshape}{\@nomath\sc}
-\def\jlreq@oldfontcommand@enable{%
- \let\mc=\jlreq@oldfontcommand@mc
- \let\gt=\jlreq@oldfontcommand@gt
- \let\rm=\jlreq@oldfontcommand@rm
- \let\sf=\jlreq@oldfontcommand@sf
- \let\tt=\jlreq@oldfontcommand@tt
- \let\bf=\jlreq@oldfontcommand@bf
- \let\it=\jlreq@oldfontcommand@it
- \let\sl=\jlreq@oldfontcommand@sl
- \let\sc=\jlreq@oldfontcommand@sc
-}
-\def\jlreq@oldfontcommand@disable{%
- \let\mc=\@undefined
- \let\gt=\@undefined
- \let\rm=\@undefined
- \let\sf=\@undefined
- \let\tt=\@undefined
- \let\bf=\@undefined
- \let\it=\@undefined
- \let\sl=\@undefined
- \let\sc=\@undefined
-}
-
-\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal}
-\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}
-
-% 和文ファミリと欧文ファミリの連動
-\AddToHook{rmfamily}{\prepare@family@series@update@kanji{mc}\mcdefault}
-\AddToHook{sffamily}{\prepare@family@series@update@kanji{gt}\gtdefault}
-\ifx l\jlreq@engine
- \AddToHook{ttfamily}{\prepare@family@series@update@kanji{jtt}\jttdefault}
-\else
- \AddToHook{ttfamily}{\prepare@family@series@update@kanji{gt}\gtdefault}
-\fi
-
-% 数式フォント設定
-\ifjlreq@option@enablejfam
- \ifx l\jlreq@engine\else
- \DeclareSymbolFont{mincho}{\jlreq@yokokanjiencoding}{mc}{m}{n}
- \DeclareSymbolFontAlphabet{\mathmc}{mincho}
- \SetSymbolFont{mincho}{bold}{\jlreq@yokokanjiencoding}{gt}{m}{n}
- \jfam\symmincho
- \DeclareMathAlphabet{\mathgt}{\jlreq@yokokanjiencoding}{gt}{m}{n}
- \fi
- \AtBeginDocument{%
- \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}%
- \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}%
- }
-\fi
-
-% 和文間隔
-\NewDocumentCommand{\ } {} {\futurelet\jlreq@nextchar\jlreq@zenkakuspace@ignorespaces}
-% 後続の空白を無視する処理
-\edef\jlreq@zenkakuspace@ignorespaces{%
- \noexpand\ifx\exp_not:o {\space}\unexpanded{\jlreq@nextchar\expandafter\jlreq@zenkakuspace@ignorespaces@\else\expandafter\jlreq@zenkakuspace@main\fi}%
-}
-\expandafter\def\expandafter\jlreq@zenkakuspace@ignorespaces@\space{\futurelet\jlreq@nextchar\jlreq@zenkakuspace@ignorespaces}
-\def\jlreq@tempa{}
-\def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\tl_put_right:Nn \jlreq@tempa{\ifnum\lastnodechar=`#1~1\fi}\jlreq@do}}
-\expandafter\jlreq@do\jlreq@charlist@dividingpunctuationmarks\jlreq@endmark
-\edef\@tempa{\noexpand\ifnum0\exp_not:o {\jlreq@tempa}>0~}
-\expandafter\long\expandafter\def\expandafter\jlreq@zenkakuspace@main\expandafter{\@tempa
- \hskip 1\jlreq@zw\hbox{}%
- \jlreq@lastnodechar=` 
- \expandafter\jlreq@fixjfm
- \else\expandafter \fi
-}
-\ifx l\jlreq@engine
- {
- \catcode` =\active
- \protected\gdef {\futurelet\jlreq@nextchar\jlreq@zenkakuspace@ignorespaces}
- }
- \AtBeginDocument{\catcode` =\active}
-\fi
-
-% \jaspace
-\NewDocumentCommand{\jaspace}{ m } {
- \ifcsname jlreq@jaspace@#1\endcsname\csname jlreq@jaspace@#1\endcsname
- \else\ClassError{jlreq}{unknown~jaspace:~#1}{\@ehc}\fi
-}
-\def\jlreq@jaspace@zenkaku{\hskip\glueexpr 1\jlreq@zw\relax}
-\def\jlreq@jaspace@nibu{\hskip\glueexpr .5\jlreq@zw\relax}
-\def\jlreq@jaspace@shibu{\hskip\glueexpr .25\jlreq@zw\relax}
-
-% 区切り約物.\? みたいな命令を作る.直後の空きが自動で入る.
-% \?*とすると文中の?として扱われる.
-\def\jlreq@tempa{}
-\def\jlreq@do#1{\jlreq@ifendmark{#1}{}{\tl_put_right:Nn \jlreq@tempa{\ifx\jlreq@nextchar #11\fi}\jlreq@do}}
-\expandafter\jlreq@do\jlreq@charlist@closingbrackets\jlreq@endmark
-\edef\jlreq@dividingpunctuationmarkscommand{%
- \noexpand\ifnum 0\exp_not:o {\jlreq@tempa}>0~\unexpanded{\expandafter\ignorespaces\else\expandafter\ \fi}%
-}
-\def\jlreq@do#1{%
- \jlreq@ifendmark{#1}{}{
- \expandafter\NewDocumentCommand\expandafter{\csname #1\endcsname} { s } {
- \IfBooleanTF{##1}
- {\hskip .25\jlreq@zw #1\hskip .25\jlreq@zw\ignorespaces}%
- {#1\futurelet\jlreq@nextchar\jlreq@dividingpunctuationmarkscommand}%
- }
- \jlreq@do
- }
-}
-\expandafter\jlreq@do\jlreq@charlist@dividingpunctuationmarks\jlreq@endmark
-
-
-%.. 文字サイズ変更命令の定義
-% \baselineskipの計算
-% いったん文字サイズを変更((u)platexの際にzh/zwをきちんとするため)
-\@setfontsize\normalsize{\jlreq@fontsize}{\jlreq@fontsize}%
-\newdimen\jlreq@baselineskip
-\ifx l\jlreq@engine
- \setlength{\jlreq@baselineskip}{%
- \dimexpr\directlua{
- local~act = string.char(92)~
- local~s = [[\jlreq@option@baselineskip]]~
- s = s:gsub("[QH]",act .. "dimexpr 0.25mm" .. act .. "relax"):gsub("zh",act .. "zh"):gsub("zw",act .. "zw")~
- tex.print(s)~
- }\relax
- }%
-\else
- \setlength{\jlreq@baselineskip}{\dimexpr\jlreq@option@baselineskip\relax}
-\fi
-\ifdim\jlreq@fontsize>\jlreq@baselineskip
- \ClassError{jlreq}{The~baselineskip~is~less~than~fontsize}{\@ehc}%
-\fi
-\bool_if:nT { \dim_compare_p:n { \jlreq@baselineskip < 1.5\zw } || \dim_compare_p:n { \jlreq@baselineskip > 2\zw } } {
- \jlreq@note { 行間は二分以上全角以下が望ましい (2.4.2.d~注3).}
-}
-
-\emergencystretch 3\jlreq@gol
-\setlength{\parindent}{1\zw}
-\newcommand{\jlreqparindent}{1\zw}
-\apptocmd\set@fontsize {
- \expandafter\def\expandafter\size@update\expandafter{\size@update\g__jlreq_setfontsizehook_tl}
-}{}{
- \ClassWarningNoLine { jlreq } { `\string\apptocmd`~to~`\string\size@update`~failed,~maybe~a~bug}
-}
-\tl_new:N \g__jlreq_setfontsizehook_tl
-\tl_set:Nn \g__jlreq_setfontsizehook_tl {
- \tl_if_empty:VF \jlreqparindent {
- \dim_compare:nT { \parindent>0pt } { \setlength{\parindent}{\jlreqparindent} }
- }
-}
-\ifx l\jlreq@engine
- \@tempskipa=\ltjgetparameter{kanjiskip}
- \ifdim\@tempskipa=\maxdimen\else
- \tl_put_right:Nn \g__jlreq_setfontsizehook_tl {%
- \ltj@setpar@global
- \ltjsetkanjiskip\jlreqkanjiskip
- \@tempskipa=\ltjgetparameter{xkanjiskip}%
- \ifdim\@tempskipa>0pt
- \ltjsetxkanjiskip\jlreqxkanjiskip
- \fi
- }
- \fi
-\else
- \tl_put_right:Nn \g__jlreq_setfontsizehook_tl {%
- \kanjiskip=\jlreqkanjiskip
- \ifdim\xkanjiskip>0pt
- \xkanjiskip=\jlreqxkanjiskip
- \fi
- }
-\fi
-
-% \jafontsize
-\ifdim\jlreq@fontsize=\jlreq@jafontsize
- \let\jafontsize=\fontsize
-\else
- \def\@tempa#1{
- \NewDocumentCommand{\jafontsize}{ m m }{%
- \begingroup
- \jlreq@iffloat{##1}{%
- \edef\jlreq@do{\noexpand\fontsize{\strip@pt\dimexpr#1\dimexpr##1pt\relax\relax}}%
- }{%
- \edef\jlreq@do{\noexpand\fontsize{\the\dimexpr#1\dimexpr##1\relax\relax}}%
- }%
- \expandafter\endgroup
- \jlreq@do{##2}%
- }
- }
- \jlreq@divide{\jlreq@fontsize}{\jlreq@jafontsize}
- \edef\jlreq@do{\noexpand\@tempa{\strip@pt\jlreq@resultdimen}}
- \jlreq@do
-\fi
-
-\renewcommand{\normalsize}{%
- \@setfontsize\normalsize{\jlreq@fontsize}{\jlreq@baselineskip}%
- \abovedisplayskip 1.1\jlreq@fontsize \@plus .3\jlreq@fontsize \@minus .4\jlreq@fontsize
- \abovedisplayshortskip \z@ \@plus .3\jlreq@fontsize
- \belowdisplayskip .9\jlreq@fontsize \@plus.3\jlreq@fontsize \@minus.4\jlreq@fontsize
- \belowdisplayshortskip \belowdisplayskip
- \let\@listi\@listI}
-
-\if@tate\tate\fi % ここで発行しておく
-\mcfamily\selectfont\normalsize
-\setbox\jlreq@tempboxa\hbox{阿}
-\setlength\Cht{\ht\jlreq@tempboxa}
-\setlength\Cdp{\dp\jlreq@tempboxa}
-\setlength\Cwd{\wd\jlreq@tempboxa}
-\setlength\Cvs{\baselineskip}
-\setlength\Chs{\wd\jlreq@tempboxa}
-
-% 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@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}{%
- % jsarticleのもの
- \@setfontsize\small{.9\jlreq@fontsize}{\dimexpr 13\jlreq@baselineskip/17\relax}%
- \abovedisplayskip .9\jlreq@fontsize \@plus.3\jlreq@fontsize \@minus.4\jlreq@fontsize
- \abovedisplayshortskip \z@ \@plus.3\jlreq@fontsize
- \belowdisplayshortskip \abovedisplayshortskip
- \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}}
-\newcommand{\large}{\@setfontsize\large{\dimexpr12\jlreq@fontsize/10\relax}{\jlreq@baselineskip}}
-\newcommand{\Large}{\@setfontsize\Large{\dimexpr14\jlreq@fontsize/10\relax}{\dimexpr 21\jlreq@baselineskip/17\relax}}
-\newcommand{\LARGE}{\@setfontsize\LARGE{\dimexpr17\jlreq@fontsize/10\relax}{\dimexpr 25\jlreq@baselineskip/17\relax}}
-\newcommand{\huge}{\@setfontsize\huge{2\jlreq@fontsize}{\dimexpr 28\jlreq@baselineskip/17\relax}}
-\newcommand{\Huge}{\@setfontsize\Huge{\dimexpr 25\jlreq@fontsize/10\relax}{\dimexpr 33\jlreq@baselineskip/17\relax}}
-
-%. plextから拝借
-\def\jlreq@Kanji#1{\expandafter\kansuji\csname c@#1\endcsname}
-
-% このあたりはtarticleと同じ
-\setlength\lineskip{.1\zh}
-\setlength\normallineskip{.1\zh}
-\renewcommand{\baselinestretch}{}
-% 行間の伸びは許容しない.
-\setlength{\parskip}{0pt}
-% https://github.com/texjporg/jsclasses/issues/14
-\renewcommand*{\flushbottom}{%
- \def\@textbottom{\vskip 0pt~plus~0.1pt}%
- \let\@texttop\relax
-}
-\@lowpenalty 51
-\@medpenalty 151
-\@highpenalty 301
-
-% 変数定義(他にも散らばっているけど)
-% 罫線の太さ(4.4.3.c 注1)
-\newdimen\jlreq@omotekeiwidth
-\jlreq@omotekeiwidth=0.12mm
-\newdimen\jlreq@chuubusokeiwidth
-\jlreq@chuubusokeiwidth=0.25mm
-\newdimen\jlreq@urakeiwidth
-\jlreq@urakeiwidth=0.4mm
-% 脚注のインデント
-
-%\RequirePackage{jlreq-debug}
-
-%. ページレイアウト
-% landscapeの場合縦横をひっくり返す
-\if@landscape
- \jlreq@helper@swap@register{\paperwidth}{\paperheight}
-\fi
-
-% \pdfpagewidthとか設定
-\ifx l\jlreq@engine
- \setlength{\pagewidth}{\paperwidth}
- \setlength{\pageheight}{\paperheight}
-\else
- \setlength{\pdfpagewidth}{\paperwidth}
- \setlength{\pdfpageheight}{\paperheight}
-\fi
-
-\ifx l\jlreq@engine
- \def\jlreq@expand@speciallength#1{%
- % zhやzwを\zhや\zwにする.
- \directlua{
- local~act = string.char(92)~
- local~s = [[#1]]~
- s = s:gsub("zw",act .. "zw"):gsub("zh",act .. "zh")~
- tex.print(s)~
- }%
- }
-\else
- \def\jlreq@expand@speciallength#1{#1}
-\fi
-\def\jlreq@speciallength#1{\dimexpr\jlreq@expand@speciallength{#1}\relax}
-
-%.. 二段組み用パラメータ
-\setlength{\columnsep}{\jlreq@speciallength{\jlreq@option@column@gap}}
-\setlength{\columnseprule}{0pt}
-
-%.. 傍注(4.2.7)
-\newdimen\jlreq@sidenote@length
-\newdimen\jlreq@sidenote@sep
-\begingroup
- \footnotesize
- \setlength{\jlreq@tempdima}{\jlreq@speciallength{\jlreq@option@sidenote@length}}
- \jlreq@tempdimb=1\zw
- \divide\jlreq@tempdima\jlreq@tempdimb
- \multiply\jlreq@tempdima\jlreq@tempdimb
- \ifdim\jlreq@tempdima>0pt
- \ifnum 0\ifdim\jlreq@tempdima>25\zw 1\fi\ifdim\jlreq@tempdima<15\zw 1\fi>0
- \jlreq@note{並列注の字詰め方向の長さ(行長)は,15字から20字くらいである.ケースによっては25字程度にする場合もある (4.2.7).}
- \fi
- \fi
- \edef\jlreq@do{
- \noexpand\setlength{\noexpand\jlreq@sidenote@length}{\the\jlreq@tempdima}
- \noexpand\setlength{\noexpand\marginparpush}{\the\dimexpr 0.5\zw\relax} % 同上:4.2.7.g
- }
- \expandafter\endgroup
-\jlreq@do
-\ifdim\jlreq@sidenote@length>0pt
- \setlength{\marginparwidth}{\jlreq@sidenote@length}
- \setlength{\marginparsep}{2\zw} % フォントサイズ×2(4.2.7:特に問題に~e)
- \setlength{\jlreq@sidenote@sep}{2\zw}
-\else
- \setlength{\marginparwidth}{0pt}
- \setlength{\marginparsep}{0pt}
- \setlength{\jlreq@sidenote@sep}{0pt}
-\fi
-
-% 縦書きの時は脚注に固定
-% (TODO: 頭注)
-\@mparswitchfalse
-\if@tate\else\if@twoside\@mparswitchtrue\fi\fi
-
-
-\setlength{\topskip}{1\zw} % フォントサイズと一致させる
-\ifx\jlreq@option@headfoot@verticalpos\@empty
- \if@tate\def\jlreq@option@headfoot@verticalpos{1zw}
- \else\def\jlreq@option@headfoot@verticalpos{2zw}\fi
-\fi
-\setlength{\headsep}{\jlreq@speciallength{\jlreq@option@headfoot@verticalpos}}
-\if@tate\ifdim\headsep<1\zw\relax\jlreq@note{基本版面との上下方向の最低の空き量を,基本版面の文字サイズの全角アキとする (26.1.a).}\fi\fi
-\if@tate
- \if@twocolumn
- \addtolength{\headsep}{\dimexpr\marginparwidth + \marginparsep\relax}
- \fi
-\else
- \addtolength{\headsep}{-\dimexpr\topskip - \Cht\relax}
-\fi
-\setlength{\headheight}{1\zw}
-
-% \textwidthと\textheightのデフォルト値は縦横ともに0.75倍(調整が入る).
-%.. \textwidth:文字送り方向の行長
-% 二段の場合は最初の段の頭から次の段の後まで
-% 一度\textwidthに一行の長さの文字数を入れる(段組の場合でも)
-\newif\ifjlreq@determine@kihonhanmen@warning@first
-\jlreq@determine@kihonhanmen@warning@firsttrue
-\def\jlreq@determine@kihonhanmen@warning{
- \ifjlreq@determine@kihonhanmen@warning@first
- \jlreq@note{基本版面は,a. サイズの決定 b. 仕上りサイズに対する基本版面の配置位置の決定 という手順で行う (2.4.1).}
- \jlreq@determine@kihonhanmen@warning@firstfalse
- \fi
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@determine@kihonhanmen@warning
-\__jlreq_aftercls_addtodeleteif:N \ifjlreq@determine@kihonhanmen@warning@first
-\@tempdima=1\zw
-\ifx\jlreq@option@line@length\@empty
- \if@tate
- \ifnum 0\ifx\jlreq@option@head@space\@empty 1\fi\ifx\jlreq@option@foot@space\@empty 1\fi>0
- \setlength{\textwidth}{0.75\paperheight}
- \divide\textwidth\@tempdima\multiply\textwidth\@tempdima
- \else
- \jlreq@determine@kihonhanmen@warning
- \setlength{\textwidth}{\dimexpr\paperheight - \jlreq@option@head@space - \jlreq@option@foot@space \relax}
- \fi
- \else
- \ifnum 0\ifx\jlreq@option@gutter\@empty 1\fi\ifx\jlreq@option@fore@edge\@empty 1\fi>0
- \setlength{\textwidth}{0.75\paperwidth}
- \divide\textwidth\@tempdima\multiply\textwidth\@tempdima
- \else
- \jlreq@determine@kihonhanmen@warning
- \setlength{\textwidth}{\dimexpr\paperwidth - \jlreq@option@gutter - \jlreq@option@fore@edge\relax}
- \fi
- \fi
- \if@twocolumn
- \addtolength{\textwidth}{\dimexpr-2\marginparwidth - 2\marginparsep\relax}
- \setlength{\textwidth}{\dimexpr(\textwidth - \columnsep)/2\relax}
- \else
- \addtolength{\textwidth}{\dimexpr-\marginparwidth - \marginparsep\relax}
- \fi
-\else
- \setlength{\textwidth}{\jlreq@speciallength{\jlreq@option@line@length}}
- \divide\textwidth\@tempdima
- \if@tate
- \ifnum\number\textwidth>52
- \jlreq@note{一行の長さは52文字以下が望ましい (2.4.2.c 注2).}
- \fi
- \else
- \ifnum\number\textwidth>40
- \jlreq@note{一行の長さは40文字以下が望ましい (2.4.2.c 注2).}
- \fi
- \fi
- \multiply\textwidth\@tempdima
-\fi
-\if@twocolumn
- \setlength{\textwidth}{\dimexpr2\textwidth + \columnsep\relax}
-\fi
-\addtolength{\textwidth}{0.0001pt}
-
-
-%.. \textheight:行送り方向の長さ
-% 一番上(直後に\topskip由来が入る)から最終行のベースラインまでの長さ.
-% \topskipが十分ある時は先頭行のベースラインから最終行のベースライン+\topskip
-\def\jlreq@adjusttextheight{
- \addtolength{\textheight}{-\topskip}
- \divide\textheight\baselineskip \multiply\textheight\baselineskip
- \addtolength{\textheight}{\topskip}
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@adjusttextheight
-\ifx\jlreq@option@number@of@lines\@empty
- \if@tate
- \ifnum 0\ifx\jlreq@option@gutter\@empty 1\fi\ifx\jlreq@option@fore@edge\@empty 1\fi>0
- \setlength{\textheight}{0.75\paperwidth}
- \jlreq@adjusttextheight
- \else
- \jlreq@determine@kihonhanmen@warning
- \setlength{\textheight}{\dimexpr\paperwidth - \jlreq@option@gutter - \jlreq@option@fore@edge + \topskip - 1\zw\relax}
- \fi
- \else
- \ifnum 0\ifx\jlreq@option@head@space\@empty 1\fi\ifx\jlreq@option@foot@space\@empty 1\fi>0
- \setlength{\textheight}{0.75\paperheight}
- \jlreq@adjusttextheight
- \else
- \jlreq@determine@kihonhanmen@warning
- \setlength{\textheight}{\dimexpr\paperheight + 2\topskip - 1\zh - \Cht - \jlreq@option@head@space - \jlreq@option@foot@space\relax}
- \fi
- \fi
-\else
- \setlength{\textheight}{\dimexpr\numexpr\jlreq@option@number@of@lines\relax\baselineskip - \baselineskip + \topskip\relax}
-\fi
-\addtolength{\textheight}{0.0001pt}
-
-%.. 横
-\def\jlreq@setsidemargin@by@gutter#1{
- \if@tate
- \setlength{\evensidemargin}{#1}
- \setlength{\oddsidemargin}{\dimexpr\paperwidth - \textheight - \evensidemargin + \topskip - \Cht\relax}
- \addtolength{\evensidemargin}{\Cdp}
- \else
- \setlength{\oddsidemargin}{#1}
- \if@twocolumn
- \addtolength{\oddsidemargin}{\dimexpr\marginparsep + \marginparwidth\relax}
- \fi
- \setlength{\evensidemargin}{\dimexpr\paperwidth - \textwidth - \oddsidemargin\relax}
- \fi
-}
-\def\jlreq@setsidemargin@by@fore@edge#1{
- \jlreq@setsidemargin@by@gutter{#1}
- \jlreq@helper@swap@register{\oddsidemargin}{\evensidemargin}
- \ifjlreq@determine@kihonhanmen@warning@first
- \jlreq@note{基本版面の配置はのどの空き量を指定する (2.4.1.b).}
- \fi
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@setsidemargin@by@gutter
-\__jlreq_aftercls_addtodeletecs:N \jlreq@setsidemargin@by@fore@edge
-
-\ifx\jlreq@option@gutter\@empty
- \ifx\jlreq@option@fore@edge\@empty
- % 中央配置
- \if@tate
- \setlength{\oddsidemargin}{\dimexpr\paperwidth - \textheight + \topskip\relax}
- \else
- \if@twocolumn
- \setlength{\oddsidemargin}{\dimexpr\paperwidth - \textwidth\relax}
- \else
- \setlength{\oddsidemargin}{\dimexpr\paperwidth - \textwidth - \marginparsep - \marginparwidth\relax}
- \fi
- \fi
- \setlength{\oddsidemargin}{.5\oddsidemargin}
- \ifnum0\if@twocolumn1\fi\if@tate1\fi>0
- \setlength{\evensidemargin}{\oddsidemargin}
- \else
- \setlength{\evensidemargin}{\dimexpr\oddsidemargin + \marginparsep + \marginparwidth\relax}
- \fi
- \else
- \jlreq@setsidemargin@by@fore@edge{\jlreq@speciallength{\jlreq@option@fore@edge}}
- \fi
-\else
- \jlreq@setsidemargin@by@gutter{\jlreq@speciallength{\jlreq@option@gutter}}
- \ifx\jlreq@option@fore@edge\@empty\else
- \ifjlreq@determine@kihonhanmen@warning@first
- \ClassWarningNoLine{jlreq}{fore-edge~is~ignored}
- \fi
- \fi
-\fi
-\ifx l\jlreq@engine
- \addtolength{\oddsidemargin}{-1in}
- \addtolength{\evensidemargin}{-1in}
-\else
- \addtolength{\oddsidemargin}{-1truein}
- \addtolength{\evensidemargin}{-1truein}
-\fi
-
-%.. 縦
-% \topmarginに全体の頭からテキストの頭までの長さを入れる
-% 天の値からtopmarginを設定する
-\def\jlreq@settopmarginbyhead#1{
- \if@tate
- \setlength{\topmargin}{\dimexpr #1 - \headsep - \headheight\relax}
- \if@twocolumn
- \addtolength{\topmargin}{\dimexpr\marginparwidth + \marginparsep\relax}
- \fi
- \jlreq@note{縦組の場合は地の空き量を指定する (2.4.1.b).}
- \else
- \setlength{\topmargin}{\dimexpr #1 - \headsep - \headheight - \topskip + \Cht\relax}
- \fi
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@settopmarginbyhead
-% 地の値から
-\def\jlreq@settopmarginbyfoot#1{
- \if@tate
- \setlength{\topmargin}{\dimexpr\paperheight - \textwidth - \headsep - \headheight - #1 - \marginparsep - \marginparwidth\relax}
- \else
- \jlreq@note{横組の場合は天の空き量を指定する (2.4.1.b).}
- \setlength{\topmargin}{\dimexpr\paperheight - \textheight + \topskip - 1\zh - \headsep - \headheight - #1\relax}
- \fi
-}
-\__jlreq_aftercls_addtodeletecs:N \jlreq@settopmarginbyfoot
-\ifx\jlreq@option@head@space\@empty
- \ifx\jlreq@option@foot@space\@empty
- \if@tate
- \if@twocolumn
- \jlreq@settopmarginbyfoot{\dimexpr(\paperheight - \textwidth - 2\marginparwidth - 2\marginparsep)/2\relax}
- \else
- \jlreq@settopmarginbyfoot{\dimexpr(\paperheight - \textwidth - \marginparwidth - \marginparsep)/2\relax}
- \fi
- \else
- \jlreq@settopmarginbyhead{\dimexpr(\paperheight - (\textheight - \topskip + 1\zh))/2\relax}
- \fi
- \else
- \jlreq@settopmarginbyfoot{\jlreq@speciallength{\jlreq@option@foot@space}}
- \fi
-\else
- \ifx\jlreq@option@foot@space\@empty
- \jlreq@settopmarginbyhead{\jlreq@speciallength{\jlreq@option@head@space}}
- \else
- % 両方指定されていたら,縦書きは地を,横書きは天を使う
- \if@tate
- \jlreq@settopmarginbyfoot{\jlreq@speciallength{\jlreq@option@foot@space}}
- \ifx\jlreq@option@line@length\@empty\else
- \ClassWarningNoLine{jlreq}{head_space~is~ignored}
- \fi
- \else
- \jlreq@settopmarginbyhead{\jlreq@speciallength{\jlreq@option@head@space}}
- \ifx\jlreq@option@number@of@lines\@empty\else
- \ClassWarningNoLine{jlreq}{foot_space~is~ignored}
- \fi
- \fi
- \fi
-\fi
-\ifx l\jlreq@engine
- \addtolength{\topmargin}{-1in}
-\else
- \addtolength{\topmargin}{-1truein}
-\fi
-%.. 下
-\setlength{\footskip}{\dimexpr\headsep + \if@tate\marginparwidth + \marginparsep\else\topskip - \Cht\fi + \headheight\relax}
-% \maxdepth + \topskip = フォントサイズ×1.5(だってさ)
-\setlength{\maxdepth}{\dimexpr1.5\zw - \topskip\relax}
-
-%. システム設定
-%.. 逆ノンブル
-\ifjlreq@option@use@reverse@pagination
- \AtEndDocument{\clearpage\jlreq@reference@immediate@write{lastpage}{\arabic{page}}}%
- \def\c@jlreqreversepage{\numexpr\jlreq@reference@ref{lastpage}{0} - \c@page + 1\relax}
- \def\thejlreqreversepage{\arabic{jlreqreversepage}}
-\fi
-
-%. 見出し関係 (4.1)
-% \clear***page
-\NewDocumentCommand{\cleartooddpage}{ O{} }{
- \clearpage
- \ifodd\c@page\else
- \jlreq@ifempty{#1}{}{\thispagestyle{#1}}%
- \hbox{}%
- \newpage
- \if@twocolumn\hbox{}\newpage\fi
- \fi
-}
-\NewDocumentCommand{\cleartoevenpage}{ O{} }{
- \clearpage
- \ifodd\c@page
- \jlreq@ifempty{#1}{}{\thispagestyle{#1}}%
- \hbox{}%
- \newpage
- \if@twocolumn\hbox{}\newpage\fi
- \fi
-}
-
-% 扉見出しと別行見出しについては,\<csname> -> \jlreq@headingcs@csname -> 本体と
-% 二段構えで展開されるようにする.一度の展開で\parが出るのを防ぐため.
-% 一度展開を\longなしマクロに渡されると破綻するので.(そういうパッケージが存在する.)
-
-% jlreq@heading@maketoc@<命令名>が\tableofcontents用の出力をするために呼び出される.
-% #1=*または空(見出し命令に*がついていたかで分岐),#2=ラベル,#3=running head
-% デフォルトでは\<命令名>markと\addcontentslineが必要ならば呼ばれる.
-
-% 見出しの直前に実行される
-\cs_new:Nn \g__jlreq_hook_beforeheading:n {}
-% 見出し名一覧を格納する
-\seq_new:N \l__jlreq_heading_allheadings_seq
-% 目次を出力する命令\l@<命令名>を作る命令を作る.{1 = 命令名}{2 = レベル}{3 = ラベルのフォーマット}
-% 結果は\jlreq@resultに入る.
-\def\jlreq@heading@make@l@#1#2#3{%
- \@ifundefined{l@#1}{%
- % 長さは適当に計測する
- \begingroup
- % ちょっと大きめで計測しておく
- \csname c@#1\endcsname=9
- \setbox\jlreq@tempboxa=\hbox{#3}%
- \jlreq@tempdima=\wd\jlreq@tempboxa
- \csname c@#1\endcsname=26
- \setbox\jlreq@tempboxa=\hbox{#3}%
- \ifdim\jlreq@tempdima<\wd\jlreq@tempboxa
- \jlreq@tempdima=\wd\jlreq@tempboxa
- \fi
- % \numexprは四捨五入
- \jlreq@tempdimb=\dimexpr\the\numexpr\jlreq@tempdima/\dimexpr 1\jlreq@zw\relax + 2\relax\jlreq@zw\relax
- \edef\jlreq@do{%
- \unexpanded{\def\jlreq@result}{%
- \noexpand\def\exp_not:c {l@#1}{%
- \unexpanded{\@dottedtocline{#2}{0pt}}{\the\jlreq@tempdimb}%
- }%
- }%
- }%
- \expandafter\endgroup
- \jlreq@do
- }{\def\jlreq@result{}}%
-}
-
-% \jlreq@heading@make@maketoc{セクション名}{レベル}
-\def\jlreq@heading@make@maketoc#1#2{%
- % 目次への出力をするマクロ.外部に切り出しておく.
- \@ifundefined{jlreq@heading@maketoc@#1}{%
- % {1 = */-}{2 = ラベル}{3 = running head}
- % 1はcounter=falseならば-,星付き命令ならば*,それ以外は空.
- % 1が*または-の時は見出しにはラベルが現れないが,2には常にラベルが入るので,必要ならばここで無視する.
- \expandafter\def\csname jlreq@heading@maketoc@#1\endcsname##1##2##3{%
- \jlreq@iffirsttoken{##1}{*}{}{%
- \csname #1mark\endcsname{##3}%
- \ifnum0\jlreq@iffirsttoken{##1}{-}{1}{}\ifnum #2>\c@secnumdepth 1\fi>0
- \addcontentsline{toc}{#1}{##3}%
- \else
- \addcontentsline{toc}{#1}{\jlreq@ifempty{##2}{}{\protect\numberline{##2}}##3}%
- \fi
- }{}%
- }%
- }{}%
-}
-
-%.. 中/半扉見出し
-% addcontentslineに渡すやつ:番号出すのと出さないの
-\NewDocumentCommand{\DeclareTobiraHeading}{ m m +m } {
- \seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1}
- \seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq
- \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}%
- \expandafter\edef\csname jlreq@heading@setting@#1\endcsname{\unexpanded{#3}}%
- \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewTobiraHeading}%
- \@ifundefined{c@#1}{\newcounter{#1}}{}%
- \@ifundefined{#1mark}{\expandafter\let\csname #1mark\endcsname\@gobble}{}%
- \jlreq@heading@make@maketoc{#1}{#2}%
- \begingroup
- \let\jlreq@contents@label@format=\@undefined
- \let\jlreq@format=\@undefined
- \edef\jlreq@label@format{\exp_not:c {the#1}}%
- \newif\ifjlreq@number
- \keys_define:nn { DeclareTobiraHeading:#1 } {
- label_format .tl_set:N = \jlreq@label@format,
- format .code:n = {\def\jlreq@format####1####2{##1}},
- pagestyle .tl_set:N = \jlreq@pagestyle,
- type .choice:,
- type / han .code:n = { \def\jlreq@heading@clearpage{\clearpage} },
- type / naka .code:n = { \def\jlreq@heading@clearpage{\clearpage\hbox{}\thispagestyle{empty}\clearpage} },
- number .choices:nn = {true,false} { \csname jlreq@number ##1 \endcsname }
- }
- \keys_set:nn { DeclareTobiraHeading:#1 } { type = naka, pagestyle = empty, number = true}
- \keys_set:nn { DeclareTobiraHeading:#1 } {#3}
- \def\jlreq@do{}%
- \ifx\jlreq@format\@undefined
- \def\jlreq@format##1##2{##1##2}%
- \fi
- \edef\jlreq@formatwlabel{\noexpand\jlreq@format{\exp_not:o {\jlreq@label@format}}}%
- \jlreq@heading@make@l@{#1}{#2}{\jlreq@label@format}%
- \tl_put_right:Nx \jlreq@do {\exp_not:o {\jlreq@result}}%
- \edef\jlreq@do{%
- \exp_not:o {\jlreq@do}%
- \noexpand\def\exp_not:c {jlreq@TobiraHeading@start@#1}[####1]####2{%
- \ifjlreq@number
- \unexpanded{\ifnum#2>\c@secnumdepth\else}%
- \unexpanded{\refstepcounter{#1}}%
- \noexpand\fi
- \fi
- \unexpanded{\jlreq@ifempty{##2}%
- {\long\gdef\jlreqHeadingText####1{}}%
- {\long\gdef\jlreqHeadingText####1{####1}}%
- }%
- \ifjlreq@number
- \unexpanded{\jlreq@if{\ifnum#2>\c@secnumdepth\relax\fi}}{%
- \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
- \exp_not:o {\jlreq@format{}{##1}}%
- }{%
- \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}%
- \expandafter\exp_not:o \expandafter{\jlreq@formatwlabel{##2}}%
- }%
- \else
- \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
- \exp_not:o {\jlreq@format{}{##1}}%
- \fi
- \exp_not:c {jlreq@heading@maketoc@#1}{\ifjlreq@number\else -\fi}{\exp_not:o {\jlreq@label@format}}{####1}%
- \noexpand\@afterheading
- \exp_not:o {\jlreq@heading@clearpage}%
- \unexpanded{\if@restonecol\twocolumn\fi}%
- }%
- \noexpand\def\exp_not:c {jlreq@TobiraHeading@start@s@#1}####1{%
- \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
- \unexpanded{\jlreq@ifempty{##1}%
- {\long\gdef\jlreqHeadingText####1{}}%
- {\long\gdef\jlreqHeadingText####1{####1}}%
- }%
- \exp_not:o {\jlreq@format{}{##1}}
- \exp_not:c {jlreq@heading@maketoc@#1}{*}{\exp_not:o {\jlreq@label@format}}{####1}%
- \noexpand\@afterheading
- \exp_not:o {\jlreq@heading@clearpage}%
- \unexpanded{\if@restonecol\twocolumn\fi}%
- }%
- \noexpand\def\exp_not:c {jlreq@headingcs@#1}{%
- % 改丁.これでよいのかな.
- \unexpanded{\if@twocolumn\onecolumn\@restonecoltrue\else\@restonecolfalse\fi\cleartooddpage[empty]}%
- \ifx\jlreq@pagestyle\@empty\else\noexpand\thispagestyle{\exp_not:o {\jlreq@pagestyle}}\fi
- \noexpand\secdef{\exp_not:c {jlreq@TobiraHeading@start@#1}}{\exp_not:c {jlreq@TobiraHeading@start@s@#1}}}%
- \noexpand\def\exp_not:c {#1}{%
- \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
- \exp_not:c {jlreq@headingcs@#1}%
- }%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\NewDocumentCommand{\NewTobiraHeading}{ m m +m }{%
- \expandafter\@ifdefinable\csname #1\endcsname{\DeclareTobiraHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\RenewTobiraHeading}{ m m +m }{%
- \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareTobiraHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\ProvideTobiraHeading}{ m m +m }{%
- \@ifundefined{#1}{\DeclareTobiraHeading{#1}{#2}{#3}}{}%
-}
-
-%.. 別行見出し
-% \jlreq@BlockHeading@start:別行見出しを出力する命令.
-% \jlreq@BlockHeading@start{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 = カウンタ関連}{5 = フォーマット関連}{6 = 全体フォーマット}*{見出し}[副題]
-% カウンタ関連=-,*,無し:-はカウンタ関連を処理しない.*はさらに目次に追加しない(星付き命令と同様).星付きで呼び出された時は常に*同等.
-% スペース関連={配置:lcr(左中央右)}{字下げ(寸法)}{字上げ(寸法)}{前空き}{後空き}{行取りの行数}{空か*か,偶数ページでも改ページを許可するならば空}
-% 前/後空きはprefixにa:/s:/r:が入る.r:は空きがその値そのものになる.a:/s:は行取りに加えて入る.a:で指定された空きはページ行頭では入らない
-% 後空きの時はs:は指定できない.
-% フォーマット関連:
-% フォーマット関連={{ラベルのみのフォーマット}{ラベルフォーマット}{見出し文字列フォーマット}{見出し文字列フォーマット(ラベル無し)}{副題フォーマット}{副題フォーマット(ラベル無し)}}{{前フォーマットラベルあり}{前フォーマットラベルなし}{見出し全体のフォーマット}{後ろフォーマットラベルあり}{後ろフォーマットラベルなし}}
-% 見出しそのものは「全体フォーマット」に従い出力される.パラメータトークン#1を含み,#1=見出し本体:スペース関連と上の「見出し全体のフォーマット」に基づいて整形される.
-% 見出し全体のフォーマット内では#1=ラベル,#2=見出し文字列,#3=副題,それぞれ各々のフォーマットに基づき整形される.
-% ラベルフォーマットでは#1=カウンタ名,見出し文字列フォーマットでは#1=見出し文字列,副題フォーマットでは#1=副題
-% ラベルのみのフォーマットは目次に使われる.
-\long\def\jlreq@BlockHeading@start#1#2#3#4#5#6{%
- \if@noskipsec\leavevmode\fi
- % #5と#6は\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる)
- \edef\jlreq@BlockHeading@start@eachformat{\exp_not:o {\@firstoftwo#5}}%
- \edef\jlreq@BlockHeading@start@format{\exp_not:o {\@secondoftwo#5}}%
- \edef\jlreq@BlockHeading@start@totalformat{\unexpanded{#6}}%
- \jlreq@BlockHeading@start@{#1}{#2}{#3}{#4}%
-}
-% {1 = 命令}{2 = レベル}{3 = スペース関連}
-\long\def\jlreq@BlockHeading@start@#1#2#3#4{%
- \@ifstar{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{*}}}{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{#4}}}%
-}
-% {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}[5 = running head]{6 = 見出し}
-\long\def\jlreq@BlockHeading@start@@#1#2#3#4[#5]#6{%
- \@ifnextchar[{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}}{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}[]}%
-}
-
-% {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}{5 = running head}{6 = 見出し}[7 = 副題]
-\long\def\jlreq@BlockHeading@start@@@#1#2#3#4#5#6[#7]{%
- \edef\jlreq@do{\unexpanded{\jlreq@BlockHeading@start@@@@{#1}{#2}{#3}}{\exp_not:o {\jlreq@BlockHeading@start@totalformat}}}%
- \jlreq@do{#4}{#5}{#6}{#7}%
-}
-
-% {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = 全フォーマット}{5 = *}{6 = running head}{7 = 見出し}{8 = 副題}
-\long\def\jlreq@BlockHeading@start@@@@#1#2#3#4#5#6#7#8{%
- \edef\jlreq@tempa##1##2##3##4##5##6##7{%
- \unexpanded{\jlreq@BlockHeading@start@makeoutput{#1}{#2}}{{##1}{##2}{##3}}{\exp_not:o {\jlreq@BlockHeading@start@eachformat}}{\exp_not:o {\jlreq@BlockHeading@start@format}}\unexpanded{{#5}{#6}{#7}{#8}}%
- \unexpanded{\def\jlreq@tempb}{{##4}{##5}{##6}}% 縦方向空き
- \noexpand\jlreq@ifempty{##7}{\noexpand\jlreq@tempatrue}{\noexpand\jlreq@tempafalse}% 偶数ページのみで改ページするならば\jlreq@tempatrue
- }%
- \jlreq@tempa#3%
- \global\advance\jlreq@BlockHeading@spaces@current@count by 1
- \tl_gput_right:Nn \jlreq@BlockHeading@spaces@current@sequence {_#1}%
- % 連続する見出しの間の処理をするために,即時では出力せず,いったんマクロに格納する.
- % \jlreq@BlockHeading@spaces@current@before@<n>
- % \jlreq@BlockHeading@start@gyodori\jlreq@BlockHeading@spaces@current@space@<n>{jlreq@BlockHeading@spaces@current@output@<n>}
- % ↑\jlreq@BlockHeading@spaces@current@format@<n>で整形される.
- % \jlreq@BlockHeading@spaces@current@after@<n>
- % として後に呼び出される.(spaceは書き換えられる可能性がある.)
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@output@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
- \exp_not:o {\jlreq@resultb}%
- }%
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@space@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
- \exp_not:o {\jlreq@tempb}%
- }%
- \long\def\@tempa##1##2##3{##1}%
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@before@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
- \exp_not:o {\@tempa#4}%
- \exp_not:o {\jlreq@resulta}%
- \ifjlreq@tempa\unexpanded{%
- \jlreq@setcurrentpage
- \edef\jlreq@BlockHeading@currentpage{\the\jlreq@currentpage}%
- }\fi
- }%
- \long\def\@tempa##1##2##3{##2}%
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@format@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
- \exp_not:o {\@tempa#4}%
- }%
- \long\def\@tempa##1##2##3{##3}%
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
- \exp_not:o {\jlreq@resultc}%
- \ifjlreq@tempa\unexpanded{%
- \ifx\jlreq@BlockHeading@currentpage\@empty\nobreak\else
- \ifodd\jlreq@BlockHeading@currentpage\nobreak\else\allowbreak\fi
- \fi
- }\else\noexpand\nobreak\fi
- \exp_not:o {\@tempa#4}%
- }%
- \ifx\jlreq@BlockHeading@spaces@headingslist\@empty
- \expandafter\jlreq@BlockHeading@spaces@outputwospace
- \expandafter\ignorespaces
- \else
- \expandafter\jlreq@BlockHeading@start@afterheading
- \fi
-}
-
-\def\jlreq@BlockHeading@start@afterheading{\futurelet\jlreq@nextchar\jlreq@BlockHeading@start@afterheading@i}
-\edef\jlreq@BlockHeading@start@afterheading@i{%
- \noexpand\ifx\exp_not:o {\space}\unexpanded{\jlreq@nextchar\expandafter\jlreq@BlockHeading@start@afterheading@skipspaces}%
- \unexpanded{\else\expandafter\jlreq@BlockHeading@start@afterheading@ii\fi}%
-}
-% スペースを読み飛ばす
-\expandafter\def\expandafter\jlreq@BlockHeading@start@afterheading@skipspaces\space{\jlreq@BlockHeading@start@afterheading}
-\def\jlreq@BlockHeading@start@afterheading@ii{%
- \def\jlreq@do{\jlreq@BlockHeading@spaces@output}%
- \seq_map_inline:Nn \l__jlreq_BlockHeading_allheadings_seq {
- \expandafter\ifx\csname##1\endcsname\jlreq@nextchar\def\jlreq@do{}\fi
- }%
- % \jlreq@BlockHeading@HeadingSpaces@ignoretokens(@noargument)内のものは特別扱いする
- \tl_map_inline:Nn \jlreq@BlockHeading@HeadingSpaces@ignoretokens@noargument {
- \ifx##1\jlreq@nextchar
- \def\jlreq@do{\jlreq@BlockHeading@start@afterheading@saveafter@cs@noargument}%
- \fi
- }%
- \tl_map_inline:Nn \jlreq@BlockHeading@HeadingSpaces@ignoretokens {
- \ifx##1\jlreq@nextchar
- \def\jlreq@do{\jlreq@BlockHeading@start@afterheading@saveafter@cs}%
- \fi
- }%
- \jlreq@do
-}
-
-% コントロールシークエンスを保存
-\long\def\jlreq@BlockHeading@start@afterheading@saveafter@cs@noargument#1{%
- \tl_put_right:cn {jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count} {#1}
- \jlreq@BlockHeading@start@afterheading
-}
-\long\def\jlreq@BlockHeading@start@afterheading@saveafter@cs#1{%
- \tl_put_right:cn {jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count} {#1}
- \jlreq@BlockHeading@start@afterheading@saveafter@option
-}
-% オプションがあれば保存
-\def\jlreq@BlockHeading@start@afterheading@saveafter@option{%
- \@ifnextchar[{\jlreq@BlockHeading@start@afterheading@saveafter@option@}{\jlreq@BlockHeading@start@afterheading@saveafter@arguments}%
-}
-\long\def\jlreq@BlockHeading@start@afterheading@saveafter@option@[#1]{%
- \tl_put_right:cx {jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count} {\exp_not:n {[#1]}}
- \jlreq@BlockHeading@start@afterheading@saveafter@arguments
-}
-% 引数を保存し続けるループ
-\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments{%
- \futurelet\jlreq@nextchar\jlreq@BlockHeading@start@afterheading@saveafter@arguments@
-}
-\edef\jlreq@BlockHeading@start@afterheading@saveafter@arguments@{%
- \noexpand\ifx\space\unexpanded{\jlreq@nextchar\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@\else\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@\fi}%
-}
-\expandafter\def\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@\space{%
- \tl_put_right:cn {jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count} { }
- \jlreq@BlockHeading@start@afterheading@saveafter@arguments
-}
-\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@{%
- \jlreq@ifnextchar\bgroup{\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@@}{\jlreq@BlockHeading@start@afterheading}%
-}
-\long\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@@#1{%
- \tl_put_right:cx {jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count} {\exp_not:n {{#1}}}
- \jlreq@BlockHeading@start@afterheading@saveafter@arguments
-}
-
-% 特別扱いしたいマクロを並べる
-\def\jlreq@BlockHeading@HeadingSpaces@ignoretokens{\label}
-\def\jlreq@BlockHeading@HeadingSpaces@ignoretokens@noargument{\par}
-
-% \jlreq@resulta -> before, \jlreq@resultb -> 本体,\jlreq@resultc -> after
-% {1 = 命令}{2 = レベル}{3 = スペース関連(横方向のみ)}{4 = フォーマット群}{5 = まとめたフォーマット群}{6 = *}{7 = running head}{8 = 見出し}{9 = 副題}
-\long\def\jlreq@BlockHeading@start@makeoutput#1#2#3#4#5#6#7#8#9{%
- \begingroup
- % ラベルがありか否か.\jlreq@tempc = \@emptyならばラベルあり
- \ifnum #2>\c@secnumdepth
- \def\jlreq@tempc{*}%
- \else
- \def\jlreq@tempc{#6}%
- \fi
- \edef\jlreq@tempa{\expandafter\jlreq@BlockHeading@start@geteachformat\expandafter{\jlreq@tempc}#4}% {ラベルフォーマット}{本文フォーマット}{副題フォーマット}
- \edef\jlreq@tempb{\expandafter\jlreq@BlockHeading@start@getformat\expandafter{\jlreq@tempc}#5}% {まとめるフォーマット}
- \edef\jlreq@do{\noexpand\jlreq@BlockHeading@start@makeoutput@@\exp_not:o {\jlreq@tempa}\exp_not:o {\jlreq@tempb}\unexpanded{{#8}{#9}}}%
- \jlreq@do
- \edef\jlreq@do{\noexpand\jlreq@BlockHeading@start@makeoutput@\unexpanded{#3}{\exp_not:o {\jlreq@result}}}%
- \jlreq@do
- % \jlreq@tempa -> 素のラベルフォーマット
- \edef\jlreq@tempa{\jlreq@BlockHeading@start@getonlylabelformat#4}%
- \edef\jlreq@do{%
- \unexpanded{\def\jlreq@resulta}{%
- \ifx\jlreq@tempc\@empty
- \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}%
- \unexpanded{\refstepcounter{#1}}%
- \else
- \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
- \fi
- \jlreq@ifempty{#8}%
- {\unexpanded{\long\gdef\jlreqHeadingText####1{}}}%
- {\unexpanded{\long\gdef\jlreqHeadingText####1{####1}}}%
- \jlreq@ifempty{#9}%
- {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{}}}%
- {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{####1}}}%
- }%
- \unexpanded{\def\jlreq@resultb}{%
- \exp_not:o {\jlreq@result}%
- }%
- \unexpanded{\def\jlreq@resultc}{%
- \exp_not:c {jlreq@heading@maketoc@#1}{\unexpanded{#6}}{\exp_not:o {\jlreq@tempa}}{\unexpanded{#7}}%
- }%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-
-% {ラベルフォーマット}{本文フォーマット}{副題フォーマット}に展開される.
-% {1 = 空ならばラベルあり}{2 = ラベルのみのフォーマット}{3 = ラベルフォーマット}{4 = 見出し文字列フォーマット}{5 = 見出し文字列フォーマット(ラベル無し)}{6 = 副題フォーマット}{7 = 副題フォーマット(ラベル無し)}
-\long\def\jlreq@BlockHeading@start@geteachformat#1#2#3#4#5#6#7{%
- \jlreq@ifempty{#1}{\unexpanded{{#3}{#4}{#6}}}{\unexpanded{{}{#5}{#7}}}%
-}
-% {全体フォーマット}に展開される.
-% {1 = 空ならばラベルあり}{2 = 前フォーマットラベルあり}{3 = 前フォーマットラベルなし}{4 = 見出し全体のフォーマット}{5 = 後ろフォーマットラベルあり}{6 = 後ろフォーマットラベルなし}
-\long\def\jlreq@BlockHeading@start@getformat#1#2#3#4#5#6{%
- \jlreq@ifempty{#1}{{\unexpanded{#2#4#6}}}{{\unexpanded{#3#4#6}}}%
-}
-\long\def\jlreq@BlockHeading@start@getonlylabelformat#1#2#3#4#5#6{\unexpanded{#1}}%
-
-% 横方向の空き調整を入れて,\jlreq@resultに返す.
-% {1 = 配置(clr)}{2 = 字下げ}{3 = 字上げ}{4 = 出力}
-\long\def\jlreq@BlockHeading@start@makeoutput@#1#2#3#4{%
- \edef\jlreq@result{%
- \noexpand\noindent
- \jlreq@ifempty{#2}{}{\unexpanded{\hskip #2}}%
- \noexpand\vbox{%
- \noexpand\noindent
- \ifx#1c\noexpand\centering\fi
- \ifx#1r\noexpand\raggedleft\fi
- \jlreq@ifempty{#2}{}{\unexpanded{\hsize=\dimexpr\hsize - #2\relax}}%
- \jlreq@ifempty{#3}{}{\unexpanded{\hsize=\dimexpr\hsize - #3\relax}}%
- \unexpanded{#4}%
- }%
- }%
-}
-
-% {1 = ラベルフォーマット}{2 = 見出し文字列フォーマット}{3 = 副題フォーマット}{4 = 全体フォーマット}{5 = 見出し}{6 = 副題}
-% \jlreq@resultに出力対象を入れる
-\long\def\jlreq@BlockHeading@start@makeoutput@@#1#2#3#4#5#6{%
- \begingroup
- \long\def\jlreq@tempa##1{#2}% 見出し文字列
- \expandafter\def\expandafter\jlreq@tempa\expandafter{\jlreq@tempa{#5}}%
- \jlreq@ifempty{#6}{%
- \def\jlreq@tempb{}%
- }{%
- \long\def\jlreq@tempb##1{#3}% 副題
- \expandafter\def\expandafter\jlreq@tempb\expandafter{\jlreq@tempb{#6}}%
- }%
- \long\def\jlreq@tempc##1##2##3{#4}% 全体のフォーマット
- % 二度展開すると欲しいものが得られる
- \edef\jlreq@tempa{\noexpand\jlreq@tempc{\unexpanded{#1}}{\exp_not:o {\jlreq@tempa}}{\exp_not:o {\jlreq@tempb}}}%
- \edef\jlreq@do{%
- \unexpanded{\def\jlreq@result}{\expandafter\exp_not:o \expandafter{\jlreq@tempa}}%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\def\jlreq@BlockHeading@start@removecolumn#1:{#1}
-
-% 空き指定を解釈する.a:10pt -> \jlreq@resulta=a,\jlreq@resultb=10pt
-\cs_set:Nn \__jlreq_BlockHeading_start_analyzespace:n{%
- \__jlreq_BlockHeading_start_analyzespace_aux#1:\jlreq@endmark
-}
-\cs_generate_variant:Nn \__jlreq_BlockHeading_start_analyzespace:n {V}
-\def\__jlreq_BlockHeading_start_analyzespace_aux#1:#2\jlreq@endmark{
- \jlreq@ifempty{#1}{%
- \def\jlreq@resulta{}%
- \def\jlreq@resultb{}%
- }{%
- \let\jlreq@resulta=#1
- \edef\jlreq@resultb{\exp_not:o {\jlreq@BlockHeading@start@removecolumn#2}}%
- }%
-}
-
-% 行取り処理.#3が空の時は行取りの処理はしない.(空白挿入は行う.)
-% {1 = 前空き}{2 = 後ろ空き}{3 = トータル行数}{4 = 出力}
-% 最後には\nobreak(と\vskip)が入っている
-\long\def\jlreq@BlockHeading@start@gyodori#1#2#3#4{\par{%
- \setbox\jlreq@tempboxa=\vbox{#4}%
- % \jlreq@tempskip(a/b)に前/後ろに入れるべき値を入れる
- % #1がa:ならばその値は\jlreq@tempskipaには足さず\jlreq@tempskipcに入れておく
- \jlreq@tempskipa=0pt
- \jlreq@tempskipb=0pt
- \jlreq@tempskipc=0pt
- \tl_set_rescan:Nnn \l__jlreq_tmpa_tl {\ExplSyntaxOn}{#1}
-% \message{[[[\expandafter\getcatcode\l__jlreq_tmpa_tl]]]}
- \__jlreq_BlockHeading_start_analyzespace:V \l__jlreq_tmpa_tl
- \let\jlreq@maeakitype=\jlreq@resulta
- \let\jlreq@maeaki=\jlreq@resultb
- \tl_set_rescan:Nnn \l__jlreq_tmpa_tl {\ExplSyntaxOn}{#2}
- \__jlreq_BlockHeading_start_analyzespace:V \l__jlreq_tmpa_tl
- \let\jlreq@ushiroakitype=\jlreq@resulta
- \let\jlreq@ushiroaki=\jlreq@resultb
- \def\jlreq@lines{#3}%
- % 両方強制指定の場合は行数を無視する.
- \ifx r\jlreq@maeakitype\ifx r\jlreq@ushiroakitype\def\jlreq@lines{}\fi\fi
- \setbox\jlreq@tempboxb=\hbox{阿}%
- \ifx\jlreq@lines\@empty
- \ifx\jlreq@maeaki\@empty\else
- \ifx a\jlreq@maeakitype
- \jlreq@tempskipc=\glueexpr\jlreq@maeaki\relax
- \else
- \jlreq@tempskipa=\glueexpr\jlreq@maeaki\relax
- \fi
- \fi
- \ifx\jlreq@ushiroaki\@empty\else
- \jlreq@tempskipb=\glueexpr\jlreq@ushiroaki\relax
- \fi
- \else
- % 行取り時の前後の空きを足した値を\jlreq@tempdimaに入れる
- \jlreq@tempdima=\glueexpr(#3\baselineskip - \baselineskip - \ht\jlreq@tempboxa - \dp\jlreq@tempboxa)\relax
- \ifx\jlreq@maeakitype\@empty
- \jlreq@tempskipa=\glueexpr(\jlreq@tempdima + \dp\jlreq@tempboxb - \ht\jlreq@tempboxb)/2\relax
- \else
- \ifx a\jlreq@maeakitype
- \jlreq@tempskipa=\glueexpr(\jlreq@tempdima + \dp\jlreq@tempboxb - \ht\jlreq@tempboxb)/2\relax
- \jlreq@tempskipc=\glueexpr\jlreq@maeaki\relax
- \fi
- \ifx s\jlreq@maeakitype
- \jlreq@tempskipa=\glueexpr(\jlreq@tempdima + \dp\jlreq@tempboxb - \ht\jlreq@tempboxb)/2 + \jlreq@maeaki\relax
- \jlreq@tempdima=\dimexpr\jlreq@tempdima + \jlreq@maeaki\relax
- \fi
- \ifx r\jlreq@maeakitype
- \jlreq@tempskipa=\glueexpr\jlreq@maeaki\relax
- \jlreq@tempdima=\dimexpr\jlreq@tempdima + \baselineskip - \dp\jlreq@tempboxb\relax
- \fi
- \fi
- \ifx\jlreq@ushiroakitype\@empty
- \jlreq@tempskipb=\glueexpr\jlreq@tempdima - \jlreq@tempskipa\relax
- \else
- \ifx a\jlreq@ushiroakitype
- \jlreq@tempskipb=\glueexpr\jlreq@tempdima - \jlreq@tempskipa + \jlreq@ushiroaki\relax
- \fi
- \ifx r\jlreq@ushiroakitype
- \jlreq@tempskipb=\glueexpr\jlreq@ushiroaki\relax
- \jlreq@tempskipa=\glueexpr\jlreq@tempdima - \jlreq@tempskipb + \baselineskip - \ht\jlreq@tempboxb\relax
- \fi
- \fi
- % \jlreq@tempdimaの利用ここまで
- \fi
- \jlreq@ifgluezero\jlreq@tempskipc{}{\vskip\jlreq@tempskipc\relax}%
- \ifx r\jlreq@maeakitype\prevdepth=-1000pt\fi
- % \jlreq@tempdimb, \jlreq@tempdimcに出力対称の高さを深さを代入
- \jlreq@tempdimb=\ht\jlreq@tempboxa
- \jlreq@tempdimc=\dp\jlreq@tempboxa
- \setbox\jlreq@tempboxa=\vbox{%
- \jlreq@ifgluezero\jlreq@tempskipa{}{\vskip\jlreq@tempskipa}%
- \unvbox\jlreq@tempboxa
- }%
- \ifx\jlreq@lines\@empty
- \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa - \jlreq@tempdimb\relax
- \ht\jlreq@tempboxa=\jlreq@tempdimb
- \box\jlreq@tempboxa
- \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt\relax\else\prevdepth=\jlreq@tempdimc\fi
- % \jlreq@tempdimb, \jlreq@tempdimcの利用ここまで
- \else
- \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa\relax
- \ht\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
- \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt\relax\else\prevdepth=0pt\relax\fi
- \fi
- \nobreak
- \jlreq@ifgluezero\jlreq@tempskipb{}{\vskip\jlreq@tempskipb}%
- \edef\jlreq@do{%
- \dim_compare:nF { \parskip=0pt } {
- \exp_not:N \cs_set:Nn \exp_not:N \g__jlreq_gyodori_hook_par: {
- \noexpand\parskip=\the\parskip\noexpand\relax
- \exp_not:n { \cs_set:Nn \g__jlreq_gyodori_hook_par: {} }
- }
- \noexpand\parskip=0pt
- }
- }%
- \expandafter}\jlreq@do
-}
-\cs_set:Nn \g__jlreq_gyodori_hook_par: {}
-\PushPostHook{par}{\g__jlreq_gyodori_hook_par:}
-
-
-% 行取り情報をゲットだぜ
-% \jlreq@resultに{1 = 前空き}{2 = 後ろ空き}{3 = トータル行数}を入れる
-% #2#3#4はそれぞれ前空き,後ろ開き,トータル行数のデフォルト値
-\def\jlreq@BlockHeading@gyodori@parsekeyval{%
- \@ifstar{\jlreq@BlockHeading@gyodori@parsekeyval@{*}}{\jlreq@BlockHeading@gyodori@parsekeyval@{}}%
-}
-\def\jlreq@BlockHeading@gyodori@parsekeyval@#1{%
- \@ifnextchar[{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}}{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}[jlreq@key]}%
-}
-\long\def\jlreq@BlockHeading@gyodori@parsekeyval@@#1[#2]#3#4#5#6{%
- \group_begin:
- \keys_define:nn {#2} {
- lines .tl_set:N = \l__jlreq_lines_tl,
- before_space .tl_set:N = \l__jlreq_before_space_tl,
- after_space .tl_set:N = \l__jlreq_after_space_tl,
- before_lines .code:n = {
- \tl_if_empty:nTF {##1}{
- \tl_set:Nn \l__jlreq_before_lines_tl {}
- }{
- \str_if_eq:eeTF { \str_head:n {##1} } {*}
- {\tl_set:Nx \l__jlreq_before_lines_tl {s:\exp_not:o {\use_none:n ##1}}}
- {\tl_set:Nx \l__jlreq_before_lines_tl {a:##1}}
- }
- },
- after_lines .tl_set:N = \l__jlreq_after_lines_tl
- }
- \tl_if_empty:nF {#1} { \keys_define:nn {#2} { unknown .code:n = {} } }
- \keys_set:nn {#2} {lines = {#6}, before_space = {}, before_lines = {}, after_space = {}, after_lines = {} }
- \keys_set:nn {#2} {#3}
- % before/after_lines優先
- \tl_if_empty:NF \l__jlreq_before_space_tl { \tl_put_left:Nn \l__jlreq_before_space_tl {r:} }
- \tl_if_empty:NF \l__jlreq_before_lines_tl { \tl_set:Nx \l__jlreq_before_space_tl {\exp_not:o {\l__jlreq_before_lines_tl} \exp_not:N \baselineskip } }
- \tl_if_empty:NT \l__jlreq_before_space_tl { \tl_set:Nn \l__jlreq_before_space_tl {#4} }
- \tl_if_empty:NF \l__jlreq_after_space_tl { \tl_put_left:Nn \l__jlreq_after_space_tl {r:} }
- \tl_if_empty:NF \l__jlreq_after_lines_tl { \tl_set:Nx \l__jlreq_after_space_tl { a:\exp_not:o {\l__jlreq_after_lines_tl} \exp_not:N \baselineskip } }
- \tl_if_empty:NT \l__jlreq_after_space_tl { \tl_set:Nn \l__jlreq_after_space_tl {#5} }
- % 内部での空き指定は[asr]:(寸法)の形
- % prefixのasrは次の意味:
- % r -> before/after_spaceの指定
- % a -> before/after_linesの指定
- % s -> beforelinesの指定だが*つき.
- \cs_set:Nx \l__jlreq_do: {
- \exp_not:n {\def\jlreq@result}{
- {\exp_not:o {\l__jlreq_before_space_tl } }
- {\exp_not:o {\l__jlreq_after_space_tl } }
- {\exp_not:o {\l__jlreq_lines_tl } }
- }
- }%
- \exp_after:wN \group_end:
- \l__jlreq_do:
-}
-
-\newbox\jlreq@BlockHeading@start@label@box
-% \DeclareBlockHeading{命令名}{レベル}{設定}
-\seq_new:N \l__jlreq_BlockHeading_allheadings_seq
-\NewDocumentCommand {\DeclareBlockHeading} { m m +m } {
- \def\jlreq@do{\@removeelement{#1}}%
- \seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1}
- \seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq
- \seq_put_right:Nn \l__jlreq_BlockHeading_allheadings_seq {#1}
- \seq_remove_duplicates:N \l__jlreq_BlockHeading_allheadings_seq
- \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}%
- \expandafter\edef\csname jlreq@heading@setting@#1\endcsname{\unexpanded{#3}}%
- \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewBlockHeading}%
- \@ifundefined{c@#1}{\newcounter{#1}}{}%
- \@ifundefined{#1mark}{\expandafter\let\csname #1mark\endcsname\@gobble}{}%
- \jlreq@heading@make@maketoc{#1}{#2}%
- \begingroup
- \edef\jlreq@heading@text@format{\unexpanded{##1}}%
- \newif\ifjlreq@second@text@indent@withlabel
- \newif\ifjlreq@subtitleindent@withlabel
- \newif\ifjlreq@subtitle@break
- \newif\ifjlreq@column@spanning@possible
- \newif\ifjlreq@number
- % a,bみたいなのをaとbにわける.カンマがなければbは空.引数を{a}{b}として##2を呼び出す.
- \def\jlreq@parsecomma##1##2{%
- \jlreq@helper@dividebycomma{##1}%
- \jlreq@if{\ifjlreq@result\fi}{%
- \edef\jlreq@do{\noexpand\jlreq@tempa{\exp_not:o {\jlreq@resulta}}{\exp_not:o {\jlreq@resultb}}}%
- }{%
- \edef\jlreq@do{\noexpand\jlreq@tempa{##1}{}}%
- }%
- \def\jlreq@tempa####1####2{##2}%
- \jlreq@do
- }%
- \keys_define:nn { BlockHeading:#1 } {
- lines .code:n = {},
- before_space .code:n = {},
- after_space .code:n = {},
- before_lines .code:n = {},
- after_lines .code:n = {},
- font .tl_set:N = \jlreq@font,
- subtitle_font .tl_set:N = \jlreq@subtitle@font,
- indent .tl_set:N = \jlreq@indent,
- end_indent .tl_set:N = \jlreq@end@indent,
- align .choice:,
- align / left .code:n = { \def\jlreq@align{l} },
- align / center .code:n = { \def\jlreq@align{c} },
- align / right .code:n = { \def\jlreq@align{r} },
- format .code:n = {\edef\jlreq@format{\unexpanded{##1}}},
- after_label_space .tl_set:N = \jlreq@after@label@space,
- heading_text_second_indent .code:n = {
- \ClassError { jlreq } { `heading_text_second_indent`~was~removed,~use~`second_heading_text_indent`~instead~(in~BlockHeading:~#1) }{\@ehc}
- },
-% {second_heading_text_indent,heading_text_second_indent}{%
- second_heading_text_indent .code:n = {
- \jlreq@parsecomma{##1}{%
- \jlreq@iffirsttoken{####1}{*}{%
- \jlreq@second@text@indent@withlabelfalse
- \edef\jlreq@second@heading@text@indent@wlabel{\exp_not:o {\@gobble ####1}}%
- }{%
- \jlreq@second@text@indent@withlabeltrue
- \def\jlreq@second@heading@text@indent@wlabel{####1}%
- }%
- \jlreq@ifempty{####2}{%
- \let\jlreq@second@heading@text@indent@wolabel=\jlreq@second@heading@text@indent@wlabel
- }{%
- \def\jlreq@second@heading@text@indent@wolabel{####2}%
- }%
- }%
- },
- label_format .code:n = {\edef\jlreq@label@format{\unexpanded{##1}}},
- subtitle_format .code:n = {\edef\jlreq@subtitle@format{\unexpanded{##1}}},
- subtitle_indent .code:n = {%
- \jlreq@iffirsttoken{##1}{*}{%
- \jlreq@subtitleindent@withlabelfalse
- \edef\jlreq@subtitle@indent{\exp_not:o {\@gobble ##1}}%
- }{%
- \jlreq@subtitleindent@withlabeltrue
- \def\jlreq@subtitle@indent{##1}%
- }%
- },
- subtitle_break .choices:nn = {true,false}{\csname jlreq@subtitle@break##1\endcsname},
- afterindent .choices:nn = {true,false}{\edef\jlreq@afterindent{\exp_not:c {@afterindent##1}}},
- allowbreak_if_evenpage .choices:nn = {true,false}{%
- \str_if_eq:nnTF {##1} {true}
- {\def\jlreq@allowbreak@evenpage{}}
- {\def\jlreq@allowbreak@evenpage{*}}
- },
- pagebreak .choice:,
- pagebreak / clearpage .code:n = {\def\jlreq@pagebreak{\clearpage}\jlreq@column@spanning@possibletrue},
- pagebreak / cleardoublepage .code:n = {\def\jlreq@pagebreak{\cleardoublepage}\jlreq@column@spanning@possibletrue},
- pagebreak / clearcolumn .code:n = {\if@twocolumn\def\jlreq@pagebreak{\newpage}\else\def\jlreq@pagebreak{}\fi\jlreq@column@spanning@possiblefalse},
- pagebreak / begin_with_even_page .code:n = {\def\jlreq@pagebreak{\cleartoevenpage[empty]}\jlreq@column@spanning@possibletrue},
- pagebreak / begin_with_odd_page .code:n = {\def\jlreq@pagebreak{\cleartooddpage[empty]}\jlreq@column@spanning@possibletrue},
- pagebreak / nariyuki .code:n = {\def\jlreq@pagebreak{}\jlreq@column@spanning@possiblefalse},
- pagestyle .tl_set:N = \l__jlreq_pagestyle_tl,
- % 後々数字を受け付けるようになったりするかもしれないので……
- column_spanning .code:n = {%
- \jlreq@tempatrue % validな入力に対してfalse
- \jlreq@ifempty{##1}{}{%
- \jlreq@ifnumber{##1}{% 数字の時はtrueに回す
- \jlreq@tempafalse
- \def\jlreq@column@spanning{true}%
- }{%
- \str_case_e:nn {##1} {
- {true}{\jlreq@tempafalse\def\jlreq@column@spanning{true}}
- {false}{\jlreq@tempafalse\def\jlreq@column@spanning{false}}
- }%
- }%
- }%
- \ifjlreq@tempa\ClassWarningNoLine{jlreq}{Invalid~input~`##1'~for~column_spanning~in~BlockHeading~#1}\fi
- },
- number .choices:nn = {true,false}{\csname jlreq@number\l_keys_choice_tl\endcsname},
- }%
- \keys_set:nn { BlockHeading:#1 } {
- font = {}, subtitle_font = {},
- indent = {0pt}, end_indent = {0pt}, align = {left}, subtitle_indent = {1\jlreq@zw}, afterindent = {true},
- second_heading_text_indent = {0pt}, after_label_space = {1\jlreq@zw},
- pagebreak = {nariyuki}, allowbreak_if_evenpage = {false}, subtitle_break = {true}, column_spanning = {false},
- format = {##1##2##3}, label_format = {\@seccntformat{#1}}, subtitle_format = {---##1---}, number = {true},
- pagestyle = {}
- }
- \keys_set:nn { BlockHeading:#1 } {#3}
- \def\jlreq@do{}% 初期化.これに最終処理を入れていく.
- % 入力チェック
- \str_if_eq:VnT \jlreq@column@spanning { true } {
- \jlreq@if{\unless\ifjlreq@column@spanning@possible\fi}{
- \ClassWarningNoLine{jlreq}{column_spanning~can~be~used~only~with~`pagebreak=nariyuki'~or~`pagebreak=clearcolumn'~(in~BlockHeading~#1)}%
- \def\jlreq@column@spanning{false}%
- }{}%
- }%
- % ラベルありフォーマット:前
- \edef\jlreq@pre@format@wlabel{%
- \noexpand\noindent
- \exp_not:o {\jlreq@font}%
- \ifnum 0\ifjlreq@second@text@indent@withlabel 1\fi\ifjlreq@subtitleindent@withlabel 1\fi>0
- \unexpanded{\setbox\jlreq@BlockHeading@start@label@box=\hbox}{\exp_not:o {\jlreq@label@format}}%
- \unexpanded{\xdef\jlreq@BlockHeading@start@labellength{\the\wd\jlreq@BlockHeading@start@label@box}}%
- \unexpanded{\def\jlreq@BlockHeading@start@outputlabel{\box\jlreq@BlockHeading@start@label@box}}%
- \else
- \unexpanded{\xdef\jlreq@BlockHeading@start@labellength{0pt}}%
- \unexpanded{\def\jlreq@BlockHeading@start@outputlabel}{\exp_not:o {\jlreq@label@format}}%
- \fi
- }%
- % ラベルなしフォーマット:前
- \edef\jlreq@pre@format@wolabel{%
- \noexpand\noindent
- \exp_not:o {\jlreq@font}%
- \unexpanded{\xdef\jlreq@BlockHeading@start@labellength{0pt}}%
- \unexpanded{\def\jlreq@BlockHeading@start@outputlabel}{}%
- }%
- % 空き量などの調整を含んだラベル
- \edef\jlreq@label@format@modified{%
- \noexpand\jlreq@BlockHeading@start@outputlabel
- \unexpanded{\inhibitglue\hbox{}}%
- \ifdim\dimexpr\jlreq@after@label@space\relax=\dimexpr 0pt\relax\else
- \noexpand\hspace*{\noexpand\dimexpr\exp_not:o {\jlreq@after@label@space}\noexpand\relax}%
- \fi
- }%
- \edef\jlreq@heading@text@format@wlabel{%
- \ifnum 0\ifdim\jlreq@second@heading@text@indent@wlabel=\dimexpr 0pt\relax\else 1\fi\ifjlreq@second@text@indent@withlabel 1\fi>0
- \unexpanded{\hangindent=\glueexpr}(\exp_not:o {\jlreq@second@heading@text@indent@wlabel})%
- \ifjlreq@second@text@indent@withlabel + (\exp_not:o {\jlreq@after@label@space}) + \unexpanded{\jlreq@BlockHeading@start@labellength}\fi
- \noexpand\relax
- \fi
- \exp_not:o {\jlreq@heading@text@format}%
- }%
- \edef\jlreq@heading@text@format@wolabel{%
- \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=\dimexpr 0pt\relax\else
- \unexpanded{\hangindent=\dimexpr}\exp_not:o {\jlreq@second@heading@text@indent@wolabel}\noexpand\relax
- \fi
- \exp_not:o {\jlreq@heading@text@format}%
- }%
- % 副題:ラベルありかなしかはhangindentの扱いだけなので,他はまとめる
- \def\jlreq@make@subtitle@format##1##2{%
- \edef##1{%
- \ifjlreq@subtitle@break
- \noexpand\par
- ##2%
- \unexpanded{\nobreak\noindent}%
- \else
- \ifdim\jlreq@subtitle@indent=\dimexpr 0pt\relax\else
- \noexpand\hspace*{\exp_not:o {\jlreq@subtitle@indent}}%
- \fi
- \fi
- {\exp_not:o {\jlreq@subtitle@font}\exp_not:o {\jlreq@subtitle@format}}%
- }%
- }%
- \jlreq@make@subtitle@format\jlreq@subtitle@format@wlabel{%
- \ifjlreq@subtitleindent@withlabel
- \noexpand\hangafter=0
- \unexpanded{\hangindent=\dimexpr}\noexpand\jlreq@BlockHeading@start@labellength + (\exp_not:o {\jlreq@after@label@space}) + (\exp_not:o {\jlreq@subtitle@indent})\noexpand\relax
- \else
- \ifdim\jlreq@subtitle@indent=\dimexpr 0pt\relax\else
- \noexpand\hangafter=0
- \unexpanded{\hangindent=\dimexpr}\exp_not:o {\jlreq@subtitle@indent}\noexpand\relax
- \fi
- \fi
- }%
- \jlreq@make@subtitle@format\jlreq@subtitle@format@wolabel{%
- \ifdim\jlreq@subtitle@indent=\dimexpr 0pt\relax\else
- \noexpand\hangafter=0
- \unexpanded{\hangindent=\dimexpr}\exp_not:o {\jlreq@subtitle@indent}\noexpand\relax
- \fi
- }%
- \jlreq@heading@make@l@{#1}{#2}{\jlreq@label@format}%
- \tl_put_right:Nx \jlreq@do {\exp_not:o {\jlreq@result}}%
- \jlreq@BlockHeading@gyodori@parsekeyval*[BlockHeading:#1]{#3}{}{}{1}%
- \let\jlreq@spaceset=\jlreq@result
- \edef\jlreq@totalformat{\unexpanded{##1}}%
- \edef\jlreq@totalformat@after{\exp_not:o {\jlreq@afterindent}\noexpand\@afterheading}%
- \if@twocolumn
- \str_if_eq:VnT \jlreq@column@spanning { true }{%
- \def\@tempa##1##2##3{%
- % 前開きが常に入ってしまうので,a:の時は除去する
- \jlreq@iffirsttoken{##1}{a}{\def\jlreq@spaceset{{}{##2}{##3}}}{}%
- \edef\jlreq@totalformat{%
- \unexpanded{\jlreq@if{\if@twocolumn\fi}}{%
- \noexpand\twocolumn[{%
- % 普段自動で入る\topskipと\baselineskipを手動で入れる
- \jlreq@iffirsttoken{##1}{r}{}{\unexpanded{\vskip\topskip\relax}}%
- \unexpanded{####1}%
- \jlreq@iffirsttoken{##2}{r}{}{\unexpanded{\vskip\glueexpr\baselineskip - \topskip\relax}}%
- }]%
- }{%
- \exp_not:o {\jlreq@totalformat}
- }%
- }%
- }%
- \expandafter\@tempa\jlreq@spaceset
- \def\jlreq@totalformat@after{}%
- }%
- \fi
- \edef\jlreq@do{%
- \exp_not:o {\jlreq@do}%
- \noexpand\edef\exp_not:c {jlreq@headingcs@#1}{\noexpand\unexpanded{%
- \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
- \exp_not:o {\jlreq@pagebreak}%
- \tl_if_empty:NF \l__jlreq_pagestyle_tl { \exp_not:N \thispagestyle {\exp_not:o { \l__jlreq_pagestyle_tl } } }
- \unexpanded{\jlreq@BlockHeading@start{#1}{#2}}%
- {{\exp_not:o {\jlreq@align}}{\exp_not:o {\jlreq@indent}}{\exp_not:o {\jlreq@end@indent}}\exp_not:o {\jlreq@spaceset}{\exp_not:o {\jlreq@allowbreak@evenpage}}}%
- {\ifjlreq@number\else -\fi}%
- {%
- {%
- {\exp_not:o {\jlreq@label@format}}{\exp_not:o {\jlreq@label@format@modified}}%
- {\exp_not:o {\jlreq@heading@text@format@wlabel}}{\exp_not:o {\jlreq@heading@text@format@wolabel}}%
- {\exp_not:o {\jlreq@subtitle@format@wlabel}}{\exp_not:o {\jlreq@subtitle@format@wolabel}}%
- }%
- {%
- {\exp_not:o {\jlreq@pre@format@wlabel}}{\exp_not:o {\jlreq@pre@format@wolabel}}%
- {\exp_not:o {\jlreq@format}}%
- {}{}%
- }%
- }%
- {{\exp_not:n {
- \par
- \addpenalty\@secpenalty
- \addvspace{0pt}\relax % 改ページ関係(#54,#100),よくわかっていない
- }}{\exp_not:o {\jlreq@totalformat}}{\exp_not:o {\jlreq@totalformat@after}}}%
- }}%
- \noexpand\def\exp_not:c {#1}{\exp_not:c {jlreq@headingcs@#1}}%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\NewDocumentCommand{\NewBlockHeading}{ m m +m }{%
- \expandafter\@ifdefinable\csname #1\endcsname{\DeclareBlockHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\RenewBlockHeading}{ m m +m }{%
- \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareBlockHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\ProvideBlockHeading}{ m m +m }{%
- \@ifundefined{#1}{\DeclareBlockHeading{#1}{#2}{#3}}{}%
-}
-
-%.. 別行見出しが連続した場合の処理
-% 設定値保存に次のマクロを使う
-% \jlreq@BlockHeading@spaces@headingslist
-% : スペースを考慮しないとならない見出しのリスト.,_chapter_section_subsection,_section_subsection,...みたいな感じ
-% \jlreq@BlockHeading@spaces@setlist@<見出し名リスト>
-% : 見出し名リストが続いたときの空き関連設定.<見出し名リスト>は_chapter_section_subsectionみたいなやつ.
-% {***}{***}...というリスト.各々の***は次のどれか.
-% 最初:全体への指定.{前空き}{後ろ空き}{行数}
-% _{前空き}{後ろ空き}{行数}:見出しに対する指定.先頭が_*の場合は,デフォルト設定をロードしてからということ.
-% それ以外:空き量
-% 最初や最後に空き量指定がある場合は,全体への指定に組み込むことにする.
-%
-% 現在状況保存に以下のマクロを使う
-% \jlreq@BlockHeading@spaces@current@sequence
-% : 現在どのような見出しが続いているかリスト.
-% \jlreq@BlockHeading@spaces@current@space@<n>
-% : 現在処理中のn番目の見出しに対する空き情報.{前空き}{後ろ空き}{トータル行数}{偶数ページbreak情報}.n=1から始まる.
-% \jlreq@BlockHeading@spaces@current@output@<n>
-% : 現在処理中のn番目の見出しの中身.
-% \jlreq@BlockHeading@spaces@current@format@<n>
-% : 現在処理中のn番目の見出しのフォーマット.行取りマクロを包み込むようにする.
-% \jlreq@BlockHeading@spaces@current@before@<n>
-% : n番目の見出しの前に出すもの
-% \jlreq@BlockHeading@spaces@current@after@<n>
-% : n番目の見出しの後ろに出すもの
-% \jlreq@BlockHeading@spaces@current@count
-% : 現在いくつの連続する見出しを処理しているかのカウンター
-\newcount\jlreq@BlockHeading@spaces@current@count
-\jlreq@BlockHeading@spaces@current@count=0
-\def\jlreq@BlockHeading@spaces@current@sequence{}
-\def\jlreq@BlockHeading@spaces@headingslist{}
-
-\NewDocumentCommand{\SetBlockHeadingSpaces} { m } {
- \begingroup
- % 現段階の情報をクリアする
- \def\jlreq@tempa{}% 見出しリスト
- \def\jlreq@tempb{}% 設定リスト \def\jlreq@BlockHeading@spaces@***{{**}{**}...}ってのを入れる
- \jlreq@SetBlockHeadingSpaces#1\jlreq@endmark
- \edef\jlreq@do{%
- \unexpanded{%
- \clist_map_inline:Nn \jlreq@BlockHeading@spaces@headingslist {
- \expandafter\let\csname jlreq@BlockHeading@spaces@setlist@####1\endcsname=\@undefined
- }%
- }%
- \unexpanded{\def\jlreq@BlockHeading@spaces@headingslist}{\exp_not:o {\jlreq@tempa}}%
- \exp_not:o {\jlreq@tempb}%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-\def\jlreq@SetBlockHeadingSpaces{% カンマを無視する処理
- \@ifnextchar,{\expandafter\jlreq@SetBlockHeadingSpaces@i\@gobble}{\jlreq@SetBlockHeadingSpaces@i}%
-}
-\def\jlreq@SetBlockHeadingSpaces@i{%
- \@ifnextchar[{\jlreq@SetBlockHeadingSpaces@ii}{\jlreq@SetBlockHeadingSpaces@ii[]}%
-}
-\def\jlreq@SetBlockHeadingSpaces@ii[#1]#2{%
- \jlreq@ifendmark{#2}{}{%
- \def\jlreq@headings{}% 見出し名リスト
- \jlreq@BlockHeading@gyodori@parsekeyval[BlockHeadingSpaces]{#1}{}{}{}%
- \let\jlreq@totalset=\jlreq@result% 上の#1に対応する設定
- \def\jlreq@set{}% 個々の設定
- \def\jlreq@lastdimen{}% 最後の寸法
- \def\jlreq@do##1##2##3{%
- \jlreq@ifempty{##1}{\jlreq@tempatrue}{\jlreq@tempafalse}% 前開きが空ならば\jlreq@tempatrue
- \jlreq@ifempty{##2}{\jlreq@tempbtrue}{\jlreq@tempbfalse}% 後ろ開きが空ならば\jlreq@tempbtrue
- }%
- \expandafter\jlreq@do\jlreq@totalset
- \jlreq@SetBlockHeadingSpaces@iii{#2}%
- \tl_put_right:Nx \jlreq@tempa {,\exp_not:o{\jlreq@headings}}% \jlreq@tempaに\jlreq@headingsを追加
- \ifjlreq@tempb
- \ifx\jlreq@lastdimen\@empty\else % 最後が寸法だったので\jlreq@SetBlockHeadingSpaces@totalsetを改変
- \def\jlreq@do##1##2##3{%
- \edef\jlreq@totalset{{\unexpanded{##1}}{r:\exp_not:o {\jlreq@lastdimen}}{\unexpanded{##3}}}%
- }%
- \expandafter\jlreq@do\jlreq@totalset
- \fi
- \else
- \tl_put_right:Nx \jlreq@set{{\exp_not:o {\jlreq@lastdimen}}}
- \fi
- \tl_put_right:Nx \jlreq@tempb {%
- \noexpand\@ifundefined{jlreq@BlockHeading@spaces@setlist@\jlreq@headings}{}{%
- \noexpand\ClassError{jlreq}{The~spaces~for~\jlreq@headings\space is~defined~more~than~once~(in~SetBlockHeadingSpaces)}{\noexpand\@ehc}%
- }%
- \noexpand\def\exp_not:c {jlreq@BlockHeading@spaces@setlist@\jlreq@headings}{{\exp_not:o {\jlreq@totalset}}\exp_not:o {\jlreq@set}}%
- }%
- \jlreq@SetBlockHeadingSpaces
- }%
-}
-
-% {}があるのに最初が_で始まっていない場合は蹴る.
-\def\jlreq@SetBlockHeadingSpaces@checkdimension#1{%
- \jlreq@SetBlockHeadingSpaces@checkdimension@i#1{\jlreq@uniqtoken}\jlreq@endmark
-}
-\def\jlreq@SetBlockHeadingSpaces@checkdimension@i#1#{\jlreq@SetBlockHeadingSpaces@checkdimension@ii{#1}}
-\def\jlreq@SetBlockHeadingSpaces@checkdimension@ii#1#2#3\jlreq@endmark{%
- \begingroup
- \def\jlreq@tempa{#2}%
- \def\jlreq@tempb{\jlreq@uniqtoken}%
- \ifx\jlreq@tempa\jlreq@tempb\def\jlreq@do{}%
- \else\def\jlreq@do{%
- \ClassError{jlreq}{Invalid~setting~``\unexpanded{#1{#2}}''~is~found,~you~forgot~`_'?~(in~SetBlockHeadingSpaces)}{\@ehc}%
- }\fi
- \expandafter\endgroup
- \jlreq@do
-}
-
-\def\jlreq@SetBlockHeadingSpaces@iii#1{%
- \clist_map_variable:nNn {#1} \@tempa {
- \expandafter\jlreq@helper@trim\expandafter{\@tempa}{\@tempa}%
- \str_if_eq:eeTF {\str_head:N \@tempa} {_} {
- \ifx\jlreq@lastdimen\@empty\else\tl_put_right:Nx \jlreq@set {{\exp_not:o {\jlreq@lastdimen}}}\fi%
- \def\jlreq@lastdimen{}%
- \expandafter\jlreq@SetBlockHeadingSpaces@iv\@tempa{\jlreq@endmark}\jlreq@endmark
- }{%
- \expandafter\jlreq@SetBlockHeadingSpaces@checkdimension\expandafter{\@tempa}%
- \ifjlreq@tempa
- % 最初が寸法なので,全体の設定(\jlreq@totalset)に組み込む.
- \def\jlreq@do##1##2##3{%
- \edef\jlreq@totalset{{r:\exp_not:o {\@tempa}}{\unexpanded{##2}}{\unexpanded{##3}}}%
- }%
- \expandafter\jlreq@do\jlreq@totalset
- \else
- \ifx\jlreq@lastdimen\@empty\else\tl_put_right:Nx \jlreq@set {{\exp_not:o {\jlreq@lastdimen}}}\fi
- \let\jlreq@lastdimen=\@tempa
- \fi
- }%
- \jlreq@tempafalse
- }%
-}
-
-\def\jlreq@SetBlockHeadingSpaces@iv#1#{%
- \str_set:Nx \l__jlreq_tmpa_str {\@gobble #1}
- \str_if_in:NnT \l__jlreq_tmpa_str {_} {
- \ClassWarning{jlreq}{Unusual~heading~name~`\@gobble #1'~is~found.~You~forgot~a~comma?~(in~SetBlockHeadingSpaces)}%
- }%
- \jlreq@ifendswith{#1}{*}{{%
- \def\@tempa_##1*{\def\@tempa{##1}}%
- \@tempa#1%
- \ClassWarning{jlreq}{The~heading~name~`\@gobble #1'~ends~with~`*'.~Do~you^mean~`_\@tempa{*}'?~(in~SetBlockHeadingSpaces)}%
- }}{}%
- \tl_put_right:Nn \jlreq@headings {#1}%
- \jlreq@SetBlockHeadingSpaces@v
-}
-\def\jlreq@SetBlockHeadingSpaces@v#1{%
- % 空っぽの場合は{_{r:0pt}{r:0pt}{}}
- \jlreq@ifendmark{#1}{%
- \tl_put_right:Nn \jlreq@set {{_{r:0pt}{r:0pt}{}}}
- \@gobble
- }{%
- \jlreq@iffirsttoken{#1}{*}{% *始まりの場合は{_*{}{}{}}
- \expandafter\jlreq@BlockHeading@gyodori@parsekeyval\expandafter{\@gobble #1}{}{}{}%
- \tl_put_right:Nx \jlreq@set{{_*\exp_not:o {\jlreq@result}}}%
- }{% それ以外の場合は{_{}{}{}}
- \jlreq@BlockHeading@gyodori@parsekeyval{#1}{}{}{}%
- \tl_put_right:Nx \jlreq@set{{_\exp_not:o {\jlreq@result}}}%
- }%
- \jlreq@SetBlockHeadingSpaces@vi
- }%
-}
-% _節名{設定}の後に何かないかチェック……
-\def\jlreq@SetBlockHeadingSpaces@vi#1\jlreq@endmark{%
- \jlreq@ifendmark{#1}{}{{%
- \@temptokena{}%
- \def\@tempb##1##{\@temptokena\expandafter{\the\@temptokena##1}\@tempc}%
- \def\@tempc##1{\jlreq@ifendmark{##1}{}{\@temptokena\expandafter{\the\@temptokena{##1}}\@tempb}}%
- \@tempb#1%
- \ClassWarningNoLine{jlreq}{Extra~setting~`\the\@temptokena'~is~found~in~SetBlockHeadingSpaces,~omitted}
- }}%
-}
-
-% 現在の情報に基づき出力
-\def\jlreq@BlockHeading@spaces@output{%
- \@ifundefined{jlreq@BlockHeading@spaces@setlist@\jlreq@BlockHeading@spaces@current@sequence}{%
- \jlreq@BlockHeading@spaces@outputwospace
- }{%
- \expandafter\expandafter\expandafter\jlreq@BlockHeading@spaces@output@\csname jlreq@BlockHeading@spaces@setlist@\jlreq@BlockHeading@spaces@current@sequence\endcsname\jlreq@endmark
- }%
-}
-
-% 連続スペース情報とか無視して各々の見出しを出力する
-\def\jlreq@BlockHeading@spaces@outputwospace{%
- \begingroup
- \jlreq@tempcnta=0
- \def\jlreq@do{}%
- \jlreq@BlockHeading@spaces@outputwospace@
- \jlreq@BlockHeading@spaces@clear
- \expandafter\endgroup
- \jlreq@do
-}
-\def\jlreq@BlockHeading@spaces@outputwospace@{%
- \ifnum\jlreq@tempcnta<\jlreq@BlockHeading@spaces@current@count
- \advance\jlreq@tempcnta by 1
- \tl_put_right:Nx \jlreq@do {\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta}}%
- \edef\jlreq@tempa{%
- \unexpanded{\long\def\jlreq@tempa##1}{\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@format@\the\jlreq@tempcnta}}%
- }%
- \jlreq@tempa
- \edef\jlreq@tempb{%
- \noexpand\exp_not:o {\noexpand\jlreq@tempa{%
- \noexpand\jlreq@BlockHeading@start@gyodori
- \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@space@\the\jlreq@tempcnta}%
- {\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@output@\the\jlreq@tempcnta}}%
- }}%
- }%
- \tl_put_right:Nx \jlreq@do {\jlreq@tempb\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta}}%
- \expandafter\jlreq@BlockHeading@spaces@outputwospace@
- \fi
-}
-
-\def\jlreq@BlockHeading@spaces@output@#1#2\jlreq@endmark{%
- \def\jlreq@result{}%
- \jlreq@tempcnta=0
- \jlreq@BlockHeading@spaces@output@@#2\jlreq@endmark
- \jlreq@tempatrue % 周りの行取り処理が必要か
- \tl_if_empty:nT {#1} {\jlreq@tempafalse}%
- \tl_if_eq:nnT {#1} {{}{}{}} { \jlreq@tempafalse }
- \edef\jlreq@do{%
- \ifjlreq@tempa
- \unexpanded{\jlreq@BlockHeading@start@gyodori#1}{%
- \exp_not:o {\jlreq@result}%
- }%
- \else
- \exp_not:o {\jlreq@result}%
- \fi
- }%
- \jlreq@BlockHeading@spaces@clear
- \jlreq@do
-}
-% jlreq@resultに出力すべきものを入れていく
-\def\jlreq@BlockHeading@spaces@output@@#1{%
- \jlreq@ifendmark{#1}{}{%
- \str_if_eq:eeTF {\str_head:n {#1}} {_} {
- \advance\jlreq@tempcnta by 1
- \expandafter\jlreq@BlockHeading@spaces@output@@@\expandafter{\@gobble #1}%
- }{%
- \tl_put_right:Nn \jlreq@result {\vskip\glueexpr #1\relax}%
- }%
- \jlreq@BlockHeading@spaces@output@@
- }%
-}
-\def\jlreq@BlockHeading@spaces@output@@@#1{%
- \edef\jlreq@do{%
- \noexpand\jlreq@BlockHeading@spaces@output@@@@
- \jlreq@iffirsttoken@ignorespaces{#1}{*}{{*}\exp_not:o {\@gobble #1}}{\unexpanded{{}#1}}%
- \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@space@\the\jlreq@tempcnta}%
- {\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@output@\the\jlreq@tempcnta}}%
- }%
- \jlreq@do
-}
-% #1: デフォルト値を使うならば*,#2#3#4が設定された値,#5#6#7がデフォルト値,#8は偶数ページの,#9が出力
-\def\jlreq@BlockHeading@spaces@output@@@@#1#2#3#4#5#6#7#8{%
- \edef\jlreq@tempa{%
- \unexpanded{\long\def\jlreq@tempa##1}{\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@format@\the\jlreq@tempcnta}}%
- }%
- \jlreq@tempa
- \edef\jlreq@tempb{%
- \noexpand\exp_not:o {\noexpand\jlreq@tempa{%
- \noexpand\jlreq@BlockHeading@start@gyodori
- \jlreq@ifempty{#1}{\unexpanded{{#2}{#3}{#4}}}{%
- {\jlreq@ifempty{#2}{\unexpanded{#5}}{\unexpanded{#2}}}%
- {\jlreq@ifempty{#3}{\unexpanded{#6}}{\unexpanded{#3}}}%
- {\jlreq@ifempty{#4}{\unexpanded{#7}}{\unexpanded{#4}}}%
- }\unexpanded{{#8}}%
- }}%
- }%
- \tl_put_right:Nx \jlreq@result {%
- \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta}%
- \jlreq@tempb
- \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta}%
- }%
-}
-
-% 連続見出しスペース調整用のデータをすべてクリアする
-\def\jlreq@BlockHeading@spaces@clear{%
- \begingroup
- \jlreq@tempcnta=0
- \@whilenum\jlreq@tempcnta<\jlreq@BlockHeading@spaces@current@count\do{%
- \advance\jlreq@tempcnta by 1
- \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@space@\the\jlreq@tempcnta\endcsname=\@undefined
- \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@output@\the\jlreq@tempcnta\endcsname=\@undefined
- \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta\endcsname=\@undefined
- \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta\endcsname=\@undefined
- }%
- \gdef\jlreq@BlockHeading@spaces@current@sequence{}%
- \global\jlreq@BlockHeading@spaces@current@count=0
- \endgroup
-}
-
-%.. 同行見出し
-% {1 = 命令名}{2 = レベル}{3 = */-}{4 = ラベルフォーマット}{5 = ラベルありフォーマット}{6 = ラベルなしフォーマット}
-% 4,5は見出し文字列が#1になる.
-\long\def\jlreq@RuninHeading@start#1#2#3#4#5#6{%
- \edef\jlreq@RuninHeading@start@format@label{\unexpanded{#4}}%
- \edef\jlreq@RuninHeading@start@format@wlabel{\unexpanded{#5}}%
- \edef\jlreq@RuninHeading@start@format@wolabel{\unexpanded{#6}}%
- \@ifstar{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{*}}}{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{#3}}}%
-}
-% {1 = 命令名}{2 = レベル}{3 = */-}{4 = running head}{5 = 見出し}
-\long\def\jlreq@RuninHeading@start@#1#2#3[#4]#5{%
- \edef\jlreq@do{\unexpanded{\jlreq@RuninHeading@start@@{#1}{#2}{#3}{#4}{#5}}{\exp_not:o {\jlreq@RuninHeading@start@format@label}}{\exp_not:o {\jlreq@RuninHeading@start@format@wlabel}}{\exp_not:o {\jlreq@RuninHeading@start@format@wolabel}}}%
- \jlreq@do
-}
-% {1 = 命令名}{2 = レベル}{3 = *}{4 = running head}{5 = 見出し}{6 = ラベルフォーマット}{7 = ラベルありフォーマット}{8 = ラベルなしフォーマット}
-\edef\jlreq@tempa{%
- \unexpanded{\long\def\jlreq@RuninHeading@start@@#1#2#3#4#5#6#7#8}{%
- \unexpanded{%
- \if@noskipsec\leavevmode\fi
- \begingroup
- \def\jlreq@do{\global\@noskipsectrue}%
- \ifnum0\jlreq@ifempty{#3}{}{1}\ifnum #2>\c@secnumdepth 1\fi>0
- \def\jlreq@tempa##1{#8}%
- \else
- \tl_put_right:Nn \jlreq@do {\refstepcounter{#1}}%
- \def\jlreq@tempa##1{#7}%
- \fi
- \par}%
- \unexpanded{\tl_put_right:Nx \jlreq@do}{%
- \unexpanded{\noexpand\everypar}{%
- \unexpanded{%
- \noexpand\if@noskipsec
- \unexpanded{\global\@noskipsecfalse}%
- \unexpanded{{\setbox\jlreq@tempboxa\lastbox}}%
- \noexpand\begingroup
- \exp_not:o {\jlreq@tempa{#5}}%
- \exp_not:c {jlreq@heading@maketoc@#1}\unexpanded{{#3}{#6}{#4}}%
- \noexpand\endgroup
- \noexpand\inhibitglue
- \noexpand\else
- \unexpanded{\everypar{}}%
- }%
- \ifx l\jlreq@engine\else
- \unexpanded{\unexpanded{\let\jlreq@hook@everypar\jlreq@openbracket@hook}}%
- \fi
- \unexpanded{\noexpand\fi}%
- }%
- }%
- \unexpanded{\expandafter\endgroup
- \jlreq@do
- \ignorespaces}%
- }
-}
-\jlreq@tempa
-
-% \DeclareRuninHeading{命令名}{レベル}{設定}
-\NewDocumentCommand { \DeclareRuninHeading } { m m +m } {
- \__jlreq_declare_runin_heading:nnn {#1} {#2} {#3}
-}
-\cs_set:Nn \__jlreq_declare_runin_heading:nnn {
- \def\jlreq@do{\@removeelement{#1}}%
- \seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1}
- \seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq
- \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}%
- \expandafter\edef\csname jlreq@heading@setting@#1\endcsname{\unexpanded{#3}}%
- \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewRuninHeading}%
- \@ifundefined{c@#1}{\newcounter{#1}}{}%
- \@ifundefined{#1mark}{\expandafter\let\csname #1mark\endcsname\@gobble}{}%
- \@ifundefined{l@#1}{\expandafter\def\csname l@#1\endcsname{\@dottedtocline{#2}{0\jlreq@zw}{2\jlreq@zw}}}{}%
- \jlreq@heading@make@maketoc{#1}{#2}%
- \group_begin:
- \def\jlreq@label@font{}%
- \keys_define:nn { RuninHeading:#1 } {
- font .tl_set:N = \l__jlreq_font_tl,
- indent .tl_set:N = \l__jlreq_indent_tl,
- label_format .tl_set:N = \l__jlreq_label_format_tl,
- after_label_space .tl_set:N = \l__jlreq_after_label_space_tl,
- after_space .tl_set:N = \l__jlreq_after_space_tl,
- number .bool_set:N = \l__jlreq_number_bool,
- }
- \keys_set:nn { RuninHeading:#1 } {
- font = {\normalfont\normalsize},
- indent = {0pt},
- label_format = {\@seccntformat{#1}},
- after_label_space = {1\jlreq@zw},
- after_space = {1\jlreq@zw},
- number = true
- }
- \keys_set:nn { RuninHeading:#1 } {#3}
- \dim_compare:nT { \l__jlreq_after_space_tl < 0pt } {
- \ClassWarning{jlreq}{after_space~in~Runin~Heading~#1~should~be~not~negative}
- }
- \dim_compare:nT { \l__jlreq_after_label_space_tl < 0pt } {
- \ClassWarning{jlreq}{after_label_space~in~Runin~Heading~#1~should~be~not~negative}
- }
- \bool_set:Nn \l__jlreq_indent_zero_bool { \skip_if_eq_p:nn { \l__jlreq_indent_tl } { 0pt } }
- \bool_set:Nn \l__jlreq_after_space_zero_bool { \skip_if_eq_p:nn { \l__jlreq_after_space_tl } { 0pt } }
- \bool_set:Nn \l__jlreq_after_label_space_zero_bool { \skip_if_eq_p:nn { \l__jlreq_after_label_space_tl } { 0pt } }
- \tl_set:Nx \l__jlreq_format_wlabel_tl {{
- \bool_if:NF \l__jlreq_indent_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_indent_tl} } }
- \exp_not:o { \l__jlreq_font_tl }
- \exp_not:o { \l__jlreq_label_format_tl }
- \bool_if:NF \l__jlreq_after_space_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_after_label_space_tl} } }
- ####1%
- \bool_if:NF \l__jlreq_after_space_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_after_space_tl} } }
- }}%
- \tl_set:Nx \l__jlreq_format_wolabel_tl {{
- \bool_if:NF \l__jlreq_indent_zero_bool { \exp_not:N \skip_horizontal:n { \exp_not:o {\l__jlreq_indent_tl} } }
- \exp_not:o { \l__jlreq_font_tl }
- ####1%
- \bool_if:NF \l__jlreq_after_space_zero_bool { \exp_not:N \skip_horizontal:n {\exp_not:o {\l__jlreq_after_space_tl} } }
- }}%
- \jlreq@heading@make@l@{#1}{#2}{\l__jlreq_label_format_tl}%
- \cs_set:Nx \l__jlreq_do: {
- \exp_not:o { \jlreq@result }
- % パラメータトークンを含むので,\edefして\unexpandedで包む
- \noexpand\edef\exp_not:c {#1}{%
- \noexpand\unexpanded{%
- \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
- \exp_not:n {\jlreq@RuninHeading@start{#1}{#2}}
- {\bool_if:NF \l__jlreq_number_bool {-}}
- {\exp_not:o {\l__jlreq_label_format_tl}}
- {\exp_not:o {\l__jlreq_format_wlabel_tl}}
- {\exp_not:o {\l__jlreq_format_wolabel_tl}}
- }%
- }%
- }%
- \exp_after:wN \group_end:
- \l__jlreq_do:
-}
-
-\NewDocumentCommand{\NewRuninHeading}{ m m +m }{
- \expandafter\@ifdefinable\csname #1\endcsname{\DeclareRuninHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\RenewRuninHeading}{ m m +m }{%
- \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareRuninHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\ProvideRuninHeading}{ m m +m }{%
- \@ifundefined{#1}{\DeclareRuninHeading{#1}{#2}{#3}}{}%
-}
-
-%.. 窓見出し
-\cs_set:Nn \__jlreq_CutinHeading_start:nnnnnnn {
- \if@noskipsec\leavevmode\fi
- \par
- \int_compare:nTF { \hangafter=1 } {
- \__jlreq_CutinHeading_start_aux:nnnnnn{#2}{#3}{#4}{#5}{#6}{#7}%
- }{%
- \ClassError{jlreq}{Can~not~use~\expandafter\string\csname#1\endcsname\space here}{\@ehc}%
- }%
-}
-% 1 = 書式指定,2 = インデント, 3 = 見出しと本文の間, 4 = これを越えたら二行以上,5 = これを越えたら三行以上,6 = テキスト
-\cs_set:Nn \__jlreq_CutinHeading_start_aux:nnnnnn{%
- % 一行で処理したときの見出し長さを計測
- \group_begin:
- \hbox_set:Nn \l_jlreq_tmpa_box {#1#6}
- \dim_set:Nn \l__jlreq_tmpa_dim { \box_wd:N \l_jlreq_tmpa_box}
- % 何行必要かを\l__jlreq_cutinheading_linecount_tlに入れる
- \dim_compare:nTF { \l__jlreq_tmpa_dim > #5} {
- \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {3}
- }{
- \dim_compare:nTF { \l__jlreq_tmpa_dim > #4 }{
- \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {2}
- } { \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {1} } }
- % \l__jlreq_tmpa_dimが実際の一行の長さに近い
- \dim_set:Nn \l__jlreq_tmpa_dim { \l__jlreq_tmpa_dim / \l__jlreq_cutinheading_linecount_tl }
- % \l_jlreq_tmpb_boxに見出し部分を,\l__jlreq_cutinheading_linecount_tlに見出し自身に何行使うかを入れる
- \int_compare:nTF { \l__jlreq_cutinheading_linecount_tl = 1 }{
- \vbox_set:Nn \l_jlreq_tmpb_box {\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox_unpack_drop:N \l_jlreq_tmpa_box}
- \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {2}
- }{
- \jlreq@inlinenote@determinelength{#6}{#1}{}{\l__jlreq_cutinheading_linecount_tl}{\l__jlreq_cutinheading_linecount_tl}{\l__jlreq_tmpa_dim}{\linewidth}%
- \box_set_eq:NN \l_jlreq_tmpb_box \jlreq@resultbox
- \tl_set:Nn \l__jlreq_cutinheading_linecount_tl {3}
- }
- % 普通の一行の高さ/深さに合わせて見出しのボックスを作る
- \setbox\l_jlreq_tmpa_box =\vtop to \dimexpr\numexpr\l__jlreq_cutinheading_linecount_tl - 1\relax\baselineskip + 1\jlreq@zh\relax{\skip_vertical:n {0pt~plus~1fill~minus~1fill} \box_use_drop:N \l_jlreq_tmpb_box \skip_vertical:n {0pt~plus~1fill~minus~1fill}}%
- % 高さを通常の一行のそれにする
- \hbox_set:Nn \l_jlreq_tmpc_box {阿}
- \box_set_dp:Nn \l_jlreq_tmpa_box { \box_ht:N \l_jlreq_tmpa_box + \box_dp:N \l_jlreq_tmpa_box - \box_ht:N \l_jlreq_tmpc_box }
- \box_set_ht:Nn \l_jlreq_tmpa_box { \box_ht:N \l_jlreq_tmpc_box }
- \noindent
- \hspace*{#2}%
- \box_use:N \l_jlreq_tmpa_box
- \hspace*{#3}%
- % でかい見出しボックスの分をキャンセルする空きを入れる
- % \baselineskip - box_ht:N \l_jlreq_tmpc_boxはTeXが挿入するスキップの分
- \cs_set:Nx \l__jlreq_do:{
- \exp_not:N \par
- \exp_not:N \skip_vertical:n {\dim_eval:n {-\box_ht:N \l_jlreq_tmpa_box - \box_dp:N \l_jlreq_tmpa_box - \baselineskip + \box_ht:N \l_jlreq_tmpc_box}}
- \exp_not:N\hangindent= \dim_eval:n {#2 + \box_wd:N \l_jlreq_tmpa_box + #3} \exp_not:N \relax
- \exp_not:N\hangafter=-\l__jlreq_cutinheading_linecount_tl\relax
- }%
- \exp_after:wN \group_end:
- \l__jlreq_do:
- \prevdepth=0pt\relax
- % 改段落が起こっても\hang****をキープするように\parを書き換えておく(終わったら元に戻す).
- \def\par{%
- \ifvmode\jlreq@tempatrue\else\jlreq@tempafalse\fi
- \jlreq@tempcnta=\hangafter\relax
- \jlreq@tempdima=\hangindent\relax
- \@@par
- \ifjlreq@tempa\else\advance\jlreq@tempcnta by \prevgraf\relax\fi
- \ifnum\jlreq@tempcnta<0
- \hangafter=\jlreq@tempcnta\relax
- \hangindent=\jlreq@tempdima\relax
- \else
- \@restorepar
- \fi
- }%
- \@afterindentfalse
- \@afterheading
- \ignorespaces
-}
-
-\NewDocumentCommand{\DeclareCutinHeading}{ m m +m }{
- \expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}
- \expandafter\def\csname jlreq@heading@setting@#1\endcsname{#3}
- \expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewCutinHeading}
- \group_begin:
- \keys_define:nn { CutinHeading:#1 } {
- font .tl_set:N = \l__jlreq_fontcommand_tl,
- onelinemax .tl_set:N = \l__jlreq_onelinemax_tl,
- twolinemax .tl_set:N = \l__jlreq_twolinemax_tl,
- indent .tl_set:N = \l__jlreq_indent_tl,% 0pt
- after_space .tl_set:N = \l__jlreq_after_space_tl,
- }
- \keys_set:nn { CutinHeading:#1 } {
- font = { \sffamily\gtfamily\bfseries },
- onelinemax = { 6\jlreq@zw },
- twolinemax = { 20\jlreq@zw } ,
- indent = { 0pt },
- after_space = { 1\jlreq@zw }
- }
- \keys_set:nn { CutinHeading:#1 } {#3}
- \bool_if:nT { \dim_compare_p:n {\l__jlreq_after_space_tl < 0.99\jlreq@zw} || \dim_compare_p:n { \l__jlreq_after_space_tl > 2.01\jlreq@zw } }{
- \jlreq@note{窓見出しと本文との空き量は,基本版面の文字サイズの全角以上,2倍未満とする~(4.1.10.c).}%
- }{}%
- \cs_set:Nx \l__jlreq_do: {
- \exp_not:N \DeclareDocumentCommand \exp_not:c {#1} {m} {
- \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
- \exp_not:N \__jlreq_CutinHeading_start:nnnnnnn{#1}{\exp_not:o \l__jlreq_fontcommand_tl}{\exp_not:o \l__jlreq_indent_tl}{\exp_not:o \l__jlreq_after_space_tl}{\exp_not:o \l__jlreq_onelinemax_tl}{\exp_not:o \l__jlreq_twolinemax_tl}{####1}
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do:
-}
-\NewDocumentCommand{\NewCutinHeading} { m m +m } {%
- \expandafter\@ifdefinable\csname #1\endcsname{\DeclareCutinHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\RenewCutinHeading} { m m +m } {%
- \@ifundefined{#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclareCutinHeading{#1}{#2}{#3}}%
-}
-\NewDocumentCommand{\ProvideCutinHeading} { m m +m } {%
- \@ifundefined{#1}{\DeclareCutinHeading{#1}{#2}{#3}}{}%
-}
-
-\NewDocumentCommand{\ModifyHeading}{m +m}{
- \@ifundefined { jlreq@heading@setting@#1 } { \ClassError{jlreq}{Unknown~heading:~#1}{\@ehc} } {}
- \group_begin:
- \tl_set:Nn \l__jlreq_tmpa_tl {#2}
- \str_set:Nn \l__jlreq_tmpa_str {#2}
- \str_case_e:nn { \jlreq@HeadingType {#1} } {
- { BlockHeading } {
- \bool_set_false:N \l_jlreq_tmpa_bool
- \str_if_in:NnT \l__jlreq_tmpa_str { before_space= } { \bool_set_true:N \l_jlreq_tmpa_bool }
- \str_if_in:NnT \l__jlreq_tmpa_str { before_space~= } { \bool_set_true:N \l_jlreq_tmpa_bool }
- \bool_if:NT \l_jlreq_tmpa_bool {\tl_put_left:Nn \l__jlreq_tmpa_tl {before_lines={},} }
- \bool_set_false:N \l_jlreq_tmpa_bool
- \str_if_in:NnT \l__jlreq_tmpa_str { after_space= } { \bool_set_true:N \l_jlreq_tmpa_bool }
- \str_if_in:NnT \l__jlreq_tmpa_str { after_space~= } { \bool_set_true:N \l_jlreq_tmpa_bool }
- \bool_if:NT \l_jlreq_tmpa_bool {\tl_put_left:Nn \l__jlreq_tmpa_tl {after_lines={},}}
- }
- }
- \cs_set:Nx \l_jlreq_do: {
- \exp_args:Nc \exp_not:o { jlreq@heading@type@#1 }
- { \exp_not:n { #1 } }
- { \exp_args:Nc \exp_not:o { jlreq@heading@level@#1 } }
- { \exp_args:Nc \exp_not:o { jlreq@heading@setting@#1 },\exp_not:V \l__jlreq_tmpa_tl }
- }
- \exp_after:wN \group_end:
- \l_jlreq_do:
-}
-% 見出し#1をマクロ#2に保存する
-\NewDocumentCommand{\SaveHeading}{ m m }{%
- \@ifundefined{jlreq@heading@setting@#1}{\ClassError{jlreq}{Unknown~heading:~#1}{\@ehc}}{}%
- \edef#2{%
- \exp_args:Nc \exp_not:o {jlreq@heading@type@#1}{\unexpanded{#1}}{\exp_args:Nc \exp_not:o {jlreq@heading@level@#1}}{\exp_args:Nc \exp_not:o {jlreq@heading@setting@#1}}%
- }%
-}
-
-\def\jlreq@keepbaselineskip#1{%
- \begingroup
- \edef\jlreq@do{\unexpanded{#1}\noexpand\baselineskip=\the\baselineskip}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\def\jlreq@HeadingType#1{%
- \ifcsname jlreq@heading@type@#1\endcsname
- \jlreq@HeadingType@{#1}{\RenewTobiraHeading}{TobiraHeading}{%
- \jlreq@HeadingType@{#1}{\RenewBlockHeading}{BlockHeading}{%
- \jlreq@HeadingType@{#1}{\RenewRuninHeading}{RuninHeading}{%
- \jlreq@HeadingType@{#1}{\RenewCutinHeading}{CutinHeading}{%
- UnknownHeading}}}}%
- \else
- UndefinedHeading%
- \fi
-}
-\def\jlreq@HeadingType@#1#2{%
- \jlreq@if{\expandafter\expandafter\expandafter\ifx\csname jlreq@heading@type@#1\endcsname#2\fi}%
-}
-
-% 全ての見出しにマクロ#1を適用する.
-\def\jlreq@heading@execmacro@toallheadings#1{%
- \seq_map_inline:Nn \l__jlreq_heading_allheadings_seq { #1{##1} }
-}
-
-\def\jlreq@clearheadingmarks#1{%
- \@ifundefined{#1mark}{}{%
- \expandafter\let\csname#1mark\endcsname=\@gobble
- }%
-}
-
-%.. カウンターの定義(見出し本体はこのファイルの末尾で)
-\setcounter{secnumdepth}{3}
-\newcounter{part}
-\str_if_eq:VnTF \jlreq@article@type { article }
- { \newcounter{section} }
- { \newcounter{chapter}\newcounter{section}[chapter] }
-\newcounter{subsection}[section]
-\newcounter{subsubsection}[subsection]
-\newcounter{paragraph}[subsubsection]
-\newcounter{subparagraph}[paragraph]
-\renewcommand*{\@seccntformat}[1]{\csname the#1\endcsname}
-
-
-%. 注
-% 文字サイズは6ポイントくらい(4.2.3.a)とりあえす\scriptsize
-%.. 合印(4.2.3)
-\newcommand*{\jlreq@referencemark@format}[1]{#1}
-\newif\ifjlreqadjustreferencemark
-\jlreqadjustreferencemarktrue
-\keys_define:nn { jlreqsetup } {
- reference_mark .choice:,
- reference_mark / inline .code:n = {
- \def\jlreq@referencemark{#1}
- \def\jlreq@notemark##1{%
- \jlreq@ifydir{%
- \hbox{}\hbox{\@textsuperscript{\normalfont\jlreq@referencemark@format{##1}}}\hbox{}%
- }{%
- \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{##1}}%
- \raise\dimexpr.5\jlreq@gol - \ht\@tempboxa\relax\box\@tempboxa
- }%
- }
- \def\jlreq@hook@prenote{\inhibitglue}
- % 後ろ側に始め括弧類(cl-01)が配置される場合を除いて,ベタ組(4.2.3,二つ目のc,三つ目のb).
- \def\jlreq@hook@postnote{\futurelet\jlreq@nextchar\jlreq@postnote@checkopenbracket}%
- \def\@tempa{}
- \def\jlreq@do##1{\jlreq@ifendmark{##1}{}{\tl_put_right:Nn \@tempa {\ifx\jlreq@tempb##11\fi}\jlreq@do}}
- \expandafter\jlreq@do\jlreq@charlist@openingbrackets\jlreq@endmark
- \edef\jlreq@postnote@checkopenbracket{%
- \unexpanded{%
- \jlreq@getfirsttoken@expandmacros{\jlreq@nextchar}{\jlreq@tempa}%
- \expandafter\let\expandafter\jlreq@tempb\jlreq@tempa
- }%
- \noexpand\jlreq@if{\noexpand\ifnum 0\exp_not:o {\@tempa}>0~\noexpand\fi}{}{\noexpand\inhibitglue}%
- }
- },
- reference_mark / interlinear .code:n = {
- \def\jlreq@referencemark{#1}
- \def\jlreq@notemark##1{{%
- \setbox\@tempboxa=\hbox{\scriptsize\jlreq@referencemark@format{##1}}%
- \@tempdima=\wd\@tempboxa
- % 行頭に来たときに頭を天にそろえる処理.
- \ifjlreqadjustreferencemark
- \jlreq@savepos@for@rest@linewidth
- \ifdim\jlreq@current@linewidth<\wd\@tempboxa
- \@tempdima=\jlreq@current@linewidth
- \fi
- \fi
- \setbox\jlreq@tempboxb=\hbox{阿}%
- \setbox\jlreq@tempboxa=\hbox to\z@{\hskip-\@tempdima\raise\dimexpr\ht\jlreq@tempboxb + \dp\@tempboxa\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\relax
- \ifnum\jlreq@lastnodechar>-1~\inhibitglue\fi
- }
- \else
- % (u)platexの時は代入すると\inhibitglueが効かなくなる
- \def\jlreq@hook@prenote{%
- \ifnum\lastnodechar>-1~\inhibitglue\fi
- \jlreq@lastnodechar=\lastnodechar\relax
- }
- \fi
- \def\jlreq@hook@postnote{\jlreq@fixjfm}
- }
-}
-% \@footnotemarkをシンプルなものにする
-\def\jlreq@setdefaultnotemark#1#2{%
- \def#1{%
- \leavevmode
- \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
- #2%
- \ifhmode\spacefactor\@x@sf\fi
- \relax}%
-}
-\jlreq@setdefaultnotemark\@footnotemark\@makefnmark
-
-%.. 脚注(4.2.5)
-% (縦書きの時は傍注,4.2.6)
-% 罫線の前は行間分,最大+文字サイズ分伸びる(4.2.5.g)
-\setlength{\skip\footins}{\dimexpr\baselineskip - 1\jlreq@gol \relax plus 1\jlreq@gol}
-% 罫線の長さは,基本版面で設定した行長にもよるが,行長の1/3くらいにする.
-\def\jlreq@footnote@rulewidth{0.333\columnwidth}
-\begingroup
- \footnotesize
- \edef\jlreq@do{
- \unexpanded{\setlength{\footnotesep}}{\the\dimexpr .7\baselineskip\relax}% 何でかわからん……
- \unexpanded{\def\footnoterule}{%
- % この罫線は,表罫(おもてけい)とする.
- \unexpanded{\hrule width \jlreq@footnote@rulewidth height \jlreq@omotekeiwidth}%
- % 脚注の行間よりやや広くする(4.2.5.f)
- \noexpand\kern\the\dimexpr 1.5\dimexpr\baselineskip - 1\jlreq@zh\relax\relax
- }
- }
-\expandafter\endgroup
-\jlreq@do
-
-\keys_define:nn { jlreqsetup } {
- footnote_indent .code:n = {
- \bool_if:nT { \legacy_if_p:n { @tate } && \dim_compare_p:n { #1 = 0pt } } {
- \jlreq@note{脚注は,一般にその前に区切りのための罫線を挿入するので,字下げは行わなくてよい(4.2.5.b).}
- }
- \def\jlreq@footnoteindent{#1}
- }
-}
-
-\keys_define:nn { jlreqsetup } {
- footnote_second_indent .code:n = {
- \legacy_if:nF { @tate }{
- \bool_if:nF {
- ( \dim_compare_p:n { 0.99\jlreq@zw < #1 } && \dim_compare_p:n { #1 < 1.01\jlreq@zw } ) ||
- ( \dim_compare_p:n { -1.01\jlreq@zw < #1 } && \dim_compare_p:n { #1 < -0.99\jlreq@zw } )
- }{\jlreq@note{脚注が2行以上となった場合,脚注の2行目以下の字下げを1行目より,脚注の文字サイズの全角アキとするか,逆に,1行目の字下げを2行目より,脚注の文字サイズの全角アキとする~(4.2.5.d).}}
- }
- % ほかからの更新があったならばこれ以上触らない.
- \jlreq@if{\ifx\jlreq@saved@@makefntext\@makefntext\fi}{
- \cs_set:Npn \@makefntext ##1 {
- \skip_if_eq:nnF { #1 } { 0pt } { \addtolength{\leftskip}{\glueexpr #1\relax} }
- % インデントの計算:脚注の長さが文字の整数倍になるように字下げする(4.2.5.b)
- \group_begin:
- \@tempdima=\dimexpr\columnwidth - \jlreq@footnoteindent\relax
- \@tempdimb=1\jlreq@zw
- \divide\@tempdima\@tempdimb \multiply\@tempdima\@tempdimb
- \cs_set:Nx \l__jlreq_do: {
- \exp_not:N \addtolength { \exp_not:N \leftskip } {\dim_eval:n { \columnwidth - \@tempdima - 0.0001pt } }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do:
- \parindent=1\jlreq@zw
- \noindent
- \hskip-\glueexpr #1\relax
- \hbox{\jlreq@referencemark@format{\@thefnmark}}%
- \hskip\glueexpr 1\jlreq@zw\relax
- ##1%
- }
- \let\jlreq@saved@@makefntext=\@makefntext
- }{}
- }
-}
-
-\keys_define:nn { jlreqsetup } { footnotetext_indent .code:n = {\ClassWarningNoLine{jlreq}{footnotetext_indent~was~removed} } }
-
-\ifx l\jlreq@engine
- \fnfixbottomtrue
-\fi
-
-% \footnoteと\footnotemarkの前後に\jlreq@hook@prenote/\jlreq@hook@postnoteを入れる
-\jlreq@saveoriginalcs{footnote}
-\jlreq@saveoriginalcs{footnotemark}
-\long\def\jlreq@footnotetext@for@footnote[#1]#2{%
- \def\jlreq@result{\footnotetext[#1]{#2}}%
-}
-\def\footnote{%
- \jlreq@footnote{\footnote}{\footnotemark}{\jlreq@footnotetext@for@footnote}%
-}
-\def\jlreq@footnote#1#2#3{%
- \jlreq@hook@prenote
- \@ifnextchar[{\jlreq@footnote@impl@woption{#1}{#2}{#3}}{\jlreq@footnote@impl@wooption{#1}{#2}{#3}}%
-}
-\def\footnotemark{%
- \jlreq@hook@prenote
- \@ifnextchar[{\jlreq@footnotemark@impl@woption}{\jlreq@footnotemark@impl@wooption}%
-}
-\long\def\jlreq@footnotemark@impl@woption[#1]{%
- \jlreq@useoriginalcs{footnotemark}[#1]%
- \jlreq@hook@postnote
-}
-\long\def\jlreq@footnotemark@impl@wooption{%
- \jlreq@useoriginalcs{footnotemark}%
- \jlreq@hook@postnote
-}
-\def\jlreq@restore@original@footnotes{%
- \let\jlreq@temporary@saved@footnote=\footnote
- \let\jlreq@temporary@saved@footnotemark=\footnotemark
- \let\jlreq@temporary@saved@footnotetext=\footnotetext
- \jlreq@restoreoriginalcs{\footnote}%
- \jlreq@restoreoriginalcs{\footnotemark}%
- \jlreq@restoreoriginalcs{\footnotetext}%
-}
-\def\jlreq@restore@jlreq@footnotes{%
- \let\footnote=\jlreq@temporary@saved@footnote
- \let\footnotemark=\jlreq@temporary@saved@footnotemark
- \let\footnotetext=\jlreq@temporary@saved@footnotetext
-}
-
-\bool_if:nTF { \legacy_if_p:n { @tate } && (\legacy_if_p:n { @twoside } || \legacy_if_p:n { @twocolumn }) }{
- % 縦組の傍注は,その見開き内に付いている合印に対応する注を,奇数ページの左端にそろえて配置する.多段組では最下段の左端にそろえて配置する.(4.2.6.a)
- % 必要ならば\footnoteを\footnotemarkと\footnotetextにわけ,\footnotetextをアウトプット時まで遅延することで実現する.
- \def\jlreq@footnote@delayfootnoteslist{}
- \def\jlreq@hook@@opcol{%
- \expandafter\gdef\expandafter\jlreq@footnote@delayfootnoteslist\expandafter{\expandafter}%
- \jlreq@footnote@delayfootnoteslist
- }
- \tl_put_left:Nn \@opcol{\jlreq@hook@@opcol}
- % \jlreq@footnote@delayfootnote@delay#1#2:#1ページ目に#2を出す
- % \jlreq@footnote@delayfootnote@page:何ページ目に\footnotetextを入れるかを\jlreq@resultcntに入れる.その場での場合は-1.
- \if@twocolumn
- \if@twoside
- \def\jlreq@footnote@delayfootnote@page{%
- \jlreq@setcurrentpage
- \jlreq@resultcnt=\numexpr\jlreq@currentpage\ifodd\jlreq@currentpage\else + 1\fi\relax
- % このページに表示&上の段処理済みだと\output内では間に合わない
- \ifnum\jlreq@resultcnt=\value{page}\if@firstcolumn\else\jlreq@resultcnt=-1~\fi\fi
- }
- \else
- \def\jlreq@footnote@delayfootnote@page{%
- \jlreq@setcurrentpage
- \jlreq@resultcnt=\numexpr\jlreq@currentpage\relax
- \ifnum\jlreq@resultcnt=\value{page}\if@firstcolumn\else\jlreq@resultcnt=-1~\fi\fi
- }
- \fi
- \long\def\jlreq@footnote@delayfootnote@delay#1#2{%
- % 二段組みの場合は上段を組んだ直後に\footnotetextを挿入(そのページの下段に入る)
- \jlreq@if{\ifnum 0\if@firstcolumn\else 1\fi\ifnum#1>\value{page}1\fi>0~\fi}{%
- \tl_gput_right:Nx \jlreq@footnote@delayfootnoteslist {\exp_not:n { \jlreq@footnote@delayfootnote{#1}{#2} } }
- }{#2}%
- }
- \else
- \def\jlreq@footnote@delayfootnote@page{%
- \jlreq@setcurrentpage
- \jlreq@if{\ifodd\jlreq@currentpage\relax\fi}{%
- \jlreq@resultcnt=-1
- }{%
- \jlreq@resultcnt=\numexpr\jlreq@currentpage+1\relax
- }%
- }
- \long\def\jlreq@footnote@delayfootnote@delay#1#2{%
- % 一段組の場合はその前のページを組んだ直後に\footnotetextを挿入.
- \jlreq@if{\ifnum\numexpr#1 - 1\relax>\value{page}~\fi}{%
- \tl_gput_right:Nx \jlreq@footnote@delayfootnoteslist { \exp_not:n {\jlreq@footnote@delayfootnote{#1}{#2} } }
- }{#2}%
- }
- \fi
- \long\def\jlreq@footnote@delayfootnote@immediate#1#2{%
- \jlreq@if{\ifnum #1<\jlreq@currentpage\relax\fi}{%
- \tl_gput_right:Nx \jlreq@footnote@delayfootnoteslist{ \exp_not:n { \jlreq@footnote@delayfootnote{#1}{#2} } }
- }{#2}%
- }
- \let\jlreq@footnote@delayfootnote=\jlreq@footnote@delayfootnote@delay
- \def\jlreq@footnote@flushdelayfootnoteslist{%
- \jlreq@if{\ifx\jlreq@footnote@delayfootnoteslist\@empty\fi}{}{%
- \let\jlreq@footnote@delayfootnote=\jlreq@footnote@delayfootnote@immediate
- \jlreq@setcurrentpage
- \expandafter\gdef\expandafter\jlreq@footnote@delayfootnoteslist\expandafter{\expandafter}%
- \jlreq@footnote@delayfootnoteslist
- \let\jlreq@footnote@delayfootnote=\jlreq@footnote@delayfootnote@delay
- }%
- }
- \AtEndDocument{\jlreq@footnote@flushdelayfootnoteslist}
- \tl_put_left:Nn \newpage {\jlreq@footnote@flushdelayfootnoteslist}
- \long\def\jlreq@footnote@impl@woption#1#2#3[#4]#5{%
- \jlreq@footnote@delayfootnote@page
- \begingroup
- \edef\jlreq@do{\unexpanded{%
- \jlreq@restore@original@footnotes
- \def\jlreq@result{}#2[#4]\jlreq@result
- \def\jlreq@result{}#3[#4]{#5}%
- \jlreq@restore@jlreq@footnotes}%
- \int_compare:nTF { \jlreq@resultcnt=-1 }{\noexpand\jlreq@result}{\unexpanded{%
- \tl_gput_right:Nx \jlreq@footnote@delayfootnoteslist {%
- \noexpand\jlreq@footnote@delayfootnote{\the\jlreq@resultcnt}{%
- \noexpand\jlreq@restore@original@footnotes
- \exp_not:o {\jlreq@result}%
- \noexpand\jlreq@restore@jlreq@footnotes
- }%
- }%
- }}%
- }%
- \expandafter\endgroup\jlreq@do
- \jlreq@hook@postnote
- }
- \long\def\jlreq@footnote@impl@wooption#1#2#3#4{%
- \jlreq@footnote@delayfootnote@page
- \begingroup
- \stepcounter{footnote}%
- \edef\jlreq@do{%
- \unexpanded{\def\jlreq@result{}#2}[\the\value{footnote}]\noexpand\jlreq@result
- \unexpanded{\def\jlreq@result{}#3}[\the\value{footnote}]\unexpanded{{#4}}%
- \jlreq@if{\ifnum\jlreq@resultcnt=-1~\fi}{\noexpand\jlreq@result}{\unexpanded{%
- \tl_gput_right:Nx \jlreq@footnote@delayfootnoteslist {%
- \noexpand\jlreq@footnote@delayfootnote{\the\jlreq@resultcnt}{%
- \noexpand\jlreq@restore@original@footnotes
- \exp_not:o {\jlreq@result}%
- \noexpand\jlreq@restore@jlreq@footnotes
- }%
- }%
- }}%
- }%
- \expandafter\endgroup\jlreq@do
- \jlreq@hook@postnote
- }
-}{
- \long\def\jlreq@footnote@impl@woption#1#2#3[#4]#5{%
- \jlreq@restore@original@footnotes
- #1[#4]{#5}%
- \jlreq@restore@jlreq@footnotes
- \jlreq@hook@postnote
- }
- \long\def\jlreq@footnote@impl@wooption#1#2#3#4{%
- \jlreq@restore@original@footnotes
- #1{#4}%
- \jlreq@restore@jlreq@footnotes
- \jlreq@hook@postnote
- }
-}
-
-% 合印
-\renewcommand*{\@makefnmark}{%
- \jlreq@ifydir{\jlreq@notemark{\@thefnmark}}{\hbox{\jlreq@notemark{\@thefnmark}}}%
-}
-% 4.2.2注3
-\legacy_if:nTF { @tate } {
- \renewcommand*{\thefootnote}{\jlreq@open@bracket@before@space\inhibitglue(\tatechuyoko*{\@arabic\c@footnote})\inhibitglue}
-}{
- \renewcommand*{\thefootnote}{\arabic{footnote}\hbox{})\inhibitglue}
-}
-\str_if_eq:VnF \jlreq@article@type { article } { \@addtoreset{footnote}{chapter} }
-
-
-%.. 後注(4.2.4)
-\def\jlreq@endnotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名
-\keys_define:nn { jlreqsetup } { endnote_counter .tl_set:N = \jlreq@endnotecounter }
-\keys_set:nn { jlreqsetup } { endnote_counter = footnote }
-% 文字サイズは\footnotesizeを使う
-\newdimen\jlreq@endnote@prepostspace
-% 前の分との間は行間分空ける(4.2.4.f)
-\jlreq@endnote@prepostspace=\dimexpr\baselineskip - 1\jlreq@gol\relax
-\newdimen\jlreq@endnote@indent
-% 現在の後注一覧を,\jlreq@endnote@textsに{{合印1}{後注1}}{{合印2}{後注2}}...の形で保持する
-\def\jlreq@endnote@texts{}
-\long\def\jlreq@endnote@addtext#1#2{\tl_gput_right:Nx \jlreq@endnote@texts { \exp_not:n {{{#1}{#2}}} } }
-% \endnote自身は後で定義する
-\NewDocumentCommand { \endnotemark }{ O{} } {
- \jlreq@hook@prenote
- \jlreq@endnotemark{#1}
- \jlreq@hook@postnote
-}
-\NewDocumentCommand { \endnotetext } { O{} +m } { \jlreq@endnotetext{#1}{#2} }
-\long\def\jlreq@endnote#1#2{
- \jlreq@hook@prenote
- \jlreq@endnotemark{#1}\@endnotetext{#2}
- \jlreq@hook@postnote
-}
-\def\jlreq@endnotemark#1{%
- \jlreq@ifempty{#1}{%
- \stepcounter{\jlreq@endnotecounter}%
- \expandafter\protected@xdef\csname\jlreq@endnotemarkname\endcsname{\csname the\jlreq@endnotecounter\endcsname}%
- }{%
- \begingroup
- \csname c@\jlreq@endnotecounter\endcsname #1\relax
- \expandafter\unrestored@protected@xdef\csname\jlreq@endnotemarkname\endcsname{\csname the\jlreq@endnotecounter\endcsname}%
- \endgroup
- }%
- \@endnotemark
-}
-\jlreq@setdefaultnotemark\@endnotemark\@makeendmark
-\long\def\jlreq@endnotetext#1#2{%
- \jlreq@ifempty{#1}{%
- \expandafter\protected@xdef\csname\jlreq@endnotemarkname\endcsname{\csname the\jlreq@endnotecounter\endcsname}%
- }{%
- \begingroup
- \csname c@\jlreq@endnotecounter\endcsname #1\relax
- \expandafter\unrestored@protected@xdef\csname\jlreq@endnotemarkname\endcsname{\csname the\jlreq@endnotecounter\endcsname}%
- \endgroup
- }%
- \@endnotetext{#2}%
-}
-\long\def\@endnotetext#1{%
- \expandafter\let\expandafter\jlreq@tempa\expandafter=\csname\jlreq@endnotemarkname\endcsname
- \expandafter\jlreq@endnote@addtext\expandafter{\jlreq@tempa}{#1}%
-}
-\long\def\jlreq@theendnotes#1{%
- \jlreq@ifendmark{#1}{}{%
- \jlreq@output@endnotes#1
- \jlreq@theendnotes
- }%
-}
-\long\def\jlreq@output@endnotes#1#2{%
- \expandafter\def\csname\jlreq@endnotemarkname\endcsname{#1}%
- \item\@makeendtext{#2}%
-}
-
-\newcommand*{\theendnotes}{%
- \ifx\jlreq@endnote@texts\@empty\else
- \let\jlreq@tempa=\jlreq@endnote@texts
- \gdef\jlreq@endnote@texts{}%
- \edef\jlreq@endnote@beforeafterspace{\the\dimexpr\baselineskip - 1\jlreq@gol\relax plus \the\dimexpr 1\jlreq@gol\relax}%
- \begingroup
- \par
- \footnotesize
- % 後注の長さを文字サイズの整数倍にする(4.2.4.b)
- \jlreq@tempdima=\dimexpr\linewidth - \jlreq@endnote@indent - \leftskip\relax
- \@tempdimb=1\jlreq@mol
- \divide\jlreq@tempdima\@tempdimb\multiply\jlreq@tempdima\@tempdimb
- \begin{list}{}{%
- \itemsep=0pt\relax
- \parsep=0pt\relax
- \partopsep=0pt\relax
- \topsep=0pt\relax
- \leftmargin=\dimexpr\linewidth - \jlreq@tempdima + \jlreq@endnote@second@indent\relax
- \itemindent=-\glueexpr\jlreq@endnote@second@indent\relax
- \topsep=\jlreq@endnote@beforeafterspace\relax
- \listparindent=1\jlreq@zw
- }%
- \expandafter\jlreq@theendnotes\jlreq@tempa\jlreq@endmark
- \end{list}%
- \endgroup
- \par
- \fi
-}
-% 4.2.4.b
-\jlreq@endnote@indent=2\jlreq@mol
-\keys_define:nn { jlreqsetup } {
- endnote_second_indent .code:n = {
- \def\jlreq@endnote@second@indent{#1}
- \bool_if:nTF {
- ( \dim_compare_p:n { 0.99\jlreq@zw < #1 } && \dim_compare_p:n { #1 < 1.01\jlreq@zw } ) ||
- ( \dim_compare_p:n { 1.99\jlreq@zw < #1 } && \dim_compare_p:n { #1 < 2.01\jlreq@zw } )
- } {} {
- \jlreq@note{後注が2行以上となった場合,後注の2行目以下の字下げは,1行目より,後注の文字サイズの2倍又は全角とする (4.2.4.d).}
- }
- }
-}
-\newcommand{\@makeendtext}[1]{%
- \csname\jlreq@endnotemarkname\endcsname
- \hskip\glueexpr1\jlreq@zw\relax% 見出し出力と一文字分の空き(4.2.4.c)
- #1%
-}
-\let\@makeendmark=\@makefnmark
-
-\cs_new:Nn \g__jlreq_endnote_hook_beforeheading:n {}
-\apptocmd \g__jlreq_hook_beforeheading:n { \g__jlreq_endnote_hook_beforeheading:n {#1} }{}{
- \ClassWarningNoLine { jlreq } { `\string\apptocmd`~to~`\string\g__jlreq_hook_beforeheading:n`~failed,~maybe~a~bug}
-}
-% \theendnoteの出力を仕込む
-\keys_define:nn { jlreqsetup } {
- endnote_position .code:n = {
- \jlreq@tempafalse % headingsが指定された
- \jlreq@tempbfalse % paragraphが指定された
- % \jlreq@tempcにセクション名たちを入れていく
- \seq_clear:N \l__jlreq_tmpa_seq
- \clist_map_variable:nNn {#1} \jlreq@tempa {
- \tl_set:Nx \@tempa { \tl_trim_spaces:o \@tempa }
- \str_case_e:nnF {\jlreq@tempa} {
- {headings}{\jlreq@tempatrue}
- {paragraph}{
- \jlreq@tempatrue% _paragraphの時は_headingsも有効にする
- \jlreq@tempbtrue
- }
- }{
- \str_if_eq:eeTF { \str_head:N \jlreq@tempa } {_} {
- \seq_put_left:Nx \l__jlreq_tmpa_seq { \tl_tail:N \jlreq@tempa }
- }{
- \ClassError{jlreq}{Invalid~value~\jlreq@tempa\space in~endnote_position}{\@ehc}
- }
- }
- }
-
- \ifjlreq@tempb
- \DeclareDocumentCommand { \endnote } { O{} +m } {
- \def\par{\@restorepar\theendnotes\par}
- \jlreq@endnote{##1}{##2}
- }
- \else
- \DeclareDocumentCommand { \endnote } { O{} +m } {
- \jlreq@endnote{##1}{##2}
- }
- \fi
-
- \ifjlreq@tempa
- \cs_set:Nn \g__jlreq_endnote_hook_beforeheading:n {\theendnotes}
- \else
- \tl_set:Nn \l__jlreq_tmpa_tl {}
- \seq_map_inline:Nn \l__jlreq_tmpa_seq {
- \tl_if_empty:nF {##1} {
- \tl_put_right:Nn \l__jlreq_tmpa_tl { {##1} {\theendnotes} }
- }
- }
- \cs_set:Nx \g__jlreq_endnote_hook_beforeheading:n {
- \exp_not:N \str_case:nn { ##1 } { \exp_not:o { \l__jlreq_tmpa_tl } }
- }
- \fi
- }
-}
-\AtEndDocument{\theendnotes}
-
-
-% (1) \footnoteとかと同じ形式 sidenote_type=number
-% (2) 文中にマークを入れて,傍注には見出しが入る sidenote_type=symbol
-% (3) 文中は強調文字列,傍注には見出しが入る sidenote_type=symbol
-% (4) 文中は何も無し,傍注には見出しが入る sidenote_type=symbol
-
-% (1) では\sidenote[]{}を定義
-% (2) では\sidenote{見出し}{注中身}を定義
-% sidenote_length>0ptの時のみ定義する
-\dim_compare:nT { \jlreq@sidenote@length > 0pt } {
- \def\jlreq@sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名
- \long\def\@sidenotetext#1{%
- \marginpar{\reset@font\footnotesize
- \color@begingroup\normalcolor
- \@makesidetext{#1}%
- \color@endgroup
- }%
- }
- \jlreq@setdefaultnotemark\@sidenotemark\@makesidemark
- \keys_define:nn { jlreqsetup } {
- sidenote_type .choices:nn = { number, symbol } { \def\jlreq@sidenote@type{#1} },
- sidenote_counter .tl_set:N = \jlreq@sidenotecounter
- }
- \keys_set:nn { jlreqsetup } { sidenote_type = number, sidenote_counter = footnote}
- \__jlreq_jlreqsetup_addtofinally:n {
- \str_if_eq:VnT \jlreq@sidenote@type { number } {
- \DeclareDocumentCommand { \sidenote } { O{} +m } {
- \jlreq@hook@prenote
- \jlreq@sidenote{#1}{#2}
- \jlreq@hook@postnote
- }
- \DeclareDocumentCommand { \sidenotemark } { O{} } {
- \jlreq@hook@prenote
- \jlreq@sidenotemark{#1}
- \jlreq@hook@postnote
- }
- \DeclareDocumentCommand { \sidenotetext } { O{} +m } { \jlreq@sidenotetext{#1}{#2} }
- \long\def\jlreq@sidenote#1#2{\jlreq@sidenotemark{#1}\@sidenotetext{#2}}
- \def\jlreq@sidenotemark#1{%
- \tl_if_empty:nTF{#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{%
- \tl_if_empty:nTF{#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
- \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@zw\csname\jlreq@sidenotemarkname\endcsname\hspace{0.5\jlreq@mol}#1}
- \fi
- \let\@makesidemark=\@makefnmark
- }
- \str_if_eq:VnT \jlreq@sidenote@type { symbol } {% sidenote_type = symbol
- \DeclareDocumentCommand { \sidenote } { m +m } { \jlreq@sidenote{#1}{#2} }
- \DeclareDocumentCommand { \sidenotemark } { m } { \jlreq@sidenotemark{#1} }
- \DeclareDocumentCommand { \sidenotetext } { m +m } { \jlreq@sidenotetext{#1}{#2} }
- \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\exp_not:c {\jlreq@sidenotemarkname}{\exp_not:o {\jlreq@sidenote@defaultmark}}%
- \noexpand\@sidenotemark
- \fi
- }
- % カスタマイズできるべき?
- \long\def\jlreq@sidenotetext#1#2{%
- \expandafter\def\csname\jlreq@sidenotemarkname\endcsname{\inhibitglue\null{\reset@font\sffamily\gtfamily\bfseries\inhibitglue #1}}%
- \@sidenotetext{#2}%
- }
- \long\def\@makesidetext#1{{\sffamily\gtfamily\bfseries\csname\jlreq@sidenotemarkname\endcsname}\hspace*{1\jlreq@mol}#1}
- \let\@makesidemark=\@makefnmark
- }
- }
- \keys_define:nn { jlreqsetup } {
- sidenote_symbol .tl_set:N = \jlreq@sidenote@defaultmark,
- sidenote_keyword_font .tl_set:N = \jlreq@sidenote@keywordfont
- }
-}
-
-%.. 割注(3.4)
-\def\inlinenotesize{.6\jlreq@jafontsize} % 割注の文字サイズ
-\let\jlreq@inlinenote@autolinebreak=\\% 計測時は\linebreakより\\の方が安定する.悩ましい…….
-
-\def\jlreq@inlinenote@kakkofontsize{%
- \fontsize{\dimexpr\inlinenotesize * 2\relax}{\dimexpr \inlinenotesize * 2\relax}%
- \selectfont
-}
-
-\def\jlreq@inlinenote@fontsize{%
- \fontsize{\inlinenotesize}{\inlinenotesize}%
- \selectfont
-}
-
-% 割注を入れるための命令.\inlinenote{割注}で使う.
-% 改行位置は自動で計算されるが,常に正しいとは限らない.
-% \inlinenote*は自動で改行されない.\\で改行位置を指定する.
-\newif\ifjlreq@in@inlinenote
-\jlreq@in@inlinenotefalse
-\NewDocumentCommand{\inlinenote}{ s m } {
- \ifjlreq@in@inlinenote\ClassError{jlreq}{\string\inlinenote\space can't~be~nested}{\@ehc}\fi
- \jlreq@in@inlinenotetrue
- \ifvmode\leavevmode\fi
- \IfBooleanTF {#1} { \jlreq@inlinenote@noauto {#2} } { \jlreq@inlinenote@auto {#2} }
-}
-\NewDocumentCommand{\warichu}{ s m } {
- \ifjlreq@in@inlinenote\ClassError{jlreq}{\string\warichu\space can't~be~nested}{\@ehc}\fi
- \jlreq@in@inlinenotetrue
- \ifvmode\leavevmode\fi
- \IfBooleanTF {#1} { \jlreq@inlinenote@noauto {#2} } { \jlreq@inlinenote@auto {#2} }
-}
-\keys_define:nn { jlreqsetup } {
- warichu_opening .code:n = {
- \tl_set:Nn \l__jlreq_tmpa_tl {}
- \str_set:Nx \l__jlreq_tmpa_str { \tl_to_str:n {#1} }
- \str_set:Nx \l__jlreq_tmpa_str { \str_head:N \l__jlreq_tmpa_str }
- \tl_map_inline:Nn \jlreq@charlist@openingbrackets {
- \str_if_eq:eeT { \l__jlreq_tmpa_str } { \tl_to_str:n {##1} } {
- \tl_set:Nn \l__jlreq_tmpa_tl { \jlreq@open@bracket@before@space }
- }
- }
- \edef\jlreq@warichu@opening{\expandonce{\l__jlreq_tmpa_tl}\unexpanded{#1}}
- },
- warichu_closing .tl_set:N = \jlreq@warichu@closing
-}
-\keys_set:nn { jlreqsetup } { warichu_opening = {(}, warichu_closing = {)} }
-
-\def\jlreq@inlinenote@auto#1{%
- % 割注初め括弧の前の場所を保存
- \jlreq@savepos@for@rest@linewidth
- % \jlreq@tempdimbに,現在行の残り長さを入れる
- \jlreq@tempdimb=\jlreq@rest@linewidth
- % 括弧の分を引いたものが,割注の使える長さ
- \setbox\@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize\inhibitglue\jlreq@warichu@opening\inhibitglue}%
- \addtolength{\jlreq@tempdimb}{-\wd\@tempboxa}%
- \ifdim\jlreq@tempdimb<0pt\jlreq@tempdimb=\linewidth\fi
- {%
- \setbox\jlreq@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize\inhibitglue\jlreq@warichu@opening}%
- \jlreq@box@putcenter\jlreq@tempboxa
- }%
- % 「初回」時はここに強制改行を入れる.これにより現在位置の取得がより正しくなる……といいなぁ
- \jlreq@savepos@iflabelundefined{\\}{}%
- % 割注内の\baselineskipを保存(後で使う).
- {\jlreq@inlinenote@fontsize\xdef\jlreq@inlinenote@baselineskip{\the\baselineskip}}%
- % 普通に並べた長さを計測し,その半分から始める
- \setbox\@tempboxa=\hbox{\jlreq@inlinenote@fontsize #1}%
- \jlreq@tempdimc=\wd\@tempboxa
- \divide\jlreq@tempdimc by 2\relax
- % \@tempcntbに,この長さで計測した場合の行数を入れる
- \ifdim\jlreq@tempdimc<\jlreq@tempdimb\@tempcntb=2\relax
- \else
- \jlreq@tempdima=\dimexpr\jlreq@tempdimc - \jlreq@tempdimb\relax
- \divide\jlreq@tempdima\linewidth
- \@tempcntb=\numexpr 2*\number\jlreq@tempdima + 4\relax
- \fi
- % \jlreq@parshapeargに\parshapeに指定する書式の最後以外を入れる.
- \ifnum\@tempcntb>2\relax
- \edef\jlreq@parshapearg{0pt~\the\jlreq@tempdimb\space 0pt~\the\jlreq@tempdimb}%
- \@tempcnta=4\relax
- \@whilenum\@tempcnta<\@tempcntb\do{%
- \edef\jlreq@parshapearg{\jlreq@parshapearg\space 0pt~\the\linewidth\space 0pt~\the\linewidth}%
- \advance\@tempcnta by 2\relax
- }%
- \setlength{\jlreq@tempdimc}{\dimexpr\jlreq@tempdimc - \jlreq@tempdimb - \linewidth * \numexpr(\@tempcntb - 4)/2\relax\relax}%
- \else
- \def\jlreq@parshapearg{}%
- \fi
- % 行数を伸ばしつつ良いところを探していく
- \@whilenum\@tempcntb<1001\do{%
- \ifnum\@tempcntb>2\jlreq@tempdimb=\linewidth\fi
- \edef\@tempb{\the\@tempcntb}%
- \jlreq@inlinenote@determinelength{#1}{\jlreq@inlinenote@fontsize}{\jlreq@parshapearg}{2}{\@tempb}{\jlreq@tempdimc}{\jlreq@tempdimb}%
- \@tempcntb=\@tempb
- \ifnum\@tempcntb>999\relax% ループが長すぎる
- \global\setbox\jlreq@resultbox=\voidb@x%
- \@tempcntb=1001\relax
- \fi
- \ifvoid\jlreq@resultbox\else% 成功
- \edef\jlreq@inlinenote@lines{\the\@tempcntb}% 行数を保存
- \@tempcntb=1001\relax
- \fi
- \advance\@tempcntb by 2\relax
- \edef\jlreq@parshapearg{\jlreq@parshapearg~0pt~\the\jlreq@tempdimb~0pt~\the\jlreq@tempdimb}%
- }%
- \ifvoid\jlreq@resultbox
- \ClassWarning{jlreq}{\string\warichu\space failed,~may~be~a~bug}%
- \else
- \@tempcnta=0
- \splittopskip=0pt\relax
- \splitmaxdepth=\maxdimen
- % 現在行の残り長さを思い出す
- \jlreq@tempdimb=\jlreq@rest@linewidth
- \setbox\@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize\inhibitglue\jlreq@warichu@opening\inhibitglue}%
- \addtolength{\jlreq@tempdimb}{-\wd\@tempboxa}%
- \setbox\@tempboxa=\box\jlreq@resultbox
- \@whilenum\@tempcnta<\jlreq@inlinenote@lines\do{%
- \int_compare:nT { \@tempcnta > 0 } { \jlreq@inlinenote@autolinebreak }
- % \jlreq@tempdimaに今の行の長さを入れる
- \ifnum\@tempcnta<\numexpr\jlreq@inlinenote@lines - 2\relax
- \ifnum\@tempcnta=0\jlreq@tempdima=\jlreq@tempdimb
- \else\jlreq@tempdima=\linewidth\fi
- \else
- % 最終行は自然長に任せる
- \jlreq@tempdima=-1pt\relax
- \fi
- {%
- \edef\@tempa{\the\vbadness}%
- \vbadness=10000
- \setbox\jlreq@tempboxa=\vsplit\@tempboxa to \dimexpr\jlreq@inlinenote@baselineskip*2\relax
- \vbadness=\@tempa\relax
- \jlreq@getlastbox{\jlreq@tempboxa}%
- \setbox\jlreq@tempboxb=\box\jlreq@resultbox
- \jlreq@getlastbox{\jlreq@tempboxa}%
- \setbox\jlreq@tempboxa=\box\jlreq@resultbox
- \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
- }%
- \advance\@tempcnta by 2\relax
- }%
- \fi
- \jlreq@inlinenote@endnote
-}
-
-\def\jlreq@inlinenote@noauto#1{%
- \setbox\jlreq@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize\inhibitglue\jlreq@warichu@opening}%
- \inhibitglue\jlreq@box@putcenter\jlreq@tempboxa
- \jlreq@inlinenote@noauto@#1\\\jlreq@endmark\jlreq@endmark
- \jlreq@inlinenote@endnote
-}
-
-\def\jlreq@inlinenote@noauto@#1\\#2#3\jlreq@endmark{%
- \jlreq@inlinenote@noauto@@#1&\jlreq@endmark\jlreq@endmark
- \jlreq@ifendmark{#2}{}{\linebreak\jlreq@inlinenote@noauto@#2#3\jlreq@endmark}%
-}
-
-\def\jlreq@inlinenote@noauto@@#1&#2#3\jlreq@endmark{%
- \jlreq@ifendmark{#2}{%
- \setbox\@tempboxa=\hbox{\jlreq@inlinenote@fontsize #1}%
- \jlreq@tempdimc=\wd\@tempboxa
- \divide\jlreq@tempdimc by 2\relax
- \jlreq@inlinenote@determinelength{#1}{\jlreq@inlinenote@fontsize}{}{2}{2}{\jlreq@tempdimc}{\maxdimen}%
- \ifvoid\jlreq@resultbox\else
- {%
- \setbox\jlreq@tempboxa=\hbox{\jlreq@inlinenote@fontsize\box\jlreq@resultbox}%
- \jlreq@box@putcenter\jlreq@tempboxa
- }%
- \fi
- \def\jlreq@next{}%
- }{%
- \def\jlreq@next{\jlreq@inlinenote@noauto@@@{#1}#2#3}%
- }%
- \jlreq@next
-}
-
-\def\jlreq@inlinenote@noauto@@@#1#2&\jlreq@endmark{%
- \setbox\@tempboxa=\hbox{\jlreq@inlinenote@fontsize\vbox{\hbox{#1}\hbox{#2}}}%
- \jlreq@box@putcenter\@tempboxa
-}
-
-\def\jlreq@inlinenote@endnote{%
- \jlreq@in@inlinenotefalse
- {%
- \setbox\jlreq@tempboxa=\hbox{\jlreq@inlinenote@kakkofontsize\inhibitglue\jlreq@warichu@closing}%
- \jlreq@box@putcenter\jlreq@tempboxa
- \inhibitglue
- }%
-}
-
-% \jlreq@inlinenote@determinelength{テキスト(1)}{フォントとか指定(2)}{\parshape指定(3)}{調整に使う行数(4)}{成功行数(5)}{最小長さ(6)}{最大長さ(7)}
-% 次を満たす長さXの最小値を求める(ただし#6 <= X <= #7)
-% #1を
-% * #5 - #4行目までは#3の指定に従う
-% * それ以降はX
-% として整形した際に,#5行以内に収まる.
-% \jlreq@resultboxに整形結果を返す(垂直ボックス).見つからなかったらvoid.\globalに設定する.
-\def\jlreq@inlinenote@determinelength#1#2#3#4#5#6#7{%
- \begingroup
- % \message{#1 の試行開始,行数 = #5, \the\dimexpr#6\relax から \the\dimexpr#7\relaxまで}%
- \@tempcnta=1\relax
- \def\@tempa{}%
- % 調整に使う行の\parshape指定を\@tempaに入れる.長さは\jlreq@tempdima.
- \@whilenum\@tempcnta<#4\do{%
- \expandafter\def\expandafter\@tempa\expandafter{\@tempa 0pt~\the\jlreq@tempdima}%
- \advance\@tempcnta by 1\relax
- }%
- \@tempcnta=0
- \jlreq@tempdima=#6\relax
- % \jlreq@tempdimaを少しずつ伸ばしていく
- \@whilenum\@tempcnta<1000\do{%
- \ifnum\@tempcnta>999\relax% ループが長すぎる
- \global\setbox\jlreq@resultbox=\voidb@x%
- \@tempcnta=1001\relax
- \else
- \setbox\@tempboxa=\vbox{#2%
- \vbadness=10000\hbadness=10000\vfuzz=\maxdimen\hfuzz=\maxdimen
- \parindent=0pt\leftskip=0pt\rightskip=0pt
- \parshape #5~#3~\@tempa 0pt~\the\maxdimen
- #1\par\global\@tempcntb=\prevgraf}%
- % \message{\string\jlreq@tempdima = \the\jlreq@tempdima で試行,行数は\the\@tempcntb , 書式 #5 #3 \@tempa 0pt \the\maxdimen}%
- \fi
- \jlreq@getlastbox{\@tempboxa}%
- \setbox\jlreq@tempboxa=\box\jlreq@resultbox
- \ifnum\@tempcntb<#5\relax% 行数が達していないならOK
- % \message{行数 = \the\@tempcntb により確定}
- % #5行になるまで空の水平ボックスを加えていく.
- \global\setbox\jlreq@resultbox=\vbox{#2%
- \unvbox\@tempboxa\hbox{\unhbox\jlreq@tempboxa\unskip\unskip\unpenalty}%
- \@whilenum\@tempcntb<#5\do{\hbox{}\advance\@tempcntb by 1}}%
- \@tempcnta=1001\relax
- \else
- % そうでない場合は最後の二行の長さを比較する
- \jlreq@getlastbox{\@tempboxa}%
- \setbox\jlreq@tempboxb=\box\jlreq@resultbox
- % \message{最終行の長さ \the\wd\jlreq@tempboxa, その前の長さ \the\wd\jlreq@tempboxb}%
- \ifdim\wd\jlreq@tempboxa>\wd\jlreq@tempboxb
- \advance\jlreq@tempdima by 0.3pt\relax% 0.3ptに意味はない
- \else
- % 後ろが短いのでOK
- \global\setbox\jlreq@resultbox=\vbox{#2\unvbox\@tempboxa\box\jlreq@tempboxb\box\jlreq@tempboxa}%
- \jlreq@resultdimen=\jlreq@tempdima
- \@tempcnta=1001\relax
- \fi
- \fi
- \ifdim\jlreq@tempdima>#7\relax
- \global\setbox\jlreq@resultbox=\box\voidb@x
- \@tempcnta=1001\relax
- \fi
- \advance\@tempcnta by 1\relax
- }%
- \endgroup
-}
-
-%. ページスタイル.
-% メモ:
-% 2.6.1.cの後半が前半と整合的でないように見える……
-% 柱:両柱と片柱(2.6.3)
-\@tempdima=\jlreq@speciallength{\jlreq@headfoot@sidemargin}
-\bool_if:nTF {
- \dim_compare_p:n { \@tempdima = 0pt } ||
- ( \dim_compare_p:n { 0.99\jlreq@zw < \@tempdima } && \dim_compare_p:n { \@tempdima < 1.01\jlreq@zw} )
-} {} {
- \jlreq@note{ノンブルまたは柱は,基本版面の左右にそろえるか,全角アキだけ寄せた位置に配置する (2.6.1.b).}
-}
-
-%.. 場所指定解析
-% bottom-leftみたいなのを解釈する.入力の順番はどっちでも良いが,出力は<top/bottom><left/right>の順番
-% #1 = bottom-leftみたいなのを{bottom}{left}に変換し,#2に代入,#3はデフォルト値,出力形式で入れる
-\def\jlreq@pagestyle@parse@position#1#2#3{%
- \jlreq@ifempty{#1}{\def#2{#3}}%
- {%
- \begingroup
- \jlreq@pagestyle@parse@position@#1-\jlreq@endmark
- \str_if_eq:VnTF \jlreq@tempa { fore } {
- \expandafter\jlreq@pagestyle@parse@position@\jlreq@tempb-\jlreq@endmark
- \str_if_eq:VnTF \jlreq@tempa { edge } {
- \def\jlreq@tempa{fore-edge}%
- }{%
- \ClassError{jlreq}{Invalid~position:~fore-\jlreq@tempa}{\@ehc}%
- }%
- }{}%
- % \jlreq@tempcに縦方向を,\jlreq@tempdに横方向を入れる
- \def\jlreq@tempc{}\def\jlreq@tempd{}%
- \jlreq@pagestyle@parse@position@@{\jlreq@tempa}%
- \jlreq@pagestyle@parse@position@@{\jlreq@tempb}%
- \ifx\jlreq@tempc\@empty\edef\jlreq@tempc{\expandafter\@firstoftwo#3}\fi
- \ifx\jlreq@tempd\@empty\edef\jlreq@tempd{\expandafter\@secondoftwo#3}\fi
- \edef\jlreq@do{\unexpanded{\def#2}{{\jlreq@tempc}{\jlreq@tempd}}}%
- \expandafter\endgroup
- \jlreq@do
- }%
-}
-
-\def\jlreq@pagestyle@parse@position@#1-#2\jlreq@endmark{%
- \def\jlreq@tempa{#1}\def\jlreq@tempb{#2}%
- \jlreq@ifempty{#2}{%
- \ifx\jlreq@tempb\@empty\ClassError{jlreq}{Invalid~position:~#1}{\@ehc}\fi
- }{%
- \def\@tempa##1-\jlreq@endmark{\def\jlreq@tempb{##1}}%
- \@tempa#2\jlreq@endmark\relax
- }%
-}
-
-\def\jlreq@pagestyle@parse@position@@#1{%
- \str_case_e:nnF { #1 } {
- {top}{\def\jlreq@tempc{#1}}
- {bottom}{\def\jlreq@tempc{#1}}
- {left}{\def\jlreq@tempd{#1}}
- {right}{\def\jlreq@tempd{#1}}
- {center}{\def\jlreq@tempd{#1}}
- {gutter}{\if@tate\def\jlreq@tempd{right}\else\def\jlreq@tempd{left}\fi}
- {fore_edge}{\if@tate\def\jlreq@tempd{left}\else\def\jlreq@tempd{right}\fi}
- {fore-edge}{\if@tate\def\jlreq@tempd{left}\else\def\jlreq@tempd{right}\fi}
- }{\ClassError{jlreq}{Invalid~position:~#1}{\@ehc}}
-}
-
-% レベル#1より低いレベルの見出しの**markを\markboth{}{}にする
-\def\jlreq@pagestyle@setclearmark#1{%
- \seq_map_inline:Nn \l__jlreq_heading_allheadings_seq {
- \@ifundefined{##1}{}{%
- \@ifundefined{jlreq@heading@level@##1}{}{%
- \ifnum\csname jlreq@heading@level@##1\endcsname<#1\relax\expandafter\def\csname##1 mark\endcsname####1{\markboth{}{}}\fi
- }%
- }%
- }%
-}
-
-%.. マークの拡張
-\def\jlreq@markregistername#1{jlreq@extramark@register@#1}
-\def\jlreq@extraleftmark#1{\jlreq@extramark@{#1}{\expandafter\@firstoftwo\botmarks}}
-\def\jlreq@extrarightmark#1{\jlreq@extramark@{#1}{\expandafter\@secondoftwo\firstmarks}}
-\def\jlreq@extramark@#1#2{\jlreq@if{\ifcsname\jlreq@markregistername{#1}\endcsname\fi}%
- {\expandafter\jlreq@extramark@@\expandafter{\csname \jlreq@markregistername{#1}\endcsname}{#2}}%
- {}%
-}
-\def\jlreq@extramark@@#1#2{#2#1\@empty\@empty}
-
-
-\def\jlreq@extramarkright#1#2{%
- \jlreq@if{\ifcsname\jlreq@markregistername{#1}\endcsname\fi}{%
- \expandafter\expandafter\expandafter\jlreq@extramarkright@\csname\jlreq@markregistername{#1}@themark\endcsname{#2}{#1}%
- }{%
- \jlreq@extramarkboth{#1}{}{#2}%
- }%
-}
-\def\jlreq@extramarkright@#1#2#3#4{%
- \jlreq@extramarkboth{#4}{#1}{#3}%
-}
-\def\jlreq@extramarkboth#1#2#3{
- \jlreq@if{\ifcsname\jlreq@markregistername{#1}\endcsname\fi}{}{%
- \expandafter\newmarks\csname\jlreq@markregistername{#1}\endcsname
- \expandafter\def\csname\jlreq@markregistername{#1}@themark\endcsname{{}{}}%
- }%
- \begingroup
- \let\label\relax
- \let\index\relax
- \let\glossary\relax
- \expandafter\unrestored@protected@xdef\csname\jlreq@markregistername{#1}@themark\endcsname{ {#2}{#3} }
- \expandafter\expandafter\expandafter\@temptokena\expandafter\expandafter\expandafter{\csname\jlreq@markregistername{#1}@themark\endcsname}%
- \expandafter\marks\csname\jlreq@markregistername{#1}\endcsname{\the\@temptokena}%
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
-}
-
-\let\jlreq@markboth=\markboth
-\let\jlreq@markright=\markright
-
-%.. \DeclarePageStyle内で使うもの
-%フォーマットを適用する.\def\@tempa##1{#3}して,\@tempa{#2}の結果を#1に返す.
-%#3が値なしだったら#4を使う.
-%#2: もと
-%#3: フォーマット
-%#4: デフォルトフォーマット
-\cs_set:Nn \__jlreq_pagestyle_applyformat:NnNN {
- % #3が無効の時は,#2が空なら空にする.
- \bool_if:nTF { \tl_if_empty_p:n {#2} && \tl_if_eq_p:NN #3 \c_novalue_tl } {
- \tl_set:Nn #1 {#2}
- }{
- \group_begin:
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n {\def\jlreq@tempa##1}{\tl_if_eq:NNTF #3 \c_novalue_tl {\exp_not:o #4}{\exp_not:o #3}} }
- \l__jlreq_do_tl
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n {\def#1} {\exp_not:o {\jlreq@tempa{#2}} } }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
- }
-}
-
-\cs_generate_variant:Nn \__jlreq_pagestyle_applyformat:NnNN { NocN }
-
-% mark系の処理をする.
-% #2: 奇数ページ柱(prop,{0,1,2}->柱の中身)
-% #3: 偶数ページ柱(prop,{0,1,2}->柱の中身)
-% #4: mark format(prop,{(見出し名)}->フォーマット)
-% #2,#3の中身が見出し名ならば\leftmark/\rightmarkなどに書き換えられる.
-% #1(prop)に{<見出し名>}{\<見出し名>markの定義}を入れる
-\cs_set:Nn \__jlreq_pagestyle_makemarkcommand:NNNN {
- \group_begin:
- \tl_set:Nn \l__jlreq_do_tl { \prop_clear:N #1 }
- \prop_clear:N \l__jlreq_tmpa_prop % markの定義を入れる.
- \clist_map_inline:nn { 0,1,2 } {
- \prop_clear:N \l__jlreq_tmpb_prop % \rightmarkになる\<見出し>markの定義を入れる
- \prop_clear:N \l__jlreq_tmpc_prop % \leftmarkになる\<見出し>markの定義を入れる
- \__jlreq_pagestyle_makemarkcommand_aux:NNNnnN \l__jlreq_tmpb_prop \l__jlreq_tmpa_tl #2 { odd } { ##1 } #4
- \tl_put_right:No \l__jlreq_do_tl \l__jlreq_tmpa_tl
- \__jlreq_pagestyle_makemarkcommand_aux:NNNnnN \l__jlreq_tmpc_prop \l__jlreq_tmpa_tl #3 { even } { ##1 } #4
- \tl_put_right:No \l__jlreq_do_tl \l__jlreq_tmpa_tl
- \prop_map_inline:Nn \l__jlreq_tmpc_prop {
- \prop_put:Nnx \l__jlreq_tmpa_prop {####1} {
- \prop_item:Nn \l__jlreq_tmpa_prop {####1}
- \int_compare:nNnTF { ##1 } = { 0 } { \exp_not:N \markboth } { \exp_not:N \jlreq@extramarkboth {##1} }
- { \exp_not:n {####2} }
- { \prop_item:Nn \l__jlreq_tmpb_prop {####1} }
- }
- }
- \prop_map_inline:Nn \l__jlreq_tmpb_prop {
- \prop_if_in:NnF \l__jlreq_tmpc_prop {####1} {
- \prop_put:Nnx \l__jlreq_tmpa_prop {####1} {
- \prop_item:Nn \l__jlreq_tmpa_prop {####1}
- \int_compare:nNnTF { ##1 } = { 0 } { \exp_not:N \markright } { \exp_not:N \jlreq@extramarkright {##1} }
- { \exp_not:n {####2} }
- }
- }
- }
- }
- \prop_map_inline:Nn \l__jlreq_tmpa_prop {
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \prop_put:Nnn #1 {##1} } {
- \exp_not:N \def \exp_not:o { \csname ##1mark\endcsname ####1 } { \exp_not:n {##2} }
- }
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-% mark処理サブ
-% #3: 柱(prop)
-% #4: odd or even
-% #5: 何番目か=0,1,2
-% #6: mark_format(prop)
-% #1(prop)にmark用のフォーマットを入れる.
-% キーは<見出し名>
-% #2に#3の中身を書き換えるコード(\prop_put:Nnn #3 {section}{\rightmark}のような)を入れる
-\cs_set:Nn \__jlreq_pagestyle_makemarkcommand_aux:NNNnnN {
- \group_begin:
- \tl_set:Nn \l__jlreq_do_tl { \tl_set:Nn #2 {} }
- \prop_get:NnN #3 {#5} \l__jlreq_tmpa_tl
-% \message{TL=\exp_not:o \l__jlreq_tmpa_tl}
-% \str_set:NV \l__jlreq_tmpa_str \l__jlreq_tmpa_tl
- \str_if_eq:eeT { \str_head:N \l__jlreq_tmpa_tl } {_} {
- % 柱の書き換え
- \str_if_eq:nnTF { #4 } { odd } {
- \int_compare:nNnTF {#5}={0} {
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \tl_put_right:Nn #2 } { \exp_not:n { \prop_put:Nnn #3 } {#5} { \exp_not:N \rightmark } }
- }
- }{
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \tl_put_right:Nn #2 } { \exp_not:n { \prop_put:Nnn #3 } {#5} { \exp_not:n { \jlreq@extrarightmark{#5} } } }
- }
- }
- }{
- \int_compare:nNnTF {#5}={0} {
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \tl_put_right:Nn #2 } { \exp_not:n { \prop_put:Nnn #3 } {#5} { \exp_not:N \leftmark } }
- }
- }{
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \tl_put_right:Nn #2 } { \exp_not:n { \prop_put:Nnn #3 } {#5} { \exp_not:n { \jlreq@extraleftmark{#5} } } }
- }
- }
- }
- % 見出し名
- \str_set:Nx \l__jlreq_tmpa_str {\exp_after:wN \use_none:n \l__jlreq_tmpa_tl }
- % _<見出し名>優先でmark formatを取得して\l__jlreq_tmpb_tlに入れる.
- \prop_get:NoNF #6 \l__jlreq_tmpa_tl \l__jlreq_tmpb_tl {
- \prop_get:NnNF #6 {#4} \l__jlreq_tmpb_tl {
- \tl_set:Nx \l__jlreq_tmpb_tl {
- \exp_not:c {the\l__jlreq_tmpa_str}
- \exp_not:N \ifx \exp_not:c {the\l__jlreq_tmpa_str} \exp_not:n {\@empty\else\protect\quad\fi}
- \exp_not:n {##1}
- }
- }
- }
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \prop_put:Nnn #1 } { \l__jlreq_tmpa_str } { \exp_not:o { \l__jlreq_tmpb_tl } }
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-% \prop_item:Nn #1 {#2}が_***だったら***に,そうでなければ空に展開される.
-\cs_set:Nn \__jlreq_pagestyle_get_runninghead_section:Nn {
- \exp_args:Ne \__jlreq_pagestyle_get_runninghead_section_aux:n { \prop_item:Nn #1 {#2} }
-}
-
-\cs_set:Nn \__jlreq_pagestyle_get_runninghead_section_aux:n {
- \str_if_eq:eeTF { \str_head:n {#1} } {_} { \exp_not:o {\use_none:n #1} } {}
-}
-
-%#1: 位置情報がleft-topのように入っているもの,prop
-%#2: デフォルト
-%#1の中身を書き換えて返す.
-\cs_set:Nn \__jlreq_pagestyle_normalizeposition:Nn {
- \group_begin:
- \tl_set:Nn \l__jlreq_do_tl {}
- \tl_clear:N \l__jlreq_tmpa_tl % デフォルト位置
- \tl_set:Nx \l__jlreq_tmpa_tl { \prop_item:Nn #1 {0} }
- \exp_args:No \jlreq@pagestyle@parse@position \l__jlreq_tmpa_tl \l__jlreq_tmpa_tl {#2}
- \prop_map_inline:Nn #1 {
- \exp_args:Nnno \jlreq@pagestyle@parse@position {##2} \l__jlreq_tmpb_tl \l__jlreq_tmpa_tl
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \prop_put:Nnn #1 {##1} } {\exp_not:o {\l__jlreq_tmpb_tl} }
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-%#2: 柱
-%#3: フォント
-%#4: 位置
-%#5: 空き
-%#1に返す
-\cs_set:Nn \__jlreq_pagestyle_maketate_runhead:NNNNn {
- \group_begin:
- \tl_set:Nn \l__jlreq_result_tl {}
- \__jlreq_pagestyle_maketate_rearrange:NNNNn \l__jlreq_tmpa_seq #2 #3 #4 {#5}
- \seq_map_inline:Nn \l__jlreq_tmpa_seq {
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_args:No \exp_not:n {\use_i:nn ##1} } % 場所
- \tl_set:Nx \l__jlreq_tmpb_tl { \exp_args:No \exp_not:n {\use_ii:nn ##1} } % 中身
- \tl_put_right:Nx \l__jlreq_result_tl {
- \exp_not:N \hbox to~0pt {
- \exp_not:n {\hskip\glueexpr\headsep + \headheight}
- \legacy_if:nF { @tate } { \exp_not:n {+ \topskip - \Cht} }
- \tl_if_empty:oF \l__jlreq_tmpa_tl { + \exp_not:o \l__jlreq_tmpa_tl } \exp_not:N \relax
- \exp_not:o \l__jlreq_tmpb_tl
- \exp_not:N \hss
- }
- }
- }
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n { \tl_set:Nn #1 } { \exp_not:o \l__jlreq_result_tl } }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-\cs_generate_variant:Nn \__jlreq_pagestyle_maketate_runhead:NNNNn { NcNNo }
-
-%#2: ノンブル
-%#3: フォント
-%#4: 位置
-%#5: 空き
-%#1に返す
-\cs_set:Nn \__jlreq_pagestyle_maketate_nombre:NNNNn {
- \group_begin:
- \tl_set:Nn \l__jlreq_result_tl {}
- \__jlreq_pagestyle_maketate_rearrange:NNNNn \l__jlreq_tmpa_seq #2 #3 #4 {#5}
- \seq_map_inline:Nn \l__jlreq_tmpa_seq {
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_args:No \exp_not:n {\use_i:nn ##1} } % 場所
- \tl_set:Nx \l__jlreq_tmpb_tl { \exp_args:No \exp_not:n {\use_ii:nn ##1} } % 中身
- \tl_put_right:Nx \l__jlreq_result_tl {
- \exp_not:N \hbox to~0pt {
- \exp_not:N \hss
- \exp_not:o \l__jlreq_tmpb_tl
- \tl_if_empty:oF \l__jlreq_tmpa_tl {
- \exp_not:n { \hskip\glueexpr } \exp_not:o \l__jlreq_tmpa_tl \exp_not:N \relax
- }
- }
- }
- }
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n { \tl_set:Nn #1 } { \exp_not:o \l__jlreq_result_tl } }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-\cs_generate_variant:Nn \__jlreq_pagestyle_maketate_nombre:NNNNn { NNNNo }
-
-%#2: 中身
-%#3: フォント
-%#4: 位置
-%#5: 空き
-% tate指定のページスタイルの時は,空き指定は
-% (1)なければ前のやつに続いて
-% (2)あれば絶対的な位置指定
-% となる.この関数で,(1)によってまとまるものを一つにまとめて,seqにして返す.
-% #1に{空き}{トークン列}のseqを返す.
-\cs_set:Nn \__jlreq_pagestyle_maketate_rearrange:NNNNn {
- \group_begin:
- \tl_set:Nn \l__jlreq_do_tl { \seq_clear:N #1 }
- \tl_set:Nn \l__jlreq_tmpa_tl {} % 現在処理中
- \tl_set:Nn \l__jlreq_tmpc_tl {} % 現在の位置
- \clist_map_inline:nn {0,1,2} {
- \tl_set:Nx \l__jlreq_tmpb_tl { \prop_item:Nn #2 {##1} }
- \tl_if_empty:oF \l__jlreq_tmpb_tl {
- \tl_set:Nx \l__jlreq_tmpb_tl { \prop_item:Nn #4 {##1} } % pos
- \tl_if_empty:NTF \l__jlreq_tmpb_tl { % pos = empty
- \tl_put_right:Nx \l__jlreq_tmpa_tl {
- \tl_if_empty:NF \l__jlreq_tmpa_tl { \exp_not:n { \hskip\glueexpr #5\relax } }
- }
- }{
- \tl_if_empty:oF \l__jlreq_tmpa_tl {
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \seq_put_right:Nn #1 } {
- { \exp_not:o \l__jlreq_tmpc_tl } { \exp_not:o \l__jlreq_tmpa_tl }
- }
- }
- \tl_set:Nn \l__jlreq_tmpa_tl {}
- }
- }
- \tl_if_empty:oT \l__jlreq_tmpa_tl { \tl_set:Nx \l__jlreq_tmpc_tl { \prop_item:Nn #4 { ##1 } } }
- \tl_set:Nx \l__jlreq_tmpb_tl { \prop_item:Nn #3 {##1} }
- \tl_put_right:Nx \l__jlreq_tmpa_tl {
- \tl_if_empty:NTF \l__jlreq_tmpb_tl
- { \prop_item:Nn #2 {##1} }
- { { \exp_not:o \l__jlreq_tmpb_tl \prop_item:Nn #2 {##1} } }
- }
- }
- }
- \tl_if_empty:oF \l__jlreq_tmpa_tl {
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \seq_put_right:Nn #1 } { { \exp_not:o \l__jlreq_tmpc_tl } { \exp_not:o \l__jlreq_tmpa_tl } }
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-
-%#2: odd/even
-%#3: 位置
-%#2 = evenならば位置を反転させて#1 = strに返す.
-\cs_set:Nn \__jlreq_pagestyle_reversepos_ifeven:Nnn {
- \str_set:Nn #1 {#3}
- \str_if_eq:nnT {#2} {even} {
- \str_if_eq:nnT {#3} {right} { \str_set:Nn #1 {left} }
- \str_if_eq:nnT {#3} {left} { \str_set:Nn #1 {right} }
- }
-}
-
-% 各場所(六カ所),柱 or ノンブルのトークン列を作る.#1に返す
-%#2: odd/even
-%#3: 縦方向場所(top/bottom)
-%#4: 横方向場所(left/right/center)
-%#5: 中身(柱 or ノンブル,prop)
-%#6: フォント(prop)
-%#7: 場所(prop)
-%#8: 空き
-\cs_set:Nn \__jlreq_pagestyle_makeyoko_each:NnnnNNNn {
- \group_begin:
- \__jlreq_pagestyle_makeyoko_sequence:NnnNNN \l__jlreq_tmpa_seq {#3} {#4} #5 #6 #7
- \__jlreq_pagestyle_reversepos_ifeven:Nnn \l__jlreq_tmpa_str {#2} {#4}
- \__jlreq_pagestyle_makeyoko_concat_withspaces:NVNn \l__jlreq_tmpa_tl \l__jlreq_tmpa_str \l__jlreq_tmpa_seq {#8}
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n { \tl_set:Nn #1 } { \exp_not:o \l__jlreq_tmpa_tl } }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-\cs_generate_variant:Nn \__jlreq_pagestyle_makeyoko_each:NnnnNNNn { NnnncNNo }
-
-%#2: 縦方向場所(top/bottom)
-%#3: 横方向場所(left/right/center)
-%#4: 中身(柱 or ノンブル,prop)
-%#5: フォント(prop)
-%#6: 場所(prop)
-%#1に左から{フォント}{中身}を並べた配列を返す.
-\cs_set:Nn \__jlreq_pagestyle_makeyoko_sequence:NnnNNN {
- \group_begin:
- \tl_set:Nn \l__jlreq_do_tl { \seq_clear:N #1 }
- \clist_map_inline:nn {0,1,2} {
- \tl_set:Nx \l__jlreq_tmpa_tl { \prop_item:Nn #4 {##1} }
- \tl_if_empty:NF \l__jlreq_tmpa_tl {
- \exp_args:Nxx \tl_if_eq:nnT {{#2}{#3}} { \prop_item:Nn #6 {##1} } {
- \tl_put_right:Nx \l__jlreq_do_tl {
- \exp_not:n { \seq_put_right:Nn #1 } { {\prop_item:Nn #5 {##1}}{\exp_not:o \l__jlreq_tmpa_tl} }
- }
- }
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-% 各場所(左,真ん中,右)のヘッダのトークン列を作る
-%#2: 横方向場所
-%#3: {フォント}{中身}の配列
-%#4: スペース
-%#1に結果のトークン列を入れる
-\cs_set:Nn \__jlreq_pagestyle_makeyoko_concat_withspaces:NnNn {
- \seq_if_empty:NTF #3 {
- \tl_set:Nn #1 {}
- }{
- \str_if_eq:nnTF {#2}{right}{
- \__jlreq_pagestyle_concat_withspaces_right:NNn #1 #3 {#4}
- }{
- \__jlreq_pagestyle_concat_withspaces_left:NNn #1 #3 {#4}
- }
- }
-}
-\cs_generate_variant:Nn \__jlreq_pagestyle_makeyoko_concat_withspaces:NnNn { NVNn }
-
-%#2: {フォント}{中身}の配列
-%#3: スペース
-%#1に結果のトークン列を入れる
-\cs_set:Nn \__jlreq_pagestyle_concat_withspaces_left:NNn {
- \group_begin:
- \tl_set:Nn \l__jlreq_reuslt_tl {}
- \seq_pop_right:NN #2 \l__jlreq_tmpc_tl % 最後の項目
- \seq_map_inline:Nn #2 {
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_args:No \exp_not:n {\use_i:nn ##1} }
- \tl_set:Nx \l__jlreq_tmpb_tl { \exp_args:No \exp_not:n {\use_ii:nn ##1} }
- \tl_put_right:Nx \l__jlreq_result_tl {
- \exp_not:n {\setbox\@tempboxa=\hbox}
- { \tl_if_empty:NTF \l__jlreq_tmpa_tl {\exp_not:o \l__jlreq_tmpb_tl}{\exp_not:o \l__jlreq_tmpa_tl \exp_not:N \l__jlreq_tmpb_tl} }
- \exp_not:n { \copy\@tempboxa }
- \exp_not:n {
- \ifnum0
- \ifdim\wd\@tempboxa=0pt~\else 1\fi
- \ifdim\ht\@tempboxa=0pt~\else 1\fi
- \ifdim\dp\@tempboxa=0pt~\else 1\fi
- >0~\hskip\glueexpr #3\relax\fi
- }
- }
- }
- \cs_set:Nn \l__jlreq_tmpa:nn {
- \tl_if_empty:nTF{##1} { \exp_not:n {##2} }{ \exp_not:n {{##1##2}} }
- }
- \tl_put_right:Nx \l__jlreq_result_tl {\exp_after:wN \l__jlreq_tmpa:nn \l__jlreq_tmpc_tl}
- \tl_set:Nx \l__jlreq_do_tl {
- \exp_not:n { \tl_set:Nn #1} {\exp_not:o \l__jlreq_result_tl}
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-%#2: {フォント}{中身}の配列
-%#3: スペース
-%#1に結果のトークン列を入れる
-\cs_set:Nn \__jlreq_pagestyle_concat_withspaces_right:NNn {
- \group_begin:
- \tl_set:Nn \l__jlreq_result_tl {}
- \bool_set_true:N \l__jlreq_tmpa_bool % 最初か
- \seq_map_inline:Nn #2 {
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_args:No \exp_not:n {\use_i:nn ##1} }
- \tl_set:Nx \l__jlreq_tmpb_tl { \exp_args:No \exp_not:n {\use_ii:nn ##1} }
- \bool_if:NTF \l__jlreq_tmpa_bool {
- \tl_put_right:Nx \l__jlreq_result_tl {
- \tl_if_empty:NTF \l__jlreq_tmpa_tl {\exp_not:o \l__jlreq_tmpb_tl}{{\exp_not:o \l__jlreq_tmpa_tl \exp_not:o \l__jlreq_tmpb_tl}}
- }
- }{
- \tl_put_right:Nx \l__jlreq_result_tl {
- \exp_not:n { \setbox\@tempboxa=\hbox}
- { \tl_if_empty:NTF \l__jlreq_tmpa_tl {\exp_not:o \l__jlreq_tmpb_tl }{\exp_not:o \l__jlreq_tmpa_tl \exp_not:o \l__jlreq_tmpb_tl} }
- \exp_not:n {
- \ifnum0
- \ifdim\wd\@tempboxa=0pt~\else 1\fi
- \ifdim\ht\@tempboxa=0pt~\else 1\fi
- \ifdim\dp\@tempboxa=0pt~\else 1\fi
- >0~\hskip\glueexpr #3\relax\fi
- }
- \exp_not:n { \box\@tempboxa }
- }
- }
- \bool_set_false:N \l__jlreq_tmpa_bool
- }
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n { \tl_set:Nn #1} {\exp_not:o \l__jlreq_result_tl} }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-\cs_generate_variant:Nn \__jlreq_pagestyle_concat_withspaces_right:NnN {NoN}
-
-
-%#2: odd or even(even時は左右をひっくり返して処理される)
-%#3: 左
-%#4: 真ん中
-%#5: 右
-% #1に返す.
-\cs_set:Nn \__jlreq_pagestyle_concat_left_center_right:Nnnnn {
- \str_if_eq:nnTF {#2} {odd} {
- \__jlreq_pagestyle_concat_left_center_right_aux:Nnnn #1 {#3} {#4} {#5}
- }{
- % evenでは左右入れ替え
- \__jlreq_pagestyle_concat_left_center_right_aux:Nnnn #1 {#5} {#4} {#3}
- }
-}
-
-\cs_generate_variant:Nn \__jlreq_pagestyle_concat_left_center_right:Nnnnn { Nneee }
-
-% #2: 左,#3: 真ん中,#4: 右をくっつける
-% #1に返す
-\cs_set:Nn \__jlreq_pagestyle_concat_left_center_right_aux:Nnnn {
- \group_begin:
- \tl_set:Nn \l__jlreq_tmpa_tl {} % 左
- \tl_set:Nn \l__jlreq_tmpb_tl {} % 右
- \tl_set:Nn \l__jlreq_tmpc_tl {} % 戻り値
- \tl_if_empty:nF {#2} {
- \bool_if:nT { ( !\dim_compare_p:nNn {\jlreq@headfoot@sidemargin}={0pt} ) || \legacy_if_p:n {@tate} }{
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_not:n {\hskip\dimexpr} \jlreq@expand@speciallength{\jlreq@headfoot@sidemargin} \legacy_if:nT { @tate } { \exp_not:n { -\Cdp } } \exp_not:N \relax }
- }
- \tl_put_right:Nn \l__jlreq_tmpa_tl {#2}
- }
- \tl_if_empty:nF {#4} {
- \tl_set:Nn \l__jlreq_tmpb_tl {#4}
- % \jlreq@headfoot@sidemargin = 0ptの時に本文の右に一致させるための補正.
- \bool_if:nT { ( !\dim_compare_p:nNn {\jlreq@headfoot@sidemargin}={0pt} ) || \legacy_if_p:n {@tate} }{
- \tl_put_right:Nx \l__jlreq_tmpb_tl { \exp_not:n {\hskip\dimexpr} \jlreq@expand@speciallength{\jlreq@headfoot@sidemargin} \legacy_if:nT { @tate } { \exp_not:n { + \topskip - \Cht } } \exp_not:N \relax }
- }
- }
- \tl_if_empty:nTF {#3} {
- \bool_if:nF { \tl_if_empty_p:n {#2} && \tl_if_empty_p:n {#4} } {
- \tl_set:Nx \l__jlreq_tmpc_tl { \exp_not:o \l__jlreq_tmpa_tl \exp_not:N \hfil \exp_not:o \l__jlreq_tmpb_tl }
- }
- }{
- % 真ん中のを完全に真ん中に配置するために左右の幅を0にしておく
- \tl_if_empty:nF { #2 } { \tl_set:Nx \l__jlreq_tmpa_tl { \exp_not:N \hbox to~0pt { \exp_not:o { \l__jlreq_tmpa_tl } \exp_not:N \hss } } }
- \tl_if_empty:nF { #4 } { \tl_set:Nx \l__jlreq_tmpb_tl { \exp_not:N \hbox to~0pt { \exp_not:N \hss \exp_not:o { \l__jlreq_tmpb_tl } } } }
- \tl_set:Nx \l__jlreq_tmpc_tl {
- \exp_not:o \l__jlreq_tmpa_tl\exp_not:N \hfil \exp_not:n {#3} \exp_not:N \hfil \exp_not:o \l__jlreq_tmpb_tl
- }
- }
- \tl_set:Nx \l__jlreq_do_tl { \exp_not:n {\tl_set:Nn #1 } { \exp_not:o \l__jlreq_tmpc_tl } }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-%#2: 横方向位置
-%#3: odd/even
-%#4: 柱
-%#5: ヘッダ
-%#6: 空き
-%#1 に戻す
-\cs_set:Nn \__jlreq_pagestyle_concat_runhead_nombre:Nnnnnn {
- \tl_if_empty:nTF {#4} {
- \tl_set:Nn #1 {#5}
- }{
- \tl_if_empty:nTF {#5} {
- \tl_set:Nn #1 {#4}
- }{
- \group_begin:
- \__jlreq_pagestyle_reversepos_ifeven:Nnn \l__jlreq_tmpa_str {#3} {#2}
- \jlreq@ifleftpage{#3}{
- \str_if_eq:VnTF \l__jlreq_tmpa_str {right} {
- \tl_set:Nn \l__jlreq_do_tl {
- \__jlreq_pagestyle_concat_runhead_nombre_aux_leftpage_right:Nnnn #1 {#4} {#5} {#6}
- }
- }{
- \tl_set:Nn \l__jlreq_do_tl {
- \__jlreq_pagestyle_concat_runhead_nombre_aux_leftpage_left:Nnnn #1 {#4} {#5} {#6}
- }
- }
- }{
- \str_if_eq:VnTF \l__jlreq_tmpa_str {left} {
- \tl_set:Nn \l__jlreq_do_tl {
- \__jlreq_pagestyle_concat_runhead_nombre_aux_rightpage_left:Nnnn #1 {#4} {#5} {#6}
- }
- }{
- \tl_set:Nn \l__jlreq_do_tl {
- \__jlreq_pagestyle_concat_runhead_nombre_aux_rightpage_right:Nnnn #1 {#4} {#5} {#6}
- }
- }
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
- }
- }
-}
-\cs_generate_variant:Nn \__jlreq_pagestyle_concat_runhead_nombre:Nnnnnn { Nnnooo }
-
-% <ノンブル><空き><柱>,左寄せ,ノンブルは常に空でないと仮定する.
-\cs_set:Nn \__jlreq_pagestyle_concat_runhead_nombre_aux_leftpage_left:Nnnn {
- \tl_set:Nn #1 {
- #3\hskip\glueexpr #4\relax#2
- }
-}
-% <ノンブル><空き><柱>,右寄せ
-\cs_set:Nn \__jlreq_pagestyle_concat_runhead_nombre_aux_leftpage_right:Nnnn {
- \tl_set:Nn #1 {
- \setbox\jlreq@PageStyle@box=\hbox{#2}
- #3
- \ifnum 0
- \ifdim\wd\jlreq@PageStyle@box=0pt~\else 1\fi
- \ifdim\ht\jlreq@PageStyle@box=0pt~\else 1\fi
- \ifdim\dp\jlreq@PageStyle@box=0pt~\else 1\fi
- >0~\hskip\glueexpr #4\relax\fi
- \box\jlreq@PageStyle@box
- }
-}
-% <柱><空き><ノンブル>,左寄せ
-\cs_set:Nn \__jlreq_pagestyle_concat_runhead_nombre_aux_rightpage_left:Nnnn {
- \tl_set:Nn #1 {
- \setbox\jlreq@PageStyle@box=\hbox{#2}
- \copy\jlreq@PageStyle@box
- \ifnum 0
- \ifdim\wd\jlreq@PageStyle@box=0pt~\else 1\fi
- \ifdim\ht\jlreq@PageStyle@box=0pt~\else 1\fi
- \ifdim\dp\jlreq@PageStyle@box=0pt~\else 1\fi
- >0~\hskip\glueexpr #4\relax\fi
- #3
- }
-}
-% <柱><空き><ノンブル>,右寄せ
-\cs_set:Nn \__jlreq_pagestyle_concat_runhead_nombre_aux_rightpage_right:Nnnn {
- \tl_set:Nn #1 {
- #2\hskip\glueexpr #4\relax#3
- }
-}
-
-% #1の左右に傍注調整用の空白を入れて#1に代入する
-\cs_set:Nn \__jlreq_pagestyle_addsidenotemargin_left:N {
- \__jlreq_pagestyle_addsidenotemargin_aux:Nnn #1 {\jlreq@sidenote@length + \jlreq@sidenote@sep} {}
-}
-\cs_set:Nn \__jlreq_pagestyle_addsidenotemargin_right:N {
- \__jlreq_pagestyle_addsidenotemargin_aux:Nnn #1 {} {\jlreq@sidenote@length + \jlreq@sidenote@sep}
-}
-\cs_set:Nn \__jlreq_pagestyle_addsidenotemargin_bothside:N {
- \__jlreq_pagestyle_addsidenotemargin_aux:Nnn #1 {\jlreq@sidenote@length + \jlreq@sidenote@sep} {\jlreq@sidenote@length + \jlreq@sidenote@sep}
-}
-% #2: 左,#3:右,#4:#2 + #3
-\cs_set:Nn \__jlreq_pagestyle_addsidenotemargin_aux:Nnn {
- \tl_if_empty:NF #1 {
- \tl_set:Nx #1 {
- \tl_if_empty:nF {#2} { \exp_not:n { \hskip-\dimexpr #2\relax } }
- \exp_not:o #1
- \tl_if_empty:nF {#3} { \exp_not:n { \hskip-\dimexpr #3\relax } }
- }
- }
-}
-
-
-%.. \DeclarePageStyle
-% markの処理
-% 出力する柱は偶数ページでは\leftmark,奇数ページでは\rightmark.
-% 見出し<HEAD>に\rightmarkがついていれば,\<HAED>markを\markrightに書き換える.
-% \leftmarkならば\markbothを使う.
-% \leftmark\rightmark両方の時は\markboth?
-% 現れる全ての見出しのレベルよりも小さいレベルの見出しについては\<HEAD>markを空にする処理を入れる.
-% 実際の出力:
-% yoko:
-% 左ページ(縦奇数ページ横偶数ページ)ではノンブルが左(2.6.1.c),なので<ノンブル><空き><柱>
-% 空きが無駄に入らないように気をつける.(右寄せの場合は柱が空なら空きを入れない.)
-% \setbox..=して,幅が0か否かで判定する.
-% 右ページでは逆になる.<柱><空き><ノンブル>
-% 空きは柱文字で文字サイズ基準で計算する.
-% <ノンブル>も<柱>もi,ii,...はiが左になるようにする.
-% <柱>も<ノンブル>も<i中身><空き><ii中身><空き><iii中身>となる
-% ただし空きは無駄に入れない.左寄せの場合は<i中身>が空ならばその右の<空き>は入れない.
-% 空かの判定は\protected@edefして\ifx\@emptyで判定する.
-
-\newbox \jlreq@PageStyle@box
-\tl_new:N \l__jlreq_pagestyle_odd_top_format_tl
-\tl_new:N \l__jlreq_pagestyle_even_top_format_tl
-\tl_new:N \l__jlreq_pagestyle_odd_bottom_format_tl
-\tl_new:N \l__jlreq_pagestyle_even_bottom_format_tl
-\prop_new:N \l__jlreq_pagestyle_nombre_prop
-\prop_new:N \l__jlreq_pagestyle_nombre_position_prop
-\prop_new:N \l__jlreq_pagestyle_odd_runninghead_prop
-\prop_new:N \l__jlreq_pagestyle_even_runninghead_prop
-\prop_new:N \l__jlreq_pagestyle_runninghead_position_prop
-\prop_new:N \l__jlreq_pagestyle_nombre_font_prop
-\prop_new:N \l__jlreq_pagestyle_runninghead_font_prop
-\prop_new:N \l__jlreq_pagestyle_mark_format_prop
-\tl_new:N \l__jlreq_pagestyle_command_tl
-\tl_new:N \l__jlreq_pagestyle_gap_tl
-\tl_new:N \l__jlreq_pagestyle_nombre_gap_tl
-\tl_new:N \l__jlreq_pagestyle_runninghead_gap_tl
-% 柱とノンブルの間
-\bool_new:N \l__jlreq_pagestyle_clearmarkcommand_bool
-\bool_new:N \l__jlreq_pagestate_tate_bool
-% 作業用
-\tl_new:N \l__jlreq_pagestyle_markcommands_tl
-\NewDocumentCommand{\DeclarePageStyle} { m +m } {%
- \expandafter\edef\csname jlreq@pagestyle@setting@#1\endcsname{\unexpanded{#2}}%
- \group_begin:
- % フォーマットを空という可能性もあるかもしれないので,デフォルト値は\c_novalue_tlで表す.
- \tl_set_eq:NN \l__jlreq_pagestyle_odd_top_format_tl \c_novalue_tl
- \tl_set_eq:NN \l__jlreq_pagestyle_even_top_format_tl \c_novalue_tl
- \tl_set_eq:NN \l__jlreq_pagestyle_odd_bottom_format_tl \c_novalue_tl
- \tl_set_eq:NN \l__jlreq_pagestyle_even_bottom_format_tl \c_novalue_tl
- \keys_define:nn { PageStyle:#1 } {
- tate .code:n = {\bool_set_true:N \l__jlreq_pagestate_tate_bool},
- yoko .code:n = {\bool_set_false:N \l__jlreq_pagestate_tate_bool},
- nombre .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_nombre_prop {0} {##1} },
- nombre_position .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_nombre_position_prop {0} {##1} },
- running_head_position .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_runninghead_position_prop {0} {##1} },
- odd_running_head .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_odd_runninghead_prop {0} {##1} },
- even_running_head .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_even_runninghead_prop {0} {##1} },
- font .code:n = {
- \prop_put:Nnn \l__jlreq_pagestyle_nombre_font_prop {0} {##1}
- \prop_put:Nnn \l__jlreq_pagestyle_runninghead_font_prop {0} {##1}
- },
- nombre_font .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_nombre_font_prop {0} {##1} },
- running_head_font .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_runninghead_font_prop {0} {##1} },
- mark_format .code:n = {
- \prop_clear:N \l__jlreq_pagestyle_mark_format_prop
- \prop_put_from_keyval:Nn \l__jlreq_pagestyle_mark_format_prop {##1}
- },
- command .tl_set:N = \l__jlreq_pagestyle_command_tl,
- gap .tl_set:N = \l__jlreq_pagestyle_gap_tl,
- nombre_gap .tl_set:N = \l__jlreq_pagestyle_nombre_gap_tl,
- running_head_gap .tl_set:N = \l__jlreq_pagestyle_runninghead_gap_tl,
- % trueにすると,\ps@***実行時にまず\***markを全て\@gobbleにする.
- clear_markcommand .bool_set:N = \l__jlreq_pagestyle_clearmarkcommand_bool,
- odd_head_format .code:n = { \tl_set:Nx \l__jlreq_pagestyle_odd_top_format_tl { \exp_not:n {##1} } },
- even_head_format .code:n = { \tl_set:Nx \l__jlreq_pagestyle_even_top_format_tl { \exp_not:n {##1} } },
- odd_foot_format .code:n = { \tl_set:Nx \l__jlreq_pagestyle_odd_bottom_format_tl { \exp_not:n {##1} } },
- even_foot_format .code:n = { \tl_set:Nx \l__jlreq_pagestyle_even_bottom_format_tl { \exp_not:n {##1} } },
- }
- \cs_set:Nn \l__jlreq_tmpa:nn {
- \keys_define:nn { PageStyle:#1 } {
- nombre_##1 .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_nombre_prop {##2} {####1} },
- nombre_##1_position .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_nombre_position_prop {##2} {####1} },
- running_head_##1_position .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_runninghead_position_prop {##2} {####1} },
- odd_running_head_##1 .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_odd_runninghead_prop {##2} {####1} },
- even_running_head_##1 .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_even_runninghead_prop {##2} {####1} },
- nombre_##1_font .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_nombre_font_prop {##2} {####1} },
- running_head_##1_font .code:n = { \prop_put:Nnn \l__jlreq_pagestyle_runninghead_font_prop {##2} {####1} }
- }
- }
- \clist_map_inline:nn {1,2}{
- \str_set:Nx \l__jlreq_tmpa_str { \int_to_roman:n { ##1 + 1 } }
- \exp_args:Nx \l__jlreq_tmpa:nn { \l__jlreq_tmpa_str } { ##1 }
- }
- \keys_set:nn { PageStyle:#1 } {
- yoko,
- nombre_font = {}, nombre_position = {}, nombre = {\thepage},
- nombre_ii_font = {}, nombre_ii_position = {}, nombre_ii = {},
- nombre_iii_font = {}, nombre_iii_position = {}, nombre_iii = {},
- running_head_font = {}, running_head_position = {}, odd_running_head = {}, even_running_head = {},
- running_head_ii_font = {}, running_head_ii_position = {}, odd_running_head_ii = {}, even_running_head_ii = {},
- running_head_iii_font = {}, running_head_iii_position = {}, odd_running_head_iii = {}, even_running_head_iii = {},
- command = {}, mark_format = {}, gap = {1.5\jlreq@zw}, nombre_gap = {}, running_head_gap = {},
- clear_markcommand = true,
- }
- \keys_set:nn { PageStyle:#1 } {#2}
- % 見出しを出す場合:evenに章などの高いレベルの見出しを出す(2.6.3.a)
- \@ifundefined{jlreq@heading@level@\__jlreq_pagestyle_get_runninghead_section:Nn \l__jlreq_pagestyle_odd_runninghead_prop {0}}{}{
- \@ifundefined{jlreq@heading@level@\__jlreq_pagestyle_get_runninghead_section:Nn \l__jlreq_pagestyle_even_runninghead_prop {0}}{}{
- \int_compare:nNnT
- {\csname jlreq@heading@level@\__jlreq_pagestyle_get_runninghead_section:Nn \l__jlreq_pagestyle_odd_runninghead_prop {0}\endcsname}
- <
- {\csname jlreq@heading@level@\__jlreq_pagestyle_get_runninghead_section:Nn \l__jlreq_pagestyle_even_runninghead_prop {0}\endcsname}
- {
- \jlreq@note{偶数ページには奇数ページよりアウトラインレベルの高い見出しを入れる (ページスタイル #1 内,2.6.3.a).}%
- }
- }
- }
- % ノンブル同士の間や柱同士の間のデフォルトはノンブルと柱の間の空き量
- \tl_if_empty:NT \l__jlreq_pagestyle_nombre_gap_tl { \tl_set_eq:NN \l__jlreq_pagestyle_nombre_gap_tl \l__jlreq_pagestyle_gap_tl }
- \tl_if_empty:NT \l__jlreq_pagestyle_runninghead_gap_tl { \tl_set_eq:NN \l__jlreq_pagestyle_runninghead_gap_tl \l__jlreq_pagestyle_gap_tl }
- % \<見出し>markを作り,\l__jlreq_tmpa_propに格納
- \__jlreq_pagestyle_makemarkcommand:NNNN \l__jlreq_tmpa_prop \l__jlreq_pagestyle_odd_runninghead_prop \l__jlreq_pagestyle_even_runninghead_prop \l__jlreq_pagestyle_mark_format_prop
- % \<見出し>markを定義するコマンドを入れる
- \tl_set:Nn \l__jlreq_pagestyle_markcommands_tl {}
- % 最小レベルの決定を行い,\<見出し命令>markの定義を入れていく.
- \int_set:Nn \l__jlreq_tmpa_int {9999}
- \prop_map_inline:Nn \l__jlreq_tmpa_prop {
- \int_compare:nNnT { \l__jlreq_tmpa_int } > { \csname jlreq@heading@level@##1 \endcsname } {
- \int_set:Nn \l__jlreq_tmpa_int { \csname jlreq@heading@level@##1 \endcsname }
- }
- \tl_put_right:Nx \l__jlreq_pagestyle_markcommands_tl { \exp_not:n {##2} }
- }
- \int_compare:nNnF {\l__jlreq_tmpa_int}={9999} {
- \tl_put_right:Nx \l__jlreq_pagestyle_markcommands_tl {
- \exp_not:N \jlreq@pagestyle@setclearmark {\int_use:N \l__jlreq_tmpa_int }
- }
- }
- \bool_if:NTF \l__jlreq_pagestate_tate_bool {
- \tl_set:Nx \l__jlreq_do_tl {}
- \prop_clear:N \l__jlreq_tmpa_prop
- \clist_map_inline:nn { odd,even } {
- % .柱→\l__jlreq_tmpa_tl
- \__jlreq_pagestyle_maketate_runhead:NcNNo \l__jlreq_tmpa_tl { l__jlreq_pagestyle_##1_runninghead_prop } \l__jlreq_pagestyle_runninghead_font_prop \l__jlreq_pagestyle_runninghead_position_prop \l__jlreq_pagestyle_runninghead_gap_tl
- % ノンブル→\l__jlreq_tmpb_tl
- \__jlreq_pagestyle_maketate_nombre:NNNNo \l__jlreq_tmpb_tl \l__jlreq_pagestyle_nombre_prop \l__jlreq_pagestyle_nombre_font_prop \l__jlreq_pagestyle_nombre_position_prop \l__jlreq_pagestyle_nombre_gap_tl
- % 柱とノンブルを結合→\l__jlreq_tmpa_tl
- \tl_set:Nx \l__jlreq_tmpa_tl { \exp_not:o \l__jlreq_tmpa_tl \exp_not:N \hfil \exp_not:o \l__jlreq_tmpb_tl }
- % formatを適用.
- \tl_set:Nn \l__jlreq_tmpb_tl {####1} % デフォルトフォーマット
- \__jlreq_pagestyle_applyformat:NocN \l__jlreq_tmpa_tl \l__jlreq_tmpa_tl { l__jlreq_pagestyle_##1_top_format_tl } \l__jlreq_tmpb_tl
- % 周りのボックスをつける.結果は\l__jlreq_tmpa_propにいれる.
- \prop_put:Nnx \l__jlreq_tmpa_prop { ##1-top } {
- \exp_not:n {\setbox\@tempboxa=\hbox to \dimexpr\headsep + \headheight + \textheight}
- \legacy_if:nF { @tate } { \exp_not:n { - \topskip + 1\jlreq@zh } }
- \exp_not:N \relax
- { \exp_not:n { \tate\adjustbaseline } \exp_not:o \l__jlreq_tmpa_tl }
- % Underful対策
- \ifx l\jlreq@engine
- \unexpanded{\wd\@tempboxa=\headheight}%
- \else
- \unexpanded{\ht\@tempboxa=\headheight\dp\@tempboxa=0pt}%
- \fi
- }
- }
- % 位置調整,左側に柱+ノンブルがある場合
- \tl_set:Nx \l__jlreq_tmpa_tl {
- \exp_not:n { \hskip\dimexpr } \legacy_if:nT { @tate } { \exp_not:n { - \Cdp } } \exp_not:n { - \headsep - 1\jlreq@zw\relax }
- \exp_not:n { \box\@tempboxa\hfil }
- }
- % 位置調整,右側に柱+ノンブルがある場合
- \tl_set:Nx \l__jlreq_tmpb_tl {
- \exp_not:n { \hskip\dimexpr\textwidth } \legacy_if:nT { @tate } { \exp_not:n { - \topskip + \Cht } } \exp_not:n { + \headsep\relax }
- \exp_not:n { \box\@tempboxa\hss }
- }
- % 位置調整とすでに構築したブロックをくっつける.
- \legacy_if:nTF { @tate } {
- \prop_put:Nnx \l__jlreq_tmpa_prop { odd-top } { \prop_item:Nn \l__jlreq_tmpa_prop { odd-top } \exp_not:o \l__jlreq_tmpa_tl }
- \prop_put:Nnx \l__jlreq_tmpa_prop { even-top } { \prop_item:Nn \l__jlreq_tmpa_prop { even-top } \exp_not:o \l__jlreq_tmpb_tl }
- }{
- \prop_put:Nnx \l__jlreq_tmpa_prop { odd-top } { \prop_item:Nn \l__jlreq_tmpa_prop { odd-top } \exp_not:o \l__jlreq_tmpb_tl }
- \prop_put:Nnx \l__jlreq_tmpa_prop { even-top } { \prop_item:Nn \l__jlreq_tmpa_prop { even-top } \exp_not:o \l__jlreq_tmpa_tl }
- }
- % \l__jlreq_tmpa_tlに定義を入れる
- \tl_set:Nx \l__jlreq_tmpa_tl {
- \exp_not:n { \def\@oddhead } { \prop_item:Nn \l__jlreq_tmpa_prop { odd-top } }
- \exp_not:n { \def\@oddfoot } { }
- \exp_not:n { \def\@evenhead } { \prop_item:Nn \l__jlreq_tmpa_prop { even-top } }
- \exp_not:n { \def\@evenfoot } { }
- }
- }{% yoko
- \__jlreq_pagestyle_normalizeposition:Nn \l__jlreq_pagestyle_runninghead_position_prop {{top}{center}}
- \__jlreq_pagestyle_normalizeposition:Nn \l__jlreq_pagestyle_nombre_position_prop {{bottom}{center}}
- % 警告
- \cs_set:Nn \__jlreq_tmpa:Nn { \str_set:Nx ##1 { \use_ii:nn ##2 } }
- \cs_generate_variant:Nn \__jlreq_tmpa:Nn { No }
- \tl_set:Nx \l__jlreq_tmpa_tl { \prop_item:Nn \l__jlreq_pagestyle_nombre_position_prop {0} }
- \__jlreq_tmpa:No \l__jlreq_tmpa_str \l__jlreq_tmpa_tl
- \tl_set:Nx \l__jlreq_tmpb_tl { \prop_item:Nn \l__jlreq_pagestyle_runninghead_position_prop {0} }
- \__jlreq_tmpa:No \l__jlreq_tmpb_str \l__jlreq_tmpb_tl
- \bool_if:nT { (
- \legacy_if_p:n { @tate } && (
- \str_if_eq_p:Vn \l__jlreq_tmpa_str { right } ||
- \str_if_eq_p:Vn \l__jlreq_tmpb_str { right}
- )
- ) || (
- (! \legacy_if_p:n { @tate } ) && (
- \str_if_eq_p:Vn \l__jlreq_tmpa_str { left } ||
- \str_if_eq_p:Vn \l__jlreq_tmpb_str { left }
- )
- ) } {
- \legacy_if:nT { @twoside } {
- \jlreq@note{柱やノンブルは,左ページでは,基本版面の左端の延長線にノンブル又は柱の先頭をそろえて配置するか,基本版面の左端の延長線から基本版面の文字サイズの全角アキだけ右に寄せた位置に配置する (ページスタイル #1 内,2.6.1.b).}%
- }
- }%
- % フォント変更命令に文字出力命令が入っているとエラーになるのを回避するために\setboxでごまかす.
- \setbox\jlreq@tempboxa=\hbox{\prop_item:Nn \l__jlreq_pagestyle_runninghead_font_prop {0}
- \bool_if:nT {
- \dim_compare_p:n { \l__jlreq_pagestyle_gap_tl < 1.49\jlreq@zw } ||
- ( \dim_compare_p:n { \l__jlreq_pagestyle_gap_tl > 1.51\jlreq@zw } && \dim_compare_p:n { \l__jlreq_pagestyle_gap_tl < 1.99\jlreq@zw } ) ||
- \dim_compare_p:n { \l__jlreq_pagestyle_gap_tl > 2.01\jlreq@zw }
- }{
- \jlreq@note{ノンブルと柱との空き量は柱に使用する文字サイズの2倍又は1.5倍とする (ページスタイル #1 内,2.6.1.c).}
- }
- }%
- \prop_clear:N \l__jlreq_tmpa_prop % \l__jlreq_tmpa_prop{odd-top}に中身トークン列
- \clist_map_inline:nn { odd,even } { % ##1
- \clist_map_inline:nn { top,bottom } { % ####1
- \prop_clear:N \l__jlreq_tmpb_prop % 左,真ん中,右のトークン列をいったん入れる
- \clist_map_inline:nn {left,center,right} { % ########1
- % even時は左右がひっくり返るが,それは下位マクロに任せる
- % 柱→\l__jlreq_tmpa_tl
- \__jlreq_pagestyle_makeyoko_each:NnnncNNo \l__jlreq_tmpa_tl {##1} {####1} {########1} { l__jlreq_pagestyle_##1_runninghead_prop } \l__jlreq_pagestyle_runninghead_font_prop \l__jlreq_pagestyle_runninghead_position_prop \l__jlreq_pagestyle_runninghead_gap_tl
- % ノンブル→\l__jlreq_tmpa_tl
- \__jlreq_pagestyle_makeyoko_each:NnnncNNo \l__jlreq_tmpb_tl {##1} {####1} {########1} { l__jlreq_pagestyle_nombre_prop } \l__jlreq_pagestyle_nombre_font_prop \l__jlreq_pagestyle_nombre_position_prop \l__jlreq_pagestyle_nombre_gap_tl
- % 柱とノンブルを結合し\l__jlreq_tmpb_propへ代入
- \__jlreq_pagestyle_concat_runhead_nombre:Nnnooo \l__jlreq_tmpa_tl {########1} {##1} \l__jlreq_tmpa_tl \l__jlreq_tmpb_tl \l__jlreq_pagestyle_gap_tl
- \prop_put:Nno \l__jlreq_tmpb_prop {########1} \l__jlreq_tmpa_tl
- }
- % 左,中央,右を結合し\l__jlreq_tmpa_tlへ
- \__jlreq_pagestyle_concat_left_center_right:Nneee \l__jlreq_tmpa_tl {##1} {\prop_item:Nn \l__jlreq_tmpb_prop {left} } {\prop_item:Nn \l__jlreq_tmpb_prop {center} } {\prop_item:Nn \l__jlreq_tmpb_prop {right} }
- % デフォルトのフォーマットの設定
- \bool_if:nTF { \dim_compare_p:n { \jlreq@sidenote@length > 0pt } && (! \legacy_if_p:n { @tate } ) }{
- \tl_set:Nn \l__jlreq_tmpb_tl {\hss\hbox to \jlreqyokoheadlength{########1}\hss}
- }{
- \tl_set:Nn \l__jlreq_tmpb_tl {########1}
- }
- \__jlreq_pagestyle_applyformat:NocN \l__jlreq_tmpa_tl \l__jlreq_tmpa_tl { l__jlreq_pagestyle_##1_####1_format_tl } \l__jlreq_tmpb_tl
- % 傍注用調整
- \dim_compare:nNnT {\jlreq@sidenote@length}>{0pt} {
- \legacy_if:nF { @tate } {
- \legacy_if:nTF { @twocolumn } {
- \__jlreq_pagestyle_addsidenotemargin_bothside:N \l__jlreq_tmpa_tl
- }{
- \str_if_eq:nnTF { ##1} { odd } {
- \__jlreq_pagestyle_addsidenotemargin_right:N \l__jlreq_tmpa_tl
- }{
- \__jlreq_pagestyle_addsidenotemargin_left:N \l__jlreq_tmpa_tl
- }
- }
- }
- }
- \prop_put:Nno \l__jlreq_tmpa_prop {##1-####1} \l__jlreq_tmpa_tl
- }
- }
- % \l__jlreq_tmpa_tlに定義を入れる
- \tl_set:Nx \l__jlreq_tmpa_tl {
- \exp_not:n { \def\@oddhead } { \prop_item:Nn \l__jlreq_tmpa_prop { odd-top } }
- \exp_not:n { \def\@oddfoot } { \prop_item:Nn \l__jlreq_tmpa_prop { odd-bottom } }
- \exp_not:n { \def\@evenhead } { \prop_item:Nn \l__jlreq_tmpa_prop { even-top } }
- \exp_not:n { \def\@evenfoot } { \prop_item:Nn \l__jlreq_tmpa_prop { even-bottom } }
- }
- }
- % _iiが存在するか調べて\l__jlreq_tmpa_boolに入れる
- \bool_set:Nn \l__jlreq_tmpa_bool {
- \prop_if_in_p:Nn \l__jlreq_pagestyle_odd_runninghead_prop {1} || \prop_if_in_p:Nn \l__jlreq_pagestyle_odd_runninghead_prop {2}
- }
- \tl_set:Nx \l__jlreq_do_tl {
- \exp_not:n {\edef} \exp_not:c {ps@#1} { \exp_not:N \exp_not:n {
- \exp_not:n { \def\jlreq@current@pagestyle{#1} }
- \bool_if:nT { \l__jlreq_pagestyle_clearmarkcommand_bool } { \exp_not:n { \jlreq@heading@execmacro@toallheadings\jlreq@clearheadingmarks } }
- \exp_not:n {\let\@mkboth=}\bool_if:NTF \l__jlreq_tmpa_bool { \exp_not:N \markboth } { \exp_not:N \jlreq@markboth }
- \exp_not:o \l__jlreq_tmpa_tl
- \exp_not:o \l__jlreq_pagestyle_markcommands_tl
- }}
- }
- \exp_after:wN \group_end:
- \l__jlreq_do_tl
-}
-
-\if@tate
- \def\jlreqyokoheadlength{\textheight}
-\else
- \ifdim\jlreq@sidenote@length>0pt
- \if@twocolumn
- \def\jlreqyokoheadlength{\dimexpr\textwidth + 2\jlreq@sidenote@length + 2\jlreq@sidenote@sep\relax}
- \else
- \def\jlreqyokoheadlength{\dimexpr\textwidth + \jlreq@sidenote@length + \jlreq@sidenote@sep\relax}
- \fi
- \else
- \def\jlreqyokoheadlength{\dimexpr\textwidth\relax}
- \fi
-\fi
-\edef\jlreqtateheadlength{\unexpanded{\dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\jlreq@zh}\fi\noexpand\relax}
-
-\NewDocumentCommand{\NewPageStyle} { m +m } {%
- \expandafter\@ifdefinable\csname ps@#1\endcsname{\DeclarePageStyle{#1}{#2}}%
-}
-\NewDocumentCommand{\RenewPageStyle} { m +m } {%
- \@ifundefined{ps@#1}{\@latex@error{\expandafter\string\csname#1\endcsname\space undefined}\@ehc}{\DeclarePageStyle{#1}{#2}}%
-}
-\NewDocumentCommand{\ProvidePageStyle} { m +m } {%
- \@ifundefined{ps@#1}{\DeclarePageStyle{#1}{#2}}{}%
-}
-\NewDocumentCommand{\ModifyPageStyle} { m +m } {%
- \begingroup
- \@ifundefined{jlreq@pagestyle@setting@#1}{\ClassError{jlreq}{Unknown~pagestyle:~#1}{\@ehc}}{}%
- \expandafter\let\expandafter\setting\expandafter=\csname jlreq@pagestyle@setting@#1\endcsname
- \edef\jlreq@do{\noexpand\RenewPageStyle{#1}{\exp_not:o {\setting},\unexpanded{#2}}}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-%. フロート関連
-% 4.3.3.dの例,縦組みの時だけど横にも適用……
-\setlength{\floatsep}{1\jlreq@gol plus 1\jlreq@gol}
-\setlength{\textfloatsep}{1\jlreq@gol plus \baselineskip}
-\intextsep=\textfloatsep
-\dblfloatsep=\floatsep
-\dbltextfloatsep=\textfloatsep
-% 残りはデフォルトにしておく.
-
-%. 環境も引数にとる可能性のある\jlreqsetup用マクロ.
-% #3={<設定1>,<環境名>=<設定2>}のようなものを受け付ける.
-% #2に<設定1>が,#2@<環境名>に<設定2>が入る.#1には#2@<環境名>が定義されている<環境名>をカンマ区切りで入れる.
-% \jlreqsetup{X,env=B}の後に\jlreqsetup{Y}を指定すると,env環境に対する設定はYになるようにする.
-% ただし\jlreqsetup{env=C,Y}とした場合はenv環境に対してはC.
-\long\def\jlreq@jlreqsetup@withenv#1#2#3{%
- \@ifundefined{#1}{\expandafter\def\csname #1\endcsname{}}{}%
- \begingroup
- \def\jlreq@do{}%
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{%
- \tl_put_left:Nx \jlreq@do {%
- \noexpand\edef\exp_not:c {#2}{\unexpanded{\unexpanded{##1}}}
- \noexpand\def\exp_not:c {#1}{}%
- }%
- \clist_map_variable:cNn {#1} \jlreq@tempa {
- \tl_put_left:Nx \jlreq@do {\noexpand\let\exp_not:c {#2@\jlreq@tempa}\noexpand\@undefined}%
- }%
- }{%
- \tl_put_right:Nx \jlreq@do {%
- \noexpand\edef\exp_not:c {#2@##1}{\unexpanded{\unexpanded{##2}}}%
- \unexpanded{\def\jlreq@tempa{\jlreq@helper@removeelement{##1}}}%
- \unexpanded{\expandafter\jlreq@tempa\expandafter}{\exp_not:c {#1}}{\exp_not:c {#1}}%
- \unexpanded{\tl_put_right:cn {#1}{,##1}}%
- }%
- }%
- }{#3}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-% #1@#2が定義されていれば\#1@#2の中身に,そうでなければ\#1の中身に展開される.
-% 展開は\unexpandedで抑制される.
-\def\jlreq@jlreqsetup@withenv@nameuse#1#2{%
- \jlreq@if{\expandafter\ifx\csname #1@#2\endcsname\relax\fi}{\exp_args:Nc \exp_not:o {#1}}{\exp_args:Nc \exp_not:o {#1@#2}}%
-}
-% 4.3.1 注4
-\newlength\abovecaptionskip
-\newlength\belowcaptionskip
-
-%. 図表
-\newcommand{\@makecaption}[2]{{%
- % \jlreq@tempbに現在の環境を入れる.
- \@ifundefined{@currenvir}{%
- \@ifundefined{@captype}%
- {\def\jlreq@tempb{}}%
- {\let\jlreq@tempb=\@captype}%
- }{\let\jlreq@tempb=\@currenvir}%
- \reset@font\small
- \vskip\abovecaptionskip
- \edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@label@format@setting}{\jlreq@tempb}}}%
- \jlreq@do
- \setbox\jlreq@tempboxa=\hbox{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@label@font@setting}{\jlreq@tempb}#1}%
- \ifdim\wd\jlreq@tempboxa=0pt
- \edef\jlreq@tempa{{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@font@setting}{\jlreq@tempb}\unexpanded{#2}}}%
- \else
- \edef\jlreq@tempa{%
- {\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@label@font@setting}{\jlreq@tempb}\exp_not:o {\jlreq@tempa{#1}}}%
- \unexpanded{\hskip\glueexpr}\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@after@label@space@setting}{\jlreq@tempb}\noexpand\relax
- {\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@font@setting}{\jlreq@tempb}\unexpanded{#2}}%
- }%
- \fi
- \setbox\@tempboxa=\hbox{\jlreq@tempa}%
- \ifdim\wd\@tempboxa>\hsize\relax
- \edef\jlreq@tempc{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@align@setting@large}{\jlreq@tempb}}%
- \else
- \global\@minipagefalse
- \edef\jlreq@tempc{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@align@setting@small}{\jlreq@tempb}}%
- \fi
- \expandafter\let\expandafter\jlreq@align\jlreq@tempc
- \ifx c\jlreq@align\centering\fi
- \ifx r\jlreq@align\raggedleft\fi
- \unhbox\@tempboxa
- \par
- \vskip\belowcaptionskip
-}}
-
-\keys_define:nn { jlreqsetup } {
- caption_font .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@font@envlist}{jlreq@@makecaption@font@setting}{#1}},
- caption_label_font .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@label@font@envlist}{jlreq@@makecaption@label@font@setting}{#1}},
- caption_label_format .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@label@format@envlist}{jlreq@@makecaption@label@format@setting}{#1}},
- caption_after_label_space .code:n = {\jlreq@jlreqsetup@withenv{jlreq@@makecaption@after@label@space@envlist}{jlreq@@makecaption@after@label@space@setting}{#1}}
-}
-
-%%
-%% \jlreq@@makecaption@align@setting@small(@env)に小さい時のalign,jlreq@@makecaption@align@setting@large(@env)に大きいときのalignを入れる.
-%% \l_jlreq_tmpb_tlに各環境の設定クリア
-%% \l_jlreq_tmpc_tlにsmall/largeどちらのも設定
-%% \l_jlreq_tmpd_tlにlarge設定
-%% #1=env,#2=値
-\clist_new:N \g__jlreq_@makecaption_align_envlist_clist
-\cs_set:Nn \__jlreq_@makecaption_align_set:nn {
- \str_case:nnF {#2} {
- { center } { \__jlreq_@makecaption_align_set_aux:nnn {#1} { } {c} }
- { left } { \__jlreq_@makecaption_align_set_aux:nnn {#1} { } {l} }
- { right } { \__jlreq_@makecaption_align_set_aux:nnn {#1} { } {r} }
- { top } { \__jlreq_@makecaption_align_set_aux:nnn {#1} { } {l} }
- { bottom } { \__jlreq_@makecaption_align_set_aux:nnn {#1} { } {r} }
- { *center } { \__jlreq_@makecaption_align_set_aux:nnn {#1} {*} {c} }
- { *left } { \__jlreq_@makecaption_align_set_aux:nnn {#1} {*} {l} }
- { *right } { \__jlreq_@makecaption_align_set_aux:nnn {#1} {*} {r} }
- { *top } { \__jlreq_@makecaption_align_set_aux:nnn {#1} {*} {l} }
- { *bottom } { \__jlreq_@makecaption_align_set_aux:nnn {#1} {*} {r} }
- }{
- \ClassWarning { jlreq } { Unknown~position~`#2`~in~caption_align,~ignored }
- }
-}
-\cs_generate_variant:Nn \__jlreq_@makecaption_align_set:nn { VV }
-\cs_set:Nn \__jlreq_@makecaption_align_set_aux:nnn {
- \tl_if_empty:nTF {#1} {
- \clist_map_inline:Nn \g__jlreq_@makecaption_align_envlist_clist {
- \tl_put_right:Nx \l_jlreq_tmpb_tl {
- \exp_not:N \let \exp_not:c {jlreq@@makecaption@align@setting@large##1}=\exp_not:N \@undefined
- }
- \tl_if_empty:nT {#2} {
- \tl_put_right:Nx \l_jlreq_tmpb_tl {
- \exp_not:N \let \exp_not:c {jlreq@@makecaption@align@setting@small##1}=\exp_not:N \@undefined
- }
- }
- }
- }{
- \tl_put_right:Nn \l_jlreq_tmpb_tl {
- \clist_gput_right:Nn \g__jlreq_@makecaption_align_envlist_clist {#1}
- }
- }
- \tl_if_empty:nTF {#2} {
- \tl_put_right:Nn \l_jlreq_tmpc_tl {
- \expandafter\let\csname jlreq@@makecaption@align@setting@small#1\endcsname=#3
- \expandafter\let\csname jlreq@@makecaption@align@setting@large#1\endcsname=#3
- }
- }{
- \tl_put_right:Nn \l_jlreq_tmpd_tl {
- \expandafter\let\csname jlreq@@makecaption@align@setting@large#1\endcsname=#3
- }
- }
-}
-\cs_set:Nn \__jlreq_@makecaption_align_set_with_check_value:nn {
- \tl_if_empty:nTF {#2}
- { \__jlreq_@makecaption_align_set:nn {} {#1} }
- { \__jlreq_@makecaption_align_set:nn {@#1} {#2} }
-}
-\cs_generate_variant:Nn \__jlreq_@makecaption_align_set_with_check_value:nn {Vn}
-
-\keys_define:nn { __jlreqsetup_caption_align } {
- center .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- left .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- right .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- top .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- bottom .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- *center .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- *left .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- *right .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- *top .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- *bottom .code:n = { \__jlreq_@makecaption_align_set_with_check_value:Vn \l_keys_key_str {#1} },
- unknown .code:n = {
- \clist_map_variable:nNn {#1} \l__jlreq_tmpa_tl {
- \tl_trim_spaces:N \l__jlreq_tmpa_tl
- \str_set_eq:NN \l__jlreq_tmpa_str \l_keys_key_str
- \str_put_left:Nn \l__jlreq_tmpa_str {@}
- \__jlreq_@makecaption_align_set:VV \l__jlreq_tmpa_str \l__jlreq_tmpa_tl
- }
- }
-}
-
-\keys_define:nn { jlreqsetup } {
- caption_align .code:n = {
- \group_begin:
- \tl_clear:N \l_jlreq_tmpb_tl
- \tl_clear:N \l_jlreq_tmpc_tl
- \tl_clear:N \l_jlreq_tmpd_tl
- \keys_set:nn { __jlreqsetup_caption_align } {#1}
- \cs_set:Nx \l_jlreq_do:{
- \exp_not:o \l_jlreq_tmpb_tl
- \exp_not:o \l_jlreq_tmpc_tl
- \exp_not:o \l_jlreq_tmpd_tl
- }
- \exp_after:wN \group_end:
- \l_jlreq_do:
- }
-}
-
-% 特に根拠のない値
-\setlength\abovecaptionskip{.5\jlreq@gol}
-\setlength\belowcaptionskip{0pt}
-
-%.. figure環境
-\newcounter{figure}
-\str_if_eq:VnTF \jlreq@article@type { article } {
- \renewcommand{\thefigure}{\@arabic\c@figure}
-}{%
- \@addtoreset{figure}{chapter}
- \renewcommand{\thefigure}{\ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@figure}
-}
-\newcommand*{\fps@figure}{h}
-\newcommand*{\ftype@figure}{1}
-\newcommand*{\ext@figure}{lof}
-\newcommand*{\fnum@figure}{\figurename\thefigure}
-\newenvironment{figure}{\@float{figure}}{\end@float}
-\newenvironment{figure*}{\@dblfloat{figure}}{\end@dblfloat}
-
-%.. table環境
-\newcounter{table}
-\str_if_eq:VnTF \jlreq@article@type { article } {
- \renewcommand{\thetable}{\@arabic\c@table}
-}{%
- \@addtoreset{table}{chapter}
- \renewcommand{\thetable}{\ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@table}
-}
-\newcommand*{\fps@table}{h}
-\newcommand*{\ftype@table}{2}
-\newcommand*{\ext@table}{lot}
-\newcommand*{\fnum@table}{\tablename\thetable}
-\newenvironment{table}{\@float{table}}{\end@float}
-\newenvironment{table*}{\@dblfloat{table}}{\end@dblfloat}
-
-%. タイトル周り
-\newenvironment{titlepage}{%
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse\newpage
- \fi
- \thispagestyle{empty}%
- \setcounter{page}{1}%
-}{%
- \if@restonecol\twocolumn\else\newpage\fi
- \if@twoside\else
- \setcounter{page}{1}%
- \fi
-}
-
-\if@titlepage
- \newcommand{\maketitle}{%
- % jarticleとかからあまり変更していない
- \begin{titlepage}%
- \let\footnotesize\small
- \let\footnoterule\relax
- \let\footnote\thanks
- \null\vfil
- \vskip 4\baselineskip
- \begin{center}%
- {\LARGE \@title \par}%
- \vskip\baselineskip%
- {\Large
- \lineskip .75em%
- % 縦書き時には表組み内でも縦書きにするようにする
- \if@tate
- \let\jlreq@temporary@original@ialign=\ialign
- \tl_put_left:Nn \ialign {\unexpanded{\tate\let\ialign=\jlreq@temporary@original@ialign}}{}{}%
- \fi
- \begin{tabular}[t]{c}%
- \@author
- \end{tabular}\par}%
- \vskip\baselineskip
- {\large\@date\par}%
- \end{center}\par
- \@thanks
- \vfil\null
- \end{titlepage}%
- \jlreq@endofmaketitle
- }
-\else
- \newcommand{\maketitle}{%
- \par
- \begingroup
- \renewcommand{\thefootnote}{\fnsymbol{footnote}}%
- \renewcommand{\@makefnmark}{\hbox{%
- \jlreq@iftdir{\yoko}{}%
- \rlap{\@textsuperscript{\normalfont\@thefnmark}}%
- }}%
- \renewcommand{\jlreq@referencemark@format}[1]{\@makefnmark}% うーん
- \if@twocolumn
- \ifnum\col@number=\@ne
- \@maketitle
- \else
- \twocolumn[\@maketitle]%
- \fi
- \else
- \newpage
- \global\@topnum\z@
- \@maketitle
- \fi
- % \pagestyle{empty}の時はそのまま.
- \bool_if:nT {!(
- \tl_if_empty_p:o \@oddhead &&
- \tl_if_empty_p:o \@evenhead &&
- \tl_if_empty_p:o \@oddfoot &&
- \tl_if_empty_p:o \@evenfoot
- )} { \thispagestyle{plain} }
- \@thanks
- \endgroup
- \jlreq@endofmaketitle
- }
-\fi
-% いろいろクリアする.
-\def\jlreq@endofmaketitle{%
- \setcounter{footnote}{0}%
- \global\let\thanks\relax
- \global\let\maketitle\relax
- \global\let\p@thanks\relax
- \global\let\@thanks\@empty
- \global\let\@author\@empty
- \global\let\@date\@empty
- \global\let\@title\@empty
- \global\let\title\relax
- \global\let\author\relax
- \global\let\date\relax
- \global\let\and\relax
-}%
-% \vskipを\baselineskipにしてみた.
-\def\@maketitle{%
- \newpage\null
- \vskip 2\baselineskip%
- \begin{center}%
- {\jlreq@keepbaselineskip{\LARGE}\@title\par}%
- \vskip\baselineskip
- {\jlreq@keepbaselineskip{\large}%
- \lineskip .5\jlreq@zh
- % 縦書き時には表組み内でも縦書きにするようにする
- \if@tate
- \let\jlreq@temporary@original@ialign=\ialign
- \tl_put_left:Nn \ialign {\unexpanded{\tate\let\ialign=\jlreq@temporary@original@ialign}}{}{}%
- \fi
- \begin{tabular}[t]{c}%
- \@author
- \end{tabular}%
- \par
- }%
- \ifx\@date\@empty\else
- \vskip\baselineskip
- {\jlreq@keepbaselineskip{\large}\@date}%
- \fi
- \end{center}%
- \par
- \vskip\baselineskip
- \ifvoid\jlreq@abstractbox\else\unvbox\jlreq@abstractbox\fi
-}
-
-%.. abstract
-\def\jlreq@parhook@abstract{}
-\str_if_eq:VnF \jlreq@article@type { book } {
- \newbox\jlreq@abstractbox
- \newcommand*{\abstractname}{概要}
- \if@titlepage
- % articleとかjarticleとかと同じ
- \newenvironment{abstract}{%
- \titlepage
- \null\vfil
- \@beginparpenalty\@lowpenalty
- \begin{center}%
- {\sffamily\gtfamily\bfseries\abstractname}%
- \@endparpenalty\@M
- \end{center}%
- \par
- }{%
- \par\vfil\null\endtitlepage
- }
- \else
- \newenvironment{abstract}{%
- \ifnum0\if@twocolumn\else1\fi\ifjlreq@preamble1\fi>0
- \ifjlreq@preamble
- \ifx l\jlreq@engine\else
- \def\jlreq@parhook@abstract{\futurelet\jlreq@nextchar\jlreq@openbracket@hook}%
- \PushPostHook{par}{\jlreq@parhook@abstract}%
- \fi
- \fi
- % とりあえず全部ボックスに入れる.
- \global\setbox\jlreq@abstractbox=\vtop\bgroup
- \ifjlreq@preamble
- % preamble後っぽく振る舞う
- \@noskipsecfalse
- % \@nodocumentが入っているので一時的に無効化
- \everypar{}%
- \fi
- \if@twocolumn
- \parindent=0pt
- \hsize=\textwidth
- % 後で\@maketitleとともに呼び出されるときは\twcolumn[***]で呼び出される.
- \begin{minipage}[b]{\textwidth}%
- \fi
- \bgroup
- \small
- \parindent=1\jlreq@zw
- \begin{center}%
- {\sffamily\gtfamily\bfseries\abstractname}%
- \end{center}%
- \list{}{%
- \listparindent\parindent
- \itemindent\listparindent
- \labelwidth\z@
- \labelsep\z@
- \leftmargin=2\jlreq@zw
- \rightmargin\leftmargin
- \@tempdima=1\jlreq@zw
- \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax
- \@tempdimc=\@tempdimb
- \divide\@tempdimb by \@tempdima\multiply\@tempdimb by \@tempdima
- \ifdim\@tempdimb=\@tempdimc\else\@tempdimb=\dimexpr\@tempdimb - 1\jlreq@zw\relax\fi
- \leftmargin=\dimexpr\leftmargin + (\@tempdimc - \@tempdimb)/2\relax
- \rightmargin=\dimexpr\rightmargin + (\@tempdimc - \@tempdimb)/2\relax
- \parsep\z@ \@plus.1\jlreq@zh
- }%
- \item\relax
- \else
- \section*{\abstractname}%
- \fi
- }{%
- \ifnum0\if@twocolumn\else1\fi\ifjlreq@preamble1\fi>0
- \endlist
- \egroup
- \vspace{\baselineskip}%
- \if@twocolumn
- \end{minipage}
- \fi
- \egroup
- \fi
- \ifjlreq@preamble
- \ifx l\jlreq@engine\else
- \def\jlreq@parhook@abstract{}%
- \fi
- \else
- \unvbox\jlreq@abstractbox
- \fi
- }
- \fi
-}
-%. 箇条書き. cf. JISX4051 8.4
-% 用語定義型
-\newenvironment{description}{\list{}{%
- \setlength{\labelsep}{1\jlreq@zw}%
- \setlength{\labelwidth}{\dimexpr\leftmargin - \labelsep\relax}%
- \let\makelabel=\descriptionlabel
-% 同行じゃない場合はこんな感じ?
-% \let\jlreq@original@@item=\@item
-% \def\@item[##1]{\jlreq@original@@item[##1]\mbox{}\par
- }}{\endlist}
-\newcommand{\descriptionlabel}[1]{\normalfont\sffamily\gtfamily\bfseries #1}
-
-%.. 箇条書き
-% #3={<設定1>,i=<設定2>,<環境名>={<設定3>,ii=<設定4>}}のような設定を解釈する.
-% <設定2>は#2@iに,<設定4>は#2@ii@<環境名>に格納される.
-% <設定1>の指定はi=<設定1>,..,vi=<設定1>と等価.<設定3>も同様.
-% #1には現在何か値が定義されている環境名をカンマ区切りで入れる.
-\long\def\jlreq@jlreqsetup@itemization#1#2#3{
- \@ifundefined{#1}{\expandafter\def\csname #1\endcsname{}}{}%
- \begingroup
- \def\jlreq@generalset{}%
- \def\jlreq@levelset{}%
- \def\jlreq@envset{}%
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{%
- % 生の値.環境に対するものをクリアし,全ての<i-iv>に同じ値を設定
- % 環境一覧リストもクリア.
- \clist_map_variable:nNn {i,ii,iii,iv,v,vi} \jlreq@tempa{
- \clist_map_variable:cNn {#1} \jlreq@tempb {
- \ifx\jlreq@tempb\@empty\else
- \tl_put_right:Nx \jlreq@generalset {
- \noexpand\let\exp_not:c{#2@\jlreq@tempa @\jlreq@tempb}\noexpand\@undefined
- }
- \fi
- }%
- \tl_put_right:Nx \jlreq@generalset {%
- \exp_not:N \edef\exp_not:c {#2@\jlreq@tempa}{\exp_not:n {\exp_not:n {##1}}}%
- }%
- }%
- \tl_put_right:Nn \jlreq@generalset { \expandafter\def\csname #1\endcsname{} }%
- }{%
- \bool_if:nTF{ \str_if_eq_p:nn {##1} {i} || \str_if_eq_p:nn {##1} {ii} || \str_if_eq_p:nn {##1} {iii} || \str_if_eq_p:nn {##1} {iv} || \str_if_eq_p:nn {##1} {v} || \str_if_eq_p:nn {##1} {vi} }{
- % i=とかの時,環境に対応するものをクリアし,\#2@##1に値を入れる
- \clist_map_variable:cNn {#1} \jlreq@tempa {
- \ifx\jlreq@tempa\@empty\else
- \tl_put_left:Nx \jlreq@envset{\noexpand\let\exp_not:c {#2@##1@\jlreq@tempa}\noexpand\@undefined}%
- \fi
- }%
- \tl_put_right:Nx \jlreq@envset{\exp_not:N \edef\exp_not:c{#2@##1}{\exp_not:n {\exp_not:n{##2}}}}%
- }{%
- % そうでないとき,環境.##1 = 環境名
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{%
- % i - viまでに全てセットする.
- \clist_map_variable:nNn {i,ii,iii,iv,v,vi} \jlreq@tempa{
- \tl_put_left:Nx \jlreq@envset{\noexpand\edef\exp_not:c {#2@\jlreq@tempa @##1}{\unexpanded{\unexpanded{####1}}}}%
- }%
- }{%
- % ピンポイント代入
- \tl_put_right:Nx \jlreq@envset {
- \exp_not:N \edef\exp_not:c {#2@####1@##1}{\exp_not:n {\exp_not:n {####2}}}
- }%
- }%
- }{##2}%
- \tl_put_right:Nx \jlreq@envset{%
- \exp_not:n {\def\jlreq@tempa{\jlreq@helper@removeelement{##1}}}%
- \exp_not:n {\expandafter\jlreq@tempa\expandafter}{\exp_not:c{#1}}{\exp_not:c {#1}}%
- \exp_not:N \tl_put_right:Nn \exp_not:c {#1}{\exp_not:n {,##1}}%
- }%
- }%
- }%
- }{#3}%
- \edef\jlreq@do{\exp_not:o {\jlreq@generalset}\exp_not:o {\jlreq@levelset}\exp_not:o {\jlreq@envset}}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-
-\def\jlreq@itemization@beforeafter@space@envlist{}
-\keys_define:nn { jlreqsetup } {
- itemization_beforeafter_space .code:n = {\jlreq@jlreqsetup@itemization{jlreq@itemization@beforeafter@space@envlist}{jlreq@itemization@beforeafter@space@setting}{#1}},
- itemization_itemsep .code:n = {\jlreq@jlreqsetup@withenv{jlreq@itemization@itemsep@envlist}{jlreq@itemization@itemsep@setting}{#1}},
- itemization_labelsep .code:n = {\jlreq@jlreqsetup@withenv{jlreq@itemization@labelsep@envlist}{jlreq@itemization@labelsep@setting}{#1}},
- itemization_label_length .code:n = {\jlreq@jlreqsetup@itemization{jlreq@itemization@label@length@envlist}{jlreq@itemization@label@length@setting}{#1}}
-}
-% enumerate, itemize用初期化,#1 = i,ii,...
-\def\jlreq@init@list#1{%
- \setlength{\partopsep}{0pt}%
- \setlength{\itemsep}{\dimexpr\jlreq@jlreqsetup@withenv@nameuse{jlreq@itemization@itemsep@setting}{\@currenvir}\relax}%
- \setlength{\parsep}{0pt}%
- \setlength{\listparindent}{\parindent}%
- \setlength{\labelsep}{\dimexpr\jlreq@jlreqsetup@withenv@nameuse{jlreq@itemization@labelsep@setting}{\@currenvir}\relax}%
- \setlength{\labelwidth}{\dimexpr\jlreq@jlreqsetup@withenv@nameuse{jlreq@itemization@label@length@setting@#1}{\@currenvir}\relax}%
- \setlength{\topsep}{\dimexpr\jlreq@jlreqsetup@withenv@nameuse{jlreq@itemization@beforeafter@space@setting@#1}{\@currenvir}\relax}%
- \setlength{\leftmargin}{\dimexpr\csname leftmargin#1\endcsname}%
- \setlength{\itemindent}{\dimexpr\jlreq@jlreqsetup@withenv@nameuse{jlreq@itemization@label@length@setting@#1}{\@currenvir} + \labelsep - \leftmargin\relax}%
-}
-
-\def\@listi{\jlreq@init@list{i}}%
-\let\@listI\@listi
-\def\@listii{\jlreq@init@list{ii}}
-\def\@listiii{\jlreq@init@list{iii}}
-\def\@listiv{\jlreq@init@list{iv}}
-\def\@listv{\jlreq@init@list{v}}
-\def\@listvi{\jlreq@init@list{vi}}
-
-% 引用系.3.5.2の例.
-\keys_define:nn { jlreqsetup } {
- quote_indent .tl_set:N = \jlreq@quote@indent,
- quote_end_indent .tl_set:N = \jlreq@quote@end@indent,
- quote_fontsize .choices:nn = {normalsize,small,footnotesize,scriptsize,tiny,{}}{
- \jlreq@ifempty{#1}{\def\jlreq@quote@fontsize{}}{\edef\jlreq@quote@fontsize{\exp_not:c {#1}}}
- },
- quote_beforeafter_space .tl_set:N = \jlreq@quote@beforeafter@space
-}
-
-\newenvironment{verse}
- {\let\\\@centercr
- \list{}{\itemsep\z@ \itemindent -2\jlreq@zw
- \listparindent\itemindent
- \labelwidth\z@
- \labelsep\z@
- \leftmargin=\dimexpr\jlreq@quote@indent\relax
- \addtolength{\leftmargin}{2\jlreq@zw}%
- \rightmargin=\dimexpr\jlreq@quote@end@indent\relax
- \begingroup
- \jlreq@quote@fontsize
- \edef\jlreq@do{\noexpand\@tempdima=\the\dimexpr1\jlreq@zw\relax\relax}%
- \expandafter\endgroup
- \jlreq@do
- \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax
- \@tempdimc=\@tempdimb
- \divide\@tempdimb by \@tempdima\multiply\@tempdimb by \@tempdima
- \topsep=\dimexpr\jlreq@quote@beforeafter@space\relax
- \leftmargin=\dimexpr\leftmargin + \@tempdimc - \@tempdimb\relax}%
- \item\relax\jlreq@quote@fontsize}{\endlist}
-\newenvironment{quotation}
- {\list{}{%
- \leftmargin=\dimexpr\jlreq@quote@indent\relax
- \rightmargin=\dimexpr\jlreq@quote@end@indent\relax
- \begingroup
- \jlreq@quote@fontsize
- \edef\jlreq@do{\noexpand\@tempdima=\the\dimexpr1\jlreq@zw\relax\relax}%
- \expandafter\endgroup
- \jlreq@do
- \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax
- \@tempdimc=\@tempdimb
- \divide\@tempdimb by \@tempdima\multiply\@tempdimb by \@tempdima
- \leftmargin=\dimexpr\leftmargin + \@tempdimc - \@tempdimb\relax
- \listparindent\parindent
- \itemindent\listparindent
- \labelwidth\z@
- \labelsep\z@
- \topsep=\dimexpr\jlreq@quote@beforeafter@space\relax
- \parsep\z@ \@plus.1\jlreq@gol}%
- \item\relax\jlreq@quote@fontsize}{\endlist}
-\newenvironment{quote}
- {\list{}{%
- \leftmargin=\dimexpr\jlreq@quote@indent\relax
- \rightmargin=\dimexpr\jlreq@quote@end@indent\relax
- \begingroup
- \jlreq@quote@fontsize
- \edef\jlreq@do{\noexpand\@tempdima=\the\dimexpr 1\jlreq@zw\relax\relax}%
- \expandafter\endgroup
- \jlreq@do
- \@tempdimb=\dimexpr\linewidth - \@totalleftmargin - \leftmargin - \rightmargin\relax
- \@tempdimc=\@tempdimb
- \divide\@tempdimb by \@tempdima\multiply\@tempdimb by \@tempdima
- \leftmargin=\dimexpr\leftmargin + \@tempdimc - \@tempdimb\relax
- \labelwidth\z@
- \itemindent\z@
- \topsep=\jlreq@speciallength{\jlreq@quote@beforeafter@space}%
- \listparindent\z@}%
- \item\relax\jlreq@quote@fontsize}{\endlist}
-
-%. 表関係 4.4
-% 表内の行間を0にする(4.4.3.f)
-\jlreq@saveoriginalcs{tabular}
-\jlreq@saveoriginalcs{endtabular}
-\tl_put_left:Nn \tabular {\begingroup\tl_put_right:Nn \@arrayparboxrestore{\baselineskip=0pt\lineskip=0pt}}
-\tl_put_right:Nn \endtabular{\endgroup}
-% 4.4.3.e
-\setlength\tabcolsep{.5\zh}
-\setlength\arraycolsep{.5\zw}
-% 4.4.3.j
-\setlength\arrayrulewidth{\jlreq@omotekeiwidth} % 4.4.3.c
-\setlength\doublerulesep{2pt}
-\setlength\tabbingsep{\labelsep}
-\skip\@mpfootins=\skip\footins
-\setlength\fboxsep{.3\zw}
-\setlength\fboxrule{\jlreq@omotekeiwidth} % 根拠はない
-% 後で
-\str_if_eq:VnTF \jlreq@article@type { article } {
- \renewcommand{\theequation}{\@arabic\c@equation}
-}{%
- \@addtoreset{equation}{chapter}
- \renewcommand{\theequation}{\ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation}
-}
-
-%. 目次
-\setcounter{tocdepth}{3}
-\newcommand{\@pnumwidth}{2\jlreq@mol}
-\newcommand{\@tocrmarg}{2.55em}
-\newcommand{\@dotsep}{2} % 狭くしてみた
-\prop_new:N \g__jlreq_tableofcontents_prop
-\newskip\toclineskip
-\setlength\toclineskip{0\jlreq@gol plus .02\jlreq@gol}
-% tarticleから
-\newdimen\@lnumwidth
-\def\numberline#1{\hbox to\@lnumwidth{#1\hfil}}
-
-% from latex.ltx
-\legacy_if:nT { @tate } {
- \def\addcontentsline#1#2#3{%
- \addtocontents{#1}{\protect\contentsline{#2}{#3}{\tatechuyoko*{\thepage}}{}%
- \protected@file@percent}}
-}
-
-\newcount\jlreq@top@contents % トップ見出しを入れる.レベルと同じ値.
-\jlreq@top@contents=-100
-\def\jlreq@set@top@contents#1{%
- \ifnum\jlreq@top@contents=-100
- \jlreq@top@contents=#1\relax
- \fi
-}
-\newcommand{\tableofcontents}{%
- \jlreq@top@contents=-100\relax
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse
- \fi
- \prop_item:Nn \g__jlreq_tableofcontents_prop { heading }
- \@mkboth{\contentsname}{\contentsname}%
- \@starttoc{toc}%
- \if@restonecol\twocolumn\fi
-}
-\keys_define:nn { jlreqsetup } {
- tableofcontents_heading .code:n = { \prop_gput:Nnn \g__jlreq_tableofcontents_prop { heading } {#1} }
-}
-\str_if_eq:VnTF \jlreq@article@type { article } {
- \keys_set:nn { jlreqsetup } { tableofcontents_heading = { \section*{\contentsname} } }
-}{
- \keys_set:nn { jlreqsetup } { tableofcontents_heading = { \chapter*{\contentsname} } }
-}
-
-
-
-% JIS X 4051自身の目次に近づけようかと……なりきれてないけど.
-% 文字の大きさは全て同じ(\normalsize)にする.
-% 見出しのレベルがあがると1文字分ずつ字下げしていく.
-% 第三引数は,上からの幅に加え更にトップの見出しからの差による補正(プラス)が入る.
-% 補正には\jlreq@top@contentsを使う.
-% 「トップ」というか,一番最初に現れた見出しを入れる.
-% リーダーは.から・に変更しました.
-\def\@dottedtocline#1#2#3#4#5{%
- \jlreq@set@top@contents{#1}%
- \ifnum #1>\c@tocdepth \else
- \vskip\toclineskip
- {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
- \parindent #2\relax\@afterindenttrue
- \interlinepenalty\@M
- \leavevmode
- \@lnumwidth #3\relax
- \@tempcnta=#1\relax
- \advance\@tempcnta by -\jlreq@top@contents
- \@tempdima=1\jlreq@mol
- \multiply \@tempdima by \@tempcnta
- \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
- \advance\leftskip\@tempdima
- {#4}\nobreak
- \leaders\hbox{$\m@th\mkern \@dotsep mu$\null\inhibitglue ・\inhibitglue\null$\m@th\mkern \@dotsep mu$}%
- \hfill\nobreak
- \hb@xt@\@pnumwidth{\hss\normalfont\normalcolor #5}%
- \par}%
- \fi}
-
-% listoffigures
-\newcommand{\listoffigures}{%
- \jlreq@top@contents=-100
- \section*{\listfigurename}%
- \@mkboth{\listfigurename}{\listfigurename}%
- \@starttoc{lof}%
-}
-\newcommand*{\l@figure}{\@dottedtocline{1}{0\jlreq@gol}{2\jlreq@gol}}
-\newcommand{\listoftables}{%
- \jlreq@top@contents=-100
- \section*{\listtablename}%
- \@mkboth{\listtablename}{\listtablename}%
- \@starttoc{lot}%
-}
-\let\l@table\l@figure
-
-%. 文献,そのまま
-\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em}
-\newenvironment{thebibliography}[1]{%
- \jlreq@oldfontcommand@enable
- \section*{\refname}%
- \@mkboth{\refname}{\refname}%
- \list{\@biblabel{\@arabic\c@enumiv}}%
- {\settowidth\labelwidth{\@biblabel{#1}}%
- \labelsep=1\jlreq@zw
- \leftmargin\labelwidth
- \advance\leftmargin\labelsep
- \itemindent=0pt
- \@openbib@code
- \usecounter{enumiv}%
- \let\p@enumiv\@empty
- \renewcommand\theenumiv{\@arabic\c@enumiv}}%
- \sloppy
- \clubpenalty4000
- \@clubpenalty\clubpenalty
- \widowpenalty4000%
- \sfcode`\.\@m
-}{%
- \def\@noitemerr{\@latex@warning{Empty~`thebibliography'~environment}}%
- \endlist
- \jlreq@oldfontcommand@disable
-}
-\let\@openbib@code\@empty
-
-%. 索引
-\newif\ifjlreq@resttate
-\newenvironment{theindex}{%
- \jlreq@oldfontcommand@enable
- \jlreq@iftdir{\clearpage\yoko\jlreq@resttatetrue}{\jlreq@resttatefalse}% 常に横書きにする
- \if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi
- \columnseprule\z@ \columnsep 2\jlreq@mol
- \twocolumn[\section*{\indexname}]%
- \@mkboth{\indexname}{\indexname}%
- \jlreq@theindex@pagestyle
- \parindent\z@
- \parskip\z@ \@plus .03\jlreq@gol\relax
- \let\item\@idxitem
-}{%
- \ifx\jlreq@theindex@savedpagestyle\@undefined\else\expandafter\pagestyle\expandafter{\jlreq@theindex@savedpagestyle}\fi
- \let\jlreq@theindex@savedpagestyle\@undefined
- \if@restonecol\onecolumn\else\clearpage\fi
- \ifjlreq@resttate\tate\fi
- \jlreq@oldfontcommand@disable
-}
-\newcommand{\@idxitem}{\par\hangindent 4\jlreq@mol}
-\newcommand{\subitem}{\@idxitem \hspace*{2\jlreq@mol}}
-\newcommand{\subsubitem}{\@idxitem \hspace*{3\jlreq@mol}}
-\newcommand{\indexspace}{\par \vskip 1\jlreq@gol \@plus .5\jlreq@gol \@minus .3\jlreq@gol\relax}
-\def\jlreq@theindex@pagestyle{\pagestyle{plain}}
-
-%. 前付,後付,付録
-% \jlreq@matter@heading[restoreする見出し一覧を入れる制御綴]{#2@<見出し命令名>に今の見出しの中身を入れる}{生成する制御綴の名前}{設定}
-\def\jlreq@matter@heading{\@ifnextchar[{\jlreq@matter@heading@}{\jlreq@matter@heading@[]{}}}
-\def\jlreq@matter@heading@[#1]#2#3#4{%
- \begingroup
- \def\jlreq@restoreheadings{}% 復帰させる見出し名(カンマ区切り)
- \def\jlreq@headingscmds{}% \ModiryHeadings**,\RenewHeadings**の塊
- \jlreq@parsekeyval@nokey{%
- % ##1 = 見出し命令名, ##2 = 設定
- \def\jlreq@headingsettings{}% Modifyする中身
- \def\jlreq@declaretype{Modify}%
- \def\jlreq@level{}%
- \jlreq@tempatrue % restore
- \jlreq@parsekeyval@nokey{%
- % 各見出し命令に対する設定を解析
- \ifjlreq@parsekeyval@nokey@novalue{%
- \tl_put_right:Nx \jlreq@headingsettings {\exp_not:n {####1}}%
- }{%
- \str_case_e:nnF {####1} {%
- {heading_type}{%
- \lowercase{\def\jlreq@tempa{####2}}%
- \str_case_e:nnF { \jlreq@tempa } {
- {tobira}{\def\jlreq@declaretype{RenewTobira}}
- {block}{\def\jlreq@declaretype{RenewBlock}}
- {runin}{\def\jlreq@declaretype{RenewRunin}}
- {cutin}{\def\jlreq@declaretype{RenewCutin}}
- {modify}{\def\jlreq@declaretype{Modify}}
- }{\ClassError{jlreq}{Unknown~heading~type~`####2'}{\@ehc}}
- }
- {heading_level}{\def\jlreq@level{####2}}
- }{%
- \tl_if_empty:nTF {#1} { \@firstofone }{%
- \str_if_eq:nnTF {####1} { restore } {
- \csname jlreq@tempa####2\endcsname\@gobble
- }{\@firstofone}%
- }%
- {\tl_put_right:Nx \jlreq@headingsettings{\ifx\jlreq@headingsettings\@empty\else ,\fi\unexpanded{####1={####2}}}}%
- }%
- }%
- }{##2}%
- \jlreq@ifempty{#1}{}{%
- \ifjlreq@tempa
- \tl_put_right:Nx \jlreq@headingscmds {\exp_not:N \SaveHeading{\exp_not:n {##1}}{\exp_not:c {#2@##1}}}%
- \tl_put_right:Nx \jlreq@restoreheadings {\ifx\jlreq@restoreheadings\@empty\else ,\fi\exp_not:n {##1}}%
- \fi
- }%
- % \jlreq@declareに\ModifyHeadingか\Renew***Headingを入れる
- \edef\jlreq@declare{\exp_not:c {\jlreq@declaretype Heading}{##1}}%
- \str_if_eq:VnF \jlreq@declaretype { Modify } {
- \ifx\jlreq@level\@empty
- % \frontmatter時でのレベルを引用する.
- \edef\jlreq@declare{%
- \unexpanded{\edef\jlreq@tempa}{\noexpand\unexpanded{\exp_not:o {\jlreq@declare}}{\noexpand\exp_not:o {\exp_not:c {jlreq@heading@level@##1}}}}%
- \noexpand\jlreq@tempa
- }%
- \else
- \tl_put_right:Nx \jlreq@declare {{\exp_not:o {\jlreq@level}}}%
- \fi
- }{}%
- \tl_put_right:Nx \jlreq@headingscmds {\exp_not:o {\jlreq@declare}{\exp_not:o {\jlreq@headingsettings}}}%
- }{#4}%
- \edef\jlreq@do{%
- \unexpanded{\def#3}{%
- \exp_not:o {\jlreq@headingscmds}%
- \jlreq@ifempty{#1}{}{\unexpanded{\def#1}{\exp_not:o {\jlreq@restoreheadings}}}%
- }%
- }%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\def\jlreq@matter@counter@norestore#1#2{%
- \def#1{}%
- \jlreq@parsekeyval@nokey{%
- \keys_define:nn { __jlreq_keyval_matter_counter_norestore } {
- value .code:n = { \tl_put_right:Nn #1 { \setcounter{##1}{####1} } },
- the .code:n = { \tl_put_right:Nx #1 { \exp_not:N \def\exp_not:c {the##1}{\exp_not:n {####1}} } }
- }
- \keys_set:nn { __jlreq_keyval_matter_counter_norestore } {##2}
- }{#2}%
-}
-
-\str_if_eq:VnT \jlreq@article@type { book } {
- \newif\if@mainmatter
- \@mainmattertrue
- \keys_define:nn { jlreqsetup } {
- frontmatter_pagebreak .code:n = {
- \edef\jlreq@frontmatter@pagebreak{\jlreq@ifempty{#1}{}{\exp_not:c {#1}}}
- },
- frontmatter_counter .code:n = {%
- \def\jlreq@frontmatter@counter{}%
- \tl_set:Nn \jlreq@frontmatter@counter { \seq_gclear:N \g__jlreq_frontmatter_resetcounter_seq }
- \jlreq@parsekeyval@nokey{%
- \def\jlreq@tempb{}% 中身
- \jlreq@tempatrue % restore
- \keys_define:nn { frontmatter_counter } {
- value .code:n = { \tl_put_right:Nn \jlreq@tempb{\setcounter{##1}{####1}} },
- restore .code:n = { \csname jlreq@tempa####1\endcsname },
- the .code:n = { \tl_put_right:Nx \jlreq@tempb { \exp_not:N \def\exp_not:c {the##1}{\exp_not:n {####1}} } }
- }
- \keys_set:nn { frontmatter_counter } {##2}
- \ifjlreq@tempa
- \tl_put_left:Nx \jlreq@tempb {%
- \noexpand\let\exp_not:c {jlreq@frontmatter@savedcounter@the@##1}\exp_not:c {the##1}%
- \noexpand\edef\exp_not:c {jlreq@frontmatter@savedcounter@value@##1}{\unexpanded{\the\value{##1}}}%
- }%
- \tl_put_right:Nn \jlreq@frontmatter@counter { \seq_gput_right:Nn \g__jlreq_frontmatter_resetcounter_seq { ##1 } }
- \fi
- \tl_put_right:NV \jlreq@frontmatter@counter \jlreq@tempb
- }{#1}%
- },
- frontmatter_heading .code:n = {\jlreq@matter@heading[\jlreq@frontmatter@restoreheadings]{jlreq@frontmatter@savedheading}{\jlreq@frontmatter@heading}{#1}},
- frontmatter_pagestyle .code:n = {%
- \def\jlreq@tempa{}% ページスタイル名
- \def\jlreq@frontmatter@pagestyle{}%
- \jlreq@tempatrue % restore
- \jlreq@parsekeyval@nokey{%
- \ifjlreq@parsekeyval@nokey@novalue{\def\jlreq@tempa{##1}}{%
- \str_if_eq:nnT { ##1 } { restore } { \csname jlreq@tempa##2\endcsname }
- }%
- }{#1}%
- \ifjlreq@tempa
- \tl_put_right:Nn \jlreq@frontmatter@pagestyle{\let\jlreq@frontmatter@savedpagestyle\jlreq@current@pagestyle}%
- \fi
- \ifx\jlreq@tempa\@empty\else
- \tl_put_right:Nx \jlreq@frontmatter@pagestyle { \exp_not:N \pagestyle{\exp_not:o {\jlreq@tempa}} }%
- \fi
- },
- frontmatter_precode .code:n = {\edef\jlreq@frontmatter@precode{\unexpanded{#1}}},
- frontmatter_postcode .code:n = {\edef\jlreq@frontmatter@postcode{\unexpanded{#1}}},
- frontmatter_pagination .code:n = {%
- \def\jlreq@pagination@frontmatterstyle{arabic}%
- \let\jlreq@pagination@mainmatterpagecommand=\pagenumbering
- \clist_map_variable:nNn {#1} \jlreq@tempa {
- \tl_set:Nx \jlreq@tempa { \tl_trim_spaces:o \jlreq@tempa }
- \str_case_e:nnF {\jlreq@tempa}{
- {continuous}{%
- \def\jlreq@pagination@mainmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}%
- }
- {independent}{\let\jlreq@pagination@mainmatterpagecommand=\pagenumbering}
- }{\edef\jlreq@pagination@frontmatterstyle{\jlreq@tempa}}
- }%
- }
- }
- \NewDocumentCommand{\frontmatter}{}{%
- \jlreq@frontmatter@precode
- \jlreq@frontmatter@pagebreak
- \@mainmatterfalse
- \let\jlreq@frontmatter@savedpagestyle\@undefined
- \jlreq@frontmatter@pagestyle
- \jlreq@frontmatter@counter
- \jlreq@frontmatter@heading
- \expandafter\gdef\expandafter\thepage\expandafter{\csname @\jlreq@pagination@frontmatterstyle\endcsname\c@page}%
- \jlreq@frontmatter@postcode
- }
- \seq_new:N \g__jlreq_frontmatter_resetcounter_seq
- \def\jlreq@frontmatter@restoreheadings{}
- \def\jlreq@frontmatter@restorecommands{}
- \keys_define:nn { jlreqsetup } {
- mainmatter_pagebreak .code:n = {%
- \edef\jlreq@mainmatter@pagebreak{\jlreq@ifempty{#1}{}{\exp_not:c {#1}}}%
- },
- mainmatter_pagestyle .code:n = {%
- \edef\jlreq@mainmatter@pagestyle{\jlreq@ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}%
- },
- mainmatter_counter .code:n = {\jlreq@matter@counter@norestore{\jlreq@mainmatter@counter}{#1}},
- mainmatter_heading .code:n = {\jlreq@matter@heading{\jlreq@mainmatter@heading}{#1}},
- mainmatter_precode .code:n = {\edef\jlreq@mainmatter@precode{\unexpanded{#1}}},
- mainmatter_postcode .code:n = {\edef\jlreq@mainmatter@postcode{\unexpanded{#1}}},
- mainmatter_pagination .tl_set:N = \jlreq@pagination@mainmatterstyle
- }
- \NewDocumentCommand{\mainmatter}{}{%
- \jlreq@mainmatter@precode
- \jlreq@mainmatter@pagebreak
- \@mainmattertrue
- \@ifundefined{jlreq@frontmatter@savedpagestyle}{%
- \jlreq@mainmatter@pagestyle
- }{%
- \expandafter\pagestyle\expandafter{\jlreq@frontmatter@savedpagestyle}%
- }%
- \seq_map_variable:NNn \g__jlreq_frontmatter_resetcounter_seq \jlreq@tempa {
- \setcounter{\jlreq@tempa}{\csname jlreq@frontmatter@savedcounter@value@\jlreq@tempa\endcsname}%
- \expandafter\let\csname the\jlreq@tempa\expandafter\endcsname\csname jlreq@frontmatter@savedcounter@the@\jlreq@tempa\endcsname
- }%
- \jlreq@mainmatter@counter
- \clist_map_variable:NNn \jlreq@frontmatter@restoreheadings \jlreq@tempa { \csname jlreq@frontmatter@savedheading@\jlreq@tempa\endcsname }
- \jlreq@mainmatter@heading
- \clist_map_variable:NNn \jlreq@frontmatter@restorecommands \jlreq@tempa {
- \expandafter\let\csname \jlreq@tempa\expandafter\endcsname\csname jlreq@frontmatter@savedcommand@\jlreq@tempa\endcsname
- }%
- \expandafter\jlreq@pagination@mainmatterpagecommand\expandafter{\jlreq@pagination@mainmatterstyle}%
- \jlreq@mainmatter@postcode
- }
- \keys_define:nn { jlreqsetup } {
- backmatter_pagebreak .code:n = {%
- \edef\jlreq@backmatter@pagebreak{\jlreq@ifempty{#1}{}{\exp_not:c {#1}}}%
- },
- backmatter_pagestyle .code:n = {%
- \edef\jlreq@backmatter@pagestyle{\jlreq@ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}%
- },
- backmatter_counter .code:n = {\jlreq@matter@counter@norestore{\jlreq@backmatter@counter}{#1}},
- backmatter_heading .code:n = {\jlreq@matter@heading{\jlreq@backmatter@heading}{#1}},
- backmatter_precode .code:n = {\edef\jlreq@backmatter@precode{\unexpanded{#1}}},
- backmatter_postcode .code:n = {\edef\jlreq@backmatter@postcode{\unexpanded{#1}}},
- backmatter_pagination .code:n = {
- \let\jlreq@pagination@backmatterpagecommand=\pagenumbering
- \def\jlreq@pagination@backmatterstyle{arabic}%
- \clist_map_variable:nNn {#1} \jlreq@tempa {
- \tl_set:Nx \jlreq@tempa { \tl_trim_spaces:o \jlreq@tempa }
- \str_case_e:nnF {\jlreq@tempa} {
- {continuous}{%
- \def\jlreq@pagination@backmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}%
- }
- {independent}{\let\jlreq@pagination@backmatterpagecommand=\pagenumbering}
- } {\edef\jlreq@pagination@backmatterstyle{\jlreq@tempa}}
- }%
- }
- }
- \NewDocumentCommand{\backmatter}{}{%
- \jlreq@backmatter@precode
- \jlreq@backmatter@pagebreak
- \jlreq@backmatter@pagestyle
- \@mainmatterfalse
- \jlreq@backmatter@counter
- \jlreq@backmatter@heading
- \expandafter\jlreq@pagination@backmatterpagecommand\expandafter{\jlreq@pagination@backmatterstyle}%
- \jlreq@backmatter@postcode
- }
-}
-
-\keys_define:nn { jlreqsetup } {
- appendix_counter .code:n = {\jlreq@matter@counter@norestore{\jlreq@appendix@counter}{#1}},
- appendix_heading .code:n = {\jlreq@matter@heading{\jlreq@appendix@heading}{#1}},
- appendix_precode .code:n = {\edef\jlreq@appendix@precode{\unexpanded{#1}}},
- appendix_postcode .code:n = {\edef\jlreq@appendix@postcode{\unexpanded{#1}}}
-}
-\NewDocumentCommand{\appendix}{}{%
- \par
- \jlreq@appendix@precode
- \jlreq@appendix@counter
- \jlreq@appendix@heading
- \jlreq@appendix@postcode
-}
-
-%. その他諸々
-%.. 縦中横
-\NewDocumentCommand { \tatechuyoko } { s m } {
- \IfBooleanTF{#1}{
- \jlreq@iftdir{\jlreq@tatechuyoko@i{#2}}{#2}
- }{
- \jlreq@iftdir{}{\ClassError{jlreq}{\string\tatechuyoko\space is~not~allowed~in~yoko~mode}{\@ehc}}%
- \jlreq@tatechuyoko@i{#2}
- }
-}
-
-\edef\@tempa{%
- \unexpanded{\ifvmode\leavevmode\fi}%
- \ifx l\jlreq@engine\unexpanded{%
- \jlreq@lastnodechar=\lastnodechar\relax
- \int_compare:nT { \jlreq@lastnodechar>-1 } { \inhibitglue }
- }\else\unexpanded{%
- \int_compare:nT { \jlreq@lastnodechar>-1 } { \inhibitglue }
- \jlreq@lastnodechar=\lastnodechar\relax
- }\fi
-}
-
-\expandafter\def\expandafter\jlreq@tatechuyoko@i\expandafter#\expandafter1\expandafter{%
- \@tempa
- % 前のJFM glue
- \ifnum\jlreq@lastnodechar>-1
- \jlreq@calc@jfmglue{\char\jlreq@lastnodechar}{阿}%
- \jlreq@ifgluezero\jlreq@resultskip{}{\hskip\jlreq@resultskip}%
- \fi
- \hbox{\yoko
- \begingroup
- \setbox\jlreq@tempboxa=\hbox{阿}%
- \vrule width~0pt~height~\ht\jlreq@tempboxa depth~\dp\jlreq@tempboxa
- \endgroup
- #1}%
- \futurelet\jlreq@nextchar\jlreq@tatechuyoko@ii
-}
-\def\jlreq@tatechuyoko@ii{%
- \begingroup
- \def\jlreq@do{}%
- \jlreq@getfirsttoken@expandmacros{\jlreq@nextchar}{\jlreq@tempa}%
- \expandafter\jlreq@ifletter\expandafter{\jlreq@tempa}{%
- \jlreq@calc@jfmglue{阿}{\jlreq@tempa}%
- \edef\jlreq@do{%
- \noexpand\hskip\the\jlreq@resultskip\space
- \noexpand\inhibitglue
- }%
- }{}%
- \expandafter\endgroup
- \jlreq@do
-}
-
-\jlreq@saveoriginalcs{kanjishape}
-\ifx l\jlreq@engine
- \cs_new:Nn \__jlreq_setkanjiskip:nn {
- \group_begin:
- \ltj@setpar@global
- \cs_set:Nn \l_jlreq_do: {}
- \tl_if_empty:nF {#1} {
- \skip_set:Nn \l_jlreq_tmpa_skip { #1 }
- \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do:
- \exp_not:N \cs_set:Npn \exp_not:N \jlreqkanjiskip { \skip_use:N \l_jlreq_tmpa_skip }
- \exp_not:N \ltjsetkanjiskip \skip_use:N \l_jlreq_tmpa_skip
- }
- }
- \tl_if_empty:nF {#2} {
- \skip_set:Nn \l_jlreq_tmpa_skip { #2 }
- \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do:
- \exp_not:N \cs_set:Npn \exp_not:N \jlreqxkanjiskip { \skip_use:N \l_jlreq_tmpa_skip }
- \exp_not:N \ltjsetxkanjiskip \skip_use:N \l_jlreq_tmpa_skip
- }
- }
- \exp_after:wN \group_end:
- \l_jlreq_do:
- }
-\else
- \cs_new:Nn \__jlreq_setkanjiskip:nn {
- \group_begin:
- \cs_set:Nn \l_jlreq_do: {}
- \tl_if_empty:nF {#1} {
- \skip_set:Nn \l_jlreq_tmpa_skip { #1 }
- \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do:
- \exp_not:N \cs_set:Npx \exp_not:N \jlreqkanjiskip { \skip_use:N \l_jlreq_tmpa_skip }
- \exp_not:N \skip_set:Nn \exp_not:N \kanjiskip { \skip_use:N \l_jlreq_tmpa_skip }
- }
- }
- \tl_if_empty:nF {#2} {
- \skip_set:Nn \l_jlreq_tmpa_skip { #2 }
- \cs_set:Nx \l_jlreq_do: { \exp_not:o \l_jlreq_do:
- \exp_not:N \cs_set:Npx \exp_not:N \jlreqxkanjiskip { \skip_use:N \l_jlreq_tmpa_skip }
- \exp_not:N \skip_set:Nn \exp_not:N \xkanjiskip { \skip_use:N \l_jlreq_tmpa_skip }
- }
- }
- \exp_after:wN \group_end:
- \l_jlreq_do:
- }
-\fi
-\ifx l\jlreq@engine
- \cs_set:Nn \l_jlreq_tmpa:n {
- \NewDocumentCommand { \jidori } { m m } {
- \mode_if_vertical:TF { \leavevmode } {}
- \group_begin:
- \__jlreq_setkanjiskip:nn { 0pt~plus~1fil~minus~0pt } { 0pt~plus~1fil~minus~0pt }
- \hbox_to_wd:nn {##1} {
- \def#1 { }
- \kanjishape{n-jidori}\selectfont
- \def\kanjishape####1{\jlreq@useoriginalcs{kanjishape}{####1-jidori}}
- ##2
- \hskip\glueexpr 0pt~minus~1fil\relax
- }
- \group_end:
- }
- }
- \catcode` =\active
- \l_jlreq_tmpa:n{ }
- \catcode` =12
-\else
- \NewDocumentCommand { \jidori } { m m } {
- \mode_if_vertical:TF { \leavevmode } {}
- \group_begin:
- \__jlreq_setkanjiskip:nn { 0pt~plus~15zw~minus~0pt } { 0pt~plus~15zw~minus~0pt }
- \hbox_to_wd:nn {#1} {
- \kanjishape{n-jidori}\selectfont
- \inhibitglue #2
- \hskip\glueexpr 0pt~minus~1fil\relax
- }
- \group_end:
- }
-\fi
-\NewDocumentCommand { \akigumi } { m m } {
- \mode_if_vertical:TF { \leavevmode } {}
- \group_begin:
- \__jlreq_setkanjiskip:nn { \jlreqkanjiskip + #1 } { \jlreqxkanjiskip + #1 }
- \hbox:n {#2}
- \group_end:
-}
-
-% 日にち
-\newif\if西暦
-\def\西暦{\西暦true}
-\def\和暦{\西暦false}
-% #1年#2月#3日 #4は\numberとか\kansujiとか
-\def\jlreq@wareki#1#2#3#4{%
- \__jlreq_warekiyear:nnnn{#1}{#2}{#3}{#4}%
- #4#2月#4#3日%
-}
-\cs_set:Nn \__jlreq_warekiyear:nnnn {
- % 昭和:1989年1月7日まで
- \bool_if:nTF { \int_compare_p:n { #1 < 1989 } ||
- ( \int_compare_p:n { #1 == 1989 } && \int_compare_p:n { #2 == 1 } && \int_compare_p:n { #3 < 8 } ) }{
- 昭和\__jlreq_warekiyear_aux:nnn{#1}{1926}{#4}%
- }{
- % 平成:2019年4月末日まで
- \bool_if:nTF { \int_compare_p:n { #1 < 2019 } || ( \int_compare_p:n { #1 == 2019 } && \int_compare_p:n { #2 < 5 } ) } {
- 平成\__jlreq_warekiyear_aux:nnn{#1}{1989}{#4}%
- }{
- 令和\__jlreq_warekiyear_aux:nnn{#1}{2019}{#4}%
- }
- }
-}
-\cs_set:Nn \__jlreq_warekiyear_aux:nnn {
- \int_compare:nTF { #1 = #2 } {元年} { #3\int_eval:n { #1 - #2 + 1 } 年 }
-}
-\def\today{%
- \if西暦
- \jlreq@iftdir{%
- \kansuji\year 年%
- \kansuji\month 月%
- \kansuji\day 日%
- }{%
- \number\year 年%
- \number\month 月%
- \number\day 日%
- }%
- \else
- \jlreq@iftdir{%
- \jlreq@wareki{\year}{\month}{\day}{\kansuji}%
- }{%
- \jlreq@wareki{\year}{\month}{\day}{\number}%
- }%
- \fi
-}
-
-\keys_define:nn { jlreqsetup } {
- year_style .choice:,
- year_style / seireki .code:n = {\西暦true},
- year_style / wareki .code:n = {\西暦false}
-}
-
-% 時刻
-\hour=\time \divide\hour by 60
-\minute=\numexpr\time - 60*\hour\relax
-
-%. デフォルト設定
-%.. 見出し
-\if@tate
- \renewcommand{\thepart}{\jlreq@Kanji{part}}
- \str_if_eq:VnF \jlreq@article@type { article }{\renewcommand{\thechapter}{\jlreq@Kanji{chapter}}}
- \renewcommand{\thesection}{\tatechuyoko*{\@arabic\c@section}}
- \renewcommand{\thesubsection}{\tatechuyoko*{\@alph\c@subsection}}
- \renewcommand{\thesubsubsection}{\tatechuyoko*{\@arabic\c@subsubsection}}
- \renewcommand{\theparagraph}{(\tatechuyoko*{\@arabic\c@paragraph})}
- \renewcommand{\thesubparagraph}{(\tatechuyoko*{\@arabic\c@subparagraph})}
-
- \str_if_eq:VnTF \jlreq@article@type { article } {
- \NewBlockHeading{part}{0}{font={\jlreq@keepbaselineskip{\LARGE}},indent=4\jlreq@zw,lines=4,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\large}}}
- \if@twoside\ModifyHeading{part}{allowbreak_if_evenpage=true}\fi
- }
- {% book, report
- \NewTobiraHeading{part}{-1}{label_format={第\thepart 部\hspace*{1\jlreq@zw}},format={\null\vfill {\Huge\hspace*{2\jlreq@zw}#1#2}\vspace*{2\jlreq@gol}}}
- \NewBlockHeading{chapter}{0}{indent=2\jlreq@zw,lines=6,label_format={第\thechapter 章},font={\huge},after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\Large}}}
- \if@twoside\ModifyHeading{chapter}{allowbreak_if_evenpage=true}\fi
- \renewcommand{\thechapter}{\jlreq@Kanji{chapter}}
- }
- \NewBlockHeading{section}{1}{font={\jlreq@keepbaselineskip{\Large}},indent=6\jlreq@zw,lines=3,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\normalsize}}}
- \if@twoside\ModifyHeading{section}{allowbreak_if_evenpage=true}\fi
- \NewBlockHeading{subsection}{2}{font={\jlreq@keepbaselineskip{\large}},indent=8\jlreq@zw,lines=2,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\small}}}
- \if@twoside\ModifyHeading{subsection}{allowbreak_if_evenpage=true}\fi
- \NewBlockHeading{subsubsection}{3}{font={\jlreq@keepbaselineskip{\normalsize}},indent=10\jlreq@zw,lines=1,before_lines=1,subtitle_break=false,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},,subtitle_font={\jlreq@keepbaselineskip{\scriptsize}}}
- \if@twoside\ModifyHeading{subsubsection}{allowbreak_if_evenpage=true}\fi
- \NewRuninHeading{paragraph}{4}{font={\jlreq@keepbaselineskip{\normalsize}\sffamily\gtfamily\bfseries}}
- \NewRuninHeading{subparagraph}{5}{font={\jlreq@keepbaselineskip{\normalsize}\sffamily\gtfamily\bfseries},indent=1\jlreq@zw}
-\else% yoko
- \renewcommand{\thepart}{\Roman{part}}
- \renewcommand{\thesubsection}{\thesection .\arabic{subsection}}
- \renewcommand{\thesubsubsection}{\thesubsection .\arabic{subsubsection}}
- \renewcommand{\theparagraph}{\thesubsubsection .\arabic{paragraph}}
- \renewcommand{\thesubparagraph}{\theparagraph .\arabic{subparagraph}}
- \str_if_eq:VnTF \jlreq@article@type { article } {
-\def\X{}
- \NewBlockHeading{part}{0}{font={\jlreq@keepbaselineskip{\LARGE\sffamily\gtfamily\bfseries}},label_format={第\thepart 部},lines=4,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\large}}}
- \renewcommand{\thesection}{\arabic{section}}
- }{% book, report
- \NewTobiraHeading{part}{-1}{label_format={第\thepart 部\hspace*{1\jlreq@gol}},format={\null\vfil {\Huge\sffamily\gtfamily\bfseries #1#2}\vfil}}
- \NewBlockHeading{chapter}{0}{%
- font={\jlreq@keepbaselineskip{\huge\sffamily\gtfamily\bfseries}},
- label_format={第\thechapter 章},
- lines=5,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},
- subtitle_font={\jlreq@keepbaselineskip{\Large}}}
- \renewcommand{\thechapter}{\arabic{chapter}}
- \renewcommand{\thesection}{\thechapter.\arabic{section}}
- }
- \NewBlockHeading{section}{1}{font={\jlreq@keepbaselineskip{\Large\sffamily\gtfamily\bfseries}},lines=3,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\normalsize}}}
- \NewBlockHeading{subsection}{2}{font={\jlreq@keepbaselineskip{\large\sffamily\gtfamily\bfseries}},lines=2,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\small}}}
- \NewBlockHeading{subsubsection}{3}{font={\jlreq@keepbaselineskip{\normalsize\sffamily\gtfamily\bfseries}},lines=1,before_lines=1,subtitle_break=false,after_label_space=1\jlreq@zw,second_heading_text_indent={-1\jlreq@zw,1\jlreq@zw},subtitle_font={\jlreq@keepbaselineskip{\scriptsize}}}
- \NewRuninHeading{paragraph}{4}{font={\jlreq@keepbaselineskip{\normalsize\sffamily\gtfamily\bfseries}},indent=1\jlreq@zw}
- \NewRuninHeading{subparagraph}{5}{font={\jlreq@keepbaselineskip{\normalsize\sffamily\gtfamily\bfseries}},indent=2\jlreq@zw}
-\fi
-
-\str_if_eq:VnF \jlreq@article@type { article } {
- \legacy_if:nTF { @openright } {
- \ModifyHeading{part}{type=naka}
- \legacy_if:nTF { @tate } {
- \ModifyHeading{chapter}{pagebreak=begin_with_even_page}
- }{
- \ModifyHeading{chapter}{pagebreak=begin_with_odd_page}
- }
- }{
- \ModifyHeading{part}{type=han}
- \ModifyHeading{chapter}{pagebreak=clearpage}
- }
-}
-
-%.. ページスタイル
-\RenewPageStyle{empty}{nombre={},odd_running_head={},even_running_head={},clear_markcommand=false}
-\str_if_eq:VnTF \jlreq@article@type { article } {
- \legacy_if:nTF { @twoside } {
- \NewPageStyle{headings}{odd_running_head={_subsection},even_running_head={_section}}
- }{
- \NewPageStyle{headings}{odd_running_head={_section},even_running_head={}}
- }
-}{% book, article
- \legacy_if:nTF { @twoside } {
- \NewPageStyle{headings}{odd_running_head={_section},even_running_head={_chapter}}
- }{
- \NewPageStyle{headings}{odd_running_head={_chapter},even_running_head={}}
- }
- \ModifyPageStyle{headings}{mark_format={_chapter={第\thechapter 章\quad #1}}}
-}
-\legacy_if:nTF { @tate } {
- \RenewPageStyle{plain}{nombre=\thepage,odd_running_head={},even_running_head={},clear_markcommand=false}
- \NewPageStyle{myheadings}{nombre=\thepage,odd_running_head=\rightmark,even_running_head=\leftmark,clear_markcommand=false}
- \legacy_if:nTF { @twoside } {
- \ModifyPageStyle{plain}{nombre_position={top-left}}
- \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-left,running_head_position=top-left}
- \ModifyPageStyle{myheadings}{nombre_position=bottom-left,running_head_position=top-left}
- }{
- \ModifyPageStyle{plain}{nombre_position={top-center}}
- \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center}
- \ModifyPageStyle{myheadings}{nombre_position=bottom-center,running_head_position=top-center}
- }
-}{% yoko
- \RenewPageStyle{plain}{nombre=\thepage,odd_running_head={},even_running_head={},nombre_position={bottom-center},clear_markcommand=false}
- \ModifyPageStyle{headings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center}
- \NewPageStyle{myheadings}{nombre=\thepage,nombre_position=bottom-center,running_head_position=top-center,odd_running_head=\rightmark,even_running_head=\leftmark,clear_markcommand=false}
-}
-\ModifyPageStyle{plain}{font=\small}
-\ModifyPageStyle{headings}{font=\small}
-\ModifyPageStyle{myheadings}{font=\small}
-
-%.. 注
-\jlreqsetup{reference_mark=inline}
-\legacy_if:nTF { @tate } {
- \jlreqsetup{footnote_indent=1\jlreq@zw}% 根拠なし
-}{
- \jlreqsetup{footnote_indent=0pt}% (4.2.5.b)
-}
-\jlreqsetup{footnote_second_indent=1\jlreq@zw}
-\jlreqsetup{endnote_second_indent=2\jlreq@zw}
-\jlreqsetup{endnote_position=headings}
-\dim_compare:nT { \jlreq@sidenote@length>0pt } {
- \jlreqsetup{sidenote_type=number}
- \jlreqsetup{sidenote_symbol=*,sidenote_keyword_font={}}
-}
-
-%.. キャプション
-\jlreqsetup{
- caption_font={\sffamily\gtfamily\bfseries},
- caption_label_font={\sffamily\gtfamily\bfseries},
- caption_after_label_space=1\jlreq@zw,
- caption_label_format={#1},
- caption_align={center,*left}
-}
-
-%.. 箇条書き
-\legacy_if:nTF { @tate } {
- \renewcommand{\theenumi}{\jlreq@Kanji{enumi}}
- \renewcommand{\theenumii}{\tatechuyoko*{\@arabic\c@enumii}}
- \renewcommand{\theenumiii}{\tatechuyoko*{\@arabic\c@enumiii}}
- \renewcommand{\theenumiv}{\tatechuyoko*{\@arabic\c@enumiv}}
- \newcommand{\labelenumi}{\theenumi}
- \newcommand{\labelenumii}{\theenumii}
- \newcommand{\labelenumiii}{\theenumiii}
- \newcommand{\labelenumiv}{\theenumiv}
-}{
- \renewcommand{\theenumi}{\@arabic\c@enumi}
- \renewcommand{\theenumii}{\@alph\c@enumii}
- \renewcommand{\theenumiii}{\@roman\c@enumiii}
- \renewcommand{\theenumiv}{\@Alph\c@enumiv}
- \newcommand{\labelenumi}{\theenumi.\hspace{.5\jlreq@zw}}
- \newcommand{\labelenumii}{(\theenumii)\hspace{.5\jlreq@zw}}
- \newcommand{\labelenumiii}{\theenumiii.\hspace{.5\jlreq@zw}}
- \newcommand{\labelenumiv}{\theenumiv.\hspace{.5\jlreq@zw}}
-}
-\renewcommand{\p@enumii}{\theenumi}
-\renewcommand{\p@enumiii}{\theenumi(\theenumii)}
-\renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
-
-%\newcommand{\labelitemi}{•}
-\legacy_if:nTF { @tate } {
- \newcommand{\labelitemi}{\hbox to 1\jlreq@zw{\hss\tatechuyoko{\textbullet}\hss}}
- \newcommand{\labelitemii}{○}
- \newcommand{\labelitemiii}{*}
-}{
- \newcommand{\labelitemi}{\hbox to 1\jlreq@zw{\hss\textbullet\hss}}
- \newcommand{\labelitemii}{\hbox to 1\jlreq@zw{\hss\textendash\hss}}
- \newcommand{\labelitemiii}{\hbox to 1\jlreq@zw{\hss\textasteriskcentered\hss}}
-}
-\newcommand{\labelitemiv}{\hbox to 1\jlreq@zw{\hss ・\hss}}
-
-% 見出しが一つ上のレベルからどのくらいずれているかを入れる.
-\setlength\leftmargini{2\zw}
-\setlength\leftmarginii{2\zw}
-\setlength\leftmarginiii{1\zw}
-\setlength\leftmarginiv{1\zw}
-\setlength\leftmarginv{1\zw}
-\setlength\leftmarginvi{1\zw}
-\jlreqsetup{
- itemization_beforeafter_space={0pt,i=.5\baselineskip},
- itemization_itemsep=0pt,
- itemization_labelsep={0pt},
- itemization_label_length={%
- i=\leftmargini,ii=\leftmarginii,iii=\leftmarginiii,
- iv=\leftmarginiv,v=\leftmarginv,vi=\leftmarginvi
- }
-}
-
-%.. 引用
-\jlreqsetup{
- quote_indent=2\jlreq@zw,
- quote_end_indent=0pt,
- quote_fontsize=,
- quote_beforeafter_space=0pt
-}
-
-%.. その他
-\str_if_eq:VnT \jlreq@article@type { book } {
- \jlreqsetup{
- frontmatter_pagebreak = cleardoublepage,
- frontmatter_pagestyle = {plain,restore = true},
- frontmatter_heading = {chapter={number=false, restore = true}},
- frontmatter_counter = {
- figure = {the = \arabic{figure},restore = true},
- table = {the = \arabic{table},restore = true},
- },
- frontmatter_precode = {},
- frontmatter_postcode = {},
- }
- \jlreqsetup{
- mainmatter_pagebreak = cleardoublepage,
- mainmatter_counter = {
- chapter = {value = 0},
- },
- mainmatter_pagestyle = {},
- mainmatter_heading = {},
- mainmatter_precode = {},
- mainmatter_postcode = {},
- }
- \legacy_if:nTF { @openright } {
- \jlreqsetup{backmatter_pagebreak=cleardoublepage}
- }{
- \jlreqsetup{backmatter_pagebreak=clearpage}
- }
- \jlreqsetup{
- backmatter_pagestyle = plain,
- backmatter_counter = {
- chapter={value = 0, the = {}},
- figure = {value = 0, the = {\arabic{figure}}},
- table = {value = 0, the = {\arabic{table}}}
- },
- backmatter_heading = {chapter = {number = false}},
- backmatter_precode = {},
- backmatter_postcode = {}
- }
- \jlreqsetup{
- frontmatter_pagination = {independent,roman},
- mainmatter_pagination = {arabic},
- backmatter_pagination = {continuous,arabic},
- }
-}
-\str_if_eq:VnTF \jlreq@article@type { article } {
- \legacy_if:nTF { @tate } {
- \jlreqsetup{
- appendix_counter = {
- section = {value = 0, the = {\tatechuyoko*{\Alph{section}}}},
- subsection = {value = 0},
- }
- }
- }{
- \jlreqsetup{
- appendix_counter = {
- section = {value = 0, the = {\Alph{section}}},
- subsection = {value = 0},
- }
- }
- }
- \jlreqsetup{appendix_heading = {},appendix_precode = {},appendix_postcode = {}}
-}{%book, report
- \legacy_if:nTF { @tate } {
- \jlreqsetup{
- appendix_counter = {
- chapter = {value = 0, the = {\tatechuyoko*{\Alph{chapter}}}},
- }
- }
- }{
- \jlreqsetup{
- appendix_counter = {
- chapter = {value = 0, the = {\Alph{chapter}}},
- }
- }
- }
- \jlreqsetup{
- appendix_heading = {
- chapter = {label_format = {付録\thechapter}}
- },
- appendix_postcode = {%
- \str_if_eq:VnT \jlreq@current@pagestyle { headings } {
- \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}%
- \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}%
- }{}%
- },
- appendix_precode = {}
- }
-}
-\jlreqsetup{year_style=seireki}
-
-\newcommand{\contentsname}{目次}
-\newcommand{\refname}{参考文献}
-\newcommand{\indexname}{索引}
-\newcommand{\listfigurename}{図目次}
-\newcommand{\figurename}{図}
-\newcommand{\listtablename}{表目次}
-\newcommand{\tablename}{表}
-\pagestyle{plain}
-\pagenumbering{arabic}
-
-%. 最終処理
-\if@twocolumn
- \twocolumn
- \sloppy
- \flushbottom
-\else
- \onecolumn
- \raggedbottom
-\fi
-
-%. complements...
-\tl_set:Nx \l__jlreq_tmpa_tl {
- \exp_not:N \RequirePackage[
- \ifx l\jlreq@engine lualatex\fi
- \ifx p\jlreq@engine platex\fi
- \ifx u\jlreq@engine uplatex\fi
- ,setupname=jlreqsetup
- ]{jlreq-complements}[2022-07-13]
-}
-\l__jlreq_tmpa_tl
-\jlreqsetup{
- thebibliography_precode = { \jlreq@oldfontcommand@enable },
- thebibliography_postcode = { \jlreq@oldfontcommand@disable },
- theindex_precode = { \jlreq@oldfontcommand@enable },
- theindex_postcode = { \jlreq@oldfontcommand@disable }
-}
-
-\ExplSyntaxOff
-\endinput
-
-
diff --git a/language/japanese/jlreq/jlreq.pdf b/language/japanese/jlreq/jlreq.pdf
deleted file mode 100644
index 495dd58d85..0000000000
--- a/language/japanese/jlreq/jlreq.pdf
+++ /dev/null
Binary files differ
diff --git a/language/japanese/jlreq/luajfm2pl.lua b/language/japanese/jlreq/luajfm2pl.lua
deleted file mode 100644
index 5aceea506d..0000000000
--- a/language/japanese/jlreq/luajfm2pl.lua
+++ /dev/null
@@ -1,342 +0,0 @@
-kpse.set_program_name("texlua","lualatex")
-
-no_jis_chars = {'⦅','〘','〖','«','〝','⦆','〙','〗','»','〟','‼','⁇','⁈','⁉','〳','〴','〵','〻','ゕ','ゖ','ㇰ','ㇱ','ㇲ','ㇳ','ㇴ','ㇵ','ㇶ','ㇷ','ㇸ','ㇹ','ㇺ','ㇻ','ㇼ','ㇽ','ㇾ','ㇿ','ㇷ゚','€','№','㏋','ℓ','㌃','㌍','㌔','㌘','㌢','㌣','㌦','㌧','㌫','㌶','㌻','㍉','㍊','㍍','㍑','㍗','㎎','㎏','㎜','㎝','㎞','㎡','㏄','ゔ','か゚','き゚','く゚','け゚','こ゚','ヷ','ヸ','ヹ','ヺ','カ゚','キ゚','ク゚','ケ゚','コ゚','セ゚','ツ゚','ト゚','゠','–'}
-
-if arg[1] == nil then
- print('Usage: texlua luajfm2pl.lua [--noutf] <JFM for LuaTeX-ja> [<PL file name>]')
- os.exit(0)
-end
-
-local luajfm
-if arg[1] ~= "--noutf" then
- no_jis_chars = {}
- luajfm = arg[1]
- outputfile = arg[2]
-else
- luajfm = arg[2]
- outputfile = arg[3]
-end
-
-local jfmfile = kpse.find_file("jfm-" .. luajfm .. ".lua")
-if jfmfile == nil then
- print("JFM " .. luajfm .. " is not found")
- os.exit(1)
-end
-
---. JFMロード
-jfm = nil
-luatexja = {}
-luatexja.jfont = {}
-
-function luatexja.jfont.define_jfm(j)
- jfm = j
-end
-
-dofile(jfmfile)
-
-local fp = nil
-if outputfile == nil then
- fp = io.stdout
-else
- local msg
- fp,msg = io.open(outputfile,"w")
- if fp == nil then
- print(msg)
- os.exit(1)
- end
-end
-
-
---. 関数群
-local function merge_sort(list,from,to,comp)
- local tmplist = {}
- if to - from > 1 then
- local mid = math.floor((to + from)/2)
- merge_sort(list,from,mid,comp)
- merge_sort(list,mid+1,to,comp)
- local left = from
- local right = mid + 1
- local i = 1
- while left <= mid or right <= to do
- if left > mid then
- tmplist[i] = list[right]
- right = right + 1
- elseif right > to then
- tmplist[i] = list[left]
- left = left + 1
- elseif comp(list[right],list[left]) == true then
- tmplist[i] = list[right]
- right = right + 1
- else
- tmplist[i] = list[left]
- left = left + 1
- end
- i = i + 1
- end
- for j = from,to do
- list[j] = tmplist[j - from + 1]
- end
- elseif to - from == 1 then
- if comp(list[to],list[from]) then
- list[to],list[from] = list[from],list[to]
- end
- end
- return list
-end
-
-function stable_sort(list,comp)
- if comp == nil then comp = function(a,b) return a < b end end
- return merge_sort(list,1,#list,comp)
-end
-
-local function array_uniq(t)
- local n = 1
- for i = 1,#t do
- local newone = true
- for j = 1,n - 1 do
- if t[i] == t[j] then
- newone = false
- break
- end
- end
- if newone == true then
- t[n] = t[i]
- n = n + 1
- end
- end
- local m = #t
- for i = n,m do table.remove(t) end
- return t
-end
-
-local function exists(t,v)
- for _,val in pairs(t) do
- if v == val then return true end
- end
- return false
-end
-
-
-local function isempty(t) return next(t) == nil end
-local function isemptyornil(t) return t == nil or isempty(t) end
-
---. JFMの改変
--- デフォルト値の設定
-for cls,val in pairs(jfm) do
- if type(cls) == "number" then
- if val.width == nil then jfm[cls].width = 1 end
- if val.height == nil then
- if jfm.dir == 'tate' then jfm[cls].height = 0.5
- else jfm[cls].height = 0.88 end
- end
- if val.depth == nil then
- if jfm.dir == 'tate' then jfm[cls].depth = 0.5
- else jfm[cls].depth = 0.12 end
- end
- if val.italic == nil then jfm[cls].italic = 0 end
- end
-end
-
--- charsを書き出す文字列に変換しておく.
-local no_jis_chars_hash = {}
-for _,c in ipairs(no_jis_chars) do no_jis_chars_hash[c] = true end
-
-alcharclass = nil
-noxalcharclass = nil
-
-for class,val in pairs(jfm) do
- if type(class) ~= "number" or class == 0 then goto continue end
- local chars = {}
- for _,c in ipairs(val.chars) do
- local ac = nil
- -- 'alchar'や'nox_alchar'が入っているクラスを記憶
- if c == 'alchar' then alcharclass = class
- elseif c == 'nox_alchar' then noxalcharclass = class
- elseif unicode.utf8.len(c) == 1 then ac = c
- elseif unicode.utf8.len(c) == 2 then
- local cs = {}
- for _,cc in string.utfcharacters(c) do
- table.insert(cs,cc)
- end
- if cs[2] == "*" then ac = cs[1] end
- end
- if no_jis_chars_hash[ac] ~= true then table.insert(chars,ac) end
- end
- chars = array_uniq(chars)
- -- charsが空になった場合は消しておく
- if class ~= alcharclass and class ~= noxalcharclass and isempty(chars) == true then
- io.stderr:write("Class " .. class .. " has no char, so we omit it\n")
- jfm[class] = nil
- else jfm[class].chars = table.concat(chars," ") end
- ::continue::
-end
-
-
-if alcharclass == noxalcharclass then noxalcharclass = nil end
-for _,class in ipairs({alcharclass,noxalcharclass}) do
- if class ~= nil then
- if jfm[class].chars == "" then
- io.stderr:write("Class " .. class .. " has only Alchar, so we omit it\n")
- jfm[class] = nil
- end
- end
-end
-
-
--- 存在しないクラスに対するglue/kernは消す
-for _,gluekern in ipairs({"glue","kern"}) do
- for class,val in pairs(jfm) do
- if type(class) == "number" and val[gluekern] ~= nil then
- for target,_ in pairs(val[gluekern]) do
- if jfm[target] == nil then
- io.stderr:write("Class " .. tostring(target) .. " does not exist, the corresponding " .. gluekern .. " in Class " .. tostring(class) .. " is omitted\n")
- jfm[class][gluekern][target] = nil
- end
- end
- end
- end
-end
-
--- glueやkernが同じ挙動であるか調べる
-function isthesamespace(gluekern,clses,c1,c2)
- return isthesamespace_before(gluekern,c1,c2) and isthesamespace_after(gluekern,clses,c1,c2)
-end
--- c1,c2を前とするグルーが同じか.
-function isthesamespace_before(gluekern,c1,c2)
- -- 片方がnilの場合
- if jfm[c1][gluekern] == jfm[c2][gluekern] then return true end
- if jfm[c1][gluekern] == nil or jfm[c2][gluekern] == nil then return false end
- --この段階で両方tableなはず
- local targetclses = {} -- c1とc2のglueやkernのunion
- for c,_ in pairs(jfm[c1][gluekern]) do table.insert(targetclses,c) end
- for c,_ in pairs(jfm[c2][gluekern]) do table.insert(targetclses,c) end
- targetclses = array_uniq(targetclses)
- for _,chk in ipairs(targetclses) do
- if jfm[c1][gluekern][chk] == jfm[c2][gluekern][chk] then goto continue end
- if jfm[c1][gluekern][chk] == nil or jfm[c2][gluekern][chk] == nil then return false end
- if type(jfm[c1][gluekern][chk]) == "number" or type(jfm[c2][gluekern][chk]) == "number" then return false end
- if jfm[c1][gluekern][chk][1] ~= jfm[c2][gluekern][chk][1] then return false end
- if gluekern == "glue" then
- if jfm[c1][gluekern][chk][2] ~= jfm[c2][gluekern][chk][2] or jfm[c1][gluekern][chk][3] ~= jfm[c2][gluekern][chk][3] then return false end
- end
- ::continue::
- end
- return true
-end
-
-function isthesamespace_after(gluekern,clses,c1,c2)
- for _,c in pairs(clses) do
- if jfm[c][gluekern] == nil then goto continue end
- if jfm[c][gluekern][c1] == jfm[c][gluekern][c2] then goto continue end
- if jfm[c][gluekern][c1] == nil or jfm[c][gluekern][c2] == nil then return false end
- if type(jfm[c][gluekern][c1]) == "number" or type(jfm[c][gluekern][c2]) == "number" then return false end
- if jfm[c][gluekern][c1][1] ~= jfm[c][gluekern][c2][1] then return false end
- if kernglue == "glue" then
- if jfm[c][gluekern][c1][2] ~= jfm[c][gluekern][c2][2] or jfm[c][gluekern][c1][3] ~= jfm[c][gluekern][c2][3] then return false end
- end
- ::continue::
- end
- return true
-end
-
--- 同じ挙動を示すクラスをまとめる
-local classes = {}
-for k,_ in pairs(jfm) do if type(k) == "number" then table.insert(classes,k) end end
-classes = stable_sort(classes)
-for _,from in pairs(classes) do
- for index,to in pairs(classes) do
- if to <= from or to == 0 or from == 0 then goto continue end
- if jfm[from].width ~= jfm[to].width or jfm[from].height ~= jfm[to].height or jfm[from].depth ~= jfm[to].depth or jfm[from].italic ~= jfm[to].italic then goto continue end
- if isthesamespace("glue",classes,from,to) and isthesamespace("kern",classes,from,to) then
- io.stderr:write("Class " .. tostring(to) .. " is merged to Class " .. tostring(from) .. "\n")
- jfm[from].chars = jfm[from].chars .. " " .. jfm[to].chars
- jfm[to] = nil
- classes[index] = nil
- for _,cls in pairs(classes) do
- if jfm[cls].glue ~= nil then jfm[cls].glue[to] = nil end
- if jfm[cls].kern ~= nil then jfm[cls].kern[to] = nil end
- end
- end
- ::continue::
- end
-end
-
--- 番号を連続的にする.
--- classmaptable[JFM内クラス番号] = JPL内クラス番号
-classes = {}
-for k,_ in pairs(jfm) do if type(k) == "number" then table.insert(classes,k) end end
-classes = stable_sort(classes)
-local classmaptable = {}
-local jplclass = 1
-for _,class in ipairs(classes) do
- if type(class) == "number" then
- if class == 0 then classmaptable[class] = 0
- else
- if class ~= jplclass then
- io.stderr:write("Class " .. tostring(class) .. " is mapped to Class " .. tostring(jplclass) .. "\n")
- end
- classmaptable[class] = jplclass
- jplclass = jplclass + 1
- end
- end
-end
-
-
-fp:write("(COMMENT JPL file from jfm-" .. luajfm .. ".lua)\n")
-fp:write("(CODINGSCHEME TEX KANJI TEXT)\n")
-fp:write("(DIRECTION " .. string.upper(jfm.dir) .. ")\n")
--- fp:write("(DESIGNSIZE R 10.0)\n")
-fp:write("(FONTDIMEN \n")
-fp:write(" (SLANT R 0.0)\n")
-fp:write(" (SPACE R " .. tostring(jfm.kanjiskip[1]) .. ")\n")
-fp:write(" (STRETCH R " .. tostring(jfm.kanjiskip[2]) .. ")\n")
-fp:write(" (SHRINK R " .. tostring(jfm.kanjiskip[3]) .. ")\n")
-fp:write(" (XHEIGHT R " .. tostring(jfm.zh) .. ")\n")
-fp:write(" (QUAD R " .. tostring(jfm.zw) .. ")\n")
-fp:write(" (EXTRASPACE R " .. tostring(jfm.xkanjiskip[1]) .. ")\n")
--- 下二つはFONTDIMENの下で良いのかな?
-fp:write(" (EXTRASTRETCH R " .. tostring(jfm.xkanjiskip[2]) .. ")\n")
-fp:write(" (EXTRASHRINK R " .. tostring(jfm.xkanjiskip[3]) .. ")\n")
-fp:write(")\n")
-
-classes = {}
-for k,_ in pairs(jfm) do if type(k) == "number" then table.insert(classes,k) end end
-classes = stable_sort(classes,function(a,b) return classmaptable[a] < classmaptable[b] end)
-
-for _,class in ipairs(classes) do
- if class ~= 0 then
- fp:write("(CHARSINTYPE D " .. tostring(classmaptable[class]) .. "\n " .. jfm[class].chars .. "\n)\n")
- end
- fp:write("(TYPE D " .. tostring(classmaptable[class]) .. "\n")
- fp:write(" (CHARWD R " .. tostring(jfm[class].width) .. ")\n")
- fp:write(" (CHARHT R " .. tostring(jfm[class].height) .. ")\n")
- fp:write(" (CHARDP R " .. tostring(jfm[class].depth) .. ")\n")
- fp:write(" (CHARIC R " .. tostring(jfm[class].italic) .. ")\n")
- fp:write(")\n")
- ::continue::
-end
-
-fp:write("(GLUEKERN\n")
-for _,class in ipairs(classes) do
- if (jfm[class].glue == nil or isempty(jfm[class].glue) == true) and (jfm[class].kern == nil or (type(jfm[class].kern) == "table" and isempty(jfm[class].kern) == true)) then goto continue end
- fp:write(" (LABEL D " .. tostring(classmaptable[class]) .. ")\n")
- if jfm[class].glue ~= nil then
- for _,targetcls in ipairs(classes) do
- if jfm[class].glue[targetcls] ~= nil then
- fp:write(" (GLUE D " .. tostring(classmaptable[targetcls]) .. " R " .. tostring(jfm[class].glue[targetcls][1]) .. " R " .. tostring(jfm[class].glue[targetcls][2]) .. " R " .. tostring(jfm[class].glue[targetcls][3]) .. ")\n")
- end
- end
- end
- if jfm[class].kern ~= nil then
- for _,targetcls in ipairs(classes) do
- if jfm[class].kern[targetcls] ~= nil then
- fp:write(" (KRN D " .. tostring(classmaptable[targetcls]) .. " R ")
- if type(kernval) == "number" then fp:write(tostring(jfm[class],kern[targetcls]) .. ")\n")
- else fp:write(tostring(jfm[class].kern[targetcls][1]) .. ")\n") end
- end
- end
- end
- fp:write(" (STOP)\n")
- ::continue::
-end
-fp:write(")\n")
diff --git a/language/japanese/jlreq/make_variant_jfm.lua b/language/japanese/jlreq/make_variant_jfm.lua
deleted file mode 100644
index d22587fe69..0000000000
--- a/language/japanese/jlreq/make_variant_jfm.lua
+++ /dev/null
@@ -1,211 +0,0 @@
-kpse.set_program_name("texlua","lualatex")
-require('lualibs')
-
-function burasage(t)
- t = table.fastcopy(t)
- -- 句読点の幅を0にして,句読点に続くglueを句読点の幅だけ増やす.
- for _,class in ipairs({6,7}) do
- local width = t[class].width
- t[class].width = 0
- -- 句読点を前とするJFMはすべて定義されていることを仮定.
- if t[class].glue ~= nil then
- for key,_ in pairs(t[class].glue) do
- t[class].glue[key][1] = t[class].glue[key][1] + width
- end
- end
- if t[class].kern ~= nil then
- for key,val in pairs(t[class].kern) do
- if type(val) == "table" then
- t[class].glue[key][1] = t[class].glue[key][1] + width
- else
- t[class].glue[key] = t[class].glue[key] + width
- end
- end
- end
- end
- return t
-end
-
-function zenkaku_kakko(t)
- t = table.fastcopy(t)
- -- 開き括弧のwidthを0.5増やす
- t[1].width = t[1].width + 0.5
- for cls,val in pairs(t) do
- if type(cls) ~= "number" then goto continue end
- if t[cls].glue ~= nil and t[cls].glue[1] ~= nil then
- t[cls].glue[1][1] = t[cls].glue[1][1] - 0.5
- end
- if t[cls].kern ~= nil and t[cls].kern[1] ~= nil then
- if type(t[cls].kern[1]) == "table" then
- t[cls].kern[1][1] = t[cls].kern[1][1] - 0.5
- else
- t[cls].kern[1] = t[cls].kern[1] - 0.5
- end
- end
- ::continue::
- end
- return t
-end
-
-function tate(t)
- t = table.fastcopy(t)
- t.dir = 'tate'
- for key,_ in pairs(t) do
- if type(key) == "number" then
- t[key].height = 0.5
- t[key].depth = 0.5
- end
- end
- return t
-end
-
-function to_pl(t)
- t = table.fastcopy(t)
- -- 空きの第四段階は消す
- for cl1,val in pairs(t) do
- if type(cl1) == "number" then
- for cl2,glue in pairs(val.glue) do
- if glue.priority ~= nil and glue.priority[1] < 0 then
- t[cl1].glue[cl2][2] = 0
- end
- end
- end
- end
- -- LuaTeX-jaのJFMではalcharが使えることに由来する補正
- t[4].glue[0] = nil
- return t
-end
-
--- jfmのテーブル,ファイル名
-function make_jfmfile(t,f)
- table.tofile(f,t,"local jfm")
- local fp = io.open(f,"a")
- fp:write("luatexja.jfont.define_jfm(jfm)\n")
- fp:close()
-end
-
-function tolf(file)
- local fp = io.open(file,"r")
- local s = "";
- for l in fp:lines() do
- s = s .. l .. "\n";
- end
- fp:close();
- fp = io.open(file,"wb")
- fp:write(s);
- fp:close();
-end
-
-local originaljfm = "jlreq"
-local originaljfm_jidori = "jlreq-jidori"
-
-local jfmfile = kpse.find_file("jfm-" .. originaljfm .. ".lua")
-if jfmfile == nil then
- print("JFM " .. originaljfm .. " is not found")
- os.exit(1)
-end
-
-jfm = nil
-luatexja = {}
-luatexja.jfont = {}
-
-function luatexja.jfont.define_jfm(j)
- jfm = j
-end
-
-dofile(jfmfile)
-
-make_jfmfile(to_pl(jfm),"jfm-" .. originaljfm .. "-pl.lua")
-make_jfmfile(to_pl(burasage(jfm)),"jfm-b" .. originaljfm .. "-pl.lua")
-make_jfmfile(to_pl(zenkaku_kakko(jfm)),"jfm-z" .. originaljfm .. "-pl.lua")
-make_jfmfile(to_pl(burasage(zenkaku_kakko(jfm))),"jfm-bz" .. originaljfm .. "-pl.lua")
-make_jfmfile(to_pl(tate(jfm)),"jfm-" .. originaljfm .. "v-pl.lua")
-make_jfmfile(to_pl(burasage(tate(jfm))),"jfm-b" .. originaljfm .. "v-pl.lua")
-make_jfmfile(to_pl(zenkaku_kakko(tate(jfm))),"jfm-z" .. originaljfm .. "v-pl.lua")
-make_jfmfile(to_pl(burasage(zenkaku_kakko(tate(jfm)))),"jfm-bz" .. originaljfm .. "v-pl.lua")
-
-local jfm = tate(jfm)
-local file = "jfm-" .. originaljfm .. "v.lua"
-table.tofile(file,jfm,"local jfm")
-local fp = io.open(file,"a")
-fp:write([[
-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)
-]])
-fp:close()
-
-tolf(file);
-
-
-jfmfile = kpse.find_file("jfm-" .. originaljfm_jidori .. ".lua")
-if jfmfile == nil then
- print("JFM " .. originaljfm_jidori .. " is not found")
- os.exit(1)
-end
-
-jfm = nil
-function luatexja.jfont.define_jfm(j)
- jfm = j
-end
-dofile(jfmfile)
-
-function to_jidori_pl(t)
- t = table.fastcopy(t)
- -- kanjiskipに任せているところを15zwに変更
- for cl1,val in pairs(t) do
- if type(cl1) == "number" then
- for cl2,glue in pairs(val.glue) do
- if glue.kanjiskip_stretch == 1 then
- t[cl1].glue[cl2][2] = 15
- end
- end
- end
- end
- return t
-end
-
-
-make_jfmfile(to_jidori_pl(jfm),"jfm-jlreq-jidori-pl.lua")
-make_jfmfile(to_jidori_pl(tate(jfm)),"jfm-jlreqv-jidori-pl.lua")
-make_jfmfile(tate(jfm),"jfm-jlreqv-jidori.lua")
-tolf("jfm-jlreqv-jidori.lua")