X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltjsbook.cls;h=f2169cf0678c252e283a00e4eefeb71081b54a4c;hb=0f0921ced2b53537326ad20ce546020b3cae2670;hp=f1f03e2b92890197c97f9bdc3d98b50a85caaf03;hpb=19012bfbfd65d1591d960719b6101e68b7e9b40d;p=luatex-ja%2Fluatexja.git diff --git a/src/ltjsbook.cls b/src/ltjsbook.cls index f1f03e2..f2169cf 100644 --- a/src/ltjsbook.cls +++ b/src/ltjsbook.cls @@ -38,12 +38,13 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjsbook} - [2016/07/18 ltjsclasses ] + [2017/03/06 ltjsclasses ] \def\jsc@clsname{ltjsbook} \RequirePackage{luatexja} \newif\if@restonecol \newif\if@titlepage \newif\if@openright +\newif\if@openleft \newif\if@mainmatter \@mainmattertrue \newif\if@enablejfam \@enablejfamtrue \DeclareOption{a3paper}{% @@ -100,7 +101,6 @@ \newif\if@slide \@slidefalse \def\jsc@magscale{1} -\DeclareOption{slide}{\@slidetrue\def\jsc@magscale{3.583}\@landscapetrue\@titlepagetrue} \DeclareOption{8pt} {\def\jsc@magscale{0.833}}% 1.2^(-1) \DeclareOption{9pt} {\def\jsc@magscale{0.913}}% 1.2^(-0.5} \DeclareOption{10pt}{\def\jsc@magscale{1}} @@ -122,7 +122,7 @@ \DeclareOption{12ptj}{\def\jsc@magscale{1.302}} \newif\if@ltjs@mag@xreal \@ltjs@mag@xrealtrue -\DeclareOption{nomagx}{\@ltjs@mag@xrealtrue} +\DeclareOption{nomag*}{\@ltjs@mag@xrealtrue} \DeclareOption{nomag}{\@ltjs@mag@xrealfalse} \DeclareOption{noxreal}{% \ClassWarningNoLine{\jsc@clsname}{% @@ -165,8 +165,9 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \DeclareOption{twocolumn}{\@twocolumntrue} \DeclareOption{titlepage}{\@titlepagetrue} \DeclareOption{notitlepage}{\@titlepagefalse} -\DeclareOption{openright}{\@openrighttrue} -\DeclareOption{openany}{\@openrightfalse} +\DeclareOption{openright}{\@openrighttrue\@openleftfalse} +\DeclareOption{openleft}{\@openlefttrue\@openrightfalse} +\DeclareOption{openany}{\@openrightfalse\@openleftfalse} \def\eqnarray{% \stepcounter{equation}% \def\@currentlabel{\p@equation\theequation}% @@ -221,7 +222,9 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \DeclareOption{winjis}{% \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `winjis' option}} \DeclareOption{uplatex}{% - \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `uplatex' option}} + \ClassErrorNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `uplatex' option}} +\DeclareOption{autodetect-engine}{% + \ClassWarningNoLine{\jsc@clsname}{The \jsc@clsname\space class does not support `autodetect-engine' option}} \DeclareOption{mingoth}{\mingothtrue} \DeclareOption{ptexjis}{\ptexjistrue} \DeclareOption{jis}{\jisfonttrue} @@ -231,6 +234,9 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \newif\if@report \@reportfalse \DeclareOption{report}{\@reporttrue\@openrightfalse\@twosidefalse\@mparswitchfalse} +\newif\if@jslogo \@jslogotrue +\DeclareOption{jslogo}{\@jslogotrue} +\DeclareOption{nojslogo}{\@jslogofalse} \ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} \ProcessOptions \if@slide @@ -253,9 +259,10 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \ifdim\jsc@mpt=1.0954\p@ \renewcommand{\@ptsize}{1}\else \ifdim\jsc@mpt=1.2\p@ \renewcommand{\@ptsize}{2}\else \renewcommand{\@ptsize}{-20}\fi\fi -\if@ltjs@mag@xreal\RequirePackage{type1cm} +\if@ltjs@mag@xreal \ifdim\jsc@mpt=\p@\else \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax + \expandafter\let\csname TU/lmr/m/n/10\endcsname\relax \expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax \newluafunction\ltjs@@magnify@font@calc \begingroup\catcode`\%=12\relax @@ -263,11 +270,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% local getdimen, mpt=tex.getdimen, tex.getdimen('jsc@mpt')/65536 local t = lua.get_functions_table() t[\the\ltjs@@magnify@font@calc] = function() - tex.sprint(math.floor(0.5+mpt*getdimen('dimen@'))) + tex.sprint(-2,math.floor(0.5+mpt*getdimen('dimen@'))) end function luatexja.ltjs_unmagnify_fsize(a) local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536)) - tex.sprint( (s:match('%.0$')) and s:sub(1,-3) or s ) + tex.sprint(-2, (s:match('%.0$')) and s:sub(1,-3) or s ) end } \endgroup @@ -275,7 +282,7 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \def\@tempa{#1}\def\@tempb{#2}% \ifx\@tempb\@empty \edef\@tempb{ scaled\directlua{% - tex.sprint(math.floor(0.5+\jsc@magscale*1000)) + tex.sprint(-2,math.floor(0.5+\jsc@magscale*1000)) }}% \else \dimen@\@tempb\relax @@ -293,20 +300,31 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \expandafter\endgroup\@tempa } \fi\fi -\newlength{\stockwidth} -\newlength{\stockheight} -\setlength{\stockwidth}{\paperwidth} -\setlength{\stockheight}{\paperheight} +\def\jsc@smallskip{\vspace\jsc@smallskipamount} +\newskip\jsc@smallskipamount +\jsc@smallskipamount=3\jsc@mpt plus 1\jsc@mpt minus 1\jsc@mpt \iftombow + \newlength{\stockwidth} + \newlength{\stockheight} + \setlength{\stockwidth}{\paperwidth} + \setlength{\stockheight}{\paperheight} \advance \stockwidth 2in \advance \stockheight 2in -\fi -\ifdefined\pdfpagewidth - \setlength{\pdfpagewidth}{\stockwidth} - \setlength{\pdfpageheight}{\stockheight} + \ifdefined\pdfpagewidth + \setlength{\pdfpagewidth}{\stockwidth} + \setlength{\pdfpageheight}{\stockheight} + \else + \setlength{\pagewidth}{\stockwidth} + \setlength{\pageheight}{\stockheight} + \fi \else - \setlength{\pagewidth}{\stockwidth} - \setlength{\pageheight}{\stockheight} + \ifdefined\pdfpagewidth + \setlength{\pdfpagewidth}{\paperwidth} + \setlength{\pdfpageheight}{\paperheight} + \else + \setlength{\pagewidth}{\paperwidth} + \setlength{\pageheight}{\paperheight} + \fi \fi \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax \ifmingoth @@ -465,11 +483,11 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 -\setlength\topskip{10\jsc@mpt} +\setlength\topskip{1.38\zh}%% from 10\jsc@mpt (2016-08-17) \if@slide \setlength\headheight{0\jsc@mpt} \else - \setlength\headheight{2\topskip} + \setlength\headheight{20\jsc@mpt}%% from 2\topskip (2016-08-17); from \topskip (2003-06-26) \fi \if@report \setlength\footskip{0.03367\paperheight} @@ -484,6 +502,8 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \addtolength\headsep{-\topskip} \else \setlength\headsep{6\jsc@mmm} + \addtolength\headsep{-\topskip}%% added (2016-10-08) + \addtolength\headsep{10\jsc@mpt}%% added (2016-10-08) \fi \setlength\maxdepth{.5\topskip} \newdimen\fullwidth @@ -508,7 +528,7 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \else \setlength{\textheight}{0.83\paperheight} \fi -\addtolength{\textheight}{-\topskip} +\addtolength{\textheight}{-10\jsc@mpt}%% from -\topskip (2016-10-08); from -\headheight (2003-06-26) \addtolength{\textheight}{-\headsep} \addtolength{\textheight}{-\footskip} \addtolength{\textheight}{-\topskip} @@ -544,7 +564,7 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \if@slide \addtolength\topmargin{-\headheight} \else - \addtolength\topmargin{-\topskip} + \addtolength\topmargin{-10\jsc@mpt}%% from -\topskip (2016-10-08); from -\headheight (2003-06-26) \fi \addtolength\topmargin{-\headsep} \addtolength\topmargin{-\footskip} @@ -574,6 +594,31 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \setlength\@dblfptop{0\jsc@mpt \@plus 1fil} \setlength\@dblfpsep{8\jsc@mpt \@plus 2fil} \setlength\@dblfpbot{0\jsc@mpt \@plus 1fil} +\def\pltx@cleartorightpage{\clearpage\if@twoside + \unless\ifodd\numexpr\c@page+\ltjgetparameter{direction}\relax + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +\def\pltx@cleartoleftpage{\clearpage\if@twoside + \ifodd\numexpr\c@page+\ltjgetparameter{direction}\relax + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +\def\pltx@cleartooddpage{\clearpage\if@twoside + \ifodd\c@page\else + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +\def\pltx@cleartoevenpage{\clearpage\if@twoside + \ifodd\c@page + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +\if@openleft + \let\cleardoublepage\pltx@cleartoleftpage +\else\if@openright + \let\cleardoublepage\pltx@cleartorightpage +\fi\fi \def\ps@plainfoot{% \let\@mkboth\@gobbletwo \let\@oddhead\@empty @@ -649,9 +694,9 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \mbox{} \\[1\zw] \large {\maybeblue\hrule height0\jsc@mpt depth2\jsc@mpt\relax}\par - \smallskip + \jsc@smallskip \@title - \smallskip + \jsc@smallskip {\maybeblue\hrule height0\jsc@mpt depth2\jsc@mpt\relax}\par \vfill {\small \@author}% @@ -807,7 +852,7 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \begingroup \@svsechd \endgroup \unskip \@tempskipa #1\relax - \hskip -\@tempskipa\@inhibitglue + \hskip -\@tempskipa\ltjfakeparbegin \else \clubpenalty \@clubpenalty \everypar{}% @@ -818,7 +863,9 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \@afterheading \fi \if@slide - {\vskip-6\jsc@mpt\maybeblue\hrule height0\jsc@mpt depth1\jsc@mpt\vskip7\jsc@mpt\relax}% + {\vskip\if@twocolumn-5\jsc@mpt\else-6\jsc@mpt\fi + \maybeblue\hrule height0\jsc@mpt depth1\jsc@mpt + \vskip\if@twocolumn 4\jsc@mpt\else 7\jsc@mpt\fi\relax} \fi \par % 2000-12-18 \ignorespaces} @@ -856,30 +903,30 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \newcommand{\@chapapp}{\prechaptername} \newcommand{\@chappos}{\postchaptername} \newcommand\frontmatter{% - \if@openright - \cleardoublepage - \else - \clearpage - \fi + \pltx@cleartooddpage \@mainmatterfalse \pagenumbering{roman}} \newcommand\mainmatter{% - \cleardoublepage + \pltx@cleartooddpage \@mainmattertrue \pagenumbering{arabic}} \newcommand\backmatter{% - \if@openright + \if@openleft +\cleardoublepage + \else\if@openright \cleardoublepage \else \clearpage - \fi + \fi\fi \@mainmatterfalse} \newcommand\part{% - \if@openright + \if@openleft +\cleardoublepage + \else\if@openright \cleardoublepage \else \clearpage - \fi + \fi\fi \thispagestyle{empty}% 欧文用標準スタイルでは plain \if@twocolumn \onecolumn @@ -915,15 +962,18 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \@endpart} \def\@endpart{\vfil\newpage \if@twoside - \null - \thispagestyle{empty}% - \newpage + \if@openleft %% added (2017/02/24) + \null\thispagestyle{empty}\newpage + \else\if@openright %% added (2016/12/13) + \null\thispagestyle{empty}\newpage + \fi\fi %% added (2016/12/13, 2017/02/24) \fi \if@restonecol \twocolumn \fi} \newcommand{\chapter}{% - \if@openright\cleardoublepage\else\clearpage\fi + \if@openleft\cleardoublepage\else + \if@openright\cleardoublepage\else\clearpage\fi\fi \plainifnotempty % 元: \thispagestyle{plain} \global\@topnum\z@ \if@english \@afterindentfalse \else \@afterindenttrue \fi @@ -995,7 +1045,7 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \fi \if@twocolumn \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% - {\z@}{\z@}% + {\z@}{\if@slide .4\Cvs \else \z@ \fi}% {\normalfont\normalsize\headfont}} \else \newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% @@ -1005,27 +1055,34 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \fi \if@twocolumn \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% - {\z@}{\z@}% + {\z@}{\if@slide .4\Cvs \else \z@ \fi}% {\normalfont\normalsize\headfont}} \else \newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% {\Cvs \@plus.5\Cdp \@minus.2\Cdp}% - {\z@}% + {\if@slide .5\Cvs \@plus.3\Cdp \else \z@ \fi}% {\normalfont\normalsize\headfont}} \fi +\newcommand{\jsParagraphMark}{■} \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% - {\z@}{-1\zw}% 改行せず 1\zw のアキ - {\normalfont\normalsize\headfont ■}} + {\z@}{\if@slide .4\Cvs \else -1\zw\fi}% 改行せず 1\zw のアキ + {\normalfont\normalsize\headfont\jsParagraphMark}} \else \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% - {-1\zw}% 改行せず 1\zw のアキ - {\normalfont\normalsize\headfont ■}} + {\if@slide .5\Cvs \@plus.3\Cdp \else -1\zw\fi}% 改行せず 1\zw のアキ + {\normalfont\normalsize\headfont\jsParagraphMark}} +\fi +\if@twocolumn + \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {\z@}{\if@slide .4\Cvs \@plus.3\Cdp \else -1\zw\fi}% + {\normalfont\normalsize\headfont}} +\else + \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {\z@}{\if@slide .5\Cvs \@plus.3\Cdp \else -1\zw\fi}% + {\normalfont\normalsize\headfont}} \fi -\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% - {\z@}{-1\zw}% - {\normalfont\normalsize\headfont}} \if@slide \setlength\leftmargini{1\zw} \else @@ -1130,14 +1187,14 @@ option, since LuaTeX does not support \string\mag\MessageBreak in pdf output}% \def\@opargbegintheorem#1#2#3{\trivlist\labelsep=1\zw \item[\hskip \labelsep{\headfont #1\ #2(#3)}]} \newenvironment{titlepage}{% - \cleardoublepage + \pltx@cleartooddpage %% 2017-02-24 \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse\newpage \fi \thispagestyle{empty}% - \setcounter{page}\@ne + \ifodd\c@page\setcounter{page}\@ne\else\setcounter{page}\z@\fi }% {\if@restonecol\twocolumn \else \newpage \fi \if@twoside\else @@ -1408,10 +1465,6 @@ class has defined the old font commands like\MessageBreak \def\footnote{\inhibitglue\footnotes@ve} \let\footnotemarks@ve=\footnotemark \def\footnotemark{\inhibitglue\footnotemarks@ve} -\renewcommand\@makefnmark{% - \unless\ifnum\ltjgetparameter{direction}=3 - \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}% - \else\hbox{\yoko \@textsuperscript{\normalfont\@thefnmark}}\fi} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% \kern-3\jsc@mpt @@ -1442,7 +1495,7 @@ class has defined the old font commands like\MessageBreak \parindent 1\zw \noindent \llap{\@makefnmark\hskip0.3\zw}#1} -\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}} +\let\@inhibitglue=\ltjfakeparbegin \def\@item[#1]{% \if@noparitem \@donoparitem @@ -1485,7 +1538,7 @@ class has defined the old font commands like\MessageBreak \else \clubpenalty \@clubpenalty \everypar{}% - \fi\@inhibitglue}% + \fi\ltjfakeparbegin}% \if@noitemarg \@noitemargfalse \if@nmbrlist @@ -1510,8 +1563,14 @@ class has defined the old font commands like\MessageBreak \@nolnerr \else \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null - \inhibitglue \ignorespaces + \inhibitglue\ignorespaces \fi} +\IfFileExists{jslogo.sty}{}{\@jslogofalse}% +\if@jslogo + \RequirePackage{jslogo} + \def\小{\jslg@small} + \def\上小{\jslg@uppersmall} +\else \def\小#1{\hbox{$\m@th$% \csname S@\f@size\endcsname \fontsize\sf@size\z@ @@ -1642,6 +1701,7 @@ class has defined the old font commands like\MessageBreak \ifx\f@family\cmr\kern-.08em\else\kern-.15em\fi\TeX} \DeclareRobustCommand{\SliTeX}{% S\kern-.06emL\kern-.18em\上小{I}\kern -.03em\TeX} +\fi \newcommand{\prepartname}{\if@english Part~\else 第\fi} \newcommand{\postpartname}{\if@english\else 部\fi} \newcommand{\prechaptername}{\if@english Chapter~\else 第\fi} @@ -1681,6 +1741,8 @@ class has defined the old font commands like\MessageBreak \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script} \if@report \pagestyle{plain} \else \pagestyle{headings} \fi \pagenumbering{arabic} +\fnfixbottomtrue % 2017-02-19 +\IfFileExists{stfloats.sty}{\RequirePackage{stfloats}\fnbelowfloat}{} \if@twocolumn \twocolumn \sloppy @@ -1694,7 +1756,7 @@ class has defined the old font commands like\MessageBreak \renewcommand\familydefault{\sfdefault} \raggedright \ltj@setpar@global - \ltjsetxkanjiskip{0.1em}\relax + \ltjsetxkanjiskip0.1em\relax \fi \endinput %%