summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx')
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx106
1 files changed, 95 insertions, 11 deletions
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
index e72eefb33be..4498ec730aa 100644
--- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
+++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx
@@ -67,7 +67,8 @@
%<*driver>
\ProvidesFile{bxjscls.dtx}
%</driver>
- [2017/03/14 v1.5a BXJS document classes]
+ [2017/04/01 v1.5b BXJS document classes]
+% [2017/03/14 v1.5a BXJS document classes]
% [2017/03/11 v1.5 BXJS document classes]
% based on jsclasses [2017/03/05]
% [2017/02/03 v1.4 BXJS document classes]
@@ -1061,19 +1062,27 @@
% 例えば |\bxjs@invscale\dimX{1.3}| は |\dimX=1.3\dimX| の
% 逆の演算を行う。
% \Note 局所化の |\begingroup|~|\endgroup| について、
-% 以前は |\group|~|\egroup| を使っていたが、これだと数詞モード中では
+% 以前は |\group|~|\egroup| を使っていたが、これだと数式モード中では
% 空のサブ数式を生み出してしまうため修正した。
+% \Note 元の長さが128\,pt以上の場合でも動作するように修正した。
% \begin{macrocode}
-\mathchardef\bxjs@csta=259
+\mathchardef\bxjs@isc@ll=128
+\mathchardef\bxjs@isc@sl=259
+\def\bxjs@isc@sl@h{65539 }
\def\bxjs@invscale#1#2{%
\begingroup \@tempdima=#1\relax \@tempdimb#2\p@\relax
- \@tempcnta\@tempdima \multiply\@tempcnta\@cclvi
- \divide\@tempcnta\@tempdimb \multiply\@tempcnta\@cclvi
+ \ifdim\@tempdima<\bxjs@isc@ll\p@
+ \@tempcnta\@tempdima \multiply\@tempcnta\@cclvi
+ \divide\@tempcnta\@tempdimb \multiply\@tempcnta\@cclvi
+ \else
+ \@tempcnta\@tempdima \divide\@tempcnta\@tempdimb
+ \multiply\@tempcnta\p@ \let\bxjs@isc@sl\bxjs@isc@sl@h
+ \fi
\@tempcntb\p@ \divide\@tempcntb\@tempdimb
\advance\@tempcnta-\@tempcntb \advance\@tempcnta-\tw@
\@tempdimb\@tempcnta\@ne
\advance\@tempcnta\@tempcntb \advance\@tempcnta\@tempcntb
- \advance\@tempcnta\bxjs@csta \@tempdimc\@tempcnta\@ne
+ \advance\@tempcnta\bxjs@isc@sl \@tempdimc\@tempcnta\@ne
\@whiledim\@tempdimb<\@tempdimc\do{%
\@tempcntb\@tempdimb \advance\@tempcntb\@tempdimc
\advance\@tempcntb\@ne \divide\@tempcntb\tw@
@@ -1191,6 +1200,8 @@
\let\bxjs@driver@@dvipdfmx=1
\let\bxjs@driver@@pdfmode=2
\let\bxjs@driver@@xetex=3
+\let\bxjs@driver@@dvips=4
+\let\bxjs@driver@@none=5
% \end{macrocode}
% \end{macro}
%
@@ -1204,7 +1215,7 @@
% \begin{macrocode}
\DeclareOption{dvips}{%
\def\bxjs@driver@opt{dvips}%
- \let\bxjs@driver@given\bxjs@driver@@dvimode}
+ \let\bxjs@driver@given\bxjs@driver@@dvips}
\DeclareOption{dviout}{%
\def\bxjs@driver@opt{dviout}%
\let\bxjs@driver@given\bxjs@driver@@dvimode}
@@ -1214,6 +1225,9 @@
\DeclareOption{dvipdfmx}{%
\def\bxjs@driver@opt{dvipdfmx}%
\let\bxjs@driver@given\bxjs@driver@@dvipdfmx}
+\DeclareOption{nodvidriver}{%
+ \def\bxjs@driver@opt{nodvidriver}%
+ \let\bxjs@driver@given\bxjs@driver@@none}
\DeclareOption{pdftex}{%
\def\bxjs@driver@opt{pdftex}%
\let\bxjs@driver@given\bxjs@driver@@pdfmode}
@@ -1588,9 +1602,10 @@
% DVIモードのドライバとドライバ種別との対応。
% \begin{macrocode}
\let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx
-\let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvimode
+\let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvips
\let\bxjs@dvidriver@@dviout=\bxjs@driver@@dvimode
\let\bxjs@dvidriver@@xdvi=\bxjs@driver@@dvimode
+\let\bxjs@dvidriver@@nodvidriver=\bxjs@driver@@none
% \end{macrocode}
%
% |dvi| オプションの処理。
@@ -1676,6 +1691,16 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ifbxjs@xkanjiskip@cmd}
+% 〔スイッチ〕 |xkanjiskip-cmd| の指定値。
+% \begin{macrocode}
+\newif\ifbxjs@xkanjiskip@cmd \bxjs@xkanjiskip@cmdtrue
+\let\bxjs@kv@xkanjiskipcmd@true\bxjs@xkanjiskip@cmdtrue
+\let\bxjs@kv@xkanjiskipcmd@false\bxjs@xkanjiskip@cmdfalse
+\define@key{bxjs}{xkanjiskip-cmd}{\bxjs@set@keyval{xkanjiskipcmd}{#1}{}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ifbxjs@hyperref@enc}
% 〔スイッチ〕 |hyperref-enc| の指定値。
% \begin{macrocode}
@@ -1891,6 +1916,14 @@
\fi
% \end{macrocode}
%
+% ドライバが |nodvidriver| であった場合の処理。
+% DVIウェア依存の処理を全て無効化する。
+% \begin{macrocode}
+\ifx\bxjs@driver@given\bxjs@driver@@none
+ \bxjs@papersizefalse
+\fi
+% \end{macrocode}
+%
% |\bxjs@jadriver| の正規化。
% 値が未指定の場合は |minimal| に変える。
% ただしエンジンが{(u)\pTeX}である場合は |standard|
@@ -2951,7 +2984,9 @@
\ifbxjs@papersize
\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx
\PassOptionsToPackage{dvipdfm}{geometry}
- \fi
+ \else\ifx\bxjs@driver@given\bxjs@driver@@dvimode
+ \PassOptionsToPackage{dvipdfm}{geometry}
+ \fi\fi
\let\bxPapersizeSpecialDone=t
\else
\PassOptionsToPackage{driver=none}{geometry}
@@ -3512,18 +3547,26 @@
% [2011-05-10] しっぽ愛好家さん [qa:6370] のパッチを取り込ませていただきました
% (北見さん [qa:55896] のご指摘ありがとうございます)。
%
+% \begin{ZRnote}
+% |\autoxspacing| は未定義の可能性があるため、
+% 「|\autoxspacing| が定義済なら実行する」マクロ |\bxjs@maybe@autoxspacing| を
+% 代わりに用いる。
+% \end{ZRnote}
+%
% \begin{macrocode}
%<*book|report>
+\def\bxjs@maybe@autoxspacing{%
+ \ifx\autoxspacing\@undefined\else \autoxspacing \fi}
\newif\if@omit@number
\def\ps@headings{%
\let\@oddfoot\@empty
\let\@evenfoot\@empty
\def\@evenhead{%
\if@mparswitch \hss \fi
- \underline{\hbox to \fullwidth{\autoxspacing
+ \underline{\hbox to \fullwidth{\bxjs@maybe@autoxspacing
\textbf{\thepage}\hfil\leftmark}}%
\if@mparswitch\else \hss \fi}%
- \def\@oddhead{\underline{\hbox to \fullwidth{\autoxspacing
+ \def\@oddhead{\underline{\hbox to \fullwidth{\bxjs@maybe@autoxspacing
{\if@twoside\rightmark\else\leftmark\fi}\hfil\textbf{\thepage}}}\hss}%
\let\@mkboth\markboth
\def\chaptermark##1{\markboth{%
@@ -8086,6 +8129,20 @@
\fi
% \end{macrocode}
%
+% 和欧文間空白の命令 |\>| の実装。
+% \begin{macrocode}
+\ifbxjs@xkanjiskip@cmd
+ \def\bxjs@put@xkanjiskip{%
+ \relax\ifmmode \mskip\medmuskip
+ \else \hskip\xkanjiskip
+ \fi}
+ \ifjsWitheTeX \protected\def\>{\bxjs@put@xkanjiskip}
+ \else \def\>{\protect\bxjs@put@xkanjiskip}
+ \fi
+\fi
+% \end{macrocode}
+%
+%
% \paragraph{和文フォント指定の扱い}
%
% {\pTeX}は既定で |kanji-config-updmap| の設定に従うため、
@@ -8300,6 +8357,14 @@
\CJKforced{#1}}
% \end{macrocode}
%
+% |\>| は |bxcjkjatype| で定義されているが、保護付のマクロに変換する。
+% \begin{macrocode}
+\ifbxjs@xkanjiskip@cmd
+ \protected\def\>{%
+ \relax\ifmmode \mskip\medmuskip \else \CJKecglue\ignorespaces \fi}
+\fi
+% \end{macrocode}
+%
% \paragraph{和文数式ファミリ}
%
% CJKパッケージは(恐らく)数式文字としてCJK文字をサポートしていない。
@@ -8428,6 +8493,15 @@
#1}
% \end{macrocode}
%
+% |\>| は |zxjatype| で定義されているが、standardの仕様に合わせて変更する。
+% \Note 元は |\ignorespaces| でなく |\relax|(|\scan_stop:|)だった。
+% \begin{macrocode}
+\ifbxjs@xkanjiskip@cmd
+ \protected\def\>{%
+ \relax\ifmmode \mskip\medmuskip \else \CJKecglue\ignorespaces \fi}
+\fi
+% \end{macrocode}
+%
% \paragraph{和文数式ファミリ}
%
% 和文数式ファミリは既定で無効とする。
@@ -8579,6 +8653,16 @@
\ltjjachar`#1\relax}
% \end{macrocode}
%
+% |\>| の実装。
+% \begin{macrocode}
+\ifbxjs@xkanjiskip@cmd
+ \protected\def\>{%
+ \relax\ifmmode \mskip\medmuskip
+ \else \hskip\ltjgetparameter{xkanjiskip}\ignorespaces
+ \fi}
+\fi
+% \end{macrocode}
+%
% \paragraph{和文数式ファミリ}
%
% Lua{\TeX}-jaでは和文数式ファミリは常に有効で、既にこの時点で必要な