From 34722e1da36fa4241609e892451a3bf9af62db35 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 8 Sep 2015 21:25:44 +0000 Subject: bxjscls (8sep15) git-svn-id: svn://tug.org/texlive/trunk@38324 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 74 +++++++++++++++++++--- 1 file changed, 65 insertions(+), 9 deletions(-) (limited to 'Master/texmf-dist/source/latex/bxjscls') diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx index 5b7c8d1435d..5f3c76b0f8b 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -58,7 +58,8 @@ %<*driver> \ProvidesFile{bxjscls.dtx} % - [2015/08/23 v1.0a BXJS document classes] + [2015/09/07 v1.0b 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] @@ -919,10 +920,22 @@ % \begin{macrocode} \def\bxjs@setkey{% \expandafter\bxjs@setkey@a\expandafter{\CurrentOption}} -\def\bxjs@setkey@a{\setkeys{bxjs}} +\def\bxjs@setkey@a{\bxjs@safe@setkeys{bxjs}} \DeclareOption*{\bxjs@setkey} % \end{macrocode} % +% \begin{macro}{\bxjs@safe@setkeys} +% 未知のキーに対してエラー無しで無視する |\setkeys|。 +% \begin{macrocode} +\def\bxjs@safe@setkeys#1#2{% + \let\bxjs@KV@errx\KV@errx + \let\KV@errx\bxjs@safe@setkeys@a + \setkeys{#1}{#2}% + \let\KV@errx\bxjs@KV@errx} +\def\bxjs@safe@setkeys@a#1{} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\ifbxjs@scaleset} % 和文スケール値が指定されたか。 % \begin{macrocode} @@ -1000,10 +1013,11 @@ % 和文ドライバの名前。 % \begin{macrocode} \let\bxjs@jadriver\relax +%\let\bxjs@jadriver@given\@undefined % \end{macrocode} % \end{macro} % -% |jadriver| オプション(|ja| オプション)の処理。 +% |ja| オプション(|jadriver| オプション)の処理。 % \begin{macrocode} \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} \define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} @@ -1068,11 +1082,11 @@ % は常に空のままであることを利用している。 % \end{ZRnote} % \begin{macrocode} -\let\ltx@removeelement\@removeelement +\let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% \ifx\reserved@a\@empty \let#3\@empty - \else \ltx@removeelement{#1}{#2}{#3}% + \else \bxjs@ltx@removeelement{#1}{#2}{#3}% \fi} % \end{macrocode} % @@ -1100,6 +1114,14 @@ {10pt}\@classoptionslist\@classoptionslist % \end{macrocode} % +% 現在の(正規化前の)和文ドライバの値を\ +% |\bxjs@jadriver@given| に保存する。 +% \begin{macrocode} +\ifx\bxjs@jadriver\relax\else + \let\bxjs@jadriver@given\bxjs@jadriver +\fi +% \end{macrocode} +% % エンジン明示指定のオプションが与えられた場合は、 % それが実際のエンジンと一致するかを検査する。 % \begin{macrocode} @@ -1149,11 +1171,13 @@ % \end{macrocode} % % DVI出力のエンジンでドライバオプションがない場合は警告を出す。 +% \Note ただし |ja| 非指定の場合はスキップする。 % \begin{macrocode} \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse +\else\ifx\bxjs@jadriver@given\@undefined \@tempswafalse \else \@tempswatrue -\fi\fi +\fi\fi\fi \if@tempswa \ifx\bxjs@driver@opt\@undefined \ClassWarningNoLine\bxjs@clsname @@ -1187,8 +1211,10 @@ \fi % \end{macrocode} % +% エンジンオプションがない場合はエラーを出す。 +% \Note ただし |ja| 非指定の場合はスキップする。 % \begin{macrocode} -\ifx\bxjs@jadriver\bxjs@@minimal\else +\ifx\bxjs@jadriver@given\@undefined\else \ifx\bxjs@engine@given\@undefined \ClassError\bxjs@clsname% {An engine option must be explicitly given}% @@ -1570,6 +1596,16 @@ % % TODO: Hasumiさん [qa:54539] のご指摘は考慮中です。 % +% \begin{ZRnote} +% 別行立て数式に入るときに |\narrowbaselines| が呼ばれるが、 +% このコードでは「数式中で |\normalsize| などのサイズ命令 +% (|\@currsize| の実体)が呼ばれた」ことになり警告が出る。 +% JSクラスでは、|\@setfontsize| 中の |\@nomath| 実行を消して +% 「そもそもサイズ命令で警告が出ない」ようにしている。 +% 警告が常に出ないのも望ましくないので、BXJSクラスの実装では、 +% |\narrowbaselines| の時だけ警告が出ないようにする。 +% \end{ZRnote} +% % \begin{macrocode} \newif\ifnarrowbaselines \if@english @@ -1581,7 +1617,11 @@ \skip2=\abovedisplayshortskip \skip4=\belowdisplayskip \skip6=\belowdisplayshortskip +% 一時的に警告を無効化する + \let\bxjs@ltx@nomath\@nomath + \let\@nomath\@gobble \@currsize\selectfont + \let\@nomath\bxjs@ltx@nomath \abovedisplayskip=\skip0 \abovedisplayshortskip=\skip2 \belowdisplayskip=\skip4 @@ -3799,12 +3839,24 @@ % 第2レベル以外は最後に欧文のピリオドが付きますが, % これは好みに応じて取り払ってください。 % 第2レベルの番号のかっこは和文用に換え, -% その両側に入る余分なグルーを |\jsInhibitGlue| で +% その両側に入る余分なグルーを |\inhibitglue| で % 取り除いています。 +% \begin{ZRnote} +% 和文の括弧で囲むための補助命令 |\jsInJaParen| を +% 定義して |\labelenumii| でそれを用いている。 +% \Note 現状の |zxjatype| の |\inhibitglue| の実装には +% 「前後のグルーを消してしまう」という不備があって、 +% そのため |enumii| の出力が異常になるという不具合があった。 +% |zxjatype| を修正するまでの回避策として、サイズがゼロの +% 罫(|\bxjs@dust|)でガードしておく。 +% \end{ZRnote} % % \begin{macrocode} +\def\bxjs@dust{\vrule\@width\z@\@height\z@\@depth\z@} +\newcommand*{\jsInJaParen}[1]{% + \bxjs@dust\jsInhibitGlue(\theenumii)\jsInhibitGlue\bxjs@dust} \newcommand{\labelenumi}{\theenumi.} -\newcommand{\labelenumii}{\jsInhibitGlue(\theenumii)\jsInhibitGlue} +\newcommand{\labelenumii}{\jsInJaParen{(\theenumii)}} \newcommand{\labelenumiii}{\theenumiii.} \newcommand{\labelenumiv}{\theenumiv.} % \end{macrocode} @@ -6493,6 +6545,8 @@ % \begin{macrocode} \RequirePackage{zxjatype} \PassOptionsToPackage{no-math}{fontspec}%! +\PassOptionsToPackage{xetex}{graphicx}%! +\PassOptionsToPackage{xetex}{graphics}%! \ifx\zxJaFamilyName\@undefined \ClassError\bxjs@clsname {xeCJK or zxjatype is too old}\@ehc @@ -6583,6 +6637,8 @@ \let\zw\@undefined \RequirePackage{luatexja} \RequirePackage{luatexja-fontspec} +\PassOptionsToPackage{pdftex}{graphicx}%! +\PassOptionsToPackage{pdftex}{graphics}%! % \end{macrocode} % % \paragraph{和文フォント定義} -- cgit v1.2.3