review 3.0.0.preview4 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.ja.md +61 -4
  3. data/NEWS.md +61 -4
  4. data/README.md +2 -1
  5. data/doc/config.yml.sample +48 -20
  6. data/doc/config.yml.sample-simple +7 -6
  7. data/doc/format_idg.ja.md +6 -2
  8. data/doc/pdfmaker.ja.md +95 -4
  9. data/doc/pdfmaker.md +79 -0
  10. data/doc/quickstart.ja.md +26 -3
  11. data/doc/quickstart.md +25 -3
  12. data/doc/writing_vertical.ja.md +19 -2
  13. data/lib/review/epubmaker.rb +27 -27
  14. data/lib/review/i18n.yml +1 -0
  15. data/lib/review/init.rb +34 -22
  16. data/lib/review/latexbuilder.rb +95 -18
  17. data/lib/review/pdfmaker.rb +1 -0
  18. data/lib/review/update.rb +60 -25
  19. data/lib/review/version.rb +1 -1
  20. data/review.gemspec +1 -1
  21. data/samples/sample-book/src/config.yml +3 -3
  22. data/samples/syntax-book/config.yml +3 -3
  23. data/templates/latex/config.erb +3 -0
  24. data/templates/latex/review-jlreq/README.md +97 -7
  25. data/templates/latex/review-jlreq/review-base.sty +8 -0
  26. data/templates/latex/review-jlreq/review-jlreq.cls +28 -6
  27. data/templates/latex/review-jsbook/README.md +18 -20
  28. data/templates/latex/review-jsbook/review-base.sty +15 -0
  29. data/templates/latex/review-jsbook/review-jsbook.cls +172 -230
  30. data/test/test_epubmaker_cmd.rb +1 -1
  31. data/test/test_helper.rb +3 -3
  32. data/test/test_image_finder.rb +9 -9
  33. data/test/test_latexbuilder.rb +20 -1
  34. data/test/test_makerhelper.rb +12 -12
  35. data/test/test_pdfmaker_cmd.rb +1 -1
  36. data/test/test_update.rb +18 -4
  37. data/test/test_zip_exporter.rb +7 -7
  38. data/vendor/jsclasses/.gitignore +163 -0
  39. data/vendor/jsclasses/LICENSE +25 -0
  40. data/vendor/jsclasses/Makefile +88 -0
  41. data/vendor/jsclasses/README.md +43 -0
  42. data/vendor/jsclasses/create_archive.sh +59 -0
  43. data/vendor/jsclasses/jis/Makefile +62 -0
  44. data/vendor/jsclasses/jis/jsarticle.cls +1935 -0
  45. data/vendor/jsclasses/jis/jsbook.cls +2026 -0
  46. data/vendor/jsclasses/jis/jsclasses.dtx +5961 -0
  47. data/vendor/jsclasses/jis/jsclasses.ins +8 -0
  48. data/vendor/jsclasses/jis/jslogo.dtx +413 -0
  49. data/vendor/jsclasses/jis/jslogo.ins +4 -0
  50. data/vendor/jsclasses/jis/jslogo.sty +223 -0
  51. data/vendor/jsclasses/jis/jspf.cls +1766 -0
  52. data/vendor/jsclasses/jis/jsreport.cls +2020 -0
  53. data/vendor/jsclasses/jis/jsverb.dtx +322 -0
  54. data/vendor/jsclasses/jis/jsverb.ins +4 -0
  55. data/vendor/jsclasses/jis/jsverb.sty +128 -0
  56. data/vendor/jsclasses/jis/kiyou.cls +1882 -0
  57. data/vendor/jsclasses/jis/minijs.sty +52 -0
  58. data/vendor/jsclasses/jis/okumacro.dtx +1179 -0
  59. data/vendor/jsclasses/jis/okumacro.ins +4 -0
  60. data/vendor/jsclasses/jis/okumacro.sty +455 -0
  61. data/vendor/jsclasses/jis/okuverb.dtx +243 -0
  62. data/vendor/jsclasses/jis/okuverb.ins +4 -0
  63. data/vendor/jsclasses/jis/okuverb.sty +102 -0
  64. data/vendor/jsclasses/jis/winjis.sty +87 -0
  65. data/vendor/jsclasses/jsarticle.cls +1938 -0
  66. data/vendor/jsclasses/jsbook.cls +2029 -0
  67. data/vendor/jsclasses/jsclasses.dtx +5966 -0
  68. data/vendor/jsclasses/jsclasses.ins +8 -0
  69. data/vendor/jsclasses/jsclasses.pdf +0 -0
  70. data/vendor/jsclasses/jslogo.dtx +424 -0
  71. data/vendor/jsclasses/jslogo.ins +4 -0
  72. data/vendor/jsclasses/jslogo.pdf +0 -0
  73. data/vendor/jsclasses/jslogo.sty +223 -0
  74. data/vendor/jsclasses/jspf.cls +1769 -0
  75. data/vendor/jsclasses/jsreport.cls +2023 -0
  76. data/vendor/jsclasses/jsverb.dtx +333 -0
  77. data/vendor/jsclasses/jsverb.ins +4 -0
  78. data/vendor/jsclasses/jsverb.pdf +0 -0
  79. data/vendor/jsclasses/jsverb.sty +128 -0
  80. data/vendor/jsclasses/kiyou.cls +1885 -0
  81. data/vendor/jsclasses/minijs.sty +52 -0
  82. data/vendor/jsclasses/okumacro.dtx +1184 -0
  83. data/vendor/jsclasses/okumacro.ins +4 -0
  84. data/vendor/jsclasses/okumacro.pdf +0 -0
  85. data/vendor/jsclasses/okumacro.sty +458 -0
  86. data/vendor/jsclasses/okuverb.dtx +254 -0
  87. data/vendor/jsclasses/okuverb.ins +4 -0
  88. data/vendor/jsclasses/okuverb.pdf +0 -0
  89. data/vendor/jsclasses/okuverb.sty +102 -0
  90. data/vendor/jsclasses/winjis.sty +87 -0
  91. metadata +55 -2
@@ -106,6 +106,10 @@
106
106
 
107
107
  \renewcommand{\contentsname}{\review@toctitle}
108
108
 
109
+ \newenvironment{reviewpart}{%
110
+ \renewcommand{\thesection}{\thepart.\@arabic\c@section}%
111
+ }{}
112
+
109
113
  % 囲み記事
110
114
  \newenvironment{reviewnote}[1][]{%
111
115
  \begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries NOTE #1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
@@ -323,3 +327,7 @@
323
327
  \def\reviewcolophonpagecont{\review@colophonfile}
324
328
  }
325
329
  \fi
330
+
331
+ \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
332
+ \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
333
+ \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
@@ -103,17 +103,18 @@ cls]
103
103
  \@namedef{@makehiddenfolio@shippo}{%
104
104
  \@nameuse{@makehiddenfolio@nikko-pc}}
105
105
 
106
- %% cameraready=print,ebook,preview
106
+ %% media=print,ebook,preview
107
107
  \newif\if@cameraready \@camerareadyfalse
108
108
  \newif\if@pdfhyperlink \@pdfhyperlinkfalse
109
109
  \newif\if@pdftombo \@pdftombofalse
110
110
  \newif\if@reclscover \@reclscovertrue
111
111
  \newif\ifrecls@serialpage \recls@serialpagefalse
112
112
  \DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}}
113
+ \DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}}
113
114
  \DeclareOptionX{tombopaper}[a4]{\gdef\recls@tombopaper{#1}}
114
115
  \DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}}
115
116
  \DeclareOptionX{cover}[\@empty]{\gdef\recls@forcecover{#1}}
116
- \DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr #1-1\relax}}
117
+ \DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr #1\relax}}
117
118
  \DeclareOptionX{serial_pagination}[false]{\csname recls@serialpage#1\endcsname}
118
119
 
119
120
  %% 隠しノンブルプリセット
@@ -122,7 +123,7 @@ cls]
122
123
  % jlreqのオプションについては https://github.com/abenori/jlreq/blob/master/README-ja.md を参照
123
124
  \PassOptionsToClass{book,paper=a5}{jlreq}% クラスで必ず使うオプションの指定。デフォルトをA5にしておく
124
125
  \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{jlreq}}%
125
- \ExecuteOptionsX{cameraready,tombopaper,bleed_margin,cover,startpage,serial_pagination,hiddenfolio}
126
+ \ExecuteOptionsX{media,cameraready,tombopaper,bleed_margin,cover,startpage,serial_pagination,hiddenfolio}
126
127
  \ProcessOptionsX\relax
127
128
 
128
129
  \def\recls@tmp{preview}\ifx\recls@cameraready\recls@tmp
@@ -132,7 +133,7 @@ cls]
132
133
  \else\def\recls@tmp{ebook}\ifx\recls@cameraready\recls@tmp
133
134
  \@camerareadytrue\@pdfhyperlinktrue\@pdftombofalse\@reclscovertrue
134
135
  \else
135
- \recls@error{No such value of cameraready: \recls@cameraready}%
136
+ \recls@error{No such value of media: \recls@cameraready}%
136
137
  \fi\fi\fi
137
138
 
138
139
  \LoadClass{jlreq}
@@ -248,10 +249,19 @@ cls]
248
249
  \clearpage
249
250
  }
250
251
 
252
+ % 空ページ
253
+ \newcommand\oneblankpage{\clearpage\thispagestyle{empty}%
254
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi}
255
+
256
+ % 横書き向けの、奇数ページまでの改丁(\cleardoublepage)・偶数ページまでの改丁(\clearoddpage)
257
+ \let\cleardoublepage@right\cleardoublepage
258
+ \def\cleardoublepage@left{\clearpage\if@twoside\ifodd\c@page
259
+ \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
260
+ \let\clearoddpage\cleardoublepage@left
261
+
251
262
  % シンプルな通しノンブル
252
263
  \ifrecls@serialpage
253
- \renewcommand*{\pagenumbering}[1]{%
254
- \gdef\thepage{\@arabic\c@page}}
264
+ \jlreqsetup{frontmatter_pagination=continuous}
255
265
  \fi
256
266
 
257
267
  % 開始ページを変更
@@ -261,5 +271,17 @@ cls]
261
271
  \setcounter{page}{\the\recls@startpage}
262
272
  }
263
273
 
274
+ % titlepageのsetcounterを使わない
275
+ \renewenvironment{titlepage}{%
276
+ \if@twocolumn
277
+ \@restonecoltrue\onecolumn
278
+ \else
279
+ \@restonecolfalse\newpage
280
+ \fi
281
+ \thispagestyle{empty}%
282
+ }{%
283
+ \if@restonecol\twocolumn\else\newpage\fi
284
+ }
285
+
264
286
  \listfiles
265
287
  \endinput
@@ -7,9 +7,9 @@ review-jsbook.cls Users Guide
7
7
 
8
8
  ## 特徴
9
9
 
10
- * クラスオプション `cameraready` により、「印刷用」「電子用」の用途を明示的な意思表示として与えることで、用途に応じた PDF ファイル生成を行えます。
10
+ * クラスオプション `media` により、「印刷用」「電子用」の用途を明示的な意思表示として与えることで、用途に応じた PDF ファイル生成を行えます。
11
11
  * (基本的に)クラスオプションを `<key>=<value>` で与えられます。
12
- * クラスオプション内で、用紙サイズや基本版面を自由に設計できます。
12
+ * クラスオプション内で、用紙サイズや基本版面を設計できます。
13
13
 
14
14
  ここで、クラスオプションとは、親 LaTeX 文章ファイルにおいて、以下のような位置にカンマ(,)区切りで記述するオプションです。
15
15
 
@@ -27,7 +27,7 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
27
27
 
28
28
  ## 利用可能なクラスオプションたち
29
29
 
30
- ### 用途別 PDF データ作成 `cameraready=<用途名>`
30
+ ### 用途別 PDF データ作成 `media=<用途名>`
31
31
 
32
32
  印刷用 `print`、電子用 `ebook` のいずれかの用途名を指定します。
33
33
 
@@ -38,7 +38,7 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
38
38
 
39
39
  ### 表紙の挿入有無 `cover=<trueまたはfalse>`
40
40
 
41
- `cameraready` の値によって表紙(config.yml の coverimage に指定した画像)の配置の有無は自動で切り替わりますが、`cover=true` とすれば必ず表紙を入れるようになります。
41
+ `media` の値によって表紙(config.yml の coverimage に指定した画像)の配置の有無は自動で切り替わりますが、`cover=true` とすれば必ず表紙を入れるようになります。
42
42
 
43
43
  なお、config.yml の coverimage で指定する画像ファイルは、原寸を想定しています。
44
44
 
@@ -47,8 +47,8 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
47
47
  利用可能な特定の用紙サイズを指定できます。
48
48
 
49
49
  * `a3`
50
- * `a4`
51
- * `a5`[デフォルト]
50
+ * `a4` [デフォルト]
51
+ * `a5`
52
52
  * `a6`
53
53
  * `b4`:JIS B4
54
54
  * `b5`:JIS B5
@@ -73,24 +73,23 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
73
73
 
74
74
  たとえば、B5変形 `paperwidth=182mm`, `paperheight=235mm`。
75
75
 
76
- ### 基本版面設計 `Q=<級数>`, `W=<字詰>`, `L=<行数>`, `H=<行送り>` , `head=<天>`, `gutter=<ノド>`
76
+ ### 基本版面設計 `fontsize=<文字サイズ>`, `baselineskip=<行送り>`, `line_length=<字詰>`, `number_of_lines=<行数>`, `head_space=<天>`, `gutter=<ノド>`, `linegap=<幅>`, `headheight=<幅>`, `headsep=<幅>`, `footskip=<幅>`
77
77
 
78
- 基本版面 QWLH, 天、ノドを与えます。
78
+ 基本版面情報を与えます。
79
79
  天、ノドをそれぞれ与えない場合、それぞれ天地、左右中央になります。
80
80
 
81
- * `Q=13`[デフォルト]:文字サイズを級数(1Q = 1H = 0.25mm)で与えます。
82
- * `W=35`[デフォルト]:1行字詰めを与えます。
83
- * `L=32`[デフォルト]:行数を与えます。
84
- * `H=22`[デフォルト]:行送り(1Q = 1H = 0.25mm)を与えます。
85
- * `head=<幅>`:天を与えます。[デフォルト]は天地中央です。
81
+ * `fontsize=10pt`[デフォルト]:標準の文字(normalfontsize)の文字サイズを与えます。pt のほか、Q mm といった単位も指定可能です。ただし、文字サイズは jsbook の挙動に合わせるために 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt, 21pt, 25pt, 30pt, 36pt, 43pt のいずれか近いサイズに丸められます。
82
+ * `baselineskip=16pt`[デフォルト]:行送りを与えます。
83
+ * `line_length=<字詰め幅>`:1行字詰めを与えます。字詰め幅には単位を付ける必要があります。文字数であれば「zw」を使うとよいでしょう(例:35zw=35文字)。デフォルトでは jsbook の挙動に従い、紙サイズに基いて決定します。
84
+ * `number_of_lines=<行数>`:行数を与えます。デフォルトでは jsbook の挙動に従い、紙サイズに基いて決定します。
85
+ * `head_space=<幅>`:天を与えます。[デフォルト]は天地中央です。
86
86
  * `gutter=<幅>`:ノドを与えます。[デフォルト]は左右中央です。
87
+ * `linegap=<幅>`:行送りを baselineskip で指定する代わりに、通常の文字の高さにこのオプションで指定する幅を加えたものを行送りとします。
87
88
 
88
89
  例をいくつか挙げます。
89
90
 
90
- * `paper=a5, Q=13, W=35, L=32, H=22,`
91
- * `paper=a5, Q=14, W=38, L=34, H=20.5, head=20mm, gutter=20mm,`
92
- * `paper=b5, Q=13, W=43, L=35, H=24,`
93
- * `paper=b5, Q=14, W=40, L=34, H=25.5,`
91
+ * `paper=a5, fontsize=10pt, line_length=35zw, number_of_lines=32, baselineskip=16pt,`
92
+ * `paper=b5, fontsize=13Q, baselineskip=20.5H, head_space=20mm, gutter=20mm,`
94
93
 
95
94
  さらに、ヘッダー、フッターに関する位置調整は、TeX のパラメータ `\headheight`, `\headsep`, `\footskip` に対応しており、それぞれ `headheight`, `headsep`, `footskip` を与えられます。
96
95
 
@@ -124,6 +123,5 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
124
123
  ## 標準で review-jsbook.cls を実行したときの jsbook.cls との違い
125
124
 
126
125
  * jsbook.cls のクラスオプション `uplatex`:これまで texdocumentclass に指定が必要だった `uplatex` オプションは不要となっています。
127
- * jsbook.cls のクラスオプション `nomag`:用紙サイズや版面設計は、すべて review-jsbook.cls 側で行います。
128
- * hyperref パッケージ:あらかじめ hyperref パッケージを組み込んでおり、`cameraready` オプションにより用途別で挙動を制御します。
129
- * 各種相対フォントサイズコマンド `\small`, `\footnotesize`, `\scriptsize`, `\tiny`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`, `\HUGE` は、級数ベースに書き換えています。おおむね妥当な値になっているはずです。
126
+ * jsbook.cls のクラスオプション `nomag`:用紙サイズや版面設計は、review-jsbook.cls 側で行います。
127
+ * hyperref パッケージ:あらかじめ hyperref パッケージを組み込んでおり、`media` オプションにより用途別で挙動を制御します。
@@ -2,6 +2,13 @@
2
2
  \@ifundefined{Hy@Info}{% for jsbook.cls
3
3
  \RequirePackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true]{hyperref}
4
4
  \RequirePackage[dvipdfmx]{pxjahyper}
5
+ \newif\if@reclscover \@reclscovertrue
6
+ \newcommand{\includefullpagegraphics}[2][]{%
7
+ \thispagestyle{empty}%
8
+ \begin{center}%
9
+ \includegraphics[#1]{#2}%
10
+ \end{center}}
11
+ \def\review@coverimageoption{width=\textwidth,height=\textheight,keepaspectratio}
5
12
  }{}
6
13
  \ifthenelse{\equal{\review@texcompiler}{uplatex}}{%
7
14
  \RequirePackage[deluxe,uplatex]{otf}%
@@ -190,6 +197,10 @@
190
197
  \newcommand{\reviewcolumnref}[2]{\review@intn@columnname #1}
191
198
  \newcommand{\reviewsecref}[2]{#1}
192
199
 
200
+ \newenvironment{reviewpart}{%
201
+ \renewcommand{\thesection}{\thepart.\@arabic\c@section}%
202
+ }{}
203
+
193
204
  \newcommand{\reviewminicolumntitle}[1]{%
194
205
  \review@ifempty{#1}{}{%
195
206
  {\large \review@intn@memohead{}: #1}\\}}
@@ -416,3 +427,7 @@
416
427
  \def\reviewcolophonpagecont{\review@colophonfile}
417
428
  }
418
429
  \fi
430
+
431
+ \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
432
+ \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
433
+ \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
@@ -19,9 +19,6 @@
19
19
  % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
20
  % THE SOFTWARE.
21
21
 
22
- \ifx\epTeXinputencoding\undefined\else
23
- \epTeXinputencoding utf8
24
- \fi
25
22
  \NeedsTeXFormat{pLaTeX2e}
26
23
  \ProvidesClass{review-jsbook}
27
24
  [2018/09/30 v3.0 Re:VIEW pLaTeX class modified for jsbook.cls]
@@ -82,9 +79,6 @@
82
79
  \edef\recls@set@js@paper{#1}%
83
80
  \PassOptionsToClass{\recls@set@js@paper}{jsbook}}
84
81
 
85
- \def\recls@disable@jsopt#1{%
86
- \recls@DeclareOption{#1}{\recls@error{option #1: not available}}}
87
-
88
82
  \recls@define@paper{a3}{paper}
89
83
  \recls@define@paper{a4}{paper}
90
84
  \recls@define@paper{a5}{paper}
@@ -98,11 +92,55 @@
98
92
  \recls@define@paper{legal}{paper}
99
93
  \recls@define@paper{executive}{paper}
100
94
 
101
- %% disable some options of jsbook.cls
95
+ %% define/set specific fontsize
96
+ \def\recls@define@fontsize#1{%
97
+ \@namedef{recls@fontsize@#1}{#1}}
98
+
99
+ \def\recls@set@fontsize#1{%
100
+ \@ifundefined{recls@fontsize@#1}{%
101
+ \recls@set@customfontsize{#1}}{\@recls@set@fontsize{#1}}}
102
+ \def\@recls@set@fontsize#1{%
103
+ \expandafter\expandafter\expandafter
104
+ \@@recls@set@fontsize\expandafter\expandafter\expandafter
105
+ {\csname recls@fontsize@#1\endcsname}}
106
+ \def\@@recls@set@fontsize#1{%
107
+ \edef\recls@jsfontsize{#1}%
108
+ \ifdim\recls@jsfontsize=\recls@fontsize\else
109
+ \recls@warning{jsbook.cls has no such fontsize '\recls@fontsize'.^^J
110
+ pass through '\recls@jsfontsize' option to jsbook.cls}%
111
+ \fi
112
+ \PassOptionsToClass{\recls@jsfontsize}{jsbook}}
113
+
114
+ %% NOTE: カスタムフォントサイズの対応は、事実上、止めることにしました。
115
+ \def\recls@set@customfontsize#1{%
116
+ \setlength{\@tempdima}{#1}%
117
+ \ifdim\@tempdima<8.5pt\recls@set@fontsize{8pt}%
118
+ \else\ifdim\@tempdima<9.5pt\recls@set@fontsize{9pt}%
119
+ \else\ifdim\@tempdima<10.5pt\recls@set@fontsize{10pt}%
120
+ \else\ifdim\@tempdima<11.5pt\recls@set@fontsize{11pt}%
121
+ \else\ifdim\@tempdima<12.5pt\recls@set@fontsize{12pt}%
122
+ \else\ifdim\@tempdima<13pt\recls@set@fontsize{14pt}%
123
+ \else\ifdim\@tempdima<18.5pt\recls@set@fontsize{17pt}%
124
+ \else\ifdim\@tempdima<20.5pt\recls@set@fontsize{20pt}%
125
+ \else\ifdim\@tempdima<23pt\recls@set@fontsize{21pt}%
126
+ \else\ifdim\@tempdima<27.5pt\recls@set@fontsize{25pt}%
127
+ \else\ifdim\@tempdima<33pt\recls@set@fontsize{30pt}%
128
+ \else\ifdim\@tempdima<39.5pt\recls@set@fontsize{36pt}%
129
+ \else\recls@set@fontsize{43pt}%
130
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
131
+ }
132
+
102
133
  \@for\recls@tmp:={%
103
- a4j,a5j,b4j,b5j,%
104
134
  8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt,21pt,25pt,30pt,36pt,43pt,12Q,14Q,%
105
- 10ptj,10.5ptj,11ptj,12ptj,winjis,mingoth}\do{%
135
+ 10ptj,10.5ptj,11ptj,12ptj}\do{%
136
+ \expandafter\recls@define@fontsize\expandafter{\recls@tmp}}
137
+
138
+ %% disable some options of jsbook.cls
139
+ \def\recls@disable@jsopt#1{%
140
+ \recls@DeclareOption{#1}{\recls@error{option #1: not available}}}
141
+
142
+ \@for\recls@tmp:={%
143
+ a4j,a5j,b4j,b5j,winjis,mingoth}\do{%
106
144
  \expandafter\recls@disable@jsopt\expandafter{\recls@tmp}}
107
145
 
108
146
  %% \recls@set@tombowpaper{<papersize>}
@@ -156,33 +194,35 @@
156
194
  \@nameuse{@makehiddenfolio@nikko-pc}}
157
195
 
158
196
 
159
- %% cameraready=print,ebook,preview
197
+ %% media=print,ebook,preview
160
198
  \newif\if@cameraready \@camerareadyfalse
161
199
  \newif\if@pdfhyperlink \@pdfhyperlinkfalse
162
200
  \DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}}
201
+ \DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}}
163
202
 
164
203
  %% 用紙
165
- \DeclareOptionX{paper}[a5]{\gdef\recls@paper{#1}}
204
+ \DeclareOptionX{paper}[a4]{\gdef\recls@paper{#1}}
166
205
  \DeclareOptionX{tombopaper}{%
167
206
  \gdef\recls@tombowopts{}%%default: auto-detect
168
- \ifx#1\@empty\else\gdef\recls@tombowopts{tombo-#1}\fi}
207
+ \ifx#1\@empty\else\gdef\recls@tombowopts{tombow-#1}\fi}
169
208
  \DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}}
170
209
  %% 隠しノンブルプリセット
171
210
  \DeclareOptionX{hiddenfolio}{\gdef\recls@hiddenfolio{#1}}%%default: (none)
172
211
  %% カスタム用紙サイズ
173
212
  \DeclareOptionX{paperwidth}{\gdef\recls@paperwidth{#1}}
174
213
  \DeclareOptionX{paperheight}{\gdef\recls@paperheight{#1}}
175
- %% 基本版面 QWLH、天、ノド
176
- \DeclareOptionX{Q}[13]{\gdef\recls@Q{#1}}
177
- \DeclareOptionX{W}[35]{\gdef\recls@W{#1}}
178
- \DeclareOptionX{L}[32]{\gdef\recls@L{#1}}
179
- \DeclareOptionX{H}[22]{\gdef\recls@H{#1}}
180
- \DeclareOptionX{head}[\z@]{\gdef\recls@head{#1}}%[18mm]
181
- \DeclareOptionX{gutter}[\z@]{\gdef\recls@gutter{#1}}%[20mm]
214
+ %% 基本版面、天、ノド
215
+ \DeclareOptionX{fontsize}[10pt]{\gdef\recls@fontsize{#1}}
216
+ \DeclareOptionX{line_length}{\gdef\recls@line@length{#1}}%%ベタ組みになるように調整
217
+ \DeclareOptionX{number_of_lines}{\gdef\recls@number@of@lines{#1}}
218
+ \DeclareOptionX{baselineskip}{\def\recls@baselineskip{#1}}
219
+ \DeclareOptionX{linegap}{\def\recls@linegap{#1}}
220
+ \DeclareOptionX{head_space}{\gdef\recls@head@space{#1}}
221
+ \DeclareOptionX{gutter}{\gdef\recls@gutter{#1}}
182
222
  %% headheight,headsep,footskip
183
- \DeclareOptionX{headheight}[\z@]{\gdef\recls@headheight{#1}}
184
- \DeclareOptionX{headsep}[\z@]{\gdef\recls@headsep{#1}}
185
- \DeclareOptionX{footskip}[\z@]{\gdef\recls@footskip{#1}}
223
+ \DeclareOptionX{headheight}{\gdef\recls@headheight{#1}}
224
+ \DeclareOptionX{headsep}{\gdef\recls@headsep{#1}}
225
+ \DeclareOptionX{footskip}{\gdef\recls@footskip{#1}}
186
226
 
187
227
  %% 表紙・開始番号・通しノンブル
188
228
  \newif\if@reclscover \@reclscovertrue
@@ -193,20 +233,22 @@
193
233
 
194
234
  \PassOptionsToClass{dvipdfmx,nomag}{jsbook}
195
235
  \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{jsbook}}%
196
- \ExecuteOptionsX{cameraready,hiddenfolio,%
236
+ \ExecuteOptionsX{cameraready,media,hiddenfolio,%
197
237
  paper,tombopaper,bleed_margin,paperwidth,paperheight,%
198
- Q,W,L,H,head,gutter,headheight,headsep,footskip,%
238
+ fontsize,line_length,number_of_lines,baselineskip,linegap,head_space,%
239
+ gutter,headheight,headsep,footskip,%
199
240
  cover,startpage,serial_pagination}
200
241
  \ProcessOptionsX\relax
201
242
 
202
- %% set specific papersize
243
+ %% set specific papersize, fontsize
203
244
  \recls@set@paper{\recls@paper}
204
245
  \recls@set@tombowpaper{\recls@tombowopts}
246
+ \recls@set@fontsize{\recls@fontsize}
205
247
 
206
248
  %% camera-ready PDF file preparation for each print, ebook
207
249
  \def\recls@tmp{preview}\ifx\recls@cameraready\recls@tmp
208
- %%FIXME: cameraready=preview の挙動は保留。例:フォント関係を仕込む
209
250
  \@camerareadyfalse\@pdfhyperlinkfalse\@reclscovertrue
251
+ \PassOptionsToClass{papersize}{jsbook}%
210
252
  \else\def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp
211
253
  \@camerareadytrue\@pdfhyperlinkfalse\@reclscoverfalse
212
254
  \IfFileExists{gentombow.sty}{%
@@ -214,11 +256,6 @@
214
256
  \RequirePackage[pdfbox,\recls@tombowopts]{gentombow}%
215
257
  \settombowbleed{\recls@tombobleed}%
216
258
  \recls@set@hiddenfolio{\recls@hiddenfolio}}%
217
- %%FIXME: gentombow upstreamでトンボ版スタイルコマンドが実装されたら、それに置き換えても良いかな。
218
- % \AtEndOfClass{%
219
- % \PassOptionsToPackage{\recls@tombowopts}{gentombow}%
220
- % \RequirePackage[hiddenfolio=\recls@hiddenfolio,tombobleed=\recls@tombobleed]{gentombow-hiddenfolio}%
221
- % }%
222
259
  }{%
223
260
  \IfFileExists{gentombow09j.sty}{% from vendor/gentombow.
224
261
  \AtEndOfClass{%
@@ -235,7 +272,7 @@
235
272
  \@camerareadytrue\@pdfhyperlinktrue\@reclscovertrue
236
273
  \PassOptionsToClass{papersize}{jsbook}%
237
274
  \else
238
- \recls@error{No such value of cameraready: \recls@cameraready}%
275
+ \recls@error{No such value of media: \recls@cameraready}%
239
276
  \fi\fi\fi
240
277
 
241
278
  %% 内部Unicode動作の時だけupTeXとみなす
@@ -246,222 +283,117 @@
246
283
  \PassOptionsToPackage{uplatex}{otf}
247
284
  \fi\fi
248
285
 
249
- \PassOptionsToClass{10pt}{jsbook}%%<= forcely load 10pt
250
286
  \LoadClass{jsbook}
251
- %%\typeout{!!! mag: \the\mag}%%=> 1000 -> OK
252
-
253
- \IfFileExists{platexrelease.sty}{}{%% is bundled in TL16 or higher release version
254
- \@ifundefined{jsc@setfontsize}{%%compatibility for TL13, TL14, TL15 frozen
255
- \newdimen\jsc@mpt
256
- \jsc@mpt=1\p@
257
- \def\jsc@setfontsize#1#2#3{%
258
- \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
259
- }\relax
260
- }
287
+
288
+ % \typeout{!!! magscale: \jsc@magscale}
289
+ % \typeout{!!! mag: \the\mag}%%=> 1000 -> OK
261
290
 
262
291
  %% override papersize with custom papersize
263
292
  \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
264
293
  \setlength{\paperwidth}{\recls@paperwidth}
265
294
  \setlength{\paperheight}{\recls@paperheight}
266
- \def\recls@tmp{pdf}\ifx\recls@cameraready\recls@tmp
295
+ \def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp\else
267
296
  \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
268
297
  \fi
269
298
  \fi\fi
270
299
 
271
- \def\recls@JYn{\if@recls@uptex JY2\else JY1\fi}%
272
- \def\recls@JTn{\if@recls@uptex JT2\else JT1\fi}%
273
- \def\recls@pfx@{\if@recls@uptex up\else \fi}%
274
- \def\recls@sfx@{\if@recls@uptex \else n\fi}%
275
- \def\recls@sc@le{\if@recls@uptex 0.924714\else 0.961026\fi}%
276
- \def\recls@jisrh{\recls@pfx@ jis\if@recls@uptex r-h\fi}%
277
- \def\recls@jisgh{\recls@pfx@ jisg\if@recls@uptex -h\fi}%
278
- \def\recls@jisrv{\recls@pfx@ jis\if@recls@uptex r\fi -v}%
279
- \def\recls@jisgv{\recls@pfx@ jisg-v}%
280
-
281
- \expandafter\let\csname\recls@JYn/mc/m/n/10\endcsname\relax
282
- \expandafter\let\csname\recls@JYn/gt/m/n/10\endcsname\relax
283
-
284
- %% calculate font size scaler
285
- \@tempdima=13\dimexpr 13\p@\relax
286
- \@tempdimb=\recls@Q\dimexpr\recls@Q\p@\relax
287
- \@settopoint\@tempdima \@settopoint\@tempdimb
288
- \@tempcnta=\strip@pt\@tempdima\relax
289
- \@tempcntb=\strip@pt\@tempdimb\relax
290
- \@tempdima=\dimexpr\@tempcntb\p@/\@tempcnta\relax
291
- \recls@get@p@{\@tempdima}{\recls@fnt@scale}% \typeout{!!! \recls@fnt@scale}%
292
-
293
- \RequirePackage{lmodern}
294
-
295
- \newdimen\JQ \JQ=1.08141Q\relax
296
-
297
- %% declare relative font definitions
298
- %% <family>: mc (reserved), gt (reserved), mgt?
299
- %% <series>: m (reserved), bx (reserved), eb?
300
- %% <shape>: n (reserved)
301
- %% JYn
302
- \DeclareFontShape{\recls@JYn}{mc}{m}{n}{%
303
- <-> s * [\recls@sc@le] \recls@jisrh
304
- }{}
305
- \DeclareFontShape{\recls@JYn}{gt}{m}{n}{%
306
- <-> s * [\recls@sc@le] \recls@jisgh
307
- }{}
308
- \DeclareFontShape{\recls@JYn}{mc}{bx}{n}{<->ssub*gt/m/n}{}
309
- \DeclareFontShape{\recls@JYn}{gt}{bx}{n}{<->ssub*gt/m/n}{}
310
- %% JTn
311
- \DeclareFontShape{\recls@JTn}{mc}{m}{n}{%
312
- <-> s * [\recls@sc@le] \recls@jisrv
313
- }{}
314
- \DeclareFontShape{\recls@JTn}{gt}{m}{n}{%
315
- <-> s * [\recls@sc@le] \recls@jisgv
316
- }{}
317
- \DeclareFontShape{\recls@JTn}{mc}{bx}{n}{<->ssub*gt/m/n}{}
318
- \DeclareFontShape{\recls@JTn}{gt}{bx}{n}{<->ssub*gt/m/n}{}
319
- %% it
320
- \DeclareFontShape{\recls@JYn}{mc}{m}{it}{<->ssub*mc/m/n}{}
321
- \DeclareFontShape{\recls@JYn}{mc}{bx}{it}{<->ssub*mc/bx/n}{}
322
- \DeclareFontShape{\recls@JYn}{gt}{m}{it}{<->ssub*gt/m/n}{}
323
- \DeclareFontShape{\recls@JYn}{gt}{bx}{it}{<->ssub*gt/bx/n}{}
324
- \DeclareFontShape{\recls@JTn}{mc}{m}{it}{<->ssub*mc/m/n}{}
325
- \DeclareFontShape{\recls@JTn}{mc}{bx}{it}{<->ssub*mc/bx/n}{}
326
- \DeclareFontShape{\recls@JTn}{gt}{m}{it}{<->ssub*gt/m/n}{}
327
- \DeclareFontShape{\recls@JTn}{gt}{bx}{it}{<->ssub*gt/bx/n}{}
328
- %% sl
329
- \DeclareFontShape{\recls@JYn}{mc}{m}{sl}{<->ssub*mc/m/n}{}
330
- \DeclareFontShape{\recls@JYn}{mc}{bx}{sl}{<->ssub*mc/bx/n}{}
331
- \DeclareFontShape{\recls@JYn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
332
- \DeclareFontShape{\recls@JYn}{gt}{bx}{sl}{<->ssub*gt/bx/n}{}
333
- \DeclareFontShape{\recls@JTn}{mc}{m}{sl}{<->ssub*mc/m/n}{}
334
- \DeclareFontShape{\recls@JTn}{mc}{bx}{sl}{<->ssub*mc/bx/n}{}
335
- \DeclareFontShape{\recls@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
336
- \DeclareFontShape{\recls@JTn}{gt}{bx}{sl}{<->ssub*gt/bx/n}{}
337
- %% sc
338
- \DeclareFontShape{\recls@JYn}{mc}{m}{sc}{<->ssub*mc/m/n}{}
339
- \DeclareFontShape{\recls@JYn}{mc}{bx}{sc}{<->ssub*mc/bx/n}{}
340
- \DeclareFontShape{\recls@JYn}{gt}{m}{sc}{<->ssub*gt/m/n}{}
341
- \DeclareFontShape{\recls@JYn}{gt}{bx}{sc}{<->ssub*gt/bx/n}{}
342
- \DeclareFontShape{\recls@JTn}{mc}{m}{sc}{<->ssub*mc/m/n}{}
343
- \DeclareFontShape{\recls@JTn}{mc}{bx}{sc}{<->ssub*mc/bx/n}{}
344
- \DeclareFontShape{\recls@JTn}{gt}{m}{sc}{<->ssub*gt/m/n}{}
345
- \DeclareFontShape{\recls@JTn}{gt}{bx}{sc}{<->ssub*gt/bx/n}{}
346
-
347
- \renewcommand{\normalsize}{%
348
- \jsc@setfontsize\normalsize{\recls@Q\JQ}{\recls@H H}
349
- \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
350
- \abovedisplayshortskip \z@ \@plus3\jsc@mpt
351
- \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
352
- \belowdisplayshortskip \belowdisplayskip
353
- \let\@listi\@listI}
354
- \hyphenpenalty\@M\relax
355
- \exhyphenpenalty\@M\relax
356
- \normalsize
357
-
358
- \setbox0\hbox{\char\jis"3441}%"
359
- \setlength\Cht{\ht0}
360
- \setlength\Cdp{\dp0}
361
- \setlength\Cwd{\wd0}
362
- \setlength\Cvs{\baselineskip}
363
- \setlength\Chs{\wd0}
364
- \setbox0=\box\voidb@x
365
-
366
- \renewcommand{\small}{%
367
- \ifnarrowbaselines
368
- \jsc@setfontsize\small
369
- {\dimexpr\recls@Q\JQ - 1\JQ}{1.5\dimexpr\recls@Q H - 3H}%
370
- \else
371
- \jsc@setfontsize\small
372
- {\dimexpr\recls@Q\JQ - 1\JQ}{1.5\dimexpr\recls@Q H - 1H}%
373
- \fi
374
- \abovedisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
375
- \abovedisplayshortskip \z@ \@plus3\jsc@mpt
376
- \belowdisplayskip \abovedisplayskip
377
- \belowdisplayshortskip \belowdisplayskip
378
- \def\@listi{\leftmargin\leftmargini
379
- \topsep \z@
380
- \parsep \z@
381
- \itemsep \parsep}}
382
-
383
- \renewcommand{\footnotesize}{%
384
- \ifnarrowbaselines
385
- \jsc@setfontsize\footnotesize
386
- {\dimexpr\recls@Q\JQ - 2\JQ}{1.5\dimexpr\recls@Q H - 3H}%
387
- \else
388
- \jsc@setfontsize\footnotesize
389
- {\dimexpr\recls@Q\JQ - 2\JQ}{1.5\dimexpr\recls@Q H - 2H}%
390
- \fi
391
- \abovedisplayskip 6\jsc@mpt \@plus2\jsc@mpt \@minus3\jsc@mpt
392
- \abovedisplayshortskip \z@ \@plus2\jsc@mpt
393
- \belowdisplayskip \abovedisplayskip
394
- \belowdisplayshortskip \belowdisplayskip
395
- \def\@listi{\leftmargin\leftmargini
396
- \topsep \z@
397
- \parsep \z@
398
- \itemsep \parsep}}
399
-
400
- \renewcommand{\scriptsize}{\jsc@setfontsize\scriptsize
401
- {\dimexpr\recls@Q\JQ - 3\JQ}{1.25\dimexpr\recls@Q H - 3H}}
402
- \renewcommand{\tiny}{\jsc@setfontsize\tiny
403
- {.5\dimexpr\recls@Q\JQ}{.5\dimexpr\recls@Q H + 2H}}
404
- \if@twocolumn
405
- \renewcommand{\large}{\@setfontsize\large
406
- {\recls@fnt@scale\dimexpr 18\JQ}{\n@baseline}}
407
- \else
408
- \renewcommand{\large}{\@setfontsize\large
409
- {\recls@fnt@scale\dimexpr 18\JQ}{\recls@fnt@scale\dimexpr 27H}}
300
+ %% baseline
301
+ %% TL15のjsbook.clsまで面倒みないことでOK?
302
+ % \@ifundefined{jsc@setfontsize}{%
303
+ % \newdimen\jsc@mpt
304
+ % \newdimen\jsc@mmm
305
+ % \def\jsc@setfontsize#1#2#3{%
306
+ % \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
307
+ % \jsc@mpt=\jsc@magscale\p@
308
+ % \jsc@mmm=\jsc@magscale mm
309
+ % }\relax
310
+ \ifx\recls@linegap\@empty\else
311
+ \setlength{\baselineskip}{\dimexpr\Cwd+\recls@linegap}
312
+ \renewcommand{\normalsize}{%
313
+ \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt
314
+ \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
315
+ \abovedisplayshortskip \z@ \@plus3\jsc@mpt
316
+ \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
317
+ \belowdisplayshortskip \belowdisplayskip
318
+ \let\@listi\@listI}
319
+ \normalsize
320
+ \fi
321
+ \ifx\recls@baselineskip\@empty\else
322
+ \setlength{\baselineskip}{\recls@baselineskip}
323
+ \renewcommand{\normalsize}{%
324
+ \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt
325
+ \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
326
+ \abovedisplayshortskip \z@ \@plus3\jsc@mpt
327
+ \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
328
+ \belowdisplayshortskip \belowdisplayskip
329
+ \let\@listi\@listI}
330
+ \normalsize
410
331
  \fi
411
- \renewcommand{\Large}{\@setfontsize\Large
412
- {\recls@fnt@scale\dimexpr 20\JQ}{\recls@fnt@scale\dimexpr 30H}}
413
- \renewcommand{\LARGE}{\@setfontsize\LARGE
414
- {\recls@fnt@scale\dimexpr 24\JQ}{\recls@fnt@scale\dimexpr 36H}}
415
- \renewcommand{\huge}{\@setfontsize\huge
416
- {\recls@fnt@scale\dimexpr 28\JQ}{\recls@fnt@scale\dimexpr 42H}}
417
- \renewcommand{\Huge}{\@setfontsize\Huge
418
- {\recls@fnt@scale\dimexpr 32\JQ}{\recls@fnt@scale\dimexpr 48H}}
419
- \renewcommand{\HUGE}{\jsc@setfontsize\HUGE
420
- {\recls@fnt@scale\dimexpr 36\JQ}{\recls@fnt@scale\dimexpr 54H}}
332
+ \setlength{\Cvs}{\baselineskip}
421
333
 
422
334
  %% headheight, headsep, footskip
423
- \setlength\topskip{\Cht}
424
- \ifdim\recls@headheight>\z@\relax\setlength\headheight{\recls@headheight}\fi
425
- \ifdim\recls@headsep>\z@\relax\setlength\headsep{\recls@headsep}\fi
426
- \ifdim\recls@footskip>\z@\relax\setlength\footskip{\recls@footskip}\fi
427
- \setlength\maxdepth{.5\topskip}
335
+ % \setlength\topskip{\Cht}%%<= カスタムにしても、jsbook.clsのままにしとく
336
+ \ifx\recls@headheight\@empty\else\setlength\headheight{\recls@headheight}\fi
337
+ \ifx\recls@headsep\@empty\else\setlength\headsep{\recls@headsep}\fi
338
+ \ifx\recls@footskip\@empty\else\setlength\footskip{\recls@footskip}\fi
339
+ % \setlength\maxdepth{.5\topskip}%%<= カスタムにしても、jsbook.clsのままにしとく
428
340
 
429
341
  %% 字詰め数、行数
430
- \setlength\textwidth{\recls@W\Cwd}
431
- \setlength\textheight{\recls@L\Cvs}
432
- \addtolength\textheight{-\Cvs}\addtolength\textheight{\Cwd}
433
- \addtolength\textheight{1H}%.5H
434
-
435
- \setlength\fullwidth{\textwidth}
342
+ \ifx\recls@line@length\@empty\else
343
+ \@tempcnta\dimexpr\recls@line@length/\Cwd\relax
344
+ \setlength\textwidth{\@tempcnta\Cwd}
345
+ \setlength\fullwidth{\textwidth}
346
+ \fi
347
+ \ifx\recls@number@of@lines\@empty\else
348
+ \setlength\textheight{\recls@number@of@lines\Cvs}
349
+ \addtolength\textheight{-\Cvs}\addtolength\textheight{\Cwd}
350
+ \addtolength\textheight{1H}
351
+ \fi
436
352
 
437
353
  %% ノド、小口
438
- \ifdim\recls@gutter>\z@
439
- \setlength\oddsidemargin{\recls@gutter}%ノド
440
- \addtolength\oddsidemargin{-1in}
441
- \setlength\evensidemargin{\paperwidth}
442
- \addtolength\evensidemargin{-2in}
443
- \addtolength\evensidemargin{-\oddsidemargin}
444
- \addtolength\evensidemargin{-\textwidth}
354
+ %% gutterがあればそれに基づいて設定。
355
+ %% line_lengthが指定されていればtextwidth基準にして設定。
356
+ %% どちらも指定がなければjsbookをそのまま使用。
357
+ \ifx\recls@gutter\@empty
358
+ \ifx\recls@line@length\@empty\else
359
+ \setlength\oddsidemargin{\paperwidth}
360
+ \addtolength\oddsidemargin{-\fullwidth}%%line_lengthを与えたとき\textwidth
361
+ \setlength\oddsidemargin{.5\oddsidemargin}
362
+ \addtolength\oddsidemargin{-1in}
363
+ \setlength\evensidemargin{\oddsidemargin}
364
+ \edef\recls@gutter{\evensidemargin}
365
+ \fi
445
366
  \else
446
- \setlength\oddsidemargin\paperwidth
447
- \addtolength\oddsidemargin{-\textwidth}
448
- \setlength\oddsidemargin{.5\oddsidemargin}
449
- \addtolength\oddsidemargin{-1in}
450
- \setlength\evensidemargin\oddsidemargin
451
- \edef\recls@gutter{\evensidemargin}
367
+ \setlength\oddsidemargin{\recls@gutter}%ノド
368
+ \addtolength\oddsidemargin{-1in}
369
+ \setlength\evensidemargin{\paperwidth}
370
+ \addtolength\evensidemargin{-2in}
371
+ \addtolength\evensidemargin{-\oddsidemargin}
372
+ \addtolength\evensidemargin{-\textwidth}
452
373
  \fi
453
374
 
454
375
  %% 天、地
455
- \ifdim\recls@head>\z@
456
- \setlength\topmargin{\recls@head}%天
376
+ \ifx\recls@head@space\@empty
377
+ \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
378
+ \setlength\topmargin\paperheight
379
+ \addtolength\topmargin{-\textheight}
380
+ \setlength\topmargin{.5\topmargin}
381
+ \addtolength\topmargin{-1in}
382
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
383
+ \fi\fi
384
+ \ifx\recls@number@of@lines\@empty\else
385
+ \setlength\topmargin\paperheight
386
+ \addtolength\topmargin{-\textheight}
387
+ \setlength\topmargin{.5\topmargin}
388
+ \addtolength\topmargin{-1in}
389
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
390
+ \fi
391
+ \edef\recls@head@space{\dimexpr\topmargin+1in+\headheight+\headsep}
457
392
  \else
458
- \setlength\topmargin\paperheight
459
- \addtolength\topmargin{-\textheight}
460
- \edef\recls@head{\dimexpr\topmargin+1in+\headheight+\headsep}
461
- \setlength\topmargin{.5\topmargin}
393
+ \setlength\topmargin{\recls@head@space}%天
394
+ \addtolength\topmargin{-1in}
395
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
462
396
  \fi
463
- \addtolength\topmargin{-1in}
464
- \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
465
397
 
466
398
  %% load hyperref package
467
399
  \RequirePackage[dvipdfmx, \if@pdfhyperlink\else draft,\fi
@@ -475,7 +407,7 @@
475
407
  %% more useful macros
476
408
  %% ----------
477
409
  %% include fullpage graphics
478
- \let\grnchry@head\recls@head
410
+ \let\grnchry@head\recls@head@space
479
411
  \let\grnchry@gutter\recls@gutter
480
412
  \newcommand*\includefullpagegraphics{%
481
413
  \clearpage
@@ -503,7 +435,17 @@
503
435
  \clearpage
504
436
  }
505
437
 
506
- % coverオプションによる表紙判定の上書き
438
+ %% 空ページ
439
+ \newcommand\oneblankpage{\clearpage\thispagestyle{empty}%
440
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi}
441
+
442
+ %% 横書き向けの、奇数ページまでの改丁(\cleardoublepage)・偶数ページまでの改丁(\clearoddpage)
443
+ \let\cleardoublepage@right\cleardoublepage
444
+ \def\cleardoublepage@left{\clearpage\if@twoside\ifodd\c@page
445
+ \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
446
+ \let\clearoddpage\cleardoublepage@left
447
+
448
+ %% coverオプションによる表紙判定の上書き
507
449
  \def\recls@tmp{true}\ifx\recls@forcecover\recls@tmp
508
450
  \@reclscovertrue
509
451
  \else\def\recls@tmp{false}\ifx\recls@forcecover\recls@tmp
@@ -511,16 +453,16 @@
511
453
  \else% それ以外の値は単に無視
512
454
  \fi\fi
513
455
 
514
- % シンプルな通しノンブル
456
+ %% シンプルな通しノンブル
515
457
  \ifrecls@serialpage
516
458
  \renewcommand*{\pagenumbering}[1]{%
517
459
  \gdef\thepage{\@arabic\c@page}}
518
460
  \fi
519
461
 
520
- % 開始ページを変更
462
+ %% 開始ページを変更
521
463
  \g@addto@macro\frontmatter{\setcounter{page}{\the\recls@startpage}}
522
464
 
523
- % titlepageのsetcounterを使わない
465
+ %% titlepageのsetcounterを使わない
524
466
  \renewenvironment{titlepage}{%
525
467
  \clearpage
526
468
  \if@twoside\ifodd\c@page\else