From f45d217850b57c09b11267b604eff0eac551aa0d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 20 Feb 2016 23:41:00 +0000 Subject: bxjscls (20feb16) git-svn-id: svn://tug.org/texlive/trunk@39800 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/bxjscls/README-ja.md | 14 +- Master/texmf-dist/doc/latex/bxjscls/README.md | 8 +- .../doc/latex/bxjscls/bxjscls-manual.pdf | Bin 716485 -> 727484 bytes .../doc/latex/bxjscls/bxjscls-manual.tex | 153 ++- Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf | Bin 879130 -> 950655 bytes Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 1133 +++++++++++++++++++- Master/texmf-dist/source/latex/bxjscls/bxjscls.ins | 16 +- .../texmf-dist/tex/latex/bxjscls/bxjsarticle.cls | 49 +- Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls | 49 +- Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty | 347 ++++++ Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty | 140 +++ .../tex/latex/bxjscls/bxjsja-minimal.def | 4 +- .../texmf-dist/tex/latex/bxjscls/bxjsja-modern.def | 62 ++ .../texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def | 115 ++ .../tex/latex/bxjscls/bxjsja-standard.def | 10 +- Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls | 49 +- Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls | 49 +- 17 files changed, 2113 insertions(+), 85 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty create mode 100644 Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty create mode 100644 Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def create mode 100644 Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md index 782ccdcfb36..e65366067f7 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md @@ -64,11 +64,15 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使 * `bxjsslide.cls`: BXJS版 slide クラスファイル * `bxjsja-minimal.def`: minimal 和文ドライバファイル * `bxjsja-standard.def`: standard 和文ドライバファイル + * `bxjsja-pandoc.def`: pandoc 和文ドライバファイル + * `bxjsja-modern.def`: modern 和文ドライバファイル + * `bxjscompat.sty`: bxjscompat パッケージファイル + * `bxjscjkcat.sty`: bxjscjkcat パッケージファイル その後、各ファイルを次の場所に移動する。 (TDS 1.1 に従ったシステムの場合。) - - `*.cls`/`*.def` → $TEXMF/tex/latex/bxjscls/ + - `*.cls`/`*.def`/`*.sty` → $TEXMF/tex/latex/bxjscls/ - `*.dtx`/`*.ins` → $TEXMF/source/latex/bxjscls/ - `*.pdf`/`*.tex` → $TEXMF/doc/latex/bxjscls/ @@ -93,6 +97,14 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使 更新履歴 -------- + * Version 1.1a [2016/02/20] + - `\jachar` 命令を追加。 + - バグ修正。 + * Version 1.1 [2016/02/14] + - “Pandoc モード”おとび pandoc 和文ドライバを追加。 + - サブタイトル命令 `\subtitle` を追加。 + - 〈試験的〉modern 和文ドライバを追加。 + - 〈試験的〉補助パッケージ bxjscompat と bxjscjkcat を追加。 * Version 1.0d [2015/11/21] - バグ修正。 * Version 1.0c [2015/10/18] diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md index 6d47eabe22d..900e60202d1 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README.md @@ -61,11 +61,15 @@ This command will generate the following files: * `bxjsslide.cls`: the BXJS-flavored slide class file * `bxjsja-minimal.def`: the `minimal` ja-driver file * `bxjsja-standard.def`: the `standard` ja-driver file + * `bxjsja-pandoc.def`: the `pandoc` ja-driver file + * `bxjsja-modern.def`: the `modern` ja-driver file + * `bxjscompat.sty`: the `bxjscompat` package file + * `bxjscjkcat.sty`: the `bxjscjkcat` package file After that, move the files as follows (in a system compliant to TDS 1.1): - - `*.cls`/`*.def` → $TEXMF/tex/latex/bxjscls/ + - `*.cls`/`*.def`/`*.sty` → $TEXMF/tex/latex/bxjscls/ - `*.dtx`/`*.ins` → $TEXMF/source/latex/bxjscls/ - `*.pdf`/`*.tex` → $TEXMF/doc/latex/bxjscls/ @@ -83,6 +87,8 @@ This package is distributed under the BSD 2-Clause License. Revision History ---------------- + * Version 1.1a [2016/02/20] + * Version 1.1 [2016/02/14] * 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/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf index 63fc55d0462..d37d5861b83 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 55fb1d31715..5d308b00188 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.0d} -\newcommand{\PkgDate}{2015/11/21} +\newcommand{\PkgVersion}{1.1a} +\newcommand{\PkgDate}{2016/02/20} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} @@ -34,7 +34,7 @@ このマニュアルは\textgt{暫定版}であり、内容に不完全な点がある。 BXJS文書クラスについては、“{\TeX} Wiki”中の記事、 -\footnote{\url{http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?BXjscls}}% +\footnote{\url{https://texwiki.texjp.org/?BXjscls}}% およびそこからたどれるサイトにある情報も参照してほしい。 %=========================================================== @@ -387,6 +387,120 @@ JSクラスのレイアウトデザインと機能をほぼ踏襲しているが % TODO: \@ptsize の話 \end{itemize} +%=========================================================== +\section{Pandocモードの使い方} +\label{sec:Pandoc-mode} + +「Pandocモード」は文書形式変換ツールである +Pandoc\footnote{\url{http://pandoc.org/}}% +での日本語{\LaTeX}文書生成(および{\LaTeX}経由のPDF生成) +のために調整された設定である。 + +\begin{quote} +|\documentclass[pandoc,|\Meta{ドライバ}% +|,jafont=|\Meta{フォント指定}|,|\Meta{他オプション}|]|% +|{|\Meta{クラス名}|}| +\end{quote} + +\begin{itemize} +\item クラスオプションに |pandoc| を指定し、代わりに + 「エンジン」と「和文ドライバ(|ja|)」のオプションを省く。 + \footnote{|pandoc| が指定された場合は、エンジンオプションの + 値は |autodetect-engine|、和文ドライバの値は |pandoc| に + 固定される。} +\item エンジンがDVI出力である場合のドライバの + 既定値が |dvipdfmx| になる。 + ただし明示的にドライバオプションを与えることで |dvips| などに + 変更できる。 +\item 「和文フォント(|jafont|)」および他のクラスオプションは + 従来通り使用できる。 +\end{itemize} + +以下でPandocでBXJSクラスを用いる例を示す。 + +\begin{itemize} +\item \Pkg{bxjsarticle}クラスを使用する一例。 + \begin{itemize} + \item {\XeLaTeX}経由 + \item 用紙サイズはA4判 + \item 和文フォント設定は |ipaex| + \end{itemize} + + コマンド行は次のようになる + \footnote{もちろん、実際には改行を含めず1行で書く。}% + (Pandoc 1.16版の場合 + \footnote{少し古い版の場合、変数 |papersize| の値は |a4| + ではなく |a4paper| と書くことになる。}% + ): + \begin{quote} + |pandoc| \Meta{入力ファイル名} + |-o| \Meta{出力ファイル名}|.pdf| + |--latex-engine=xelatex|\\\quad + |-V papersize=a4| + |-V documentclass=bxjsarticle| + |-V classoption=pandoc|\\\quad + |-V classoption=jafont=ipaex| + \end{quote} + + なおこの場合、途中で生成される{\LaTeX}文書のクラス指定は + 以下のようになる: + \begin{quote} + |\documentclass[a4paper,jafont=ipaex,pandoc]{bxjsarticle}| + \end{quote} + +\item \Pkg{bxjsbook}クラスを用いる場合の一例。 + \begin{itemize} + \item 節番号を出力する + \item Lua{\LaTeX}経由 + \item 用紙サイズはB5判 + \item 和文の基底フォントサイズは11Q + \item 和文フォント設定は |ipaex| + \item 欧文フォントをPandocの機能で設定 + \end{itemize} + + コマンド行は次のようになる: + \begin{quote} + |pandoc| \Meta{入力ファイル名} + |-o| \Meta{出力ファイル名}|.pdf| + |--chapters| + |-N|\\\quad + |--latex-engine=lualatex| + |-V papersize=b5| + |-V documentclass=bxjsbook|\\\quad + |-V classoption=pandoc| + |-V classoption=jbase=11Q|\\\quad + |-V classoption=magstyle=real| + |-V classoption=jafont=ipaex|\\\quad + |-V mainfont="TeX Gyre Termes"| + |-V sansfont="TeX Gyre Heros"| + \end{quote} + + 注意事項: + \begin{itemize} + \item \Pkg{bxjsbook}クラスは「章(|\chapter|)」をもつクラスなので、 + Pandocで |--chapters| の指定が必要。 + \item 基底フォントサイズを指定する場合、 + |magstyle| は |mag| 以外にした方がよいだろう。 + \end{itemize} + +\item Pandocで({\LaTeX}経由で)PDFを出力する場合、 + エンジン指定(|--latex-engine|)は + |pdflatex|、|xelatex|、|lualatex|のみがサポートされる。 + しかし、Pandocの出力を「単体の{\LaTeX}文書」とすることで、 + {\LaTeX}エンジンに(u){\pLaTeX}を使用することができる。 + 出力された{\LaTeX}文書は通常の方法でPDFやPostScript形式に + 変換できる。 + + \begin{quote}\small +\begin{verbatim} +pandoc mydoc.md -o mydoc.tex -s -V documentclass=bxjsarticle -V classoption=pandoc +uplatex mydoc +uplatex mydoc +dvipdfmx mydoc +\end{verbatim} + \end{quote} +\end{itemize} + %=========================================================== \section{クラスオプション} \label{sec:Class-Option} @@ -428,6 +542,15 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション \footnote{「実際に |dvipdfmx| が指定された」場合は、 |dvipdfmx| がグローバルオプションとしても働く。}% ドライバオプションの指定は必須である。 +\item |pandoc|\Means + 「Pandocモード」(\ref{sec:Pandoc-mode}節)を指定する。 + 以下の設定が行われる: + \begin{itemize} + \item エンジンオプションが |autodetect-engine| に固定される。 + \item 和文ドライバが |pandoc| に固定される。 + \item ドライバオプションについて |dvipdfmx-if-dvi| が既定になる + (明示指定で上書可能)。 + \end{itemize} \item |nopapersize|\Means “papersize special出力”を抑止する。 (JSクラスとは異なり、special出力のオプション |papersize| @@ -451,7 +574,8 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション \item |ja=|\Meta{名前}\Means 使用する和文ドライバの名前を指定する。 (詳細は\ref{sec:Ja-Driver}節を参照。) - 標準で提供されている和文ドライバには |minimal| と |standard| がある。 + 標準で提供されている和文ドライバには |minimal|、 + |standard|、|pandoc| がある。 既定値は、エンジンが |platex| か |uplatex| の時は |standard|、 それ以外は |minimal|。 \item |jadriver=|\Meta{名前}\Means @@ -702,6 +826,11 @@ BXJSクラスでは様々なエンジンについて、そのエンジンおよ アドホックな連携コードを書いて、 好きな“日本語処理機能”との連携を実現するために 用いることを想定している。 +\item pandoc和文ドライバ\Means +「Pandocモード」で仕様される和文ドライバ。 +基本的にstandardと同じ設定を用いるが、 +「Pandocの既定のlatexテンプレート」が使われることを前提として、 +それとBXJSの設定を整合させるための措置を加えている。 \end{itemize} 和文ドライバは自分で作製することも可能である。 @@ -793,6 +922,16 @@ vscale=0.944, vmarginratio=1:1 なお、|\geometry| 命令を直接呼び出すことも可能である。 当然この場合は\Ord{3}の後処理は行われない。 +%------------------- +\subsection{構造マークアップ関連} + +\begin{itemize} +\item |\subtitle{|\Meta{テキスト}|}|\Means + サブタイトルを設定する。 + \Note |\maketitle| の出力にサブタイトルが含まれるようになる。 +\end{itemize} + + %------------------- \subsection{和文用設定関連} @@ -813,10 +952,12 @@ vscale=0.944, vmarginratio=1:1 \subsubsection{standard和文ドライバの場合} -|standard| 和文ドライバ使用時を指定した時)は和文に関連する +standard和文ドライバでは和文に関連する 文書ソース記述をエンジンに依らずに共通になることを目指している。 従って、和文関連の組版パラメタの設定*1についても 「共通の命令」が提供される。 +\footnote{pandoc和文ドライバはstandard和文ドライバの設定を +引き継ぐため、pandocモードでもこれらの命令を使用できる。} \begin{itemize} \item 和文ファミリ変更命令\Means @@ -860,6 +1001,8 @@ vscale=0.944, vmarginratio=1:1 \item |\autospacing|/|\noautospacing|\Means 和文間空白の挿入を有効/無効にする。 {\pLaTeX}の同名の命令と同等。 +\item |\jachar{|\Meta{文字1つ}|]|\Means + 指定の文字を和文文字として(現在の和文フォントで)出力する。 \end{itemize} 例えば、{\pLaTeX}において、次のように「和文間空白」を diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf index 0243847a015..74bfab7c3a9 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 3c96c020807..434438075a2 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -53,12 +53,18 @@ %\ProvidesClass{bxjsreport} %\ProvidesClass{bxjsbook} %\ProvidesClass{bxjsslide} -%\ProvidesFile{bxjsja-minimal.def} -%\ProvidesFile{bxjsja-standard.def} +%\ProvidesFile{bxjsja-minimal.def} +%\ProvidesFile{bxjsja-standard.def} +%\ProvidesFile{bxjsja-modern.def} +%\ProvidesFile{bxjsja-pandoc.def} +%\ProvidesPackage{bxjscompat} +%\ProvidesPackage{bxjscjkcat} %<*driver> \ProvidesFile{bxjscls.dtx} % - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] +% [2016/02/14 v1.1 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] @@ -117,6 +123,12 @@ % % \MakeShortVerb{\|} % +% \begin{ZRnote} +% この文書はソースコード説明書です。 +% 一般の文書作成者向けの解説については、 +% ユーザマニュアル |bxjscls-manual.pdf| を参照してください。 +% \end{ZRnote} +% % \section{はじめに} % % \begin{ZRnote} @@ -194,7 +206,8 @@ % \mbox{} % \begin{ZRnote} % \begin{macrocode} -%<*!drvminimal&!drvstandard> +%<*cls> +%% このファイルは日本語文字を含みます % \end{macrocode} % 長さ値の指定で式を利用可能にするため |calc| を読み込む。 % \begin{macrocode} @@ -206,6 +219,14 @@ % \end{macrocode} % クラスの本体ではこの他に |geometry| パッケージが読み込まれる。 % +% 互換性のための補助パッケージを読み込む。 +% \begin{macrocode} +\IfFileExists{bxjscompat.sty}{% + \let\jsAtEndOfClass\@gobble + \RequirePackage{bxjscompat}% +}{} +% \end{macrocode} +% % \begin{macro}{\jsEngine} % 〔暗黙文字トークン〕 % エンジン({\TeX}の種類)の種別: @@ -275,11 +296,13 @@ % \begin{macro}{\ifjsInPdfMode} % 〔スイッチ〕 % pdf{\TeX}/Lua{\TeX}がPDFモードで動作しているか。 +% \Note Lua{\TeX} 0.8x版でのプリミティブ名変更に対応。 % \begin{macrocode} \newif\ifjsInPdfMode -\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ - \jsInPdfModetrue -\fi\fi +\@nameuse{ImposeOldLuaTeXBehavior} +\RequirePackage{ifpdf} +\@nameuse{RevokeOldLuaTeXBehavior} +\let\ifjsInPdfMode\ifpdf % \end{macrocode} % \end{macro} % @@ -319,6 +342,15 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\jsAtEndOfClass} +% このクラスの読込終了時に対するフック。 +% (補助パッケージ中で用いられる。) +% \begin{macrocode} +\def\jsAtEndOfClass{% + \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname} +% \end{macrocode} +% \end{macro} +% % Lua\TeX の場合、原版のコード中のコントロールワード中に現れる % 日本語文字のカテゴリコードを11に変更する。 % (元は12。) @@ -428,7 +460,6 @@ % \begin{ZRnote} % BXJSクラスではページレイアウト設定に |geometry| パッケージを用いる。 % 用紙サイズ設定は |geometry| に渡すオプションの指定と扱われる。 -% \end{ZRnote} % \begin{macrocode} \def\bxjs@setpaper#1{\def\bxjs@param@paper{#1}} \DeclareOption{a3paper}{\bxjs@setpaper{a3paper}} @@ -448,6 +479,7 @@ \DeclareOption{legalpaper}{\bxjs@setpaper{legalpaper}} \DeclareOption{executivepaper}{\bxjs@setpaper{executivepaper}} % \end{macrocode} +% \end{ZRnote} % % \paragraph{横置き} % @@ -483,13 +515,13 @@ % \begin{ZRnote} % |\@ptsize| は |10pt|, |11pt|, |12pt| が指定された時のみ従来と同じ値とし、 % それ以外は |\jsUnusualPtSize|(= $-20$)にする。 -% \end{ZRnote} +% % \begin{macrocode} \newcommand{\@ptsize}{0} \def\bxjs@param@basefontsize{10pt} \def\jsUnusualPtSize{-20} % \end{macrocode} -% \begin{ZRnote} +% % \begin{macro}{\bxjs@setbasefontsize} % 基底フォントサイズを実際に変更する。 % \begin{macrocode} @@ -540,7 +572,7 @@ \fi} % \end{macrocode} % \end{macro} -% \end{ZRnote} +% % \begin{macrocode} \DeclareOption{8pt}{\bxjs@setbasefontsize{8pt}} \DeclareOption{9pt}{\bxjs@setbasefontsize{9pt}} @@ -562,6 +594,7 @@ \DeclareOption{11ptj}{\bxjs@setjbasefontsize{11pt}} \DeclareOption{12ptj}{\bxjs@setjbasefontsize{12pt}} % \end{macrocode} +% \end{ZRnote} % % \paragraph{トンボオプション} % \mbox{} @@ -697,7 +730,7 @@ % \paragraph{数式フォントとして和文フォントを登録しないオプション} % \mbox{} % \begin{ZRnote} -% ここは和文処理コンポーネントの管轄。 +% ここは和文ドライバの管轄。 % \end{ZRnote} % % \paragraph{ドラフト} @@ -709,7 +742,6 @@ % これは |ifdraft| パッケージと衝突するので、代わりに |\ifjsDraft| % の名前を用い、本文開始時に |\ifdraft| が未定義の場合に限り、 % |\ifjsDraft| を |\ifdraft| にコピーする処理にする。 -% % \end{ZRnote} % \begin{macrocode} \let\ifjsDraft\iffalse @@ -728,7 +760,7 @@ % \paragraph{和文フォントメトリックの選択} % \mbox{} % \begin{ZRnote} -% ここは和文処理コンポーネントの管轄。 +% ここは和文ドライバの管轄。 % \end{ZRnote} % % \paragraph{papersizeスペシャルの利用} @@ -764,12 +796,13 @@ % BXJS では `|report|' 相当のものは別に |bxjsreport| クラスとして用意する。 % \end{ZRnote} % -% \paragraph{BXJS特有のオプション ☆} +% \paragraph{BXJS特有のオプションの一覧 ☆} % \mbox{} % \begin{ZRnote} % \begin{itemize} % \item エンジンオプション: |xelatex| 等。 % \item ドライバオプション: |dvipdfmx| 等。 +% \item 複合設定オプション: |pandoc| 等。 % \item |nopapersize| : |papersize|(既定で有効)の否定。 % \item |zw|/|nozw| : |\jsZw| と等価な命令として |\zw| を % 定義する/しない。 @@ -815,6 +848,49 @@ % \end{macrocode} % \end{macro} % +% \end{ZRnote} +% +% \paragraph{複合設定オプション ☆} +% \mbox{} +% \begin{ZRnote} +% 複合設定オプションとは、 +% 「エンジンやドライバや和文ドライバの設定を含む、 +% 複数の設定を一度に行うオプション」 +% のことである。 +% ある特定の設定を短く書く必要性が高いと判断される場合に +% 用意される。 +% +% \begin{macro}{\bxjs@composite@proc} +% 複合設定オプションのための遅延処理マクロ。 +\let\bxjs@composite@proc\relax +% \end{macro} +% +% |pandoc| オプションは、Pandocで{\LaTeX}用の既定テンプレートを +% 用いて他形式から{\LaTeX}(およびPDF)形式に変換する用途に +% 最適化した設定を与える。 +% \begin{macrocode} +\DeclareOption{pandoc}{% +% \end{macrocode} +% 和文ドライバを |pandoc| に、エンジン指定を |autodetect-engine| に +% 変更する。 +% \begin{macrocode} +% \Note 実際の和文ドライバ・エンジン設定より優先される。 + \def\bxjs@composite@proc{% + \setkeys{bxjs}{ja=pandoc}% + \let\bxjs@engine@given=*}% +% \end{macrocode} +% ドライバオプションを |dvipdfmx-if-dvi| に変更する。 +% \Note これは実際のドライバ設定で上書きできる +% (オプション宣言順に注意)。 +% \begin{macrocode} + \def\bxjs@driver@opt{dvipdfmx-if-dvi}} +% \end{macrocode} +% +% \end{ZRnote} +% +% \paragraph{エンジン・ドライバオプション ☆} +% \mbox{} +% \begin{ZRnote} % \begin{macro}{\bxjs@engine@given} % オプションで明示されたエンジンの種別。 % \begin{macrocode} @@ -908,6 +984,11 @@ \let\bxjs@driver@given\@undefined} % \end{macrocode} % +% \end{ZRnote} +% +% \paragraph{その他のBXJS独自オプション ☆} +% \mbox{} +% \begin{ZRnote} % \begin{macro}{\ifbxjs@usezw} % |\jsZw| の同義語として |\zw| を使えるようにするか。 % 既定は真。 @@ -1042,7 +1123,8 @@ % |ja| オプション(|jadriver| オプション)の処理。 % \begin{macrocode} \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} -\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}[\relax]{% + \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi} % \end{macrocode} % % \begin{macro}{\jsJaFont} @@ -1102,7 +1184,6 @@ % (仕様は変わらない)。 % \Note クラスに |\DeclareOption*| がある場合は |\@unusedoptions| % は常に空のままであることを利用している。 -% \end{ZRnote} % \begin{macrocode} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% @@ -1112,6 +1193,8 @@ \fi} % \end{macrocode} % +% \end{ZRnote} +% % デフォルトのオプションを実行し,|dvi| ファイルの先頭にdvipsのpapersize % specialを書き込みます。このspecialはdvipsや最近のdvioutが対応しています。 % |multicols| や |url| を |\RequirePackage| するのはやめました。 @@ -1122,6 +1205,7 @@ %\ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} %\ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final} \ProcessOptions\relax +\bxjs@composite@proc % \end{macrocode} % % \begin{ZRnote} @@ -1179,8 +1263,22 @@ \ifx p\bxjs@tmpb\ifjsInPdfMode\else \let\bxjs@tmpb=n \fi\fi +% \end{macrocode} +% (この時点で |\bxjs@tmpb| は |\bxjs@engine@given| と +% 同じ規則で分類したコードをもっている。) +% \begin{macrocode} \ifx *\bxjs@engine@given \let\bxjs@engine@given\bxjs@tmpb +% \end{macrocode} +% エンジン指定が |autodetec-engine| であり、かつ実際のエンジンが +% {(u)\pLaTeX}だった場合は、本来のエンジンオプションを +% グローバルオプションに加える。 +% \begin{macrocode} + \ifx j\bxjs@engine@given + \g@addto@macro\@classoptionslist{,platex} + \else\ifx u\bxjs@engine@given + \g@addto@macro\@classoptionslist{,uplatex} + \fi\fi \fi \ifx\bxjs@engine@given\@undefined\else \ifx\bxjs@engine@given\bxjs@tmpb\else @@ -1218,7 +1316,8 @@ % \end{macrocode} % % DVI出力のエンジンでドライバオプションがない場合は警告を出す。 -% \Note ただし |ja| 非指定の場合はスキップする。 +% \Note ただし |ja| 非指定の場合はスキップする +% (0.3 版との互換性のため)。 % \begin{macrocode} \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse @@ -1293,7 +1392,6 @@ % \begin{ZRnote} % 8bit欧文{\TeX}の場合は、高位バイトをアクティブ化しておく。 % (和文を含むマクロ定義を通用させるため。) -% \end{ZRnote} % \begin{macrocode} \if \if p\jsEngine T\else\if n\jsEngine T\else F\fi\fi T \@tempcnta="80 \loop \ifnum\@tempcnta<"100 @@ -1303,12 +1401,10 @@ \fi % \end{macrocode} % -% \begin{ZRnote} % |js| オプション指定時は、jsarticle(または jsbook)クラスを % 読込済のように振舞う。 % \Note 「2つのクラスを読み込んだ状態」は |\LoadClass| を使用した % 場合に出現するので、別に異常ではない。 -% \end{ZRnote} % \begin{macrocode} \ifbxjs@disguise@js %\def\bxjs@js@clsname{jsbook} @@ -1316,6 +1412,7 @@ \@namedef{ver@\bxjs@js@clsname.cls}{2001/01/01 (bxjs)} \fi % \end{macrocode} +% \end{ZRnote} % % \paragraph{papersizeスペシャルの出力} % \mbox{} @@ -1429,14 +1526,11 @@ \fi \chardef\bxjs@qmcc=\catcode`\?\relax % \end{macrocode} -% \end{ZRnote} % -% \begin{ZRnote} % ここで{p\TeX}のzwに相当する単位として用いる長さ変数 |\jsZw| を作成する。 % 約束により、これは |\jsScale| $\times$ (指定フォントサイズ) に等しい。 % % |nozw| 非指定時は |\zw| を |\jsZw| と同義にする。 -% \end{ZRnote} % \begin{macrocode} \newdimen\jsZw \jsZw=10\bxjs@mpt \jsZw=\jsScale\jsZw @@ -1444,11 +1538,12 @@ \providecommand*\zw{\jsZw} \fi % \end{macrocode} +% \end{ZRnote} % % \paragraph{NFSSパッチ ☆} % -% ムニャムニャムニャ……。 % \begin{ZRnote} +% ムニャムニャムニャ……。 % \begin{macrocode} \ifbxjs@nfss@patch \RequirePackage{type1cm} @@ -1502,7 +1597,7 @@ % \section{和文フォントの変更} % % \begin{ZRnote} -% 和文フォントの設定は和文処理モジュールの管轄。 +% 和文フォントの設定は和文ドライバの管轄。 % \end{ZRnote} % % \begin{macro}{\@} @@ -1685,7 +1780,6 @@ % 不可解なエラーが発生する。 % これは |microtype| が邪悪なトリックを使用しているせいなのだが、 % 一応こちら側で対策をとることにする。 -% \end{ZRnote} % \begin{macrocode} \def\bxjs@if@narrowbaselines{% \ifnarrowbaselines\expandafter\@firstoftwo @@ -1693,6 +1787,7 @@ \fi } % \end{macrocode} +% \end{ZRnote} % % \begin{macro}{\normalsize} % @@ -2235,7 +2330,9 @@ % \begin{macrocode} \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\AtBeginDocument{\ImposeOldLuaTeXBehavior} \bxjs@nxt \bxjs@revert +\AtBeginDocument{\RevokeOldLuaTeXBehavior} \bxjs@postproc@layout % \end{macrocode} % @@ -2711,6 +2808,16 @@ % \end{macro} % \end{macro} % +% \begin{ZRnote} +% \begin{macro}{\subtitle} +% 副題を設定する。 +% \begin{macrocode} +\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}} +%\let\bxjs@subtitle\@undefined +% \end{macrocode} +% \end{macro} +% \end{ZRnote} +% % \begin{macro}{\etitle} % \begin{macro}{\eauthor} % \begin{macro}{\keywords} @@ -2778,6 +2885,10 @@ {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title + \ifx\bxjs@subtitle\@undefined\else + \par\vskip\z@ + {\small \bxjs@subtitle\par} + \fi \smallskip {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill @@ -2787,6 +2898,10 @@ \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip5\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 3em% {\large \lineskip .75em @@ -2860,6 +2975,10 @@ \begin{center}% \let\footnote\thanks {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip3\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 1.5em {\large \lineskip .5em @@ -3656,10 +3775,13 @@ % 段落のマーク(■)が必ず和文フォントで出力されるようにする。 % さらに、このマークを変更可能にするため |\jsParagraphMark| と % いうマクロに切り出した。 -% \end{ZRnote} % +% |\jsJaChar| はstandard和文ドライバが読み込まれた場合は\ +% |\jachar| と同義になるが、それ以外は何もしない。 +% \end{ZRnote} % \begin{macrocode} \newcommand\jsParagraphMark{\jsJaChar{■}} +\let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ @@ -5723,7 +5845,7 @@ % 最後に日本語文字のカテゴリコードを元に戻す。 % \begin{macrocode} \bxjs@restore@jltrcc -% +% % \end{macrocode} % % \end{ZRnote} @@ -5734,9 +5856,9 @@ % \clearpage % \appendix %^^A======================================================== -% \section{連携モジュールの仕様 ☆} +% \section{和文ドライバの仕様 ☆} % -% 次の命令がBXJSクラス本体と和文モジュールの連携のために +% 次の命令がBXJSクラス本体と和文ドライバの連携のために % 用意されている。 % このうち、★印を付けたものは“書込”が許されるものである。 % @@ -5815,6 +5937,11 @@ % 既定の定義は空。 % \end{itemize} % +% 以下で標準で用意されている和文ドライバの実装を示す。 +% \begin{macrocode} +%<*drv> +% \end{macrocode} +% %^^A======================================================== % \section{和文ドライバ:minimal ☆} % @@ -5835,7 +5962,7 @@ % \subsection{補助マクロ} % % \begin{macrocode} -%<*drvminimal> +%<*minimal> %% このファイルは日本語文字を含みます % \end{macrocode} % @@ -6203,7 +6330,7 @@ % 以上で終わり。 % \begin{macrocode} \fi\fi\fi -% +% % \end{macrocode} % %^^A======================================================== @@ -6239,7 +6366,8 @@ % % まず minimal ドライバを読み込む。 % \begin{macrocode} -%<*drvstandard> +%<*standard> +%% このファイルは日本語文字を含みます \input{bxjsja-minimal.def} % \end{macrocode} % @@ -6478,11 +6606,11 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\jsJaChar} -% |\jsJaChar{|\meta{文字}|}|\Means +% \begin{macro}{\jachar} +% |\jachar{|\meta{文字}|}|\Means % 和文文字として出力する。 % \begin{macrocode} -\def\jsJaChar#1{% +\newcommand*\jachar[1]{% \begingroup % \end{macrocode} % |\jsLetHeadChar| で先頭の“文字”を拾って @@ -6491,12 +6619,16 @@ \jsLetHeadChar\bxjs@tmpa{#1}% \ifx\bxjs@tmpa\relax \ClassWarningNoLine\bxjs@clsname - {Illegal argument given to \string\jsJaChar}% + {Illegal argument given to \string\jachar}% \else \expandafter\bxjs@jachar\expandafter{\bxjs@tmpa}% \fi \endgroup} % \end{macrocode} +% |\jsJaChar| を |\jachar| と等価にする。 +% \begin{macrocode} +\let\jsJaChar\jachar +% \end{macrocode} % 下請けの |\bxjs@jachar| の実装はエンジンにより異なる。 % \begin{macrocode} \let\bxjs@jachar\@firstofone @@ -6783,7 +6915,7 @@ \let\CJKecglue\bxjs@CJKecglue} % \end{macrocode} % -% |\jsJaChar| のサブマクロの実装。 +% |\jachar| のサブマクロの実装。 % \begin{macrocode} \def\bxjs@jachar#1{% \CJKforced{#1}} @@ -6874,7 +7006,7 @@ \fi % \end{macrocode} % -% |\jsJaChar| のサブマクロの実装。 +% |\jachar| のサブマクロの実装。 % \begin{macrocode} \def\bxjs@jachar#1{% \xeCJKDeclareCharClass{CJK}{`#1}\relax @@ -7003,7 +7135,7 @@ \ltjsetparameter{xkanjiskip={\@tempskipa}}} % \end{macrocode} % -% |\jsJaChar| のサブマクロの実装。 +% |\jachar| のサブマクロの実装。 % \begin{macrocode} \def\bxjs@jachar#1{% \ltjjachar`#1\relax} @@ -7040,7 +7172,924 @@ % 以上で終わり。 % % \begin{macrocode} -% +% +% \end{macrocode} +% +%^^A======================================================== +% \section{和文ドライバ:modern ☆} +% +% モダーンな設定。 +% +% standardドライバの設定を引き継ぐ。 +% \begin{macrocode} +%<*modern> +\input{bxjsja-standard.def} +% \end{macrocode} +% +%^^A---------------- +%\subsection{フォント設定} +% +% T1エンコーディングに変更する。 +% \Note 以下のコードは |\usepackage[T1]{fontenc}| と同等。 +% \begin{macrocode} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@ +\def\encodingdefault{T1}% +\input{t1enc.def}% +\fontencoding\encodingdefault\selectfont +\fi +% \end{macrocode} +% +% 基本フォントをLatin Modernフォントファミリに変更する。 +% \Note 以下は |\usepackage[noamth]{lmodern}| と同じ。 +% ユーザは後で |lmodern| を好きなオプションを付けて読み込む +% ことができる。 +% \begin{macrocode} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@ +\renewcommand{\rmdefault}{lmr} +\renewcommand{\sfdefault}{lmss} +\renewcommand{\ttdefault}{lmtt} +\fi +% \end{macrocode} +% +% 大型演算子用の数式フォントの設定。 +% \Note |amsfonts| パッケージと同等にする。 +% \begin{macrocode} +\DeclareFontShape{OMX}{cmex}{m}{n}{% + <-7.5>cmex7<7.5-8.5>cmex8% + <8.5-9.5>cmex9<9.5->cmex10}{}% +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +% \end{macrocode} +% |amsmath| 読込時に上書きされるのを防ぐ。 +% \begin{macrocode} +\def\cmex@opt{10} +% \end{macrocode} +% +%^^A---------------- +% \subsection{fixltx2e読込} +% +% \Note |fixltx2e| 廃止前の{\LaTeX}カーネルの場合。 +% \begin{macrocode} +\ifx\@IncludeInRelease\@undefined +\RequirePackage{fixltx2e} +\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{和文カテゴリコード} +% +% 和文カテゴリコード設定のための補助パッケージを読みこむ。 +% \begin{macrocode} +\RequirePackage{bxjscjkcat} +% \end{macrocode} +% +%^^A---------------- +% \subsection{完了} +% おしまい。 +% \begin{macrocode} +% +% \end{macrocode} +% +%^^A======================================================== +% \section{和文ドライバ:pandoc ☆} +% +% Pandoc用の何か。 +% +% standardドライバの設定を引き継ぐ。 +% \begin{macrocode} +%<*pandoc> +\input{bxjsja-standard.def} +% \end{macrocode} +% +%^^A---------------- +%\subsection{duploadシステム} +% +% パッケージが重複して読み込まれたときに“option clash”の +% 検査をスキップする。 +% この時に何らかのコードを実行させることができる。 +% +% \begin{macro}{\bxjs@set@dupload@proc} +% |\bxjs@set@dupload@proc{|\Meta{ファイル名}|}{|\Meta{定義本体}|}| +% 特定のファイルの読込が |\@filewithoptions| で指示されて、しかも +% そのファイルが読込済である場合に、オプション重複検査をスキップして、 +% 代わりに\Meta{定義本体}のコードを実行する。 +% このコード中で |#1| は渡されたオプション列のテキストに置換される。 +% \begin{macrocode} +\@onlypreamble\bxjs@set@dupload@proc +\def\bxjs@set@dupload@proc#1{% + \expandafter\bxjs@set@dupload@proc@a\csname bxjs@dlp/#1\endcsname} +\@onlypreamble\bxjs@set@dupload@proc@a +\def\bxjs@set@dupload@proc@a#1{% + \@onlypreamble#1\def#1##1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@if@ptions} +% |\@if@ptions| の再定義。 +% \begin{macrocode} +\@onlypreamble\bxjs@org@if@ptions +\let\bxjs@org@if@ptions\@if@ptions +\newif\ifbxjs@dlp +\def\@if@ptions#1#2#3{% + \bxjs@dlpfalse + \def\bxjs@tmpa{#1}\def\bxjs@tmpb{\@currext}% + \ifx\bxjs@tmpa\bxjs@tmpb + \expandafter\ifx\csname bxjs@dlp/#2.#1\endcsname\relax\else + \bxjs@dlptrue \fi + \fi + \ifbxjs@dlp \expandafter\bxjs@do@dupload@proc + \else \expandafter\bxjs@org@if@ptions + \fi {#1}{#2}{#3}} +\AtBeginDocument{% + \let\@if@ptions\bxjs@org@if@ptions} +\@onlypreamble\bxjs@do@dupload@proc +\def\bxjs@do@dupload@proc#1#2#3{% + \csname bxjs@dlp/#2.#1\endcsname{#3}% + \@firstoftwo} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@mark@as@loaded} +% |\bxjs@mark@as@loaded{|\Meta{ファイル名}|}|\Means +% 特定のファイルに対して、(|\@filewithoptions| の処理に関して) +% 読込済であるとマークする。 +% \begin{macrocode} +\def\bxjs@mark@as@loaded#1{% + \expandafter\bxjs@mal@a\csname ver@#1\endcsname{#1}} +\def\bxjs@mal@a#1#2{% + \ifx#1\relax + \def#1{2001/01/01}% + \ClassInfo\bxjs@clsname + {File '#2' marked as loaded\@gobble}% + \fi} +% \end{macrocode} +% \end{macro} +% +%^^A---------------- +%\subsection{lang変数} +% |lang=ja| という言語指定が行われると、 +% Pandocはこれに対応していないため +% 不完全なBabelやPolyglossiaの設定を出力してしまう。 +% これを防ぐため、とりあえず両パッケージを無効化しておく。 +% +% \begin{macrocode} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>0 +% \end{macrocode} +% Polyglossiaについて。 +% \begin{macrocode} +\bxjs@mark@as@loaded{polyglossia.sty} +\bxjs@set@dupload@proc{polyglossia.sty}{% + \ClassWarning\bxjs@clsname + {Loading of polyglossia is blocked}} +\ifx\setmainlanguage\@undefined +\newcommand*\setmainlanguage[2][]{} +\newcommand*\setotherlanguage[2][]{% + \ifcat_#2_\else + \expandafter\let\csname #2\endcsname\@empty + \expandafter\let\csname end#2\endcsname\@empty + \expandafter\let\csname text#2\endcsname\@firstofone + \fi} +\newcommand*\setotherlanguages[2][]{% + \@for\bxjs@tmpa:={#2}\do{% + \setotherlangauge{\bxjs@tmpa}}} +\fi +\else +% \end{macrocode} +% Babelについて。 +% \begin{macrocode} +\bxjs@mark@as@loaded{babel.sty} +\bxjs@set@dupload@proc{babel.sty}{% + \ClassWarning\bxjs@clsname + {Loading of babel is blocked}} +\let\foreignlanguage\@secondoftwo +\let\otherlanguage\@gobble +\let\endotherlanguage\@empty +\fi +% \end{macrocode} +% +%^^A---------------- +%\subsection{geometry変数} +% |geometry| を“再度読み込んだ”場合に、 +% そのパラメタで |\setpagelayout*| が呼ばれるようにする。 +% +% \begin{macrocode} +\bxjs@set@dupload@proc{geometry.sty}{% + \setpagelayout*{#1}} +% \end{macrocode} +% +%^^A---------------- +%\subsection{CJKmainfont変数} +% Lua{\TeX}(+ Lua{{TeX}-ja)の場合に CJKmainfont 変数が +% 指定された場合は |\setmainjfont| の指定にまわす。 +% \begin{macrocode} +\if l\jsEngine + \bxjs@mark@as@loaded{xeCJK.sty} + \providecommand*{\setCJKmainfont}{\setmainjfont} +\fi +% \end{macrocode} +% +%^^A---------------- +%\subsection{fixltx2eパッケージ} +% テンプレートでは |fixltx2e| パッケージを読み込むが、 +% 最近(2015年版以降)の{\LaTeX}ではこれで警告が出る。 +% これを抑止する。 +% +% {\LaTeX}カーネルが新しい場合は |fixltx2e| を +% 読込済にする。 +% \begin{macrocode} +\ifx\@IncludeInRelease\@undefined\else + \bxjs@mark@as@loaded{fixltx2e.sty} +\fi +% \end{macrocode} +% +%^^A---------------- +%\subsection{cmapパッケージ} +% エンジンが{(u)\pLaTeX}のときに |cmap| パッケージが +% 読み込まれるのを阻止する。 +% (実際は警告が出るだけで無害であるが。) +% +% \begin{macrocode} +\if j\jsEngine + \bxjs@mark@as@loaded{cmap.sty} +\fi +% \end{macrocode} +% +%^^A---------------- +%\subsection{microtypeパッケージ} +% 警告が多すぎなので消す。 +% +% \begin{macrocode} +\PassOptionsToPackage{verbose=silent}{microtype} +% \end{macrocode} +% +%^^A---------------- +% \subsection{完了} +% おしまい。 +% \begin{macrocode} +% +% \end{macrocode} +% +% 和文ドライバ実装はここまで。 +% \begin{macrocode} +% +% \end{macrocode} +% +%^^A======================================================== +% \section{補助パッケージ一覧 ☆} +% +% BXJSクラスの機能を実現するために用意されたものだが、 +% 他のクラスの文書で読み込んで利用することもできる。 +% +% \begin{itemize} +% \item bxjscjkcat: modernドライバ用の和文カテゴリを適用する。 +% \end{itemize} +% +% \begin{macrocode} +%<*anc> +% \end{macrocode} +% +%^^A======================================================== +% \section{補助パッケージ:bxjscompat ☆} +% +% ムニャムニャムニャ……。 +% +%^^A---------------- +% \subsection{準備} +% +% \begin{macrocode} +%<*compat> +\def\bxac@pkgname{bxjscompat} +% \end{macrocode} +% +% \begin{macro}{\bxjx@engine} +% エンジンの種別。 +% \begin{macrocode} +\let\bxac@engine=n +\def\bxac@do#1#2{% + \edef\bxac@tmpa{\string#1}% + \edef\bxac@tmpb{\meaning#1}% + \ifx\bxac@tmpa\bxac@tmpb #2\fi} +\bxac@do\XeTeXversion{\let\bxac@engine=x} +\bxac@do\luatexversion{\let\bxac@engine=l} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxac@delayed@if@bxjs} +% もしBXJSクラスの読込中でこのパッケージが読み込まれているならば、 +% BXJSのクラスの終わりまで実行を遅延する。 +% \begin{macrocode} +\ifx\jsAtEndOfClass\@undefined + \let\bxac@delayed@if@bxjs\@firstofone +\else \let\bxac@delayed@if@bxjs\jsAtEndOfClass +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ImposeOldLuaTeXBehavior} +% \begin{macro}{\RevokeOldLuaTeXBehavior} +% ムニャムニャ。 +% \begin{macrocode} +\newif\ifbxac@in@old@behavior +\let\ImposeOldLuaTeXBehavior\relax +\let\RevokeOldLuaTeXBehavior\relax +% \end{macrocode} +% \end{macro} +% \end{macro} +% +%^^A---------------- +% \subsection{{\XeTeX}部分} +% \begin{macrocode} +\ifx x\bxac@engine +% \end{macrocode} +% +% {\XeTeX}文字クラスのムニャムニャ。 +% \begin{macrocode} +\@onlypreamble\bxac@adjust@charclass +\bxac@delayed@if@bxjs{% + \@ifpackageloaded{xeCJK}{}{%else + \ifx\xe@alloc@intercharclass\@undefined\else + \ifnum\xe@alloc@intercharclass=\z@ + \PackageInfo\bxac@pkgname + {Setting up interchar class for CJK...\@gobble}% + \InputIfFileExists{load-unicode-xetex-classes.tex}{% + \xe@alloc@intercharclass=3 + }{%else + \PackageWarning\bxac@pkgname + {Cannot find file 'load-unicode-xetex-classes.tex'% + \@gobble}% + }% + \fi\fi + \ifnum\XeTeXcharclass"3041=\z@ + \PackageInfo\bxac@pkgname + {Adjusting interchar class for CJK...\@gobble}% + \@for\bxac@x:={% + 3041,3043,3045,3047,3049,3063,3083,3085,3087,308E,% + 3095,3096,30A1,30A3,30A5,30A7,30A9,30C3,30E3,30E5,% + 30E7,30EE,30F5,30F6,30FC,31F0,31F1,31F2,31F3,31F4,% + 31F5,31F6,31F7,31F8,31F9,31FA,31FB,31FC,31FD,31FE,% + 31FF% + }\do{\XeTeXcharclass"\bxac@x=\@ne}% + \fi + }% +} +% \end{macrocode} +% 以上。 +% \begin{macrocode} +\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{Lua{\TeX}部分} +% \begin{macrocode} +\ifx l\bxac@engine +% \end{macrocode} +% +% ムニャムニャ。 +% \begin{macrocode} +\unless\ifnum\luatexversion<80 \ifnum\luatexversion<85 + \chardef\pdftexversion=200 + \def\pdftexrevision{0} + \let\pdftexbanner\luatexbanner +\fi\fi +% \end{macrocode} +% +% \begin{macro}{\ImposeOldLuaTeXBehavior} +% \begin{macro}{\RevokeOldLuaTeXBehavior} +% ムニャムニャ。 +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname outputmode\endcsname\relax\else +\def\bxac@ob@list{% + \do{\let}\pdfoutput{\outputmode}% + \do{\let}\pdfpagewidth{\pagewidth}% + \do{\let}\pdfpageheight{\pageheight}% + \do{\protected\edef}\pdfhorigin{{\pdfvariable horigin}}% + \do{\protected\edef}\pdfvorigin{{\pdfvariable vorigin}}} +\def\bxac@ob@do#1#2{\begingroup + \expandafter\bxac@ob@do@a\csname bxac@\string#2\endcsname{#1}#2} +\def\bxac@ob@do@a#1#2#3#4{\endgroup + \ifbxac@in@old@behavior \let#1#3\relax #2#3#4\relax + \else \let#3#1\relax \let#1\@undefined + \fi} +\protected\def\ImposeOldLuaTeXBehavior{% + \unless\ifbxac@in@old@behavior + \bxac@in@old@behaviortrue + \let\do\bxac@ob@do \bxac@ob@list + \fi} +\protected\def\RevokeOldLuaTeXBehavior{% + \ifbxac@in@old@behavior + \bxac@in@old@behaviorfalse + \let\do\bxac@ob@do \bxac@ob@list + \fi} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% 漢字および完成形ハングルのカテゴリコードのムニャムニャ。 +% \begin{macrocode} + \ifnum\luatexversion>64 \directlua{ + local function range(cs, ce, cc, ff) + if ff or not tex.getcatcode(cs) == cc then + local setcc = tex.setcatcode + for c = cs, ce do setcc(c, cc) end + end + end + range(0x3400, 0x4DB5, 11, false) + range(0x4DB5, 0x4DBF, 11, true) + range(0x4E00, 0x9FCC, 11, false) + range(0x9FCD, 0x9FFF, 11, true) + range(0xAC00, 0xD7A3, 11, false) + range(0x20000, 0x2A6D6, 11, false) + range(0x2A6D7, 0x2A6FF, 11, true) + range(0x2A700, 0x2B734, 11, false) + range(0x2B735, 0x2B73F, 11, true) + range(0x2B740, 0x2B81D, 11, false) + range(0x2B81E, 0x2B81F, 11, true) + range(0x2B820, 0x2CEA1, 11, false) + range(0x2CEA2, 0x2FFFD, 11, true) + }\fi +% \end{macrocode} +% 以上。 +% \begin{macrocode} +\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{完了} +% おしまい。 +% \begin{macrocode} +% +% \end{macrocode} +% +%^^A======================================================== +% \section{補助パッケージ:bxjscjkcat ☆} +% +% modernドライバ用の和文カテゴリを適用する。 +% +%^^A---------------- +% \subsection{準備} +% +% \begin{macrocode} +%<*cjkcat> +\def\bxjx@pkgname{bxjscjkcat} +\newcount\bxjx@cnta +% \end{macrocode} +% +% \begin{macro}{\bxjx@engine} +% エンジンの種別。 +% \begin{macrocode} +\let\bxjx@engine=n +\def\bxjx@do#1#2{% + \edef\bxjx@tmpa{\string#1}% + \edef\bxjx@tmpb{\meaning#1}% + \ifx\bxjx@tmpa\bxjx@tmpb #2\fi} +\bxjx@do\kanjiskip{\let\bxjx@engine=j} +\bxjx@do\enablecjktoken{\let\bxjx@engine=u} +\bxjx@do\XeTeXversion{\let\bxjx@engine=x} +\bxjx@do\pdftexversion{\let\bxjx@engine=p} +\bxjx@do\luatexversion{\let\bxjx@engine=l} +% \end{macrocode} +% \end{macro} +% +% それぞれのエンジンで、前提となる日本語処理パッケージが実際に +% 読み込まれているかを検査する。 +% \begin{macrocode} +\def\bxjx@do#1#2{% + \if#1\bxjx@engine + \@ifpackageloaded{#2}{}{%else + \PackageError\bxjx@pkgname + {Package '#2' must be loaded}% + {Package loading is aborted.\MessageBreak\@ehc}% + \endinput} + \fi} +\bxjx@do{p}{bxcjkjatype} +\bxjx@do{x}{xeCJK} +\bxjx@do{l}{luatexja} +% \end{macrocode} +% +% 古い{\LaTeX}の場合、|\TextOrMath| は |fixltx2e| パッケージで +% 提供される。 +% \begin{macrocode} +\ifx\TextOrMath\@undefined + \RequirePackage{fixltx2e} +\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{和文カテゴリコードの設定} +% +% up{\LaTeX}の場合、和文カテゴリコードの設定を +% Lua{\TeX}-jaと(ほぼ)等価なものに変更する。 +% +% \Note Lua{\TeX}-jaとの相違点: +% |A830|、|A960|、|1B000|。 +% \begin{macrocode} +\if u\bxjx@engine +\@for\bxjx@x:={% +0080,0100,0180,0250,02B0,0300,0500,0530,0590,0600,% +0700,0750,0780,07C0,0800,0840,08A0,0900,0980,0A00,% +0A80,0B00,0B80,0C00,0C80,0D00,0D80,0E00,0E80,0F00,% +1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,% +1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,% +1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1CC0,1CD0,1D00,% +1D80,1DC0,1E00,2440,27C0,27F0,2800,2A00,2C00,2C60,% +2C80,2D00,2D30,2D80,2DE0,2E00,4DC0,A4D0,A500,A640,% +A6A0,A700,A720,A800,A830,A840,A880,A8E0,A900,A930,% +A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,% +D800,DB80,DC00,E000,FB00,FB50,FE00,FE70,% +10000,10080,10100,10140,10190,101D0,10280,102A0,% +102E0,10300,10330,10350,10380,103A0,10400,10450,% +10480,10500,10530,10600,10800,10840,10860,10880,% +108E0,10900,10920,10980,109A0,10A00,10A60,10A80,% +10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,% +11000,11080,110D0,11100,11150,11180,111E0,11200,% +11280,112B0,11300,11480,11580,11600,11680,11700,% +118A0,11AC0,12000,12400,12480,13000,14400,16800,% +16A40,16AD0,16B00,16F00,1BC00,1BCA0,1D000,1D100,% +1D200,1D300,1D360,1D400,1D800,1E800,1EE00,1F000,% +1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,% +1F700,1F780,1F800,1F900,E0000,F0000,100000% +}\do{\kcatcode"\bxjx@x=15 } +\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{ギリシャ・キリル文字の扱い} +% +% \Note ここで「ギリシャ・キリル文字」はUnicodeとJIS X 0213に +% 共通して含まれるもののみを指すことにする。 +% +% \begin{macro}{\bxjx@grkcyr@list} +% 対象のギリシャ・キリル文字に関するデータ。 +% \begin{macrocode} +\def\bxjx@grkcyr@list{% +\do{0391}{LGR}{\textAlpha}{A}% % GR. C. L. ALPHA +\do{0392}{LGR}{\textBeta}{B}% % GR. C. L. BETA +\do{0393}{LGR}{\textGamma}{\Gamma}% % GR. C. L. GAMMA +\do{0394}{LGR}{\textDelta}{\Delta}% % GR. C. L. DELTA +\do{0395}{LGR}{\textEpsilon}{E}% % GR. C. L. EPSILON +\do{0396}{LGR}{\textZeta}{Z}% % GR. C. L. ZETA +\do{0397}{LGR}{\textEta}{H}% % GR. C. L. ETA +\do{0398}{LGR}{\textTheta}{\Theta}% % GR. C. L. THETA +\do{0399}{LGR}{\textIota}{I}% % GR. C. L. IOTA +\do{039A}{LGR}{\textKappa}{K}% % GR. C. L. KAPPA +\do{039B}{LGR}{\textLambda}{\Lambda}% % GR. C. L. LAMDA +\do{039C}{LGR}{\textMu}{M}% % GR. C. L. MU +\do{039D}{LGR}{\textNu}{N}% % GR. C. L. NU +\do{039E}{LGR}{\textXi}{\Xi}% % GR. C. L. XI +\do{039F}{LGR}{\textOmicron}{O}% % GR. C. L. OMICRON +\do{03A0}{LGR}{\textPi}{\Pi}% % GR. C. L. PI +\do{03A1}{LGR}{\textRho}{P}% % GR. C. L. RHO +\do{03A3}{LGR}{\textSigma}{\Sigma}% % GR. C. L. SIGMA +\do{03A4}{LGR}{\textTau}{T}% % GR. C. L. TAU +\do{03A5}{LGR}{\textUpsilon}{\Upsilon}% % GR. C. L. UPSILON +\do{03A6}{LGR}{\textPhi}{\Phi}% % GR. C. L. PHI +\do{03A7}{LGR}{\textChi}{X}% % GR. C. L. CHI +\do{03A8}{LGR}{\textPsi}{\Psi}% % GR. C. L. PSI +\do{03A9}{LGR}{\textOmega}{\Omega}% % GR. C. L. OMEGA +\do{03B1}{LGR}{\textalpha}{\alpha}% % GR. S. L. ALPHA +\do{03B2}{LGR}{\textbeta}{\beta}% % GR. S. L. BETA +\do{03B3}{LGR}{\textgamma}{\gamma}% % GR. S. L. GAMMA +\do{03B4}{LGR}{\textdelta}{\delta}% % GR. S. L. DELTA +\do{03B5}{LGR}{\textepsilon}{\epsilon}% % GR. S. L. EPSILON +\do{03B6}{LGR}{\textzeta}{\zeta}% % GR. S. L. ZETA +\do{03B7}{LGR}{\texteta}{\eta}% % GR. S. L. ETA +\do{03B8}{LGR}{\texttheta}{\theta}% % GR. S. L. THETA +\do{03B9}{LGR}{\textiota}{\iota}% % GR. S. L. IOTA +\do{03BA}{LGR}{\textkappa}{\kappa}% % GR. S. L. KAPPA +\do{03BB}{LGR}{\textlambda}{\lambda}% % GR. S. L. LAMDA +\do{03BC}{LGR}{\textmu}{\mu}% % GR. S. L. MU +\do{03BD}{LGR}{\textnu}{\nu}% % GR. S. L. NU +\do{03BE}{LGR}{\textxi}{\xi}% % GR. S. L. XI +\do{03BF}{LGR}{\textomicron}{o}% % GR. S. L. OMICRON +\do{03C0}{LGR}{\textpi}{\pi}% % GR. S. L. PI +\do{03C1}{LGR}{\textrho}{\rho}% % GR. S. L. RHO +\do{03C2}{LGR}{\textvarsigma}{\varsigma}% % GR. S. L. FINAL SIGMA +\do{03C3}{LGR}{\textsigma}{\sigma}% % GR. S. L. SIGMA +\do{03C4}{LGR}{\texttau}{\tau}% % GR. S. L. TAU +\do{03C5}{LGR}{\textupsilon}{\upsilon}% % GR. S. L. UPSILON +\do{03C6}{LGR}{\textphi}{\phi}% % GR. S. L. PHI +\do{03C7}{LGR}{\textchi}{\chi}% % GR. S. L. CHI +\do{03C8}{LGR}{\textpsi}{\psi}% % GR. S. L. PSI +\do{03C9}{LGR}{\textomega}{\omega}% % GR. S. L. OMEGA +\do{0401}{T2A}{\CYRYO}{}% % CY. C. L. IO +\do{0410}{T2A}{\CYRA}{}% % CY. C. L. A +\do{0411}{T2A}{\CYRB}{}% % CY. C. L. BE +\do{0412}{T2A}{\CYRV}{}% % CY. C. L. VE +\do{0413}{T2A}{\CYRG}{}% % CY. C. L. GHE +\do{0414}{T2A}{\CYRD}{}% % CY. C. L. DE +\do{0415}{T2A}{\CYRE}{}% % CY. C. L. IE +\do{0416}{T2A}{\CYRZH}{}% % CY. C. L. ZHE +\do{0417}{T2A}{\CYRZ}{}% % CY. C. L. ZE +\do{0418}{T2A}{\CYRI}{}% % CY. C. L. I +\do{0419}{T2A}{\CYRISHRT}{}% % CY. C. L. SHORT I +\do{041A}{T2A}{\CYRK}{}% % CY. C. L. KA +\do{041B}{T2A}{\CYRL}{}% % CY. C. L. EL +\do{041C}{T2A}{\CYRM}{}% % CY. C. L. EM +\do{041D}{T2A}{\CYRN}{}% % CY. C. L. EN +\do{041E}{T2A}{\CYRO}{}% % CY. C. L. O +\do{041F}{T2A}{\CYRP}{}% % CY. C. L. PE +\do{0420}{T2A}{\CYRR}{}% % CY. C. L. ER +\do{0421}{T2A}{\CYRS}{}% % CY. C. L. ES +\do{0422}{T2A}{\CYRT}{}% % CY. C. L. TE +\do{0423}{T2A}{\CYRU}{}% % CY. C. L. U +\do{0424}{T2A}{\CYRF}{}% % CY. C. L. EF +\do{0425}{T2A}{\CYRH}{}% % CY. C. L. HA +\do{0426}{T2A}{\CYRC}{}% % CY. C. L. TSE +\do{0427}{T2A}{\CYRCH}{}% % CY. C. L. CHE +\do{0428}{T2A}{\CYRSH}{}% % CY. C. L. SHA +\do{0429}{T2A}{\CYRSHCH}{}% % CY. C. L. SHCHA +\do{042A}{T2A}{\CYRHRDSN}{}% % CY. C. L. HARD SIGN +\do{042B}{T2A}{\CYRERY}{}% % CY. C. L. YERU +\do{042C}{T2A}{\CYRSFTSN}{}% % CY. C. L. SOFT SIGN +\do{042D}{T2A}{\CYREREV}{}% % CY. C. L. E +\do{042E}{T2A}{\CYRYU}{}% % CY. C. L. YU +\do{042F}{T2A}{\CYRYA}{}% % CY. C. L. YA +\do{0430}{T2A}{\cyra}{}% % CY. S. L. A +\do{0431}{T2A}{\cyrb}{}% % CY. S. L. BE +\do{0432}{T2A}{\cyrv}{}% % CY. S. L. VE +\do{0433}{T2A}{\cyrg}{}% % CY. S. L. GHE +\do{0434}{T2A}{\cyrd}{}% % CY. S. L. DE +\do{0435}{T2A}{\cyre}{}% % CY. S. L. IE +\do{0436}{T2A}{\cyrzh}{}% % CY. S. L. ZHE +\do{0437}{T2A}{\cyrz}{}% % CY. S. L. ZE +\do{0438}{T2A}{\cyri}{}% % CY. S. L. I +\do{0439}{T2A}{\cyrishrt}{}% % CY. S. L. SHORT I +\do{043A}{T2A}{\cyrk}{}% % CY. S. L. KA +\do{043B}{T2A}{\cyrl}{}% % CY. S. L. EL +\do{043C}{T2A}{\cyrm}{}% % CY. S. L. EM +\do{043D}{T2A}{\cyrn}{}% % CY. S. L. EN +\do{043E}{T2A}{\cyro}{}% % CY. S. L. O +\do{043F}{T2A}{\cyrp}{}% % CY. S. L. PE +\do{0440}{T2A}{\cyrr}{}% % CY. S. L. ER +\do{0441}{T2A}{\cyrs}{}% % CY. S. L. ES +\do{0442}{T2A}{\cyrt}{}% % CY. S. L. TE +\do{0443}{T2A}{\cyru}{}% % CY. S. L. U +\do{0444}{T2A}{\cyrf}{}% % CY. S. L. EF +\do{0445}{T2A}{\cyrh}{}% % CY. S. L. HA +\do{0446}{T2A}{\cyrc}{}% % CY. S. L. TSE +\do{0447}{T2A}{\cyrch}{}% % CY. S. L. CHE +\do{0448}{T2A}{\cyrsh}{}% % CY. S. L. SHA +\do{0449}{T2A}{\cyrshch}{}% % CY. S. L. SHCHA +\do{044A}{T2A}{\cyrhrdsn}{}% % CY. S. L. HARD SIGN +\do{044B}{T2A}{\cyrery}{}% % CY. S. L. YERU +\do{044C}{T2A}{\cyrsftsn}{}% % CY. S. L. SOFT SIGN +\do{044D}{T2A}{\cyrerev}{}% % CY. S. L. E +\do{044E}{T2A}{\cyryu}{}% % CY. S. L. YU +\do{044F}{T2A}{\cyrya}{}% % CY. S. L. YA +\do{0451}{T2A}{\cyryo}{}% % CY. S. L. IO +\do{00A7}{TS1}{\textsection}{\mathsection}% SECTION SYMBOL +\do{00A8}{TS1}{\textasciidieresis}{}% % DIAERESIS +\do{00B0}{TS1}{\textdegree}{\mathdegree}% % DEGREE SIGN +\do{00B1}{TS1}{\textpm}{\pm}% % PLUS-MINUS SIGN +\do{00B4}{TS1}{\textasciiacute}{}% % ACUTE ACCENT +\do{00B6}{TS1}{\textparagraph}{\mathparagraph}% PILCROW SIGN +\do{00D7}{TS1}{\texttimes}{\times}% % MULTIPLICATION SIGN +\do{00F7}{TS1}{\textdiv}{\div}% % DIVISION SIGN +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\providecommand*{\mathdegree}{{}^{\circ}} +% \end{macrocode} +% +% \begin{macro}{\ifbxjx@gcc@cjk} +% 〔スイッチ〕 +% ギリシャ・キリル文字を和文扱いにするか。 +% \begin{macrocode} +\newif\ifbxjx@gcc@cjk +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\greekasCJK} +% ギリシャ・キリル文字を和文扱いにする。 +% \begin{macro}{\nogreekasCJK} +% ギリシャ・キリル文字を欧文扱いにする。 +% \begin{macrocode} +\newcommand*\greekasCJK{% + \bxjx@gcc@cjktrue} +\newcommand*\nogreekasCJK{% + \bxjx@gcc@cjkfalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bx@fake@grk} +% |\bx@fake@grk{|\Meta{出力文字}|}{|\Meta{基準文字}|}|\Means +% \begin{macrocode} +\def\bxjx@do#1\relax{% + \def\bxjx@fake@grk##1##2{% + \expandafter\bxjx@fake@grk@a\meaning##2#1\@nil{##1}{##2}}% + \def\bxjx@fake@grk@a##1#1##2\@nil##3##4{% + \ifx\\##1\\% + \bxjx@cnta##4\divide\bxjx@cnta\@cclvi + \multiply\bxjx@cnta\@cclvi \advance\bxjx@cnta`##3\relax + \mathchar\bxjx@cnta + \else ##3\fi} +}\expandafter\bxjx@do\string\mathchar\relax +% \end{macrocode} +% \end{macro} +% +% \paragraph{pdfLaTeX・upLaTeXの場合} +% \begin{macrocode} +\ifnum0\if p\bxjx@engine1\fi\if u\bxjx@engine1\fi>0 +% \end{macrocode} +% まず |inputenc| を読み込んで入力エンコーディングを |utf8| +% に変更する。 +% \begin{macrocode} +\@ifpackageloaded{inputenc}{}{%else + \RequirePackage[utf8]{inputenc}} +\def\bxjx@tmpa{utf8} +\ifx\bxjx@tmpa\inputencdoingname + \PackageWarningNoLine\bxjx@pkgname + {Input encoding changed to utf8}% + \inputencoding{utf8}% +\fi +% \end{macrocode} +% +% up{\LaTeX}の場合は当該の文字を含むブロックをの和文カテゴリコード +% を変更する。 +% \begin{macrocode} +\if u\bxjx@engine +\kcatcode"0370=15 +\kcatcode"0400=15 +\kcatcode"0500=15 +\fi +% \end{macrocode} +% 各文字について |\DeclareUnicodeCharacter| を実行する。 +% \begin{macrocode} +\def\do#1{% + \@tempcnta="#1\relax + \@tempcntb=\@tempcnta \divide\@tempcntb256 + \expandafter\let\csname bxjx@KCR/\the\@tempcntb\endcsname=t% + \expandafter\bxjx@do@a\csname bxjx@KC/\the\@tempcnta\endcsname{#1}} +\def\bxjx@do@a#1#2#3#4#5{% + \ifx\\#5\\% + \def\bxjx@tmpa{\@inmathwarn#4}% + \else\ifcat A\noexpand#5% + \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}% + {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}% + \else \def\bxjx@tmpa{#5}% + \fi\fi + \def\bxjx@tmpb{\bxjx@do@b{#1}{#2}{#3}{#4}}% + \expandafter\bxjx@tmpb\expandafter{\bxjx@tmpa}} +\if u\bxjx@engine +% {\bxjx@KC/NN}{XXXX}{ENC}{\textCS}{\mathCS} +\def\bxjx@do@b#1#2#3#4#5{% + \kchardef#1=\@tempcnta + \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{#1}{#3}{#4}}% + \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}} +\else\if p\bxjx@engine +\def\bxjx@do@b#1#2#3#4#5{% + \mathchardef#1=\@tempcnta + \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{\UTF{#2}}{#3}{#4}}% + \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}} +\fi\fi +\bxjx@grkcyr@list +\let\bxjx@do@a\undefined +\let\bxjx@do@b\undefined +% \end{macrocode} +% +% \begin{macro}{\bxjx@DeclareUnicodeCharacter} +% |\bxjx@DeclareUnicodeCharacter| を改変して、 +% ギリシャ・キリル文字の場合に再定義を抑止したもの。 +% \begin{macrocode} +\@onlypreamble\bxjx@org@DeclareUnicodeCharacter +\let\bxjx@org@DeclareUnicodeCharacter\DeclareUnicodeCharacter +\@onlypreamble\bxjx@DeclareUnicodeCharacter +\def\bxjx@DeclareUnicodeCharacter#1#2{% + \count@="#1\relax \bxjx@cnta\count@ \divide\bxjx@cnta256 + \expandafter\ifx\csname bxjx@KCR/\the\bxjx@cnta\endcsname\relax + \bxjx@org@DeclareUnicodeCharacter{#1}{#2}% + \else\expandafter\ifx\csname bxjx@KC/\the\count@\endcsname\relax + \bxjx@org@DeclareUnicodeCharacter{#1}{#2}% + \else + \wlog{ \space\space skipped defining Unicode char U+#1}% + \fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjx@ja@or@not} +% |\bxjx@ja@or@not| +% \begin{macrocode} +\def\bxjx@ja@or@not#1#2#3{% +% \end{macrocode} +% |\greekasCJK| の場合は、無条件に和文用コードを実行する。 +% \begin{macrocode} + \ifbxjx@gcc@cjk #1% +% \end{macrocode} +% |\nogreekasCJK| の場合は、エンコーディングを固定して欧文用の +% コードを実行するが、そのエンコーディングが未定義の場合は +% (フォールバックとして)和文用コードを使う。 +% \begin{macrocode} + \else\expandafter\ifx\csname T@#2\endcsname\relax #1% + \else \UseTextSymbol{#2}{#3}% + \fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DeclareFontEncoding@} +% |\DeclareFontEncoding@| にパッチを当てて、 +% |\DeclareFontEncoding| の実行中だけ +% 改変後の |\DeclareUnicodeCharacter| が使われるようにする。 +% \begin{macrocode} +\begingroup +\toks@\expandafter{\DeclareFontEncoding@{#1}{#2}{#3}} +\xdef\next{\def\noexpand\DeclareFontEncoding@##1##2##3{% + \noexpand\bxjx@swap@DUC@cmd + \the\toks@ + \noexpand\bxjx@swap@DUC@cmd}} +\endgroup\next +\def\bxjx@swap@DUC@cmd{% + \let\bxjx@tmpa\DeclareUnicodeCharacter + \let\DeclareUnicodeCharacter\bxjx@DeclareUnicodeCharacter + \let\bxjx@DeclareUnicodeCharacter\bxjx@tmpa} +% \end{macrocode} +% \end{macro} +% +% 以上。 +% +% \paragraph{{\XeLaTeX}・Lua{\LaTeX}の場合} +% \begin{macrocode} +\else\ifnum0\if x\bxjx@engine1\fi\if l\bxjx@engine1\fi>0 +% \end{macrocode} +% +% 各文字について、math activeを設定する。 +% \begin{macrocode} +\def\do#1{% + \bxjx@cnta="#1\relax + \begingroup + \lccode`~=\bxjx@cnta + \lowercase{\endgroup + \bxjx@do@a{~}}{#1}} +\def\bxjx@do@a#1#2#3#4#5{% + \ifx\\#5\\\let\bxjx@tmpa\relax + \else\ifcat A\noexpand#5% + \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}% + {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}% + \else \def\bxjx@tmpa{#5}% + \fi\fi + \ifx\bxjx@tmpa\relax\else + \mathcode\bxjx@cnta"8000 \let#1\bxjx@tmpa + \fi} +% \end{macrocode} +% 「Unicodeな数式」の設定が行われているかを(簡易的に)検査して、 +% そうでない場合にのみ、こちらの設定を有効にする。 +% \begin{macrocode} +\mathchardef\bxjx@tmpa="119 +\ifx\bxjx@tmpa\pi \bxjx@grkcyr@list \fi +\let\bxjx@do@a\undefined +% \end{macrocode} +% +% Lua{\TeX}における |\(no)greekasCJK| の定義。 +% |jacharrange| の設定を変更する。 +% \begin{macrocode} +\if l\bxjx@engine + \protected\def\greekasCJK{% + \bxjx@gcc@cjktrue + \ltjsetparameter{jacharrange={+2, +8}}} + \protected\def\nogreekasCJK{% + \bxjx@gcc@cjkfalse + \ltjsetparameter{jacharrange={-2, -8}}} +\fi +% \end{macrocode} +% +% {\XeTeX}における |\(no)greekasCJK| の定義。 +% \begin{macrocode} +\if x\bxjx@engine + \protected\def\greekasCJK{% + \bxjx@gcc@cjktrue + \def\do##1##2##3##4{\XeTeXcharclass"##1\@ne}% + \bxjx@grkcyr@list} + \protected\def\nogreekasCJK{% + \bxjx@gcc@cjkfalse + \def\do##1##2##3##4{\XeTeXcharclass"##1\z@}% + \bxjx@grkcyr@list} +\fi +% \end{macrocode} +% +% 以上。 +% \begin{macrocode} +\fi\fi +% \end{macrocode} +% +%^^A---------------- +% \subsection{初期設定} +% ギリシャ・キリル文字を欧文扱いにする。 +% \begin{macrocode} +\nogreekasCJK +% \end{macrocode} +% +%^^A---------------- +% \subsection{完了} +% おしまい。 +% \begin{macrocode} +% +% \end{macrocode} +% +% 補助パッケージ実装はここまで。 +% \begin{macrocode} +% % \end{macrocode} % % \Finale diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins b/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins index b7697b1d67e..a60aed3277f 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.ins @@ -2,10 +2,14 @@ \def\batchfile{bxjscls.ins} \input docstrip.tex \keepsilent -\generateFile{bxjsarticle.cls}{f}{\from{bxjscls.dtx}{article}} -\generateFile{bxjsreport.cls}{f}{\from{bxjscls.dtx}{report}} -\generateFile{bxjsja-minimal.def}{f}{\from{bxjscls.dtx}{drvminimal}} -\generateFile{bxjsja-standard.def}{f}{\from{bxjscls.dtx}{drvstandard}} -\generateFile{bxjsbook.cls}{f}{\from{bxjscls.dtx}{book}} -\generateFile{bxjsslide.cls}{f}{\from{bxjscls.dtx}{slide}} +\generateFile{bxjsarticle.cls}{f}{\from{bxjscls.dtx}{cls,article}} +\generateFile{bxjsreport.cls}{f}{\from{bxjscls.dtx}{cls,report}} +\generateFile{bxjsbook.cls}{f}{\from{bxjscls.dtx}{cls,book}} +\generateFile{bxjsslide.cls}{f}{\from{bxjscls.dtx}{cls,slide}} +\generateFile{bxjsja-minimal.def}{f}{\from{bxjscls.dtx}{drv,minimal}} +\generateFile{bxjsja-standard.def}{f}{\from{bxjscls.dtx}{drv,standard}} +\generateFile{bxjsja-modern.def}{f}{\from{bxjscls.dtx}{drv,modern}} +\generateFile{bxjsja-pandoc.def}{f}{\from{bxjscls.dtx}{drv,pandoc}} +\generateFile{bxjscompat.sty}{f}{\from{bxjscls.dtx}{anc,compat}} +\generateFile{bxjscjkcat.sty}{f}{\from{bxjscls.dtx}{anc,cjkcat}} %% EOF diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls index 50b036892fe..c7a506a5696 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjscls.dtx (with options: `article') +%% bxjscls.dtx (with options: `cls,article') %% %% IMPORTANT NOTICE: %% @@ -37,9 +37,14 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsarticle} - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] +%% このファイルは日本語文字を含みます \RequirePackage{calc} \RequirePackage{keyval} +\IfFileExists{bxjscompat.sty}{% + \let\jsAtEndOfClass\@gobble + \RequirePackage{bxjscompat}% +}{} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -66,9 +71,10 @@ \def\bxjs@robust@def{\DeclareRobustCommand*} \fi \newif\ifjsInPdfMode -\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ - \jsInPdfModetrue -\fi\fi +\@nameuse{ImposeOldLuaTeXBehavior} +\RequirePackage{ifpdf} +\@nameuse{RevokeOldLuaTeXBehavior} +\let\ifjsInPdfMode\ifpdf \@gobbletwo\if\if \def\bxjs@cond#1\fi{% #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo @@ -79,6 +85,8 @@ \let\jsSlide=s \let\jsDocClass\jsArticle \def\bxjs@clsname{bxjsarticle} +\def\jsAtEndOfClass{% + \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty \if l\jsEngine @@ -248,6 +256,12 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} +\let\bxjs@composite@proc\relax +\DeclareOption{pandoc}{% + \def\bxjs@composite@proc{% + \setkeys{bxjs}{ja=pandoc}% + \let\bxjs@engine@given=*}% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}} \DeclareOption{autodetect-engine}{% \let\bxjs@engine@given=*} \DeclareOption{latex}{% @@ -342,7 +356,8 @@ \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} \let\bxjs@jadriver\relax \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} -\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}[\relax]{% + \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi} \let\jsJaFont\@empty \define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} \let\jsJaParam\@empty @@ -367,6 +382,7 @@ \fi} \ExecuteOptions{a4paper,oneside,onecolumn,notitlepage,final} \ProcessOptions\relax +\bxjs@composite@proc \@onlypreamble\bxjs@purge@brace@elts \def\bxjs@purge@brace@elts{% \def\bxjs@tmpa{\@gobble}% @@ -401,6 +417,11 @@ \fi\fi \ifx *\bxjs@engine@given \let\bxjs@engine@given\bxjs@tmpb + \ifx j\bxjs@engine@given + \g@addto@macro\@classoptionslist{,platex} + \else\ifx u\bxjs@engine@given + \g@addto@macro\@classoptionslist{,uplatex} + \fi\fi \fi \ifx\bxjs@engine@given\@undefined\else \ifx\bxjs@engine@given\bxjs@tmpb\else @@ -769,7 +790,9 @@ \fi \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\AtBeginDocument{\ImposeOldLuaTeXBehavior} \bxjs@nxt \bxjs@revert +\AtBeginDocument{\RevokeOldLuaTeXBehavior} \bxjs@postproc@layout \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} @@ -860,6 +883,7 @@ \let\sectionmark\@gobble \let\subsectionmark\@gobble } +\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}} \def\plainifnotempty{% \ifx \@oddhead \@empty \ifx \@oddfoot \@empty @@ -884,6 +908,10 @@ {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title + \ifx\bxjs@subtitle\@undefined\else + \par\vskip\z@ + {\small \bxjs@subtitle\par} + \fi \smallskip {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill @@ -893,6 +921,10 @@ \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip5\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 3em% {\large \lineskip .75em @@ -958,6 +990,10 @@ \begin{center}% \let\footnote\thanks {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip3\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 1.5em {\large \lineskip .5em @@ -1158,6 +1194,7 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls index 47ce8753aba..197e99e6fee 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjscls.dtx (with options: `book') +%% bxjscls.dtx (with options: `cls,book') %% %% IMPORTANT NOTICE: %% @@ -37,9 +37,14 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsbook} - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] +%% このファイルは日本語文字を含みます \RequirePackage{calc} \RequirePackage{keyval} +\IfFileExists{bxjscompat.sty}{% + \let\jsAtEndOfClass\@gobble + \RequirePackage{bxjscompat}% +}{} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -66,9 +71,10 @@ \def\bxjs@robust@def{\DeclareRobustCommand*} \fi \newif\ifjsInPdfMode -\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ - \jsInPdfModetrue -\fi\fi +\@nameuse{ImposeOldLuaTeXBehavior} +\RequirePackage{ifpdf} +\@nameuse{RevokeOldLuaTeXBehavior} +\let\ifjsInPdfMode\ifpdf \@gobbletwo\if\if \def\bxjs@cond#1\fi{% #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo @@ -79,6 +85,8 @@ \let\jsSlide=s \let\jsDocClass\jsBook \def\bxjs@clsname{bxjsbook} +\def\jsAtEndOfClass{% + \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty \if l\jsEngine @@ -252,6 +260,12 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} +\let\bxjs@composite@proc\relax +\DeclareOption{pandoc}{% + \def\bxjs@composite@proc{% + \setkeys{bxjs}{ja=pandoc}% + \let\bxjs@engine@given=*}% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}} \DeclareOption{autodetect-engine}{% \let\bxjs@engine@given=*} \DeclareOption{latex}{% @@ -346,7 +360,8 @@ \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} \let\bxjs@jadriver\relax \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} -\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}[\relax]{% + \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi} \let\jsJaFont\@empty \define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} \let\jsJaParam\@empty @@ -371,6 +386,7 @@ \fi} \ExecuteOptions{a4paper,twoside,onecolumn,titlepage,openright,final} \ProcessOptions\relax +\bxjs@composite@proc \@onlypreamble\bxjs@purge@brace@elts \def\bxjs@purge@brace@elts{% \def\bxjs@tmpa{\@gobble}% @@ -405,6 +421,11 @@ \fi\fi \ifx *\bxjs@engine@given \let\bxjs@engine@given\bxjs@tmpb + \ifx j\bxjs@engine@given + \g@addto@macro\@classoptionslist{,platex} + \else\ifx u\bxjs@engine@given + \g@addto@macro\@classoptionslist{,uplatex} + \fi\fi \fi \ifx\bxjs@engine@given\@undefined\else \ifx\bxjs@engine@given\bxjs@tmpb\else @@ -777,7 +798,9 @@ \fi \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\AtBeginDocument{\ImposeOldLuaTeXBehavior} \bxjs@nxt \bxjs@revert +\AtBeginDocument{\RevokeOldLuaTeXBehavior} \bxjs@postproc@layout \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} @@ -863,6 +886,7 @@ \let\chaptermark\@gobble \let\sectionmark\@gobble } +\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}} \def\plainifnotempty{% \ifx \@oddhead \@empty \ifx \@oddfoot \@empty @@ -887,6 +911,10 @@ {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title + \ifx\bxjs@subtitle\@undefined\else + \par\vskip\z@ + {\small \bxjs@subtitle\par} + \fi \smallskip {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill @@ -896,6 +924,10 @@ \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip5\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 3em% {\large \lineskip .75em @@ -961,6 +993,10 @@ \begin{center}% \let\footnote\thanks {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip3\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 1.5em {\large \lineskip .5em @@ -1251,6 +1287,7 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty new file mode 100644 index 00000000000..bbbbdfc70f3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty @@ -0,0 +1,347 @@ +%% +%% This is file `bxjscjkcat.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `anc,cjkcat') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjscjkcat.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesPackage{bxjscjkcat} + [2016/02/20 v1.1a BXJS document classes] +\def\bxjx@pkgname{bxjscjkcat} +\newcount\bxjx@cnta +\let\bxjx@engine=n +\def\bxjx@do#1#2{% + \edef\bxjx@tmpa{\string#1}% + \edef\bxjx@tmpb{\meaning#1}% + \ifx\bxjx@tmpa\bxjx@tmpb #2\fi} +\bxjx@do\kanjiskip{\let\bxjx@engine=j} +\bxjx@do\enablecjktoken{\let\bxjx@engine=u} +\bxjx@do\XeTeXversion{\let\bxjx@engine=x} +\bxjx@do\pdftexversion{\let\bxjx@engine=p} +\bxjx@do\luatexversion{\let\bxjx@engine=l} +\def\bxjx@do#1#2{% + \if#1\bxjx@engine + \@ifpackageloaded{#2}{}{%else + \PackageError\bxjx@pkgname + {Package '#2' must be loaded}% + {Package loading is aborted.\MessageBreak\@ehc}% + \endinput} + \fi} +\bxjx@do{p}{bxcjkjatype} +\bxjx@do{x}{xeCJK} +\bxjx@do{l}{luatexja} +\ifx\TextOrMath\@undefined + \RequirePackage{fixltx2e} +\fi +\if u\bxjx@engine +\@for\bxjx@x:={% +0080,0100,0180,0250,02B0,0300,0500,0530,0590,0600,% +0700,0750,0780,07C0,0800,0840,08A0,0900,0980,0A00,% +0A80,0B00,0B80,0C00,0C80,0D00,0D80,0E00,0E80,0F00,% +1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,% +1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,% +1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1CC0,1CD0,1D00,% +1D80,1DC0,1E00,2440,27C0,27F0,2800,2A00,2C00,2C60,% +2C80,2D00,2D30,2D80,2DE0,2E00,4DC0,A4D0,A500,A640,% +A6A0,A700,A720,A800,A830,A840,A880,A8E0,A900,A930,% +A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,% +D800,DB80,DC00,E000,FB00,FB50,FE00,FE70,% +10000,10080,10100,10140,10190,101D0,10280,102A0,% +102E0,10300,10330,10350,10380,103A0,10400,10450,% +10480,10500,10530,10600,10800,10840,10860,10880,% +108E0,10900,10920,10980,109A0,10A00,10A60,10A80,% +10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,% +11000,11080,110D0,11100,11150,11180,111E0,11200,% +11280,112B0,11300,11480,11580,11600,11680,11700,% +118A0,11AC0,12000,12400,12480,13000,14400,16800,% +16A40,16AD0,16B00,16F00,1BC00,1BCA0,1D000,1D100,% +1D200,1D300,1D360,1D400,1D800,1E800,1EE00,1F000,% +1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,% +1F700,1F780,1F800,1F900,E0000,F0000,100000% +}\do{\kcatcode"\bxjx@x=15 } +\fi +\def\bxjx@grkcyr@list{% +\do{0391}{LGR}{\textAlpha}{A}% % GR. C. L. ALPHA +\do{0392}{LGR}{\textBeta}{B}% % GR. C. L. BETA +\do{0393}{LGR}{\textGamma}{\Gamma}% % GR. C. L. GAMMA +\do{0394}{LGR}{\textDelta}{\Delta}% % GR. C. L. DELTA +\do{0395}{LGR}{\textEpsilon}{E}% % GR. C. L. EPSILON +\do{0396}{LGR}{\textZeta}{Z}% % GR. C. L. ZETA +\do{0397}{LGR}{\textEta}{H}% % GR. C. L. ETA +\do{0398}{LGR}{\textTheta}{\Theta}% % GR. C. L. THETA +\do{0399}{LGR}{\textIota}{I}% % GR. C. L. IOTA +\do{039A}{LGR}{\textKappa}{K}% % GR. C. L. KAPPA +\do{039B}{LGR}{\textLambda}{\Lambda}% % GR. C. L. LAMDA +\do{039C}{LGR}{\textMu}{M}% % GR. C. L. MU +\do{039D}{LGR}{\textNu}{N}% % GR. C. L. NU +\do{039E}{LGR}{\textXi}{\Xi}% % GR. C. L. XI +\do{039F}{LGR}{\textOmicron}{O}% % GR. C. L. OMICRON +\do{03A0}{LGR}{\textPi}{\Pi}% % GR. C. L. PI +\do{03A1}{LGR}{\textRho}{P}% % GR. C. L. RHO +\do{03A3}{LGR}{\textSigma}{\Sigma}% % GR. C. L. SIGMA +\do{03A4}{LGR}{\textTau}{T}% % GR. C. L. TAU +\do{03A5}{LGR}{\textUpsilon}{\Upsilon}% % GR. C. L. UPSILON +\do{03A6}{LGR}{\textPhi}{\Phi}% % GR. C. L. PHI +\do{03A7}{LGR}{\textChi}{X}% % GR. C. L. CHI +\do{03A8}{LGR}{\textPsi}{\Psi}% % GR. C. L. PSI +\do{03A9}{LGR}{\textOmega}{\Omega}% % GR. C. L. OMEGA +\do{03B1}{LGR}{\textalpha}{\alpha}% % GR. S. L. ALPHA +\do{03B2}{LGR}{\textbeta}{\beta}% % GR. S. L. BETA +\do{03B3}{LGR}{\textgamma}{\gamma}% % GR. S. L. GAMMA +\do{03B4}{LGR}{\textdelta}{\delta}% % GR. S. L. DELTA +\do{03B5}{LGR}{\textepsilon}{\epsilon}% % GR. S. L. EPSILON +\do{03B6}{LGR}{\textzeta}{\zeta}% % GR. S. L. ZETA +\do{03B7}{LGR}{\texteta}{\eta}% % GR. S. L. ETA +\do{03B8}{LGR}{\texttheta}{\theta}% % GR. S. L. THETA +\do{03B9}{LGR}{\textiota}{\iota}% % GR. S. L. IOTA +\do{03BA}{LGR}{\textkappa}{\kappa}% % GR. S. L. KAPPA +\do{03BB}{LGR}{\textlambda}{\lambda}% % GR. S. L. LAMDA +\do{03BC}{LGR}{\textmu}{\mu}% % GR. S. L. MU +\do{03BD}{LGR}{\textnu}{\nu}% % GR. S. L. NU +\do{03BE}{LGR}{\textxi}{\xi}% % GR. S. L. XI +\do{03BF}{LGR}{\textomicron}{o}% % GR. S. L. OMICRON +\do{03C0}{LGR}{\textpi}{\pi}% % GR. S. L. PI +\do{03C1}{LGR}{\textrho}{\rho}% % GR. S. L. RHO +\do{03C2}{LGR}{\textvarsigma}{\varsigma}% % GR. S. L. FINAL SIGMA +\do{03C3}{LGR}{\textsigma}{\sigma}% % GR. S. L. SIGMA +\do{03C4}{LGR}{\texttau}{\tau}% % GR. S. L. TAU +\do{03C5}{LGR}{\textupsilon}{\upsilon}% % GR. S. L. UPSILON +\do{03C6}{LGR}{\textphi}{\phi}% % GR. S. L. PHI +\do{03C7}{LGR}{\textchi}{\chi}% % GR. S. L. CHI +\do{03C8}{LGR}{\textpsi}{\psi}% % GR. S. L. PSI +\do{03C9}{LGR}{\textomega}{\omega}% % GR. S. L. OMEGA +\do{0401}{T2A}{\CYRYO}{}% % CY. C. L. IO +\do{0410}{T2A}{\CYRA}{}% % CY. C. L. A +\do{0411}{T2A}{\CYRB}{}% % CY. C. L. BE +\do{0412}{T2A}{\CYRV}{}% % CY. C. L. VE +\do{0413}{T2A}{\CYRG}{}% % CY. C. L. GHE +\do{0414}{T2A}{\CYRD}{}% % CY. C. L. DE +\do{0415}{T2A}{\CYRE}{}% % CY. C. L. IE +\do{0416}{T2A}{\CYRZH}{}% % CY. C. L. ZHE +\do{0417}{T2A}{\CYRZ}{}% % CY. C. L. ZE +\do{0418}{T2A}{\CYRI}{}% % CY. C. L. I +\do{0419}{T2A}{\CYRISHRT}{}% % CY. C. L. SHORT I +\do{041A}{T2A}{\CYRK}{}% % CY. C. L. KA +\do{041B}{T2A}{\CYRL}{}% % CY. C. L. EL +\do{041C}{T2A}{\CYRM}{}% % CY. C. L. EM +\do{041D}{T2A}{\CYRN}{}% % CY. C. L. EN +\do{041E}{T2A}{\CYRO}{}% % CY. C. L. O +\do{041F}{T2A}{\CYRP}{}% % CY. C. L. PE +\do{0420}{T2A}{\CYRR}{}% % CY. C. L. ER +\do{0421}{T2A}{\CYRS}{}% % CY. C. L. ES +\do{0422}{T2A}{\CYRT}{}% % CY. C. L. TE +\do{0423}{T2A}{\CYRU}{}% % CY. C. L. U +\do{0424}{T2A}{\CYRF}{}% % CY. C. L. EF +\do{0425}{T2A}{\CYRH}{}% % CY. C. L. HA +\do{0426}{T2A}{\CYRC}{}% % CY. C. L. TSE +\do{0427}{T2A}{\CYRCH}{}% % CY. C. L. CHE +\do{0428}{T2A}{\CYRSH}{}% % CY. C. L. SHA +\do{0429}{T2A}{\CYRSHCH}{}% % CY. C. L. SHCHA +\do{042A}{T2A}{\CYRHRDSN}{}% % CY. C. L. HARD SIGN +\do{042B}{T2A}{\CYRERY}{}% % CY. C. L. YERU +\do{042C}{T2A}{\CYRSFTSN}{}% % CY. C. L. SOFT SIGN +\do{042D}{T2A}{\CYREREV}{}% % CY. C. L. E +\do{042E}{T2A}{\CYRYU}{}% % CY. C. L. YU +\do{042F}{T2A}{\CYRYA}{}% % CY. C. L. YA +\do{0430}{T2A}{\cyra}{}% % CY. S. L. A +\do{0431}{T2A}{\cyrb}{}% % CY. S. L. BE +\do{0432}{T2A}{\cyrv}{}% % CY. S. L. VE +\do{0433}{T2A}{\cyrg}{}% % CY. S. L. GHE +\do{0434}{T2A}{\cyrd}{}% % CY. S. L. DE +\do{0435}{T2A}{\cyre}{}% % CY. S. L. IE +\do{0436}{T2A}{\cyrzh}{}% % CY. S. L. ZHE +\do{0437}{T2A}{\cyrz}{}% % CY. S. L. ZE +\do{0438}{T2A}{\cyri}{}% % CY. S. L. I +\do{0439}{T2A}{\cyrishrt}{}% % CY. S. L. SHORT I +\do{043A}{T2A}{\cyrk}{}% % CY. S. L. KA +\do{043B}{T2A}{\cyrl}{}% % CY. S. L. EL +\do{043C}{T2A}{\cyrm}{}% % CY. S. L. EM +\do{043D}{T2A}{\cyrn}{}% % CY. S. L. EN +\do{043E}{T2A}{\cyro}{}% % CY. S. L. O +\do{043F}{T2A}{\cyrp}{}% % CY. S. L. PE +\do{0440}{T2A}{\cyrr}{}% % CY. S. L. ER +\do{0441}{T2A}{\cyrs}{}% % CY. S. L. ES +\do{0442}{T2A}{\cyrt}{}% % CY. S. L. TE +\do{0443}{T2A}{\cyru}{}% % CY. S. L. U +\do{0444}{T2A}{\cyrf}{}% % CY. S. L. EF +\do{0445}{T2A}{\cyrh}{}% % CY. S. L. HA +\do{0446}{T2A}{\cyrc}{}% % CY. S. L. TSE +\do{0447}{T2A}{\cyrch}{}% % CY. S. L. CHE +\do{0448}{T2A}{\cyrsh}{}% % CY. S. L. SHA +\do{0449}{T2A}{\cyrshch}{}% % CY. S. L. SHCHA +\do{044A}{T2A}{\cyrhrdsn}{}% % CY. S. L. HARD SIGN +\do{044B}{T2A}{\cyrery}{}% % CY. S. L. YERU +\do{044C}{T2A}{\cyrsftsn}{}% % CY. S. L. SOFT SIGN +\do{044D}{T2A}{\cyrerev}{}% % CY. S. L. E +\do{044E}{T2A}{\cyryu}{}% % CY. S. L. YU +\do{044F}{T2A}{\cyrya}{}% % CY. S. L. YA +\do{0451}{T2A}{\cyryo}{}% % CY. S. L. IO +\do{00A7}{TS1}{\textsection}{\mathsection}% SECTION SYMBOL +\do{00A8}{TS1}{\textasciidieresis}{}% % DIAERESIS +\do{00B0}{TS1}{\textdegree}{\mathdegree}% % DEGREE SIGN +\do{00B1}{TS1}{\textpm}{\pm}% % PLUS-MINUS SIGN +\do{00B4}{TS1}{\textasciiacute}{}% % ACUTE ACCENT +\do{00B6}{TS1}{\textparagraph}{\mathparagraph}% PILCROW SIGN +\do{00D7}{TS1}{\texttimes}{\times}% % MULTIPLICATION SIGN +\do{00F7}{TS1}{\textdiv}{\div}% % DIVISION SIGN +} +\providecommand*{\mathdegree}{{}^{\circ}} +\newif\ifbxjx@gcc@cjk +\newcommand*\greekasCJK{% + \bxjx@gcc@cjktrue} +\newcommand*\nogreekasCJK{% + \bxjx@gcc@cjkfalse} +\def\bxjx@do#1\relax{% + \def\bxjx@fake@grk##1##2{% + \expandafter\bxjx@fake@grk@a\meaning##2#1\@nil{##1}{##2}}% + \def\bxjx@fake@grk@a##1#1##2\@nil##3##4{% + \ifx\\##1\\% + \bxjx@cnta##4\divide\bxjx@cnta\@cclvi + \multiply\bxjx@cnta\@cclvi \advance\bxjx@cnta`##3\relax + \mathchar\bxjx@cnta + \else ##3\fi} +}\expandafter\bxjx@do\string\mathchar\relax +\ifnum0\if p\bxjx@engine1\fi\if u\bxjx@engine1\fi>0 +\@ifpackageloaded{inputenc}{}{%else + \RequirePackage[utf8]{inputenc}} +\def\bxjx@tmpa{utf8} +\ifx\bxjx@tmpa\inputencdoingname + \PackageWarningNoLine\bxjx@pkgname + {Input encoding changed to utf8}% + \inputencoding{utf8}% +\fi +\if u\bxjx@engine +\kcatcode"0370=15 +\kcatcode"0400=15 +\kcatcode"0500=15 +\fi +\def\do#1{% + \@tempcnta="#1\relax + \@tempcntb=\@tempcnta \divide\@tempcntb256 + \expandafter\let\csname bxjx@KCR/\the\@tempcntb\endcsname=t% + \expandafter\bxjx@do@a\csname bxjx@KC/\the\@tempcnta\endcsname{#1}} +\def\bxjx@do@a#1#2#3#4#5{% + \ifx\\#5\\% + \def\bxjx@tmpa{\@inmathwarn#4}% + \else\ifcat A\noexpand#5% + \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}% + {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}% + \else \def\bxjx@tmpa{#5}% + \fi\fi + \def\bxjx@tmpb{\bxjx@do@b{#1}{#2}{#3}{#4}}% + \expandafter\bxjx@tmpb\expandafter{\bxjx@tmpa}} +\if u\bxjx@engine +\def\bxjx@do@b#1#2#3#4#5{% + \kchardef#1=\@tempcnta + \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{#1}{#3}{#4}}% + \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}} +\else\if p\bxjx@engine +\def\bxjx@do@b#1#2#3#4#5{% + \mathchardef#1=\@tempcnta + \DeclareTextCommandDefault{#4}{\bxjx@ja@or@not{\UTF{#2}}{#3}{#4}}% + \DeclareUnicodeCharacter{#2}{\TextOrMath{#4}{#5}}} +\fi\fi +\bxjx@grkcyr@list +\let\bxjx@do@a\undefined +\let\bxjx@do@b\undefined +\@onlypreamble\bxjx@org@DeclareUnicodeCharacter +\let\bxjx@org@DeclareUnicodeCharacter\DeclareUnicodeCharacter +\@onlypreamble\bxjx@DeclareUnicodeCharacter +\def\bxjx@DeclareUnicodeCharacter#1#2{% + \count@="#1\relax \bxjx@cnta\count@ \divide\bxjx@cnta256 + \expandafter\ifx\csname bxjx@KCR/\the\bxjx@cnta\endcsname\relax + \bxjx@org@DeclareUnicodeCharacter{#1}{#2}% + \else\expandafter\ifx\csname bxjx@KC/\the\count@\endcsname\relax + \bxjx@org@DeclareUnicodeCharacter{#1}{#2}% + \else + \wlog{ \space\space skipped defining Unicode char U+#1}% + \fi\fi} +\def\bxjx@ja@or@not#1#2#3{% + \ifbxjx@gcc@cjk #1% + \else\expandafter\ifx\csname T@#2\endcsname\relax #1% + \else \UseTextSymbol{#2}{#3}% + \fi\fi} +\begingroup +\toks@\expandafter{\DeclareFontEncoding@{#1}{#2}{#3}} +\xdef\next{\def\noexpand\DeclareFontEncoding@##1##2##3{% + \noexpand\bxjx@swap@DUC@cmd + \the\toks@ + \noexpand\bxjx@swap@DUC@cmd}} +\endgroup\next +\def\bxjx@swap@DUC@cmd{% + \let\bxjx@tmpa\DeclareUnicodeCharacter + \let\DeclareUnicodeCharacter\bxjx@DeclareUnicodeCharacter + \let\bxjx@DeclareUnicodeCharacter\bxjx@tmpa} +\else\ifnum0\if x\bxjx@engine1\fi\if l\bxjx@engine1\fi>0 +\def\do#1{% + \bxjx@cnta="#1\relax + \begingroup + \lccode`~=\bxjx@cnta + \lowercase{\endgroup + \bxjx@do@a{~}}{#1}} +\def\bxjx@do@a#1#2#3#4#5{% + \ifx\\#5\\\let\bxjx@tmpa\relax + \else\ifcat A\noexpand#5% + \edef\bxjx@tmpa{\noexpand\bxjx@fake@grk{#5}% + {\ifnum\uccode`#5=`#5\noexpand\Pi\else\noexpand\pi\fi}}% + \else \def\bxjx@tmpa{#5}% + \fi\fi + \ifx\bxjx@tmpa\relax\else + \mathcode\bxjx@cnta"8000 \let#1\bxjx@tmpa + \fi} +\mathchardef\bxjx@tmpa="119 +\ifx\bxjx@tmpa\pi \bxjx@grkcyr@list \fi +\let\bxjx@do@a\undefined +\if l\bxjx@engine + \protected\def\greekasCJK{% + \bxjx@gcc@cjktrue + \ltjsetparameter{jacharrange={+2, +8}}} + \protected\def\nogreekasCJK{% + \bxjx@gcc@cjkfalse + \ltjsetparameter{jacharrange={-2, -8}}} +\fi +\if x\bxjx@engine + \protected\def\greekasCJK{% + \bxjx@gcc@cjktrue + \def\do##1##2##3##4{\XeTeXcharclass"##1\@ne}% + \bxjx@grkcyr@list} + \protected\def\nogreekasCJK{% + \bxjx@gcc@cjkfalse + \def\do##1##2##3##4{\XeTeXcharclass"##1\z@}% + \bxjx@grkcyr@list} +\fi +\fi\fi +\nogreekasCJK +\endinput +%% +%% End of file `bxjscjkcat.sty'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty new file mode 100644 index 00000000000..6673a7f9961 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty @@ -0,0 +1,140 @@ +%% +%% This is file `bxjscompat.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `anc,compat') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjscompat.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesPackage{bxjscompat} + [2016/02/20 v1.1a BXJS document classes] +\def\bxac@pkgname{bxjscompat} +\let\bxac@engine=n +\def\bxac@do#1#2{% + \edef\bxac@tmpa{\string#1}% + \edef\bxac@tmpb{\meaning#1}% + \ifx\bxac@tmpa\bxac@tmpb #2\fi} +\bxac@do\XeTeXversion{\let\bxac@engine=x} +\bxac@do\luatexversion{\let\bxac@engine=l} +\ifx\jsAtEndOfClass\@undefined + \let\bxac@delayed@if@bxjs\@firstofone +\else \let\bxac@delayed@if@bxjs\jsAtEndOfClass +\fi +\newif\ifbxac@in@old@behavior +\let\ImposeOldLuaTeXBehavior\relax +\let\RevokeOldLuaTeXBehavior\relax +\ifx x\bxac@engine +\@onlypreamble\bxac@adjust@charclass +\bxac@delayed@if@bxjs{% + \@ifpackageloaded{xeCJK}{}{%else + \ifx\xe@alloc@intercharclass\@undefined\else + \ifnum\xe@alloc@intercharclass=\z@ + \PackageInfo\bxac@pkgname + {Setting up interchar class for CJK...\@gobble}% + \InputIfFileExists{load-unicode-xetex-classes.tex}{% + \xe@alloc@intercharclass=3 + }{%else + \PackageWarning\bxac@pkgname + {Cannot find file 'load-unicode-xetex-classes.tex'% + \@gobble}% + }% + \fi\fi + \ifnum\XeTeXcharclass"3041=\z@ + \PackageInfo\bxac@pkgname + {Adjusting interchar class for CJK...\@gobble}% + \@for\bxac@x:={% + 3041,3043,3045,3047,3049,3063,3083,3085,3087,308E,% + 3095,3096,30A1,30A3,30A5,30A7,30A9,30C3,30E3,30E5,% + 30E7,30EE,30F5,30F6,30FC,31F0,31F1,31F2,31F3,31F4,% + 31F5,31F6,31F7,31F8,31F9,31FA,31FB,31FC,31FD,31FE,% + 31FF% + }\do{\XeTeXcharclass"\bxac@x=\@ne}% + \fi + }% +} +\fi +\ifx l\bxac@engine +\unless\ifnum\luatexversion<80 \ifnum\luatexversion<85 + \chardef\pdftexversion=200 + \def\pdftexrevision{0} + \let\pdftexbanner\luatexbanner +\fi\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname outputmode\endcsname\relax\else +\def\bxac@ob@list{% + \do{\let}\pdfoutput{\outputmode}% + \do{\let}\pdfpagewidth{\pagewidth}% + \do{\let}\pdfpageheight{\pageheight}% + \do{\protected\edef}\pdfhorigin{{\pdfvariable horigin}}% + \do{\protected\edef}\pdfvorigin{{\pdfvariable vorigin}}} +\def\bxac@ob@do#1#2{\begingroup + \expandafter\bxac@ob@do@a\csname bxac@\string#2\endcsname{#1}#2} +\def\bxac@ob@do@a#1#2#3#4{\endgroup + \ifbxac@in@old@behavior \let#1#3\relax #2#3#4\relax + \else \let#3#1\relax \let#1\@undefined + \fi} +\protected\def\ImposeOldLuaTeXBehavior{% + \unless\ifbxac@in@old@behavior + \bxac@in@old@behaviortrue + \let\do\bxac@ob@do \bxac@ob@list + \fi} +\protected\def\RevokeOldLuaTeXBehavior{% + \ifbxac@in@old@behavior + \bxac@in@old@behaviorfalse + \let\do\bxac@ob@do \bxac@ob@list + \fi} +\fi + \ifnum\luatexversion>64 \directlua{ + local function range(cs, ce, cc, ff) + if ff or not tex.getcatcode(cs) == cc then + local setcc = tex.setcatcode + for c = cs, ce do setcc(c, cc) end + end + end + range(0x3400, 0x4DB5, 11, false) + range(0x4DB5, 0x4DBF, 11, true) + range(0x4E00, 0x9FCC, 11, false) + range(0x9FCD, 0x9FFF, 11, true) + range(0xAC00, 0xD7A3, 11, false) + range(0x20000, 0x2A6D6, 11, false) + range(0x2A6D7, 0x2A6FF, 11, true) + range(0x2A700, 0x2B734, 11, false) + range(0x2B735, 0x2B73F, 11, true) + range(0x2B740, 0x2B81D, 11, false) + range(0x2B81E, 0x2B81F, 11, true) + range(0x2B820, 0x2CEA1, 11, false) + range(0x2CEA2, 0x2FFFD, 11, true) + }\fi +\fi +\endinput +%% +%% End of file `bxjscompat.sty'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def index 19b07e0a31c..78964424a6e 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjscls.dtx (with options: `drvminimal') +%% bxjscls.dtx (with options: `drv,minimal') %% %% IMPORTANT NOTICE: %% @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-minimal.def} - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] %% このファイルは日本語文字を含みます \def\DeclareJaTextFontCommand#1#2{% \DeclareRobustCommand#1[1]{% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def new file mode 100644 index 00000000000..1121a109c64 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def @@ -0,0 +1,62 @@ +%% +%% This is file `bxjsja-modern.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `drv,modern') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjsja-modern.def. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesFile{bxjsja-modern.def} + [2016/02/20 v1.1a BXJS document classes] +\input{bxjsja-standard.def} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@ +\def\encodingdefault{T1}% +\input{t1enc.def}% +\fontencoding\encodingdefault\selectfont +\fi +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@ +\renewcommand{\rmdefault}{lmr} +\renewcommand{\sfdefault}{lmss} +\renewcommand{\ttdefault}{lmtt} +\fi +\DeclareFontShape{OMX}{cmex}{m}{n}{% + <-7.5>cmex7<7.5-8.5>cmex8% + <8.5-9.5>cmex9<9.5->cmex10}{}% +\expandafter\let\csname OMX/cmex/m/n/10\endcsname\relax +\def\cmex@opt{10} +\ifx\@IncludeInRelease\@undefined +\RequirePackage{fixltx2e} +\fi +\RequirePackage{bxjscjkcat} +\endinput +%% +%% End of file `bxjsja-modern.def'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def new file mode 100644 index 00000000000..6177aa0b539 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def @@ -0,0 +1,115 @@ +%% +%% This is file `bxjsja-pandoc.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bxjscls.dtx (with options: `drv,pandoc') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from bxjsja-pandoc.def. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file bxjscls.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesFile{bxjsja-pandoc.def} + [2016/02/20 v1.1a BXJS document classes] +\input{bxjsja-standard.def} +\@onlypreamble\bxjs@set@dupload@proc +\def\bxjs@set@dupload@proc#1{% + \expandafter\bxjs@set@dupload@proc@a\csname bxjs@dlp/#1\endcsname} +\@onlypreamble\bxjs@set@dupload@proc@a +\def\bxjs@set@dupload@proc@a#1{% + \@onlypreamble#1\def#1##1} +\@onlypreamble\bxjs@org@if@ptions +\let\bxjs@org@if@ptions\@if@ptions +\newif\ifbxjs@dlp +\def\@if@ptions#1#2#3{% + \bxjs@dlpfalse + \def\bxjs@tmpa{#1}\def\bxjs@tmpb{\@currext}% + \ifx\bxjs@tmpa\bxjs@tmpb + \expandafter\ifx\csname bxjs@dlp/#2.#1\endcsname\relax\else + \bxjs@dlptrue \fi + \fi + \ifbxjs@dlp \expandafter\bxjs@do@dupload@proc + \else \expandafter\bxjs@org@if@ptions + \fi {#1}{#2}{#3}} +\AtBeginDocument{% + \let\@if@ptions\bxjs@org@if@ptions} +\@onlypreamble\bxjs@do@dupload@proc +\def\bxjs@do@dupload@proc#1#2#3{% + \csname bxjs@dlp/#2.#1\endcsname{#3}% + \@firstoftwo} +\def\bxjs@mark@as@loaded#1{% + \expandafter\bxjs@mal@a\csname ver@#1\endcsname{#1}} +\def\bxjs@mal@a#1#2{% + \ifx#1\relax + \def#1{2001/01/01}% + \ClassInfo\bxjs@clsname + {File '#2' marked as loaded\@gobble}% + \fi} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>0 +\bxjs@mark@as@loaded{polyglossia.sty} +\bxjs@set@dupload@proc{polyglossia.sty}{% + \ClassWarning\bxjs@clsname + {Loading of polyglossia is blocked}} +\ifx\setmainlanguage\@undefined +\newcommand*\setmainlanguage[2][]{} +\newcommand*\setotherlanguage[2][]{% + \ifcat_#2_\else + \expandafter\let\csname #2\endcsname\@empty + \expandafter\let\csname end#2\endcsname\@empty + \expandafter\let\csname text#2\endcsname\@firstofone + \fi} +\newcommand*\setotherlanguages[2][]{% + \@for\bxjs@tmpa:={#2}\do{% + \setotherlangauge{\bxjs@tmpa}}} +\fi +\else +\bxjs@mark@as@loaded{babel.sty} +\bxjs@set@dupload@proc{babel.sty}{% + \ClassWarning\bxjs@clsname + {Loading of babel is blocked}} +\let\foreignlanguage\@secondoftwo +\let\otherlanguage\@gobble +\let\endotherlanguage\@empty +\fi +\bxjs@set@dupload@proc{geometry.sty}{% + \setpagelayout*{#1}} +\if l\jsEngine + \bxjs@mark@as@loaded{xeCJK.sty} + \providecommand*{\setCJKmainfont}{\setmainjfont} +\fi +\ifx\@IncludeInRelease\@undefined\else + \bxjs@mark@as@loaded{fixltx2e.sty} +\fi +\if j\jsEngine + \bxjs@mark@as@loaded{cmap.sty} +\fi +\PassOptionsToPackage{verbose=silent}{microtype} +\endinput +%% +%% End of file `bxjsja-pandoc.def'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def index b54778b84ac..e9694decee5 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjscls.dtx (with options: `drvstandard') +%% bxjscls.dtx (with options: `drv,standard') %% %% IMPORTANT NOTICE: %% @@ -36,7 +36,8 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-standard.def} - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] +%% このファイルは日本語文字を含みます \input{bxjsja-minimal.def} \ifjsWitheTeX \@tempdima=0.25mm @@ -153,16 +154,17 @@ \ifx$#1$\def\bxjs@tmpa{#2}% \else \let\bxjs@tmpa\relax \fi} -\def\jsJaChar#1{% +\newcommand*\jachar[1]{% \begingroup \jsLetHeadChar\bxjs@tmpa{#1}% \ifx\bxjs@tmpa\relax \ClassWarningNoLine\bxjs@clsname - {Illegal argument given to \string\jsJaChar}% + {Illegal argument given to \string\jachar}% \else \expandafter\bxjs@jachar\expandafter{\bxjs@tmpa}% \fi \endgroup} +\let\jsJaChar\jachar \let\bxjs@jachar\@firstofone \PassOptionsToPackage{setpagesize=false}{hyperref} \@onlypreamble\bxjs@fix@hyperref@unicode diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls index 6234844f826..857671ab85f 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjscls.dtx (with options: `report') +%% bxjscls.dtx (with options: `cls,report') %% %% IMPORTANT NOTICE: %% @@ -37,9 +37,14 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsreport} - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] +%% このファイルは日本語文字を含みます \RequirePackage{calc} \RequirePackage{keyval} +\IfFileExists{bxjscompat.sty}{% + \let\jsAtEndOfClass\@gobble + \RequirePackage{bxjscompat}% +}{} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -66,9 +71,10 @@ \def\bxjs@robust@def{\DeclareRobustCommand*} \fi \newif\ifjsInPdfMode -\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ - \jsInPdfModetrue -\fi\fi +\@nameuse{ImposeOldLuaTeXBehavior} +\RequirePackage{ifpdf} +\@nameuse{RevokeOldLuaTeXBehavior} +\let\ifjsInPdfMode\ifpdf \@gobbletwo\if\if \def\bxjs@cond#1\fi{% #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo @@ -79,6 +85,8 @@ \let\jsSlide=s \let\jsDocClass\jsReport \def\bxjs@clsname{bxjsreport} +\def\jsAtEndOfClass{% + \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty \if l\jsEngine @@ -252,6 +260,12 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} +\let\bxjs@composite@proc\relax +\DeclareOption{pandoc}{% + \def\bxjs@composite@proc{% + \setkeys{bxjs}{ja=pandoc}% + \let\bxjs@engine@given=*}% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}} \DeclareOption{autodetect-engine}{% \let\bxjs@engine@given=*} \DeclareOption{latex}{% @@ -346,7 +360,8 @@ \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} \let\bxjs@jadriver\relax \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} -\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}[\relax]{% + \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi} \let\jsJaFont\@empty \define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} \let\jsJaParam\@empty @@ -371,6 +386,7 @@ \fi} \ExecuteOptions{a4paper,oneside,onecolumn,titlepage,openany,final} \ProcessOptions\relax +\bxjs@composite@proc \@onlypreamble\bxjs@purge@brace@elts \def\bxjs@purge@brace@elts{% \def\bxjs@tmpa{\@gobble}% @@ -405,6 +421,11 @@ \fi\fi \ifx *\bxjs@engine@given \let\bxjs@engine@given\bxjs@tmpb + \ifx j\bxjs@engine@given + \g@addto@macro\@classoptionslist{,platex} + \else\ifx u\bxjs@engine@given + \g@addto@macro\@classoptionslist{,uplatex} + \fi\fi \fi \ifx\bxjs@engine@given\@undefined\else \ifx\bxjs@engine@given\bxjs@tmpb\else @@ -773,7 +794,9 @@ \fi \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\AtBeginDocument{\ImposeOldLuaTeXBehavior} \bxjs@nxt \bxjs@revert +\AtBeginDocument{\RevokeOldLuaTeXBehavior} \bxjs@postproc@layout \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} @@ -859,6 +882,7 @@ \let\chaptermark\@gobble \let\sectionmark\@gobble } +\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}} \def\plainifnotempty{% \ifx \@oddhead \@empty \ifx \@oddfoot \@empty @@ -883,6 +907,10 @@ {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title + \ifx\bxjs@subtitle\@undefined\else + \par\vskip\z@ + {\small \bxjs@subtitle\par} + \fi \smallskip {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill @@ -892,6 +920,10 @@ \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip5\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 3em% {\large \lineskip .75em @@ -957,6 +989,10 @@ \begin{center}% \let\footnote\thanks {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip3\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 1.5em {\large \lineskip .5em @@ -1247,6 +1283,7 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls index 837f91222f8..696b489399c 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% bxjscls.dtx (with options: `slide') +%% bxjscls.dtx (with options: `cls,slide') %% %% IMPORTANT NOTICE: %% @@ -37,9 +37,14 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsslide} - [2015/11/21 v1.0d BXJS document classes] + [2016/02/20 v1.1a BXJS document classes] +%% このファイルは日本語文字を含みます \RequirePackage{calc} \RequirePackage{keyval} +\IfFileExists{bxjscompat.sty}{% + \let\jsAtEndOfClass\@gobble + \RequirePackage{bxjscompat}% +}{} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -66,9 +71,10 @@ \def\bxjs@robust@def{\DeclareRobustCommand*} \fi \newif\ifjsInPdfMode -\ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>\z@ - \jsInPdfModetrue -\fi\fi +\@nameuse{ImposeOldLuaTeXBehavior} +\RequirePackage{ifpdf} +\@nameuse{RevokeOldLuaTeXBehavior} +\let\ifjsInPdfMode\ifpdf \@gobbletwo\if\if \def\bxjs@cond#1\fi{% #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo @@ -79,6 +85,8 @@ \let\jsSlide=s \let\jsDocClass\jsSlide \def\bxjs@clsname{bxjsslide} +\def\jsAtEndOfClass{% + \expandafter\g@addto@macro\csname\bxjs@clsname.cls-h@@k\endcsname} \@onlypreamble\bxjs@restore@jltrcc \let\bxjs@restore@jltrcc\@empty \if l\jsEngine @@ -248,6 +256,12 @@ \else \@tempdimb=\@tempcntb\@ne \fi}% \xdef\bxjs@gtmpa{\the\@tempdimb}% \egroup #1=\bxjs@gtmpa\relax} +\let\bxjs@composite@proc\relax +\DeclareOption{pandoc}{% + \def\bxjs@composite@proc{% + \setkeys{bxjs}{ja=pandoc}% + \let\bxjs@engine@given=*}% + \def\bxjs@driver@opt{dvipdfmx-if-dvi}} \DeclareOption{autodetect-engine}{% \let\bxjs@engine@given=*} \DeclareOption{latex}{% @@ -342,7 +356,8 @@ \define@key{bxjs}{paper}{\edef\bxjs@param@paper{#1}} \let\bxjs@jadriver\relax \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} -\define@key{bxjs}{ja}{\edef\bxjs@jadriver{#1}} +\define@key{bxjs}{ja}[\relax]{% + \ifx\relax#1\else\edef\bxjs@jadriver{#1}\fi} \let\jsJaFont\@empty \define@key{bxjs}{jafont}{\edef\jsJaFont{#1}} \let\jsJaParam\@empty @@ -367,6 +382,7 @@ \fi} \ExecuteOptions{36pt,a4paper,landscape,oneside,onecolumn,titlepage,final} \ProcessOptions\relax +\bxjs@composite@proc \@onlypreamble\bxjs@purge@brace@elts \def\bxjs@purge@brace@elts{% \def\bxjs@tmpa{\@gobble}% @@ -401,6 +417,11 @@ \fi\fi \ifx *\bxjs@engine@given \let\bxjs@engine@given\bxjs@tmpb + \ifx j\bxjs@engine@given + \g@addto@macro\@classoptionslist{,platex} + \else\ifx u\bxjs@engine@given + \g@addto@macro\@classoptionslist{,uplatex} + \fi\fi \fi \ifx\bxjs@engine@given\@undefined\else \ifx\bxjs@engine@given\bxjs@tmpb\else @@ -767,7 +788,9 @@ \fi \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} +\AtBeginDocument{\ImposeOldLuaTeXBehavior} \bxjs@nxt \bxjs@revert +\AtBeginDocument{\RevokeOldLuaTeXBehavior} \bxjs@postproc@layout \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} @@ -858,6 +881,7 @@ \let\sectionmark\@gobble \let\subsectionmark\@gobble } +\newcommand*{\subtitle}[1]{\gdef\bxjs@subtitle{#1}} \def\plainifnotempty{% \ifx \@oddhead \@empty \ifx \@oddfoot \@empty @@ -882,6 +906,10 @@ {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \smallskip \@title + \ifx\bxjs@subtitle\@undefined\else + \par\vskip\z@ + {\small \bxjs@subtitle\par} + \fi \smallskip {\maybeblue\hrule height0\p@? depth2\p@?\relax}\par \vfill @@ -891,6 +919,10 @@ \vskip 60\p@? \begin{center}% {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip5\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 3em% {\large \lineskip .75em @@ -956,6 +988,10 @@ \begin{center}% \let\footnote\thanks {\LARGE \@title \par}% + \ifx\bxjs@subtitle\@undefined\else + \vskip3\p@? + {\normalsize \bxjs@subtitle\par} + \fi \vskip 1.5em {\large \lineskip .5em @@ -1156,6 +1192,7 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% {\z@}{-1\jsZw}% 改行せず 1\jsZw のアキ -- cgit v1.2.3