From 1a8e2128cdbe579f531b4b842afe17b2da07dc6c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 24 Aug 2015 21:30:47 +0000 Subject: bxjscls (24aug15) git-svn-id: svn://tug.org/texlive/trunk@38196 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/bxjscls/README-ja.md | 5 + Master/texmf-dist/doc/latex/bxjscls/README.md | 1 + .../doc/latex/bxjscls/bxjscls-manual.pdf | Bin 714908 -> 716369 bytes .../doc/latex/bxjscls/bxjscls-manual.tex | 32 +++-- Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf | Bin 891277 -> 898329 bytes Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 131 +++++++++++++++++---- .../texmf-dist/tex/latex/bxjscls/bxjsarticle.cls | 26 +++- Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls | 26 +++- .../tex/latex/bxjscls/bxjsja-minimal.def | 2 +- .../tex/latex/bxjscls/bxjsja-standard.def | 21 +++- Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls | 26 +++- Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls | 26 +++- 12 files changed, 248 insertions(+), 48 deletions(-) diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md index 5f38198fbf2..ad4e4c864c7 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md @@ -93,6 +93,11 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使 更新履歴 -------- + * Version 1.0a [2015/08/23] + - `base`/`jbase` での Q 単位の指定に対応。 + - pdflatex 使用時に `\hypersetup` で和文文字を含む文書情報を + 指定可能にする。 + - バグ修正。 * Version 1.0 [2015/08/05] - bxjsreport と bxjsslide クラスを提供する。 - `jafont` オプションを追加。 diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md index 508ec55ca01..c60acdf6ad0 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README.md @@ -83,6 +83,7 @@ This package is distributed under the BSD 2-Clause License. Revision History ---------------- + * Version 1.0a [2015/08/23] * Version 1.0 [2015/08/05] * Version 0.9 [2013/10/03] * Version 0.4 [2013/08/03] diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf index 400946b6ecb..bb6d02a93b8 100644 Binary files a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf and b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf differ diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex index c118f9da86b..77d8ddb6093 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex @@ -5,8 +5,8 @@ \usepackage{metalogo} \usepackage{shortvrb} \MakeShortVerb{\|} -\newcommand{\PkgVersion}{1.0} -\newcommand{\PkgDate}{2015/08/05} +\newcommand{\PkgVersion}{1.0a} +\newcommand{\PkgDate}{2015/08/23} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} @@ -239,12 +239,6 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが 日本語で~pdf{\LaTeX}~するテスト。 \end{document} \end{verbatim}\end{quote} -\item BXJSクラスでは(JSクラスと同様に)通常は和文に約92.5\%の - スケールを施している。 - ところが、\Pkg{CJK}パッケージは「和文のスケール」をサポートしていない。 - このため、エンジンが |pdflatex| の場合は他の場合と比べて和文が大きめに - 出力される。 -\footnote{同じ理由で、|pdflatex| では |scale| オプションも無効になる。}% \item \Pkg{bxcjkjatype}パッケージにおけるフォントの既定設定は 「Type1形式のIPAexフォント」(\Pkg{ipaex-type1}パッケージ)である。 一方、|ipaex| プリセットを指定した場合は @@ -363,6 +357,20 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが \Pkg{pxjahyper}パッケージを読み込む必要がない。 ただし読み込んでも構わないし、必要な場合もある。}% (ただし文書クラスが\Pkg{hyperref}を読み込むわけではない。) +\item pdf{\LaTeX}上で\Pkg{hyperref}で |pdftitle| 等の文書情報に + 和文文字を含めたい場合は、|\hypersetup| 命令を通常通り + 使うことができる。 + \footnote{ちなみに、普通に\Pkg{CJKutf8}パッケージを用いた場合は、 + この方法では失敗してしまう。 + 恐らく |\hypersetup| 命令全体を |CJK*| 環境で囲う必要が + あるのだと思われる。}% +\begin{quote}\small\begin{verbatim} +\documentclass[pdflatex,a4paper,ja=standard]{bxjsarticle} +\usepackage[colorlinks]{hyperref} +\hypersetup{pdftitle={日本語タイトル}} +\end{verbatim}\end{quote} + \Pkg{hyperref}のパッケージオプションで和文文字を含む文書情報を + 指定することはできない。 \item |jafont| が無い場合の“既定のフォント設定”は多くのエンジンに おいて「IPAexフォント使用」であるが、(u){\pLaTeX}だけは異なっていて 「何も指定しない状態」(JSクラスと同様)である。 @@ -467,18 +475,24 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション |14pt| は 14.4\,pt が実際の設定値である。 \footnote{これは昔の{\LaTeX}の“magstep”の習慣に由来する。}% これに対して |base=14pt| は文字通り14\,ptを設定する。 + \Note \Meta{長さ}には\Pkg{calc}パッケージの式が使用できる。 + この他に、特別に、(u){\pLaTeX}以外のエンジンでも |11Q| の + ようにQ単位で指定することができる + (この場合は“\Meta{実数}|Q|”の形に限られ式は使えない)。 + \footnote{なお、(u){\pLaTeX}ではエンジンが単位 |Q| をサポート + するので、|11Q| も |10Q+1Q| も\Pkg{calc}の式として受け付けられる。} \item |jbase=|\Meta{長さ}\Means 和文を基準にして基底フォントサイズを指定する。 すなわち和文フォントの |\normalsize| のサイズを指定の長さとする。 \footnote{この場合に決定されるmag値は和文スケール値にも依存する ことに注意。}% + \Note \Meta{長さ}の書式は |base| オプションと同様。 \item |scale=|\Meta{実数}\Means 和文スケール値を設定する。 既定値は 0.924715(= 13\,Q/10\,pt)である。 \footnote{これはJSクラスの設計に基づく値である。 ただし実装の都合で、JSクラスの実際のスケール値はこれから 僅かだけずれている。}% - \Note エンジンが |(pdf)latex| の時は和文スケールが無効になる。 \item |noscale|\Means |scale=1| と同値。 \item |paper={|\Meta{横幅}|}{|\Meta{縦幅}|}|\Means diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf index 12fc2354069..242642b02f3 100644 Binary files a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf and b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf differ 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} % - [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}% % @@ -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} % diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls index acdd447e30a..001b6957c3b 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls @@ -37,7 +37,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsarticle} - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -117,12 +117,30 @@ \def\bxjs@param@basefontsize{10pt} \def\jsUnusualPtSize{-20} \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} +\def\bxjs@setbasefontlength#1#2{% + \bxjs@setbasefontlength@a#2true\@nnil + \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} \DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} \DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} \DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} @@ -297,7 +315,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}}} \define@key{bxjs}{scale}{% @@ -1347,7 +1365,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}% \@starttoc{toc}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls index 05f1b5c886e..8b52df4ffdb 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls @@ -37,7 +37,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsbook} - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -119,12 +119,30 @@ \def\bxjs@param@basefontsize{10pt} \def\jsUnusualPtSize{-20} \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} +\def\bxjs@setbasefontlength#1#2{% + \bxjs@setbasefontlength@a#2true\@nnil + \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} \DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} \DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} \DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} @@ -301,7 +319,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}}} \define@key{bxjs}{scale}{% @@ -1402,7 +1420,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 diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def index 49f11c96e0d..8fb926cbd26 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-minimal.def} - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] %% このファイルは日本語文字を含みます \def\DeclareJaTextFontCommand#1#2{% \DeclareRobustCommand#1[1]{% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def index 83a57af1304..b5feee63779 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-standard.def} - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] \input{bxjsja-minimal.def} \ifjsWitheTeX \@tempdima=0.25mm @@ -248,6 +248,25 @@ \bxjs@nxt \bxjs@cjk@loaded \PassOptionsToPackage{unicode}{hyperref} +\begingroup + \CJK@input{UTF8.bdg} +\endgroup +\g@addto@macro\pdfstringdefPreHook{% + \@nameuse{CJK@UTF8Binding}% +} +\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} \newskip\jsKanjiSkip \newskip\jsXKanjiSkip \ifx\CJKecglue\@undefined diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls index 7effdcf18cd..3872521f02d 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls @@ -37,7 +37,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsreport} - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -119,12 +119,30 @@ \def\bxjs@param@basefontsize{10pt} \def\jsUnusualPtSize{-20} \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} +\def\bxjs@setbasefontlength#1#2{% + \bxjs@setbasefontlength@a#2true\@nnil + \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} \DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} \DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} \DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} @@ -301,7 +319,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}}} \define@key{bxjs}{scale}{% @@ -1398,7 +1416,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 diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls index 7af7de0735d..36fe243321c 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls @@ -37,7 +37,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsslide} - [2015/08/05 v1.0 BXJS document classes] + [2015/08/23 v1.0a BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -117,12 +117,30 @@ \def\bxjs@param@basefontsize{10pt} \def\jsUnusualPtSize{-20} \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} +\def\bxjs@setbasefontlength#1#2{% + \bxjs@setbasefontlength@a#2true\@nnil + \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} \DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} \DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} \DeclareOption{10pt}{\bxjs@setbasefontsize{10pt}} @@ -297,7 +315,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}}} \define@key{bxjs}{scale}{% @@ -1345,7 +1363,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}% \@starttoc{toc}% -- cgit v1.2.3