├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .textlintrc ├── README.md ├── package.json ├── src ├── catalog.yml ├── config-paper.yml ├── config-pdf.yml ├── config.yml ├── contributors.re ├── images │ ├── cover.png │ └── sample │ │ └── this_is_sample.png ├── postscript.re ├── preface.re ├── review-ext.rb ├── sample.re ├── sty │ ├── README.md │ ├── gentombow.sty │ ├── jsbook.cls │ ├── jumoline.sty │ ├── plistings.sty │ ├── review-base.sty │ ├── review-custom.sty │ ├── review-jsbook.cls │ ├── review-style.sty │ ├── review-tcbox.sty │ └── reviewmacro.sty ├── style.css └── title.tex └── yarn.lock /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | pull_request: 5 | jobs: 6 | lint: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Checkout 10 | uses: actions/checkout@v3 11 | - name: Use Node.js 12 | uses: actions/setup-node@v3 13 | with: 14 | node-version: 16 15 | - name: Setup Node Packages 16 | run: yarn --frozen-lockfile 17 | - name: Textlint 18 | continue-on-error: true 19 | run: npx textlint **/*.re 2>&1 20 | 21 | build: 22 | runs-on: ubuntu-latest 23 | container: docker://vvakame/review:5.7 24 | needs: 25 | - lint 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@v3 29 | - name: Build PDF 30 | run: cd src && review-pdfmaker config.yml 31 | - name: Notify Failure To Slack 32 | if: ${{ failure() }} 33 | run: >- 34 | curl -X POST \ 35 | --data-urlencode \ 36 | "payload={\"channel\":\"${{ secrets.SLACK_INCOMING_CHANNEL }}\", \ 37 | \"username\": \"テックブックBot\", \ 38 | \"text\": \"${{ github.ref_name }}のビルドが失敗しました。\\n https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}\", \ 39 | \"icon_emoji\": \":robot_face:\" \ 40 | }" \ 41 | ${{ secrets.SLACK_INCOMING_WEBHOOK }} && exit 1 42 | - name: Store Artifacts 43 | uses: actions/upload-artifact@v3 44 | with: 45 | name: techbook 46 | path: src/techbook.pdf 47 | 48 | notify_success: 49 | runs-on: ubuntu-latest 50 | needs: 51 | - build 52 | steps: 53 | - name: Send result to slack channel 54 | run: >- 55 | curl -X POST \ 56 | --data-urlencode \ 57 | "payload={\"channel\":\"${{ secrets.SLACK_INCOMING_CHANNEL }}\", \ 58 | \"username\": \"テックブックBot\", \ 59 | \"text\": \"${{ github.ref_name }}のビルドが成功しました。\\n以下のURLのARTIFACTSから確認できます。\\n https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}\", \ 60 | \"icon_emoji\": \":robot_face:\" \ 61 | }" \ 62 | ${{ secrets.SLACK_INCOMING_WEBHOOK }} 63 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pdf 2 | .DS_Store 3 | src/techbook-paper-pdf 4 | src/techbook-pdf 5 | src/techbook-pdf-pdf 6 | 7 | # Created by https://www.gitignore.io/api/python,node,osx 8 | # Edit at https://www.gitignore.io/?templates=python,node,osx 9 | 10 | ### Node ### 11 | # Logs 12 | logs 13 | *.log 14 | npm-debug.log* 15 | yarn-debug.log* 16 | yarn-error.log* 17 | lerna-debug.log* 18 | 19 | # Diagnostic reports (https://nodejs.org/api/report.html) 20 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 21 | 22 | # Runtime data 23 | pids 24 | *.pid 25 | *.seed 26 | *.pid.lock 27 | 28 | # Directory for instrumented libs generated by jscoverage/JSCover 29 | lib-cov 30 | 31 | # Coverage directory used by tools like istanbul 32 | coverage 33 | *.lcov 34 | 35 | # nyc test coverage 36 | .nyc_output 37 | 38 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 39 | .grunt 40 | 41 | # Bower dependency directory (https://bower.io/) 42 | bower_components 43 | 44 | # node-waf configuration 45 | .lock-wscript 46 | 47 | # Compiled binary addons (https://nodejs.org/api/addons.html) 48 | build/Release 49 | 50 | # Dependency directories 51 | node_modules/ 52 | jspm_packages/ 53 | 54 | # TypeScript v1 declaration files 55 | typings/ 56 | 57 | # TypeScript cache 58 | *.tsbuildinfo 59 | 60 | # Optional npm cache directory 61 | .npm 62 | 63 | # Optional eslint cache 64 | .eslintcache 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variables file 76 | .env 77 | .env.test 78 | 79 | # parcel-bundler cache (https://parceljs.org/) 80 | .cache 81 | 82 | # next.js build output 83 | .next 84 | 85 | # nuxt.js build output 86 | .nuxt 87 | 88 | # vuepress build output 89 | .vuepress/dist 90 | 91 | # Serverless directories 92 | .serverless/ 93 | 94 | # FuseBox cache 95 | .fusebox/ 96 | 97 | # DynamoDB Local files 98 | .dynamodb/ 99 | 100 | ### OSX ### 101 | # General 102 | .DS_Store 103 | .AppleDouble 104 | .LSOverride 105 | 106 | # Icon must end with two \r 107 | Icon 108 | 109 | # Thumbnails 110 | ._* 111 | 112 | # Files that might appear in the root of a volume 113 | .DocumentRevisions-V100 114 | .fseventsd 115 | .Spotlight-V100 116 | .TemporaryItems 117 | .Trashes 118 | .VolumeIcon.icns 119 | .com.apple.timemachine.donotpresent 120 | 121 | # Directories potentially created on remote AFP share 122 | .AppleDB 123 | .AppleDesktop 124 | Network Trash Folder 125 | Temporary Items 126 | .apdisk 127 | 128 | ### Python ### 129 | # Byte-compiled / optimized / DLL files 130 | __pycache__/ 131 | *.py[cod] 132 | *$py.class 133 | 134 | # C extensions 135 | *.so 136 | 137 | # Distribution / packaging 138 | .Python 139 | build/ 140 | develop-eggs/ 141 | dist/ 142 | downloads/ 143 | eggs/ 144 | .eggs/ 145 | lib/ 146 | lib64/ 147 | parts/ 148 | sdist/ 149 | var/ 150 | wheels/ 151 | pip-wheel-metadata/ 152 | share/python-wheels/ 153 | *.egg-info/ 154 | .installed.cfg 155 | *.egg 156 | MANIFEST 157 | 158 | # PyInstaller 159 | # Usually these files are written by a python script from a template 160 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 161 | *.manifest 162 | *.spec 163 | 164 | # Installer logs 165 | pip-log.txt 166 | pip-delete-this-directory.txt 167 | 168 | # Unit test / coverage reports 169 | htmlcov/ 170 | .tox/ 171 | .nox/ 172 | .coverage 173 | .coverage.* 174 | nosetests.xml 175 | coverage.xml 176 | *.cover 177 | .hypothesis/ 178 | .pytest_cache/ 179 | 180 | # Translations 181 | *.mo 182 | *.pot 183 | 184 | # Django stuff: 185 | local_settings.py 186 | db.sqlite3 187 | db.sqlite3-journal 188 | 189 | # Flask stuff: 190 | instance/ 191 | .webassets-cache 192 | 193 | # Scrapy stuff: 194 | .scrapy 195 | 196 | # Sphinx documentation 197 | docs/_build/ 198 | 199 | # PyBuilder 200 | target/ 201 | 202 | # Jupyter Notebook 203 | .ipynb_checkpoints 204 | 205 | # IPython 206 | profile_default/ 207 | ipython_config.py 208 | 209 | # pyenv 210 | .python-version 211 | 212 | # pipenv 213 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 214 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 215 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 216 | # install all needed dependencies. 217 | #Pipfile.lock 218 | 219 | # celery beat schedule file 220 | celerybeat-schedule 221 | 222 | # SageMath parsed files 223 | *.sage.py 224 | 225 | # Environments 226 | .venv 227 | env/ 228 | venv/ 229 | ENV/ 230 | env.bak/ 231 | venv.bak/ 232 | 233 | # Spyder project settings 234 | .spyderproject 235 | .spyproject 236 | 237 | # Rope project settings 238 | .ropeproject 239 | 240 | # mkdocs documentation 241 | /site 242 | 243 | # mypy 244 | .mypy_cache/ 245 | .dmypy.json 246 | dmypy.json 247 | 248 | # Pyre type checker 249 | .pyre/ 250 | 251 | # End of https://www.gitignore.io/api/python,node,osx 252 | -------------------------------------------------------------------------------- /.textlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "preset-ja-technical-writing": { 4 | "no-exclamation-question-mark": false, 5 | "max-ten": false, 6 | "sentence-length": { 7 | max: 240 8 | } 9 | }, 10 | "preset-japanese": true, 11 | "preset-jtf-style": true, 12 | "ja-technical-writing/max-kanji-continuous-len": false, 13 | "japanese/sentence-length": { 14 | max: 240 15 | }, 16 | "japanese/max-ten": false 17 | }, 18 | "filters": { 19 | "comments": true, 20 | "whitelist": { 21 | "allow": [ 22 | "/# .*/" 23 | ] 24 | } 25 | }, 26 | "plugins": [ 27 | "review" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | これはエムスリー株式会社の techbook 用テンプレートです。 4 | 5 | 実際のエムスリーテックブックはこちら:https://techbookfest.org/organization/38290003 6 | 7 | # 参考情報 8 | 9 | 以下を参考に執筆する事をオススメします 10 | 11 | - Re:VIEW: https://github.com/kmuto/review/ 12 | - Re:VIEW image for Docker: https://github.com/vvakame/docker-review 13 | - Re:VIEW フォーマットガイド: https://github.com/kmuto/review/blob/master/doc/format.ja.md 14 | 15 | 以下のブログにもフォーマットの詳細を記載しています 16 | 17 | - 技術書典への参加から執筆の諸問題対応とテンプレート公開までの記録: https://www.m3tech.blog/entry/techbook_knowledge 18 | 19 | 20 | # 動作条件 21 | 22 | - Node.js 16 23 | - Docker 24 | 25 | # 事前準備 26 | 27 | 本プロジェクトでは文章校正ツールとして textlint を使用しています。 28 | 関連パッケージをインストールするため、ルートディレクトリで以下コマンドを実行します。 29 | 30 | ``` 31 | yarn install 32 | ``` 33 | 34 | # textlint 35 | 36 | textlint の結果を出力するには、ルートディレクトリで以下のコマンドを実行します。 37 | 38 | ``` 39 | npx textlint src/*.re 40 | ``` 41 | 42 | また、以下のようにファイル名を個別に指定して実行することも可能です。 43 | 44 | ``` 45 | npx textlint src/postscript.re 46 | ``` 47 | 48 | textlint のルールは `.textlintrc` でカスタマイズ可能です。 49 | 各ルールセットの詳細は下記リンクを参照してください。 50 | 51 | - https://github.com/textlint-ja/textlint-rule-preset-japanese 52 | - https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing 53 | 54 | ## PDF ビルド 55 | 56 | 以下のコマンドで src 配下にダウンロード販売用の PDF `techbook-pdf.pdf` が生成されます 57 | 58 | ``` 59 | docker run --rm -v $PWD/src:/work vvakame/review:5.7 /bin/sh -c "cd /work && review-pdfmaker config-pdf.yml" 60 | ``` 61 | 62 | ## 入稿用データ ビルド 63 | 64 | 以下のコマンドで src 配下に入稿用の PDF `techbook-paper.pdf` が生成されます 65 | 66 | ``` 67 | docker run --rm -v $PWD/src:/work vvakame/review:5.7 /bin/sh -c "cd /work && review-pdfmaker config-paper.yml" 68 | ``` 69 | 70 | 71 | ## 設定必要項目 72 | 73 | 以下を必要に応じて設定します 74 | 75 | - src/config.yml: pdf設定項目 76 | - booktitle 77 | - aut 78 | - date 79 | - history 80 | - rights 81 | - src/title.tex: 2ページ目タイトル 82 | - src/catalog.yml: 以下のreファイルへのpath 83 | - src/preface.re: まえがき 84 | - src/postscript.re: あとがき 85 | - src/contributors.re: 執筆者情報 86 | - src/{foobar}.re: 各章の文章 87 | - src/images/cover.png: 表紙画像 88 | - src/images/{foobar}/{hoge}.png: foobar.reで利用される画像 89 | - .github/workflows/ci.yml: GitHub Actions設定 90 | - secrets.SLACK_INCOMING_WEBHOOK: slack post用url 91 | - secrets.SLACK_INCOMING_CHANNEL: slack post先チャンネル名(ex: "#techbook-ci") 92 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "techbook", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "repository": "https://github.com/m3dev/techbook-templete", 6 | "author": "m3dev", 7 | "license": "MIT", 8 | "devDependencies": { 9 | "textlint": "^11.2.3", 10 | "textlint-filter-rule-comments": "^1.2.2", 11 | "textlint-filter-rule-whitelist": "^2.0.0", 12 | "textlint-plugin-review": "^0.3.3", 13 | "textlint-rule-preset-ja-technical-writing": "^3.1.3", 14 | "textlint-rule-preset-japanese": "^4.0.4" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/catalog.yml: -------------------------------------------------------------------------------- 1 | PREDEF: 2 | - preface.re 3 | 4 | CHAPS: 5 | - sample.re 6 | 7 | APPENDIX: 8 | 9 | POSTDEF: 10 | - postscript.re 11 | - contributors.re 12 | -------------------------------------------------------------------------------- /src/config-paper.yml: -------------------------------------------------------------------------------- 1 | inherit: ["config.yml"] 2 | bookname: techbook-paper 3 | # media=print : 印刷用にトンボを表示 4 | # cover=false : 表紙は印刷所側のテンプレを利用するため非表示 5 | # hiddenfolio=nikko-pc : 印刷所ごとに隠しノンブルの設定を変更(nikko-pc = 日光企画, marusho-ink = 丸正インキ, shippo = ねこのしっぽ) 6 | # 詳細は以下を参照 7 | # https://review-knowledge-ja.readthedocs.io/ja/latest/latex/review3-latex.html#296393b6ba6b0a3a20c6fe2f717e73f2 8 | texdocumentclass: 9 | [ 10 | "review-jsbook", 11 | "media=print, paper=b5, twoside, fontsize=10pt, head_space=28mm, number_of_lines=37, gutter=27mm, footskip=10mm, serial_pagination=true, hiddenfolio=nikko-pc, cover=false", 12 | ] 13 | -------------------------------------------------------------------------------- /src/config-pdf.yml: -------------------------------------------------------------------------------- 1 | inherit: ["config.yml"] 2 | bookname: techbook-pdf 3 | # media=ebook : pdf用設定 4 | texdocumentclass: 5 | [ 6 | "review-jsbook", 7 | "media=ebook, paper=b5, twoside, fontsize=10pt, head_space=28mm, number_of_lines=37, gutter=26mm, footskip=10mm, serial_pagination=true, cover=true", 8 | ] 9 | -------------------------------------------------------------------------------- /src/config.yml: -------------------------------------------------------------------------------- 1 | # review-epubmaker向けの設定ファイルの例。 2 | # yamlファイルをRe:VIEWファイルのある場所に置き、 3 | # 「review-epubmaker yamlファイル」を実行すると、.epubファイルが 4 | # 生成されます。 5 | # このファイルはUTF-8エンコーディングで記述してください。 6 | 7 | # この設定ファイルでサポートするRe:VIEWのバージョン番号。 8 | review_version: 5.2 9 | 10 | # ほかの設定ファイルの継承を指定できる。同じパラメータに異なる値がある場合は、 11 | # 呼び出し元の値が優先される。 12 | # A.yml、B.ymlのパラメータを継承する例。A.ymlとB.ymlに同じパラメータがある 13 | # 場合、B.ymlの値が優先される。さらに今このファイルに同じパラメータがあるなら、 14 | # その値がB.ymlよりも優先される。 15 | # 同様にA.yml、B.yml内でさらにinherit:パラメータを使うこともできる。 16 | # inherit: ["A.yml", "B.yml"] 17 | 18 | # ブック名(ファイル名になるもの。ASCII範囲の文字を使用) 19 | bookname: techbook 20 | # 記述言語。省略した場合はja 21 | language: ja 22 | 23 | # 書名 24 | # 読みを入れる例 booktitle: {name: "Re:VIEW EPUBサンプル", file-as: "リビューイーパブサンプル"} 25 | booktitle: "techbook" 26 | 27 | # 著者名。「, 」で区切って複数指定できる 28 | # 読みを入れる例 aut: [{name: "青木峰郎", file-as: "アオキミネロウ"}, {name: "武藤健志", file-as: "ムトウケンシ"}, {name: "高橋征義", file-as: "タカハシマサヨシ"}, {name: "角征典", file-as: "カドマサノリ"}] 29 | aut: ["techbook執筆部"] 30 | 31 | # 以下はオプション 32 | # 以下はオプション(autと同じように配列書式で複数指定可能)。 33 | # 読みの指定はaut:の例を参照。 34 | # a-が付いているものはcreator側、 35 | # 付いていないものはcontributor側(二次協力者)に入る 36 | # a-adp, adp: 異なるメディア向けに作り直した者 37 | # a-ann, ann: 注釈記述者 38 | # a-arr, arr: アレンジした者 39 | # a-art, art: グラフィックデザインおよび芸術家 40 | # a-asn, asn: 関連・かつての所有者・関係者 41 | # a-aqt, aqt: 大きく引用された人物 42 | # a-aft, aft: 後書き・奥付の責任者 43 | # a-aui, aui: 序論・序文・前書きの責任者 44 | # a-ant, ant: 目録責任者 45 | # a-bkp, bkp: メディア制作責任者 46 | # a-clb, clb: 限定参加または補足者 47 | # a-cmm, cmm: 解釈・分析・考察者 48 | # a-csl, csl: 監修者 49 | # a-dsr, dsr: デザイナ 50 | # a-edt, edt: 編集者 51 | # a-ill, ill: イラストレータ 52 | # a-lyr, lyr: 歌詞作成者 53 | # a-mdc, mdc: メタデータセットの一次的責任者 54 | # a-mus, mus: 音楽家 55 | # a-nrt, nrt: 語り手 56 | # a-oth, oth: その他 57 | # a-pht, pht: 撮影責任者 58 | # a-pbl, pbl: 出版社(発行所) 59 | # a-prt, prt: 印刷所 60 | # a-red, red: 項目の枠組起草者 61 | # a-rev, rev: 評論者 62 | # a-spn, spn: 援助者 63 | # a-ths, ths: 監督者 64 | # a-trc, trc: 筆記・タイプ作業者 65 | # a-trl, trl: 翻訳者 66 | 67 | # デフォルトは以下。ths を追加。 68 | # https://github.com/kmuto/review/blob/72480f5930f54241067ac9493c0d98fbadf891d8/lib/review/configure.rb#L66 69 | colophon_order: 70 | [ 71 | "aut", 72 | "spn", 73 | "ths", 74 | "csl", 75 | "trl", 76 | "dsr", 77 | "ill", 78 | "cov", 79 | "edt", 80 | "pbl", 81 | "contact", 82 | "prt", 83 | ] 84 | 85 | # 刊行日(省略した場合は実行時の日付) 86 | date: 2021-07-10 87 | # 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する 88 | # 複数指定する場合は次のように記述する 89 | # [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]] 90 | # 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。 91 | history: [["2021-07-10"]] 92 | # 権利表記(配列で複数指定可) 93 | # rights: (C) 2016-2019 Re:VIEW Developers 94 | 95 | rights: (C) 2021 執筆部 96 | 97 | # description: 説明 98 | # subject: 短い説明用タグ(配列で複数指定可) 99 | # type: 書籍のカテゴリーなど(配列で複数指定可) 100 | # format: メディアタイプおよび特徴(配列で複数指定可) 101 | # source: 出版物生成の重要なリソース情報(配列で複数指定可) 102 | # relation: 補助的リソース(配列で複数指定可) 103 | # coverage: 内容の範囲や領域(配列で複数指定可) 104 | 105 | # デバッグフラグ。nullでないときには一時ファイルをカレントディレクトリに作成し、削除もしない 106 | debug: true 107 | 108 | # 固有IDに使用するドメイン。指定しない場合には、時刻に基づくランダムUUIDが入る 109 | # urnid: urn:uid:http://example.com/book-title/ 110 | # 111 | # ISBN。省略した場合はurnidが入る 112 | # isbn: null 113 | # 114 | # HTMLファイルの拡張子(省略した場合はhtml) 115 | # htmlext: html 116 | # 117 | # CSSファイル(配列で複数指定可) 118 | stylesheet: ["style.css"] 119 | 120 | # ePUBのバージョン (2か3) 121 | # epubversion: 3 122 | # 123 | # HTMLのバージョン (4か5。epubversionを3にしたときには5にする) 124 | # htmlversion: 5 125 | 126 | # 目次として抽出する見出しレベル 127 | toclevel: 3 128 | 129 | # 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする 130 | # 131 | # 本文でセクション番号を表示する見出しレベル 132 | secnolevel: 2 133 | 134 | # 本文中に目次ページを作成するか。省略した場合はnull (作成しない) 135 | toc: true 136 | 137 | # EPUB2標準の目次(NCX)以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない) 138 | # ePUB3においてはこの設定によらず必ず作成される 139 | # mytoc: true 140 | 141 | # 表紙にするファイル。ファイル名を指定すると表紙として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル) 142 | # cover: null 143 | # 144 | # 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg) 145 | # PDFMaker 固有の表紙設定は pdfmaker セクション内で上書き可能 146 | coverimage: cover.png 147 | # 148 | # 表紙の後に大扉ページを作成するか。省略した場合はtrue (作成する) 149 | titlepage: true 150 | 151 | # 152 | # 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル) 153 | titlefile: title.tex 154 | 155 | # 156 | # 原書大扉ページにするファイル。ファイル名を指定すると原書大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル) 157 | # originaltitlefile: null 158 | # 159 | # 権利表記ページファイル。ファイル名を指定すると権利表記として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル) 160 | # creditfile: null 161 | 162 | # 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる 163 | # colophon: null 164 | 165 | # 裏表紙データファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル) 166 | # backcover: null 167 | 168 | # プロフィールページファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)。ファイル名を指定すると著者紹介として入る 169 | # profile: null 170 | # プロフィールページの目次上の見出し 171 | # profiletitle: 著者紹介 172 | 173 | # 広告ファイル。ファイル名を指定すると広告として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル) 174 | # advfile: null 175 | 176 | # 取り込む画像が格納されているディレクトリ。省略した場合は以下 177 | # imagedir: images 178 | 179 | # 取り込むフォントが格納されているディレクトリ。省略した場合は以下 180 | # fontdir: fonts 181 | 182 | # imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下 183 | # image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"] 184 | 185 | # fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下 186 | # font_ext: ["ttf", "woff", "otf"] 187 | 188 | # ソースコードハイライトを利用する (rouge,pygmentsには外部gemが必要) 189 | # highlight: 190 | # html: "rouge" 191 | # latex: "listings" 192 | 193 | # カタログファイル名を指定する 194 | # catalogfile: src/catalog.yml 195 | 196 | # reファイルを格納するディレクトリ。省略した場合は以下 (. はカレントディレクトリを示す) 197 | # contentdir: . 198 | 199 | # @命令で使用する単語ファイルのパス 200 | # words_file: words.csv 201 | 202 | # review-vol向けのヒント情報 203 | # 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5) 204 | # page_metric: A5 205 | # 206 | # あるいは、配列で指定することもできる 207 | # 各数字の意味は、順にリストの行数、リストの1行字数、テキストの行数、テキストの1行字数、1kバイトごとのページ数 208 | # page_metric: [40,80,40,80,2] 209 | 210 | # EPUBおよびWeb生成における数式の画像化指定 211 | # TeXの数式を画像化するか。省略した場合はnull (作成しない) 212 | # imgmath: true 213 | 214 | # imgmathがtrueの場合の設定 215 | # 以下のパラメータを有効にするときには、 216 | # imgmath_options: 217 | # パラメータ: 値 218 | # パラメータ: 値 219 | # ... 220 | # という構成にする必要がある(インデントさせる) 221 | # imgmath_options: 222 | # 使用する画像拡張子。通常は「png」か「svg」(svgの場合は、pdfcrop_pixelize_cmdの-pngも-svgにする) 223 | # format: png 224 | # 変換手法。pdfcrop または dvipng 225 | # converter: pdfcrop 226 | # プリアンブルの内容を上書きするファイルを指定する(デフォルトはupLaTeX+jsarticle.clsを前提とした、lib/review/makerhelper.rbのdefault_imgmath_preambleメソッドの内容) 227 | # preamble_file: null 228 | # 基準のフォントサイズ 229 | # fontsize: 10 230 | # 基準の行間 231 | # lineheight: 12 232 | # converterにpdfcropを指定したときのpdfcropコマンドのコマンドライン。プレースホルダは 233 | # %i: 入力ファイル、%o: 出力ファイル 234 | # pdfcrop_cmd: "pdfcrop --hires %i %o" 235 | # PDFから画像化するコマンドのコマンドライン。プレースホルダは 236 | # %i: 入力ファイル、%o: 出力ファイル、%O: 出力ファイルから拡張子を除いたもの 237 | # %p: 対象ページ番号 238 | # pdfcrop_pixelize_cmd: "pdftocairo -png -r 90 -f %p -l %p -singlefile %i %O" 239 | # pdfcrop_pixelize_cmdが複数ページの処理に対応していない場合に単ページ化するか 240 | # extract_singlepage: null 241 | # extract_singlepageがtrueの場合に単ページ化するコマンドのコマンドライン 242 | # pdfextract_cmd: "pdfjam -q --outfile %o %i %p" 243 | # converterにdvipngを指定したときのdvipngコマンドのコマンドライン 244 | # dvipng_cmd: "dvipng -T tight -z 9 -p %p -l %p -o %o %i" 245 | 246 | # EPUBにおけるページ送りの送り方向、page-progression-directionの値("ltr"|"rtl"|"default") 247 | # direction: "ltr" 248 | 249 | # EPUBのOPFへの固有の追加ルール 250 | # 要素に追加する名前空間 251 | # opf_prefix: {ebpaj: "http://www.ebpaj.jp/"} 252 | # 追加する要素のプロパティとその値 253 | # opf_meta: {"ebpaj:guide-version": "1.1.3"} 254 | 255 | # 以下のパラメータを有効にするときには、 256 | # epubmaker: 257 | # パラメータ: 値 258 | # パラメータ: 値 259 | # ... 260 | # という構成にする必要がある(インデントさせる) 261 | 262 | epubmaker: 263 | # HTMLファイルの拡張子 264 | htmlext: xhtml 265 | # 266 | # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。 267 | # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに 268 | # パスしない目次ができるが、そのようなときにはこれをtrueにする 269 | # flattoc: null 270 | # 271 | # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ) 272 | # flattocindent: true 273 | # 274 | # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない 275 | # ncxindent: 276 | #- 277 | #- - 278 | # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される 279 | # プログラムには実行権限が必要 280 | # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。 281 | # 渡される引数1=作業用展開ディレクトリ 282 | # hook_beforeprocess: null 283 | # 284 | # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。 285 | # 渡される引数1=作業用展開ディレクトリ 286 | # hook_afterfrontmatter: null 287 | # 288 | # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。 289 | # 渡される引数1=作業用展開ディレクトリ 290 | # hook_afterbody: null 291 | # 292 | # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。 293 | # 渡される引数1=作業用展開ディレクトリ 294 | # hook_afterbackmatter: null 295 | # 296 | # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。 297 | # 渡される引数1=作業用展開ディレクトリ 298 | # hook_aftercopyimage: null 299 | # 300 | # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。 301 | # 渡される引数1=ePUB準備ディレクトリ 302 | # hook_prepack: null 303 | # 304 | # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む) 305 | # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる 306 | # verify_target_images: null 307 | # 308 | # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列 309 | # force_include_images: [] 310 | # 311 | # 画像ファイルの縦x横の最大ピクセル数許容値 312 | # image_maxpixels: 4000000 313 | # 314 | # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか 315 | # rename_for_legacy: null 316 | # 317 | # ePUBアーカイブの非圧縮実行 318 | # zip_stage1: "zip -0Xq" 319 | # 320 | # ePUBアーカイブの圧縮実行 321 | # zip_stage2: "zip -Xr9Dq" 322 | # 323 | # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS) 324 | # zip_addpath: null 325 | # 326 | # EPUBで表紙をコンテンツに含めるか。デフォルトでは作成されない。yesにするとiBooks等でも最初に表紙が表示されるようになる 327 | # cover_linear: null 328 | # 329 | # @タグでの外部リンクを禁止し、地の文にする(falseで禁止する) 330 | # externallink: true 331 | # 332 | # 脚注に「戻る」リンクを追加する(trueで追加)。脚注の記号および戻るリンクの記号はlocale.ymlで変更可能 333 | # back_footnote: null 334 | # epubmaker:階層を使うものはここまで 335 | 336 | # LaTeX用のスタイルファイル(styディレクトリ以下に置くこと) 337 | texstyle: ["reviewmacro"] 338 | # 339 | # LaTeX用のdocumentclassを指定する 340 | # オプションについてはsty/README.mdを参照 341 | # デフォルトは印刷用。電子配布版を作るには media=ebook とする 342 | # texdocumentclass: ["review-jsbook", "media=print,paper=a5"] 343 | # 344 | # LaTeX用のコマンドを指定する 345 | # texcommand: "uplatex" 346 | # 347 | # LaTeXのコマンドに渡すオプションを指定する 348 | # texoptions: "-interaction=nonstopmode -file-line-error" 349 | # 350 | # LaTeX用のdvi変換コマンドを指定する(dvipdfmx) 351 | # dvicommand: "dvipdfmx" 352 | # 353 | # LaTeX用のdvi変換コマンドのオプションを指定する。変換が遅い場合は`-d 5 -z 3`等にする 354 | # dvioptions: "-d 5 -z 9" 355 | 356 | # 以下のパラメータを有効にするときには、 357 | # pdfmaker: 358 | # パラメータ: 値 359 | # パラメータ: 値 360 | # ... 361 | # という構成にする必要がある(インデントさせる) 362 | # 363 | pdfmaker: 364 | # 365 | # TeX版で利用する表紙画像。 366 | # 仕上がりサイズ+塗り足し3mmありのPDFまたはIllustratorファイル(PDF互換オプション付き)を推奨。 367 | # 拡縮はされず「そのまま」貼り付けられる 368 | coverimage: cover.png 369 | # 370 | # TeXコンパイル前に実行するプログラム。変換後のTeXソースを調整したいときに使用する。 371 | # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ 372 | # hook_beforetexcompile: null 373 | # 374 | # 索引処理前に実行するプログラム。idxファイルを加工したいときなどに使用する。 375 | # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ 376 | # hook_beforemakeindex: null 377 | # 378 | # 索引処理後に実行するプログラム。indファイルを加工したいときなどに使用する。 379 | # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ 380 | # hook_aftermakeindex: null 381 | # 382 | # ひととおりのコンパイル後に実行するプログラム。目次を加工して再度コンパイルしたいときなどに使用する。 383 | # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ 384 | # hook_aftertexcompile: null 385 | # 386 | # PDF(__REVIEW_BOOK__.pdf)作成後に実行するプログラム。PDFに加工を施したいときに使用する。 387 | # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ 388 | # hook_afterdvipdf: null 389 | # 390 | # 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換する 391 | # image_scale2width: true 392 | # 393 | # PDFやIllustratorファイル(.ai)の画像のBoudingBoxの抽出に指定のボックスを採用する 394 | # cropbox(デフォルト), mediabox, artbox, trimbox, bleedboxから選択する。 395 | # Illustrator CC以降のIllustratorファイルに対してはmediaboxを指定する必要がある 396 | # bbox: mediabox 397 | # 398 | # 索引を作成するか。trueにすると索引作成が有効になる 399 | # makeindex: null 400 | # 索引作成コマンド 401 | # makeindex_command: mendex 402 | # 索引作成コマンドのオプション 403 | # makeindex_options: "-f -r -I utf8" 404 | # 索引作成コマンドのスタイルファイル 405 | # makeindex_sty: null 406 | # 索引作成コマンドの辞書ファイル 407 | # makeindex_dic: null 408 | # MeCabによる索引読み探索を使うか 409 | # makeindex_mecab: true 410 | # MeCabの読みの取得オプション 411 | # makeindex_mecab_opts: "-Oyomi" 412 | # 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる 413 | colophon: true 414 | # pdfmaker:階層を使うものはここまで 415 | -------------------------------------------------------------------------------- /src/contributors.re: -------------------------------------------------------------------------------- 1 | = 著者紹介 2 | 3 | == Sample m3dev 4 | 5 | Sampleを書きました。m3devです。 6 | -------------------------------------------------------------------------------- /src/images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m3dev/techbook-templete/8e765daad28106bfae2651b841c68b41532d9a1a/src/images/cover.png -------------------------------------------------------------------------------- /src/images/sample/this_is_sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m3dev/techbook-templete/8e765daad28106bfae2651b841c68b41532d9a1a/src/images/sample/this_is_sample.png -------------------------------------------------------------------------------- /src/postscript.re: -------------------------------------------------------------------------------- 1 | = あとがき 2 | 3 | いかがでしたでしょうか。 4 | 5 | 6 | //embed[latex]{ 7 | \begin{flushright} 8 | 2021 年 7 月吉日 m3dev 9 | \end{flushright} 10 | //} 11 | -------------------------------------------------------------------------------- /src/preface.re: -------------------------------------------------------------------------------- 1 | = まえがき 2 | 3 | == m3dev Sample 4 | 5 | はじめまして・こんにちは、Sampleです。 6 | 本書をお手にとって頂きありがとうございます! 7 | 8 | //embed[latex]{ 9 | \begin{flushright} 10 | 2021 年 7 月吉日 11 | \end{flushright} 12 | //} 13 | -------------------------------------------------------------------------------- /src/review-ext.rb: -------------------------------------------------------------------------------- 1 | # tt, codeのsingle quoteがどうやっても直らない問題の対応 2 | # kmutoさんから提供いただいたパッチにちょっと手を加えている 3 | # https://gist.github.com/kmuto/99748f999acb7bfa140ded5672f0c3ea 4 | module ReVIEW 5 | module LATEXBuilderOverride 6 | def inline_tt(s) 7 | super(s) 8 | .gsub(" ", '\ ') 9 | .gsub("'", '\textquotesingle ').sub(/(textquotesingle) (?!.*textquotesingle)$/, '\1') 10 | .gsub("`", '\textasciigrave ').sub(/(textasciigrave) (?!.*textasciigrave)$/, '\1') 11 | end 12 | 13 | def inline_code(s) 14 | super(s) 15 | .gsub(" ", '\ ') 16 | .gsub("'", '\textquotesingle ').sub(/(textquotesingle) (?!.*textquotesingle)$/, '\1') 17 | .gsub("`", '\textasciigrave ').sub(/(textasciigrave) (?!.*textasciigrave)$/, '\1') 18 | end 19 | end 20 | 21 | class LATEXBuilder 22 | prepend LATEXBuilderOverride 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /src/sample.re: -------------------------------------------------------------------------------- 1 | = Sample 2 | 3 | == Sample1 4 | 5 | 本章のサンプルです。 6 | 7 | サンプル画像を出力します。 8 | 9 | //image[this_is_sample][sample画像です] 10 | -------------------------------------------------------------------------------- /src/sty/README.md: -------------------------------------------------------------------------------- 1 | review-jsbook.cls Users Guide 2 | ==================== 3 | 4 | 現時点における最新版 `jsbook.cls 2018/06/23 jsclasses (okumura, texjporg)` をベースに、Re:VIEW 向け review-jsbook.cls を実装しました。 5 | 6 | 過去の Re:VIEW 2 で jsbook.cls で作っていた資産を、ほとんどそのまま Re:VIEW 3 でも利用できます。 7 | 8 | ## 特徴 9 | 10 | * クラスオプション `media` により、「印刷用」「電子用」の用途を明示的な意思表示として与えることで、用途に応じた PDF ファイル生成を行えます。 11 | * (基本的に)クラスオプションを `=` で与えられます。 12 | * クラスオプション内で、用紙サイズや基本版面を設計できます。 13 | 14 | ここで、クラスオプションとは、親 LaTeX 文章ファイルにおいて、以下のような位置にカンマ(,)区切りで記述するオプションです。 15 | 16 | ```latex 17 | \documentclass[クラスオプションたち(省略可能)]{review-jsbook} 18 | ``` 19 | 20 | ## Re:VIEW で利用する 21 | 22 | クラスオプションオプションたちは、Re:VIEW 設定ファイル config.yml 内の texdocumentclass において、以下のような位置に記述します。 23 | 24 | ```yaml 25 | texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可能)"] 26 | ``` 27 | 28 | ## 利用可能なクラスオプションたち 29 | 30 | ### 用途別 PDF データ作成 `media=<用途名>` 31 | 32 | 印刷用 `print`、電子用 `ebook` のいずれかの用途名を指定します。 33 | 34 | * `print`[デフォルト]:印刷用 PDF ファイルを生成します。 35 | * トンボあり、デジタルトンボあり、hyperref パッケージを `draft` モードで読み込み、表紙は入れない 36 | * `ebook`:電子用PDFファイルを生成します。 37 | * トンボなし、hyperref パッケージを読み込み、表紙を入れる 38 | 39 | ### 表紙の挿入有無 `cover=` 40 | 41 | `media` の値によって表紙(config.yml の coverimage に指定した画像)の配置の有無は自動で切り替わりますが、`cover=true` とすれば必ず表紙を入れるようになります。 42 | 43 | ### 表紙画像のサイズの仕上がり紙面合わせ `cover_fit_page=` 44 | 45 | 上記の coverimage で指定する画像ファイルは、原寸を想定しているため、サイズが異なる場合にははみ出たり、小さすぎたりすることになります。できるだけ原寸で用意することを推奨しますが、`cover_fit_page=true` とすれば表紙画像を紙面の仕上がりサイズに合わせて拡縮します。 46 | 47 | ### 特定の用紙サイズ `paper=<用紙サイズ>` 48 | 49 | 利用可能な特定の用紙サイズを指定できます。 50 | 51 | * `a3` 52 | * `a4` [デフォルト] 53 | * `a5` 54 | * `a6` 55 | * `b4`:JIS B4 56 | * `b5`:JIS B5 57 | * `b6`:JIS B6 58 | * `a4var`:210mm x 283mm 59 | * `b5var`:182mm x 230mm 60 | * `letter` 61 | * `legal` 62 | * `executive` 63 | 64 | ### トンボ用紙サイズ `tombopaper=<用紙サイズ>` および塗り足し幅 `bleed_margin=<幅>` 65 | 66 | `tombopaper` ではトンボ用紙サイズを指定できます。 67 | [デフォルト]値は自動判定します。 68 | 69 | `bleed_margin` では塗り足し領域の幅を指定できます。 70 | [デフォルト]3mm になります。 71 | 72 | ### カスタム用紙サイズ `paperwidth=<用紙横幅>`, `paperheight=<用紙縦幅>` 73 | 74 | カスタム用紙サイズ `paperwidth=<用紙横幅>`, `paperheight=<用紙縦幅>` (両方とも与える必要があります)を与えることで、特定の用紙サイズで設定できない用紙サイズを与えられます。 75 | 76 | たとえば、B5変形 `paperwidth=182mm`, `paperheight=235mm`。 77 | 78 | ### 基本版面設計 `fontsize=<文字サイズ>`, `baselineskip=<行送り>`, `line_length=<字詰>`, `number_of_lines=<行数>`, `head_space=<天>`, `gutter=<ノド>`, `linegap=<幅>`, `headheight=<幅>`, `headsep=<幅>`, `footskip=<幅>` 79 | 80 | 基本版面情報を与えます。 81 | 天、ノドをそれぞれ与えない場合、それぞれ天地、左右中央になります。 82 | 83 | * `fontsize=10pt`[デフォルト]:標準の文字(normalfontsize)の文字サイズを与えます。pt のほか、Q や mm といった単位も指定可能です。ただし、文字サイズは jsbook の挙動に合わせるために 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt, 21pt, 25pt, 30pt, 36pt, 43pt のいずれか近いサイズに丸められます。 84 | * `baselineskip=16pt`[デフォルト]:行送りを与えます。 85 | * `line_length=<字詰め幅>`:1行字詰めを与えます。字詰め幅には単位を付ける必要があります。文字数であれば「zw」を使うとよいでしょう(例:35zw=35文字)。デフォルトでは jsbook の挙動に従い、紙サイズに基いて決定します。 86 | * `number_of_lines=<行数>`:行数を与えます。デフォルトでは jsbook の挙動に従い、紙サイズに基いて決定します。 87 | * `head_space=<幅>`:天を与えます。[デフォルト]は天地中央です。 88 | * `gutter=<幅>`:ノドを与えます。[デフォルト]は左右中央です。 89 | * `linegap=<幅>`:行送りを baselineskip で指定する代わりに、通常の文字の高さにこのオプションで指定する幅を加えたものを行送りとします。 90 | 91 | 例をいくつか挙げます。 92 | 93 | * `paper=a5, fontsize=10pt, line_length=35zw, number_of_lines=32, baselineskip=16pt,` 94 | * `paper=b5, fontsize=13Q, baselineskip=20.5H, head_space=20mm, gutter=20mm,` 95 | 96 | さらに、ヘッダー、フッターに関する位置調整は、TeX のパラメータ `\headheight`, `\headsep`, `\footskip` に対応しており、それぞれ `headheight`, `headsep`, `footskip` を与えられます。 97 | 98 | ## 開始ページ番号 `startpage=<ページ番号>` 99 | 100 | 大扉からのページ開始番号を指定します。 101 | 102 | [デフォルト]は1です。表紙・表紙裏(表1・表2)のぶんを飛ばしたければ、`startpage=3` とします。 103 | 104 | ## 通しページ番号(通しノンブル) `serial_pagination=` 105 | 106 | 大扉からアラビア数字でページ番号を通すかどうかを指定します。 107 | 108 | * `true`:大扉を開始ページとして、前付(catalog.yml で PREDEF に指定したもの)、さらに本文(catalog.yml で CHAPS に指定したもの)に連続したページ番号をアラビア数字で振ります(通しノンブルと言います)。 109 | * `false`[デフォルト]:大扉を開始ページとして前付の終わり(通常は目次)までのページ番号をローマ数字で振ります。本文は 1 を開始ページとしてアラビア数字で振り直します(別ノンブルと言います)。 110 | 111 | ### 隠しノンブル 'hiddenfolio=<プリセット>' 112 | 113 | 印刷所固有の要件に合わせて、ノドの目立たない位置に小さくノンブルを入れます。 114 | 'hiddenfolio` にプリセットを与えることで、特定の印刷所さん対応の隠しノンブルを出力することができます。 115 | 利用可能なプリセットは、以下のとおりです。 116 | 117 | * `default`:トンボ左上(塗り足しの外)にページ番号を入れます。 118 | * `marusho-ink`(丸正インキ):塗り足し幅を5mmに設定、ノド中央にページ番号を入れます。 119 | * `nikko-pc`(日光企画), `shippo`(ねこのしっぽ):ノド中央にページ番号を入れます。 120 | 121 | 独自の設定を追加したいときには、review-jsbook.cls の実装を参照してください。 122 | 123 | ページ番号は紙面に入れるものと同じものが入ります。アラビア数字で通したいときには、上記の `serial_pagination=true` も指定してください。 124 | 125 | ## 標準で review-jsbook.cls を実行したときの jsbook.cls との違い 126 | 127 | * jsbook.cls のクラスオプション `uplatex`:これまで texdocumentclass に指定が必要だった `uplatex` オプションは不要となっています。 128 | * jsbook.cls のクラスオプション `nomag`:用紙サイズや版面設計は、review-jsbook.cls 側で行います。 129 | * hyperref パッケージ:あらかじめ hyperref パッケージを組み込んでおり、`media` オプションにより用途別で挙動を制御します。 130 | 131 | ### 既存の jsbook.cls のオプションの扱い 132 | 133 | review-jsbook.cls は jsbook.cls を包んでおり、一部の jsbook.cls のクラスオプションはそのまま指定可能です。 134 | 135 | * `oneside`: 奇数ページ・偶数ページで柱やページ番号などを同じ体裁にします。review-jsbook.cls にも有効ですが、review-style.sty でこれを打ち消し奇数・偶数で別の見た目にするデザイン (fancyhdr) が定義されているので、review-style.sty も調整する必要があります。 136 | * `twoside`: 奇数ページ・偶数ページで柱やページ番号などを別の体裁にします (デフォルト)。 137 | * `vartwoside`: twoside とおおむね同じですが、傍注が小口ではなく常に右側になります。Re:VIEW のデフォルトでは傍注は使用していないので、効果は通常表れません。 138 | * `onecolumn`: 1段組の体裁にします (デフォルト)。 139 | * `twocolumn`: 2段組の体裁にします。 140 | * `openright`: 章の始まりを右ページ (奇数ページ) にします (デフォルト)。前の章が右ページで終わった場合には、白紙のページが1ページ挿入されます。 141 | * `openleft`: 章の始まりを左ページ (偶数ページ) にします。前の章が左ページで終わった場合には、白紙のページが1ページ挿入されます。 142 | * `openany`: 章の始まりを左右どちらのページからでも始めます。 143 | * `draft`: 確認作業のために、overfull box が起きた箇所の行末に罫線を引き、画像は実際に貼り付けずにボックスとファイル名だけを表記するようにします。 144 | * `final`: 上記の draft の処理を行いません (デフォルト)。 145 | * `leqno`: 数式の番号を右ではなく左側に置きます。ただし Re:VIEW では LaTeX のやり方での採番付き数式を作っていないので、効果は通常表れません。 146 | * `fleqn`: 数式をデフォルトの左右中央ではなく、左側に配置します。 147 | * `english`: 英語ドキュメント向けに、字下げをなくしたり、「章」や「目次」などの定型の文字列を英語化します。しかし、Re:VIEW では定型文字列はロケールファイルで処理しており、ほとんどは無視されます。 148 | * `jslogo`: 「LaTeX」等のロゴを置き換えます (デフォルト)。 149 | * `nojslogo`: ロゴを置き換えません。 150 | * `report`: oneside と openany の両方と同じ効果を持ちます。 151 | * `landscape`: 用紙を横長で使います。review-jsbook.cls のクラスオプションで基本版面設計をやり直す必要があることに注意してください。 152 | 153 | jsbook.cls の以下のクラスオプションは挙動が異なります。代わりに review-jsbook.cls のクラスオプションを利用してください。 154 | 155 | * `8pt`・`9pt`・`10pt`・`11pt`・`12pt`・`14pt`・`17pt`・`20pt`・`21pt`・`25pt`・`30pt`・`36pt`・`43pt`・`12Q`・`14Q`・`10ptj`・`10.5ptj`・`11ptj`・`12ptj`: 基本文字のサイズを指定します。そのまま review-jsbook.cls の fontsize に渡されますが、上記の fontsize クラスオプションの説明にあるとおり丸められます。 156 | * `tombow`・`tombo`・`mentuke`: トンボや塗り足しを作成しますが、これらは PDF 入稿に求められる正しいデジタルトンボ情報を入れないので使用してはなりません。review-jsbook.cls の `media=print` を使ってください。 157 | * `a4paper`・`a5paper`・`b5paper`・`b4paper`・`letterpaper`: 紙サイズを指定します。誤りではありませんが、review-jsbook.cls の paper クラスオプションを使うほうが妥当です。 158 | 159 | jsbook.cls の以下のクラスオプションは無視またはエラーになります。 160 | 161 | * `uplatex`: 暗黙に指定されるので無視されます。 162 | * `autodetect-engine`: pLaTeX/upLaTeX を自動判別するオプションですが、Re:VIEW では review-jsbook 利用時に upLaTeX を暗黙に前提としているので無視されます。 163 | * `papersize`: dvips などに紙サイズ情報を与えるオプションですが、Re:VIEW ではこれを利用しないので、結果的に無視されます。 164 | * `titlepage`・`notitlepage`: 表題の独立ページ化の有無ですが、Re:VIEW では表題を利用していないため、結果的に無視されます。 165 | * `usemag`・`nomag`・`nomag*`: 用紙サイズと版面設計は review-jsbook.cls のクラスオプションを使うため、無視されます。 166 | * `a4j`・`a5j`・`b4j`・`b5j`・`winjis`・`mingoth`: これらは無効としており、エラーになります。review-jsbook.cls のクラスオプションを利用してください。 167 | * `jis`: jis フォントメトリックスを使う指定ですが、通常の環境ではコンパイルエラーになります。 168 | * `disablejfam`: 数式内の利用フォント数を増やすために、数式内の日本語文字を使わないようにする指定ですが、Re:VIEW を利用する上では単にエラーを誘発するだけでしょう。 169 | -------------------------------------------------------------------------------- /src/sty/gentombow.sty: -------------------------------------------------------------------------------- 1 | % 2 | % gentombow.sty 3 | % written by Hironobu Yamashita (@aminophen) 4 | % 5 | % This package is part of the gentombow bundle. 6 | % https://github.com/aminophen/gentombow 7 | % 8 | 9 | \NeedsTeXFormat{LaTeX2e} 10 | \ProvidesPackage{gentombow} 11 | [2018/08/30 v0.9j Generate crop mark 'tombow'] 12 | \def\pxgtmb@pkgname{gentombow} 13 | \@namedef{ver@pxgentombow.sty}{}% fake 14 | 15 | %% error status 16 | \chardef\pxgtmb@errlevel=\z@ 17 | 18 | %% supported engines 19 | % case 2: pdfLaTeX etc. 20 | % case 1: pLaTeX2e <2018-04-01>+2 or older 21 | % case 0: pLaTeX2e <2018-05-20> or newer 22 | \ifx\pfmtversion\@undefined 23 | \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\tw@} 24 | \fi 25 | \ifnum\pxgtmb@errlevel<\tw@ 26 | \ifx\@tombowreset@@paper\@undefined 27 | \chardef\pxgtmb@errlevel=\@ne 28 | \fi 29 | \fi 30 | \ifcase\pxgtmb@errlevel 31 | \let\pxgtmb@sel@twoone\@gobble 32 | \let\pxgtmb@sel@two@one\@gobbletwo 33 | \let\pxgtmb@sel@two\@gobble 34 | \or 35 | \let\pxgtmb@sel@twoone\@firstofone 36 | \let\pxgtmb@sel@two@one\@secondoftwo 37 | \let\pxgtmb@sel@two\@gobble 38 | \or 39 | \let\pxgtmb@sel@twoone\@firstofone 40 | \let\pxgtmb@sel@two@one\@firstoftwo 41 | \let\pxgtmb@sel@two\@firstofone 42 | \else 43 | \PackageError{\pxgtmb@pkgname}{% 44 | This cannot happen! 45 | Please report to package author}\@ehc 46 | \expandafter\endinput 47 | \fi 48 | \@onlypreamble\pxgtmb@sel@twoone 49 | \@onlypreamble\pxgtmb@sel@two@one 50 | \@onlypreamble\pxgtmb@sel@two 51 | 52 | %%%%% EMULATION BEGIN 53 | 54 | % required for patching \@outputpage 55 | \pxgtmb@sel@twoone{\RequirePackage{etoolbox}} 56 | 57 | % patch \@outputpage 58 | \begingroup 59 | \def\pxgtmb@emu@status{0} 60 | \let\pxgtmb@emu@outputpage\@outputpage 61 | \pxgtmb@sel@two@one 62 | {%% case 2 begin 63 | \patchcmd\pxgtmb@emu@outputpage % try first patch 64 | {\reset@font\normalsize\normalsfcodes}% 65 | {\@tombowreset@@paper 66 | \reset@font\normalsize\normalsfcodes}% 67 | {}{\def\pxgtmb@emu@status{1}} 68 | \patchcmd\pxgtmb@emu@outputpage % try second patch 69 | {\@begindvi \vskip \topmargin}% 70 | {\@begindvi \@outputtombow \vskip \@@topmargin}% 71 | {}{\def\pxgtmb@emu@status{1}} 72 | }%% case 2 end 73 | {%% case 1 begin 74 | \patchcmd\pxgtmb@emu@outputpage % try patch 75 | {% 76 | \@@topmargin\topmargin 77 | \iftombow 78 | \@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax 79 | \@@paperheight\paperheight \advance\@@paperheight 16mm\relax 80 | \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax 81 | \fi 82 | \reset@font\normalsize\normalsfcodes} 83 | {\@tombowreset@@paper 84 | \reset@font\normalsize\normalsfcodes}% 85 | {}{\def\pxgtmb@emu@status{1}} 86 | }%% case 1 end 87 | % commit the change only when successful; otherwise 88 | % tombow feature is never enabled, exit right away 89 | \pxgtmb@sel@twoone 90 | {%% case 2 and 1 begin 91 | \if 0\pxgtmb@emu@status\relax 92 | \global\let\@outputpage\pxgtmb@emu@outputpage 93 | \else 94 | \PackageError{\pxgtmb@pkgname}{% 95 | Failed in patching \string\@outputpage!\MessageBreak 96 | Sorry, I can't proceed anymore...}\@ehc 97 | \expandafter\expandafter\expandafter\endinput\expandafter 98 | \fi 99 | }%% case 2 and 1 end 100 | \endgroup 101 | % 102 | 103 | % provides equivalent for plcore.ltx 104 | \pxgtmb@sel@two 105 | {%% case 2 begin 106 | \newif\iftombow \tombowfalse 107 | \newif\iftombowdate \tombowdatetrue 108 | \newdimen\@tombowwidth 109 | \setlength{\@tombowwidth}{.1\p@} 110 | }%% case 2 end 111 | \pxgtmb@sel@twoone 112 | {%% case 2 and 1 begin 113 | \setlength{\@tombowwidth}{.1\p@} 114 | \def\@tombowbleed{3mm} 115 | \def\@tombowcolor{\normalcolor} 116 | }%% case 2 and 1 end 117 | \pxgtmb@sel@two 118 | {%% case 2 begin 119 | \newbox\@TL\newbox\@Tl 120 | \newbox\@TC 121 | \newbox\@TR\newbox\@Tr 122 | \newbox\@BL\newbox\@Bl 123 | \newbox\@BC 124 | \newbox\@BR\newbox\@Br 125 | \newbox\@CL 126 | \newbox\@CR 127 | \font\@bannerfont=cmtt9 128 | \newtoks\@bannertoken 129 | \@bannertoken{} 130 | }%% case 2 end 131 | \pxgtmb@sel@twoone 132 | {%% case 2 and 1 begin 133 | \def\maketombowbox{% hide \yoko from all boxes 134 | \setbox\@TL\hbox to\z@{\csname yoko\endcsname\hss 135 | \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@ 136 | \vrule height10mm width\@tombowwidth depth\z@ 137 | \iftombowdate 138 | \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% 139 | \fi}% 140 | \setbox\@Tl\hbox to\z@{\csname yoko\endcsname\hss 141 | \vrule width10mm height\@tombowwidth depth\z@ 142 | \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@}% 143 | \setbox\@TC\hbox{\csname yoko\endcsname 144 | \vrule width10mm height\@tombowwidth depth\z@ 145 | \vrule height10mm width\@tombowwidth depth\z@ 146 | \vrule width10mm height\@tombowwidth depth\z@}% 147 | \setbox\@TR\hbox to\z@{\csname yoko\endcsname 148 | \vrule height10mm width\@tombowwidth depth\z@ 149 | \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@\hss}% 150 | \setbox\@Tr\hbox to\z@{\csname yoko\endcsname 151 | \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@ 152 | \vrule width10mm height\@tombowwidth depth\z@\hss}% 153 | \setbox\@BL\hbox to\z@{\csname yoko\endcsname\hss 154 | \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@ 155 | \vrule depth10mm width\@tombowwidth height\z@}% 156 | \setbox\@Bl\hbox to\z@{\csname yoko\endcsname\hss 157 | \vrule width10mm depth\@tombowwidth height\z@ 158 | \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@}% 159 | \setbox\@BC\hbox{\csname yoko\endcsname 160 | \vrule width10mm depth\@tombowwidth height\z@ 161 | \vrule depth10mm width\@tombowwidth height\z@ 162 | \vrule width10mm depth\@tombowwidth height\z@}% 163 | \setbox\@BR\hbox to\z@{\csname yoko\endcsname 164 | \vrule depth10mm width\@tombowwidth height\z@ 165 | \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@\hss}% 166 | \setbox\@Br\hbox to\z@{\csname yoko\endcsname 167 | \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@ 168 | \vrule width10mm depth\@tombowwidth height\z@\hss}% 169 | \setbox\@CL\hbox to\z@{\csname yoko\endcsname\hss 170 | \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth 171 | \vrule height10mm depth10mm width\@tombowwidth}% 172 | \setbox\@CR\hbox to\z@{\csname yoko\endcsname 173 | \vrule height10mm depth10mm width\@tombowwidth 174 | \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% 175 | } 176 | \def\@outputtombow{% 177 | \iftombow 178 | \vbox to\z@{\kern-\dimexpr 10mm+\@tombowbleed\relax\relax 179 | \boxmaxdepth\maxdimen 180 | \moveleft\@tombowbleed \vbox to\@@paperheight{% 181 | \color@begingroup 182 | \@tombowcolor 183 | \hbox to\@@paperwidth{\hskip\@tombowbleed\relax 184 | \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}% 185 | \kern-10mm 186 | \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% 187 | \vfill 188 | \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% 189 | \vfill 190 | \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% 191 | \kern-10mm 192 | \hbox to\@@paperwidth{\hskip\@tombowbleed\relax 193 | \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}% 194 | \color@endgroup 195 | }\vss 196 | }% 197 | \fi 198 | } 199 | }%% case 2 and 1 end 200 | \pxgtmb@sel@two 201 | {%% case 2 begin 202 | \newdimen\@@paperheight 203 | \newdimen\@@paperwidth 204 | \newdimen\@@topmargin 205 | }%% case 2 end 206 | \pxgtmb@sel@twoone 207 | {%% case 2 and 1 begin 208 | \def\@tombowreset@@paper{% 209 | \@@topmargin\topmargin 210 | \iftombow 211 | \@@paperwidth\paperwidth 212 | \advance\@@paperwidth 2\dimexpr\@tombowbleed\relax 213 | \@@paperheight\paperheight \advance\@@paperheight 10mm\relax 214 | \advance\@@paperheight 2\dimexpr\@tombowbleed\relax 215 | \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax 216 | \fi 217 | } 218 | }%% case 2 and 1 end 219 | \pxgtmb@sel@two 220 | {%% case 2 begin 221 | \newcount\hour 222 | \newcount\minute 223 | }%% case 2 end 224 | 225 | %%%%% EMULATION END 226 | 227 | %% import from jsclasses 228 | \hour\time \divide\hour by 60\relax 229 | \@tempcnta\hour \multiply\@tempcnta 60\relax 230 | \minute\time \advance\minute-\@tempcnta 231 | 232 | \ifnum\mag=\@m\else 233 | % if BXjscls is detected and \mag != 1000, 234 | % the layout will be definitely broken 235 | \ifx\bxjs@param@mag\@undefined\else 236 | \PackageError{\pxgtmb@pkgname}{% 237 | It seems you are using Japanese `BXjscls'\MessageBreak 238 | (bxjsarticle, bxjsbook, bxjsreport, etc.) or\MessageBreak 239 | some derived class. Try adding `nomag' or\MessageBreak 240 | `nomag*' to the class option list}\@ehc 241 | \fi 242 | % if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment 243 | \ifx\inv@mag\@undefined\else 244 | % \pxgtmb@magscale is almost equivalent to \jsc@magscale (introduced around 2016) 245 | % but defined only when \mag is actually employed 246 | \begingroup 247 | % calculation code borrowed from BXjscls 248 | \@tempcnta=\mag 249 | \advance\@tempcnta100000\relax 250 | \def\pxgtmb@tempa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@} 251 | \expandafter\pxgtmb@tempa\the\@tempcnta\@nil 252 | \xdef\pxgtmb@magscale{\strip@pt\@tempdima} 253 | \endgroup 254 | \fi 255 | \fi 256 | 257 | %% this package will use tombo feature in pLaTeX kernel 258 | % if tombow-related option is not included in class option list, 259 | % show info and enable it now 260 | \iftombow\else 261 | % if jsclasses is detected and \mag != 1000, it's too late 262 | % -- When a size option other than `10pt' is specified, 263 | % jsclasses uses \mag and calculates \oddsidemargin and \topmargin 264 | % differently, depending on tombow status. 265 | % In order to force `jsclasses' to calculate correctly, 266 | % `tombow' or `tombo' is required as a class option. 267 | % ... or, you may add `nomag' or `nomag*' instead. 268 | \ifx\pxgtmb@magscale\@undefined\else 269 | \PackageError{\pxgtmb@pkgname}{% 270 | It seems you are using Japanese `jsclasses'\MessageBreak 271 | (jsarticle, jsbook, jsreport, etc.) or some\MessageBreak 272 | derived class. Please add `tombow' or `tombo'\MessageBreak 273 | to the class option list}\@ehc 274 | \fi 275 | % BXjscls is already checked above, no check here 276 | \PackageInfo\pxgtmb@pkgname{tombow feature enabled by \pxgtmb@pkgname} 277 | \fi 278 | \tombowtrue %\tombowdatetrue %% enabled by tombowbanner option 279 | \setlength{\@tombowwidth}{.1\p@}% 280 | 281 | %% import from jsclasses 282 | \@bannertoken{% 283 | \jobname\space(\number\year-\two@digits\month-\two@digits\day 284 | \space\two@digits\hour:\two@digits\minute)} 285 | 286 | %% prepare dimension 287 | \ifx\stockwidth\@undefined \newdimen\stockwidth \fi 288 | \ifx\stockheight\@undefined \newdimen\stockheight \fi 289 | 290 | %% prepare flag 291 | \newif\ifpxgtmb@switch \pxgtmb@switchfalse 292 | \newif\ifpxgtmb@landscape \pxgtmb@landscapefalse 293 | 294 | %% passed from class options 295 | %% should be declared first inside this package (least priority) 296 | \DeclareOption{tombow}{\tombowdatetrue} 297 | \DeclareOption{tombo}{\tombowdatefalse} 298 | \DeclareOption{mentuke}{\tombowdatefalse \setlength{\@tombowwidth}{\z@}} 299 | 300 | %% package options part 1 301 | \DeclareOption{tombowbanner}{\tombowdatetrue} 302 | \DeclareOption{notombowbanner}{\tombowdatefalse} 303 | \DeclareOption{tombowdate}{% obsolete since v0.9c (2018/01/11) 304 | \PackageWarning{\pxgtmb@pkgname}{% 305 | Option `tombowdate' is renamed;\MessageBreak 306 | use `tombowbanner' instead}% 307 | \tombowdatetrue} 308 | \DeclareOption{notombowdate}{% obsolete since v0.9c (2018/01/11) 309 | \PackageWarning{\pxgtmb@pkgname}{% 310 | Option `notombowdate' is renamed;\MessageBreak 311 | use `notombowbanner' instead}% 312 | \tombowdatefalse} 313 | 314 | %% register a list of candidate papersize 315 | % * \pxgtmb@addpapersize[]{}{}{} 316 | % used for declaration of papersize. 317 | % when no option is specified (that is, \ifpxgtmb@switch = \iffalse), 318 | % also used for automatic stocksize determination. 319 | % * if = \@empty, the next is assumed. 320 | % * if = n, stocksize is set to papersize + 2in. 321 | \def\pxgtmb@addpapersize{\@ifnextchar[{\pxgtmb@addp@persize}{\pxgtmb@addp@persize[\@empty]}} 322 | \def\pxgtmb@addp@persize[#1]#2#3#4{% 323 | % get current papersize and search through known standard in ascending order 324 | \ifx\pxgtmb@guessedtombow\@empty 325 | \ifx\pxgtmb@guessedpaper\@empty 326 | % shorter edge -> \@tempdima, longer edge -> \@tempdimb 327 | \ifdim\paperwidth>\paperheight\relax 328 | \pxgtmb@landscapetrue 329 | \@tempdima\paperheight \@tempdimb\paperwidth 330 | \else 331 | \pxgtmb@landscapefalse 332 | \@tempdima\paperwidth \@tempdimb\paperheight 333 | \fi 334 | % \@ovri and \@ovro are used temporarily (safe enough) 335 | \@ovri=#3\relax 336 | \@ovro=#4\relax 337 | % when jsclasses-style \mag employment is assumed ... 338 | \ifx\pxgtmb@magscale\@undefined\else 339 | \@ovri=\inv@mag\@ovri\relax 340 | \@ovro=\inv@mag\@ovro\relax 341 | \fi 342 | % compare 343 | \ifdim\@tempdima=\@ovri\relax \ifdim\@tempdimb=\@ovro\relax 344 | \def\pxgtmb@guessedpaper{#2}% 345 | \ifx#1\@empty\else 346 | \def\pxgtmb@guessedtombow{#1}% 347 | \if n\pxgtmb@guessedtombow\else 348 | \ExecuteOptions{tombow-#1}% package defaults to tombowdatetrue 349 | \pxgtmb@switchfalse 350 | \fi 351 | \fi 352 | \fi \fi 353 | \else 354 | \def\pxgtmb@guessedtombow{#2}% save for console message 355 | \pxgtmb@setstock{#3}{#4}% set stockwidth/height 356 | \fi\fi 357 | \DeclareOption{tombow-#2}{% 358 | \pxgtmb@switchtrue 359 | \tombowdatetrue 360 | \pxgtmb@setstock{#3}{#4}% 361 | }% 362 | \DeclareOption{tombo-#2}{% 363 | \pxgtmb@switchtrue 364 | \tombowdatefalse 365 | \pxgtmb@setstock{#3}{#4}% 366 | }% 367 | \DeclareOption{mentuke-#2}{% 368 | \pxgtmb@switchtrue 369 | \tombowdatefalse 370 | \setlength{\@tombowwidth}{\z@}% 371 | \pxgtmb@setstock{#3}{#4}% 372 | }% 373 | } 374 | \def\pxgtmb@setstock#1#2{% 375 | \ifpxgtmb@landscape 376 | \setlength\stockwidth{#2}% 377 | \setlength\stockheight{#1}% 378 | \else 379 | \setlength\stockwidth{#1}% 380 | \setlength\stockheight{#2}% 381 | \fi 382 | % when jsclasses-style \mag employment is assumed ... 383 | \ifx\pxgtmb@magscale\@undefined\else 384 | \stockwidth=\inv@mag\stockwidth\relax 385 | \stockheight=\inv@mag\stockheight\relax 386 | \fi 387 | }% 388 | \@onlypreamble\pxgtmb@addpapersize 389 | \@onlypreamble\pxgtmb@addp@persize 390 | \@onlypreamble\pxgtmb@setstock 391 | 392 | %% initialize before search 393 | \def\pxgtmb@guessedpaper{} 394 | \def\pxgtmb@guessedtombow{} 395 | \@onlypreamble\pxgtmb@guessedpaper 396 | \@onlypreamble\pxgtmb@guessedtombow 397 | 398 | %% package options part 2 399 | % ISO A series <=> JIS B series in the ascending order 400 | \pxgtmb@addpapersize{a10}{26mm}{37mm} 401 | \pxgtmb@addpapersize{b10}{32mm}{45mm} 402 | \pxgtmb@addpapersize{a9}{37mm}{52mm} 403 | \pxgtmb@addpapersize{b9}{45mm}{64mm} 404 | \pxgtmb@addpapersize{a8}{52mm}{74mm} 405 | \pxgtmb@addpapersize{b8}{64mm}{91mm} 406 | \pxgtmb@addpapersize{a7}{74mm}{105mm} 407 | \pxgtmb@addpapersize{b7}{91mm}{128mm} 408 | \pxgtmb@addpapersize{a6}{105mm}{148mm} 409 | \pxgtmb@addpapersize{b6}{128mm}{182mm} 410 | \pxgtmb@addpapersize{a5}{148mm}{210mm} 411 | \pxgtmb@addpapersize{b5}{182mm}{257mm} 412 | \pxgtmb@addpapersize{a4}{210mm}{297mm} 413 | \pxgtmb@addpapersize{b4}{257mm}{364mm} 414 | \pxgtmb@addpapersize{a3}{297mm}{420mm} 415 | \pxgtmb@addpapersize{b3}{364mm}{515mm} 416 | \pxgtmb@addpapersize{a2}{420mm}{594mm} 417 | \pxgtmb@addpapersize{b2}{515mm}{728mm} 418 | \pxgtmb@addpapersize{a1}{594mm}{841mm} 419 | \pxgtmb@addpapersize{b1}{728mm}{1030mm} 420 | \pxgtmb@addpapersize[n]{a0}{841mm}{1189mm} 421 | \pxgtmb@addpapersize[n]{b0}{1030mm}{1456mm} 422 | 423 | %% package options part 3 424 | % ISO C series 425 | \pxgtmb@addpapersize[a9]{c10}{28mm}{40mm} 426 | \pxgtmb@addpapersize[a8]{c9}{40mm}{57mm} 427 | \pxgtmb@addpapersize[a7]{c8}{57mm}{81mm} 428 | \pxgtmb@addpapersize[a6]{c7}{81mm}{114mm} 429 | \pxgtmb@addpapersize[a5]{c6}{114mm}{162mm} 430 | \pxgtmb@addpapersize[a4]{c5}{162mm}{229mm} 431 | \pxgtmb@addpapersize[a3]{c4}{229mm}{354mm} 432 | \pxgtmb@addpapersize[a2]{c3}{324mm}{458mm} 433 | \pxgtmb@addpapersize[a1]{c2}{458mm}{648mm} 434 | \pxgtmb@addpapersize[a0]{c1}{648mm}{917mm} 435 | \pxgtmb@addpapersize[n]{c0}{917mm}{1297mm} 436 | % misc 437 | \pxgtmb@addpapersize[b4]{a4j}{210mm}{297mm} 438 | \pxgtmb@addpapersize[b5]{a5j}{148mm}{210mm} 439 | \pxgtmb@addpapersize[a3]{b4j}{257mm}{364mm} 440 | \pxgtmb@addpapersize[a4]{b5j}{182mm}{257mm} 441 | \pxgtmb@addpapersize[b4]{a4var}{210mm}{283mm} 442 | \pxgtmb@addpapersize[a4]{b5var}{182mm}{230mm} 443 | \pxgtmb@addpapersize[a3]{letter}{8.5in}{11in} 444 | \pxgtmb@addpapersize[a3]{legal}{8.5in}{14in} 445 | \pxgtmb@addpapersize[a4]{executive}{7.25in}{10.5in} 446 | \pxgtmb@addpapersize[a5]{hagaki}{100mm}{148mm} 447 | 448 | %% package options part 4 449 | \def\pxgtmb@pdfbox@status{0} 450 | \DeclareOption{pdfbox}{\def\pxgtmb@pdfbox@status{1}} 451 | \DeclareOption{dvips}{\def\pxgtmb@driver{s}} 452 | \DeclareOption{dvipdfmx}{\def\pxgtmb@driver{m}} 453 | \DeclareOption{xetex}{\def\pxgtmb@driver{x}} 454 | \DeclareOption{pdftex}{\def\pxgtmb@driver{p}} 455 | \DeclareOption{luatex}{\def\pxgtmb@driver{l}} 456 | 457 | %% default options 458 | \ExecuteOptions{tombowbanner}% package defaults to tombowdatetrue 459 | \ProcessOptions 460 | 461 | %% display search result 462 | % if any of explicit size option is specified, \ifpxgtmb@switch = \iftrue. 463 | % otherwise, automatic size detection should be successful. 464 | \ifpxgtmb@switch\else 465 | % check status 466 | \@tempcnta=\z@\relax 467 | \ifx\pxgtmb@guessedpaper\@empty 468 | \advance\@tempcnta\@ne\relax 469 | \fi 470 | \ifx\pxgtmb@guessedtombow\@empty 471 | \advance\@tempcnta\tw@\relax 472 | \else\if n\pxgtmb@guessedtombow 473 | \advance\@tempcnta\tw@\relax 474 | \fi\fi 475 | % message 476 | \ifodd\@tempcnta 477 | %\PackageWarningNoLine\pxgtmb@pkgname{% 478 | % No size option specified, and automatic papersize\MessageBreak 479 | % detection also failed} 480 | \else 481 | \typeout{***** Package \pxgtmb@pkgname\space detected \pxgtmb@guessedpaper paper. *****} 482 | \fi 483 | \ifnum\@tempcnta>\@ne\relax 484 | \PackageWarningNoLine\pxgtmb@pkgname{% 485 | Output size cannot be determined. Please add size\MessageBreak 486 | option (e.g. `tombow-a4') to specify output size.\MessageBreak 487 | Falling back to +1in ..} 488 | \stockwidth\paperwidth \advance\stockwidth 2in 489 | \stockheight\paperheight \advance\stockheight 2in 490 | \else 491 | \typeout{***** Now the output size is automatically set to \pxgtmb@guessedtombow. *****} 492 | \fi 493 | \fi 494 | 495 | %% warnings 496 | \ifdim\stockwidth<\paperwidth 497 | \PackageWarningNoLine\pxgtmb@pkgname{% 498 | \string\stockwidth\space is smaller than \string\paperwidth!\MessageBreak 499 | Is this really what you want?} 500 | \fi 501 | \ifdim\stockheight<\paperheight 502 | \PackageWarningNoLine\pxgtmb@pkgname{% 503 | \string\stockheight\space is smaller than \string\paperheight!\MessageBreak 504 | Is this really what you want?} 505 | \fi 506 | 507 | %% pdf "digital tombo" (driver-dependent) 508 | % the box size calculation is delayed until \AtBeginDocument 509 | % to allow users to change \@tombowbleed in the preamble 510 | \if 1\pxgtmb@pdfbox@status 511 | % convert pt -> bp 512 | \def\pxgtmb@PDF@setbp#1#2{% 513 | \@tempdima=.996264#2\relax % 0.996264 = 72/72.27 (cf. 1in = 72.27pt = 72bp) 514 | \@tempdima=\pxgtmb@magscale\@tempdima % adjustment for jsclasses-style \mag employment 515 | \edef#1{\strip@pt\@tempdima}} 516 | % calculate and create pdf boxes 517 | \def\pxgtmb@PDF@calcbox{% 518 | \begingroup 519 | % provide fallback definition inside this group 520 | \ifx\pxgtmb@magscale\@undefined 521 | \def\pxgtmb@magscale{1}% 522 | \fi 523 | % set pdf boxes in bp unit 524 | %\pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@x\stockwidth 525 | %\pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@y\stockheight 526 | \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@x{\dimexpr(\stockwidth-\paperwidth)/2}% 527 | \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@y{\dimexpr(\stockheight-\paperheight)/2}% 528 | \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@x{\dimexpr(\stockwidth+\paperwidth)/2}% 529 | \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@y{\dimexpr(\stockheight+\paperheight)/2}% 530 | \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ll@x{\dimexpr(\stockwidth-\paperwidth)/2-\@tombowbleed}% 531 | \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ll@y{\dimexpr(\stockheight-\paperheight)/2-\@tombowbleed}% 532 | \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@x{\dimexpr(\stockwidth+\paperwidth)/2+\@tombowbleed}% 533 | \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@y{\dimexpr(\stockheight+\paperheight)/2+\@tombowbleed}% 534 | \xdef\pxgtmb@PDF@CTM{% 535 | %% CropBox: implicit (same as MediaBox, large paper size) 536 | %/CropBox [0 0 \pxgtmb@PDF@crop@ur@x\space \pxgtmb@PDF@crop@ur@y] 537 | %% BleedBox: explicit (final paper size + surrounding \@tombowbleed) 538 | \noexpand\pxgtmb@PDF@begin 539 | /BleedBox [\pxgtmb@PDF@bleed@ll@x\space 540 | \pxgtmb@PDF@bleed@ll@y\space 541 | \pxgtmb@PDF@bleed@ur@x\space 542 | \pxgtmb@PDF@bleed@ur@y] \noexpand\pxgtmb@PDF@end 543 | %% TrimBox: explicit (final paper size) 544 | \noexpand\pxgtmb@PDF@begin 545 | /TrimBox [\pxgtmb@PDF@trim@ll@x\space 546 | \pxgtmb@PDF@trim@ll@y\space 547 | \pxgtmb@PDF@trim@ur@x\space 548 | \pxgtmb@PDF@trim@ur@y] \noexpand\pxgtmb@PDF@end 549 | %% ArtBox: implicit 550 | }% 551 | \endgroup 552 | } 553 | %% supported drivers: dvips, dvipdfmx, XeTeX, pdfTeX, LuaTeX 554 | \ifnum0\ifx\pdfvariable\@undefined\else\the\outputmode\fi=0\relax 555 | \ifnum0\ifx\pdfpageattr\@undefined\else\the\pdfoutput\fi=0\relax 556 | %% for DVI output or XeTeX 557 | \ifx\XeTeXversion\@undefined 558 | \chardef\pxgtmb@errlevel=\z@ 559 | % check graphics/graphicx/color status 560 | \ifx\Gin@driver\@undefined 561 | \ifx\pxgtmb@driver\@undefined % driver option unavailable 562 | \PackageError{\pxgtmb@pkgname}{% 563 | Option `pdfbox' is driver-dependent!\MessageBreak 564 | Please add a driver option}\@ehc 565 | \def\pxgtmb@driver{s}% fallback 566 | \fi 567 | \else 568 | % check consistency 569 | \def\pxgtmb@tempa{dvips.def}\ifx\Gin@driver\pxgtmb@tempa 570 | \ifx\pxgtmb@driver\@undefined 571 | \def\pxgtmb@driver{s}% pass 572 | \else 573 | \if s\pxgtmb@driver\else \chardef\pxgtmb@errlevel=\@ne \fi 574 | \fi 575 | \else\def\pxgtmb@tempa{dvipdfmx.def}\ifx\Gin@driver\pxgtmb@tempa 576 | \ifx\pxgtmb@driver\@undefined 577 | \def\pxgtmb@driver{m}% pass 578 | \else 579 | \if m\pxgtmb@driver\else \chardef\pxgtmb@errlevel=\@ne \fi 580 | \fi 581 | \else 582 | \ifx\pxgtmb@driver\@undefined 583 | \PackageError{\pxgtmb@pkgname}{% 584 | Option `pdfbox' is driver-dependent!\MessageBreak 585 | Please add a driver option}\@ehc 586 | \def\pxgtmb@driver{s}% fallback 587 | \fi 588 | \fi\fi 589 | \ifnum\pxgtmb@errlevel>\z@ 590 | \PackageWarningNoLine{\pxgtmb@pkgname}{% 591 | Inconsistent driver option detected!\MessageBreak 592 | Package `graphics' or `color' already\MessageBreak 593 | loaded with different driver option}\@ehc 594 | \fi 595 | \fi 596 | \else 597 | \def\pxgtmb@driver{x} 598 | \fi 599 | % required for putting \special to every page 600 | \ifx\pfmtname\@undefined 601 | \RequirePackage{atbegshi} 602 | \else 603 | \IfFileExists{pxatbegshi.sty} 604 | {\RequirePackage{pxatbegshi}} 605 | {\RequirePackage{atbegshi}} 606 | \fi 607 | % do it 608 | \if x\pxgtmb@driver 609 | %% for XeTeX (similar to dvipdfmx, except for paper size) 610 | \AtBeginDocument{% 611 | \pxgtmb@PDF@calcbox 612 | \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}% 613 | \edef\pxgtmb@PDF@CTM{{pdf:put @thispage << \pxgtmb@PDF@CTM >>}}} 614 | % force paper size 615 | \pdfpagewidth\stockwidth \pdfpageheight\stockheight 616 | % emit pdf boxes 617 | \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{% 618 | \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@ 619 | \expandafter\special\pxgtmb@PDF@CTM % here! 620 | \copy\AtBeginShipoutBox}} 621 | \else 622 | \if s\pxgtmb@driver 623 | %% for dvips 624 | \AtBeginDocument{% 625 | \pxgtmb@PDF@calcbox 626 | \def\pxgtmb@PDF@begin{[ }\def\pxgtmb@PDF@end{/PAGE pdfmark }% 627 | \edef\pxgtmb@PDF@CTM{{ps:SDict begin \pxgtmb@PDF@CTM end}}} 628 | \else\if m\pxgtmb@driver 629 | %% for dvipdfmx 630 | \AtBeginDocument{% 631 | \pxgtmb@PDF@calcbox 632 | \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}% 633 | \edef\pxgtmb@PDF@CTM{{pdf:put @thispage << \pxgtmb@PDF@CTM >>}}} 634 | \else 635 | %% for others (in case graphics option wrong) 636 | \PackageError{\pxgtmb@pkgname}{Sorry, driver unsupported}\@ehc 637 | \def\pxgtmb@PDF@CTM{{}}% dummy 638 | \fi\fi 639 | %% common 640 | \begingroup 641 | % when jsclasses-style \mag employment is assumed ... 642 | % [Note] \special{papersize=,} accepts only non-true units 643 | % and evaluates them as if they were true units! 644 | \ifx\pxgtmb@magscale\@undefined\else 645 | \stockwidth \pxgtmb@magscale\stockwidth 646 | \stockheight\pxgtmb@magscale\stockheight 647 | \fi 648 | \xdef\pxgtmb@PDF@size{{papersize=\the\stockwidth,\the\stockheight}} 649 | \endgroup 650 | \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{% 651 | \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@ 652 | % force paper size 653 | \expandafter\special\pxgtmb@PDF@size 654 | % emit pdf boxes 655 | \expandafter\special\pxgtmb@PDF@CTM % here! 656 | \copy\AtBeginShipoutBox}} 657 | \fi 658 | \else 659 | %% for pdfTeX 660 | \def\pxgtmb@driver{p} 661 | % force paper size 662 | \pdfpagewidth\stockwidth \pdfpageheight\stockheight 663 | % emit pdf boxes 664 | \AtBeginDocument{% 665 | \pxgtmb@PDF@calcbox 666 | \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}% 667 | \edef\pxgtmb@PDF@CTM{{\pxgtmb@PDF@CTM}}% 668 | \expandafter\pdfpageattr\pxgtmb@PDF@CTM} 669 | \fi 670 | \else 671 | %% for LuaTeX 672 | \def\pxgtmb@driver{l} 673 | % force paper size 674 | \pagewidth\stockwidth \pageheight\stockheight 675 | % emit pdf boxes 676 | \AtBeginDocument{% 677 | \pxgtmb@PDF@calcbox 678 | \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}% 679 | \edef\pxgtmb@PDF@CTM{pageattr{\pxgtmb@PDF@CTM}}% 680 | \expandafter\pdfvariable\pxgtmb@PDF@CTM} 681 | \fi 682 | \fi 683 | 684 | %% make visible tombow box according to the current status of 685 | %% \@bannerfont, \@bannertoken, \@tombowwidth & \@tombowbleed 686 | \maketombowbox 687 | 688 | %% shift amount 689 | \hoffset .5\stockwidth 690 | \advance\hoffset -.5\paperwidth 691 | \advance\hoffset-1truein\relax 692 | \voffset .5\stockheight 693 | \advance\voffset -.5\paperheight 694 | \advance\voffset-1truein\relax 695 | 696 | %% user interface 697 | \newcommand{\settombowbanner}[1]{% 698 | \iftombowdate\else 699 | \PackageWarning{\pxgtmb@pkgname}{% 700 | Package option `tombowbanner' is not effective.\MessageBreak 701 | The banner may be discarded}% 702 | \fi 703 | \@bannertoken{#1}\maketombowbox} 704 | \newcommand{\settombowbannerfont}[1]{% 705 | \font\@bannerfont=#1\relax \maketombowbox} 706 | \newcommand{\settombowwidth}[1]{% 707 | \setlength{\@tombowwidth}{#1}\maketombowbox} 708 | \newcommand{\settombowbleed}[1]{% 709 | \def\@tombowbleed{#1}\maketombowbox} 710 | \newcommand{\settombowcolor}[1]{% 711 | \def\@tombowcolor{#1}} 712 | % forbid changing \@tombowbleed after \begin{document} 713 | % because pdf boxes are calculated only inside \AtBeginDocument 714 | \@onlypreamble\settombowbleed 715 | 716 | %% patch internal for pdfpages to work with tombow 717 | %% (tested on pdfpages 2017/10/31 v0.5l) 718 | %% Note the code is the same as that of pxpdfpages.sty, 719 | %% but reserved here since gentombow.sty can be used on 720 | %% any LaTeX format 721 | %% (cf. pxpdfpages.sty is restricted to (u)pLaTeX) 722 | \def\pxgtmb@patch@pdfpages{% 723 | \RequirePackage{etoolbox} 724 | \patchcmd{\AM@output}{% 725 | \setlength{\@tempdima}{\AM@xmargin}% 726 | \edef\AM@xmargin{\the\@tempdima}% 727 | \setlength{\@tempdima}{\AM@ymargin}% 728 | \edef\AM@ymargin{\the\@tempdima}% 729 | }{% 730 | \setlength{\@tempdima}{\AM@xmargin\iftombow+1in\fi}% 731 | \edef\AM@xmargin{\the\@tempdima}% 732 | \setlength{\@tempdima}{\AM@ymargin\iftombow-1in\fi}% 733 | \edef\AM@ymargin{\the\@tempdima}% 734 | } 735 | {\PackageInfo{\pxgtmb@pkgname}{Patch for pdfpages applied}} 736 | {\PackageWarningNoLine{\pxgtmb@pkgname}{Patch for pdfpages failed}}% 737 | } 738 | %% however, if running (u)pLaTeX, use pxpdfpages.sty if available 739 | \ifx\pfmtname\@undefined\else 740 | \IfFileExists{pxpdfpages.sty}{% 741 | \def\pxgtmb@patch@pdfpages{\RequirePackage{pxpdfpages}}% 742 | }{} 743 | \fi 744 | %% do it 745 | \AtBeginDocument{\@ifpackageloaded{pdfpages}{\pxgtmb@patch@pdfpages}{}} 746 | 747 | \endinput 748 | -------------------------------------------------------------------------------- /src/sty/jsbook.cls: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `jsbook.cls', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% jsclasses.dtx (with options: `book') 8 | %% 9 | %% IMPORTANT NOTICE: 10 | %% 11 | %% For the copyright see the source file. 12 | %% 13 | %% Any modified versions of this file must be renamed 14 | %% with new filenames distinct from jsbook.cls. 15 | %% 16 | %% For distribution of the original source see the terms 17 | %% for copying and modification in the file jsclasses.dtx. 18 | %% 19 | %% This generated file may be distributed as long as the 20 | %% original source files, as listed above, are part of the 21 | %% same distribution. (The sources need not necessarily be 22 | %% in the same archive or directory.) 23 | \ifx\epTeXinputencoding\undefined\else 24 | \epTeXinputencoding utf8 % ^^A added (2017-10-04) 25 | \fi 26 | \NeedsTeXFormat{pLaTeX2e} 27 | \ProvidesClass{jsbook} 28 | [2018/06/23 jsclasses (okumura, texjporg)] 29 | \def\jsc@clsname{jsbook} 30 | \newif\ifjsc@needsp@tch 31 | \jsc@needsp@tchfalse 32 | \newif\if@restonecol 33 | \newif\if@titlepage 34 | \newif\if@openright 35 | \newif\if@openleft 36 | \newif\if@mainmatter \@mainmattertrue 37 | \newif\if@enablejfam \@enablejfamtrue 38 | \DeclareOption{a3paper}{% 39 | \setlength\paperheight {420mm}% 40 | \setlength\paperwidth {297mm}} 41 | \DeclareOption{a4paper}{% 42 | \setlength\paperheight {297mm}% 43 | \setlength\paperwidth {210mm}} 44 | \DeclareOption{a5paper}{% 45 | \setlength\paperheight {210mm}% 46 | \setlength\paperwidth {148mm}} 47 | \DeclareOption{a6paper}{% 48 | \setlength\paperheight {148mm}% 49 | \setlength\paperwidth {105mm}} 50 | \DeclareOption{b4paper}{% 51 | \setlength\paperheight {364mm}% 52 | \setlength\paperwidth {257mm}} 53 | \DeclareOption{b5paper}{% 54 | \setlength\paperheight {257mm}% 55 | \setlength\paperwidth {182mm}} 56 | \DeclareOption{b6paper}{% 57 | \setlength\paperheight {182mm}% 58 | \setlength\paperwidth {128mm}} 59 | \DeclareOption{a4j}{% 60 | \setlength\paperheight {297mm}% 61 | \setlength\paperwidth {210mm}} 62 | \DeclareOption{a5j}{% 63 | \setlength\paperheight {210mm}% 64 | \setlength\paperwidth {148mm}} 65 | \DeclareOption{b4j}{% 66 | \setlength\paperheight {364mm}% 67 | \setlength\paperwidth {257mm}} 68 | \DeclareOption{b5j}{% 69 | \setlength\paperheight {257mm}% 70 | \setlength\paperwidth {182mm}} 71 | \DeclareOption{a4var}{% 72 | \setlength\paperheight {283mm}% 73 | \setlength\paperwidth {210mm}} 74 | \DeclareOption{b5var}{% 75 | \setlength\paperheight {230mm}% 76 | \setlength\paperwidth {182mm}} 77 | \DeclareOption{letterpaper}{% 78 | \setlength\paperheight {11in}% 79 | \setlength\paperwidth {8.5in}} 80 | \DeclareOption{legalpaper}{% 81 | \setlength\paperheight {14in}% 82 | \setlength\paperwidth {8.5in}} 83 | \DeclareOption{executivepaper}{% 84 | \setlength\paperheight {10.5in}% 85 | \setlength\paperwidth {7.25in}} 86 | \newif\if@landscape 87 | \@landscapefalse 88 | \DeclareOption{landscape}{\@landscapetrue} 89 | \newif\if@slide 90 | \@slidefalse 91 | \newcommand{\@ptsize}{0} 92 | \newif\ifjsc@mag\jsc@magtrue 93 | \newif\ifjsc@mag@xreal\jsc@mag@xrealfalse 94 | \def\jsc@magscale{1} 95 | \DeclareOption{8pt}{\def\jsc@magscale{0.833}\renewcommand{\@ptsize}{-2}} 96 | \DeclareOption{9pt}{\def\jsc@magscale{0.913}\renewcommand{\@ptsize}{-1}} 97 | \DeclareOption{10pt}{\def\jsc@magscale{1}\renewcommand{\@ptsize}{0}} 98 | \DeclareOption{11pt}{\def\jsc@magscale{1.095}\renewcommand{\@ptsize}{1}} 99 | \DeclareOption{12pt}{\def\jsc@magscale{1.200}\renewcommand{\@ptsize}{2}} 100 | \DeclareOption{14pt}{\def\jsc@magscale{1.440}\renewcommand{\@ptsize}{4}} 101 | \DeclareOption{17pt}{\def\jsc@magscale{1.728}\renewcommand{\@ptsize}{7}} 102 | \DeclareOption{20pt}{\def\jsc@magscale{2}\renewcommand{\@ptsize}{10}} 103 | \DeclareOption{21pt}{\def\jsc@magscale{2.074}\renewcommand{\@ptsize}{11}} 104 | \DeclareOption{25pt}{\def\jsc@magscale{2.488}\renewcommand{\@ptsize}{15}} 105 | \DeclareOption{30pt}{\def\jsc@magscale{2.986}\renewcommand{\@ptsize}{20}} 106 | \DeclareOption{36pt}{\def\jsc@magscale{3.583}\renewcommand{\@ptsize}{26}} 107 | \DeclareOption{43pt}{\def\jsc@magscale{4.300}\renewcommand{\@ptsize}{33}} 108 | \DeclareOption{12Q}{\def\jsc@magscale{0.923}\renewcommand{\@ptsize}{1200}} 109 | \DeclareOption{14Q}{\def\jsc@magscale{1.077}\renewcommand{\@ptsize}{1400}} 110 | \DeclareOption{10ptj}{\def\jsc@magscale{1.085}\renewcommand{\@ptsize}{1001}} 111 | \DeclareOption{10.5ptj}{\def\jsc@magscale{1.139}\renewcommand{\@ptsize}{1051}} 112 | \DeclareOption{11ptj}{\def\jsc@magscale{1.194}\renewcommand{\@ptsize}{1101}} 113 | \DeclareOption{12ptj}{\def\jsc@magscale{1.302}\renewcommand{\@ptsize}{1201}} 114 | \DeclareOption{usemag}{\jsc@magtrue\jsc@mag@xrealfalse} 115 | \DeclareOption{nomag}{\jsc@magfalse\jsc@mag@xrealfalse} 116 | \DeclareOption{nomag*}{\jsc@magfalse\jsc@mag@xrealtrue} 117 | \hour\time \divide\hour by 60\relax 118 | \@tempcnta\hour \multiply\@tempcnta 60\relax 119 | \minute\time \advance\minute-\@tempcnta 120 | \DeclareOption{tombow}{% 121 | \tombowtrue \tombowdatetrue 122 | \setlength{\@tombowwidth}{.1\p@}% 123 | \@bannertoken{% 124 | \jobname\space(\number\year-\two@digits\month-\two@digits\day 125 | \space\two@digits\hour:\two@digits\minute)}% 126 | \maketombowbox} 127 | \DeclareOption{tombo}{% 128 | \tombowtrue \tombowdatefalse 129 | \setlength{\@tombowwidth}{.1\p@}% 130 | \maketombowbox} 131 | \DeclareOption{mentuke}{% 132 | \tombowtrue \tombowdatefalse 133 | \setlength{\@tombowwidth}{\z@}% 134 | \maketombowbox} 135 | \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} 136 | \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} 137 | \DeclareOption{vartwoside}{\@twosidetrue \@mparswitchfalse} 138 | \DeclareOption{onecolumn}{\@twocolumnfalse} 139 | \DeclareOption{twocolumn}{\@twocolumntrue} 140 | \DeclareOption{titlepage}{\@titlepagetrue} 141 | \DeclareOption{notitlepage}{\@titlepagefalse} 142 | \DeclareOption{openright}{\@openrighttrue\@openleftfalse} 143 | \DeclareOption{openleft}{\@openlefttrue\@openrightfalse} 144 | \DeclareOption{openany}{\@openrightfalse\@openleftfalse} 145 | \def\eqnarray{% 146 | \stepcounter{equation}% 147 | \def\@currentlabel{\p@equation\theequation}% 148 | \global\@eqnswtrue 149 | \m@th 150 | \global\@eqcnt\z@ 151 | \tabskip\@centering 152 | \let\\\@eqncr 153 | $$\everycr{}\halign to\displaywidth\bgroup 154 | \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel 155 | &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil 156 | &\global\@eqcnt\tw@ $\displaystyle{##}$\hfil\tabskip\@centering 157 | &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup 158 | \tabskip\z@skip 159 | \cr} 160 | \DeclareOption{leqno}{\input{leqno.clo}} 161 | \DeclareOption{fleqn}{\input{fleqn.clo}% 162 | \def\eqnarray{% 163 | \stepcounter{equation}% 164 | \def\@currentlabel{\p@equation\theequation}% 165 | \global\@eqnswtrue\m@th 166 | \global\@eqcnt\z@ 167 | \tabskip\mathindent 168 | \let\\=\@eqncr 169 | \setlength\abovedisplayskip{\topsep}% 170 | \ifvmode 171 | \addtolength\abovedisplayskip{\partopsep}% 172 | \fi 173 | \addtolength\abovedisplayskip{\parskip}% 174 | \setlength\belowdisplayskip{\abovedisplayskip}% 175 | \setlength\belowdisplayshortskip{\abovedisplayskip}% 176 | \setlength\abovedisplayshortskip{\abovedisplayskip}% 177 | $$\everycr{}\halign to\linewidth% $$ 178 | \bgroup 179 | \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel 180 | &\global\@eqcnt\@ne \hfil$\displaystyle{{}##{}}$\hfil 181 | &\global\@eqcnt\tw@ 182 | $\displaystyle{##}$\hfil \tabskip\@centering 183 | &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup 184 | \tabskip\z@skip\cr 185 | }} 186 | \DeclareOption{disablejfam}{\@enablejfamfalse} 187 | \DeclareOption{draft}{\setlength\overfullrule{5pt}} 188 | \DeclareOption{final}{\setlength\overfullrule{0pt}} 189 | \newif\ifmingoth 190 | \mingothfalse 191 | \newif\ifjisfont 192 | \jisfontfalse 193 | \newif\if@jsc@uplatex 194 | \@jsc@uplatexfalse 195 | \newif\if@jsc@autodetect 196 | \@jsc@autodetectfalse 197 | \DeclareOption{winjis}{% 198 | \ClassWarningNoLine{\jsc@clsname}{% 199 | The option `winjis' has been removed;\MessageBreak 200 | Use `\string\usepackage{winjis}' instead}} 201 | \DeclareOption{mingoth}{\mingothtrue} 202 | \DeclareOption{jis}{\jisfonttrue} 203 | \DeclareOption{uplatex}{\@jsc@uplatextrue} 204 | \DeclareOption{autodetect-engine}{\@jsc@autodetecttrue} 205 | \def\jsc@JYn{\if@jsc@uplatex JY2\else JY1\fi} 206 | \def\jsc@JTn{\if@jsc@uplatex JT2\else JT1\fi} 207 | \def\jsc@pfx@{\if@jsc@uplatex u\else \fi} 208 | \newif\ifpapersize 209 | \papersizefalse 210 | \DeclareOption{papersize}{\papersizetrue} 211 | \newif\if@english 212 | \@englishfalse 213 | \DeclareOption{english}{\@englishtrue} 214 | \newif\if@report 215 | \@reportfalse 216 | \DeclareOption{report}{\@reporttrue\@openrightfalse\@twosidefalse\@mparswitchfalse} 217 | \newif\if@jslogo \@jslogotrue 218 | \DeclareOption{jslogo}{\@jslogotrue} 219 | \DeclareOption{nojslogo}{\@jslogofalse} 220 | \ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} 221 | \ProcessOptions 222 | \if@slide 223 | \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} 224 | \fi 225 | \if@landscape 226 | \setlength\@tempdima {\paperheight} 227 | \setlength\paperheight{\paperwidth} 228 | \setlength\paperwidth {\@tempdima} 229 | \fi 230 | \ifnum \ifx\ucs\@undefined\z@\else\ucs"3000 \fi ="3000 231 | \if@jsc@autodetect 232 | \ClassInfo\jsc@clsname{Autodetected engine: upLaTeX} 233 | \@jsc@uplatextrue 234 | \g@addto@macro\@classoptionslist{,uplatex} 235 | \fi 236 | \if@jsc@uplatex\else 237 | \ClassError\jsc@clsname 238 | {You are running upLaTeX.\MessageBreak 239 | Please use pLaTeX instead, or add 'uplatex' to\MessageBreak 240 | the class option list} 241 | {\@ehc} 242 | \@jsc@uplatextrue 243 | \fi 244 | \else 245 | \if@jsc@uplatex 246 | \ClassError\jsc@clsname 247 | {You are running pLaTeX.\MessageBreak 248 | Please use upLaTeX instead, or remove 'uplatex' from\MessageBreak 249 | the class option list} 250 | {\@ehc} 251 | \@jsc@uplatexfalse 252 | \fi 253 | \if@jsc@autodetect 254 | \ClassInfo\jsc@clsname{Autodetected engine: pLaTeX} 255 | \@jsc@uplatexfalse 256 | \fi 257 | \fi 258 | \iftombow 259 | \newdimen\stockwidth \newdimen\stockheight 260 | \setlength{\stockwidth}{\paperwidth} 261 | \setlength{\stockheight}{\paperheight} 262 | \advance \stockwidth 2in 263 | \advance \stockheight 2in 264 | \fi 265 | \ifpapersize 266 | \iftombow 267 | \AtBeginDvi{\special{papersize=\the\stockwidth,\the\stockheight}} 268 | \else 269 | \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}} 270 | \fi 271 | \fi 272 | \if@slide\def\n@baseline{13}\else\def\n@baseline{16}\fi 273 | \newdimen\jsc@mpt 274 | \newdimen\jsc@mmm 275 | \def\inv@mag{1} 276 | \ifjsc@mag 277 | \jsc@mpt=1\p@ 278 | \jsc@mmm=1mm 279 | \ifnum\@ptsize=-2 280 | \mag 833 281 | \def\inv@mag{1.20048} 282 | \def\n@baseline{15}% 283 | \fi 284 | \ifnum\@ptsize=-1 285 | \mag 913 % formerly 900 286 | \def\inv@mag{1.09529} 287 | \def\n@baseline{15}% 288 | \fi 289 | \ifnum\@ptsize=1 290 | \mag 1095 % formerly 1100 291 | \def\inv@mag{0.913242} 292 | \fi 293 | \ifnum\@ptsize=2 294 | \mag 1200 295 | \def\inv@mag{0.833333} 296 | \fi 297 | \ifnum\@ptsize=4 298 | \mag 1440 299 | \def\inv@mag{0.694444} 300 | \fi 301 | \ifnum\@ptsize=7 302 | \mag 1728 303 | \def\inv@mag{0.578704} 304 | \fi 305 | \ifnum\@ptsize=10 306 | \mag 2000 307 | \def\inv@mag{0.5} 308 | \fi 309 | \ifnum\@ptsize=11 310 | \mag 2074 311 | \def\inv@mag{0.48216} 312 | \fi 313 | \ifnum\@ptsize=15 314 | \mag 2488 315 | \def\inv@mag{0.401929} 316 | \fi 317 | \ifnum\@ptsize=20 318 | \mag 2986 319 | \def\inv@mag{0.334896} 320 | \fi 321 | \ifnum\@ptsize=26 322 | \mag 3583 323 | \def\inv@mag{0.279096} 324 | \fi 325 | \ifnum\@ptsize=33 326 | \mag 4300 327 | \def\inv@mag{0.232558} 328 | \fi 329 | \ifnum\@ptsize=1200 330 | \mag 923 331 | \def\inv@mag{1.0834236} 332 | \fi 333 | \ifnum\@ptsize=1400 334 | \mag 1077 335 | \def\inv@mag{0.928505} 336 | \fi 337 | \ifnum\@ptsize=1001 338 | \mag 1085 339 | \def\inv@mag{0.921659} 340 | \fi 341 | \ifnum\@ptsize=1051 342 | \mag 1139 343 | \def\inv@mag{0.877963} 344 | \fi 345 | \ifnum\@ptsize=1101 346 | \mag 1194 347 | \def\inv@mag{0.837521} 348 | \fi 349 | \ifnum\@ptsize=1201 350 | \mag 1302 351 | \def\inv@mag{0.768049} 352 | \fi 353 | \else 354 | \jsc@mpt=\jsc@magscale\p@ 355 | \jsc@mmm=\jsc@magscale mm 356 | \def\inv@mag{1} 357 | \ifnum\@ptsize=-2 358 | \def\n@baseline{15}% 359 | \fi 360 | \ifnum\@ptsize=-1 361 | \def\n@baseline{15}% 362 | \fi 363 | \fi 364 | \ifjsc@mag@xreal 365 | \RequirePackage{type1cm} 366 | \mathchardef\jsc@csta=259 367 | \def\jsc@invscale#1#2{% 368 | \begingroup \@tempdima=#1\relax \@tempdimb#2\p@\relax 369 | \@tempcnta\@tempdima \multiply\@tempcnta\@cclvi 370 | \divide\@tempcnta\@tempdimb \multiply\@tempcnta\@cclvi 371 | \@tempcntb\p@ \divide\@tempcntb\@tempdimb 372 | \advance\@tempcnta-\@tempcntb \advance\@tempcnta-\tw@ 373 | \@tempdimb\@tempcnta\@ne 374 | \advance\@tempcnta\@tempcntb \advance\@tempcnta\@tempcntb 375 | \advance\@tempcnta\jsc@csta \@tempdimc\@tempcnta\@ne 376 | \@whiledim\@tempdimb<\@tempdimc\do{% 377 | \@tempcntb\@tempdimb \advance\@tempcntb\@tempdimc 378 | \advance\@tempcntb\@ne \divide\@tempcntb\tw@ 379 | \ifdim #2\@tempcntb>\@tempdima 380 | \advance\@tempcntb\m@ne \@tempdimc=\@tempcntb\@ne 381 | \else \@tempdimb=\@tempcntb\@ne \fi}% 382 | \xdef\jsc@gtmpa{\the\@tempdimb}% 383 | \endgroup #1=\jsc@gtmpa\relax} 384 | \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax 385 | \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax 386 | \let\jsc@get@external@font\get@external@font 387 | \def\get@external@font{% 388 | \jsc@preadjust@extract@font 389 | \jsc@get@external@font} 390 | \def\jsc@fstrunc#1{% 391 | \edef\jsc@tmpa{\strip@pt#1}% 392 | \expandafter\jsc@fstrunc@a\jsc@tmpa.****\@nil} 393 | \def\jsc@fstrunc@a#1.#2#3#4#5#6\@nil{% 394 | \if#5*\else 395 | \edef\jsc@tmpa{#1% 396 | \ifnum#2#3>\z@ .#2\ifnum#3>\z@ #3\fi\fi}% 397 | \fi} 398 | \def\jsc@preadjust@extract@font{% 399 | \let\jsc@req@size\f@size 400 | \dimen@\f@size\p@ \jsc@invscale\dimen@\jsc@magscale 401 | \advance\dimen@.005pt\relax \jsc@fstrunc\dimen@ 402 | \let\jsc@ref@size\jsc@tmpa 403 | \let\f@size\jsc@ref@size} 404 | \def\execute@size@function#1{% 405 | \let\jsc@cref@size\f@size 406 | \let\f@size\jsc@req@size 407 | \csname s@fct@#1\endcsname} 408 | \let\jsc@DeclareErrorFont\DeclareErrorFont 409 | \def\DeclareErrorFont#1#2#3#4#5{% 410 | \@tempdimc#5\p@ \@tempdimc\jsc@magscale\@tempdimc 411 | \edef\jsc@tmpa{{#1}{#2}{#3}{#4}{\strip@pt\@tempdimc}} 412 | \expandafter\jsc@DeclareErrorFont\jsc@tmpa} 413 | \def\gen@sfcnt{% 414 | \edef\mandatory@arg{\mandatory@arg\jsc@cref@size}% 415 | \empty@sfcnt} 416 | \def\genb@sfcnt{% 417 | \edef\mandatory@arg{% 418 | \mandatory@arg\expandafter\genb@x\jsc@cref@size..\@@}% 419 | \empty@sfcnt} 420 | \DeclareErrorFont{OT1}{cmr}{m}{n}{10} 421 | \fi 422 | \def\jsc@smallskip{\vspace\jsc@smallskipamount} 423 | \newskip\jsc@smallskipamount 424 | \jsc@smallskipamount=3\jsc@mpt plus 1\jsc@mpt minus 1\jsc@mpt 425 | \setlength\paperwidth{\inv@mag\paperwidth}% 426 | \setlength\paperheight{\inv@mag\paperheight}% 427 | \iftombow 428 | \setlength\stockwidth{\inv@mag\stockwidth}% 429 | \setlength\stockheight{\inv@mag\stockheight}% 430 | \fi 431 | \def\Cjascale{0.924690} 432 | \ifmingoth 433 | \DeclareFontShape{\jsc@JYn}{mc}{m}{n}{<-> s * [0.961] \jsc@pfx@ min10}{} 434 | \DeclareFontShape{\jsc@JYn}{gt}{m}{n}{<-> s * [0.961] \jsc@pfx@ goth10}{} 435 | \DeclareFontShape{\jsc@JTn}{mc}{m}{n}{<-> s * [0.961] \jsc@pfx@ tmin10}{} 436 | \DeclareFontShape{\jsc@JTn}{gt}{m}{n}{<-> s * [0.961] \jsc@pfx@ tgoth10}{} 437 | \else 438 | \ifjisfont 439 | \DeclareFontShape{\jsc@JYn}{mc}{m}{n}{<-> s * [0.961] \jsc@pfx@ jis}{} 440 | \DeclareFontShape{\jsc@JYn}{gt}{m}{n}{<-> s * [0.961] \jsc@pfx@ jisg}{} 441 | \DeclareFontShape{\jsc@JTn}{mc}{m}{n}{<-> s * [0.961] \jsc@pfx@ tmin10}{} 442 | \DeclareFontShape{\jsc@JTn}{gt}{m}{n}{<-> s * [0.961] \jsc@pfx@ tgoth10}{} 443 | \else 444 | \if@jsc@uplatex 445 | \DeclareFontShape{JY2}{mc}{m}{n}{<-> s * [0.924690] upjisr-h}{} 446 | \DeclareFontShape{JY2}{gt}{m}{n}{<-> s * [0.924690] upjisg-h}{} 447 | \DeclareFontShape{JT2}{mc}{m}{n}{<-> s * [0.924690] upjisr-v}{} 448 | \DeclareFontShape{JT2}{gt}{m}{n}{<-> s * [0.924690] upjisg-v}{} 449 | \else 450 | \DeclareFontShape{\jsc@JYn}{mc}{m}{n}{<-> s * [0.961] \jsc@pfx@ jis}{} 451 | \DeclareFontShape{\jsc@JYn}{gt}{m}{n}{<-> s * [0.961] \jsc@pfx@ jisg}{} 452 | \DeclareFontShape{\jsc@JTn}{mc}{m}{n}{<-> s * [0.961] \jsc@pfx@ tmin10}{} 453 | \DeclareFontShape{\jsc@JTn}{gt}{m}{n}{<-> s * [0.961] \jsc@pfx@ tgoth10}{} 454 | \fi 455 | \fi 456 | \fi 457 | \DeclareFontShape{\jsc@JYn}{mc}{m}{it}{<->ssub*mc/m/n}{} 458 | \DeclareFontShape{\jsc@JYn}{mc}{m}{sl}{<->ssub*mc/m/n}{} 459 | \DeclareFontShape{\jsc@JYn}{mc}{m}{sc}{<->ssub*mc/m/n}{} 460 | \DeclareFontShape{\jsc@JYn}{gt}{m}{it}{<->ssub*gt/m/n}{} 461 | \DeclareFontShape{\jsc@JYn}{gt}{m}{sl}{<->ssub*gt/m/n}{} 462 | \DeclareFontShape{\jsc@JYn}{mc}{bx}{it}{<->ssub*gt/m/n}{} 463 | \DeclareFontShape{\jsc@JYn}{mc}{bx}{sl}{<->ssub*gt/m/n}{} 464 | \DeclareFontShape{\jsc@JTn}{mc}{m}{it}{<->ssub*mc/m/n}{} 465 | \DeclareFontShape{\jsc@JTn}{mc}{m}{sl}{<->ssub*mc/m/n}{} 466 | \DeclareFontShape{\jsc@JTn}{mc}{m}{sc}{<->ssub*mc/m/n}{} 467 | \DeclareFontShape{\jsc@JTn}{gt}{m}{it}{<->ssub*gt/m/n}{} 468 | \DeclareFontShape{\jsc@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{} 469 | \DeclareFontShape{\jsc@JTn}{mc}{bx}{it}{<->ssub*gt/m/n}{} 470 | \DeclareFontShape{\jsc@JTn}{mc}{bx}{sl}{<->ssub*gt/m/n}{} 471 | \DeclareRobustCommand\rmfamily 472 | {\not@math@alphabet\rmfamily\mathrm 473 | \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont} 474 | \DeclareRobustCommand\sffamily 475 | {\not@math@alphabet\sffamily\mathsf 476 | \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont} 477 | \DeclareRobustCommand\ttfamily 478 | {\not@math@alphabet\ttfamily\mathtt 479 | \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont} 480 | \ifx\DeclareFixJFMCJKTextFontCommand\@undefined 481 | \DeclareRobustCommand\textmc[1]{% 482 | \relax\ifmmode \expandafter\nfss@text \fi{\mcfamily #1}} 483 | \DeclareRobustCommand\textgt[1]{% 484 | \relax\ifmmode \expandafter\nfss@text \fi{\gtfamily #1}} 485 | \fi 486 | \def\reDeclareMathAlphabet#1#2#3{% 487 | \edef\@tempa{\expandafter\@gobble\string#2}% 488 | \edef\@tempb{\expandafter\@gobble\string#3}% 489 | \edef\@tempc{\string @\expandafter\@gobbletwo\string#2}% 490 | \ifx\@tempc\@tempa% 491 | \edef\@tempa{\expandafter\@gobbletwo\string#2}% 492 | \edef\@tempb{\expandafter\@gobbletwo\string#3}% 493 | \fi 494 | \begingroup 495 | \let\protect\noexpand 496 | \def\@tempaa{\relax}% 497 | \expandafter\ifx\csname RDMAorg@\@tempa\endcsname\relax 498 | \edef\@tempaa{\expandafter\def\expandafter\noexpand% 499 | \csname RDMAorg@\@tempa\endcsname{% 500 | \expandafter\noexpand\csname\@tempa\endcsname}}% 501 | \fi 502 | \def\@tempbb{\relax}% 503 | \expandafter\ifx\csname RDMAorg@\@tempb\endcsname\relax 504 | \edef\@tempbb{\expandafter\def\expandafter\noexpand% 505 | \csname RDMAorg@\@tempb\endcsname{% 506 | \expandafter\noexpand\csname\@tempb\endcsname}}% 507 | \fi 508 | \edef\@tempc{\@tempaa\@tempbb}% 509 | \expandafter\endgroup\@tempc% 510 | \edef#1{\noexpand\protect\expandafter\noexpand\csname% 511 | \expandafter\@gobble\string#1\space\space\endcsname}% 512 | \expandafter\edef\csname\expandafter\@gobble\string#1\space\space\endcsname% 513 | {\noexpand\DualLang@mathalph@bet% 514 | {\expandafter\noexpand\csname RDMAorg@\@tempa\endcsname}% 515 | {\expandafter\noexpand\csname RDMAorg@\@tempb\endcsname}% 516 | }% 517 | } 518 | \@onlypreamble\reDeclareMathAlphabet 519 | \def\DualLang@mathalph@bet#1#2{% 520 | \relax\ifmmode 521 | \ifx\math@bgroup\bgroup% 2e normal style (\mathrm{...}) 522 | \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard 523 | \else 524 | \ifx\math@bgroup\relax% 2e two letter style (\rm->\mathrm) 525 | \let\DualLang@Mfontsw\DLMfontsw@oldstyle 526 | \else 527 | \ifx\math@bgroup\@empty% 2.09 oldlfont style ({\mathrm ...}) 528 | \let\DualLang@Mfontsw\DLMfontsw@oldlfont 529 | \else% panic! assume 2e normal style 530 | \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard 531 | \fi 532 | \fi 533 | \fi 534 | \else 535 | \let\DualLang@Mfontsw\@firstoftwo 536 | \fi 537 | \DualLang@Mfontsw{#1}{#2}% 538 | } 539 | \def\DLMfontsw@standard#1#2#3{#1{#2{#3}}\egroup} 540 | \def\DLMfontsw@oldstyle#1#2{#1\relax\@fontswitch\relax{#2}} 541 | \def\DLMfontsw@oldlfont#1#2{#1\relax#2\relax} 542 | \if@enablejfam 543 | \DeclareSymbolFont{mincho}{\jsc@JYn}{mc}{m}{n} 544 | \DeclareSymbolFontAlphabet{\mathmc}{mincho} 545 | \SetSymbolFont{mincho}{bold}{\jsc@JYn}{gt}{m}{n} 546 | \jfam\symmincho 547 | \DeclareMathAlphabet{\mathgt}{\jsc@JYn}{gt}{m}{n} 548 | \AtBeginDocument{% 549 | \reDeclareMathAlphabet{\mathrm}{\@mathrm}{\@mathmc} 550 | \reDeclareMathAlphabet{\mathbf}{\@mathbf}{\@mathgt}} 551 | \fi 552 | \prebreakpenalty\jis"2147=10000 % 5000 ’ 553 | \postbreakpenalty\jis"2148=10000 % 5000 “ 554 | \prebreakpenalty\jis"2149=10000 % 5000 ” 555 | \inhibitxspcode`!=1 556 | \inhibitxspcode`〒=2 557 | \xspcode`+=3 558 | \xspcode`\%=3 559 | \xspcode`^^80=3 560 | \xspcode`^^81=3 561 | \xspcode`^^82=3 562 | \xspcode`^^83=3 563 | \xspcode`^^84=3 564 | \xspcode`^^85=3 565 | \xspcode`^^86=3 566 | \xspcode`^^87=3 567 | \xspcode`^^88=3 568 | \xspcode`^^89=3 569 | \xspcode`^^8a=3 570 | \xspcode`^^8b=3 571 | \xspcode`^^8c=3 572 | \xspcode`^^8d=3 573 | \xspcode`^^8e=3 574 | \xspcode`^^8f=3 575 | \xspcode`^^90=3 576 | \xspcode`^^91=3 577 | \xspcode`^^92=3 578 | \xspcode`^^93=3 579 | \xspcode`^^94=3 580 | \xspcode`^^95=3 581 | \xspcode`^^96=3 582 | \xspcode`^^97=3 583 | \xspcode`^^98=3 584 | \xspcode`^^99=3 585 | \xspcode`^^9a=3 586 | \xspcode`^^9b=3 587 | \xspcode`^^9c=3 588 | \xspcode`^^9d=3 589 | \xspcode`^^9e=3 590 | \xspcode`^^9f=3 591 | \xspcode`^^a0=3 592 | \xspcode`^^a1=3 593 | \xspcode`^^a2=3 594 | \xspcode`^^a3=3 595 | \xspcode`^^a4=3 596 | \xspcode`^^a5=3 597 | \xspcode`^^a6=3 598 | \xspcode`^^a7=3 599 | \xspcode`^^a8=3 600 | \xspcode`^^a9=3 601 | \xspcode`^^aa=3 602 | \xspcode`^^ab=3 603 | \xspcode`^^ac=3 604 | \xspcode`^^ad=3 605 | \xspcode`^^ae=3 606 | \xspcode`^^af=3 607 | \xspcode`^^b0=3 608 | \xspcode`^^b1=3 609 | \xspcode`^^b2=3 610 | \xspcode`^^b3=3 611 | \xspcode`^^b4=3 612 | \xspcode`^^b5=3 613 | \xspcode`^^b6=3 614 | \xspcode`^^b7=3 615 | \xspcode`^^b8=3 616 | \xspcode`^^b9=3 617 | \xspcode`^^ba=3 618 | \xspcode`^^bb=3 619 | \xspcode`^^bc=3 620 | \xspcode`^^bd=3 621 | \xspcode`^^be=3 622 | \xspcode`^^bf=3 623 | \xspcode`^^c0=3 624 | \xspcode`^^c1=3 625 | \xspcode`^^c2=3 626 | \xspcode`^^c3=3 627 | \xspcode`^^c4=3 628 | \xspcode`^^c5=3 629 | \xspcode`^^c6=3 630 | \xspcode`^^c7=3 631 | \xspcode`^^c8=3 632 | \xspcode`^^c9=3 633 | \xspcode`^^ca=3 634 | \xspcode`^^cb=3 635 | \xspcode`^^cc=3 636 | \xspcode`^^cd=3 637 | \xspcode`^^ce=3 638 | \xspcode`^^cf=3 639 | \xspcode`^^d0=3 640 | \xspcode`^^d1=3 641 | \xspcode`^^d2=3 642 | \xspcode`^^d3=3 643 | \xspcode`^^d4=3 644 | \xspcode`^^d5=3 645 | \xspcode`^^d6=3 646 | \xspcode`^^d7=3 647 | \xspcode`^^d8=3 648 | \xspcode`^^d9=3 649 | \xspcode`^^da=3 650 | \xspcode`^^db=3 651 | \xspcode`^^dc=3 652 | \xspcode`^^dd=3 653 | \xspcode`^^de=3 654 | \xspcode`^^df=3 655 | \xspcode`^^e0=3 656 | \xspcode`^^e1=3 657 | \xspcode`^^e2=3 658 | \xspcode`^^e3=3 659 | \xspcode`^^e4=3 660 | \xspcode`^^e5=3 661 | \xspcode`^^e6=3 662 | \xspcode`^^e7=3 663 | \xspcode`^^e8=3 664 | \xspcode`^^e9=3 665 | \xspcode`^^ea=3 666 | \xspcode`^^eb=3 667 | \xspcode`^^ec=3 668 | \xspcode`^^ed=3 669 | \xspcode`^^ee=3 670 | \xspcode`^^ef=3 671 | \xspcode`^^f0=3 672 | \xspcode`^^f1=3 673 | \xspcode`^^f2=3 674 | \xspcode`^^f3=3 675 | \xspcode`^^f4=3 676 | \xspcode`^^f5=3 677 | \xspcode`^^f6=3 678 | \xspcode`^^f7=3 679 | \xspcode`^^f8=3 680 | \xspcode`^^f9=3 681 | \xspcode`^^fa=3 682 | \xspcode`^^fb=3 683 | \xspcode`^^fc=3 684 | \xspcode`^^fd=3 685 | \xspcode`^^fe=3 686 | \xspcode`^^ff=3 687 | \def\@{\spacefactor3000{}} 688 | \def\@setfontsize#1#2#3{% 689 | \ifx\protect\@typeset@protect 690 | \let\@currsize#1% 691 | \fi 692 | \fontsize{#2}{#3}\selectfont 693 | \ifdim\parindent>\z@ 694 | \if@english 695 | \parindent=1em 696 | \else 697 | \parindent=1zw 698 | \fi 699 | \fi 700 | \kanjiskip=0zw plus .1zw minus .01zw 701 | \ifdim\xkanjiskip>\z@ 702 | \if@slide \xkanjiskip=0.1em \else 703 | \xkanjiskip=0.25em plus 0.15em minus 0.06em 704 | \fi 705 | \fi} 706 | \def\jsc@setfontsize#1#2#3{% 707 | \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}} 708 | \emergencystretch 3zw 709 | \newif\ifnarrowbaselines 710 | \if@english 711 | \narrowbaselinestrue 712 | \fi 713 | \def\narrowbaselines{% 714 | \narrowbaselinestrue 715 | \skip0=\abovedisplayskip 716 | \skip2=\abovedisplayshortskip 717 | \skip4=\belowdisplayskip 718 | \skip6=\belowdisplayshortskip 719 | \@currsize\selectfont 720 | \abovedisplayskip=\skip0 721 | \abovedisplayshortskip=\skip2 722 | \belowdisplayskip=\skip4 723 | \belowdisplayshortskip=\skip6\relax} 724 | \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} 725 | \renewcommand{\normalsize}{% 726 | \ifnarrowbaselines 727 | \jsc@setfontsize\normalsize\@xpt\@xiipt 728 | \else 729 | \jsc@setfontsize\normalsize\@xpt{\n@baseline}% 730 | \fi 731 | \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 732 | \abovedisplayshortskip \z@ \@plus3\jsc@mpt 733 | \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 734 | \belowdisplayshortskip \belowdisplayskip 735 | \let\@listi\@listI} 736 | \normalsize 737 | \setbox0\hbox{\char\jis"3441}% 738 | \setlength\Cht{\ht0} 739 | \setlength\Cdp{\dp0} 740 | \setlength\Cwd{\wd0} 741 | \setlength\Cvs{\baselineskip} 742 | \setlength\Chs{\wd0} 743 | \setbox0=\box\voidb@x 744 | \newcommand{\small}{% 745 | \ifnarrowbaselines 746 | \jsc@setfontsize\small\@ixpt{11}% 747 | \else 748 | \jsc@setfontsize\small\@ixpt{13}% 749 | \fi 750 | \abovedisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 751 | \abovedisplayshortskip \z@ \@plus3\jsc@mpt 752 | \belowdisplayskip \abovedisplayskip 753 | \belowdisplayshortskip \belowdisplayskip 754 | \def\@listi{\leftmargin\leftmargini 755 | \topsep \z@ 756 | \parsep \z@ 757 | \itemsep \parsep}} 758 | \newcommand{\footnotesize}{% 759 | \ifnarrowbaselines 760 | \jsc@setfontsize\footnotesize\@viiipt{9.5}% 761 | \else 762 | \jsc@setfontsize\footnotesize\@viiipt{11}% 763 | \fi 764 | \abovedisplayskip 6\jsc@mpt \@plus2\jsc@mpt \@minus3\jsc@mpt 765 | \abovedisplayshortskip \z@ \@plus2\jsc@mpt 766 | \belowdisplayskip \abovedisplayskip 767 | \belowdisplayshortskip \belowdisplayskip 768 | \def\@listi{\leftmargin\leftmargini 769 | \topsep \z@ 770 | \parsep \z@ 771 | \itemsep \parsep}} 772 | \newcommand{\scriptsize}{\jsc@setfontsize\scriptsize\@viipt\@viiipt} 773 | \newcommand{\tiny}{\jsc@setfontsize\tiny\@vpt\@vipt} 774 | \if@twocolumn 775 | \newcommand{\large}{\jsc@setfontsize\large\@xiipt{\n@baseline}} 776 | \else 777 | \newcommand{\large}{\jsc@setfontsize\large\@xiipt{17}} 778 | \fi 779 | \newcommand{\Large}{\jsc@setfontsize\Large\@xivpt{21}} 780 | \newcommand{\LARGE}{\jsc@setfontsize\LARGE\@xviipt{25}} 781 | \newcommand{\huge}{\jsc@setfontsize\huge\@xxpt{28}} 782 | \newcommand{\Huge}{\jsc@setfontsize\Huge\@xxvpt{33}} 783 | \newcommand{\HUGE}{\jsc@setfontsize\HUGE{30}{40}} 784 | \everydisplay=\expandafter{\the\everydisplay \narrowbaselines} 785 | \newcommand{\headfont}{\gtfamily\sffamily} 786 | \setlength\columnsep{2zw} 787 | \setlength\columnseprule{\z@} 788 | \setlength\lineskip{1\jsc@mpt} 789 | \setlength\normallineskip{1\jsc@mpt} 790 | \setlength\lineskiplimit{1\jsc@mpt} 791 | \setlength\normallineskiplimit{1\jsc@mpt} 792 | \renewcommand{\baselinestretch}{} 793 | \setlength\parskip{\z@} 794 | \if@slide 795 | \setlength\parindent{0zw} 796 | \else 797 | \setlength\parindent{1zw} 798 | \fi 799 | \@lowpenalty 51 800 | \@medpenalty 151 801 | \@highpenalty 301 802 | \setlength\topskip{1.38zw}%% from 10\jsc@mpt (2016-08-17) 803 | \if@slide 804 | \setlength\headheight{0\jsc@mpt} 805 | \else 806 | \setlength\headheight{20\jsc@mpt}%% from 2\topskip (2016-08-17); from \topskip (2003-06-26) 807 | \fi 808 | \if@report 809 | \setlength\footskip{0.03367\paperheight} 810 | \ifdim\footskip<\baselineskip 811 | \setlength\footskip{\baselineskip} 812 | \fi 813 | \else 814 | \setlength\footskip{0pt} 815 | \fi 816 | \if@report 817 | \setlength\headsep{\footskip} 818 | \addtolength\headsep{-\topskip} 819 | \else 820 | \setlength\headsep{6\jsc@mmm} 821 | \addtolength\headsep{-\topskip}%% added (2016-10-08) 822 | \addtolength\headsep{10\jsc@mpt}%% added (2016-10-08) 823 | \fi 824 | \setlength\maxdepth{.5\topskip} 825 | \newdimen\fullwidth 826 | \if@report 827 | \setlength\fullwidth{0.76\paperwidth} 828 | \else 829 | \setlength\fullwidth{\paperwidth} 830 | \addtolength\fullwidth{-36\jsc@mmm} 831 | \fi 832 | \if@twocolumn \@tempdima=2zw \else \@tempdima=1zw \fi 833 | \divide\fullwidth\@tempdima \multiply\fullwidth\@tempdima 834 | \setlength\textwidth{\fullwidth} 835 | \if@report \else 836 | \if@twocolumn \else 837 | \ifdim \fullwidth>40zw 838 | \setlength\textwidth{40zw} 839 | \fi 840 | \fi 841 | \fi 842 | \if@slide 843 | \setlength{\textheight}{0.95\paperheight} 844 | \else 845 | \setlength{\textheight}{0.83\paperheight} 846 | \fi 847 | \addtolength{\textheight}{-10\jsc@mpt}%% from -\topskip (2016-10-08); from -\headheight (2003-06-26) 848 | \addtolength{\textheight}{-\headsep} 849 | \addtolength{\textheight}{-\footskip} 850 | \addtolength{\textheight}{-\topskip} 851 | \divide\textheight\baselineskip 852 | \multiply\textheight\baselineskip 853 | \addtolength{\textheight}{\topskip} 854 | \addtolength{\textheight}{0.1\jsc@mpt} 855 | \def\flushbottom{% 856 | \def\@textbottom{\vskip \z@ \@plus.1\jsc@mpt}% 857 | \let\@texttop\relax} 858 | \setlength\marginparsep{\columnsep} 859 | \setlength\marginparpush{\baselineskip} 860 | \setlength{\oddsidemargin}{\paperwidth} 861 | \addtolength{\oddsidemargin}{-\fullwidth} 862 | \setlength{\oddsidemargin}{.5\oddsidemargin} 863 | \iftombow 864 | \addtolength{\oddsidemargin}{-1in} 865 | \else 866 | \addtolength{\oddsidemargin}{-\inv@mag in} 867 | \fi 868 | \setlength{\evensidemargin}{\oddsidemargin} 869 | \if@mparswitch 870 | \addtolength{\evensidemargin}{\fullwidth} 871 | \addtolength{\evensidemargin}{-\textwidth} 872 | \fi 873 | \setlength\marginparwidth{\paperwidth} 874 | \addtolength\marginparwidth{-\oddsidemargin} 875 | \addtolength\marginparwidth{-\inv@mag in} 876 | \addtolength\marginparwidth{-\textwidth} 877 | \addtolength\marginparwidth{-10\jsc@mmm} 878 | \addtolength\marginparwidth{-\marginparsep} 879 | \@tempdima=1zw 880 | \divide\marginparwidth\@tempdima 881 | \multiply\marginparwidth\@tempdima 882 | \setlength\topmargin{\paperheight} 883 | \addtolength\topmargin{-\textheight} 884 | \if@slide 885 | \addtolength\topmargin{-\headheight} 886 | \else 887 | \addtolength\topmargin{-10\jsc@mpt}%% from -\topskip (2016-10-08); from -\headheight (2003-06-26) 888 | \fi 889 | \addtolength\topmargin{-\headsep} 890 | \addtolength\topmargin{-\footskip} 891 | \setlength\topmargin{0.5\topmargin} 892 | \iftombow 893 | \addtolength\topmargin{-1in} 894 | \else 895 | \addtolength\topmargin{-\inv@mag in} 896 | \fi 897 | {\footnotesize\global\setlength\footnotesep{\baselineskip}} 898 | \setlength\footnotesep{0.7\footnotesep} 899 | \setlength{\skip\footins}{16\jsc@mpt \@plus 5\jsc@mpt \@minus 2\jsc@mpt} 900 | \setcounter{topnumber}{9} 901 | \renewcommand{\topfraction}{.85} 902 | \setcounter{bottomnumber}{9} 903 | \renewcommand{\bottomfraction}{.8} 904 | \setcounter{totalnumber}{20} 905 | \renewcommand{\textfraction}{.1} 906 | \renewcommand{\floatpagefraction}{.8} 907 | \setcounter{dbltopnumber}{9} 908 | \renewcommand{\dbltopfraction}{.8} 909 | \renewcommand{\dblfloatpagefraction}{.8} 910 | \setlength\floatsep {12\jsc@mpt \@plus 2\jsc@mpt \@minus 2\jsc@mpt} 911 | \setlength\textfloatsep{20\jsc@mpt \@plus 2\jsc@mpt \@minus 4\jsc@mpt} 912 | \setlength\intextsep {12\jsc@mpt \@plus 2\jsc@mpt \@minus 2\jsc@mpt} 913 | \setlength\dblfloatsep {12\jsc@mpt \@plus 2\jsc@mpt \@minus 2\jsc@mpt} 914 | \setlength\dbltextfloatsep{20\jsc@mpt \@plus 2\jsc@mpt \@minus 4\jsc@mpt} 915 | \setlength\@fptop{0\jsc@mpt \@plus 1fil} 916 | \setlength\@fpsep{8\jsc@mpt \@plus 2fil} 917 | \setlength\@fpbot{0\jsc@mpt \@plus 1fil} 918 | \setlength\@dblfptop{0\jsc@mpt \@plus 1fil} 919 | \setlength\@dblfpsep{8\jsc@mpt \@plus 2fil} 920 | \setlength\@dblfpbot{0\jsc@mpt \@plus 1fil} 921 | \def\pltx@cleartorightpage{\clearpage\if@twoside 922 | \ifodd\c@page 923 | \iftdir 924 | \hbox{}\thispagestyle{empty}\newpage 925 | \if@twocolumn\hbox{}\newpage\fi 926 | \fi 927 | \else 928 | \ifydir 929 | \hbox{}\thispagestyle{empty}\newpage 930 | \if@twocolumn\hbox{}\newpage\fi 931 | \fi 932 | \fi\fi} 933 | \def\pltx@cleartoleftpage{\clearpage\if@twoside 934 | \ifodd\c@page 935 | \ifydir 936 | \hbox{}\thispagestyle{empty}\newpage 937 | \if@twocolumn\hbox{}\newpage\fi 938 | \fi 939 | \else 940 | \iftdir 941 | \hbox{}\thispagestyle{empty}\newpage 942 | \if@twocolumn\hbox{}\newpage\fi 943 | \fi 944 | \fi\fi} 945 | \def\pltx@cleartooddpage{\clearpage\if@twoside 946 | \ifodd\c@page\else 947 | \hbox{}\thispagestyle{empty}\newpage 948 | \if@twocolumn\hbox{}\newpage\fi 949 | \fi\fi} 950 | \def\pltx@cleartoevenpage{\clearpage\if@twoside 951 | \ifodd\c@page 952 | \hbox{}\thispagestyle{empty}\newpage 953 | \if@twocolumn\hbox{}\newpage\fi 954 | \fi\fi} 955 | \if@openleft 956 | \let\cleardoublepage\pltx@cleartoleftpage 957 | \else\if@openright 958 | \let\cleardoublepage\pltx@cleartorightpage 959 | \fi\fi 960 | \def\ps@plainfoot{% 961 | \let\@mkboth\@gobbletwo 962 | \let\@oddhead\@empty 963 | \def\@oddfoot{\normalfont\hfil\thepage\hfil}% 964 | \let\@evenhead\@empty 965 | \let\@evenfoot\@oddfoot} 966 | \def\ps@plainhead{% 967 | \let\@mkboth\@gobbletwo 968 | \let\@oddfoot\@empty 969 | \let\@evenfoot\@empty 970 | \def\@evenhead{% 971 | \if@mparswitch \hss \fi 972 | \hbox to \fullwidth{\textbf{\thepage}\hfil}% 973 | \if@mparswitch\else \hss \fi}% 974 | \def\@oddhead{% 975 | \hbox to \fullwidth{\hfil\textbf{\thepage}}\hss}} 976 | \if@report \let\ps@plain\ps@plainfoot \else \let\ps@plain\ps@plainhead \fi 977 | \newif\if@omit@number 978 | \def\ps@headings{% 979 | \let\@oddfoot\@empty 980 | \let\@evenfoot\@empty 981 | \def\@evenhead{% 982 | \if@mparswitch \hss \fi 983 | \underline{\hbox to \fullwidth{\autoxspacing 984 | \textbf{\thepage}\hfil\leftmark}}% 985 | \if@mparswitch\else \hss \fi}% 986 | \def\@oddhead{\underline{\hbox to \fullwidth{\autoxspacing 987 | {\if@twoside\rightmark\else\leftmark\fi}\hfil\textbf{\thepage}}}\hss}% 988 | \let\@mkboth\markboth 989 | \def\chaptermark##1{\markboth{% 990 | \ifnum \c@secnumdepth >\m@ne 991 | \if@mainmatter 992 | \if@omit@number\else 993 | \@chapapp\thechapter\@chappos\hskip1zw 994 | \fi 995 | \fi 996 | \fi 997 | ##1}{}}% 998 | \def\sectionmark##1{\markright{% 999 | \ifnum \c@secnumdepth >\z@ \thesection \hskip1zw\fi 1000 | ##1}}}% 1001 | \def\ps@myheadings{% 1002 | \let\@oddfoot\@empty\let\@evenfoot\@empty 1003 | \def\@evenhead{% 1004 | \if@mparswitch \hss \fi% 1005 | \hbox to \fullwidth{\thepage\hfil\leftmark}% 1006 | \if@mparswitch\else \hss \fi}% 1007 | \def\@oddhead{% 1008 | \hbox to \fullwidth{\rightmark\hfil\thepage}\hss}% 1009 | \let\@mkboth\@gobbletwo 1010 | \let\chaptermark\@gobble 1011 | \let\sectionmark\@gobble 1012 | } 1013 | \def\plainifnotempty{% 1014 | \ifx \@oddhead \@empty 1015 | \ifx \@oddfoot \@empty 1016 | \else 1017 | \thispagestyle{plainfoot}% 1018 | \fi 1019 | \else 1020 | \thispagestyle{plainhead}% 1021 | \fi} 1022 | \if@titlepage 1023 | \newcommand{\maketitle}{% 1024 | \begin{titlepage}% 1025 | \let\footnotesize\small 1026 | \let\footnoterule\relax 1027 | \let\footnote\thanks 1028 | \null\vfil 1029 | \if@slide 1030 | {\footnotesize \@date}% 1031 | \begin{center} 1032 | \mbox{} \\[1zw] 1033 | \large 1034 | {\maybeblue\hrule height0\jsc@mpt depth2\jsc@mpt\relax}\par 1035 | \jsc@smallskip 1036 | \@title 1037 | \jsc@smallskip 1038 | {\maybeblue\hrule height0\jsc@mpt depth2\jsc@mpt\relax}\par 1039 | \vfill 1040 | {\small \@author}% 1041 | \end{center} 1042 | \else 1043 | \vskip 60\jsc@mpt 1044 | \begin{center}% 1045 | {\LARGE \@title \par}% 1046 | \vskip 3em% 1047 | {\large 1048 | \lineskip .75em 1049 | \begin{tabular}[t]{c}% 1050 | \@author 1051 | \end{tabular}\par}% 1052 | \vskip 1.5em 1053 | {\large \@date \par}% 1054 | \end{center}% 1055 | \fi 1056 | \par 1057 | \@thanks\vfil\null 1058 | \end{titlepage}% 1059 | \setcounter{footnote}{0}% 1060 | \global\let\thanks\relax 1061 | \global\let\maketitle\relax 1062 | \global\let\@thanks\@empty 1063 | \global\let\@author\@empty 1064 | \global\let\@date\@empty 1065 | \global\let\@title\@empty 1066 | \global\let\title\relax 1067 | \global\let\author\relax 1068 | \global\let\date\relax 1069 | \global\let\and\relax 1070 | }% 1071 | \else 1072 | \newcommand{\maketitle}{\par 1073 | \begingroup 1074 | \renewcommand\thefootnote{\@fnsymbol\c@footnote}% 1075 | \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% 1076 | \long\def\@makefntext##1{\advance\leftskip 3zw 1077 | \parindent 1zw\noindent 1078 | \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3zw}##1}% 1079 | \if@twocolumn 1080 | \ifnum \col@number=\@ne 1081 | \@maketitle 1082 | \else 1083 | \twocolumn[\@maketitle]% 1084 | \fi 1085 | \else 1086 | \newpage 1087 | \global\@topnum\z@ % Prevents figures from going at top of page. 1088 | \@maketitle 1089 | \fi 1090 | \plainifnotempty 1091 | \@thanks 1092 | \endgroup 1093 | \setcounter{footnote}{0}% 1094 | \global\let\thanks\relax 1095 | \global\let\maketitle\relax 1096 | \global\let\@thanks\@empty 1097 | \global\let\@author\@empty 1098 | \global\let\@date\@empty 1099 | \global\let\@title\@empty 1100 | \global\let\title\relax 1101 | \global\let\author\relax 1102 | \global\let\date\relax 1103 | \global\let\and\relax 1104 | } 1105 | \def\@maketitle{% 1106 | \newpage\null 1107 | \vskip 2em 1108 | \begin{center}% 1109 | \let\footnote\thanks 1110 | {\LARGE \@title \par}% 1111 | \vskip 1.5em 1112 | {\large 1113 | \lineskip .5em 1114 | \begin{tabular}[t]{c}% 1115 | \@author 1116 | \end{tabular}\par}% 1117 | \vskip 1em 1118 | {\large \@date}% 1119 | \end{center}% 1120 | \par\vskip 1.5em 1121 | } 1122 | \fi 1123 | \def\@startsection#1#2#3#4#5#6{% 1124 | \if@noskipsec \leavevmode \fi 1125 | \par 1126 | \@tempskipa #4\relax 1127 | \if@english \@afterindentfalse \else \@afterindenttrue \fi 1128 | \ifdim \@tempskipa <\z@ 1129 | \@tempskipa -\@tempskipa \@afterindentfalse 1130 | \fi 1131 | \if@nobreak 1132 | \everypar{}% 1133 | \else 1134 | \addpenalty\@secpenalty 1135 | \ifdim \@tempskipa >\z@ 1136 | \if@slide\else 1137 | \null 1138 | \vspace*{-\baselineskip}% 1139 | \fi 1140 | \vskip\@tempskipa 1141 | \fi 1142 | \fi 1143 | \noindent 1144 | \@ifstar 1145 | {\@ssect{#3}{#4}{#5}{#6}}% 1146 | {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} 1147 | \def\@sect#1#2#3#4#5#6[#7]#8{% 1148 | \ifnum #2>\c@secnumdepth 1149 | \let\@svsec\@empty 1150 | \else 1151 | \refstepcounter{#1}% 1152 | \protected@edef\@svsec{\@seccntformat{#1}\relax}% 1153 | \fi 1154 | \@tempskipa #5\relax 1155 | \ifdim \@tempskipa<\z@ 1156 | \def\@svsechd{% 1157 | #6{\hskip #3\relax 1158 | \@svsec #8}% 1159 | \csname #1mark\endcsname{#7}% 1160 | \addcontentsline{toc}{#1}{% 1161 | \ifnum #2>\c@secnumdepth \else 1162 | \protect\numberline{\csname the#1\endcsname}% 1163 | \fi 1164 | #7}}% 目次にフルネームを載せるなら #8 1165 | \else 1166 | \begingroup 1167 | \interlinepenalty \@M % 下から移動 1168 | #6{% 1169 | \@hangfrom{\hskip #3\relax\@svsec}% 1170 | #8\@@par}% 1171 | \endgroup 1172 | \csname #1mark\endcsname{#7}% 1173 | \addcontentsline{toc}{#1}{% 1174 | \ifnum #2>\c@secnumdepth \else 1175 | \protect\numberline{\csname the#1\endcsname}% 1176 | \fi 1177 | #7}% 目次にフルネームを載せるならここは #8 1178 | \fi 1179 | \@xsect{#5}} 1180 | \def\@xsect#1{% 1181 | \@tempskipa #1\relax 1182 | \ifdim \@tempskipa<\z@ 1183 | \@nobreakfalse 1184 | \global\@noskipsectrue 1185 | \everypar{% 1186 | \if@noskipsec 1187 | \global\@noskipsecfalse 1188 | {\setbox\z@\lastbox}% 1189 | \clubpenalty\@M 1190 | \begingroup \@svsechd \endgroup 1191 | \unskip 1192 | \@tempskipa #1\relax 1193 | \hskip -\@tempskipa 1194 | \else 1195 | \clubpenalty \@clubpenalty 1196 | \everypar{\everyparhook}% 1197 | \fi\everyparhook}% 1198 | \else 1199 | \par \nobreak 1200 | \vskip \@tempskipa 1201 | \@afterheading 1202 | \fi 1203 | \if@slide 1204 | {\vskip\if@twocolumn-5\jsc@mpt\else-6\jsc@mpt\fi 1205 | \maybeblue\hrule height0\jsc@mpt depth1\jsc@mpt 1206 | \vskip\if@twocolumn 4\jsc@mpt\else 7\jsc@mpt\fi\relax}% 1207 | \fi 1208 | \par % 2000-12-18 1209 | \ignorespaces} 1210 | \def\@ssect#1#2#3#4#5{% 1211 | \@tempskipa #3\relax 1212 | \ifdim \@tempskipa<\z@ 1213 | \def\@svsechd{#4{\hskip #1\relax #5}}% 1214 | \else 1215 | \begingroup 1216 | #4{% 1217 | \@hangfrom{\hskip #1}% 1218 | \interlinepenalty \@M #5\@@par}% 1219 | \endgroup 1220 | \fi 1221 | \@xsect{#3}} 1222 | \newcommand*\chaptermark[1]{} 1223 | \setcounter{secnumdepth}{2} 1224 | \newcounter{part} 1225 | \newcounter{chapter} 1226 | \newcounter{section}[chapter] 1227 | \newcounter{subsection}[section] 1228 | \newcounter{subsubsection}[subsection] 1229 | \newcounter{paragraph}[subsubsection] 1230 | \newcounter{subparagraph}[paragraph] 1231 | \renewcommand{\thepart}{\@Roman\c@part} 1232 | \renewcommand{\thechapter}{\@arabic\c@chapter} 1233 | \renewcommand{\thesection}{\thechapter.\@arabic\c@section} 1234 | \renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} 1235 | \renewcommand{\thesubsubsection}{% 1236 | \thesubsection.\@arabic\c@subsubsection} 1237 | \renewcommand{\theparagraph}{% 1238 | \thesubsubsection.\@arabic\c@paragraph} 1239 | \renewcommand{\thesubparagraph}{% 1240 | \theparagraph.\@arabic\c@subparagraph} 1241 | \newcommand{\@chapapp}{\prechaptername} 1242 | \newcommand{\@chappos}{\postchaptername} 1243 | \newcommand\frontmatter{% 1244 | \pltx@cleartooddpage 1245 | \@mainmatterfalse 1246 | \pagenumbering{roman}} 1247 | \newcommand\mainmatter{% 1248 | \pltx@cleartooddpage 1249 | \@mainmattertrue 1250 | \pagenumbering{arabic}} 1251 | \newcommand\backmatter{% 1252 | \if@openleft 1253 | \cleardoublepage 1254 | \else\if@openright 1255 | \cleardoublepage 1256 | \else 1257 | \clearpage 1258 | \fi\fi 1259 | \@mainmatterfalse} 1260 | \newcommand\part{% 1261 | \if@openleft 1262 | \cleardoublepage 1263 | \else\if@openright 1264 | \cleardoublepage 1265 | \else 1266 | \clearpage 1267 | \fi\fi 1268 | \thispagestyle{empty}% 欧文用標準スタイルでは plain 1269 | \if@twocolumn 1270 | \onecolumn 1271 | \@restonecoltrue 1272 | \else 1273 | \@restonecolfalse 1274 | \fi 1275 | \null\vfil 1276 | \secdef\@part\@spart} 1277 | \def\@part[#1]#2{% 1278 | \ifnum \c@secnumdepth >-2\relax 1279 | \refstepcounter{part}% 1280 | \addcontentsline{toc}{part}{% 1281 | \prepartname\thepart\postpartname\hspace{1zw}#1}% 1282 | \else 1283 | \addcontentsline{toc}{part}{#1}% 1284 | \fi 1285 | \markboth{}{}% 1286 | {\centering 1287 | \interlinepenalty \@M 1288 | \normalfont 1289 | \ifnum \c@secnumdepth >-2\relax 1290 | \huge\headfont \prepartname\thepart\postpartname 1291 | \par\vskip20\jsc@mpt 1292 | \fi 1293 | \Huge \headfont #2\par}% 1294 | \@endpart} 1295 | \def\@spart#1{{% 1296 | \centering 1297 | \interlinepenalty \@M 1298 | \normalfont 1299 | \Huge \headfont #1\par}% 1300 | \@endpart} 1301 | \def\@endpart{\vfil\newpage 1302 | \if@twoside 1303 | \if@openleft %% added (2017/02/24) 1304 | \null\thispagestyle{empty}\newpage 1305 | \else\if@openright %% added (2016/12/13) 1306 | \null\thispagestyle{empty}\newpage 1307 | \fi\fi %% added (2016/12/13, 2017/02/24) 1308 | \fi 1309 | \if@restonecol 1310 | \twocolumn 1311 | \fi} 1312 | \newcommand{\chapter}{% 1313 | \if@openleft\cleardoublepage\else 1314 | \if@openright\cleardoublepage\else\clearpage\fi\fi 1315 | \plainifnotempty % 元: \thispagestyle{plain} 1316 | \global\@topnum\z@ 1317 | \if@english \@afterindentfalse \else \@afterindenttrue \fi 1318 | \secdef 1319 | {\@omit@numberfalse\@chapter}% 1320 | {\@omit@numbertrue\@schapter}} 1321 | \def\@chapter[#1]#2{% 1322 | \ifnum \c@secnumdepth >\m@ne 1323 | \if@mainmatter 1324 | \refstepcounter{chapter}% 1325 | \typeout{\@chapapp\thechapter\@chappos}% 1326 | \addcontentsline{toc}{chapter}% 1327 | {\protect\numberline 1328 | % {\if@english\thechapter\else\@chapapp\thechapter\@chappos\fi}% 1329 | {\@chapapp\thechapter\@chappos}% 1330 | #1}% 1331 | \else\addcontentsline{toc}{chapter}{#1}\fi 1332 | \else 1333 | \addcontentsline{toc}{chapter}{#1}% 1334 | \fi 1335 | \chaptermark{#1}% 1336 | \addtocontents{lof}{\protect\addvspace{10\jsc@mpt}}% 1337 | \addtocontents{lot}{\protect\addvspace{10\jsc@mpt}}% 1338 | \if@twocolumn 1339 | \@topnewpage[\@makechapterhead{#2}]% 1340 | \else 1341 | \@makechapterhead{#2}% 1342 | \@afterheading 1343 | \fi} 1344 | \def\@makechapterhead#1{% 1345 | \vspace*{2\Cvs}% 欧文は50pt 1346 | {\parindent \z@ \raggedright \normalfont 1347 | \ifnum \c@secnumdepth >\m@ne 1348 | \if@mainmatter 1349 | \huge\headfont \@chapapp\thechapter\@chappos 1350 | \par\nobreak 1351 | \vskip \Cvs % 欧文は20pt 1352 | \fi 1353 | \fi 1354 | \interlinepenalty\@M 1355 | \Huge \headfont #1\par\nobreak 1356 | \vskip 3\Cvs}} % 欧文は40pt 1357 | \def\@schapter#1{% 1358 | \chaptermark{#1}% 1359 | \if@twocolumn 1360 | \@topnewpage[\@makeschapterhead{#1}]% 1361 | \else 1362 | \@makeschapterhead{#1}\@afterheading 1363 | \fi} 1364 | \def\@makeschapterhead#1{% 1365 | \vspace*{2\Cvs}% 欧文は50pt 1366 | {\parindent \z@ \raggedright 1367 | \normalfont 1368 | \interlinepenalty\@M 1369 | \Huge \headfont #1\par\nobreak 1370 | \vskip 3\Cvs}} % 欧文は40pt 1371 | \if@twocolumn 1372 | \newcommand{\section}{% 1373 | \@startsection{section}{1}{\z@}% 1374 | {0.6\Cvs}{0.4\Cvs}% 1375 | {\normalfont\large\headfont\raggedright}} 1376 | \else 1377 | \newcommand{\section}{% 1378 | \if@slide\clearpage\fi 1379 | \@startsection{section}{1}{\z@}% 1380 | {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ 1381 | {.5\Cvs \@plus.3\Cdp}% 後アキ 1382 | {\normalfont\Large\headfont\raggedright}} 1383 | \fi 1384 | \if@twocolumn 1385 | \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% 1386 | {\z@}{\if@slide .4\Cvs \else \z@ \fi}% 1387 | {\normalfont\normalsize\headfont}} 1388 | \else 1389 | \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% 1390 | {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 前アキ 1391 | {.5\Cvs \@plus.3\Cdp}% 後アキ 1392 | {\normalfont\large\headfont}} 1393 | \fi 1394 | \if@twocolumn 1395 | \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% 1396 | {\z@}{\if@slide .4\Cvs \else \z@ \fi}% 1397 | {\normalfont\normalsize\headfont}} 1398 | \else 1399 | \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% 1400 | {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 1401 | {\if@slide .5\Cvs \@plus.3\Cdp \else \z@ \fi}% 1402 | {\normalfont\normalsize\headfont}} 1403 | \fi 1404 | \newcommand{\jsParagraphMark}{■} 1405 | \if@twocolumn 1406 | \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% 1407 | {\z@}{\if@slide .4\Cvs \else -1zw\fi}% 改行せず 1zw のアキ 1408 | {\normalfont\normalsize\headfont\jsParagraphMark}} 1409 | \else 1410 | \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% 1411 | {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 1412 | {\if@slide .5\Cvs \@plus.3\Cdp \else -1zw\fi}% 改行せず 1zw のアキ 1413 | {\normalfont\normalsize\headfont\jsParagraphMark}} 1414 | \fi 1415 | \if@twocolumn 1416 | \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% 1417 | {\z@}{\if@slide .4\Cvs \@plus.3\Cdp \else -1zw\fi}% 1418 | {\normalfont\normalsize\headfont}} 1419 | \else 1420 | \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% 1421 | {\z@}{\if@slide .5\Cvs \@plus.3\Cdp \else -1zw\fi}% 1422 | {\normalfont\normalsize\headfont}} 1423 | \fi 1424 | \if@slide 1425 | \setlength\leftmargini{1zw} 1426 | \else 1427 | \if@twocolumn 1428 | \setlength\leftmargini{2zw} 1429 | \else 1430 | \setlength\leftmargini{3zw} 1431 | \fi 1432 | \fi 1433 | \if@slide 1434 | \setlength\leftmarginii {1zw} 1435 | \setlength\leftmarginiii{1zw} 1436 | \setlength\leftmarginiv {1zw} 1437 | \setlength\leftmarginv {1zw} 1438 | \setlength\leftmarginvi {1zw} 1439 | \else 1440 | \setlength\leftmarginii {2zw} 1441 | \setlength\leftmarginiii{2zw} 1442 | \setlength\leftmarginiv {2zw} 1443 | \setlength\leftmarginv {1zw} 1444 | \setlength\leftmarginvi {1zw} 1445 | \fi 1446 | \setlength \labelsep {0.5zw} % .5em 1447 | \setlength \labelwidth{\leftmargini} 1448 | \addtolength\labelwidth{-\labelsep} 1449 | \setlength\partopsep{\z@} % {2\p@ \@plus 1\p@ \@minus 1\p@} 1450 | \@beginparpenalty -\@lowpenalty 1451 | \@endparpenalty -\@lowpenalty 1452 | \@itempenalty -\@lowpenalty 1453 | \def\@listi{\leftmargin\leftmargini 1454 | \parsep \z@ 1455 | \topsep 0.5\baselineskip 1456 | \itemsep \z@ \relax} 1457 | \let\@listI\@listi 1458 | \@listi 1459 | \def\@listii{\leftmargin\leftmarginii 1460 | \labelwidth\leftmarginii \advance\labelwidth-\labelsep 1461 | \topsep \z@ 1462 | \parsep \z@ 1463 | \itemsep\parsep} 1464 | \def\@listiii{\leftmargin\leftmarginiii 1465 | \labelwidth\leftmarginiii \advance\labelwidth-\labelsep 1466 | \topsep \z@ 1467 | \parsep \z@ 1468 | \itemsep\parsep} 1469 | \def\@listiv {\leftmargin\leftmarginiv 1470 | \labelwidth\leftmarginiv 1471 | \advance\labelwidth-\labelsep} 1472 | \def\@listv {\leftmargin\leftmarginv 1473 | \labelwidth\leftmarginv 1474 | \advance\labelwidth-\labelsep} 1475 | \def\@listvi {\leftmargin\leftmarginvi 1476 | \labelwidth\leftmarginvi 1477 | \advance\labelwidth-\labelsep} 1478 | \renewcommand{\theenumi}{\@arabic\c@enumi} 1479 | \renewcommand{\theenumii}{\@alph\c@enumii} 1480 | \renewcommand{\theenumiii}{\@roman\c@enumiii} 1481 | \renewcommand{\theenumiv}{\@Alph\c@enumiv} 1482 | \newcommand{\labelenumi}{\theenumi.} 1483 | \newcommand{\labelenumii}{\inhibitglue(\theenumii)\inhibitglue} 1484 | \newcommand{\labelenumiii}{\theenumiii.} 1485 | \newcommand{\labelenumiv}{\theenumiv.} 1486 | \renewcommand{\p@enumii}{\theenumi} 1487 | \renewcommand{\p@enumiii}{\theenumi\inhibitglue(\theenumii)} 1488 | \renewcommand{\p@enumiv}{\p@enumiii\theenumiii} 1489 | \newcommand\labelitemi{\textbullet} 1490 | \newcommand\labelitemii{\normalfont\bfseries \textendash} 1491 | \newcommand\labelitemiii{\textasteriskcentered} 1492 | \newcommand\labelitemiv{\textperiodcentered} 1493 | \newenvironment{description}{% 1494 | \list{}{% 1495 | \labelwidth=\leftmargin 1496 | \labelsep=1zw 1497 | \advance \labelwidth by -\labelsep 1498 | \let \makelabel=\descriptionlabel}}{\endlist} 1499 | \newcommand*\descriptionlabel[1]{\normalfont\headfont #1\hfil} 1500 | \newenvironment{abstract}{% 1501 | \begin{list}{}{% 1502 | \listparindent=1zw 1503 | \itemindent=\listparindent 1504 | \rightmargin=0pt 1505 | \leftmargin=5zw}\item[]}{\end{list}\vspace{\baselineskip}} 1506 | \newenvironment{verse}{% 1507 | \let \\=\@centercr 1508 | \list{}{% 1509 | \itemsep \z@ 1510 | \itemindent -2zw % 元: -1.5em 1511 | \listparindent\itemindent 1512 | \rightmargin \z@ 1513 | \advance\leftmargin 2zw}% 元: 1.5em 1514 | \item\relax}{\endlist} 1515 | \newenvironment{quotation}{% 1516 | \list{}{% 1517 | \listparindent\parindent 1518 | \itemindent\listparindent 1519 | \rightmargin \z@}% 1520 | \item\relax}{\endlist} 1521 | \newenvironment{quote}% 1522 | {\list{}{\rightmargin\z@}\item\relax}{\endlist} 1523 | \def\@begintheorem#1#2{\trivlist\labelsep=1zw 1524 | \item[\hskip \labelsep{\headfont #1\ #2}]} 1525 | \def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1zw 1526 | \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} 1527 | \newenvironment{titlepage}{% 1528 | \pltx@cleartooddpage %% 2017-02-24 1529 | \if@twocolumn 1530 | \@restonecoltrue\onecolumn 1531 | \else 1532 | \@restonecolfalse\newpage 1533 | \fi 1534 | \thispagestyle{empty}% 1535 | \ifodd\c@page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017-02-24 1536 | }% 1537 | {\if@restonecol\twocolumn \else \newpage \fi 1538 | \if@twoside\else 1539 | \setcounter{page}\@ne 1540 | \fi} 1541 | \newcommand{\appendix}{\par 1542 | \setcounter{chapter}{0}% 1543 | \setcounter{section}{0}% 1544 | \gdef\@chapapp{\appendixname}% 1545 | \gdef\@chappos{}% 1546 | \gdef\thechapter{\@Alph\c@chapter}} 1547 | \setlength\arraycolsep{5\jsc@mpt} 1548 | \setlength\tabcolsep{6\jsc@mpt} 1549 | \setlength\arrayrulewidth{.4\jsc@mpt} 1550 | \setlength\doublerulesep{2\jsc@mpt} 1551 | \setlength\tabbingsep{\labelsep} 1552 | \skip\@mpfootins = \skip\footins 1553 | \setlength\fboxsep{3\jsc@mpt} 1554 | \setlength\fboxrule{.4\jsc@mpt} 1555 | \@addtoreset{equation}{chapter} 1556 | \renewcommand\theequation 1557 | {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation} 1558 | \newcounter{figure}[chapter] 1559 | \renewcommand \thefigure 1560 | {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure} 1561 | \def\fps@figure{tbp} 1562 | \def\ftype@figure{1} 1563 | \def\ext@figure{lof} 1564 | \def\fnum@figure{\figurename\nobreak\thefigure} 1565 | \newenvironment{figure}% 1566 | {\@float{figure}}% 1567 | {\end@float} 1568 | \newenvironment{figure*}% 1569 | {\@dblfloat{figure}}% 1570 | {\end@dblfloat} 1571 | \newcounter{table}[chapter] 1572 | \renewcommand \thetable 1573 | {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table} 1574 | \def\fps@table{tbp} 1575 | \def\ftype@table{2} 1576 | \def\ext@table{lot} 1577 | \def\fnum@table{\tablename\nobreak\thetable} 1578 | \newenvironment{table}% 1579 | {\@float{table}}% 1580 | {\end@float} 1581 | \newenvironment{table*}% 1582 | {\@dblfloat{table}}% 1583 | {\end@dblfloat} 1584 | \newlength\abovecaptionskip 1585 | \newlength\belowcaptionskip 1586 | \setlength\abovecaptionskip{5\jsc@mpt} % 元: 10\p@ 1587 | \setlength\belowcaptionskip{5\jsc@mpt} % 元: 0\p@ 1588 | \long\def\@makecaption#1#2{{\small 1589 | \advance\leftskip .0628\linewidth 1590 | \advance\rightskip .0628\linewidth 1591 | \vskip\abovecaptionskip 1592 | \sbox\@tempboxa{#1\hskip1zw\relax #2}% 1593 | \ifdim \wd\@tempboxa <\hsize \centering \fi 1594 | #1\hskip1zw\relax #2\par 1595 | \vskip\belowcaptionskip}} 1596 | \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} 1597 | \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} 1598 | \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} 1599 | \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} 1600 | \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} 1601 | \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} 1602 | \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} 1603 | \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} 1604 | \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} 1605 | \DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} 1606 | \DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} 1607 | \newcommand\@pnumwidth{1.55em} 1608 | \newcommand\@tocrmarg{2.55em} 1609 | \newcommand\@dotsep{4.5} 1610 | \setcounter{tocdepth}{1} 1611 | \newdimen\jsc@tocl@width 1612 | \newcommand{\tableofcontents}{% 1613 | \settowidth\jsc@tocl@width{\headfont\prechaptername\postchaptername}% 1614 | \settowidth\@tempdima{\headfont\appendixname}% 1615 | \ifdim\jsc@tocl@width<\@tempdima \setlength\jsc@tocl@width{\@tempdima}\fi 1616 | \ifdim\jsc@tocl@width<2zw \divide\jsc@tocl@width by 2 \advance\jsc@tocl@width 1zw\fi 1617 | \if@twocolumn 1618 | \@restonecoltrue\onecolumn 1619 | \else 1620 | \@restonecolfalse 1621 | \fi 1622 | \chapter*{\contentsname}% 1623 | \@mkboth{\contentsname}{}% 1624 | \@starttoc{toc}% 1625 | \if@restonecol\twocolumn\fi 1626 | } 1627 | \newcommand*{\l@part}[2]{% 1628 | \ifnum \c@tocdepth >-2\relax 1629 | \addpenalty{-\@highpenalty}% 1630 | \addvspace{2.25em \@plus\jsc@mpt}% 1631 | \begingroup 1632 | \parindent \z@ 1633 | \rightskip \@tocrmarg 1634 | \parfillskip -\rightskip 1635 | {\leavevmode 1636 | \large \headfont 1637 | \setlength\@lnumwidth{4zw}% 1638 | #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par 1639 | \nobreak 1640 | \global\@nobreaktrue 1641 | \everypar{\global\@nobreakfalse\everypar{}}% 1642 | \endgroup 1643 | \fi} 1644 | \newcommand*{\l@chapter}[2]{% 1645 | \ifnum \c@tocdepth >\m@ne 1646 | \addpenalty{-\@highpenalty}% 1647 | \addvspace{1.0em \@plus\jsc@mpt} 1648 | \begingroup 1649 | \parindent\z@ 1650 | \rightskip\@tocrmarg 1651 | \parfillskip-\rightskip 1652 | \leavevmode\headfont 1653 | % \if@english\setlength\@lnumwidth{5.5em}\else\setlength\@lnumwidth{4.683zw}\fi 1654 | \setlength\@lnumwidth{\jsc@tocl@width}\advance\@lnumwidth 2.683zw 1655 | \advance\leftskip\@lnumwidth \hskip-\leftskip 1656 | #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par 1657 | \penalty\@highpenalty 1658 | \endgroup 1659 | \fi} 1660 | % \newcommand*{\l@section}{\@dottedtocline{1}{1zw}{3.683zw}} 1661 | \newcommand*{\l@section}{% 1662 | \@tempdima\jsc@tocl@width \advance\@tempdima -1zw 1663 | \@dottedtocline{1}{\@tempdima}{3.683zw}} 1664 | \newcommand*{\l@subsection}{% 1665 | \@tempdima\jsc@tocl@width \advance\@tempdima 2.683zw 1666 | \@dottedtocline{2}{\@tempdima}{3.5zw}} 1667 | \newcommand*{\l@subsubsection}{% 1668 | \@tempdima\jsc@tocl@width \advance\@tempdima 6.183zw 1669 | \@dottedtocline{3}{\@tempdima}{4.5zw}} 1670 | \newcommand*{\l@paragraph}{% 1671 | \@tempdima\jsc@tocl@width \advance\@tempdima 10.683zw 1672 | \@dottedtocline{4}{\@tempdima}{5.5zw}} 1673 | \newcommand*{\l@subparagraph}{% 1674 | \@tempdima\jsc@tocl@width \advance\@tempdima 16.183zw 1675 | \@dottedtocline{5}{\@tempdima}{6.5zw}} 1676 | \newdimen\@lnumwidth 1677 | \def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}\hspace{0pt}} 1678 | \def\jsTocLine{\leaders\hbox{% 1679 | $\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill} 1680 | \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else 1681 | \vskip \z@ \@plus.2\jsc@mpt 1682 | {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip 1683 | \parindent #2\relax\@afterindenttrue 1684 | \interlinepenalty\@M 1685 | \leavevmode 1686 | \@lnumwidth #3\relax 1687 | \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip 1688 | {#4}\nobreak 1689 | \jsTocLine \nobreak\hb@xt@\@pnumwidth{% 1690 | \hfil\normalfont \normalcolor #5}\par}\fi} 1691 | \newcommand{\listoffigures}{% 1692 | \if@twocolumn\@restonecoltrue\onecolumn 1693 | \else\@restonecolfalse\fi 1694 | \chapter*{\listfigurename}% 1695 | \@mkboth{\listfigurename}{}% 1696 | \@starttoc{lof}% 1697 | \if@restonecol\twocolumn\fi 1698 | } 1699 | \newcommand*{\l@figure}{\@dottedtocline{1}{1zw}{3.683zw}} 1700 | \newcommand{\listoftables}{% 1701 | \if@twocolumn\@restonecoltrue\onecolumn 1702 | \else\@restonecolfalse\fi 1703 | \chapter*{\listtablename}% 1704 | \@mkboth{\listtablename}{}% 1705 | \@starttoc{lot}% 1706 | \if@restonecol\twocolumn\fi 1707 | } 1708 | \let\l@table\l@figure 1709 | \newdimen\bibindent 1710 | \setlength\bibindent{2zw} 1711 | \newenvironment{thebibliography}[1]{% 1712 | \global\let\presectionname\relax 1713 | \global\let\postsectionname\relax 1714 | \chapter*{\bibname}\@mkboth{\bibname}{}% 1715 | \addcontentsline{toc}{chapter}{\bibname}% 1716 | \list{\@biblabel{\@arabic\c@enumiv}}% 1717 | {\settowidth\labelwidth{\@biblabel{#1}}% 1718 | \leftmargin\labelwidth 1719 | \advance\leftmargin\labelsep 1720 | \@openbib@code 1721 | \usecounter{enumiv}% 1722 | \let\p@enumiv\@empty 1723 | \renewcommand\theenumiv{\@arabic\c@enumiv}}% 1724 | \sloppy 1725 | \clubpenalty4000 1726 | \@clubpenalty\clubpenalty 1727 | \widowpenalty4000% 1728 | \sfcode`\.\@m} 1729 | {\def\@noitemerr 1730 | {\@latex@warning{Empty `thebibliography' environment}}% 1731 | \endlist} 1732 | \newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} 1733 | \let\@openbib@code\@empty 1734 | \newenvironment{theindex}{% 索引を3段組で出力する環境 1735 | \if@twocolumn 1736 | \onecolumn\@restonecolfalse 1737 | \else 1738 | \clearpage\@restonecoltrue 1739 | \fi 1740 | \columnseprule.4pt \columnsep 2zw 1741 | \ifx\multicols\@undefined 1742 | \twocolumn[\@makeschapterhead{\indexname}% 1743 | \addcontentsline{toc}{chapter}{\indexname}]% 1744 | \else 1745 | \ifdim\textwidth<\fullwidth 1746 | \setlength{\evensidemargin}{\oddsidemargin} 1747 | \setlength{\textwidth}{\fullwidth} 1748 | \setlength{\linewidth}{\fullwidth} 1749 | \begin{multicols}{3}[\chapter*{\indexname}% 1750 | \addcontentsline{toc}{chapter}{\indexname}]% 1751 | \else 1752 | \begin{multicols}{2}[\chapter*{\indexname}% 1753 | \addcontentsline{toc}{chapter}{\indexname}]% 1754 | \fi 1755 | \fi 1756 | \@mkboth{\indexname}{}% 1757 | \plainifnotempty % \thispagestyle{plain} 1758 | \parindent\z@ 1759 | \parskip\z@ \@plus .3\jsc@mpt\relax 1760 | \let\item\@idxitem 1761 | \raggedright 1762 | \footnotesize\narrowbaselines 1763 | }{ 1764 | \ifx\multicols\@undefined 1765 | \if@restonecol\onecolumn\fi 1766 | \else 1767 | \end{multicols} 1768 | \fi 1769 | \clearpage 1770 | } 1771 | \newcommand{\@idxitem}{\par\hangindent 4zw} % 元 40pt 1772 | \newcommand{\subitem}{\@idxitem \hspace*{2zw}} % 元 20pt 1773 | \newcommand{\subsubitem}{\@idxitem \hspace*{3zw}} % 元 30pt 1774 | \newcommand{\indexspace}{\par \vskip 10\jsc@mpt \@plus5\jsc@mpt \@minus3\jsc@mpt\relax} 1775 | \newcommand\seename{\if@english see\else →\fi} 1776 | \newcommand\alsoname{\if@english see also\else →\fi} 1777 | \@ifl@t@r\pfmtversion{2016/09/03} 1778 | {\jsc@needsp@tchfalse}{\jsc@needsp@tchtrue} 1779 | \ifjsc@needsp@tch 1780 | \let\footnotes@ve=\footnote 1781 | \def\footnote{\inhibitglue\footnotes@ve} 1782 | \let\footnotemarks@ve=\footnotemark 1783 | \def\footnotemark{\inhibitglue\footnotemarks@ve} 1784 | \fi 1785 | \@ifl@t@r\pfmtversion{2016/04/17} 1786 | {\jsc@needsp@tchfalse}{\jsc@needsp@tchtrue} 1787 | \ifjsc@needsp@tch 1788 | \renewcommand\@makefnmark{% 1789 | \ifydir \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}% 1790 | \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi} 1791 | \fi 1792 | \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} 1793 | \renewcommand{\footnoterule}{% 1794 | \kern-3\jsc@mpt 1795 | \hrule width .4\columnwidth height 0.4\jsc@mpt 1796 | \kern 2.6\jsc@mpt} 1797 | \@addtoreset{footnote}{chapter} 1798 | \long\def\@footnotetext{% 1799 | \insert\footins\bgroup 1800 | \normalfont\footnotesize 1801 | \interlinepenalty\interfootnotelinepenalty 1802 | \splittopskip\footnotesep 1803 | \splitmaxdepth \dp\strutbox \floatingpenalty \@MM 1804 | \hsize\columnwidth \@parboxrestore 1805 | \protected@edef\@currentlabel{% 1806 | \csname p@footnote\endcsname\@thefnmark 1807 | }% 1808 | \color@begingroup 1809 | \@makefntext{% 1810 | \rule\z@\footnotesep\ignorespaces}% 1811 | \futurelet\jsc@next\jsc@fo@t} 1812 | \def\jsc@fo@t{\ifcat\bgroup\noexpand\jsc@next \let\jsc@next\jsc@f@@t 1813 | \else \let\jsc@next\jsc@f@t\fi \jsc@next} 1814 | \def\jsc@f@@t{\bgroup\aftergroup\jsc@@foot\let\jsc@next} 1815 | \def\jsc@f@t#1{#1\jsc@@foot} 1816 | \def\jsc@@foot{\@finalstrut\strutbox\color@endgroup\egroup 1817 | \ifx\pltx@foot@penalty\@undefined\else 1818 | \ifhmode\null\fi 1819 | \ifnum\pltx@foot@penalty=\z@\else 1820 | \penalty\pltx@foot@penalty 1821 | \pltx@foot@penalty\z@ 1822 | \fi 1823 | \fi} 1824 | \newcommand\@makefntext[1]{% 1825 | \advance\leftskip 3zw 1826 | \parindent 1zw 1827 | \noindent 1828 | \llap{\@makefnmark\hskip0.3zw}#1} 1829 | \def\@inhibitglue{% 1830 | \futurelet\@let@token\@@inhibitglue} 1831 | \begingroup 1832 | \let\GDEF=\gdef 1833 | \let\CATCODE=\catcode 1834 | \let\ENDGROUP=\endgroup 1835 | \CATCODE`k=12 1836 | \CATCODE`a=12 1837 | \CATCODE`n=12 1838 | \CATCODE`j=12 1839 | \CATCODE`i=12 1840 | \CATCODE`c=12 1841 | \CATCODE`h=12 1842 | \CATCODE`r=12 1843 | \CATCODE`t=12 1844 | \CATCODE`e=12 1845 | \GDEF\KANJI@CHARACTER{kanji character } 1846 | \ENDGROUP 1847 | \def\@@inhibitglue{% 1848 | \expandafter\expandafter\expandafter\jsc@inhibitglue\expandafter\meaning\expandafter\@let@token\KANJI@CHARACTER\relax\jsc@end} 1849 | \expandafter\def\expandafter\jsc@inhibitglue\expandafter#\expandafter1\KANJI@CHARACTER#2#3\jsc@end{% 1850 | \def\jsc@ig@temp{#1}% 1851 | \ifx\jsc@ig@temp\@empty 1852 | \ifnum\the\inhibitxspcode`#2=2\relax 1853 | \inhibitglue 1854 | \fi 1855 | \fi} 1856 | \let\everyparhook=\@inhibitglue 1857 | \AtBeginDocument{\everypar{\everyparhook}} 1858 | \def\@doendpe{% 1859 | \@endpetrue 1860 | \def\par{% 1861 | \@restorepar\clubpenalty\@clubpenalty\everypar{\everyparhook}\par\@endpefalse}% 1862 | \everypar{{\setbox\z@\lastbox}\everypar{\everyparhook}\@endpefalse\everyparhook}} 1863 | \def\@setminipage{% 1864 | \@minipagetrue 1865 | \everypar{\@minipagefalse\everypar{\everyparhook}}% 1866 | } 1867 | \def\@item[#1]{% 1868 | \if@noparitem 1869 | \@donoparitem 1870 | \else 1871 | \if@inlabel 1872 | \indent \par 1873 | \fi 1874 | \ifhmode 1875 | \unskip\unskip \par 1876 | \fi 1877 | \if@newlist 1878 | \if@nobreak 1879 | \@nbitem 1880 | \else 1881 | \addpenalty\@beginparpenalty 1882 | \addvspace\@topsep 1883 | \addvspace{-\parskip}% 1884 | \fi 1885 | \else 1886 | \addpenalty\@itempenalty 1887 | \addvspace\itemsep 1888 | \fi 1889 | \global\@inlabeltrue 1890 | \fi 1891 | \everypar{% 1892 | \@minipagefalse 1893 | \global\@newlistfalse 1894 | \if@inlabel 1895 | \global\@inlabelfalse 1896 | {\setbox\z@\lastbox 1897 | \ifvoid\z@ 1898 | \kern-\itemindent 1899 | \fi}% 1900 | \box\@labels 1901 | \penalty\z@ 1902 | \fi 1903 | \if@nobreak 1904 | \@nobreakfalse 1905 | \clubpenalty \@M 1906 | \else 1907 | \clubpenalty \@clubpenalty 1908 | \everypar{\everyparhook}% 1909 | \fi\everyparhook}% 1910 | \if@noitemarg 1911 | \@noitemargfalse 1912 | \if@nmbrlist 1913 | \refstepcounter\@listctr 1914 | \fi 1915 | \fi 1916 | \sbox\@tempboxa{\makelabel{#1}}% 1917 | \global\setbox\@labels\hbox{% 1918 | \unhbox\@labels 1919 | \hskip \itemindent 1920 | \hskip -\labelwidth 1921 | \hskip -\labelsep 1922 | \ifdim \wd\@tempboxa >\labelwidth 1923 | \box\@tempboxa 1924 | \else 1925 | \hbox to\labelwidth {\unhbox\@tempboxa}% 1926 | \fi 1927 | \hskip \labelsep}% 1928 | \ignorespaces} 1929 | \def\@afterheading{% 1930 | \@nobreaktrue 1931 | \everypar{% 1932 | \if@nobreak 1933 | \@nobreakfalse 1934 | \clubpenalty \@M 1935 | \if@afterindent \else 1936 | {\setbox\z@\lastbox}% 1937 | \fi 1938 | \else 1939 | \clubpenalty \@clubpenalty 1940 | \everypar{\everyparhook}% 1941 | \fi\everyparhook}} 1942 | \def\@gnewline #1{% 1943 | \ifvmode 1944 | \@nolnerr 1945 | \else 1946 | \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null 1947 | \inhibitglue \ignorespaces 1948 | \fi} 1949 | \if@jslogo 1950 | \IfFileExists{jslogo.sty}{% 1951 | \RequirePackage{jslogo}% 1952 | \def\小{\jslg@small}% 1953 | \def\上小{\jslg@uppersmall}% 1954 | }{% 1955 | \ClassWarningNoLine{\jsc@clsname}{% 1956 | The redefinitions of LaTeX-related logos has\MessageBreak 1957 | been moved to jslogo.sty since 2016, but\MessageBreak 1958 | jslogo.sty not found. Current release of\MessageBreak 1959 | 'jsclasses' includes it, so please check\MessageBreak 1960 | the installation}% 1961 | } 1962 | \fi 1963 | \newcommand{\prepartname}{\if@english Part~\else 第\fi} 1964 | \newcommand{\postpartname}{\if@english\else 部\fi} 1965 | \newcommand{\prechaptername}{\if@english Chapter~\else 第\fi} 1966 | \newcommand{\postchaptername}{\if@english\else 章\fi} 1967 | \newcommand{\presectionname}{}% 第 1968 | \newcommand{\postsectionname}{}% 節 1969 | \newcommand{\contentsname}{\if@english Contents\else 目次\fi} 1970 | \newcommand{\listfigurename}{\if@english List of Figures\else 図目次\fi} 1971 | \newcommand{\listtablename}{\if@english List of Tables\else 表目次\fi} 1972 | \newcommand{\refname}{\if@english References\else 参考文献\fi} 1973 | \newcommand{\bibname}{\if@english Bibliography\else 参考文献\fi} 1974 | \newcommand{\indexname}{\if@english Index\else 索引\fi} 1975 | \newcommand{\figurename}{\if@english Fig.~\else 図\fi} 1976 | \newcommand{\tablename}{\if@english Table~\else 表\fi} 1977 | \newcommand{\appendixname}{\if@english \else 付録\fi} 1978 | \newif\if西暦 \西暦true 1979 | \def\西暦{\西暦true} 1980 | \def\和暦{\西暦false} 1981 | \newcount\heisei \heisei\year \advance\heisei-1988\relax 1982 | \def\today{% 1983 | \if@english 1984 | \ifcase\month\or 1985 | January\or February\or March\or April\or May\or June\or 1986 | July\or August\or September\or October\or November\or December\fi 1987 | \space\number\day, \number\year 1988 | \else 1989 | \if西暦 1990 | \number\year 年 1991 | \number\month 月 1992 | \number\day 日 1993 | \else 1994 | 平成\number\heisei 年 1995 | \number\month 月 1996 | \number\day 日 1997 | \fi 1998 | \fi} 1999 | \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} 2000 | \if@report \pagestyle{plain} \else \pagestyle{headings} \fi 2001 | \pagenumbering{arabic} 2002 | \if@twocolumn 2003 | \twocolumn 2004 | \sloppy 2005 | \flushbottom 2006 | \else 2007 | \onecolumn 2008 | \raggedbottom 2009 | \fi 2010 | \if@slide 2011 | \renewcommand\kanjifamilydefault{\gtdefault} 2012 | \renewcommand\familydefault{\sfdefault} 2013 | \raggedright 2014 | \xkanjiskip=0.1em\relax 2015 | \fi 2016 | \@ifpackageloaded{exppl2e}{\jsc@needsp@tchtrue}{\jsc@needsp@tchfalse} 2017 | \ifjsc@needsp@tch\else 2018 | \expandafter\endinput 2019 | \fi 2020 | \def\@gnewline #1{% 2021 | \ifvmode 2022 | \@nolnerr 2023 | \else 2024 | \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \hskip \z@ 2025 | \ignorespaces 2026 | \fi} 2027 | \endinput 2028 | %% 2029 | %% End of file `jsbook.cls'. 2030 | -------------------------------------------------------------------------------- /src/sty/jumoline.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `jumoline.sty', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% jumoline.dtx (with options: `package') 8 | %% 9 | %% IMPORTANT NOTICE: 10 | %% 11 | %% For the copyright see the source file. 12 | %% 13 | %% Any modified versions of this file must be renamed 14 | %% with new filenames distinct from jumoline.sty. 15 | %% 16 | %% For distribution of the original source see the terms 17 | %% for copying and modification in the file jumoline.dtx. 18 | %% 19 | %% This generated file may be distributed as long as the 20 | %% original source files, as listed above, are part of the 21 | %% same distribution. (The sources need not necessarily be 22 | %% in the same archive or directory.) 23 | %% Style file `jumoline'. 24 | %% Copyright (C) 1999-2001 Hiroshi Nakashima 25 | %% (Toyohashi Univ. of Tech.) 26 | %% 27 | %% This program can be redistributed and/or modified under the terms 28 | %% of the LaTeX Project Public License distributed from CTAN 29 | %% archives in directory macros/latex/base/lppl.txt; either 30 | %% version 1 of the License, or any later version. 31 | %% 32 | %% \CharacterTable 33 | %% {Upper-case \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 34 | %% Lower-case \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 35 | %% Digits \0\1\2\3\4\5\6\7\8\9 36 | %% Exclamation \! Double quote \" Hash (number) \# 37 | %% Dollar \$ Percent \% Ampersand \& 38 | %% Acute accent \' Left paren \( Right paren \) 39 | %% Asterisk \* Plus \+ Comma \, 40 | %% Minus \- Point \. Solidus \/ 41 | %% Colon \: Semicolon \; Less than \< 42 | %% Equals \= Greater than \> Question mark \? 43 | %% Commercial at \@ Left bracket \[ Backslash \\ 44 | %% Right bracket \] Circumflex \^ Underscore \_ 45 | %% Grave accent \` Left brace \{ Vertical bar \| 46 | %% Right brace \} Tilde \~} 47 | %% 48 | %% 49 | \def\next{LaTeX2e} 50 | \ifx\fmtname\next 51 | \def\next{ 52 | \NeedsTeXFormat{LaTeX2e}[1994/12/01] 53 | \ProvidesPackage{jumoline}} 54 | \else\def\next[#1]{}\fi 55 | \next 56 | [2001/05/31 v1.2 ] 57 | 58 | \ifx\PackageError\undefined 59 | \def\PackageError#1#2#3{\@latexerr{#1:#2}{#3^^J\@ehc}} 60 | \fi 61 | 62 | %%^L 63 | 64 | %% Register Declaration 65 | 66 | \newdimen\UnderlineDepth \UnderlineDepth-\maxdimen 67 | \newdimen\MidlineHeight \MidlineHeight-\maxdimen 68 | \newdimen\OverlineHeight \OverlineHeight-\maxdimen 69 | \newdimen\UMOlineThickness \UMOlineThickness.4pt 70 | 71 | \newdimen\UMO@height \newdimen\UMO@depth 72 | \newdimen\UMO@dqspace \newdimen\UMO@tempdim 73 | 74 | \newskip\UMO@prejfmglue \newskip\UMO@postjfmglue 75 | 76 | \newcount\UMO@mode 77 | \let\UMO@afterblock\z@ 78 | \let\UMO@afterword\@ne 79 | \let\UMO@afterchar\tw@ 80 | 81 | \newcount\UMO@spacefactor 82 | \newcount\UMO@firstxspcode 83 | \newcount\UMO@lastxspcode 84 | \newcount\UMO@inhibitxspcode 85 | \newcount\UMO@prebreakpenalty 86 | \newcount\UMO@postbreakpenalty 87 | \newcount\UMO@kpostbreakpenalty 88 | 89 | \newif\ifUMO@nospace \newif\ifUMO@firstelem 90 | 91 | %%^L 92 | 93 | %% User Interface and Initialization 94 | 95 | \def\Underline{\UMO@line\UnderlineDepth{-\UnderlineDepth}{-\dp\strutbox}} 96 | \def\Midline{\setbox\@tempboxa\hbox{あ}% 97 | \UMO@line\MidlineHeight\MidlineHeight{.5\ht\@tempboxa}} 98 | \def\Overline{\UMO@line\OverlineHeight\OverlineHeight{\ht\strutbox}} 99 | \def\UMOline{\UMO@line{-\maxdimen}\z@} 100 | 101 | \def\UMO@line#1#2#3#4{\begingroup \let\\\UMOnewline 102 | \relax\ifdim#1<\z@ \UMO@height#3\relax 103 | \else \UMO@height#2\relax \fi 104 | \UMO@depth-\UMO@height 105 | \ifdim\UMO@height<\z@ \advance\UMO@depth\UMOlineThickness 106 | \else \advance\UMO@height\UMOlineThickness \fi 107 | \settowidth\UMO@dqspace{“}\advance\UMO@dqspace-1zw 108 | \UMO@dqspace-\UMO@dqspace \divide\UMO@dqspace\tw@ 109 | \UMO@nospacetrue \UMO@firstelemtrue 110 | \UMO@mode\UMO@afterblock 111 | \ifvmode\leavevmode\fi 112 | \def\@tempa{#4 }\edef\@tempb{\noexpand\@nil\space}% 113 | \expandafter\expandafter\expandafter\UMO@wordloop 114 | \expandafter\@tempa\@tempb 115 | \endgroup \UMO@aftergroup} 116 | 117 | %%^L 118 | 119 | %% Processing Word Elements 120 | 121 | \def\UMO@wordloop{\UMO@ifbgroup\UMO@wordblock\UMO@iwordloop} 122 | \def\UMO@ifbgroup#1#2{\let\@tempa#1\let\@tempb#2\futurelet\@tempc\UMO@ifnc} 123 | \def\UMO@ifnc{\ifx\@tempc\bgroup \let\next\@tempa \else\let\next\@tempb \fi 124 | \next} 125 | \def\UMO@wordblock#1{\UMO@spaceskip 126 | \UMO@putbox\relax{#1}\UMO@nospacetrue \UMO@mode\UMO@afterblock 127 | \UMO@spacefactor\@m \UMO@wordloop} 128 | \def\UMO@iwordloop#1 {\def\@tempa{#1}\ifx\@tempa\@nnil \let\next\UMO@end 129 | \else 130 | \ifx\@tempa\empty \UMO@nospacefalse 131 | \else 132 | \UMO@spaceskip \UMO@mode\UMO@afterblock 133 | \def\UMO@theword{}\UMO@firstxspcode\m@ne 134 | \UMO@charloop#1\@nil \fi 135 | \let\next\UMO@wordloop \fi 136 | \next} 137 | 138 | %%^L 139 | 140 | %% Interword Spacing 141 | 142 | \def\UMO@spaceskip{\ifUMO@nospace \UMO@nospacefalse \else 143 | \ifdim\spaceskip=\z@ 144 | \@tempdima\fontdimen3\font\relax 145 | \multiply\@tempdima\UMO@spacefactor \divide\@tempdima\@m 146 | \@tempdimb\fontdimen4\font\relax \multiply\@tempdimb\@m 147 | \divide\@tempdimb\UMO@spacefactor 148 | \@tempskipa\fontdimen2\font plus\@tempdima minus\@tempdimb\relax 149 | \else 150 | \edef\@tempa{\the\spaceskip\space @ @ @ @ }% 151 | \expandafter\UMO@setspaceskip\@tempa\@nil 152 | \fi 153 | \ifnum\UMO@spacefactor<2000\else 154 | \ifdim\xspaceskip=\z@ \advance\@tempskipa\fontdimen7\font 155 | \else \@tempskipa\xspaceskip 156 | \fi\fi 157 | \UMO@skip\@tempskipa \fi} 158 | \def\UMO@setspaceskip#1 #2 #3 #4 #5 #6\@nil{\@tempdima\z@ \@tempdimb\z@ 159 | \def\@tempa{#2}\def\@tempb{#3}% 160 | \ifx\@tempa\UMO@plus \@tempdima#3\def\@tempa{#4}\def\@tempb{#5}\fi 161 | \ifx\@tempa\UMO@minus \@tempdimb\@tempb\relax\fi 162 | \multiply\@tempdima\UMO@specefactor \divide\@tempdima\@m 163 | \multiply\@tempdimb\@m \divide\UMO@spacefactor 164 | \@tempskipa#1 plus\@tempdima minus\@tempdimb\relax} 165 | \def\@tempa#1 #2 #3 #4 #5\@nil{\def\UMO@plus{#2}\def\UMO@minus{#4}} 166 | \@tempskipa1pt plus 2pt minus 3pt 167 | \expandafter\@tempa\the\@tempskipa\@nil 168 | 169 | %%^L 170 | 171 | %% Processing Characters 172 | 173 | \def\UMO@charloop{\UMO@ifbgroup\UMO@charblock\UMO@icharloop} 174 | \def\UMO@charblock#1{\UMO@putword 175 | \UMO@putbox\relax{#1}\UMO@mode\UMO@afterblock \UMO@spacefactor\@m 176 | \UMO@charloop} 177 | \def\UMO@icharloop#1{\def\@tempa{#1}% 178 | \ifx\@tempa\@nnil \UMO@putword \let\next\relax 179 | \else\ifx\UMOspace#1\relax \UMO@putword \let\next\UMO@space 180 | \else\ifx\UMOnewline#1\relax \UMO@putword \let\next\UMO@newline 181 | \else 182 | \ifnum`#1<256\relax \edef\UMO@theword{\UMO@theword#1}% 183 | \ifnum\UMO@firstxspcode<\z@ 184 | \UMO@firstxspcode\xspcode`#1\relax 185 | \UMO@prebreakpenalty\prebreakpenalty`#1\relax 186 | \fi 187 | \UMO@lastxspcode\xspcode`#1\relax 188 | \UMO@postbreakpenalty\postbreakpenalty`#1\relax 189 | \else \UMO@putword \UMO@putchar{#1}\UMO@spacefactor\@m\fi 190 | \let\next\UMO@charloop \fi\fi\fi \next} 191 | \def\UMOspace{\PackageError{jumoline}% 192 | {\string\UMOspace\space cannot be used here.}% 193 | {\string\UMOspace\space can be used only in the argument of 194 | \string\Underline\space and its relatives.}} 195 | \def\UMOnewline{\PackageError{jumoline}% 196 | {\string\UMOnewline\space cannot be used here.}% 197 | {\string\UMOnewline\space can be used only in the argument of 198 | \string\Underline\space and its relatives.}} 199 | 200 | %%^L 201 | 202 | %% Put ASCII String 203 | 204 | \def\UMO@putword{\ifx\UMO@theword\empty\else 205 | \ifnum\UMO@mode=\UMO@afterchar 206 | \advance\UMO@kpostbreakpenalty\UMO@prebreakpenalty 207 | \penalty\UMO@kpostbreakpenalty 208 | \ifdim\UMO@postjfmglue>\z@ \UMO@skip\UMO@postjfmglue 209 | \else\ifodd\UMO@inhibitxspcode \ifodd\UMO@firstxspcode 210 | \UMO@skip\xkanjiskip \fi\fi\fi\fi 211 | \setbox\@tempboxa\hbox{% 212 | \UMO@theword\global\UMO@spacefactor\spacefactor}% 213 | \UMO@putbox\relax\UMO@theword \UMO@mode\UMO@afterword 214 | \def\UMO@theword{}\fi \UMO@firstxspcode\m@ne} 215 | 216 | %%^L 217 | 218 | %% Put Kanji Letter 219 | 220 | \def\UMO@putchar#1{% 221 | \ifnum\UMO@mode=\UMO@afterchar \UMO@prejfmglue\UMO@postjfmglue 222 | \else \UMO@prejfmglue\z@ \fi 223 | \UMO@postjfmglue\z@ 224 | \ifnum`#1<\kuten"1001\relax\UMO@setjfmglue{#1}\fi 225 | \@tempskipa\UMO@prejfmglue 226 | \UMO@inhibitxspcode\inhibitxspcode`#1\relax 227 | \@tempcnta\prebreakpenalty`#1\relax 228 | \ifnum\UMO@mode=\UMO@afterchar 229 | \advance\@tempcnta\UMO@kpostbreakpenalty 230 | \ifdim\UMO@prejfmglue=\z@ \@tempskipa\kanjiskip \fi 231 | \else\ifnum\UMO@mode=\UMO@afterword 232 | \advance\@tempcnta\UMO@postbreakpenalty 233 | \ifdim\UMO@prejfmglue=\z@ 234 | \ifnum\UMO@lastxspcode>\@ne \ifnum\UMO@inhibitxspcode>\@ne 235 | \@tempskipa\xkanjiskip \fi\fi\fi\fi\fi 236 | \penalty\@tempcnta 237 | \edef\@tempa{\the\@tempskipa}\ifx\@tempa\UMO@zskip\else 238 | \UMO@skip\@tempskipa \fi 239 | \UMO@putbox\inhibitglue{#1}% 240 | \UMO@kpostbreakpenalty\postbreakpenalty`#1\relax 241 | \UMO@mode\UMO@afterchar} 242 | \@tempskipa\z@ 243 | \edef\UMO@zskip{\the\@tempskipa} 244 | \def\UMO@setjfmglue#1{% 245 | \settowidth\@tempdima{あ#1}\settowidth\@tempdimb{あ\inhibitglue#1}% 246 | \advance\@tempdima-\@tempdimb 247 | \settowidth\UMO@tempdim{#1あ}\settowidth\@tempdimb{#1\inhibitglue あ}% 248 | \advance\UMO@tempdim-\@tempdimb 249 | \ifdim\@tempdima>\z@ 250 | \ifdim\UMO@tempdim>\z@ 251 | \@tempskipa\@tempdima minus\@tempdima\relax 252 | \UMO@postjfmglue\UMO@tempdim minus\UMO@tempdim\relax 253 | \else \@tempskipa\@tempdima minus\UMO@dqspace\relax \fi 254 | \advance\UMO@prejfmglue\@tempskipa 255 | \else \UMO@postjfmglue\UMO@tempdim minus\UMO@dqspace \fi} 256 | 257 | %%^L 258 | 259 | %% Draw Under/Mid/Overline 260 | 261 | \def\UMO@putbox#1#2{\setbox\@tempboxa\hbox{#1#2#1}\@tempdima\wd\@tempboxa 262 | \ifUMO@firstelem\else 263 | \rlap{\vrule\@height\UMO@height\@depth\UMO@depth\@width\@tempdima}\fi 264 | \box\@tempboxa 265 | \ifUMO@firstelem \UMO@firstelemfalse 266 | \llap{\vrule\@height\UMO@height\@depth\UMO@depth\@width\@tempdima}\fi} 267 | \def\UMO@skip#1{% 268 | \leaders\hrule\@height\UMO@height\@depth\UMO@depth\hskip#1\relax} 269 | 270 | %%^L 271 | 272 | %% Explicit Spacing and Line Breaking 273 | 274 | \def\UMO@space{\UMO@mode\UMO@afterblock 275 | \@ifstar\UMO@sspace\UMO@ispace} 276 | \def\UMO@sspace#1{\vrule width\z@\nobreak\UMO@skip{#1}\UMO@charloop} 277 | \def\UMO@ispace#1{\@tempskipa#1\relax 278 | \@ifstar{\@tempswafalse\UMO@iispace}{\@tempswatrue\UMO@iispace}} 279 | \def\UMO@iispace{\@ifnextchar[%] 280 | {\UMO@penalty}% 281 | {\UMO@skip\@tempskipa \UMO@charloop}} 282 | \def\UMO@penalty[#1]{\@tempcnta#1\relax 283 | \if@tempswa 284 | \ifnum\@tempcnta<\z@ \@tempcnta-\@tempcnta \fi 285 | \ifcase\@tempcnta \or 286 | \@tempcnta\@lowpenalty \or 287 | \@tempcnta\@medpenalty \or 288 | \@tempcnta\@highpenalty \else 289 | \@tempcnta\@M \fi 290 | \ifnum#1<\z@ \@tempcnta-\@tempcnta \fi \fi 291 | \penalty\@tempcnta \UMO@skip\@tempskipa \UMO@charloop} 292 | 293 | \def\UMO@newline{\UMO@mode\UMO@afterblock 294 | \@ifstar{\UMO@skip{0pt plus1fil}\break \UMO@charloop}% 295 | {\hfil \break \UMO@charloop}} 296 | 297 | %%^L 298 | 299 | %% Finalization 300 | 301 | \def\UMO@end{\ifnum\UMO@mode=\UMO@afterchar 302 | \ifnum\UMO@kpostbreakpenalty>\z@ 303 | \penalty\UMO@kpostbreakpenalty \fi 304 | \ifdim\UMO@postjfmglue>\z@ 305 | \UMO@skip\UMO@postjfmglue\fi \fi 306 | \xdef\UMO@aftergroup{\ifnum\UMO@mode=\UMO@afterword 307 | \spacefactor\number\UMO@spacefactor\fi}} 308 | \endinput 309 | %% 310 | %% End of file `jumoline.sty'. 311 | -------------------------------------------------------------------------------- /src/sty/plistings.sty: -------------------------------------------------------------------------------- 1 | % 2 | % plistings.sty 3 | % 4 | % lltjp-listings.sty ベース,コード未整理 5 | 6 | \NeedsTeXFormat{LaTeX2e} 7 | \ProvidesPackage{plistings}[2015/12/07 v0.10 Japanese support of listings package] 8 | 9 | %%%%%%%% Package options 10 | \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{listings}} 11 | \ProcessOptions\relax 12 | \RequirePackage{listings,etoolbox} 13 | 14 | %%%%%%%% Japanese support 15 | %% whether letter-space in a fixed mode box is doubled or not 16 | \newif\if@ltj@lst@double 17 | \lst@Key{doubleletterspace}f[t]{\lstKV@SetIf{#1}\if@ltj@lst@double} 18 | 19 | % override \lst@FillFixed@ 20 | \def\lst@FillFixed@#1{% 21 | \ifx\@empty#1\else\ltj@lst@hss#1\expandafter\lst@FillFixed@\fi} 22 | \def\ltj@lst@hss@double{\lst@hss\lst@hss} 23 | 24 | % 最下層の処理 25 | \newif\if@ltj@lst@kanji 26 | \lst@AddToHook{InitVars}{\@ltj@lst@kanjifalse} 27 | 28 | \def\lst@AppendLetter{% 29 | \ltj@lst@setletterflag\lst@Append} 30 | \def\lst@AppendOther{% 31 | \lst@ifletter\lst@Output\lst@letterfalse\fi\@ltj@lst@kanjifalse 32 | \futurelet\lst@lastother\lst@Append} 33 | 34 | \def\ltj@lst@setletterflag{% 35 | \lst@ifletter 36 | \if@ltj@lst@kanji\lst@Output\@ltj@lst@kanjifalse\fi 37 | \else 38 | \lst@lettertrue\if@ltj@lst@kanji\@ltj@lst@kanjifalse\else\lst@OutputOther\fi 39 | \fi} 40 | 41 | \def\ltj@lst@setkanjiflag{% 42 | \lst@ifletter 43 | \lst@Output 44 | \else 45 | \if@ltj@lst@kanji\else\lst@OutputOther\fi\lst@lettertrue 46 | \fi\@ltj@lst@kanjitrue} 47 | 48 | \def\ltj@lst@setopenflag{% 49 | \lst@ifletter 50 | \lst@letterfalse\lst@Output 51 | \else 52 | \if@ltj@lst@kanji\else\lst@OutputOther\fi 53 | \fi\@ltj@lst@kanjitrue} 54 | 55 | \def\ltj@lst@setcloseflag{% 56 | \lst@ifletter\else\lst@lettertrue\fi\@ltj@lst@kanjitrue} 57 | 58 | %%%% 和文文字の出力命令. 59 | %%%% 和文文字の前にこれが前置されることになる. 60 | \def\ltj@lst@ProcessJALetter#1{% 61 | \lst@whitespacefalse 62 | \ifnum`#1>255 63 | \ifnum\postbreakpenalty`#1>0 64 | \ltj@lst@setopenflag % 開き括弧類 65 | \else 66 | \ifnum\prebreakpenalty`#1>0 67 | \ltj@lst@setcloseflag % 閉じ括弧類,句読点 68 | \else 69 | \ltj@lst@setkanjiflag % 通常の和文文字 70 | \fi\fi 71 | \advance\lst@length\@ne % 和文文字は通常の2倍の幅 72 | \else 73 | \ltj@lst@setletterflag 74 | \fi 75 | \lst@Append#1} 76 | 77 | 78 | %%%% \lst@InsideConvert の処理内容変更 79 | %%%% active 文字化に加え,^^@ を和文文字の前に前置 80 | \def\ltj@lst@MakeActive#1{% 81 | \let\lst@temp\@empty \ltj@lst@MakeActive@#1\relax} 82 | \begingroup 83 | \catcode`\^^A=\active 84 | \catcode`\^^@=\active 85 | \lowercase{% 86 | \gdef\ltj@lst@MakeActive@#1{\let\lst@next\relax% 87 | \ifx#1\relax 88 | \else\let\lst@next\ltj@lst@MakeActive@ 89 | \ifnum`#1>255 90 | \lst@lAddTo\lst@temp{^^@#1}% 91 | \else 92 | \lccode`\^^A=`#1 93 | \lowercase{\lst@lAddTo\lst@temp{^^A}}% 94 | \fi\fi\lst@next}} 95 | \endgroup 96 | \begingroup \lccode`\~=`\ \relax \lowercase{% 97 | \gdef\lst@InsideConvert@#1 #2{% 98 | \ltj@lst@MakeActive{#1}% 99 | \ifx\@empty#2% 100 | \lst@lExtend\lst@arg{\lst@temp}% 101 | \else 102 | \lst@lExtend\lst@arg{\lst@temp~}% 103 | \expandafter\lst@InsideConvert@ 104 | \fi #2} 105 | }\endgroup 106 | 107 | 108 | %%%%%%%% \lstinline の再定義. 109 | %%%% 引数を全部読み込み,\lst@InsideConvert で変換 110 | \renewcommand\lstinline[1][]{% 111 | \leavevmode\bgroup % \hbox\bgroup --> \bgroup 112 | \def\lst@boxpos{b}% 113 | \lsthk@PreSet\lstset{flexiblecolumns,#1}% 114 | \lsthk@TextStyle 115 | \@ifnextchar\bgroup \ltj@lst@InlineG \ltj@lstinline@} 116 | \def\ltj@lstinline@#1{% 117 | \edef\ltj@lst@temp{\the\catcode`#1}\lst@Init\relax\catcode`#1\ltj@lst@temp 118 | \lst@Def{13}{\lst@DeInit\egroup \global\let\lst@inlinechars\@empty 119 | \PackageError{Listings}{lstinline ended by EOL}\@ehc}% 120 | \lst@InlineJ#1} 121 | \def\ltj@lst@InlineG{% 122 | \lst@Init\relax\edef\ltj@lst@temp{\the\catcode`\}}% 123 | \catcode`\}=2 \catcode`\ =12\relax 124 | \lst@Def{13}{\lst@DeInit\egroup \global\let\lst@inlinechars\@empty 125 | \PackageError{Listings}{lstinline ended by EOL}\@ehc}% 126 | \let\lst@arg\@empty\afterassignment\ltj@lst@InlineG@@\@temptokena} 127 | \def\ltj@lst@InlineG@@{% 128 | \catcode`\}=\ltj@lst@temp 129 | \expandafter\expandafter\expandafter\lst@InsideConvert% 130 | \expandafter{\the\@temptokena}\lst@arg\lst@DeInit\egroup} 131 | 132 | %%%%%%%% \lstenv@process の再定義 133 | %%%% 基本的にはインライン時と同様に全トークンを読み込み→\lst@InsideConvert で変換 134 | %%%% その後,変換した中身は \scantokens で読み込み直される 135 | \begingroup \lccode`\~=`\^^M\lowercase{% 136 | \gdef\lstenv@Process#1{% 137 | \ifx~#1% 138 | \lstenv@DroppedWarning \let\lst@next\ltj@lstenv@ProcessM 139 | \else\ifx^^J#1% 140 | \lstenv@DroppedWarning \let\lst@next\lstenv@ProcessJ 141 | \else 142 | \let\lst@dropped#1\let\lst@next\lstenv@Process 143 | \fi \fi 144 | \lst@next} 145 | }\endgroup 146 | \begingroup\lccode`\[=`\{\lccode`\]=`\}\lccode`|=`\\\lowercase{% 147 | \gdef\ltj@lstenv@ProcessM{% 148 | \let\lst@arg\@empty 149 | \edef\lst@temp{|end[\lstenv@name]}% 150 | \expandafter\expandafter\expandafter\lst@InsideConvert% 151 | \expandafter{\lst@temp}% 152 | \@temptokena{% 153 | \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter 154 | \lst@SkipToFirst\expandafter\expandafter\expandafter\scantokens\expandafter{\lst@arg}% 155 | } 156 | \expandafter\expandafter\expandafter\toks@\expandafter{\lst@arg} 157 | \expandafter\edef\expandafter\lst@temp\expandafter##\expandafter1\lst@arg 158 | {% 159 | \noexpand\let\noexpand\lst@arg\noexpand\@empty% 160 | \noexpand\lst@InsideConvert{\noexpand##1} 161 | \the\@temptokena\the\toks@ 162 | }% 163 | \lst@temp} 164 | }\endgroup 165 | 166 | \def\lst@BeginDropInput#1{% 167 | \lst@EnterMode{#1}% 168 | {\lst@modetrue 169 | \let\lst@OutputBox\@gobble 170 | \let\lst@ifdropinput\iftrue 171 | \let\lst@ProcessLetter\@gobble 172 | \let\lst@ProcessDigit\@gobble 173 | \let\lst@ProcessOther\@gobble 174 | \let\lst@ProcessSpace\@empty 175 | \let\lst@ProcessTabulator\@empty 176 | \let\lst@ProcessFormFeed\@empty 177 | \let\ltj@lst@ProcessJALetter\@gobble % added 178 | }} 179 | 180 | 181 | %%%% ^^@ を active 文字化 (\ltj@lst@ProcessJALetter) 182 | \begingroup\catcode`\^^@=\active 183 | \lst@AddTo\lst@SelectStdCharTable{\def^^@{\ltj@lst@ProcessJALetter}} 184 | \endgroup 185 | \lst@AddToHook{InitVars}{% 186 | \catcode`\^^@=\active 187 | \if@ltj@lst@double 188 | \let\ltj@lst@hss=\ltj@lst@hss@double 189 | \else 190 | \let\ltj@lst@hss=\lst@hss 191 | \fi 192 | } 193 | 194 | %%%% 白線対策のため,\lineskiplimit を負の値にする 195 | \newif\ifltj@lst@frame@top 196 | \newdimen\ltj@lst@frame@lslimit 197 | \gdef\lst@frameInit{% 198 | \ltj@lst@frame@toptrue 199 | \ifx\lst@framelshape\@empty \let\lst@frameL\@empty \fi 200 | \ifx\lst@framershape\@empty \let\lst@frameR\@empty \fi 201 | \def\lst@framevrule{\vrule\@width\lst@framerulewidth\relax}% 202 | \lst@ifframeround 203 | \lst@frameCalcDimA\z@ \@getcirc\@tempdima 204 | \@tempdimb\@tempdima \divide\@tempdimb\tw@ 205 | \advance\@tempdimb -\@wholewidth 206 | \edef\lst@frametextsep{\the\@tempdimb}% 207 | \edef\lst@framerulewidth{\the\@wholewidth}% 208 | \lst@frameCalcDimA\@ne \@getcirc\@tempdima 209 | \@tempdimb\@tempdima \divide\@tempdimb\tw@ 210 | \advance\@tempdimb -\tw@\@wholewidth 211 | \advance\@tempdimb -\lst@frametextsep 212 | \edef\lst@rulesep{\the\@tempdimb}% 213 | \fi 214 | \lst@frameMakeBoxV\lst@framebox{\ht\strutbox}{\dp\strutbox}% 215 | %%%% ここから 216 | \@tempdima\z@ 217 | \ifdim\ht\strutbox<\cht\@tempdima=\dimexpr\cht-\ht\strutbox\relax\fi 218 | \ifdim\dp\strutbox<\cdp\advance\@tempdima=\dimexpr\cdp-\dp\strutbox\relax\fi 219 | \ltj@lst@frame@lslimit=-\@tempdima 220 | \def\lst@framelr{% 221 | \ifltj@lst@frame@top\ltj@lst@frame@topfalse\else\lineskiplimit\ltj@lst@frame@lslimit\fi 222 | \copy\lst@framebox}% 223 | %%%% ここまで 224 | \ifx\lst@frametshape\@empty\else 225 | \lst@frameH T\lst@frametshape 226 | \ifvoid\z@\else 227 | \par\lst@parshape 228 | \@tempdima-\baselineskip \advance\@tempdima\ht\z@ 229 | \ifdim\prevdepth<\@cclvi\p@\else 230 | \advance\@tempdima\prevdepth 231 | \fi 232 | \ifdim\@tempdima<\z@ 233 | \vskip\@tempdima\vskip\lineskip 234 | \fi 235 | \noindent\box\z@\par 236 | \lineskiplimit\maxdimen \lineskip\z@ 237 | \fi 238 | \lst@frameSpreadV\lst@framextopmargin 239 | \fi} 240 | 241 | % lstinputlisting 242 | % modified from jlisting.sty 243 | \def\lst@InputListing#1{% 244 | \begingroup 245 | \lsthk@PreSet \gdef\lst@intname{#1}% 246 | \expandafter\lstset\expandafter{\lst@set}% 247 | \lsthk@DisplayStyle 248 | \catcode\active=\active 249 | \lst@Init\relax \let\lst@gobble\z@ 250 | \lst@SkipToFirst 251 | \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}% 252 | \else \let\lst@next\@empty 253 | \fi 254 | \lst@next 255 | \lst@DeInit 256 | \endgroup} 257 | \newread\lst@inputfile 258 | \def\lst@get@filecontents#1{% 259 | \let\lst@filecontents\@empty 260 | \openin\lst@inputfile=#1\relax 261 | \let\@lst@get@filecontents@prevline\relax 262 | \lst@get@filecontents@loop 263 | \closein\lst@inputfile 264 | \lst@filecontents\empty} 265 | \def\lst@get@filecontents@loop{% 266 | \read\lst@inputfile to\lst@temp 267 | \let\lst@arg\@empty\expandafter\expandafter\expandafter\lst@InsideConvert\expandafter{\lst@temp}% 268 | \ifx\@lst@get@filecontents@prevline\relax\else 269 | \expandafter\expandafter\expandafter\def 270 | \expandafter\expandafter\expandafter\lst@filecontents 271 | \expandafter\expandafter\expandafter{% 272 | \expandafter\lst@filecontents\@lst@get@filecontents@prevline}% 273 | \fi 274 | \let\@lst@get@filecontents@prevline\lst@arg 275 | \ifeof\lst@inputfile\else 276 | \expandafter\lst@get@filecontents@loop 277 | \fi} 278 | 279 | %%%%%%%% escape to \LaTeX 280 | %%%% 一旦中身を全部取得した後で,^^@ ( = \ltj@lst@ProcessJALetter) を 281 | %%%% トークン列から削除,その後 \scantokens で再読み込み 282 | \lstloadaspects{escape} 283 | \gdef\lst@Escape#1#2#3#4{% 284 | \lst@CArgX #1\relax\lst@CDefX 285 | {}% 286 | {\lst@ifdropinput\else 287 | \lst@TrackNewLines\lst@OutputLostSpace \lst@XPrintToken 288 | \lst@InterruptModes 289 | \lst@EnterMode{\lst@TeXmode}{\lst@modetrue}% 290 | \ifx\^^M#2% 291 | \lst@CArg #2\relax\lst@ActiveCDefX 292 | {}% 293 | {\lst@escapeend #4\lst@LeaveAllModes\lst@ReenterModes}% 294 | {\ltj@lst@MProcessListing}% 295 | \else 296 | \lst@CArg #2\relax\lst@ActiveCDefX 297 | {}% 298 | {\lst@escapeend #4\lst@LeaveAllModes\lst@ReenterModes 299 | \lst@newlines\z@ \lst@whitespacefalse}% 300 | {}% 301 | \fi% 302 | \ltj@lst@escape@setup#2 303 | #3\lst@escapebegin\expandafter\lst@next% 304 | \fi}% 305 | {}} 306 | \def\ltj@lst@escape@setup#1{% 307 | \begingroup\lccode`\~=`#1\lowercase{% 308 | \gdef\lst@next##1~{% 309 | \let\lst@arg\@empty\ltj@lst@remove@jacmd{##1}% 310 | \expandafter\expandafter\expandafter\scantokens\expandafter{\lst@arg}% 311 | ~}% 312 | }\endgroup 313 | } 314 | 315 | \begingroup 316 | \catcode`\^^@=12 % 317 | \gdef\ltj@lst@remove@jacmd#1{% 318 | \expandafter\ltj@lst@remove@jacmd@\detokenize{#1}^^@\@nil^^@} 319 | \gdef\ltj@lst@remove@jacmd@#1^^@{% 320 | \ifx#1\@nil\else 321 | \lst@lAddTo\lst@arg{#1}% 322 | \expandafter\ltj@lst@remove@jacmd@ 323 | \fi} 324 | \endgroup 325 | 326 | \endinput 327 | -------------------------------------------------------------------------------- /src/sty/review-base.sty: -------------------------------------------------------------------------------- 1 | \ProvidesClass{review-base}[2021/06/04] 2 | \RequirePackage{ifthen} 3 | \@ifundefined{Hy@Info}{% for jsbook.cls 4 | \RequirePackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true]{hyperref} 5 | \RequirePackage[dvipdfmx]{pxjahyper} 6 | \newif\if@reclscover \@reclscovertrue 7 | \newcommand{\includefullpagegraphics}[2][]{% 8 | \thispagestyle{empty}% 9 | \begin{center}% 10 | \includegraphics[#1]{#2}% 11 | \end{center}} 12 | \def\review@coverimageoption{width=\textwidth,height=\textheight,keepaspectratio} 13 | }{} 14 | \ifthenelse{\equal{\review@texcompiler}{uplatex}}{% 15 | \RequirePackage[deluxe,uplatex]{otf}% 16 | }{% 17 | \RequirePackage[deluxe]{otf}% 18 | } 19 | \RequirePackage{caption} 20 | \RequirePackage{needspace} 21 | \RequirePackage{suffix} 22 | \RequirePackage[T1]{fontenc}\RequirePackage{textcomp}%T1/TS1 23 | \RequirePackage{lmodern} 24 | \RequirePackage[dvipdfmx]{graphicx} 25 | \RequirePackage[dvipdfmx,table]{xcolor}%requires colortbl, array 26 | \RequirePackage{framed} 27 | \RequirePackage{wrapfig} 28 | \definecolor{shadecolor}{gray}{0.9} 29 | \definecolor{shadecolorb}{gray}{0.1} 30 | \definecolor{reviewgreen}{rgb}{0,0.4,0} 31 | \definecolor{reviewblue}{rgb}{0.2,0.2,0.4} 32 | \definecolor{reviewred}{rgb}{0.7,0,0} 33 | \definecolor{reviewdarkred}{rgb}{0.3,0,0} 34 | \RequirePackage[utf8]{inputenc} 35 | \RequirePackage{ascmac} 36 | \RequirePackage{float} 37 | \RequirePackage{alltt} 38 | \RequirePackage{amsmath} 39 | \RequirePackage{amssymb} 40 | \RequirePackage{amsthm} 41 | \RequirePackage{bm} 42 | \RequirePackage{tabularx} 43 | 44 | %% if you use @{} (underline), use jumoline.sty 45 | \IfFileExists{jumoline.sty}{ 46 | \RequirePackage{jumoline} 47 | } 48 | 49 | \long\def\review@ifempty#1{\expandafter\ifx\expandafter\relax\detokenize{#1}\relax\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} 50 | 51 | %% pass bbox setting to extractbb of graphicx 52 | \ifdefined\review@bbox 53 | \def\Gin@pagebox{\review@bbox} 54 | \fi 55 | 56 | \newenvironment{shadedb}{% 57 | \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolorb}}% 58 | \MakeFramed {\FrameRestore}}% 59 | {\endMakeFramed} 60 | 61 | \newcommand{\parasep}{\vspace*{3zh}} 62 | 63 | \RequirePackage{pxrubrica} 64 | \@ifpackagelater{pxrubrica}{2017/04/20}{% 65 | \rubysetup{J}}{% 66 | \rubysetup{g}} 67 | 68 | \ifthenelse{\equal{\review@documentclass}{utbook} \OR \equal{\review@documentclass}{tbook}}{% 69 | \newcommand{\headfont}{\gtfamily\sffamily\bfseries} 70 | \RequirePackage{plext} 71 | }{% 72 | } 73 | 74 | \ifdefined\review@highlightlatex 75 | \ifthenelse{\equal{\review@highlightlatex}{listings}}{% 76 | \ifthenelse{\equal{\review@language}{ja}}{% 77 | \RequirePackage{listings,plistings} 78 | }{% 79 | \RequirePackage{listings} 80 | }% 81 | \renewcommand{\lstlistingname}{\review@intn@list} 82 | \lstset{% 83 | breaklines=true,% 84 | breakautoindent=false,% 85 | breakindent=0pt,% 86 | fontadjust=true,% 87 | backgroundcolor=\color{shadecolor},% 88 | frame=single,% 89 | framerule=0pt,% 90 | basicstyle=\ttfamily\scriptsize,% 91 | commentstyle=\color{reviewgreen},% 92 | identifierstyle=\color{reviewblue},% 93 | stringstyle=\color{reviewred},% 94 | keywordstyle=\bfseries\color{reviewdarkred},% 95 | } 96 | \lstnewenvironment{reviewemlistlst}[1][]{\lstset{#1}}{} 97 | \lstnewenvironment{reviewemlistnumlst}[1][]{\lstset{numbers=left, #1}}{} 98 | \lstnewenvironment{reviewlistlst}[1][]{\lstset{#1}}{} 99 | \lstnewenvironment{reviewlistnumlst}[1][]{\lstset{numbers=left, #1}}{} 100 | \lstnewenvironment{reviewsourcelst}[1][]{\lstset{#1}}{} 101 | \lstnewenvironment{reviewsourcenumlst}[1][]{\lstset{numbers=left, #1}}{} 102 | \lstnewenvironment{reviewcmdlst}[1][]{\lstset{backgroundcolor=\color{white}, frameround=tttt, frame=trbl, #1}}{} 103 | }{% 104 | } 105 | \fi 106 | 107 | \newenvironment{reviewimage}{% 108 | \begin{figure} 109 | \begin{center}}{% 110 | \end{center} 111 | \end{figure}} 112 | 113 | \newenvironment{reviewdummyimage}{% 114 | \begin{figure} 115 | \begin{center}}{% 116 | \end{center} 117 | \end{figure}} 118 | 119 | \DeclareRobustCommand{\reviewincludegraphics}[2][]{% 120 | \includegraphics[#1]{#2}} 121 | 122 | \newcommand{\reviewequationcaption}[1]{% 123 | \medskip{\small\noindent #1}} 124 | \newenvironment{reviewequationblock}{\needspace{2\Cvs}}{} 125 | 126 | \newenvironment{reviewlistblock}{\needspace{2\Cvs}}{} 127 | 128 | \newenvironment{reviewemlist}{% 129 | \medskip\small\begin{shaded}\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{% 130 | \end{alltt}\end{shaded}} 131 | 132 | \newenvironment{reviewlist}{% 133 | \begin{shaded}\small\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{% 134 | \end{alltt}\end{shaded}\par\vspace*{0.5zw}} 135 | 136 | \newenvironment{reviewsource}{% 137 | \begin{shaded}\small\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{% 138 | \end{alltt}\end{shaded}\par\vspace*{0.5zw}} 139 | 140 | \newenvironment{reviewcmd}{% 141 | \color{white}\medskip\small\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\begin{shadedb}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{% 142 | \end{alltt}\end{shadedb}} 143 | 144 | \newenvironment{reviewbox}{% 145 | \medskip\small\begin{framed}\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\setlength{\baselineskip}{1.3zw}\begin{alltt}}{% 146 | \end{alltt}\end{framed}} 147 | 148 | \newenvironment{reviewtable}[1]{% 149 | \begin{center}\small\setlength{\baselineskip}{1.2zw} 150 | \begin{tabular}{#1}}{% 151 | \end{tabular} 152 | \end{center}} 153 | 154 | \newenvironment{reviewcolumn}[1][]{% 155 | \begin{framed} 156 | \reviewcolumnhead{}{#1} 157 | }{% 158 | \end{framed} 159 | \vspace{2zw}} 160 | 161 | \newcommand{\reviewcolumnhead}[2]{% 162 | {\noindent\large \review@intn@columnhead{}: #2}} 163 | 164 | \newcommand{\reviewtablecaption}[1]{% 165 | \caption{#1}} 166 | 167 | \WithSuffix\newcommand\reviewtablecaption*[1]{% 168 | \caption*{#1}} 169 | 170 | \newcommand\reviewimagecaption[1]{% 171 | \caption{#1}} 172 | 173 | \newcommand{\reviewimgtablecaption}[1]{% 174 | \caption{#1}\vspace{-3mm}} 175 | 176 | \newcommand{\reviewbackslash}[0]{% 177 | \textbackslash{}} 178 | 179 | \newcommand{\reviewlistcaption}[1]{% 180 | \medskip{\small\noindent #1}\vspace*{-1.3zw}} 181 | 182 | \newcommand{\reviewemlistcaption}[1]{% 183 | \medskip{\small\noindent #1}\vspace*{-1.3zw}} 184 | 185 | \newcommand{\reviewsourcecaption}[1]{% 186 | \medskip{\small\noindent #1}\vspace*{-1.3zw}} 187 | 188 | \newcommand{\reviewcmdcaption}[1]{% 189 | \medskip{\small\noindent #1}\vspace*{-1.3zw}} 190 | 191 | \newcommand{\reviewindepimagecaption}[1]{% 192 | \begin{center}#1\end{center}} 193 | 194 | \newcommand{\reviewboxcaption}[1]{% 195 | \medskip{\small\noindent #1}\vspace*{-1.3zw}} 196 | 197 | \newcommand{\reviewimageref}[2]{\review@intn@image #1} 198 | \newcommand{\reviewtableref}[2]{\review@intn@table #1} 199 | \newcommand{\reviewlistref}[1]{\review@intn@list #1} 200 | \newcommand{\reviewequationref}[1]{\review@intn@equation #1} 201 | \newcommand{\reviewbibref}[2]{\hyperref[#2]{#1}} 202 | \newcommand{\reviewcolumnref}[2]{#1}% XXX:ハイパーリンクにはreviewcolumn側の調整が必要 203 | \newcommand{\reviewchapref}[2]{\hyperref[#2]{#1}} 204 | \newcommand{\reviewsecref}[2]{\hyperref[#2]{#1}} 205 | 206 | \newenvironment{reviewpart}{% 207 | \setcounter{section}{0}% 208 | \renewcommand{\thesection}{\thepart.\@arabic\c@section}% 209 | }{} 210 | 211 | \newcommand{\reviewminicolumntitle}[1]{% 212 | \review@ifempty{#1}{}{% 213 | {\large \review@intn@memohead{}: #1}\\}} 214 | 215 | \renewcommand{\contentsname}{\review@toctitle} 216 | 217 | \newenvironment{reviewminicolumn}{% 218 | \vspace{1.5zw}\begin{screen}}{% 219 | \end{screen}\vspace{2zw}} 220 | 221 | \newenvironment{reviewnote}[1][]{% 222 | \begin{reviewminicolumn} 223 | \review@ifempty{#1}{}{\reviewminicolumntitle{#1}} 224 | }{\end{reviewminicolumn}} 225 | \newenvironment{reviewmemo}[1][]{% 226 | \begin{reviewminicolumn} 227 | \reviewminicolumntitle{#1} 228 | }{\end{reviewminicolumn}} 229 | \newenvironment{reviewtip}[1][]{% 230 | \begin{reviewminicolumn} 231 | \reviewminicolumntitle{#1} 232 | }{\end{reviewminicolumn}} 233 | \newenvironment{reviewinfo}[1][]{% 234 | \begin{reviewminicolumn} 235 | \reviewminicolumntitle{#1} 236 | }{\end{reviewminicolumn}} 237 | \newenvironment{reviewwarning}[1][]{% 238 | \begin{reviewminicolumn} 239 | \reviewminicolumntitle{#1} 240 | }{\end{reviewminicolumn}} 241 | \newenvironment{reviewimportant}[1][]{% 242 | \begin{reviewminicolumn} 243 | \reviewminicolumntitle{#1} 244 | }{\end{reviewminicolumn}} 245 | \newenvironment{reviewcaution}[1][]{% 246 | \begin{reviewminicolumn} 247 | \reviewminicolumntitle{#1} 248 | }{\end{reviewminicolumn}} 249 | \newenvironment{reviewnotice}[1][]{% 250 | \begin{reviewminicolumn} 251 | \reviewminicolumntitle{#1} 252 | }{\end{reviewminicolumn}} 253 | 254 | \DeclareRobustCommand{\reviewkw}[1]{\textbf{\textgt{#1}}} 255 | \DeclareRobustCommand{\reviewami}[1]{\mask{#1}{A}} 256 | \DeclareRobustCommand{\reviewem}[1]{\textbf{#1}} 257 | \DeclareRobustCommand{\reviewstrong}[1]{\textbf{#1}} 258 | \DeclareRobustCommand{\reviewballoon}[1]{←{#1}} 259 | \DeclareRobustCommand{\reviewunderline}[1]{\Underline{#1}} 260 | \DeclareRobustCommand{\reviewit}[1]{\textit{#1}} 261 | \DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}} 262 | 263 | % allow break line in tt 264 | % contributed by @zr_tex8r 265 | \g@addto@macro\pdfstringdefPreHook{% for PDF bookmarks 266 | \def\reviewami#1{#1} 267 | \def\reviewbreakall#1{#1} 268 | \def\reviewballoon#1{#1} 269 | \def\reviewbou#1{#1} 270 | \def\reviewkw#1{#1} 271 | \def\reviewinsert#1{#1} 272 | \def\reviewstrike#1{#1} 273 | \def\reviewunderline#1{#1} 274 | } 275 | \newif\ifreview@ba@break 276 | \def\review@ba@end{\review@ba@end@} 277 | \DeclareRobustCommand{\reviewbreakall}[1]{% 278 | \begingroup 279 | \review@ba@breakfalse 280 | \review@break@all@a#1\review@ba@end 281 | \endgroup 282 | } 283 | \def\review@break@all@a{% 284 | \futurelet\review@ba@tok\review@break@all@b 285 | } 286 | \def\review@break@all@b{% 287 | \ifx\review@ba@tok\review@ba@end 288 | \let\next\@gobble 289 | \else\ifx\review@ba@tok\@sptoken 290 | \let\next\review@break@all@c 291 | \else\ifx\review@ba@tok~% 292 | \let\next\review@break@all@d 293 | \else\ifx\review@ba@tok\bgroup 294 | \let\next\review@break@all@e 295 | \else 296 | \let\next\review@break@all@f 297 | \fi\fi\fi\fi 298 | \next 299 | } 300 | \expandafter\def\expandafter\review@break@all@c\space{% 301 | \space 302 | \review@ba@breakfalse 303 | \review@break@all@a 304 | } 305 | \def\review@break@all@d#1{% 306 | \review@break@all@f{\mbox{\space}}% 307 | } 308 | \def\review@break@all@e#1{% 309 | \review@break@all@f{{#1}}% 310 | } 311 | \def\review@break@all@f#1{% 312 | \ifreview@ba@break 313 | \hskip0pt plus 0.02em\relax 314 | \fi 315 | #1% 316 | \review@ba@breaktrue 317 | \review@break@all@a 318 | } 319 | \DeclareRobustCommand{\reviewtt}[1]{{\ttfamily\reviewbreakall{#1}}} 320 | \DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}} 321 | \DeclareRobustCommand{\reviewtti}[1]{{\ttfamily\itshape\reviewbreakall{#1}}} 322 | \DeclareRobustCommand{\reviewttb}[1]{{\ttfamily\bfseries\reviewbreakall{#1}}} 323 | 324 | \DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}} 325 | 326 | \DeclareRobustCommand{\reviewinsert}[1]{\Underline{#1}} 327 | \DeclareRobustCommand{\reviewstrike}[1]{\Midline{#1}} 328 | %%%% for ulem.sty: 329 | %%\renewcommand{\reviewstrike}[1]{\sout{#1}} 330 | 331 | \newcommand{\reviewth}[1]{\textgt{#1}} 332 | \newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily} 333 | \newcommand{\reviewmainfont}[0]{} 334 | \newcommand{\reviewcolophon}[0]{\clearpage} 335 | \newcommand{\reviewappendix}[0]{\appendix} 336 | 337 | \newcommand{\reviewprepartname}{\review@prepartname} 338 | \newcommand{\reviewpostpartname}{\review@postpartname} 339 | \newcommand{\reviewprechaptername}{\review@prechaptername} 340 | \newcommand{\reviewpostchaptername}{\review@postchaptername} 341 | \newcommand{\reviewfigurename}{\review@figurename} 342 | \newcommand{\reviewtablename}{\review@tablename} 343 | \newcommand{\reviewappendixname}{\review@appendixname} 344 | 345 | \ifdefined\prepartname 346 | \renewcommand{\prepartname}{\reviewprepartname} 347 | \fi 348 | \ifdefined\postpartname 349 | \renewcommand{\postpartname}{\reviewpostpartname} 350 | \fi 351 | \ifdefined\prechaptername 352 | \renewcommand{\prechaptername}{\reviewprechaptername} 353 | \fi 354 | \ifdefined\postchaptername 355 | \renewcommand{\postchaptername}{\reviewpostchaptername} 356 | \fi 357 | \ifdefined\figurename 358 | \renewcommand{\figurename}{\reviewfigurename} 359 | \fi 360 | \ifdefined\tablename 361 | \renewcommand{\tablename}{\reviewtablename} 362 | \fi 363 | \ifdefined\appendixname 364 | \renewcommand{\appendixname}{\reviewappendixname} 365 | \fi 366 | 367 | % PDF meta information 368 | \def\recls@tmp{ebook}\ifx\recls@cameraready\recls@tmp 369 | \hypersetup{ 370 | pdftitle={\review@booktitlename}, 371 | pdfauthor={\ifdefined\review@autnames\review@autnames\fi}, 372 | pdfcreator={Re:VIEW \review@reviewversion, with LaTeX} 373 | } 374 | \else 375 | \newcommand*\PDFDocumentInformation[1]{% 376 | \AtBeginShipoutFirst{\special{pdf:docinfo <<#1>>}}} 377 | \@onlypreamble\PDFDocumentInformation 378 | 379 | % for non hyperref. escaped character will be displayed funny... 380 | \PDFDocumentInformation{ 381 | /Title (\review@booktitlename) 382 | \ifdefined\review@autnames /Author (\review@autnames)\fi 383 | % /Subject () 384 | % /Keywords (,,) 385 | /Creator (Re:VIEW \review@reviewversion, with LaTeX) 386 | } 387 | \fi 388 | 389 | %% maxwidth is the original width if it is less than linewidth 390 | %% otherwise use linewidth (to make sure the graphics do not exceed the margin) 391 | \def\maxwidth{% 392 | \ifdim\Gin@nat@width>\linewidth 393 | \linewidth 394 | \else 395 | \Gin@nat@width 396 | \fi 397 | } 398 | 399 | % hooks 400 | \def\reviewbegindocumenthook{} 401 | 402 | \def\reviewenddocumenthook{} 403 | 404 | \def\reviewfrontmatterhook{% 405 | \renewcommand{\chaptermark}[1]{{}} 406 | \frontmatter 407 | } 408 | 409 | \def\reviewmainmatterhook{% 410 | \renewcommand{\chaptermark}[1]{\markboth{\prechaptername\thechapter\postchaptername~##1}{}} 411 | \mainmatter 412 | } 413 | 414 | \def\reviewappendixhook{% 415 | \renewcommand{\chaptermark}[1]{\markboth{\appendixname\thechapter~##1}{}} 416 | \reviewappendix 417 | } 418 | 419 | \def\reviewbackmatterhook{% 420 | \backmatter 421 | } 422 | 423 | % cover 424 | \newcommand*\covermatter{% 425 | \ifdefined\review@usecovernombre% 426 | \pagenumbering{coverpagezero} 427 | \setcounter{page}{0}% force to even page, to avoid empty page 428 | \fi 429 | } 430 | 431 | \if@reclscover 432 | \ifdefined\review@coverimage 433 | \ifrecls@coverfitpage 434 | \def\review@coverimageoption{width=\paperwidth,height=\paperheight} 435 | \fi 436 | \def\reviewcoverpagecont{% 437 | \expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage} 438 | \cleardoublepage 439 | } 440 | \fi 441 | \ifdefined\review@coverfile 442 | \def\reviewcoverpagecont{\review@coverfile} 443 | \fi 444 | \fi 445 | 446 | % titlepage 447 | \ifdefined\review@titlepage 448 | \ifthenelse{\isundefined{\review@titlefile}}{% 449 | \def\reviewtitlepagecont{% 450 | \begin{titlepage} 451 | \thispagestyle{empty} 452 | \begin{center}% 453 | \mbox{} \vskip5zw 454 | \reviewtitlefont% 455 | {\Huge\review@booktitlename\par}% 456 | \ifdefined\review@subtitlename 457 | \vskip 1em% 458 | {\Large\review@subtitlename\par}% 459 | \fi 460 | \vskip 15em% 461 | {\huge 462 | \lineskip .75em 463 | \begin{tabular}[t]{p{\textwidth}}% 464 | \centering\review@titlepageauthors 465 | \end{tabular}\par}% 466 | \vfill 467 | {\large\review@date \review@intn@edition\hspace{2zw}\review@intn@publishedby\par}% 468 | \vskip4zw\mbox{} 469 | \end{center}% 470 | \end{titlepage}\clearpage 471 | } 472 | }{% 473 | \def\reviewtitlepagecont{\review@titlefile} 474 | } 475 | \fi 476 | 477 | % toc 478 | \ifdefined\review@toc 479 | \def\reviewtableofcontents{% 480 | \setcounter{tocdepth}{\review@tocdepth} 481 | \tableofcontents 482 | } 483 | \fi 484 | 485 | % index 486 | \ifdefined\review@makeindex 487 | \RequirePackage{makeidx} 488 | \makeindex 489 | \fi 490 | 491 | \ifdefined\review@makeindex 492 | \def\reviewprintindex{% 493 | \printindex 494 | } 495 | \fi 496 | 497 | % colophon 498 | \ifdefined\review@colophon 499 | \ifthenelse{\isundefined{\review@colophonfile}}{% 500 | \def\reviewcolophonpagecont{% 501 | \reviewcolophon 502 | \thispagestyle{empty} 503 | \vspace*{\fill} 504 | {\noindent\reviewtitlefont\Large\review@booktitlename}\\ 505 | \ifdefined\review@subtitlename 506 | {\noindent\reviewtitlefont\large\review@subtitlename} \\ 507 | \fi 508 | \rule[8pt]{\textwidth}{1pt} \\ 509 | {\noindent\review@pubhistories} 510 | 511 | \begin{tabularx}{\dimexpr\textwidth-0.5em}{lX} 512 | \review@colophonnames 513 | \end{tabularx} 514 |  \\ 515 | \rule[0pt]{\textwidth}{1pt} \\ 516 | \ifdefined\review@rights 517 | \review@rights 518 | \fi 519 | }% 520 | }{% 521 | \def\reviewcolophonpagecont{\review@colophonfile} 522 | } 523 | \fi 524 | 525 | \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}} 526 | \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}} 527 | \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}} 528 | -------------------------------------------------------------------------------- /src/sty/review-custom.sty: -------------------------------------------------------------------------------- 1 | % for user-defined macro 2 | 3 | % セクションページのタイトルの余白削除 4 | \def\@makechapterhead#1{% 5 | \vspace*{-1\Cvs}% 欧文は50pt 6 | {\parindent \z@ \raggedright \normalfont 7 | \ifnum \c@secnumdepth >\m@ne 8 | \if@mainmatter 9 | \huge\headfont \@chapapp\thechapter\@chappos 10 | \par\nobreak 11 | \vskip \Cvs % 欧文は20pt 12 | \fi 13 | \fi 14 | \interlinepenalty\@M 15 | \Huge \headfont #1\par\nobreak 16 | \vskip 3\Cvs}} % 欧文は40pt 17 | 18 | % ヘッダーからセクション表示を削除 19 | \renewcommand{\sectionmark}[1]{} 20 | 21 | % ページ番号の中央寄せ 22 | %% 通常ページ 23 | \fancyfoot[LE,RO]{} 24 | \fancyfoot[C]{\thepage} 25 | 26 | %% チャプターページ 27 | \fancypagestyle{plainhead}{% 28 | \fancyhead{} 29 | \fancyfoot{} % clear all header and footer fields 30 | \fancyfoot[C]{\thepage} 31 | \renewcommand{\headrulewidth}{0pt} 32 | \renewcommand{\footrulewidth}{0pt}} 33 | 34 | % list, cmdのデザイン変更 35 | \usepackage[most]{tcolorbox} 36 | \tcbuselibrary{breakable} 37 | \renewenvironment{shaded}{ 38 | \vspace{\baselineskip} 39 | \begin{tcolorbox}[breakable, enhanced jigsaw, colback=black!10!white, colframe=black!10!white, arc=1truemm, outer arc=1truemm]} 40 | {\end{tcolorbox}} 41 | \renewenvironment{shadedb}{ 42 | \vspace{\baselineskip} 43 | \begin{tcolorbox}[breakable, enhanced jigsaw, colback=black!80!white, colframe=black, colupper=white, sharp corners]} 44 | {\end{tcolorbox}} 45 | 46 | % columnのデザイン変更 47 | \renewcommand{\reviewcolumnhead}[2]{% 48 | {\noindent\large ■#2}} 49 | 50 | \renewenvironment{reviewcolumn}[1][]{% 51 | \vspace{\baselineskip} 52 | \begin{tcolorbox}[breakable, colback=white, colframe=black!40!white, arc=1.5truemm, outer arc=1.8truemm, boxsep=5truemm] 53 | \setlength{\parindent}{1zw}% 54 | \reviewcolumnhead{}{#1} 55 | \vspace{1zw} 56 | }{% 57 | \end{tcolorbox} 58 | \vspace{\baselineskip} 59 | } 60 | 61 | % [ad-hoc] a trick to put upstyle single quotes literally in PDF 62 | \begingroup 63 | \catcode`'=\active 64 | \catcode``=\active 65 | \g@addto@macro\@noligs{% 66 | \def\review@tt@textquotesingle{{\fontfamily{\ttdefault}\textquotesingle}}% 67 | \def\review@tt@textasciigrave{{\fontfamily{\ttdefault}\textasciigrave}}% 68 | \let'\review@tt@textquotesingle 69 | \let`\review@tt@textasciigrave}% 70 | \endgroup 71 | 72 | % jsbookのスタイルのオーバーライド 73 | % 見出しレベル5以上のときに見出しの後ろが改行されない問題を修正 74 | \if@twocolumn 75 | \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% 76 | {\z@}{.2\Cvs}% 改行有りに変更 77 | {\normalfont\normalsize\headfont}} 78 | \else 79 | \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% 80 | {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 81 | {.2\Cvs}% 改行有りに変更 82 | {\normalfont\normalsize\headfont}} 83 | \fi 84 | \if@twocolumn 85 | \renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% 86 | {\z@}{\z@}% 改行有りに変更 87 | {\normalfont\normalsize\headfont\jsParagraphMark}} 88 | \else 89 | \renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% 90 | {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% 91 | {\z@}% 改行有りに変更 92 | {\normalfont\normalsize\headfont\jsParagraphMark}} 93 | \fi 94 | -------------------------------------------------------------------------------- /src/sty/review-jsbook.cls: -------------------------------------------------------------------------------- 1 | %#!ptex2pdf -l -u -ot '-synctex=1' test-rejsbk 2 | % Copyright (c) 2018-2021 Munehiro Yamamoto, Kenshi Muto. 3 | % 4 | % Permission is hereby granted, free of charge, to any person obtaining a copy 5 | % of this software and associated documentation files (the "Software"), to deal 6 | % in the Software without restriction, including without limitation the rights 7 | % to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | % copies of the Software, and to permit persons to whom the Software is 9 | % furnished to do so, subject to the following conditions: 10 | % 11 | % The above copyright notice and this permission notice shall be included in 12 | % all copies or substantial portions of the Software. 13 | % 14 | % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | % IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | % FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | % AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | % LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | % THE SOFTWARE. 21 | 22 | \IfFileExists{plautopatch.sty}{\RequirePackage{plautopatch}}{} 23 | \NeedsTeXFormat{pLaTeX2e} 24 | \ProvidesClass{review-jsbook} 25 | [2021/01/12 v5.1 Re:VIEW pLaTeX class modified for jsbook.cls] 26 | 27 | \def\recls@error{\ClassError{review-jsbook}} 28 | \def\recls@warning{\ClassWarning{review-jsbook}} 29 | \def\recls@warningnoline{\ClassWarningNoLine{review-jsbook}} 30 | \def\recls@info{\ClassInfo{review-jsbook}} 31 | 32 | %% hook at end of reviewmacro 33 | \let\@endofreviewmacrohook\@empty 34 | \def\AtEndOfReVIEWMacro{% 35 | \g@addto@macro\@endofreviewmacrohook} 36 | \@onlypreamble\AtEndOfReVIEWMacro 37 | 38 | %% fixes to LaTeX2e 39 | \RequirePackage{fix-cm}%%\RequirePackage{fix-cm,exscale} 40 | \IfFileExists{latexrelease.sty}{}{\RequirePackage{fixltx2e}} 41 | 42 | %% graphicx: added nosetpagesize 43 | \IfFileExists{platexrelease.sty}{%% is bundled in TL16 or higher release version 44 | \PassOptionsToPackage{nosetpagesize}{graphicx}%%for TL16 or higher version 45 | }{} 46 | 47 | \RequirePackage{xkeyval,everypage}%%,etoolbox 48 | 49 | %% useful helpers 50 | \newcommand\recls@get@p@[2]{% 51 | \edef#2{\expandafter\@recls@GET@P@\the#1}} 52 | {\catcode`p=12\catcode`t=12\gdef\@recls@GET@P@#1pt{#1}}% 53 | 54 | \long\def\recls@ifempty#1{% 55 | \expandafter\ifx\expandafter\relax\detokenize{#1}\relax\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} 56 | % \long\def\recls@ifempty#1{\recls@xifempty#1@@..\@nil} 57 | % \long\def\recls@xifempty#1#2@#3#4#5\@nil{% 58 | % \ifx#3#4\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} 59 | \long\def\recls@ifnotempty#1{\recls@ifempty{#1}{}} 60 | 61 | \newcommand*{\recls@DeclareOption}[2]{% 62 | \DeclareOptionX{#1}{% 63 | \recls@ifempty{##1}{}{% 64 | \ClassError{recls}{The option #1 should have no value}{\@ehc}}% 65 | #2}} 66 | 67 | %% define/set specific paper(s) for review-jsbook.cls 68 | \def\recls@define@paper#1#2{% 69 | %% \paper@=> :x+ 70 | \@namedef{recls@paper@#1}{#1#2}% 71 | } 72 | 73 | \def\recls@set@paper#1{% 74 | \@ifundefined{recls@paper@#1}{% 75 | \recls@error{Not define such paper: #1}}\relax 76 | \expandafter\expandafter\expandafter 77 | \@recls@set@paper\expandafter\expandafter\expandafter 78 | {\csname recls@paper@#1\endcsname}} 79 | \def\@recls@set@paper#1{% 80 | \edef\recls@set@js@paper{#1}% 81 | \PassOptionsToClass{\recls@set@js@paper}{jsbook}} 82 | 83 | \recls@define@paper{a3}{paper} 84 | \recls@define@paper{a4}{paper} 85 | \recls@define@paper{a5}{paper} 86 | \recls@define@paper{a6}{paper} 87 | \recls@define@paper{b4}{paper} 88 | \recls@define@paper{b5}{paper} 89 | \recls@define@paper{b6}{paper} 90 | \recls@define@paper{a4var}{} 91 | \recls@define@paper{b5var}{} 92 | \recls@define@paper{letter}{paper} 93 | \recls@define@paper{legal}{paper} 94 | \recls@define@paper{executive}{paper} 95 | 96 | %% define/set specific fontsize 97 | \def\recls@define@fontsize#1{% 98 | \@namedef{recls@fontsize@#1}{#1}} 99 | 100 | \def\recls@set@fontsize#1{% 101 | \@ifundefined{recls@fontsize@#1}{% 102 | \recls@set@customfontsize{#1}}{\@recls@set@fontsize{#1}}} 103 | \def\@recls@set@fontsize#1{% 104 | \expandafter\expandafter\expandafter 105 | \@@recls@set@fontsize\expandafter\expandafter\expandafter 106 | {\csname recls@fontsize@#1\endcsname}} 107 | \def\@@recls@set@fontsize#1{% 108 | \edef\recls@jsfontsize{#1}% 109 | \ifdim\recls@jsfontsize=\recls@fontsize\else 110 | \recls@warning{jsbook.cls has no such fontsize '\recls@fontsize'.^^J 111 | pass through '\recls@jsfontsize' option to jsbook.cls}% 112 | \fi 113 | \PassOptionsToClass{\recls@jsfontsize}{jsbook}} 114 | 115 | %% NOTE: カスタムフォントサイズの対応は、事実上、止めることにしました。 116 | \def\recls@set@customfontsize#1{% 117 | \setlength{\@tempdima}{#1}% 118 | \ifdim\@tempdima<8.5pt\recls@set@fontsize{8pt}% 119 | \else\ifdim\@tempdima<9.5pt\recls@set@fontsize{9pt}% 120 | \else\ifdim\@tempdima<10.5pt\recls@set@fontsize{10pt}% 121 | \else\ifdim\@tempdima<11.5pt\recls@set@fontsize{11pt}% 122 | \else\ifdim\@tempdima<12.5pt\recls@set@fontsize{12pt}% 123 | \else\ifdim\@tempdima<13pt\recls@set@fontsize{14pt}% 124 | \else\ifdim\@tempdima<18.5pt\recls@set@fontsize{17pt}% 125 | \else\ifdim\@tempdima<20.5pt\recls@set@fontsize{20pt}% 126 | \else\ifdim\@tempdima<23pt\recls@set@fontsize{21pt}% 127 | \else\ifdim\@tempdima<27.5pt\recls@set@fontsize{25pt}% 128 | \else\ifdim\@tempdima<33pt\recls@set@fontsize{30pt}% 129 | \else\ifdim\@tempdima<39.5pt\recls@set@fontsize{36pt}% 130 | \else\recls@set@fontsize{43pt}% 131 | \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi 132 | } 133 | 134 | \@for\recls@tmp:={% 135 | 8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt,21pt,25pt,30pt,36pt,43pt,12Q,14Q,% 136 | 10ptj,10.5ptj,11ptj,12ptj}\do{% 137 | \expandafter\recls@define@fontsize\expandafter{\recls@tmp}} 138 | 139 | %% disable some options of jsbook.cls 140 | \def\recls@disable@jsopt#1{% 141 | \recls@DeclareOption{#1}{\recls@error{option #1: not available}}} 142 | 143 | \@for\recls@tmp:={% 144 | a4j,a5j,b4j,b5j,winjis,mingoth}\do{% 145 | \expandafter\recls@disable@jsopt\expandafter{\recls@tmp}} 146 | 147 | %% \recls@set@tombowpaper{} 148 | \def\recls@set@tombowpaper#1{% 149 | \xdef#1{\ifx\recls@hiddenfolio\@empty tombo,\fi#1}} 150 | 151 | %% \recls@set@hiddenfolio{} 152 | %% : default, marusho-ink (丸正インキ), nikko-pc (日光企画), 153 | %% shippo (ねこのしっぽ) 154 | \def\recls@set@hiddenfolio#1{\ifx#1\@empty\else 155 | \@ifundefined{@makehiddenfolio@#1}{% 156 | \recls@error{Not define such hiddenfolio: #1}}\relax 157 | %% set hiddenfolio preset 158 | \expandafter\let\expandafter\@makehiddenfolio\csname @makehiddenfolio@#1\endcsname 159 | %% redefine to output \@makehiddenfolio for every page 160 | \settombowbanner{\hskip-5mm\smash{\hiddenfolio@font\@makehiddenfolio}}% 161 | \AddEverypageHook{\maketombowbox}% 162 | \fi} 163 | 164 | \def\hiddenfolio@font{\reset@font 165 | \scriptsize\sffamily\baselineskip.8\baselineskip} 166 | 167 | %% hiddenfolio=default 168 | \@namedef{@makehiddenfolio@default}{% 169 | \ifodd\c@page 170 | \llap{\thepage\hspace{\dimexpr\@tombowbleed}}% 171 | \else 172 | \rlap{\hspace{\dimexpr\paperwidth+\@tombowbleed}\thepage}% 173 | \fi} 174 | 175 | %% hiddenfolio=marusho-ink 176 | \@namedef{@makehiddenfolio@marusho-ink}{% 177 | \gdef\recls@tombobleed{5mm}% 178 | \@nameuse{@makehiddenfolio@nikko-pc}} 179 | 180 | %% hiddenfolio=nikko-pc 181 | \@namedef{@makehiddenfolio@nikko-pc}{% 182 | \def\recls@hiddfolio{% 183 | \edef\recls@tmp{\thepage}% 184 | \lower\dimexpr4pt+\@tombowbleed+.5\paperheight+5\p@\hbox{% 185 | \vbox{\expandafter\@tfor\expandafter\recls@x\expandafter:\expandafter=\recls@tmp\do{% 186 | \hbox to 1zw{\hss\recls@x\hss}}}}}% 187 | \ifodd\c@page 188 | \rlap{\recls@hiddfolio}% 189 | \else 190 | \llap{\recls@hiddfolio\hspace{-\paperwidth}}% 191 | \fi} 192 | 193 | %% hiddenfolio=shippo 194 | \@namedef{@makehiddenfolio@shippo}{% 195 | \@nameuse{@makehiddenfolio@nikko-pc}} 196 | 197 | 198 | %% media=print,ebook,preview 199 | \newif\if@cameraready \@camerareadyfalse 200 | \newif\if@pdfhyperlink \@pdfhyperlinkfalse 201 | \DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}} 202 | \DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}} 203 | 204 | %% 用紙 205 | \DeclareOptionX{paper}[a4]{\gdef\recls@paper{#1}} 206 | \DeclareOptionX{tombopaper}{% 207 | \gdef\recls@tombowopts{}%%default: auto-detect 208 | \ifx#1\@empty\else\gdef\recls@tombowopts{tombow-#1}\fi} 209 | \DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}} 210 | %% 隠しノンブルプリセット 211 | \DeclareOptionX{hiddenfolio}{\gdef\recls@hiddenfolio{#1}}%%default: (none) 212 | %% カスタム用紙サイズ 213 | \DeclareOptionX{paperwidth}{\gdef\recls@paperwidth{#1}} 214 | \DeclareOptionX{paperheight}{\gdef\recls@paperheight{#1}} 215 | %% 基本版面、天、ノド 216 | \DeclareOptionX{fontsize}[10pt]{\gdef\recls@fontsize{#1}} 217 | \DeclareOptionX{line_length}{\gdef\recls@line@length{#1}}%%ベタ組みになるように調整 218 | \DeclareOptionX{number_of_lines}{\gdef\recls@number@of@lines{#1}} 219 | \DeclareOptionX{baselineskip}{\def\recls@baselineskip{#1}} 220 | \DeclareOptionX{linegap}{\def\recls@linegap{#1}} 221 | \DeclareOptionX{head_space}{\gdef\recls@head@space{#1}} 222 | \DeclareOptionX{gutter}{\gdef\recls@gutter{#1}} 223 | %% headheight,headsep,footskip 224 | \DeclareOptionX{headheight}{\gdef\recls@headheight{#1}} 225 | \DeclareOptionX{headsep}{\gdef\recls@headsep{#1}} 226 | \DeclareOptionX{footskip}{\gdef\recls@footskip{#1}} 227 | 228 | %% 表紙・開始番号・通しノンブル 229 | \newif\if@reclscover \@reclscovertrue 230 | \newif\ifrecls@coverfitpage \recls@coverfitpagefalse 231 | \newif\ifrecls@serialpage \recls@serialpagefalse 232 | \DeclareOptionX{cover}[\@empty]{\gdef\recls@forcecover{#1}} 233 | \DeclareOptionX{cover_fit_page}[false]{\csname recls@coverfitpage#1\endcsname} 234 | \DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr#1}} 235 | \DeclareOptionX{serial_pagination}[false]{\csname recls@serialpage#1\endcsname} 236 | 237 | \PassOptionsToClass{dvipdfmx,nomag}{jsbook} 238 | \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{jsbook}}% 239 | \ExecuteOptionsX{cameraready,media,hiddenfolio,% 240 | paper,tombopaper,bleed_margin,paperwidth,paperheight,% 241 | fontsize,line_length,number_of_lines,baselineskip,linegap,head_space,% 242 | gutter,headheight,headsep,footskip,% 243 | cover,startpage,serial_pagination} 244 | \ProcessOptionsX\relax 245 | 246 | %% set specific papersize, fontsize 247 | \recls@set@paper{\recls@paper} 248 | \recls@set@tombowpaper{\recls@tombowopts} 249 | \recls@set@fontsize{\recls@fontsize} 250 | 251 | %% camera-ready PDF file preparation for each print, ebook 252 | \def\recls@tmp{preview}\ifx\recls@cameraready\recls@tmp 253 | \@camerareadyfalse\@pdfhyperlinkfalse\@reclscovertrue 254 | \PassOptionsToClass{papersize}{jsbook}% 255 | \else\def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp 256 | \@camerareadytrue\@pdfhyperlinkfalse\@reclscoverfalse 257 | \IfFileExists{gentombow.sty}{% 258 | \AtEndOfClass{% 259 | \RequirePackage[pdfbox,\recls@tombowopts]{gentombow}% 260 | \settombowbleed{\recls@tombobleed}% 261 | \recls@set@hiddenfolio{\recls@hiddenfolio}}% 262 | }{\recls@warning{% 263 | package gentombow: not installed^^J 264 | option tombopaper: not available}% 265 | \PassOptionsToClass{tombo}{jsbook}% 266 | }% 267 | \else\def\recls@tmp{ebook}\ifx\recls@cameraready\recls@tmp 268 | \@camerareadytrue\@pdfhyperlinktrue\@reclscovertrue 269 | \PassOptionsToClass{papersize}{jsbook}% 270 | \else 271 | \recls@error{No such value of media: \recls@cameraready}% 272 | \fi\fi\fi 273 | 274 | %% 内部Unicode動作の時だけupTeXとみなす 275 | \newif\if@recls@uptex \@recls@uptexfalse 276 | \ifx\ucs\@undefined\else \ifnum\ucs"3000="3000 277 | \@recls@uptextrue 278 | \PassOptionsToClass{uplatex}{jsbook} 279 | \PassOptionsToPackage{uplatex}{otf} 280 | \fi\fi 281 | 282 | \LoadClass{jsbook} 283 | 284 | % \typeout{!!! magscale: \jsc@magscale} 285 | % \typeout{!!! mag: \the\mag}%%=> 1000 -> OK 286 | 287 | %% override papersize with custom papersize 288 | \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else 289 | \setlength{\paperwidth}{\recls@paperwidth} 290 | \setlength{\paperheight}{\recls@paperheight} 291 | \def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp\else 292 | \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}} 293 | \fi 294 | \fi\fi 295 | 296 | %% baseline 297 | \ifx\recls@linegap\@empty\else 298 | \setlength{\baselineskip}{\dimexpr\Cwd+\recls@linegap} 299 | \renewcommand{\normalsize}{% 300 | \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt 301 | \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 302 | \abovedisplayshortskip \z@ \@plus3\jsc@mpt 303 | \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 304 | \belowdisplayshortskip \belowdisplayskip 305 | \let\@listi\@listI} 306 | \normalsize 307 | \fi 308 | \ifx\recls@baselineskip\@empty\else 309 | \setlength{\baselineskip}{\recls@baselineskip} 310 | \renewcommand{\normalsize}{% 311 | \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt 312 | \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 313 | \abovedisplayshortskip \z@ \@plus3\jsc@mpt 314 | \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt 315 | \belowdisplayshortskip \belowdisplayskip 316 | \let\@listi\@listI} 317 | \normalsize 318 | \fi 319 | \setlength{\Cvs}{\baselineskip} 320 | 321 | %% headheight, headsep, footskip 322 | % \setlength\topskip{\Cht}%%<= カスタムにしても、jsbook.clsのままにしとく 323 | \ifx\recls@headheight\@empty\else\setlength\headheight{\recls@headheight}\fi 324 | \ifx\recls@headsep\@empty\else\setlength\headsep{\recls@headsep}\fi 325 | \ifx\recls@footskip\@empty\else\setlength\footskip{\recls@footskip}\fi 326 | % \setlength\maxdepth{.5\topskip}%%<= カスタムにしても、jsbook.clsのままにしとく 327 | 328 | %% 字詰め数、行数 329 | \ifx\recls@line@length\@empty\else 330 | \@tempcnta\dimexpr\recls@line@length/\Cwd\relax 331 | \setlength\textwidth{\@tempcnta\Cwd} 332 | \setlength\fullwidth{\textwidth} 333 | \fi 334 | \ifx\recls@number@of@lines\@empty\else 335 | \setlength\textheight{\recls@number@of@lines\Cvs} 336 | \addtolength\textheight{-\Cvs}\addtolength\textheight{\Cwd} 337 | \addtolength\textheight{\dimexpr\topskip-\Cht}%%adjustment for jsbook.cls's \topskip 338 | \fi 339 | 340 | %% ノド、小口 341 | %% gutterがあればそれに基づいて設定。 342 | %% line_lengthが指定されていればtextwidth基準にして設定。 343 | %% どちらも指定がなければjsbookをそのまま使用。 344 | \ifx\recls@gutter\@empty 345 | \ifx\recls@line@length\@empty\else 346 | \setlength\oddsidemargin{\paperwidth} 347 | \addtolength\oddsidemargin{-\fullwidth}%%line_lengthを与えたとき\textwidth 348 | \setlength\oddsidemargin{.5\oddsidemargin} 349 | \addtolength\oddsidemargin{-1in} 350 | \setlength\evensidemargin{\oddsidemargin} 351 | \edef\recls@gutter{\evensidemargin} 352 | \fi 353 | \else 354 | \setlength\oddsidemargin{\recls@gutter}%ノド 355 | \addtolength\oddsidemargin{-1in} 356 | \setlength\evensidemargin{\paperwidth} 357 | \addtolength\evensidemargin{-2in} 358 | \addtolength\evensidemargin{-\oddsidemargin} 359 | \addtolength\evensidemargin{-\textwidth} 360 | \fi 361 | 362 | %% 天、地 363 | \ifx\recls@head@space\@empty 364 | \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else 365 | \setlength\topmargin\paperheight 366 | \addtolength\topmargin{-\textheight} 367 | \setlength\topmargin{.5\topmargin} 368 | \addtolength\topmargin{-1in} 369 | \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep} 370 | \fi\fi 371 | \ifx\recls@number@of@lines\@empty\else 372 | \setlength\topmargin\paperheight 373 | \addtolength\topmargin{-\textheight} 374 | \setlength\topmargin{.5\topmargin} 375 | \addtolength\topmargin{-1in} 376 | \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep} 377 | \fi 378 | \edef\recls@head@space{\dimexpr\topmargin+1in+\headheight+\headsep} 379 | \else 380 | \setlength\topmargin{\recls@head@space}%天 381 | \addtolength\topmargin{-1in} 382 | \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep} 383 | \fi 384 | 385 | %% load hyperref package 386 | \RequirePackage[dvipdfmx, \if@pdfhyperlink\else draft,\fi 387 | bookmarks=true, 388 | bookmarksnumbered=true, 389 | hidelinks, 390 | setpagesize=false, 391 | ]{hyperref} 392 | \RequirePackage{pxjahyper} 393 | 394 | %% more useful macros 395 | %% ---------- 396 | %% include fullpage graphics 397 | \let\grnchry@head\recls@head@space 398 | \let\grnchry@gutter\recls@gutter 399 | \newcommand*\includefullpagegraphics{% 400 | \clearpage 401 | \@ifstar 402 | {\@includefullpagegraphics}% 403 | {\thispagestyle{empty}\@includefullpagegraphics} 404 | } 405 | 406 | \newcommand*\@includefullpagegraphics[2][]{% 407 | \vbox to \textheight{% 408 | \vskip-\grnchry@head 409 | \vbox to \paperheight{\vss 410 | \hbox to \textwidth{% 411 | \ifodd\c@page 412 | \hskip-\dimexpr\oddsidemargin + 1in\relax 413 | \else 414 | \hskip-\dimexpr\evensidemargin + 1in\relax 415 | \fi 416 | \hbox to \paperwidth{\hss 417 | \includegraphics[#1]{#2}% 418 | \hss}% 419 | \hss}% 420 | \vss}% 421 | \vss}% 422 | \clearpage 423 | } 424 | 425 | %% 空ページ 426 | \newcommand\oneblankpage{\clearpage\thispagestyle{empty}% 427 | \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi} 428 | 429 | %% 横書き向けの、奇数ページまでの改丁(\cleardoublepage)・偶数ページまでの改丁(\clearoddpage) 430 | \let\cleardoublepage@right\cleardoublepage 431 | \def\cleardoublepage@left{\clearpage\if@twoside\ifodd\c@page 432 | \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} 433 | \let\clearoddpage\cleardoublepage@left 434 | 435 | %% 行のサンプル。\makelines{行数} で「■□■□…」からなる行を指定行数配置する 436 | \def\makelines#1{% 437 | \@tempcnta\z@\relax 438 | \def\@makeline@f@size{\f@size}% 439 | \@whilenum\@tempcnta<#1\do{% 440 | \advance\@tempcnta\@ne\relax 441 | \noindent\rlap{\the\@tempcnta}\nobreak 442 | \makelines@neline\par}% 443 | } 444 | \def\makelines@unit@#10#2\relax{% 445 | \ifx!#2!\relax □\else\relax ■\fi}% 446 | \newcounter{makelines@unit} 447 | \def\makelines@neline{% 448 | \c@makelines@unit\@ne 449 | \@whilenum\c@makelines@unit<\dimexpr(\textwidth + \Cwd)/\Cwd\do{% 450 | \expandafter\makelines@unit@\the\c@makelines@unit0\relax 451 | \advance\c@makelines@unit\@ne}% 452 | } 453 | 454 | %% coverオプションによる表紙判定の上書き 455 | \def\recls@tmp{true}\ifx\recls@forcecover\recls@tmp 456 | \@reclscovertrue 457 | \else\def\recls@tmp{false}\ifx\recls@forcecover\recls@tmp 458 | \@reclscoverfalse 459 | \else% それ以外の値は単に無視 460 | \fi\fi 461 | 462 | %% シンプルな通しノンブル 463 | \ifrecls@serialpage 464 | \def\pagenumbering#1{% 465 | \gdef\thepage{\csname @arabic\endcsname\c@page}} 466 | \fi 467 | 468 | %% 開始ページを変更 469 | \g@addto@macro\frontmatter{\setcounter{page}{\the\recls@startpage}} 470 | 471 | %% titlepageのsetcounterを使わない 472 | \renewenvironment{titlepage}{% 473 | \clearpage 474 | \if@twoside\ifodd\c@page\else 475 | \hbox{}\thispagestyle{empty}\newpage 476 | \if@twocolumn\hbox{}\newpage\fi 477 | \fi\fi 478 | \if@twocolumn 479 | \@restonecoltrue\onecolumn 480 | \else 481 | \@restonecolfalse\newpage 482 | \fi 483 | \thispagestyle{empty}% 484 | \ifodd\c@page\relax%% \setcounter{page}\@ne 485 | \else\setcounter{page}\z@\fi %% 2017-02-24 486 | }% 487 | {\if@restonecol\twocolumn \else \newpage \fi 488 | \if@twoside\else 489 | %% \setcounter{page}\@ne 490 | \fi} 491 | 492 | %% 表紙のノンブル 493 | \def\coverpagezero#1{\expandafter\@coverpagezero\csname c@#1\endcsname} 494 | \def\@coverpagezero#1{cover} 495 | 496 | %% 脚注がページをまたいで泣き別れさせない 497 | \interfootnotelinepenalty\@M 498 | 499 | %% 代替定義 500 | \def\reviewleftcurlybrace{\{} 501 | \def\reviewrightcurlybrace{\}} 502 | 503 | \listfiles 504 | \endinput 505 | -------------------------------------------------------------------------------- /src/sty/review-style.sty: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \ProvidesPackage{review-style}[2021/01/06] 3 | 4 | \RequirePackage{fancyhdr} 5 | \pagestyle{fancy} 6 | \lhead{\gtfamily\sffamily\bfseries\upshape \leftmark} 7 | \chead{} 8 | \rhead{\gtfamily\sffamily\bfseries\upshape \rightmark} 9 | \fancyfoot{} % clear all header and footer fields 10 | \fancyfoot[LE,RO]{\thepage} 11 | \renewcommand{\sectionmark}[1]{\markright{\thesection~#1}{}} 12 | \renewcommand{\chaptermark}[1]{\markboth{\prechaptername\ \thechapter\ \postchaptername~#1}{}} 13 | \renewcommand{\headfont}{\gtfamily\sffamily\bfseries} 14 | 15 | \fancypagestyle{plainhead}{% 16 | \fancyhead{} 17 | \fancyfoot{} % clear all header and footer fields 18 | \fancyfoot[LE,RO]{\thepage} 19 | \renewcommand{\headrulewidth}{0pt} 20 | \renewcommand{\footrulewidth}{0pt}} 21 | 22 | %% using Helvetica as sans-serif 23 | \renewcommand{\sfdefault}{phv} 24 | 25 | %% for listings 26 | %\renewcommand{\lstlistingname}{List} 27 | %\lstset{% 28 | % breaklines=true,% 29 | % breakautoindent=false,% 30 | % breakindent=0pt,% 31 | % fontadjust=true,% 32 | % backgroundcolor=\color{shadecolor},% 33 | % frame=single,% 34 | % framerule=0pt,% 35 | % basicstyle=\ttfamily\scriptsize,% 36 | % commentstyle=\color{reviewgreen},% 37 | % identifierstyle=\color{reviewblue},% 38 | % stringstyle=\color{reviewred},% 39 | % keywordstyle=\bfseries\color{reviewdarkred},% 40 | %} 41 | 42 | %% disable hyperlink color and border 43 | \hypersetup{hidelinks} 44 | 45 | \floatplacement{figure}{H} 46 | \floatplacement{table}{H} 47 | 48 | % space between English/Japanese characters in list environments (\z@ means 0, no space. You can comment out below line for backward compatibility.) 49 | \def\reviewlistxkanjiskip{\z@} 50 | 51 | % boxsetting 52 | \ifdefined\reviewboxsetting 53 | \reviewboxsetting 54 | \fi 55 | -------------------------------------------------------------------------------- /src/sty/review-tcbox.sty: -------------------------------------------------------------------------------- 1 | \NeedsTeXFormat{LaTeX2e} 2 | \ProvidesPackage{review-tcbox}[2021/1/28, Version 0.1.0] 3 | \RequirePackage{tikz,tcolorbox,varwidth,multicol,ifthen,ifptex,ifluatex,ifuptex,ifxetex} 4 | 5 | \usetikzlibrary{calc} 6 | \tcbuselibrary{xparse,hooks,skins,breakable} 7 | 8 | \ifthenelse{\boolean{luatex}}{% LuaLaTeX 9 | \RequirePackage{luatexja} 10 | \def\reviewtcb@textgt#1{\textgt{#1}} 11 | \def\reviewtcb@gtfamily{\gtfamily} 12 | \def\reviewtcb@zw#1#2{#1\zw} 13 | }{ 14 | \ifthenelse{\boolean{xetex}}{% XeLaTeX 15 | \RequirePackage{zxjatype} 16 | \def\reviewtcb@textgt#1{\textbf{#1}} 17 | \def\reviewtcb@gtfamily{\bfseries} 18 | \def\reviewtcb@zw#1#2{#2} 19 | }{ 20 | \ifthenelse{\boolean{ptex}}{% pLaTeX 21 | \def\reviewtcb@textgt#1{\textgt{#1}} 22 | \def\reviewtcb@gtfamily{\gtfamily} 23 | \def\reviewtcb@zw#1#2{#1zw} 24 | }{ 25 | \ifthenelse{\boolean{uptex}}{% upLaTeX 26 | \def\reviewtcb@textgt#1{\textgt{#1}} 27 | \def\reviewtcb@gtfamily{\gtfamily} 28 | \def\reviewtcb@zw#1#2{#1zw} 29 | }{% pdfLaTeX 30 | \RequirePackage[whole]{bxcjkjatype} 31 | \def\reviewtcb@textgt#1{\textbf{#1}} 32 | \def\reviewtcb@gtfamily{\gtfamily} 33 | \def\reviewtcb@zw#1#2{#2} 34 | } 35 | } 36 | } 37 | } 38 | 39 | % markerスタイルのデフォルト設定 40 | \def\tcb@rv@marker@markcolback{gray!80} 41 | \def\tcb@rv@marker@markcoltext{white} 42 | \def\tcb@rv@marker@markchar{!} 43 | 44 | % 古いtcolorboxだとcolframe、colbackがない 45 | \tcbset{% 46 | colframe/.code={\colorlet{tcbcolframe}{#1}\colorlet{tcbcol@frame}{#1}}, 47 | colback/.code={\colorlet{tcbcolback}{#1}\colorlet{tcbcol@back}{#1}}, 48 | rv marker markcolback/.store in=\tcb@rv@marker@markcolback, 49 | rv marker markcoltext/.store in=\tcb@rv@marker@markcoltext, 50 | rv marker markchar/.store in=\tcb@rv@marker@markchar, 51 | } 52 | 53 | % squarebox 54 | % - ごくシンプルな矩形 55 | \DeclareTColorBox{rv@squarebox@nocaption}{ O{} }{% 56 | empty, % スキン 57 | left=3mm,right=3mm,top=3mm,bottom=3mm, % 内部パディング。デフォルトは4mm 58 | arc=0mm, % コーナーの半径。デフォルトは1mm 59 | % カラーは 色A!色Aの含み具合!色B。色Bを省略したときにはwhite 60 | colback=white, %white, % 背景。デフォルトはblack!5!white 61 | breakable, % ページ分断の許容 62 | enhanced jigsaw, % 分断時に上下罫線を切り取り 63 | pad at break=0mm, % 分断されたときの上下アキ。デフォルトは3.5mm 64 | boxrule=.25mm, % 線幅。toprule,bottomrule,leftrule,rightruleで個別指定も可 65 | before upper={\parindent\reviewtcb@zw{1}}, % 内容の1行目を字下げ 66 | #1} % オプション値で追加・上書き可能 67 | 68 | \DeclareTColorBox{rv@squarebox@caption}{ m O{} }{% 69 | empty, 70 | left=3mm,right=3mm,top=3mm,bottom=3mm, 71 | arc=0mm, 72 | colback=white, 73 | breakable, 74 | enhanced jigsaw, 75 | pad at break=0mm, 76 | boxrule=.25mm, 77 | before upper={\parindent\reviewtcb@zw{1}}, 78 | coltitle=black, % キャプション文字色 79 | colbacktitle=white, % キャプション背景 80 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 81 | title={#1}, 82 | #2} 83 | 84 | % squaresepcaptionbox 85 | % - ごくシンプルな矩形・キャプション位置は分離 86 | % - キャプション位置をオプションで指定する (キャプションなしの場合は意味がない)。 87 | % attach boxed title to top left など 88 | \DeclareTColorBox{rv@squaresepcaptionbox@nocaption}{ O{} }{% 89 | empty, 90 | left=3mm,right=3mm,top=3mm,bottom=3mm, 91 | arc=0mm, 92 | colback=white, 93 | breakable, 94 | enhanced jigsaw, 95 | pad at break=0mm, 96 | boxrule=.25mm, 97 | before upper={\parindent\reviewtcb@zw{1}}, 98 | #1} 99 | 100 | \DeclareTColorBox{rv@squaresepcaptionbox@caption}{ m O{} }{% 101 | empty, 102 | left=3mm,right=3mm,top=3mm,bottom=3mm, 103 | arc=0mm, 104 | colback=white, 105 | breakable, 106 | enhanced jigsaw, 107 | pad at break=0mm, 108 | boxrule=.25mm, 109 | before upper={\parindent\reviewtcb@zw{1}}, 110 | boxed title style={arc=0mm,boxrule=0mm}, 111 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 112 | colbacktitle=black, 113 | title={#1}, 114 | attach boxed title to top left,% パラメータでtoの値を指定できないかとやってみたのだが無理そう。attach boxed title自体のパラメータもなし。 115 | #2} 116 | 117 | % folderbox 118 | % - tcolorboxサンプルの改変。キャプションなしの場合は単なる角丸囲み 119 | \DeclareTColorBox{rv@folderbox@nocaption}{ O{} }{% 120 | enhanced jigsaw,breakable, 121 | pad at break=2mm, 122 | arc=1mm, 123 | boxrule=.25mm, 124 | before upper={\parindent\reviewtcb@zw{1}}, 125 | colback=black!5!white, 126 | coltitle=black, 127 | #1} 128 | 129 | \DeclareTColorBox{rv@folderbox@caption}{ m O{} }{% 130 | enhanced jigsaw,breakable, 131 | pad at break=2mm, 132 | arc=1mm, 133 | boxrule=.25mm, 134 | before upper={\parindent\reviewtcb@zw{1}}, 135 | colback=black!5!white, 136 | coltitle=black, 137 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 138 | attach boxed title to top left={xshift=3.2mm,yshift=-0.25mm}, 139 | boxed title style={skin=enhancedfirst jigsaw, % キャプション部の飾り付け 140 | size=small,arc=1mm,bottom=-1mm, 141 | interior style={fill=none, top color=black!30!white, bottom color=black!5!white}}, % キャプション部網掛け 142 | title={#1} 143 | #2} 144 | 145 | % clipbox 146 | % - tcolorboxサンプルの改変。キャプションなしの場合は単なる角丸囲み 147 | \DeclareTColorBox{rv@clipbox@nocaption}{ O{} }{% 148 | enhanced jigsaw,breakable, 149 | pad at break=2mm, 150 | before skip=2mm,after skip=2mm, 151 | colback=black!5,colframe=black!50,boxrule=0.2mm, 152 | before upper={\parindent\reviewtcb@zw{1}}, 153 | #1} 154 | 155 | \DeclareTColorBox{rv@clipbox@caption}{ m O{} }{% 156 | enhanced jigsaw,breakable, 157 | pad at break=2mm, 158 | before skip=2mm,after skip=2mm, 159 | colback=black!5,colframe=black!50,boxrule=0.2mm, 160 | before upper={\parindent\reviewtcb@zw{1}}, 161 | attach boxed title to top left={xshift=6mm,yshift*=1mm-\tcboxedtitleheight}, 162 | varwidth boxed title*=-3cm, 163 | boxed title style={ 164 | frame code={ 165 | \path[fill=tcbcol@back!30!black] 166 | ([yshift=-1mm,xshift=-1mm]frame.north west) 167 | arc[start angle=0,end angle=180,radius=1mm] 168 | ([yshift=-1mm,xshift=1mm]frame.north east) 169 | arc[start angle=180,end angle=0,radius=1mm]; 170 | \path[left color=tcbcol@back!60!black,right color=tcbcol@back!60!black, 171 | middle color=tcbcol@back!80!black] 172 | ([xshift=-2mm]frame.north west) -- ([xshift=2mm]frame.north east) 173 | [rounded corners=1mm]-- ([xshift=1mm,yshift=-1mm]frame.north east) 174 | -- (frame.south east) -- (frame.south west) 175 | -- ([xshift=-1mm,yshift=-1mm]frame.north west) 176 | [sharp corners]-- cycle; 177 | },interior engine=empty, 178 | }, 179 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 180 | title={#1}, 181 | #2} 182 | 183 | % dottedbox 184 | % - ドット囲み。キャプションは内容に接続させている 185 | \DeclareTColorBox{rv@dottedbox@nocaption}{ O{} }{% 186 | enhanced,breakable,arc=1mm, 187 | frame hidden,colback=white, 188 | borderline={0.25mm}{0mm}{black,dotted}, 189 | fontupper={\gtfamily\sffamily}, 190 | % before upper={\parindent\reviewtcb@zw{1}}, 191 | #1} 192 | 193 | \DeclareTColorBox{rv@dottedbox@caption}{ m O{} }{% 194 | enhanced,breakable,arc=1mm, 195 | frame hidden,colback=white, 196 | borderline={0.25mm}{0mm}{black,dotted}, 197 | fontupper={\gtfamily\sffamily}, 198 | % before upper={\parindent\reviewtcb@zw{1}}, 199 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 200 | coltitle=black, 201 | attach title to upper, after title={\quad}, 202 | title={#1}, 203 | #2} 204 | 205 | % bothsidelinebox 206 | % - 左右線 207 | \DeclareTColorBox{rv@bothsidelinebox@nocaption}{ O{} }{% 208 | enhanced,breakable,skin=enhancedmiddle, 209 | frame hidden,interior hidden,top=0mm,bottom=0mm,boxsep=0mm, 210 | borderline={0.4mm}{0mm}{black}, 211 | borderline={0.4mm}{0.4mm}{black!50}, 212 | borderline={0.4mm}{0.8mm}{black!10}, 213 | before upper={\parindent\reviewtcb@zw{1}}, 214 | #1} 215 | 216 | \DeclareTColorBox{rv@bothsidelinebox@caption}{ m O{} }{% 217 | enhanced,breakable,skin=enhancedmiddle, 218 | frame hidden,interior hidden,top=0mm,bottom=0mm,boxsep=0mm, 219 | borderline={0.4mm}{0mm}{black}, 220 | borderline={0.4mm}{0.4mm}{black!50}, 221 | borderline={0.4mm}{0.8mm}{black!10}, 222 | before upper={\parindent\reviewtcb@zw{1}}, 223 | coltitle=black, 224 | bottomtitle=2mm, 225 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 226 | title={#1}, 227 | #2} 228 | 229 | % leftsidelinebox 230 | % - 左線 231 | \DeclareTColorBox{rv@leftsidelinebox@nocaption}{ O{} }{% 232 | enhanced,breakable,skin=enhancedmiddle, 233 | frame hidden,interior hidden,top=0mm,bottom=0mm,right=0mm,boxsep=0mm, 234 | borderline west={0.4mm}{0mm}{black}, % westを付けて左のみにする 235 | borderline west={0.4mm}{0.4mm}{black!50}, 236 | borderline west={0.4mm}{0.8mm}{black!10}, 237 | before upper={\parindent\reviewtcb@zw{1}}, 238 | #1} 239 | 240 | \DeclareTColorBox{rv@leftsidelinebox@caption}{ m O{} }{% 241 | enhanced,breakable,skin=enhancedmiddle, 242 | frame hidden,interior hidden,top=0mm,bottom=0mm,right=0mm,boxsep=0mm, 243 | borderline west={0.4mm}{0mm}{black}, 244 | borderline west={0.4mm}{0.4mm}{black!50}, 245 | borderline west={0.4mm}{0.8mm}{black!10}, 246 | before upper={\parindent\reviewtcb@zw{1}}, 247 | coltitle=black, 248 | bottomtitle=2mm, 249 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 250 | title={#1}, 251 | #2} 252 | 253 | % outerarcbox 254 | % - 内側にさらに角丸が入るデザイン 255 | \DeclareTColorBox{rv@outerarcbox@nocaption}{ O{} }{% 256 | empty, % スキン 257 | arc=3mm, % コーナーの半径 258 | outer arc=1mm, 259 | colback=white, 260 | breakable, 261 | enhanced jigsaw, 262 | pad at break=0mm, 263 | boxrule=.25mm, 264 | before upper={\parindent\reviewtcb@zw{1}}, 265 | #1} 266 | 267 | \DeclareTColorBox{rv@outerarcbox@caption}{ m O{} }{% 268 | empty, 269 | arc=3mm, 270 | outer arc=1mm, 271 | colback=white, 272 | breakable, 273 | enhanced jigsaw, 274 | pad at break=0mm, 275 | boxrule=.25mm, 276 | before upper={\parindent\reviewtcb@zw{1}}, 277 | coltitle=black, 278 | colbacktitle=white, 279 | titlerule=0.25mm, 280 | % titlerule style={}, % ダッシュかドットにしたいが変なことになる 281 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 282 | title={#1}, 283 | #2} 284 | 285 | % marker 286 | % - tcolorboxマニュアルのTipsを改変。白黒をデフォルトとし、分割に対応 287 | % 固有オプション: 288 | % - rv marker markchar=文字: 左列に表示するマークの文字。デフォルト:! 289 | % - rv marker markcolback=色: 左列の背景色。デフォルト:gray!80 290 | % - rv marker markcoltext=色: 左列の文字色。デフォルト:white 291 | \DeclareTColorBox{rv@marker@nocaption}{ O{} }{% 292 | enhanced,breakable, 293 | before skip=2mm,after skip=3mm, 294 | boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm, 295 | before upper={\parindent\reviewtcb@zw{1}}, 296 | colback=gray!5, 297 | colframe=black, 298 | sharp corners,rounded corners=southeast,arc is angular,arc=3mm, 299 | underlay first={% 300 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 301 | }, 302 | underlay middle={% 303 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 304 | }, 305 | underlay last={% 306 | \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 307 | \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 308 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 309 | }, 310 | underlay unbroken={% 311 | \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 312 | \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 313 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 314 | }, 315 | drop fuzzy shadow,#1} 316 | 317 | \DeclareTColorBox{rv@marker@caption}{ m O{} }{% 318 | enhanced,breakable, 319 | before skip=2mm,after skip=3mm, 320 | boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm, 321 | colback=gray!5, 322 | colframe=black, 323 | sharp corners,rounded corners=southeast,arc is angular,arc=3mm, 324 | underlay first={% 325 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 326 | }, 327 | underlay middle={% 328 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 329 | }, 330 | underlay last={% 331 | \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 332 | \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 333 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 334 | }, 335 | underlay unbroken={% 336 | \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 337 | \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2); 338 | \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west); 339 | }, 340 | detach title, 341 | title={#1}, 342 | coltitle=black, 343 | fonttitle={\reviewtcb@gtfamily\sffamily\bfseries}, 344 | before upper={\tcbtitle\par\parindent\reviewtcb@zw{1}}, 345 | % before upper={\parindent\reviewtcb@zw{1}}, 346 | drop fuzzy shadow,#2} 347 | 348 | \endinput 349 | -------------------------------------------------------------------------------- /src/sty/reviewmacro.sty: -------------------------------------------------------------------------------- 1 | % Re:VIEW 2互換のlayout.tex.erb記載相当の内容 2 | \RequirePackage{review-base} 3 | 4 | % Re:VIEW 2互換のreviewmacro.sty(装飾カスタマイズ)内容 5 | \RequirePackage{review-style} 6 | 7 | % 囲み飾りの設定 8 | \ifdefined\reviewboxsetting% 9 | \RequirePackage{review-tcbox} 10 | \fi 11 | 12 | % ユーザー固有の定義 13 | \RequirePackage{review-custom} 14 | 15 | %% run \@endofreviewmacrohook at the end of reviewmacro style 16 | \@ifundefined{@endofreviewmacrohook}{}{% 17 | \let\AtEndOfReVIEWMacro\@firstofone 18 | \@endofreviewmacrohook} 19 | 20 | \endinput 21 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* Tatujin-Publishing */ 3 | /* Style sheet for epub */ 4 | /* Ver.0.8b1 */ 5 | 6 | /* 7 | Scale & Rhythm 8 | line-height 1.6 9 | 16px = 1em 10 | x:p:h1:h2:h3 = 12px:14px:16px:24px:30px 11 | */ 12 | * { 13 | } 14 | body { 15 | margin: 0; 16 | padding: 0; 17 | font-size: 1em; 18 | line-height:1.6; 19 | font-family: "ShinGoPro-Regular","ShinGo-Regular", sans-serif; 20 | /* 21 | word-break: normal; 22 | -webkit-line-break: after-white-space; 23 | */ 24 | } 25 | p, ul, ol, dl, pre, table { 26 | font-family: "ShinGo Regular","ShinGo R","新ゴR","新ゴ R", sans-serif; 27 | font-size: 0.875em; 28 | } 29 | /* Heading */ 30 | h1 { 31 | margin: 0 0 3em; 32 | padding: 0.5em 0 0; 33 | border-top: 14px #326450 solid; 34 | text-align: left; 35 | font-size: 1.875em; 36 | font-weight: bold; 37 | } 38 | h2 { 39 | margin: 3em 0 0.5em; 40 | padding: 0.5em 0 0; 41 | border-top: 2px #326450 solid; 42 | text-align: left; 43 | font-size: 1.5em; 44 | font-weight: bold; 45 | } 46 | h3 { 47 | margin: 3em 0 0.5em; 48 | padding: 0; 49 | text-align: left; 50 | font-size: 1em; 51 | font-weight: bold; 52 | } 53 | h4, h5, h6 { 54 | margin:0.7em 0; 55 | padding: 0; 56 | text-align: left; 57 | line-height: 1.6; 58 | font-weight: bold; 59 | } 60 | /* Paragraph */ 61 | p { 62 | margin:0.7em 0; 63 | padding: 0; 64 | text-align: left; 65 | text-indent: 1em; 66 | line-height: 1.6; 67 | } 68 | div.lead p { 69 | color: #666; 70 | line-height: 1.6; 71 | font-size: 0.75em; 72 | } 73 | /* List */ 74 | ul, ol { 75 | margin: 2em 0 2em 2em; 76 | padding: 0; 77 | list-style-position: outside; 78 | } 79 | ul > li, 80 | ol > li { 81 | margin: 0 0 0.7em 0; 82 | padding: 0; 83 | line-height: 1.6; 84 | } 85 | dl { 86 | margin: 2em 0; 87 | padding: 0; 88 | } 89 | dt { 90 | margin: 0; 91 | padding: 0; 92 | font-weight: bold; 93 | } 94 | dd { 95 | margin: 0 0 1em 2em; 96 | padding: 0; 97 | line-height: 1.6; 98 | } 99 | /* Table 100 | p.tablecaptionではなく 101 | table caption {}を使う方が良いかも? 102 | */ 103 | table { 104 | margin: 0 auto 2em auto; 105 | border-collapse: collapse; 106 | } 107 | table tr th { 108 | background-color: #eee; 109 | border:1px #aaa solid; 110 | font-size: 0.75em; 111 | font-weight: normal; 112 | } 113 | table tr td { 114 | padding: 0.3em; 115 | border:1px #aaa solid; 116 | font-size: 0.75em; 117 | } 118 | p.tablecaption, table caption { 119 | margin: 0; 120 | color: #666; 121 | font-size: 0.75em; 122 | font-weight: bold; 123 | text-indent: 0; 124 | } 125 | /* Quote */ 126 | blockquote { 127 | margin: 2em 0 2em 2em; 128 | padding: 0.3em 1em; 129 | border: 1px #aaa solid; 130 | } 131 | /* Column Block */ 132 | div.column { 133 | margin: 2em 0 2em 2em; 134 | padding: 0.3em 1em; 135 | background-color: #eee; 136 | -webkit-border-radius: 0.7em; 137 | } 138 | div.column *{ 139 | margin:0.7em 0; 140 | } 141 | div.column ul, 142 | div.column ol { 143 | list-style-position: inside; 144 | } 145 | /* Code Block */ 146 | /* 147 | ※シンプルにできるかも 148 | div.code {} 149 | div.code pre.list, 150 | div.code pre.cmd {} 151 | div.code p.caption {} 152 | */ 153 | div.code, div.caption-code, div.source-code, div.emlist-code, div.emlistnum-code { 154 | margin: 1em 0 2em 2em; 155 | padding: 0; 156 | } 157 | pre.emlist, pre.source, pre.list { 158 | margin: 0; 159 | padding: 5px; 160 | border: 1px #aaa solid; 161 | } 162 | div p.caption { 163 | margin: 0; 164 | color: #666; 165 | font-size: 0.75em; 166 | font-weight: bold; 167 | } 168 | div.cmd-code pre.cmd { 169 | margin: 0; 170 | padding: 5px; 171 | color: #ccc; 172 | font-weight: bold; 173 | background-color: #444; 174 | -webkit-border-radius: 0.5em; 175 | } 176 | pre.cmd, pre.emlist, pre.list, pre.source { 177 | white-space: pre-wrap; 178 | } 179 | 180 | /* Image Block */ 181 | /* div.image p.caption {} 182 | ※captionをそろえた方が良いかも?*/ 183 | div.image { 184 | margin: 2em auto; 185 | padding: 0; 186 | } 187 | div.image img { 188 | margin: 0 auto; 189 | padding: 0; 190 | display: block; 191 | } 192 | div.image p.caption { 193 | margin: 0 auto; 194 | text-align: center; 195 | color: #666; 196 | font-size: 0.75em; 197 | font-weight: bold; 198 | text-indent: 0; 199 | } 200 | /* Footnote Block */ 201 | /* p.footnoteはいらないかも? */ 202 | div.footnote { 203 | } 204 | div.footnote p.footnote { 205 | color: #666; 206 | line-height: 1.6; 207 | font-size: 0.75em; 208 | text-indent: 0; 209 | } 210 | /* Colophon */ 211 | div.colophon { 212 | margin: 3em auto; 213 | } 214 | div.colophon p { 215 | text-indent: 0; 216 | } 217 | div.colophon p.title { 218 | font-size: 1.5em; 219 | } 220 | div.colophon table { 221 | margin: 1em 0 2em; 222 | border: none; 223 | } 224 | div.colophon table tr th { 225 | background-color: #fff; 226 | font-size: 1.2em; 227 | font-weight: normal; 228 | border: none; 229 | } 230 | div.colophon table tr td { 231 | font-size: 1.2em; 232 | font-weight: normal; 233 | border: none; 234 | } 235 | 236 | /* Inline */ 237 | a[href], 238 | a:link, 239 | a:visited { 240 | border-bottom: 1px dotted #531084; 241 | text-decoration: none; 242 | } 243 | b { 244 | font-weight: bold; 245 | } 246 | strong{ 247 | font-weight: bold; 248 | } 249 | em { 250 | font-style: italic; 251 | } 252 | span.balloon { 253 | font-size: 0.9em; 254 | } 255 | span.balloon:before { 256 | content: "←"; 257 | } 258 | 259 | /** 260 | * from Rouge 261 | */ 262 | .highlight table td { padding: 5px; } 263 | .highlight table pre { margin: 0; } 264 | .highlight .cm { 265 | color: #999988; 266 | font-style: italic; 267 | } 268 | .highlight .cp { 269 | color: #999999; 270 | font-weight: bold; 271 | } 272 | .highlight .c1 { 273 | color: #999988; 274 | font-style: italic; 275 | } 276 | .highlight .cs { 277 | color: #999999; 278 | font-weight: bold; 279 | font-style: italic; 280 | } 281 | .highlight .c, .highlight .cd { 282 | color: #999988; 283 | font-style: italic; 284 | } 285 | .highlight .err { 286 | color: #a61717; 287 | background-color: #e3d2d2; 288 | } 289 | .highlight .gd { 290 | color: #000000; 291 | background-color: #ffdddd; 292 | } 293 | .highlight .ge { 294 | color: #000000; 295 | font-style: italic; 296 | } 297 | .highlight .gr { 298 | color: #aa0000; 299 | } 300 | .highlight .gh { 301 | color: #999999; 302 | } 303 | .highlight .gi { 304 | color: #000000; 305 | background-color: #ddffdd; 306 | } 307 | .highlight .go { 308 | color: #888888; 309 | } 310 | .highlight .gp { 311 | color: #555555; 312 | } 313 | .highlight .gs { 314 | font-weight: bold; 315 | } 316 | .highlight .gu { 317 | color: #aaaaaa; 318 | } 319 | .highlight .gt { 320 | color: #aa0000; 321 | } 322 | .highlight .kc { 323 | color: #000000; 324 | font-weight: bold; 325 | } 326 | .highlight .kd { 327 | color: #000000; 328 | font-weight: bold; 329 | } 330 | .highlight .kn { 331 | color: #000000; 332 | font-weight: bold; 333 | } 334 | .highlight .kp { 335 | color: #000000; 336 | font-weight: bold; 337 | } 338 | .highlight .kr { 339 | color: #000000; 340 | font-weight: bold; 341 | } 342 | .highlight .kt { 343 | color: #445588; 344 | font-weight: bold; 345 | } 346 | .highlight .k, .highlight .kv { 347 | color: #000000; 348 | font-weight: bold; 349 | } 350 | .highlight .mf { 351 | color: #009999; 352 | } 353 | .highlight .mh { 354 | color: #009999; 355 | } 356 | .highlight .il { 357 | color: #009999; 358 | } 359 | .highlight .mi { 360 | color: #009999; 361 | } 362 | .highlight .mo { 363 | color: #009999; 364 | } 365 | .highlight .m, .highlight .mb, .highlight .mx { 366 | color: #009999; 367 | } 368 | .highlight .sb { 369 | color: #d14; 370 | } 371 | .highlight .sc { 372 | color: #d14; 373 | } 374 | .highlight .sd { 375 | color: #d14; 376 | } 377 | .highlight .s2 { 378 | color: #d14; 379 | } 380 | .highlight .se { 381 | color: #d14; 382 | } 383 | .highlight .sh { 384 | color: #d14; 385 | } 386 | .highlight .si { 387 | color: #d14; 388 | } 389 | .highlight .sx { 390 | color: #d14; 391 | } 392 | .highlight .sr { 393 | color: #009926; 394 | } 395 | .highlight .s1 { 396 | color: #d14; 397 | } 398 | .highlight .ss { 399 | color: #990073; 400 | } 401 | .highlight .s { 402 | color: #d14; 403 | } 404 | .highlight .na { 405 | color: #008080; 406 | } 407 | .highlight .bp { 408 | color: #999999; 409 | } 410 | .highlight .nb { 411 | color: #0086B3; 412 | } 413 | .highlight .nc { 414 | color: #445588; 415 | font-weight: bold; 416 | } 417 | .highlight .no { 418 | color: #008080; 419 | } 420 | .highlight .nd { 421 | color: #3c5d5d; 422 | font-weight: bold; 423 | } 424 | .highlight .ni { 425 | color: #800080; 426 | } 427 | .highlight .ne { 428 | color: #990000; 429 | font-weight: bold; 430 | } 431 | .highlight .nf { 432 | color: #990000; 433 | font-weight: bold; 434 | } 435 | .highlight .nl { 436 | color: #990000; 437 | font-weight: bold; 438 | } 439 | .highlight .nn { 440 | color: #555555; 441 | } 442 | .highlight .nt { 443 | color: #000080; 444 | } 445 | .highlight .vc { 446 | color: #008080; 447 | } 448 | .highlight .vg { 449 | color: #008080; 450 | } 451 | .highlight .vi { 452 | color: #008080; 453 | } 454 | .highlight .nv { 455 | color: #008080; 456 | } 457 | .highlight .ow { 458 | color: #000000; 459 | font-weight: bold; 460 | } 461 | .highlight .o { 462 | color: #000000; 463 | font-weight: bold; 464 | } 465 | .highlight .w { 466 | color: #bbbbbb; 467 | } 468 | .highlight { 469 | background-color: #f8f8f8; 470 | } 471 | .rouge-table { border-spacing: 0 } 472 | .rouge-gutter { text-align: right } 473 | 474 | /** 475 | * from EBPAJ EPUB 3 File Creation Guide sample style 476 | * 477 | * cf. http://ebpaj.jp/counsel/guide 478 | */ 479 | 480 | /* image width definition(pacentage) */ 481 | .width-010per { width: 10%; } 482 | .width-020per { width: 20%; } 483 | .width-025per { width: 25%; } 484 | .width-030per { width: 30%; } 485 | .width-033per { width: 33%; } 486 | .width-040per { width: 40%; } 487 | .width-050per { width: 50%; } 488 | .width-060per { width: 60%; } 489 | .width-067per { width: 67%; } 490 | .width-070per { width: 70%; } 491 | .width-075per { width: 75%; } 492 | .width-080per { width: 80%; } 493 | .width-090per { width: 90%; } 494 | .width-100per { width: 100%; } 495 | 496 | -------------------------------------------------------------------------------- /src/title.tex: -------------------------------------------------------------------------------- 1 | % 自前タイトルページ追加 2 | % https://kyabe.net/blog/review-newline-arbitrary-position/ 3 | \begin{titlepage} 4 | \thispagestyle{empty} 5 | \begin{center}% 6 | \mbox{} \vskip5zw 7 | \reviewtitlefont% 8 | \vskip 15em% 9 | {\Huge\review@booktitlename\par}% 10 | \ifdefined\review@subtitlename 11 | \fi 12 | \vskip 2em% 13 | {\Large 14 | \lineskip .75em 15 | \begin{tabular}[t]{p{\textwidth}}% 16 | \centering{執筆部} 17 | \end{tabular}\par}% 18 | \vfill 19 | {\large\review@date \review@intn@edition\hspace{1zw}\review@intn@publishedby\par}% 20 | \vskip2zw\mbox{} 21 | \end{center}% 22 | \end{titlepage}\clearpage 23 | --------------------------------------------------------------------------------