diff options
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 131 |
1 files changed, 110 insertions, 21 deletions
diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx index 9ac556f805c..5b7c8d1435d 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -23,7 +23,7 @@ % % Copyright 1993 1994 1995 1996 1997 1998 1999 % The LaTeX3 Project and any individual authors listed elsewhere -% in this file. +% in this file. % % Copyright 1995-1999 ASCII Corporation. % @@ -58,7 +58,8 @@ %<*driver> \ProvidesFile{bxjscls.dtx} %</driver> - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] +% [2015/08/05 v1.0 BXJS document classes] % based on jsclasses [2014/02/07] % [2013/10/03 v0.9pre BXJS document classes] % based on jsclasses [2013/05/14] @@ -395,7 +396,7 @@ % \pLaTeXe の \texttt{b5paper} % は $257\,\mathrm{mm} \times 182\,\mathrm{mm}$ になっています。 % ここでは\pLaTeXe にならってJISに従いました。 -% +% % デフォルトは \texttt{a4paper} です。 % % \texttt{b5var}(B5変形,182mm×230mm), @@ -464,13 +465,60 @@ \newcommand{\@ptsize}{0} \def\bxjs@param@basefontsize{10pt} \def\jsUnusualPtSize{-20} +% \end{macrocode} +% \begin{ZRnote} +% \begin{macro}{\bxjs@setbasefontsize} +% 基底フォントサイズを実際に変更する。 +% \begin{macrocode} \def\bxjs@setbasefontsize#1{% - \setlength\@tempdima{#1}% + \bxjs@setbasefontlength\@tempdima{#1}% \edef\bxjs@param@basefontsize{\the\@tempdima}% \ifdim\@tempdima=10pt \long\def\@ptsize{0}% \else\ifdim\@tempdima=10.95pt \long\def\@ptsize{1}% \else\ifdim\@tempdima=12pt \long\def\@ptsize{2}% \else \long\edef\@ptsize{\jsUnusualPtSize}\fi\fi\fi} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bxjs@setbasefontlength} +% |base|、|jbase| で指定される長さ(式)のための +% 特別な |\setlength|。 +% 与えられた式が“\Meta{実数}|Q|”の形の場合、Q単位の長さを +% 代入する(この場合“式”は使えない)。 +% \Note クラスオプションのトークン列の中に展開可能なトークンが +% ある場合、{\LaTeX}はファイルの読込の前にそれを展開しようとする。 +% このため、この位置で |\jQ| をサポートすることは +% 原理的に不可能である。 +% \begin{macrocode} +\def\bxjs@setbasefontlength#1#2{% +% \end{macrocode} +% ここで |true| の長さが使われるのは不合理なので、 +% 式が“|true|”を含む場合には警告を出す。 +% \begin{macrocode} + \bxjs@setbasefontlength@a#2true\@nnil +% \end{macrocode} +% 式の末尾が“|Q|”である時は特別に扱い、 +% それ以外は |\setlength| に移譲する。 +% \begin{macrocode} + \ifx j\jsEngine \setlength#1{#2}% + \else + \bxjs@setbasefontlength@b#2\@nil Q\@nil\@nnil + \ifx\bxjs@tmpa\relax \setlength#1{#2}% + \else \@tempdimc0.25mm #1=\bxjs@tmpa\@tempdimc + \fi + \fi} +\def\bxjs@setbasefontlength@b#1Q\@nil#2\@nnil{% + \ifx\@nnil#2\@nnil \let\bxjs@tmpa\relax + \else \def\bxjs@tmpa{#1}% + \fi} +\def\bxjs@setbasefontlength@a#1true#2\@nnil{% + \ifx\@nnil#2\@nnil\else + \ClassWarningNoLine\bxjs@clsname + {You should not use 'true' lengths here}% + \fi} +% \end{macrocode} +% \end{macro} +% \end{ZRnote} +% \begin{macrocode} \DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} \DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} \DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} @@ -638,7 +686,7 @@ % これは |ifdraft| パッケージと衝突するので、代わりに |\ifjsDraft| % の名前を用い、本文開始時に |\ifdraft| が未定義の場合に限り、 % |\ifjsDraft| を |\ifdraft| にコピーする処理にする。 -% +% % \end{ZRnote} % \begin{macrocode} \let\ifjsDraft\iffalse @@ -697,17 +745,25 @@ % \mbox{} % \begin{ZRnote} % \begin{itemize} +% \item エンジンオプション: |xelatex| 等。 +% \item ドライバオプション: |dvipdfmx| 等。 +% \item |nopapersize| : |papersize|(既定で有効)の否定。 +% \item |zw|/|nozw| : |\jsZw| と等価な命令として |\zw| を +% 定義する/しない。 +% \item |js|/|nojs| : JSクラスを読込済として扱う/扱わない。 % \item |base=|\meta{dimen} : 基底フォントサイズを直接指定する。 % (|xxpt| オプションの代用なので、既定値は10\,ptである。) +% \item |jbase=|\meta{dimen} : 基底フォントサイズを“和文規準で” +% 直接指定する。 % \item |scale=|\meta{real} : 和文フォントのスケールを表すマクロ |\jsScale| % の値を設定する。 % もちろんこの値を何らかの方法で和文処理モジュールに渡さないと意味を成さない。 % 既定値は 0.924715(= 13\,Q/10\,pt)。 +% \item |noscale| : |scale=1| と等価。 % \item |mag=|\meta{int} : |\mag| 値の直接設定。既定は |base| から算出する。 % \item |paper={|\meta{dimen:width}|}{|\meta{dimen:height}|}| : 用紙サイズ設定。 % 用紙サイズオプションの代用で、既定値は |a4paper| 相当。 -% \item |platex|, |uplatex| : (u){\pTeX}用の連携モジュールを有効化する。 -% \item |CJK| : CJKパッケージ用の連携モジュールを有効化する。 +% \item |magstyle=|\meta{name} : “版面拡大”の実現方法の選択。 % \end{itemize} % % \begin{macro}{\bxjs@invscale} @@ -897,7 +953,7 @@ \define@key{bxjs}{jbase}{\bxjs@setjbasefontsize{#1}} \def\bxjs@setjbasefontsize#1{% \def\bxjs@do@opt@jbase{% - \setlength\@tempdima{#1}% + \bxjs@setbasefontlength\@tempdima{#1}% \bxjs@invscale\@tempdima\jsScale \bxjs@setbasefontsize{\@tempdima}}} % \end{macrocode} @@ -1301,7 +1357,7 @@ \chardef\bxjs@qmcc=\catcode`\?\relax % \end{macrocode} % \end{ZRnote} -% +% % \begin{ZRnote} % ここで{p\TeX}のzwに相当する単位として用いる長さ変数 |\jsZw| を作成する。 % 約束により、これは |\jsScale| $\times$ (指定フォントサイズ) に等しい。 @@ -2028,7 +2084,7 @@ % \begin{ZRnote} % エンジンが{\XeTeX}である場合の処理。 % \begin{itemize} -% \item |geometry| 4.2版の場合:\ +% \item |geometry| 4.2版の場合:\ % {\TeX} Liveの一部の版に用意されている設定ファイル |geometry.cfg| % では、|geometry| のドライバ自動検出の処理を乗っ取って、 % 強制的に |pdftex| を使用するようになっている。 @@ -2037,14 +2093,14 @@ % そこで、|geometry.cfg| の読込の箇所にフックをかけて、|geometry.cfg| % での処理をさらに乗っ取ることにする。 % \begin{itemize} -% \item {\XeTeX}が |\pdfpagewidth| をサポートする場合は、ダミーの\ +% \item {\XeTeX}が |\pdfpagewidth| をサポートする場合は、ダミーの\ % |\pdfhorigin|、|\pdfvorigin| を用意してドライバを |pdftex| % に強制的に変更する。 % \item そうでない場合は、ドライバを |dvipdfm| に強制的に変更する。 % \end{itemize} -% \item |geometry| 5.x版の場合:\ +% \item |geometry| 5.x版の場合:\ % この版の |geometry| は{\XeTeX}に正式に対応(ドライバ名 |xetex|) -% していて、また{\XeTeX}で実行した場合にドライバ自動検出の結果は\ +% していて、また{\XeTeX}で実行した場合にドライバ自動検出の結果は\ % |xetex| となる。 % 従って、特に何もする必要がない。 % さらに、ドライバ自動検出処理のマクロ名を4.2版のもの @@ -2339,7 +2395,7 @@ % ページスタイルとして,\LaTeXe (欧文版)の標準クラス % では |empty|,|plain|,|headings|,|myheadings| があります。 % このうち |empty|,|plain| スタイルは\LaTeXe 本体 -% で定義されています。 +% で定義されています。 % % アスキーのクラスファイルでは |headnombre|,|footnombre|, % |bothstyle|,|jpl@in| が追加されていますが, @@ -4547,7 +4603,7 @@ \settowidth\js@tocl@width{\headfont\prechaptername\postchaptername}% \settowidth\@tempdima{\headfont\appendixname}% \ifdim\js@tocl@width<\@tempdima \setlength\js@tocl@width{\@tempdima}\fi - \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi + \ifdim\js@tocl@width<2\jsZw \divide\js@tocl@width by 2 \advance\js@tocl@width 1\jsZw\fi \if@twocolumn \@restonecoltrue\onecolumn \else @@ -4560,7 +4616,7 @@ \settowidth\js@tocl@width{\headfont\presectionname\postsectionname}% \settowidth\@tempdima{\headfont\appendixname}% \ifdim\js@tocl@width<\@tempdima\relax\setlength\js@tocl@width{\@tempdima}\fi - \ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi + \ifdim\js@tocl@width<2\jsZw \divide\js@tocl@width by 2 \advance\js@tocl@width 1\jsZw\fi \section*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% %</!book&!report> @@ -4759,7 +4815,7 @@ \@lnumwidth #3\relax \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip {#4}\nobreak - \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill \nobreak\hb@xt@\@pnumwidth{% \hfil\normalfont \normalcolor #5}\par}\fi} % \end{macrocode} @@ -5636,7 +5692,7 @@ % JSクラスでzw単位で設定されている長さパラメタはこの変数を単位と % して設定されている。 % この変数の値は実際に用いられる「和文フォント」のメトリックに -% 基づくのではなく、機械的に\ +% 基づくのではなく、機械的に\ % |\jsScale| $\times$(フォントサイズ) % であると定められている % (フォントサイズ変更の度に再設定される)。 @@ -5885,7 +5941,7 @@ \else\ifx p\jsEngine % \end{macrocode} % -% +% % \begin{macrocode} \@onlypreamble\bxjs@cjk@loaded \def\bxjs@cjk@loaded{% @@ -6350,6 +6406,7 @@ % |\jsJaFont| が指定されている場合は、その値を |bxcjkjatype| の % オプション(プリセット指定)に渡す。 % (|auto| ならば |\bxjs@get@kanjiEmbed| を実行する。) +% スケール値(|\jsScale|)の反映は bxcjkjatype の側で行われる。 % \begin{macrocode} \bxjs@adjust@jafont{f} \edef\bxjs@nxt{% @@ -6364,11 +6421,43 @@ % % |bxcjkjatype| 使用時は |unicode| にするべき。 % \Note 取りあえず固定はしない。 -% % \begin{macrocode} \PassOptionsToPackage{unicode}{hyperref} % \end{macrocode} % +% |\hypersetup| 命令で(|CJK*| 環境に入れなくても)日本語文字を +% 含む文書情報を設定できるようにするための細工。 +% \Note bxcjkjatype を |whole| 付きで使っていることが前提。 +% \Note パッケージオプションでの指定に対応するのは、 +% 「アクティブな高位バイトトークンがその場で展開されてしまう」 +% ため困難である。 +% \begin{macrocode} +\begingroup + \CJK@input{UTF8.bdg} +\endgroup +\g@addto@macro\pdfstringdefPreHook{% + \@nameuse{CJK@UTF8Binding}% +} +% \end{macrocode} +% +% |~| が和欧文間空白である場合はPDF文字列中で空白文字で +% なく空に展開させる。 +% \begin{macrocode} +\g@addto@macro\pdfstringdefPreHook{% + \ifx~\bxjs@@CJKtilde + \let\bxjs@org@LetUnexpandableSpace\HyPsd@LetUnexpandableSpace + \let\HyPsd@LetUnexpandableSpace\bxjs@LetUnexpandableSpace + \let~\@empty + \fi +} +\def\bxjs@@CJKtilde{\CJKecglue\ignorespaces} +\def\bxjs@@tildecmd{~} +\def\bxjs@LetUnexpandableSpace#1{% + \def\bxjs@tmpa{#1}\ifx\bxjs@tmpa\bxjs@@tildecmd\else + \bxjs@org@LetUnexpandableSpace#1% + \fi} +% \end{macrocode} +% % \paragraph{共通命令の実装} % % \begin{macrocode} @@ -6390,7 +6479,7 @@ \jsXKanjiSkip\@tempskipa \let\CJKecglue\bxjs@CJKecglue} % \end{macrocode} -% +% %^^A---------------- % \subsection{{\XeTeX}用設定: xeCJK + zxjatype} % |