templates/latex/review-jsbook/review-jsbook.cls in review-3.0.0.preview4 vs templates/latex/review-jsbook/review-jsbook.cls in review-3.0.0.rc1
- old
+ new
@@ -17,13 +17,10 @@
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
% THE SOFTWARE.
-\ifx\epTeXinputencoding\undefined\else
- \epTeXinputencoding utf8
-\fi
\NeedsTeXFormat{pLaTeX2e}
\ProvidesClass{review-jsbook}
[2018/09/30 v3.0 Re:VIEW pLaTeX class modified for jsbook.cls]
\def\recls@error{\ClassError{review-jsbook}}
@@ -80,13 +77,10 @@
{\csname recls@paper@#1\endcsname}}
\def\@recls@set@paper#1{%
\edef\recls@set@js@paper{#1}%
\PassOptionsToClass{\recls@set@js@paper}{jsbook}}
-\def\recls@disable@jsopt#1{%
- \recls@DeclareOption{#1}{\recls@error{option #1: not available}}}
-
\recls@define@paper{a3}{paper}
\recls@define@paper{a4}{paper}
\recls@define@paper{a5}{paper}
\recls@define@paper{a6}{paper}
\recls@define@paper{b4}{paper}
@@ -96,15 +90,59 @@
\recls@define@paper{b5var}{}
\recls@define@paper{letter}{paper}
\recls@define@paper{legal}{paper}
\recls@define@paper{executive}{paper}
-%% disable some options of jsbook.cls
+%% define/set specific fontsize
+\def\recls@define@fontsize#1{%
+ \@namedef{recls@fontsize@#1}{#1}}
+
+\def\recls@set@fontsize#1{%
+ \@ifundefined{recls@fontsize@#1}{%
+ \recls@set@customfontsize{#1}}{\@recls@set@fontsize{#1}}}
+\def\@recls@set@fontsize#1{%
+ \expandafter\expandafter\expandafter
+ \@@recls@set@fontsize\expandafter\expandafter\expandafter
+ {\csname recls@fontsize@#1\endcsname}}
+\def\@@recls@set@fontsize#1{%
+ \edef\recls@jsfontsize{#1}%
+ \ifdim\recls@jsfontsize=\recls@fontsize\else
+ \recls@warning{jsbook.cls has no such fontsize '\recls@fontsize'.^^J
+ pass through '\recls@jsfontsize' option to jsbook.cls}%
+ \fi
+ \PassOptionsToClass{\recls@jsfontsize}{jsbook}}
+
+%% NOTE: カスタムフォントサイズの対応は、事実上、止めることにしました。
+\def\recls@set@customfontsize#1{%
+ \setlength{\@tempdima}{#1}%
+ \ifdim\@tempdima<8.5pt\recls@set@fontsize{8pt}%
+ \else\ifdim\@tempdima<9.5pt\recls@set@fontsize{9pt}%
+ \else\ifdim\@tempdima<10.5pt\recls@set@fontsize{10pt}%
+ \else\ifdim\@tempdima<11.5pt\recls@set@fontsize{11pt}%
+ \else\ifdim\@tempdima<12.5pt\recls@set@fontsize{12pt}%
+ \else\ifdim\@tempdima<13pt\recls@set@fontsize{14pt}%
+ \else\ifdim\@tempdima<18.5pt\recls@set@fontsize{17pt}%
+ \else\ifdim\@tempdima<20.5pt\recls@set@fontsize{20pt}%
+ \else\ifdim\@tempdima<23pt\recls@set@fontsize{21pt}%
+ \else\ifdim\@tempdima<27.5pt\recls@set@fontsize{25pt}%
+ \else\ifdim\@tempdima<33pt\recls@set@fontsize{30pt}%
+ \else\ifdim\@tempdima<39.5pt\recls@set@fontsize{36pt}%
+ \else\recls@set@fontsize{43pt}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+}
+
\@for\recls@tmp:={%
- a4j,a5j,b4j,b5j,%
8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt,21pt,25pt,30pt,36pt,43pt,12Q,14Q,%
- 10ptj,10.5ptj,11ptj,12ptj,winjis,mingoth}\do{%
+ 10ptj,10.5ptj,11ptj,12ptj}\do{%
+ \expandafter\recls@define@fontsize\expandafter{\recls@tmp}}
+
+%% disable some options of jsbook.cls
+\def\recls@disable@jsopt#1{%
+ \recls@DeclareOption{#1}{\recls@error{option #1: not available}}}
+
+\@for\recls@tmp:={%
+ a4j,a5j,b4j,b5j,winjis,mingoth}\do{%
\expandafter\recls@disable@jsopt\expandafter{\recls@tmp}}
%% \recls@set@tombowpaper{<papersize>}
\def\recls@set@tombowpaper#1{%
\xdef#1{\ifx\recls@hiddenfolio\@empty tombo,\fi#1}}
@@ -154,73 +192,72 @@
%% hiddenfolio=shippo
\@namedef{@makehiddenfolio@shippo}{%
\@nameuse{@makehiddenfolio@nikko-pc}}
-%% cameraready=print,ebook,preview
+%% media=print,ebook,preview
\newif\if@cameraready \@camerareadyfalse
\newif\if@pdfhyperlink \@pdfhyperlinkfalse
\DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}}
+\DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}}
%% 用紙
-\DeclareOptionX{paper}[a5]{\gdef\recls@paper{#1}}
+\DeclareOptionX{paper}[a4]{\gdef\recls@paper{#1}}
\DeclareOptionX{tombopaper}{%
\gdef\recls@tombowopts{}%%default: auto-detect
- \ifx#1\@empty\else\gdef\recls@tombowopts{tombo-#1}\fi}
+ \ifx#1\@empty\else\gdef\recls@tombowopts{tombow-#1}\fi}
\DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}}
%% 隠しノンブルプリセット
\DeclareOptionX{hiddenfolio}{\gdef\recls@hiddenfolio{#1}}%%default: (none)
%% カスタム用紙サイズ
\DeclareOptionX{paperwidth}{\gdef\recls@paperwidth{#1}}
\DeclareOptionX{paperheight}{\gdef\recls@paperheight{#1}}
-%% 基本版面 QWLH、天、ノド
-\DeclareOptionX{Q}[13]{\gdef\recls@Q{#1}}
-\DeclareOptionX{W}[35]{\gdef\recls@W{#1}}
-\DeclareOptionX{L}[32]{\gdef\recls@L{#1}}
-\DeclareOptionX{H}[22]{\gdef\recls@H{#1}}
-\DeclareOptionX{head}[\z@]{\gdef\recls@head{#1}}%[18mm]
-\DeclareOptionX{gutter}[\z@]{\gdef\recls@gutter{#1}}%[20mm]
+%% 基本版面、天、ノド
+\DeclareOptionX{fontsize}[10pt]{\gdef\recls@fontsize{#1}}
+\DeclareOptionX{line_length}{\gdef\recls@line@length{#1}}%%ベタ組みになるように調整
+\DeclareOptionX{number_of_lines}{\gdef\recls@number@of@lines{#1}}
+\DeclareOptionX{baselineskip}{\def\recls@baselineskip{#1}}
+\DeclareOptionX{linegap}{\def\recls@linegap{#1}}
+\DeclareOptionX{head_space}{\gdef\recls@head@space{#1}}
+\DeclareOptionX{gutter}{\gdef\recls@gutter{#1}}
%% headheight,headsep,footskip
-\DeclareOptionX{headheight}[\z@]{\gdef\recls@headheight{#1}}
-\DeclareOptionX{headsep}[\z@]{\gdef\recls@headsep{#1}}
-\DeclareOptionX{footskip}[\z@]{\gdef\recls@footskip{#1}}
+\DeclareOptionX{headheight}{\gdef\recls@headheight{#1}}
+\DeclareOptionX{headsep}{\gdef\recls@headsep{#1}}
+\DeclareOptionX{footskip}{\gdef\recls@footskip{#1}}
%% 表紙・開始番号・通しノンブル
\newif\if@reclscover \@reclscovertrue
\newif\ifrecls@serialpage \recls@serialpagefalse
\DeclareOptionX{cover}[\@empty]{\gdef\recls@forcecover{#1}}
\DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr#1}}
\DeclareOptionX{serial_pagination}[false]{\csname recls@serialpage#1\endcsname}
\PassOptionsToClass{dvipdfmx,nomag}{jsbook}
\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{jsbook}}%
-\ExecuteOptionsX{cameraready,hiddenfolio,%
+\ExecuteOptionsX{cameraready,media,hiddenfolio,%
paper,tombopaper,bleed_margin,paperwidth,paperheight,%
- Q,W,L,H,head,gutter,headheight,headsep,footskip,%
+ fontsize,line_length,number_of_lines,baselineskip,linegap,head_space,%
+ gutter,headheight,headsep,footskip,%
cover,startpage,serial_pagination}
\ProcessOptionsX\relax
-%% set specific papersize
+%% set specific papersize, fontsize
\recls@set@paper{\recls@paper}
\recls@set@tombowpaper{\recls@tombowopts}
+\recls@set@fontsize{\recls@fontsize}
%% camera-ready PDF file preparation for each print, ebook
\def\recls@tmp{preview}\ifx\recls@cameraready\recls@tmp
-%%FIXME: cameraready=preview の挙動は保留。例:フォント関係を仕込む
\@camerareadyfalse\@pdfhyperlinkfalse\@reclscovertrue
+ \PassOptionsToClass{papersize}{jsbook}%
\else\def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp
\@camerareadytrue\@pdfhyperlinkfalse\@reclscoverfalse
\IfFileExists{gentombow.sty}{%
\AtEndOfClass{%
\RequirePackage[pdfbox,\recls@tombowopts]{gentombow}%
\settombowbleed{\recls@tombobleed}%
\recls@set@hiddenfolio{\recls@hiddenfolio}}%
- %%FIXME: gentombow upstreamでトンボ版スタイルコマンドが実装されたら、それに置き換えても良いかな。
- % \AtEndOfClass{%
- % \PassOptionsToPackage{\recls@tombowopts}{gentombow}%
- % \RequirePackage[hiddenfolio=\recls@hiddenfolio,tombobleed=\recls@tombobleed]{gentombow-hiddenfolio}%
- % }%
}{%
\IfFileExists{gentombow09j.sty}{% from vendor/gentombow.
\AtEndOfClass{%
\RequirePackage[pdfbox,\recls@tombowopts]{gentombow09j}%
\settombowbleed{\recls@tombobleed}%
@@ -233,237 +270,132 @@
}}%
\else\def\recls@tmp{ebook}\ifx\recls@cameraready\recls@tmp
\@camerareadytrue\@pdfhyperlinktrue\@reclscovertrue
\PassOptionsToClass{papersize}{jsbook}%
\else
- \recls@error{No such value of cameraready: \recls@cameraready}%
+ \recls@error{No such value of media: \recls@cameraready}%
\fi\fi\fi
%% 内部Unicode動作の時だけupTeXとみなす
\newif\if@recls@uptex \@recls@uptexfalse
\ifx\ucs\@undefined\else \ifnum\ucs"3000="3000
\@recls@uptextrue
\PassOptionsToClass{uplatex}{jsbook}
\PassOptionsToPackage{uplatex}{otf}
\fi\fi
-\PassOptionsToClass{10pt}{jsbook}%%<= forcely load 10pt
\LoadClass{jsbook}
-%%\typeout{!!! mag: \the\mag}%%=> 1000 -> OK
-\IfFileExists{platexrelease.sty}{}{%% is bundled in TL16 or higher release version
-\@ifundefined{jsc@setfontsize}{%%compatibility for TL13, TL14, TL15 frozen
-\newdimen\jsc@mpt
-\jsc@mpt=1\p@
-\def\jsc@setfontsize#1#2#3{%
- \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
-}\relax
-}
+% \typeout{!!! magscale: \jsc@magscale}
+% \typeout{!!! mag: \the\mag}%%=> 1000 -> OK
%% override papersize with custom papersize
\ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
\setlength{\paperwidth}{\recls@paperwidth}
\setlength{\paperheight}{\recls@paperheight}
- \def\recls@tmp{pdf}\ifx\recls@cameraready\recls@tmp
+ \def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp\else
\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
\fi
\fi\fi
-\def\recls@JYn{\if@recls@uptex JY2\else JY1\fi}%
-\def\recls@JTn{\if@recls@uptex JT2\else JT1\fi}%
-\def\recls@pfx@{\if@recls@uptex up\else \fi}%
-\def\recls@sfx@{\if@recls@uptex \else n\fi}%
-\def\recls@sc@le{\if@recls@uptex 0.924714\else 0.961026\fi}%
-\def\recls@jisrh{\recls@pfx@ jis\if@recls@uptex r-h\fi}%
-\def\recls@jisgh{\recls@pfx@ jisg\if@recls@uptex -h\fi}%
-\def\recls@jisrv{\recls@pfx@ jis\if@recls@uptex r\fi -v}%
-\def\recls@jisgv{\recls@pfx@ jisg-v}%
-
-\expandafter\let\csname\recls@JYn/mc/m/n/10\endcsname\relax
-\expandafter\let\csname\recls@JYn/gt/m/n/10\endcsname\relax
-
-%% calculate font size scaler
-\@tempdima=13\dimexpr 13\p@\relax
-\@tempdimb=\recls@Q\dimexpr\recls@Q\p@\relax
-\@settopoint\@tempdima \@settopoint\@tempdimb
-\@tempcnta=\strip@pt\@tempdima\relax
-\@tempcntb=\strip@pt\@tempdimb\relax
-\@tempdima=\dimexpr\@tempcntb\p@/\@tempcnta\relax
-\recls@get@p@{\@tempdima}{\recls@fnt@scale}% \typeout{!!! \recls@fnt@scale}%
-
-\RequirePackage{lmodern}
-
-\newdimen\JQ \JQ=1.08141Q\relax
-
-%% declare relative font definitions
-%% <family>: mc (reserved), gt (reserved), mgt?
-%% <series>: m (reserved), bx (reserved), eb?
-%% <shape>: n (reserved)
-%% JYn
-\DeclareFontShape{\recls@JYn}{mc}{m}{n}{%
- <-> s * [\recls@sc@le] \recls@jisrh
-}{}
-\DeclareFontShape{\recls@JYn}{gt}{m}{n}{%
- <-> s * [\recls@sc@le] \recls@jisgh
-}{}
-\DeclareFontShape{\recls@JYn}{mc}{bx}{n}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{bx}{n}{<->ssub*gt/m/n}{}
-%% JTn
-\DeclareFontShape{\recls@JTn}{mc}{m}{n}{%
- <-> s * [\recls@sc@le] \recls@jisrv
-}{}
-\DeclareFontShape{\recls@JTn}{gt}{m}{n}{%
- <-> s * [\recls@sc@le] \recls@jisgv
-}{}
-\DeclareFontShape{\recls@JTn}{mc}{bx}{n}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{bx}{n}{<->ssub*gt/m/n}{}
-%% it
-\DeclareFontShape{\recls@JYn}{mc}{m}{it}{<->ssub*mc/m/n}{}
-\DeclareFontShape{\recls@JYn}{mc}{bx}{it}{<->ssub*mc/bx/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{m}{it}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{bx}{it}{<->ssub*gt/bx/n}{}
-\DeclareFontShape{\recls@JTn}{mc}{m}{it}{<->ssub*mc/m/n}{}
-\DeclareFontShape{\recls@JTn}{mc}{bx}{it}{<->ssub*mc/bx/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{m}{it}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{bx}{it}{<->ssub*gt/bx/n}{}
-%% sl
-\DeclareFontShape{\recls@JYn}{mc}{m}{sl}{<->ssub*mc/m/n}{}
-\DeclareFontShape{\recls@JYn}{mc}{bx}{sl}{<->ssub*mc/bx/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{bx}{sl}{<->ssub*gt/bx/n}{}
-\DeclareFontShape{\recls@JTn}{mc}{m}{sl}{<->ssub*mc/m/n}{}
-\DeclareFontShape{\recls@JTn}{mc}{bx}{sl}{<->ssub*mc/bx/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{bx}{sl}{<->ssub*gt/bx/n}{}
-%% sc
-\DeclareFontShape{\recls@JYn}{mc}{m}{sc}{<->ssub*mc/m/n}{}
-\DeclareFontShape{\recls@JYn}{mc}{bx}{sc}{<->ssub*mc/bx/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{m}{sc}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JYn}{gt}{bx}{sc}{<->ssub*gt/bx/n}{}
-\DeclareFontShape{\recls@JTn}{mc}{m}{sc}{<->ssub*mc/m/n}{}
-\DeclareFontShape{\recls@JTn}{mc}{bx}{sc}{<->ssub*mc/bx/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{m}{sc}{<->ssub*gt/m/n}{}
-\DeclareFontShape{\recls@JTn}{gt}{bx}{sc}{<->ssub*gt/bx/n}{}
-
-\renewcommand{\normalsize}{%
- \jsc@setfontsize\normalsize{\recls@Q\JQ}{\recls@H H}
- \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
- \abovedisplayshortskip \z@ \@plus3\jsc@mpt
- \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
- \belowdisplayshortskip \belowdisplayskip
- \let\@listi\@listI}
-\hyphenpenalty\@M\relax
-\exhyphenpenalty\@M\relax
-\normalsize
-
-\setbox0\hbox{\char\jis"3441}%"
-\setlength\Cht{\ht0}
-\setlength\Cdp{\dp0}
-\setlength\Cwd{\wd0}
-\setlength\Cvs{\baselineskip}
-\setlength\Chs{\wd0}
-\setbox0=\box\voidb@x
-
-\renewcommand{\small}{%
- \ifnarrowbaselines
- \jsc@setfontsize\small
- {\dimexpr\recls@Q\JQ - 1\JQ}{1.5\dimexpr\recls@Q H - 3H}%
- \else
- \jsc@setfontsize\small
- {\dimexpr\recls@Q\JQ - 1\JQ}{1.5\dimexpr\recls@Q H - 1H}%
- \fi
- \abovedisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
- \abovedisplayshortskip \z@ \@plus3\jsc@mpt
- \belowdisplayskip \abovedisplayskip
- \belowdisplayshortskip \belowdisplayskip
- \def\@listi{\leftmargin\leftmargini
- \topsep \z@
- \parsep \z@
- \itemsep \parsep}}
-
-\renewcommand{\footnotesize}{%
- \ifnarrowbaselines
- \jsc@setfontsize\footnotesize
- {\dimexpr\recls@Q\JQ - 2\JQ}{1.5\dimexpr\recls@Q H - 3H}%
- \else
- \jsc@setfontsize\footnotesize
- {\dimexpr\recls@Q\JQ - 2\JQ}{1.5\dimexpr\recls@Q H - 2H}%
- \fi
- \abovedisplayskip 6\jsc@mpt \@plus2\jsc@mpt \@minus3\jsc@mpt
- \abovedisplayshortskip \z@ \@plus2\jsc@mpt
- \belowdisplayskip \abovedisplayskip
- \belowdisplayshortskip \belowdisplayskip
- \def\@listi{\leftmargin\leftmargini
- \topsep \z@
- \parsep \z@
- \itemsep \parsep}}
-
-\renewcommand{\scriptsize}{\jsc@setfontsize\scriptsize
- {\dimexpr\recls@Q\JQ - 3\JQ}{1.25\dimexpr\recls@Q H - 3H}}
-\renewcommand{\tiny}{\jsc@setfontsize\tiny
- {.5\dimexpr\recls@Q\JQ}{.5\dimexpr\recls@Q H + 2H}}
-\if@twocolumn
- \renewcommand{\large}{\@setfontsize\large
- {\recls@fnt@scale\dimexpr 18\JQ}{\n@baseline}}
-\else
- \renewcommand{\large}{\@setfontsize\large
- {\recls@fnt@scale\dimexpr 18\JQ}{\recls@fnt@scale\dimexpr 27H}}
+%% baseline
+%% TL15のjsbook.clsまで面倒みないことでOK?
+% \@ifundefined{jsc@setfontsize}{%
+% \newdimen\jsc@mpt
+% \newdimen\jsc@mmm
+% \def\jsc@setfontsize#1#2#3{%
+% \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
+% \jsc@mpt=\jsc@magscale\p@
+% \jsc@mmm=\jsc@magscale mm
+% }\relax
+\ifx\recls@linegap\@empty\else
+ \setlength{\baselineskip}{\dimexpr\Cwd+\recls@linegap}
+ \renewcommand{\normalsize}{%
+ \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt
+ \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
+ \abovedisplayshortskip \z@ \@plus3\jsc@mpt
+ \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
+ \belowdisplayshortskip \belowdisplayskip
+ \let\@listi\@listI}
+ \normalsize
\fi
-\renewcommand{\Large}{\@setfontsize\Large
- {\recls@fnt@scale\dimexpr 20\JQ}{\recls@fnt@scale\dimexpr 30H}}
-\renewcommand{\LARGE}{\@setfontsize\LARGE
- {\recls@fnt@scale\dimexpr 24\JQ}{\recls@fnt@scale\dimexpr 36H}}
-\renewcommand{\huge}{\@setfontsize\huge
- {\recls@fnt@scale\dimexpr 28\JQ}{\recls@fnt@scale\dimexpr 42H}}
-\renewcommand{\Huge}{\@setfontsize\Huge
- {\recls@fnt@scale\dimexpr 32\JQ}{\recls@fnt@scale\dimexpr 48H}}
-\renewcommand{\HUGE}{\jsc@setfontsize\HUGE
- {\recls@fnt@scale\dimexpr 36\JQ}{\recls@fnt@scale\dimexpr 54H}}
+\ifx\recls@baselineskip\@empty\else
+ \setlength{\baselineskip}{\recls@baselineskip}
+ \renewcommand{\normalsize}{%
+ \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt
+ \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
+ \abovedisplayshortskip \z@ \@plus3\jsc@mpt
+ \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
+ \belowdisplayshortskip \belowdisplayskip
+ \let\@listi\@listI}
+ \normalsize
+\fi
+\setlength{\Cvs}{\baselineskip}
%% headheight, headsep, footskip
-\setlength\topskip{\Cht}
-\ifdim\recls@headheight>\z@\relax\setlength\headheight{\recls@headheight}\fi
-\ifdim\recls@headsep>\z@\relax\setlength\headsep{\recls@headsep}\fi
-\ifdim\recls@footskip>\z@\relax\setlength\footskip{\recls@footskip}\fi
-\setlength\maxdepth{.5\topskip}
+% \setlength\topskip{\Cht}%%<= カスタムにしても、jsbook.clsのままにしとく
+\ifx\recls@headheight\@empty\else\setlength\headheight{\recls@headheight}\fi
+\ifx\recls@headsep\@empty\else\setlength\headsep{\recls@headsep}\fi
+\ifx\recls@footskip\@empty\else\setlength\footskip{\recls@footskip}\fi
+% \setlength\maxdepth{.5\topskip}%%<= カスタムにしても、jsbook.clsのままにしとく
%% 字詰め数、行数
-\setlength\textwidth{\recls@W\Cwd}
-\setlength\textheight{\recls@L\Cvs}
-\addtolength\textheight{-\Cvs}\addtolength\textheight{\Cwd}
-\addtolength\textheight{1H}%.5H
+\ifx\recls@line@length\@empty\else
+ \@tempcnta\dimexpr\recls@line@length/\Cwd\relax
+ \setlength\textwidth{\@tempcnta\Cwd}
+ \setlength\fullwidth{\textwidth}
+\fi
+\ifx\recls@number@of@lines\@empty\else
+ \setlength\textheight{\recls@number@of@lines\Cvs}
+ \addtolength\textheight{-\Cvs}\addtolength\textheight{\Cwd}
+ \addtolength\textheight{1H}
+\fi
-\setlength\fullwidth{\textwidth}
-
%% ノド、小口
-\ifdim\recls@gutter>\z@
-\setlength\oddsidemargin{\recls@gutter}%ノド
-\addtolength\oddsidemargin{-1in}
-\setlength\evensidemargin{\paperwidth}
-\addtolength\evensidemargin{-2in}
-\addtolength\evensidemargin{-\oddsidemargin}
-\addtolength\evensidemargin{-\textwidth}
+%% gutterがあればそれに基づいて設定。
+%% line_lengthが指定されていればtextwidth基準にして設定。
+%% どちらも指定がなければjsbookをそのまま使用。
+\ifx\recls@gutter\@empty
+ \ifx\recls@line@length\@empty\else
+ \setlength\oddsidemargin{\paperwidth}
+ \addtolength\oddsidemargin{-\fullwidth}%%line_lengthを与えたとき\textwidth
+ \setlength\oddsidemargin{.5\oddsidemargin}
+ \addtolength\oddsidemargin{-1in}
+ \setlength\evensidemargin{\oddsidemargin}
+ \edef\recls@gutter{\evensidemargin}
+ \fi
\else
-\setlength\oddsidemargin\paperwidth
-\addtolength\oddsidemargin{-\textwidth}
-\setlength\oddsidemargin{.5\oddsidemargin}
-\addtolength\oddsidemargin{-1in}
-\setlength\evensidemargin\oddsidemargin
-\edef\recls@gutter{\evensidemargin}
+ \setlength\oddsidemargin{\recls@gutter}%ノド
+ \addtolength\oddsidemargin{-1in}
+ \setlength\evensidemargin{\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \addtolength\evensidemargin{-\textwidth}
\fi
%% 天、地
-\ifdim\recls@head>\z@
-\setlength\topmargin{\recls@head}%天
+\ifx\recls@head@space\@empty
+ \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
+ \setlength\topmargin\paperheight
+ \addtolength\topmargin{-\textheight}
+ \setlength\topmargin{.5\topmargin}
+ \addtolength\topmargin{-1in}
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
+ \fi\fi
+ \ifx\recls@number@of@lines\@empty\else
+ \setlength\topmargin\paperheight
+ \addtolength\topmargin{-\textheight}
+ \setlength\topmargin{.5\topmargin}
+ \addtolength\topmargin{-1in}
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
+ \fi
+ \edef\recls@head@space{\dimexpr\topmargin+1in+\headheight+\headsep}
\else
-\setlength\topmargin\paperheight
-\addtolength\topmargin{-\textheight}
-\edef\recls@head{\dimexpr\topmargin+1in+\headheight+\headsep}
-\setlength\topmargin{.5\topmargin}
+ \setlength\topmargin{\recls@head@space}%天
+ \addtolength\topmargin{-1in}
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
\fi
-\addtolength\topmargin{-1in}
-\addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
%% load hyperref package
\RequirePackage[dvipdfmx, \if@pdfhyperlink\else draft,\fi
bookmarks=true,
bookmarksnumbered=true,
@@ -473,11 +405,11 @@
\RequirePackage[dvipdfmx]{pxjahyper}
%% more useful macros
%% ----------
%% include fullpage graphics
-\let\grnchry@head\recls@head
+\let\grnchry@head\recls@head@space
\let\grnchry@gutter\recls@gutter
\newcommand*\includefullpagegraphics{%
\clearpage
\@ifstar
{\@includefullpagegraphics}%
@@ -501,27 +433,37 @@
\vss}%
\vss}%
\clearpage
}
-% coverオプションによる表紙判定の上書き
+%% 空ページ
+\newcommand\oneblankpage{\clearpage\thispagestyle{empty}%
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi}
+
+%% 横書き向けの、奇数ページまでの改丁(\cleardoublepage)・偶数ページまでの改丁(\clearoddpage)
+\let\cleardoublepage@right\cleardoublepage
+\def\cleardoublepage@left{\clearpage\if@twoside\ifodd\c@page
+ \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
+\let\clearoddpage\cleardoublepage@left
+
+%% coverオプションによる表紙判定の上書き
\def\recls@tmp{true}\ifx\recls@forcecover\recls@tmp
\@reclscovertrue
\else\def\recls@tmp{false}\ifx\recls@forcecover\recls@tmp
\@reclscoverfalse
\else% それ以外の値は単に無視
\fi\fi
-% シンプルな通しノンブル
+%% シンプルな通しノンブル
\ifrecls@serialpage
\renewcommand*{\pagenumbering}[1]{%
\gdef\thepage{\@arabic\c@page}}
\fi
-% 開始ページを変更
+%% 開始ページを変更
\g@addto@macro\frontmatter{\setcounter{page}{\the\recls@startpage}}
-% titlepageのsetcounterを使わない
+%% titlepageのsetcounterを使わない
\renewenvironment{titlepage}{%
\clearpage
\if@twoside\ifodd\c@page\else
\hbox{}\thispagestyle{empty}\newpage
\if@twocolumn\hbox{}\newpage\fi