%<*driver>
\ProvidesFile{ltjsclasses.dtx}
%</driver>
- [2017/03/06 ltjsclasses ]
+ [2017/09/19 ltjsclasses ]
%<*driver>
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
\documentclass{ltjsarticle}
\usepackage{hypdoc}
\hypersetup{unicode=true}
-\usepackage[ipaex,nfssonly]{luatexja-preset}
+\begingroup
+ \suppressfontnotfounderror=1
+ \global\font\testfont=file:KozMinPr6N-Regular.otf
+\endgroup
+\ifx\testfont\nullfont
+ \usepackage[ipaex,nfssonly]{luatexja-preset}
+\else
+ \usepackage[kozuka-pr6n,nfssonly]{luatexja-preset}
+\fi
\ltjsetparameter{alxspmode={`\*,allow}}
\ltjsetparameter{alxspmode={`\\,allow}}
%%%%\usepackage{unicode-math}
%
% [2016-03-21 LTJ] 拡大率の計算で1~ptを$1/72.27$インチでなく0.3514~mmと間違えて扱っていたのを修正。
% \begin{macrocode}
-%<*!jspf>
-\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
-\ifmingoth
- \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=min}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=min}{}
-\else
- \ifptexjis
- \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=jis}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=jis}{}
- \else
- \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=ujis}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=ujis}{}
- \fi
-\fi
-\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.924715] \ltj@stdmcfont:jfm=ujisv}{}
-\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.924715] \ltj@stdgtfont:jfm=ujisv}{}
-%</!jspf>
+%<!jspf> \def\Cjascale{0.924715}
% \end{macrocode}
%
% これにより,公称10ポイントの和文フォントを0.924715倍したことにより,
% $0.9*72.27/72 \simeq 0.903375$ 倍します。
%
% \begin{macrocode}
-%<*jspf>
+%<jspf> \def\Cjascale{0.903375}
+% \end{macrocode}
+%
+% 実際にフォントの再定義を行う部分です.
+%
+% \begin{macrocode}
\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
\ifmingoth
- \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=min}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=min}{}
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=min}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=min}{}
\else
\ifptexjis
- \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=jis}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=jis}{}
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=jis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=jis}{}
\else
- \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=ujis}{}
- \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujis}{}
+ \DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=ujis}{}
+ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=ujis}{}
\fi
\fi
-\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=ujisv}{}
-\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujisv}{}
-%</jspf>
+\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [\Cjascale] \ltj@stdmcfont:jfm=ujisv}{}
+\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [\Cjascale] \ltj@stdgtfont:jfm=ujisv}{}
% \end{macrocode}
%
% 和文でイタリック体,斜体,サンセリフ体,
% \texttt{jsclasses}で行われていた |\textmc|, |\textgt| の再定義は不要のように思われます。
%
% \texttt{jsclasses.dtx}中で行われていた |\reDeclareMathAlphabet| の再定義は削除。
+% また,Yue ZHANGさん作の\texttt{fixjfm}パッケージ対応のコードもLua\TeX-jaでは削除しています.
%
% \begin{macrocode}
\AtBeginDocument{%
% パラメータに実際の値を設定します。
% たとえば |\Cwd| は |\normalfont| の全角幅(|1\zw|)です。
%
+% [2017-08-31] 基準とする文字を「全角空白」(EUCコード\texttt{0xA1A1})から
+% 「漢」(JISコード\texttt{0x3441})へ変更しました。
+%
+% [2017-09-19] 内部的に使った |\box0| を空にします。
% \begin{macrocode}
-\setbox0\hbox{\char"3000}% 全角スペース
+\setbox0\hbox{漢}
\setlength\Cht{\ht0}
\setlength\Cdp{\dp0}
\setlength\Cwd{\wd0}
\setlength\Cvs{\baselineskip}
\setlength\Chs{\wd0}
+\setbox0=\box\voidb@x
% \end{macrocode}
% \end{macro}
% \end{macro}
% [2017-02-24] コミュニティ版\pLaTeX の標準クラス2017/02/15に合わせて,
% reportとbookクラスの場合に|\cleardoublepage|を再定義します。
% \begin{macrocode}
-%<*!article>
+%<*book|report>
\if@openleft
\let\cleardoublepage\pltx@cleartoleftpage
\else\if@openright
\let\cleardoublepage\pltx@cleartorightpage
\fi\fi
-%</!article>
+%</book|report>
% \end{macrocode}
% \end{macro}
%
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa\@inhibitglue
+ \hskip -\@tempskipa\ltjfakeparbegin
\else
\clubpenalty \@clubpenalty
\everypar{}%
%<*book|report>
\def\@endpart{\vfil\newpage
\if@twoside
- \if@openleft %% added (????/??/??)
+ \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, ????/??/??)
+ \fi\fi %% added (2016/12/13, 2017/02/24)
\fi
\if@restonecol
\twocolumn
% する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる
% ため,うまく働きませんでした。形を変えて復活させます。
%
+% [2017-04-03 LTJ] 従来クラフファイルで定義していた |\@inhibitglue| は,
+% Lua\TeX-jaのコアに |\ltjfakeparbegin| として正式に追加されたのでリネームします.
+%
% |\item| 命令の直後です。
%
% \begin{macrocode}
-\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\let\@inhibitglue=\ltjfakeparbegin
\def\@item[#1]{%
\if@noparitem
\@donoparitem
\else
\clubpenalty \@clubpenalty
\everypar{}%
- \fi\@inhibitglue}%
+ \fi\ltjfakeparbegin}%
\if@noitemarg
\@noitemargfalse
\if@nmbrlist