summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bxjscls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-01-30 00:02:50 +0000
committerKarl Berry <karl@freefriends.org>2018-01-30 00:02:50 +0000
commit4f3140ae411ed163ddb5a960b9827e4f1b53ebec (patch)
tree776cdc2480cd2be9892b086e19d115ca9a28c6e8 /Master/texmf-dist/source/latex/bxjscls
parenta681f41430ebe5ee64b72726481e4e63c66e2230 (diff)
bxjscls (29jan18)
git-svn-id: svn://tug.org/texlive/trunk@46475 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/bxjscls')
-rw-r--r--Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx93
1 files changed, 80 insertions, 13 deletions
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}
%</driver>
- [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| 等の「単位」系の共通命令を実装する。
@@ -8698,6 +8745,9 @@
% \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
\def\bxjs@parse@qh#1{%
\def\bxjs@tmpa{#1}\let\bxjs@tmpb\relax
@@ -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 }