summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bxjscls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-09-08 21:25:44 +0000
committerKarl Berry <karl@freefriends.org>2015-09-08 21:25:44 +0000
commit34722e1da36fa4241609e892451a3bf9af62db35 (patch)
tree2435be1ed5ce3a76172840067abe312044cc503f /Master/texmf-dist/source/latex/bxjscls
parent97799cd5e5b38f759c71d82eec31f6e08b615945 (diff)
bxjscls (8sep15)
git-svn-id: svn://tug.org/texlive/trunk@38324 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls')
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx74
1 files changed, 65 insertions, 9 deletions
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}
%</driver>
- [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{和文フォント定義}