From 4f3140ae411ed163ddb5a960b9827e4f1b53ebec Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 30 Jan 2018 00:02:50 +0000 Subject: bxjscls (29jan18) git-svn-id: svn://tug.org/texlive/trunk@46475 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 93 +++++++++++++++++++--- 1 file changed, 80 insertions(+), 13 deletions(-) (limited to 'Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx') diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx index 3c39b42b9c5..18662da1b67 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -68,7 +68,8 @@ %<*driver> \ProvidesFile{bxjscls.dtx} % - [2017/12/09 v1.7a BXJS document classes] + [2018/01/28 v1.7b BXJS document classes] +% [2017/12/09 v1.7a BXJS document classes] % [2017/10/21 v1.7 BXJS document classes] % [2017/09/28 v1.6b BXJS document classes] % [2017/09/24 v1.6a BXJS document classes] @@ -2594,6 +2595,14 @@ \else \def\jsc@setfontsize#1#2#3{% \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}} +% microtype対策 + \ifjsWitheTeX\if j\jsEngine\else + \def\jsc@setfontsize#1#2#3{% + \edef\bxjs@sfs@next{% + \unexpanded{\@setfontsize#1}% + {\the\dimexpr#2\jsc@mpt\relax}{\the\dimexpr#3\jsc@mpt\relax}% + }\bxjs@sfs@next} + \fi\fi \fi % \end{macrocode} % \end{macro} @@ -8562,7 +8571,7 @@ % |japaram| の値をkey-valueリストとして解釈する。 % keyvalのファミリは |bxjsStd| とする。 % -% \begin{macro}{\bxjs@jp@jismmiv} +% \begin{macro}{\ifbxjs@jp@jismmiv} % 2004JIS字形を優先させるか。 % \begin{macrocode} \newif\ifbxjs@jp@jismmiv @@ -8577,6 +8586,22 @@ \bxjs@set@keyval{jis2004}{#1}{}} % \end{macrocode} % +% \begin{macro}{\ifbxjs@jp@units} +% 和文用単位(|zw|、|zh|、|(true)Q|、|(true)H|)を +% 使えるようにするか。 +% \begin{macrocode} +\newif\ifbxjs@jp@units +% \end{macrocode} +% \end{macro} +% +% |units| オプションの処理。 +% \begin{macrocode} +\let\bxjs@kv@units@true\bxjs@jp@unitstrue +\let\bxjs@kv@units@false\bxjs@jp@unitsfalse +\define@key{bxjsStd}{units}[true]{% + \bxjs@set@keyval{units}{#1}{}} +% \end{macrocode} +% % \begin{macro}{\bxjs@jp@font} % フォントパッケージの追加オプション。 % \begin{macrocode} @@ -8584,7 +8609,7 @@ % \end{macrocode} % \end{macro} % -% |jis2004| オプションの処理。 +% |font| オプションの処理。 % \begin{macrocode} \define@key{bxjsStd}{font}{% \edef\bxjs@jp@font{#1}} @@ -8610,6 +8635,28 @@ \fi % \end{macrocode} % +% \paragraph{和文用単位のサポート} +% +% |units| パラメタが有効の場合は、|bxcalc| パッケージを読みこんで、 +% |\usepTeXunits| 命令を実行する。 +% \begin{macrocode} +\ifbxjs@jp@units\if j\jsEngine\else + \IfFileExists{bxcalc.sty}{% + \RequirePackage{bxcalc}[2018/01/28]%v1.0a + \ifx\usepTeXunits\@undefined + \PackageWarningNoLine\bxjs@clsname + {Cannot support pTeX units (zw etc.), since\MessageBreak + the package 'bxcalc' is too old}% + \else \usepTeXunits + \fi + }{%else + \PackageWarningNoLine\bxjs@clsname + {Cannot support pTeX units (zw etc.), since\MessageBreak + the package 'bxcalc' is unavailable}% + } +\fi\fi +% \end{macrocode} +% % \paragraph{共通命令の実装} % % |\jQ| 等の「単位」系の共通命令を実装する。 @@ -8696,6 +8743,9 @@ % \end{macrocode} % {(u)\pLaTeX}ではこの処理は不要なので無効化する。 % \begin{macrocode} +\def\bxjs@parse@qh#1{% + \let\bxjs@tmpb\relax} +\else\ifbxjs@jp@units \def\bxjs@parse@qh#1{% \let\bxjs@tmpb\relax} \else @@ -8712,7 +8762,7 @@ \fi} \def\bxjs@parse@qh@b#1#2#3{% \ifx\@nnil#2\@nnil\else \def\bxjs@tmpb{#1#3}\fi} -\fi +\fi\fi % \end{macrocode} % \end{macro} % @@ -9045,6 +9095,21 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\bxjs@resolve@jafont@paren} +% |jafont|パラメタ値内の|()|を解決する。 +% \begin{macrocode} +\def\bxjs@resolve@jafont@paren#1{% + \def\bxjs@tmpb{\let#1}% + \expandafter\bxjs@resolve@jafont@paren@a#1\@nil()\@nil\relax} +\def\bxjs@resolve@jafont@paren@a#1(#2)#3\@nil#4\relax{% + \ifx\relax#4\relax \bxjs@tmpb\jsJaFont + \else + \edef\bxjs@tmpa{#1\bxjs@jafont@paren{#2}#3}% + \bxjs@tmpb\bxjs@tmpa + \fi} +% \end{macrocode} +% \end{macro} +% %^^A---------------- % \subsection{{\pTeX}用設定} % @@ -9131,12 +9196,14 @@ % ここで、和文ドライバパラメタ |font| が指定されいる場合は、 % その値を |pxchfon| のオプションに追加する。 % \begin{macrocode} +\let\bxjs@jafont@paren\@firstofone \let\bxjs@tmpa\jsJaFont \ifx\bxjs@tmpa\bxjs@@auto \let\bxjs@tmpa\@empty \else\ifx\bxjs@tmpa\bxjs@@noEmbed \def\bxjs@tmpa{noembed} \fi\fi +\bxjs@resolve@jafont@paren\bxjs@tmpa \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa\bxjs@jp@font} \ifx\bxjs@tmpa\@empty\else \edef\bxjs@next{% @@ -9256,6 +9323,8 @@ % \Note Pandocモードでは |autotilde| を指定しない。 % \begin{macrocode} \bxjs@adjust@jafont{f} +\let\bxjs@jafont@paren\@firstofone +\bxjs@resolve@jafont@paren\bxjs@tmpa \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa\bxjs@jp@font} \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{whole}} \def\bxjs@tmpb{pandoc}\ifx\bxjs@tmpb\bxjs@jadriver\else @@ -9389,6 +9458,8 @@ % 非指定の場合はIPAexフォントを使用する。 % \begin{macrocode} \bxjs@adjust@jafont{f} +\let\bxjs@jafont@paren\@gobble +\bxjs@resolve@jafont@paren\bxjs@tmpa \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa\bxjs@jp@font} \ifx\bxjs@tmpa\@empty \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho} @@ -9536,19 +9607,13 @@ % \begin{macrocode} \let\zw\@undefined \RequirePackage{luatexja} -\RequirePackage{luatexja-fontspec} +\edef\bxjs@next{% + \noexpand\RequirePackage[scale=\jsScale]{luatexja-fontspec}[2015/08/26]% +}\bxjs@next % \end{macrocode} % % \paragraph{和文フォント定義} % -% |luatexja-fontspec| で使用する和文スケール値を |\jsScale| と合致 -% させたいのだが……もっと良い方法はないのか? -% \begin{macrocode} -\ExplSyntaxOn -\fp_gset:Nn \g_ltj_fontspec_scale_fp { \jsScale } -\ExplSyntaxOff -% \end{macrocode} -% % |\jsJaFont| が指定された場合は、その値をオプションと % して |luatexja-preset| を読み込む。 % 非指定の場合は、|luatexja-preset| パッケージの |ipaex| @@ -9559,6 +9624,8 @@ \ifx\bxjs@tmpa\bxjs@@noEmbed \def\bxjs@tmpa{noembed} \fi +\let\bxjs@jafont@paren\@gobble +\bxjs@resolve@jafont@paren\bxjs@tmpa \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa\bxjs@jp@font} \ifx\bxjs@tmpa\@empty \defaultjfontfeatures{ Kerning=Off } -- cgit v1.2.3