diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 106 |
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では和文数式ファミリは常に有効で、既にこの時点で必要な |