From b019d15db444b32288a5d65981d31fbf283b9f25 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 21 Nov 2015 22:29:46 +0000 Subject: bxjscls (20nov15) git-svn-id: svn://tug.org/texlive/trunk@38915 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/bxjscls/README-ja.md | 4 + Master/texmf-dist/doc/latex/bxjscls/README.md | 2 + .../doc/latex/bxjscls/bxjscls-manual.pdf | Bin 716474 -> 716485 bytes .../doc/latex/bxjscls/bxjscls-manual.tex | 4 +- Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf | Bin 900863 -> 879130 bytes Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 282 ++++++++++++++++++++- .../texmf-dist/tex/latex/bxjscls/bxjsarticle.cls | 29 ++- Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls | 29 ++- .../tex/latex/bxjscls/bxjsja-minimal.def | 86 ++++++- .../tex/latex/bxjscls/bxjsja-standard.def | 48 +++- Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls | 29 ++- Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls | 29 ++- 12 files changed, 519 insertions(+), 23 deletions(-) diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md index 57e0f2616ce..782ccdcfb36 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md @@ -93,6 +93,10 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使 更新履歴 -------- + * Version 1.0d [2015/11/21] + - バグ修正。 + * Version 1.0c [2015/10/18] + - バグ修正。 * Version 1.0b [2015/09/07] - 未知のオプションがあるとエラーになるという不具合(これだと “グローバルオプション”が使えない)を修正した。 diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md index 6f476c63597..6d47eabe22d 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README.md @@ -83,6 +83,8 @@ This package is distributed under the BSD 2-Clause License. Revision History ---------------- + * Version 1.0d [2015/11/21] + * Version 1.0c [2015/10/18] * Version 1.0b [2015/09/07] * Version 1.0a [2015/08/23] * Version 1.0 [2015/08/05] diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf index 46bf8585b1b..63fc55d0462 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 06cd0d39b4a..55fb1d31715 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.0b} -\newcommand{\PkgDate}{2015/09/07} +\newcommand{\PkgVersion}{1.0d} +\newcommand{\PkgDate}{2015/11/21} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf index 9157ba0349e..0243847a015 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 5f3c76b0f8b..3c96c020807 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -58,7 +58,9 @@ %<*driver> \ProvidesFile{bxjscls.dtx} % - [2015/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] +% [2015/10/18 v1.0c 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] @@ -189,12 +191,20 @@ % % \paragraph{BXJSクラス特有の設定 ☆} % +% \mbox{} +% \begin{ZRnote} % \begin{macrocode} %<*!drvminimal&!drvstandard> +% \end{macrocode} +% 長さ値の指定で式を利用可能にするため |calc| を読み込む。 +% \begin{macrocode} \RequirePackage{calc} +% \end{macrocode} +% クラスオプションでkey-value形式を使用するため |keyval| を読み込む。 +% \begin{macrocode} \RequirePackage{keyval} % \end{macrocode} -% \begin{ZRnote} +% クラスの本体ではこの他に |geometry| パッケージが読み込まれる。 % % \begin{macro}{\jsEngine} % 〔暗黙文字トークン〕 @@ -273,6 +283,18 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\bxjs@cond} +% |\bxjs@cond\ifXXX|……|\fi|\Meta{真}\Meta{偽}\par +% {\TeX}のif-文(|\ifXXX|……\Meta{真}|\else|\Meta{偽}|\fi|)を +% 末尾呼出形式に変換するためのマクロ。 +% \begin{macrocode} +\@gobbletwo\if\if \def\bxjs@cond#1\fi{% + #1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\jsDocClass} % 〔トークン〕 % 文書クラスの種別。 @@ -1072,7 +1094,7 @@ % \end{ZRnote} % % \paragraph{オプションの実行} -% +% \mbox{} % \begin{ZRnote} % {\LaTeX}の実装では、クラスやパッケージのオプションのトークン列の % 中に |{ }| が含まれると正常に処理ができない。 @@ -1104,6 +1126,31 @@ % % \begin{ZRnote} % +% グローバルオプションのトークン列に |{ }| が含まれていると、 +% やはり後のパッケージの読込処理で不具合を起こすようである +% (|\ProcessOptions*| がエラーになる)。 +% 従って、このようなオプションは除外することにする。 +% \begin{macrocode} +\@onlypreamble\bxjs@purge@brace@elts +\def\bxjs@purge@brace@elts{% + \def\bxjs@tmpa{\@gobble}% + \expandafter\bxjs@purge@be@a\@classoptionslist,\@nil,% + \let\@classoptionslist\bxjs@tmpa} +\@onlypreamble\bxjs@purge@be@a +\def\bxjs@purge@be@a#1,{% + \ifx\@nil#1\relax\else + \bxjs@purge@be@b#1{}\@nil + \if@tempswa \edef\bxjs@tmpa{\bxjs@tmpa,#1}\fi + \expandafter\bxjs@purge@be@a + \fi} +\@onlypreamble\bxjs@purge@be@b +\def\bxjs@purge@be@b#1#{\bxjs@purge@be@c} +\@onlypreamble\bxjs@purge@be@c +\def\bxjs@purge@be@c#1\@nil{% + \ifx\@nil#1\@nil \@tempswatrue \else \@tempswafalse \fi} +\bxjs@purge@brace@elts +% \end{macrocode} +% % |papersize| と |10pt| のオプションは他のパッケージと衝突を % 起こす可能性があるため、グローバルオプションから外す。 % @@ -3605,18 +3652,25 @@ % % 見出しの後ろで改行されません。 % +% \begin{ZRnote} +% 段落のマーク(■)が必ず和文フォントで出力されるようにする。 +% さらに、このマークを変更可能にするため |\jsParagraphMark| と +% いうマクロに切り出した。 +% \end{ZRnote} +% % \begin{macrocode} +\newcommand\jsParagraphMark{\jsJaChar{■}} \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ % {\normalfont\normalsize\headfont}} -% {\normalfont\normalsize\headfont ■}} +% {\normalfont\normalsize\headfont\jsParagraphMark}} \else \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% {-1\jsZw}% 改行せず 1\jsZw のアキ % {\normalfont\normalsize\headfont}} -% {\normalfont\normalsize\headfont ■}} +% {\normalfont\normalsize\headfont\jsParagraphMark}} \fi % \end{macrocode} % \end{macro} @@ -5777,6 +5831,9 @@ % 選択の余地がないため、このドライバにおいて、 % 「JSクラスと同等の指定」を完成させるためのコードを記述する。 % +%^^A---------------- +% \subsection{補助マクロ} +% % \begin{macrocode} %<*drvminimal> %% このファイルは日本語文字を含みます @@ -5808,7 +5865,90 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\jsLetHeadChar} +% |\jsLetHeadChar\CS{|\Meta{トークン列}|}|\Means +% トークン列の先頭の文字を抽出し、|\CS| をその文字トークン +% (に展開されるマクロ)として定義する。 +% \Note 先頭にあるのが制御綴やグループである場合は |\CS| は |\relax| +% に等置される。 +% \Note 文字トークンは“|\the|-文字列”のカテゴリコードをもつ。 +% \Note 非Unicodeエンジンの場合は文字列がUTF-8で符号化されていると +% 見なし、先頭が高位バイトの場合は1文字分のバイト列(のトークン列) +% を抽出する。 +% この場合は元のカテゴリコードが保持される。 +% \begin{macrocode} +\def\jsLetHeadChar#1#2{% + \begingroup + \escapechar=`\\ % + \let\bxjs@tmpa={% brace-match-hack + \bxjs@let@hchar@exp#2}% + \endgroup + \let#1\bxjs@g@tmpa} +\def\bxjs@let@hchar@exp{% + \futurelet\@let@token\bxjs@let@hchar@exp@a} +\def\bxjs@let@hchar@exp@a{% + \bxjs@cond\ifcat\noexpand\@let@token\bgroup\fi{% 波括弧 + \bxjs@let@hchar@out\let\relax + }{\bxjs@cond\ifcat\noexpand\@let@token\@sptoken\fi{% 空白 + \bxjs@let@hchar@out\let\space% + }{\bxjs@cond\if\noexpand\@let@token\@backslashchar\fi{% バックスラッシュ + \bxjs@let@hchar@out\let\@backslashchar + }{\bxjs@let@hchar@exp@b}}}} +\def\bxjs@let@hchar@exp@b#1{% + \expandafter\bxjs@let@hchar@exp@c\string#1?\@nil#1} +\def\bxjs@let@hchar@exp@c#1#2\@nil{% +%\message{<#1#2>}% + \bxjs@cond\if#1\@backslashchar\fi{% 制御綴 + \bxjs@cond\expandafter\ifx\noexpand\@let@token\@let@token\fi{% + \bxjs@let@hchar@out\let\relax + }{%else + \expandafter\bxjs@let@hchar@exp + }% + }{%else + \bxjs@let@hchar@chr#1% + }} +\def\bxjs@let@hchar@chr#1{% + \bxjs@let@hchar@out\def{{#1}}} +\def\bxjs@let@hchar@out#1#2{% + \global#1\bxjs@g@tmpa#2\relax + \toks@\bgroup}% skip to right brace +% \end{macrocode} +% UTF-8のバイト列を扱うコード。 +% \begin{macrocode} +\chardef\bxjs@let@hchar@csta=128 +\chardef\bxjs@let@hchar@cstb=192 +\chardef\bxjs@let@hchar@cstc=224 +\chardef\bxjs@let@hchar@cstd=240 +\chardef\bxjs@let@hchar@cste=248 +\let\bxjs@let@hchar@chr@ue@a\bxjs@let@hchar@chr +\def\bxjs@let@hchar@chr@ue#1{% + \@tempcnta=`#1\relax +%\message{\the\@tempcnta}% + \bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@csta\fi{% + \bxjs@let@hchar@chr@ue@a#1% + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cstb\fi{% + \bxjs@let@hchar@out\let\relax + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cstc\fi{% + \bxjs@let@hchar@chr@ue@b + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cstd\fi{% + \bxjs@let@hchar@chr@ue@c + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cste\fi{% + \bxjs@let@hchar@chr@ue@d + }{%else + \bxjs@let@hchar@out\let\relax + }}}}}} +\def\bxjs@let@hchar@chr@ue@a#1{% + \bxjs@let@hchar@out\def{{#1}}} +\def\bxjs@let@hchar@chr@ue@b#1#2{% + \bxjs@let@hchar@out\def{{#1#2}}} +\def\bxjs@let@hchar@chr@ue@c#1#2#3{% + \bxjs@let@hchar@out\def{{#1#2#3}}} +\def\bxjs@let@hchar@chr@ue@d#1#2#3#4{% + \bxjs@let@hchar@out\def{{#1#2#3#4}}} +% \end{macrocode} +% \end{macro} % +%^^A---------------- % \subsection{(u){\pTeX}用の設定} % % \begin{macrocode} @@ -5819,6 +5959,22 @@ % としてBXJSクラスで除外されている部分に相当するが、 % 若干の変更が加えられている。 % +% \paragraph{補助マクロ} +% +% |\jsLetHeadChar| を和文文字トークンに対応させる。 +% \begin{macrocode} +\def\bxjs@let@hchar@chr@pp#1{% + \expandafter\bxjs@let@hchar@chr@pp@a\meaning#1\relax#1} +\def\bxjs@let@hchar@chr@pp@a#1#2\relax#3{% +%\message{(#1)}% + \bxjs@cond\if#1t\fi{% + \bxjs@let@hchar@chr@ue#3% + }{%else + \bxjs@let@hchar@out\def{{#3}}% + }} +\let\bxjs@let@hchar@chr\bxjs@let@hchar@chr@pp +% \end{macrocode} +% % \paragraph{エンジン依存の定義} % % 最初にエンジン({\pTeX}かu{\pTeX}か)に依存する定義を行う。 @@ -5987,12 +6143,16 @@ % % |\jsResetDimen| は空のままでよい。 % +%^^A---------------- % \subsection{pdf{\TeX}用の処理} % % \begin{macrocode} \else\ifx p\jsEngine % \end{macrocode} % +% \begin{macrocode} +\let\bxjs@let@hchar@chr\bxjs@let@hchar@chr@ue +% \end{macrocode} % % \begin{macrocode} \@onlypreamble\bxjs@cjk@loaded @@ -6019,9 +6179,30 @@ } % \end{macrocode} % +%^^A---------------- +% \subsection{{\XeTeX}用の処理} +% +% \begin{macrocode} +\else\ifx x\jsEngine +% \end{macrocode} +% +% |\bxjs@let@hchar@chr| について、 +% 「BMP外の文字の文字トークンに対して |\string| を適用すると +% サロゲートペアに分解される」という問題に対する応急措置を施す。 +% \begin{macrocode} +\def\bxjs@let@hchar@chr#1{% + \@tempcnta`#1\relax \divide\@tempcnta"800\relax + \bxjs@cond\ifnum\@tempcnta=27 \fi{% + \bxjs@let@hchar@chr@xe + }{\bxjs@let@hchar@out\def{{#1}}}} +\def\bxjs@let@hchar@chr@xe#1{% + \lccode`0=`#1\relax + \lowercase{\bxjs@let@hchar@out\def{{0}}}} +% \end{macrocode} +% % 以上で終わり。 % \begin{macrocode} -\fi\fi +\fi\fi\fi % % \end{macrocode} % @@ -6040,6 +6221,8 @@ % \item |\trueQ|/|\trueH|/|\ascQ| % \item |\setkanjiskip|/|\getkanjiskip| % \item |\setxkanjiskip|/|\getxkanjiskip| +% \item |\autospacing|/|\noautospacing| +% \item |\autoxspacing|/|\noautoxspacing| % \end{itemize} % % \paragraph{和文フォント指定の扱い} @@ -6295,6 +6478,31 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\jsJaChar} +% |\jsJaChar{|\meta{文字}|}|\Means +% 和文文字として出力する。 +% \begin{macrocode} +\def\jsJaChar#1{% + \begingroup +% \end{macrocode} +% |\jsLetHeadChar| で先頭の“文字”を拾って +% それを |\bxjs@jachar| に渡す。 +% \begin{macrocode} + \jsLetHeadChar\bxjs@tmpa{#1}% + \ifx\bxjs@tmpa\relax + \ClassWarningNoLine\bxjs@clsname + {Illegal argument given to \string\jsJaChar}% + \else + \expandafter\bxjs@jachar\expandafter{\bxjs@tmpa}% + \fi + \endgroup} +% \end{macrocode} +% 下請けの |\bxjs@jachar| の実装はエンジンにより異なる。 +% \begin{macrocode} +\let\bxjs@jachar\@firstofone +% \end{macrocode} +% \end{macro} +% % \paragraph{hyperref対策} % % 出力ページサイズに館する処理は |geometry| パッケージが行うので、 @@ -6358,6 +6566,49 @@ \xkanjiskip\@tempskipa} % \end{macrocode} % +% |\jaJaChar| のサブマクロ。 +% \begin{macrocode} +\def\bxjs@jachar#1{% + \bxjs@jachar@a#1....\@nil} +\def\bxjs@jachar@a#1#2#3#4#5\@nil{% +% \end{macrocode} +% 引数が単一トークンなら和文文字トークンが得られたと +% 見なしてそれをそのまま出力する。 +% \begin{macrocode} + \ifx.#2#1% +% \end{macrocode} +% 引数が複数トークンの場合は、UTF-8のバイト列であると見なし、 +% そのスカラー値を |\@tempcnta| に代入する。 +% \begin{macrocode} + \else\ifx.#3% + \@tempcnta`#1 \multiply\@tempcnta64 + \advance\@tempcnta`#2 \advance\@tempcnta-"3080 + \bxjs@jachar@b + \else\ifx.#4% + \@tempcnta`#1 \multiply\@tempcnta64 + \advance\@tempcnta`#2 \multiply\@tempcnta64 + \advance\@tempcnta`#3 \advance\@tempcnta-"E2080 + \bxjs@jachar@b + \else + \@tempcnta`#1 \multiply\@tempcnta64 + \advance\@tempcnta`#2 \multiply\@tempcnta64 + \advance\@tempcnta`#3 \multiply\@tempcnta64 + \advance\@tempcnta`#4 \advance\@tempcnta-"3C82080 + \bxjs@jachar@b + \fi\fi\fi} +% \end{macrocode} +% 符号値が |\@tempcnta| の和文文字を出力する処理。 +% \begin{macrocode} +\ifjsWithupTeX + \def\bxjs@jachar@b{\kchar\@tempcnta} +\else + \def\bxjs@jachar@b{% + \ifx\bxUInt\@undefined\else + \bxUInt{\@tempcnta}% + \fi} +\fi +% \end{macrocode} +% % \paragraph{和文フォント指定の扱い} % % {\pTeX}は既定で |kanji-config-updmap| の設定に従うため、 @@ -6532,6 +6783,12 @@ \let\CJKecglue\bxjs@CJKecglue} % \end{macrocode} % +% |\jsJaChar| のサブマクロの実装。 +% \begin{macrocode} +\def\bxjs@jachar#1{% + \CJKforced{#1}} +% \end{macrocode} +% %^^A---------------- % \subsection{{\XeTeX}用設定: xeCJK + zxjatype} % @@ -6617,6 +6874,13 @@ \fi % \end{macrocode} % +% |\jsJaChar| のサブマクロの実装。 +% \begin{macrocode} +\def\bxjs@jachar#1{% + \xeCJKDeclareCharClass{CJK}{`#1}\relax + #1} +% \end{macrocode} +% %^^A---------------- % \subsection{Lua{\TeX}用設定: Lua{\TeX}-ja} % @@ -6739,6 +7003,12 @@ \ltjsetparameter{xkanjiskip={\@tempskipa}}} % \end{macrocode} % +% |\jsJaChar| のサブマクロの実装。 +% \begin{macrocode} +\def\bxjs@jachar#1{% + \ltjjachar`#1\relax} +% \end{macrocode} +% %^^A---------------- % \subsection{共通処理(2)} % diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls index af37716f58e..50b036892fe 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/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -69,6 +69,10 @@ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ \jsInPdfModetrue \fi\fi +\@gobbletwo\if\if \def\bxjs@cond#1\fi{% + #1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi} \let\jsArticle=a \let\jsBook=b \let\jsReport=r @@ -363,6 +367,24 @@ \fi} \ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final} \ProcessOptions\relax +\@onlypreamble\bxjs@purge@brace@elts +\def\bxjs@purge@brace@elts{% + \def\bxjs@tmpa{\@gobble}% + \expandafter\bxjs@purge@be@a\@classoptionslist,\@nil,% + \let\@classoptionslist\bxjs@tmpa} +\@onlypreamble\bxjs@purge@be@a +\def\bxjs@purge@be@a#1,{% + \ifx\@nil#1\relax\else + \bxjs@purge@be@b#1{}\@nil + \if@tempswa \edef\bxjs@tmpa{\bxjs@tmpa,#1}\fi + \expandafter\bxjs@purge@be@a + \fi} +\@onlypreamble\bxjs@purge@be@b +\def\bxjs@purge@be@b#1#{\bxjs@purge@be@c} +\@onlypreamble\bxjs@purge@be@c +\def\bxjs@purge@be@c#1\@nil{% + \ifx\@nil#1\@nil \@tempswatrue \else \@tempswafalse \fi} +\bxjs@purge@brace@elts \@expandtwoargs\@removeelement {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement @@ -1135,15 +1157,16 @@ {\z@}% {\normalfont\normalsize\headfont}} \fi +\newcommand\jsParagraphMark{\jsJaChar{■}} \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \else \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% {-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \fi \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% {\z@}{-1\jsZw}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls index e524370fe84..47ce8753aba 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/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -69,6 +69,10 @@ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ \jsInPdfModetrue \fi\fi +\@gobbletwo\if\if \def\bxjs@cond#1\fi{% + #1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi} \let\jsArticle=a \let\jsBook=b \let\jsReport=r @@ -367,6 +371,24 @@ \fi} \ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} \ProcessOptions\relax +\@onlypreamble\bxjs@purge@brace@elts +\def\bxjs@purge@brace@elts{% + \def\bxjs@tmpa{\@gobble}% + \expandafter\bxjs@purge@be@a\@classoptionslist,\@nil,% + \let\@classoptionslist\bxjs@tmpa} +\@onlypreamble\bxjs@purge@be@a +\def\bxjs@purge@be@a#1,{% + \ifx\@nil#1\relax\else + \bxjs@purge@be@b#1{}\@nil + \if@tempswa \edef\bxjs@tmpa{\bxjs@tmpa,#1}\fi + \expandafter\bxjs@purge@be@a + \fi} +\@onlypreamble\bxjs@purge@be@b +\def\bxjs@purge@be@b#1#{\bxjs@purge@be@c} +\@onlypreamble\bxjs@purge@be@c +\def\bxjs@purge@be@c#1\@nil{% + \ifx\@nil#1\@nil \@tempswatrue \else \@tempswafalse \fi} +\bxjs@purge@brace@elts \@expandtwoargs\@removeelement {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement @@ -1228,15 +1250,16 @@ {\z@}% {\normalfont\normalsize\headfont}} \fi +\newcommand\jsParagraphMark{\jsJaChar{■}} \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \else \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% {-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \fi \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% {\z@}{-1\jsZw}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def index 14b0afb0539..19b07e0a31c 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/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] %% このファイルは日本語文字を含みます \def\DeclareJaTextFontCommand#1#2{% \DeclareRobustCommand#1[1]{% @@ -51,7 +51,79 @@ \AtBeginDocument{% \ifx\familydefault\bxjs@@CSsfdefault#1\fi}% } +\def\jsLetHeadChar#1#2{% + \begingroup + \escapechar=`\\ % + \let\bxjs@tmpa={% brace-match-hack + \bxjs@let@hchar@exp#2}% + \endgroup + \let#1\bxjs@g@tmpa} +\def\bxjs@let@hchar@exp{% + \futurelet\@let@token\bxjs@let@hchar@exp@a} +\def\bxjs@let@hchar@exp@a{% + \bxjs@cond\ifcat\noexpand\@let@token\bgroup\fi{% 波括弧 + \bxjs@let@hchar@out\let\relax + }{\bxjs@cond\ifcat\noexpand\@let@token\@sptoken\fi{% 空白 + \bxjs@let@hchar@out\let\space% + }{\bxjs@cond\if\noexpand\@let@token\@backslashchar\fi{% バックスラッシュ + \bxjs@let@hchar@out\let\@backslashchar + }{\bxjs@let@hchar@exp@b}}}} +\def\bxjs@let@hchar@exp@b#1{% + \expandafter\bxjs@let@hchar@exp@c\string#1?\@nil#1} +\def\bxjs@let@hchar@exp@c#1#2\@nil{% + \bxjs@cond\if#1\@backslashchar\fi{% 制御綴 + \bxjs@cond\expandafter\ifx\noexpand\@let@token\@let@token\fi{% + \bxjs@let@hchar@out\let\relax + }{%else + \expandafter\bxjs@let@hchar@exp + }% + }{%else + \bxjs@let@hchar@chr#1% + }} +\def\bxjs@let@hchar@chr#1{% + \bxjs@let@hchar@out\def{{#1}}} +\def\bxjs@let@hchar@out#1#2{% + \global#1\bxjs@g@tmpa#2\relax + \toks@\bgroup}% skip to right brace +\chardef\bxjs@let@hchar@csta=128 +\chardef\bxjs@let@hchar@cstb=192 +\chardef\bxjs@let@hchar@cstc=224 +\chardef\bxjs@let@hchar@cstd=240 +\chardef\bxjs@let@hchar@cste=248 +\let\bxjs@let@hchar@chr@ue@a\bxjs@let@hchar@chr +\def\bxjs@let@hchar@chr@ue#1{% + \@tempcnta=`#1\relax + \bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@csta\fi{% + \bxjs@let@hchar@chr@ue@a#1% + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cstb\fi{% + \bxjs@let@hchar@out\let\relax + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cstc\fi{% + \bxjs@let@hchar@chr@ue@b + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cstd\fi{% + \bxjs@let@hchar@chr@ue@c + }{\bxjs@cond\ifnum\@tempcnta<\bxjs@let@hchar@cste\fi{% + \bxjs@let@hchar@chr@ue@d + }{%else + \bxjs@let@hchar@out\let\relax + }}}}}} +\def\bxjs@let@hchar@chr@ue@a#1{% + \bxjs@let@hchar@out\def{{#1}}} +\def\bxjs@let@hchar@chr@ue@b#1#2{% + \bxjs@let@hchar@out\def{{#1#2}}} +\def\bxjs@let@hchar@chr@ue@c#1#2#3{% + \bxjs@let@hchar@out\def{{#1#2#3}}} +\def\bxjs@let@hchar@chr@ue@d#1#2#3#4{% + \bxjs@let@hchar@out\def{{#1#2#3#4}}} \ifx j\jsEngine +\def\bxjs@let@hchar@chr@pp#1{% + \expandafter\bxjs@let@hchar@chr@pp@a\meaning#1\relax#1} +\def\bxjs@let@hchar@chr@pp@a#1#2\relax#3{% + \bxjs@cond\if#1t\fi{% + \bxjs@let@hchar@chr@ue#3% + }{%else + \bxjs@let@hchar@out\def{{#3}}% + }} +\let\bxjs@let@hchar@chr\bxjs@let@hchar@chr@pp \edef\jsc@JYn{\ifjsWithupTeX JY2\else JY1\fi} \edef\jsc@JTn{\ifjsWithupTeX JT2\else JT1\fi} \edef\jsc@pfx@{\ifjsWithupTeX u\fi} @@ -133,6 +205,7 @@ \xspcode\@tempcnta=3\advance\@tempcnta\@ne} \let\jsInhibitGlueAtParTop\@inhibitglue \else\ifx p\jsEngine +\let\bxjs@let@hchar@chr\bxjs@let@hchar@chr@ue \@onlypreamble\bxjs@cjk@loaded \def\bxjs@cjk@loaded{% \def\@footnotemark{% @@ -155,7 +228,16 @@ \bxjs@cjk@loaded }{}% } -\fi\fi +\else\ifx x\jsEngine +\def\bxjs@let@hchar@chr#1{% + \@tempcnta`#1\relax \divide\@tempcnta"800\relax + \bxjs@cond\ifnum\@tempcnta=27 \fi{% + \bxjs@let@hchar@chr@xe + }{\bxjs@let@hchar@out\def{{#1}}}} +\def\bxjs@let@hchar@chr@xe#1{% + \lccode`0=`#1\relax + \lowercase{\bxjs@let@hchar@out\def{{0}}}} +\fi\fi\fi \endinput %% %% End of file `bxjsja-minimal.def'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def index 5b7bc161f36..b54778b84ac 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/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] \input{bxjsja-minimal.def} \ifjsWitheTeX \@tempdima=0.25mm @@ -153,6 +153,17 @@ \ifx$#1$\def\bxjs@tmpa{#2}% \else \let\bxjs@tmpa\relax \fi} +\def\jsJaChar#1{% + \begingroup + \jsLetHeadChar\bxjs@tmpa{#1}% + \ifx\bxjs@tmpa\relax + \ClassWarningNoLine\bxjs@clsname + {Illegal argument given to \string\jsJaChar}% + \else + \expandafter\bxjs@jachar\expandafter{\bxjs@tmpa}% + \fi + \endgroup} +\let\bxjs@jachar\@firstofone \PassOptionsToPackage{setpagesize=false}{hyperref} \@onlypreamble\bxjs@fix@hyperref@unicode \def\bxjs@fix@hyperref@unicode#1{% @@ -186,6 +197,34 @@ \kanjiskip\@tempskipa} \def\bxjs@apply@xkanjiskip{% \xkanjiskip\@tempskipa} +\def\bxjs@jachar#1{% + \bxjs@jachar@a#1....\@nil} +\def\bxjs@jachar@a#1#2#3#4#5\@nil{% + \ifx.#2#1% + \else\ifx.#3% + \@tempcnta`#1 \multiply\@tempcnta64 + \advance\@tempcnta`#2 \advance\@tempcnta-"3080 + \bxjs@jachar@b + \else\ifx.#4% + \@tempcnta`#1 \multiply\@tempcnta64 + \advance\@tempcnta`#2 \multiply\@tempcnta64 + \advance\@tempcnta`#3 \advance\@tempcnta-"E2080 + \bxjs@jachar@b + \else + \@tempcnta`#1 \multiply\@tempcnta64 + \advance\@tempcnta`#2 \multiply\@tempcnta64 + \advance\@tempcnta`#3 \multiply\@tempcnta64 + \advance\@tempcnta`#4 \advance\@tempcnta-"3C82080 + \bxjs@jachar@b + \fi\fi\fi} +\ifjsWithupTeX + \def\bxjs@jachar@b{\kchar\@tempcnta} +\else + \def\bxjs@jachar@b{% + \ifx\bxUInt\@undefined\else + \bxUInt{\@tempcnta}% + \fi} +\fi \let\bxjs@tmpa\jsJaFont \ifx\bxjs@tmpa\bxjs@@auto \let\bxjs@tmpa\@empty @@ -284,6 +323,8 @@ \def\bxjs@apply@xkanjiskip{% \jsXKanjiSkip\@tempskipa \let\CJKecglue\bxjs@CJKecglue} +\def\bxjs@jachar#1{% + \CJKforced{#1}} \else\if x\jsEngine \RequirePackage{zxjatype} \PassOptionsToPackage{no-math}{fontspec}%! @@ -325,6 +366,9 @@ \protected\def\mcfamily{\CJKfamily{\CJKrmdefault}} \protected\def\gtfamily{\CJKfamily{\CJKsfdefault}} \fi +\def\bxjs@jachar#1{% + \xeCJKDeclareCharClass{CJK}{`#1}\relax + #1} \else\if l\jsEngine \let\zw\@undefined \RequirePackage{luatexja} @@ -384,6 +428,8 @@ \ltjsetparameter{kanjiskip={\@tempskipa}}} \def\bxjs@apply@xkanjiskip{% \ltjsetparameter{xkanjiskip={\@tempskipa}}} +\def\bxjs@jachar#1{% + \ltjjachar`#1\relax} \fi\fi\fi\fi \DeclareJaTextFontCommand{\textmc}{\mcfamily} \DeclareJaTextFontCommand{\textgt}{\gtfamily} diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls index e7471f4f192..6234844f826 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/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -69,6 +69,10 @@ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ \jsInPdfModetrue \fi\fi +\@gobbletwo\if\if \def\bxjs@cond#1\fi{% + #1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi} \let\jsArticle=a \let\jsBook=b \let\jsReport=r @@ -367,6 +371,24 @@ \fi} \ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final} \ProcessOptions\relax +\@onlypreamble\bxjs@purge@brace@elts +\def\bxjs@purge@brace@elts{% + \def\bxjs@tmpa{\@gobble}% + \expandafter\bxjs@purge@be@a\@classoptionslist,\@nil,% + \let\@classoptionslist\bxjs@tmpa} +\@onlypreamble\bxjs@purge@be@a +\def\bxjs@purge@be@a#1,{% + \ifx\@nil#1\relax\else + \bxjs@purge@be@b#1{}\@nil + \if@tempswa \edef\bxjs@tmpa{\bxjs@tmpa,#1}\fi + \expandafter\bxjs@purge@be@a + \fi} +\@onlypreamble\bxjs@purge@be@b +\def\bxjs@purge@be@b#1#{\bxjs@purge@be@c} +\@onlypreamble\bxjs@purge@be@c +\def\bxjs@purge@be@c#1\@nil{% + \ifx\@nil#1\@nil \@tempswatrue \else \@tempswafalse \fi} +\bxjs@purge@brace@elts \@expandtwoargs\@removeelement {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement @@ -1224,15 +1246,16 @@ {\z@}% {\normalfont\normalsize\headfont}} \fi +\newcommand\jsParagraphMark{\jsJaChar{■}} \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \else \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% {-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \fi \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% {\z@}{-1\jsZw}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls index 60068d215c5..837f91222f8 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/09/07 v1.0b BXJS document classes] + [2015/11/21 v1.0d BXJS document classes] \RequirePackage{calc} \RequirePackage{keyval} \let\jsEngine=n @@ -69,6 +69,10 @@ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ \jsInPdfModetrue \fi\fi +\@gobbletwo\if\if \def\bxjs@cond#1\fi{% + #1\expandafter\@firstoftwo + \else\expandafter\@secondoftwo + \fi} \let\jsArticle=a \let\jsBook=b \let\jsReport=r @@ -363,6 +367,24 @@ \fi} \ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final} \ProcessOptions\relax +\@onlypreamble\bxjs@purge@brace@elts +\def\bxjs@purge@brace@elts{% + \def\bxjs@tmpa{\@gobble}% + \expandafter\bxjs@purge@be@a\@classoptionslist,\@nil,% + \let\@classoptionslist\bxjs@tmpa} +\@onlypreamble\bxjs@purge@be@a +\def\bxjs@purge@be@a#1,{% + \ifx\@nil#1\relax\else + \bxjs@purge@be@b#1{}\@nil + \if@tempswa \edef\bxjs@tmpa{\bxjs@tmpa,#1}\fi + \expandafter\bxjs@purge@be@a + \fi} +\@onlypreamble\bxjs@purge@be@b +\def\bxjs@purge@be@b#1#{\bxjs@purge@be@c} +\@onlypreamble\bxjs@purge@be@c +\def\bxjs@purge@be@c#1\@nil{% + \ifx\@nil#1\@nil \@tempswatrue \else \@tempswafalse \fi} +\bxjs@purge@brace@elts \@expandtwoargs\@removeelement {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement @@ -1133,15 +1155,16 @@ {\z@}% {\normalfont\normalsize\headfont}} \fi +\newcommand\jsParagraphMark{\jsJaChar{■}} \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \else \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {0.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}% {-1\jsZw}% 改行せず 1\jsZw のアキ - {\normalfont\normalsize\headfont ■}} + {\normalfont\normalsize\headfont\jsParagraphMark}} \fi \newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% {\z@}{-1\jsZw}% -- cgit v1.2.3