From 3ebff037dbea5e7f832f1b69e71662f206b791e3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 17 Aug 2016 21:34:51 +0000 Subject: bxjscls (17aug16) git-svn-id: svn://tug.org/texlive/trunk@41878 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/bxjscls/README-ja.md | 4 + Master/texmf-dist/doc/latex/bxjscls/README.md | 1 + .../doc/latex/bxjscls/bxjscls-manual.pdf | Bin 776468 -> 774552 bytes .../doc/latex/bxjscls/bxjscls-manual.tex | 114 ++++- Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf | Bin 984923 -> 998501 bytes Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx | 533 +++++++++++++++++---- .../texmf-dist/tex/latex/bxjscls/bxjsarticle.cls | 117 ++++- Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls | 130 ++++- Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty | 2 +- Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty | 2 +- .../tex/latex/bxjscls/bxjsja-minimal.def | 43 +- .../texmf-dist/tex/latex/bxjscls/bxjsja-modern.def | 2 +- .../texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def | 2 +- .../tex/latex/bxjscls/bxjsja-standard.def | 18 +- Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls | 117 ++++- Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls | 117 ++++- 16 files changed, 1020 insertions(+), 182 deletions(-) diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md index cfc3f8b71d8..29f91d4371d 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md @@ -97,6 +97,10 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使 更新履歴 -------- + * Version 1.2a 〈2016/08/17〉 + - fancyhdr パッケージに対する調整を入れた。 + - `fancyhdr`、`textwidth-limit`、`paragraph-mark` オプションを新設。 + - `\ascpt` 命令を新設した。 * Version 1.2 〈2016/08/01〉 - `geometry` オプションを新設した。 - `dvi` オプションを新設した。 diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md index d91611de169..4687edf249c 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README.md @@ -87,6 +87,7 @@ This package is distributed under the BSD 2-Clause License. Revision History ---------------- + * Version 1.2a 〈2016/08/17〉 * Version 1.2 〈2016/08/01〉 * Version 1.1f 〈2016/07/16〉 * Version 1.1e 〈2016/05/28〉 diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf index cfd41c75018..ab1671fa8a2 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 6b3d1ba694f..029b159ce07 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex @@ -12,15 +12,13 @@ \renewcommand*{\XeLaTeX}{XeLaTeX}} \usepackage{shortvrb} \MakeShortVerb{\|} -\newcommand{\PkgVersion}{1.2} -\newcommand{\PkgDate}{2016/08/01} +\newcommand{\PkgVersion}{1.2a} +\newcommand{\PkgDate}{2016/08/16} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} \newcommand{\Means}{:\ } \newcommand{\jemph}{\textsf} -\newcommand{\Ord}[1]{#1$^\circ$} -\newcommand{\Prn}[1]{\<(#1)\<} \providecommand{\pTeX}{p\TeX} \providecommand{\pLaTeX}{p\LaTeX} \providecommand{\upTeX}{u\pTeX} @@ -40,9 +38,6 @@ %=========================================================== \section*{注意} -% 1.2で文言削除予定 -このマニュアルは\textgt{暫定版}であり、内容に不完全な点がある。 - BXJS文書クラスについては、“{\TeX} Wiki”中の記事、 \footnote{\url{https://texwiki.texjp.org/?BXjscls}}% およびそこからたどれるサイトにある情報も併せて参照してほしい。 @@ -727,6 +722,28 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション \item |nooldfontcommands|(既定)\Means “二文字フォント命令”の使用に対して警告を出す。 詳細については\ref{sec:Old-font-commands}節を参照されたい。 +\item |fancyhdr=|\Meta{真偽値}% +\footnote{真偽値は |true|(真)または |false|(偽)で指定する。}\Means + \Pkg{fancyhdr}パッケージの機能に対する補正を行うか。 + 真の場合、以下の補正が行われる。既定値は真。 + \begin{itemize} + \item ヘッダ・フッタ書式の既定値に含まれる“二文字フォント命令” + を除去する。 + \item \Pkg{bxjsbook}クラスでヘッダ・フッタの横幅を(|\textwidth| + ではなく)|\fullwidth| に一致させる。 + \end{itemize} +\item |textwidth-limit=|\Meta{整数}\Means + \Pkg{bxjsbook}クラスにおける、|\textwidth| の上限の長さ + (全角単位)。% + \footnote{つまり、\Pkg{bxjsbook}クラスにおいては、\Pkg{geometry}で + 指定する“width”の値は |\fullwidth| の値と見なされ、それが + このオプションで指定する上限値を超えている場合は、|\textwidth| + は上限値になる。 + この場合の本文領域の配置の様式は\Pkg{jsbook}クラスと同様である。} % + 既定値は40。 +\item |paragraph-mark=|\Meta{文字1つ}\Means + パラグラフ(|\paragraph|)の見出し先頭に付く記号。 + 既定値は“■”。 \end{itemize} %------------------- @@ -977,35 +994,44 @@ BXJSクラスではページレイアウトの設定に\Pkg{geometry}パッケ 用いて次の手順で行っている。 \begin{enumerate} -\item[\Ord{1}] +\item (基底フォントサイズにより決定されたmag値を実際に設定する。) -\item[\Ord{2}] +\item \Pkg{geometry}で次のパラメタを設定する。 + \label{itm:pl-param} \begin{enumerate} - \item[\Prn{a}] + \item クラスオプションで指定された用紙サイズ、および|truedimen|。 - \item[\Prn{ii}] + \label{itm:pl-parama} + \item \Pkg{bxjsarticle}/\Pkg{bxjsreport}の場合は次のパラメタ値。 \begin{quote}\small\begin{verbatim} headheight=10pt, footskip=0.03367\paperheight, headsep=\footskip-\topskip, includeheadfoot, hscale=0.76, hmarginratio=1:1, vscale=0.83, vmarginratio=1:1 \end{verbatim}\end{quote} - \item[\Prn{iii}] - \Pkg{bxjsbook}の場合は次のパラメタ値。 + \item + \Pkg{bxjsbook}の場合は次のパラメタ値。% + \footnote{この設定の中の“|hmargin=36mm,| |hmarginratio=1:1|”の + 部分は実は不適切で、\Pkg{jsbook}のレイアウトと同様にするには + “|hmargin=18mm|”としなければならない。 + これは近い将来の版(多分1.3版)で修正される予定である。 + 現在の版においても、クラスオプションに |layout=v2| を指定する + ことで“修正後”の設定を適用できる。} \begin{quote}\small\begin{verbatim} headheight=10pt, headsep=6mm, nofoot, includeheadfoot, hmargin=36mm, hmarginratio=1:1, vscale=0.83, vmarginratio=1:1 \end{verbatim}\end{quote} - \item[\Prn{iv}] + \item \Pkg{bxjsslide}の場合は次のパラメタ値。 \begin{quote}\small\begin{verbatim} noheadfoot, hscale=0.9, hmarginratio=1:1, vscale=0.944, vmarginratio=1:1 \end{verbatim}\end{quote} \end{enumerate} -\item[\Ord{3}] +\item 後処理を行う。 + \label{itm:pl-post}% 以下の処理が含まれる。 \begin{itemize} \item |textwidth| を全角幅の整数倍に、|textheight| を整数行分の @@ -1020,15 +1046,16 @@ vscale=0.944, vmarginratio=1:1 現在のページレイアウトの設定の一部を修正する。 \Meta{設定}は\Pkg{geometry}のパラメタの記述であり、 現在の設定に追記して\Pkg{geometry}が再設定を行った後、 - 再び\Ord{3}の後処理が行われる。 + 再び\ref{itm:pl-post}の後処理が行われる。 \item |\setpagelayout*{|\Meta{設定}|}|\Means 用紙以外の設定をリセットして改めてページレイアウトの設定を行う。 - 具体的には、\Ord{2}の\Prn{i}と\Meta{設定}の内容を用いて - \Pkg{geometry}が再設定を行った後、再び\Ord{3}の後処理が行われる。 + 具体的には、\ref{itm:pl-parama}と\Meta{設定}の + 内容を用いて\Pkg{geometry}が再設定を行った後、 + 再び\ref{itm:pl-post}の後処理が行われる。 \end{itemize} なお、|\geometry| 命令を直接呼び出すことも可能である。 -当然この場合は\Ord{3}の後処理は行われない。 +当然この場合は\ref{itm:pl-post}の後処理は行われない。 %------------------- \subsection{構造マークアップ関連} @@ -1087,6 +1114,10 @@ standard和文ドライバでは和文に関連する \footnote{命令名は“anti-scaled Q”の略。}% 例えば、|\fontsize{10\ascQ}{16\trueH}| で和文のサイズが10\,Qになる。 +\item |\ascpt|\Means + 1\,true\,ptを和文スケール値で割った長さ。 + 例えば、|\fontsize{9\ascpt}{13truept}| + で和文のサイズが9ポイントになる。 \item |\setxkanjiskip{|\Meta{長さ}|}|\Means 和欧文間空白の量を指定する。 {\pLaTeX}での |\setlength{\xkanjiskip}{|\Meta{長さ}|}| に相当する。 @@ -1230,8 +1261,49 @@ Class bxjsarticle Warning: Some old font commands were used in text 端末に表示されることは一切無い。 \end{itemize} - - %=========================================================== \end{document} + +%=========================================================== +\appendix +\section{パッケージレベル公開命令の一覧} + +\begin{itemize} +% \jsAtEndOfClass はBXJSの補助パッケージ専用 +\item |\jsBaseFontSize| +\item |\jsDocClass| + \begin{itemize} + \item |\jsArticle| + \item |\jsBook| + \item |\jsReport| + \item |\jsSlide| + \end{itemize} +\item |\ifjsDraft| +\item |\jsEngine| +\item |\jsFontSizeChanged| +\item |\jsGeometryOptions| +\item |\jsInhibitGlue| +\item |\jsInhibitGlueAtParTop| +\item |\jsInJaParen| +\item |\ifjsInPdfMode| +\item |\jsJaChar| +\item |\jsJaFont| +\item |\jsJaParam| +\item |\jsKanjiSkip| +\item |\jsLetHeadChar| +\item |\jsParagraphMark| +\item |\jsResetDimen| +\item |\jsScale| +\item |\ifjsSeireki| +\item |\jsSimpleJaSetup| +\item |\jsSubtitle| +\item |\jsTextWidthLimit| +\item |\jsUnusualPtSize| +% \jsUseMinimalPageLayout はテスト用 +\item |\ifjsWitheTeX| +\item |\ifjsWithupTeX| +\item |\jsXKanjiSkip| +% \jsZw はユーザレベル命令 +\end{itemize} + %% EOF diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf index 451d8ef91c5..05ca30602ea 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 198071a1419..fd6a97f7b82 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -70,7 +70,8 @@ %<*driver> \ProvidesFile{bxjscls.dtx} % - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] +% [2016/08/01 v1.2 BXJS document classes] % based on jsclasses [2016/07/18] % [2016/07/16 v1.1f BXJS document classes] % based on jsclasses [2016/07/15] @@ -99,6 +100,7 @@ \newcommand{\TODO}{\par\noindent {\usefont{OT1}{cmss}{sbc}{n}\color{red}TODO:}\ } \newcommand{\Means}{~:\quad} +\newcommand{\OR}{$\;|\;$} \newcommand{\ZRX}{☃} \newenvironment{ZRnote} {\StartZRnote}{\EndZRnote} @@ -229,7 +231,7 @@ % \begin{ZRnote} % \begin{macrocode} %<*cls> -%% このファイルは日本語文字を含みます +%% このファイルは日本語文字を含みます. % \end{macrocode} % 長さ値の指定で式を利用可能にするため |calc| を読み込む。 % \begin{macrocode} @@ -249,15 +251,40 @@ }{} % \end{macrocode} % +% \begin{macro}{\jsDocClass} +% 〔トークン〕 +% 文書クラスの種別。 +% 以下の定値トークンの何れかと同等: +% |\jsArticle|=bxjsarticle、 +% |\jsBook|=bxjsbook、 +% |\jsReport|=bxjsreport、 +% |\jsSlide|=bxjsslide。 +% \begin{macrocode} +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +%
\let\jsDocClass\jsArticle +%
\def\bxjs@clsname{bxjsarticle} +%\let\jsDocClass\jsBook +%\def\bxjs@clsname{bxjsbook} +%\let\jsDocClass\jsReport +%\def\bxjs@clsname{bxjsreport} +%\let\jsDocClass\jsSlide +%\def\bxjs@clsname{bxjsslide} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\jsEngine} % 〔暗黙文字トークン〕 % エンジン({\TeX}の種類)の種別: -% |n|=オリジナル\TeX、 -% |j|={\pTeX}またはu{\pTeX}、 -% |J|=NTT j{\TeX}、 +% |j|={\pTeX}系、 % |x|={\XeTeX}、 % |p|=pdf{\TeX}(含DVIモード)、 -% |l|=Lua{\TeX}。 +% |l|=Lua{\TeX}、 +% |J|=NTT j{\TeX}、 +% |O|=Omega系、 +% |n|=以上の何れでもない。 % % \begin{macrocode} \let\jsEngine=n @@ -267,6 +294,7 @@ \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} \bxjs@test@engine\kanjiskip{\let\jsEngine=j} \bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\Omegaversion{\let\jsEngine=O} \bxjs@test@engine\XeTeXversion{\let\jsEngine=x} \bxjs@test@engine\pdftexversion{\let\jsEngine=p} \bxjs@test@engine\luatexversion{\let\jsEngine=l} @@ -285,6 +313,15 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\ifjsWithpTeXng} +% 〔スイッチ〕 +% エンジンが{\pTeX-ng}であるか。 +% \begin{macrocode} +\newif\ifjsWithpTeXng +\bxjs@test@engine\ngbanner{\jsWithpTeXngtrue} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\ifjsWitheTeX} % 〔スイッチ〕 % エンジンが{\eTeX}拡張をもつか。 @@ -294,6 +331,21 @@ % \end{macrocode} % \end{macro} % +% 非サポートのエンジンの場合は強制終了させる。 +% \Note NTT j{\TeX}とOmega系。 +% \begin{macrocode} +\let\bxjs@tmpa\relax +\ifx J\jsEngine \def\bxjs@tmpa{NTT-jTeX}\fi +\ifx O\jsEngine \def\bxjs@tmpa{Omega}\fi +\ifx\bxjs@tmpa\relax \expandafter\@gobble +\else + \ClassError\@currname + {The engine in use (\bxjs@tmpa) is not supported} + {It's a fatal error. I'll quit right now.} + \expandafter\@firstofone +\fi{\endinput\@@end} +% \end{macrocode} +% % \begin{macro}{\bxjs@protected} % {\eTeX}拡張が有効な場合にのみ |\protected| % の効果をもつ。 @@ -332,7 +384,7 @@ % \end{macro} % % \begin{macro}{\bxjs@cond} -% |\bxjs@cond\ifXXX|……|\fi|\Meta{真}\Meta{偽}\par +% |\bxjs@cond\ifXXX|……|\fi{|\Meta{真}|}{|\Meta{偽}|}|\par % {\TeX}のif-文(|\ifXXX|……\Meta{真}|\else|\Meta{偽}|\fi|)を % 末尾呼出形式に変換するためのマクロ。 % \begin{macrocode} @@ -343,30 +395,6 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\jsDocClass} -% 〔トークン〕 -% 文書クラスの種別。 -% 以下の定値トークンの何れかと同等: -% |\jsArticle|=bxjsarticle、 -% |\jsBook|=bxjsbook、 -% |\jsReport|=bxjsreport、 -% |\jsSlide|=bxjsslide。 -% \begin{macrocode} -\let\jsArticle=a -\let\jsBook=b -\let\jsReport=r -\let\jsSlide=s -%
\let\jsDocClass\jsArticle -%
\def\bxjs@clsname{bxjsarticle} -%\let\jsDocClass\jsBook -%\def\bxjs@clsname{bxjsbook} -%\let\jsDocClass\jsReport -%\def\bxjs@clsname{bxjsreport} -%\let\jsDocClass\jsSlide -%\def\bxjs@clsname{bxjsslide} -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\jsAtEndOfClass} % このクラスの読込終了時に対するフック。 % (補助パッケージ中で用いられる。) @@ -540,9 +568,19 @@ % % \begin{macrocode} \newif\if@slide +% \end{macrocode} +% +% \begin{ZRnote} +% BXJSではスライド用のクラス |bxjsslide| を用意しているので、 +% 本来はこのスイッチは不要なはずである。 +% しかし、JSクラスの一部のコードをそのまま使うために保持している。 +% \Note この |\if@slide| という制御綴は、ユニークでないにも関わらず、 +% 衝突した場合に正常動作が保たれない、という問題を抱えている。 +% \begin{macrocode} %\@slidefalse %\@slidetrue % \end{macrocode} +% \end{ZRnote} % % \paragraph{サイズオプション} % @@ -619,7 +657,7 @@ % \end{macrocode} % \end{macro} % -% |\\ifjsc@mag| は「|\mag| を使うか」を表すスイッチ。 +% |\ifjsc@mag| は「|\mag| を使うか」を表すスイッチ。 % \begin{macrocode} \newif\ifjsc@mag %\let\jsc@magscale\@undefined @@ -803,12 +841,13 @@ % \texttt{draft} でoverfull boxの起きた行末に5ptの罫線を引きます。 % % \begin{ZRnote} +% \begin{macro}{\ifjsDraft} % JSクラスは |\ifdraft| という公開名のスイッチを用いているが、 % これは |ifdraft| パッケージと衝突するので、代わりに |\ifjsDraft| % の名前を用い、本文開始時に |\ifdraft| が未定義の場合に限り、 % |\ifjsDraft| を |\ifdraft| にコピーする処理にする。 -% \Note |\ifdraft| は2.0版で廃止予定。 -% \end{ZRnote} +% \Note JSクラスの |\ifdraft| は2016/07/13版で廃止された。 +% よって |\ifdraft| は2.0版で廃止を予定する。 % \begin{macrocode} \let\ifjsDraft\iffalse \@onlypreamble\bxjs@draft @@ -822,6 +861,8 @@ \csname ifjsDraft\endcsname \fi} % \end{macrocode} +% \end{macro} +% \end{ZRnote} % % \paragraph{和文フォントメトリックの選択} % \mbox{} @@ -834,14 +875,17 @@ % \begin{ZRnote} % |geometry| パッケージが行う。 % +% \begin{macro}{\ifbxjs@papersize} +% 〔スイッチ〕 papersizeスペシャルを出力するか。 % 既定で有効であるが、|nopapersize| オプションで無効にできる。 +% \Note JSクラスでは |\ifpapersize| という制御綴だが、これは採用しない。 % \begin{macrocode} \newif\ifbxjs@papersize \bxjs@papersizetrue \DeclareOption{nopapersize}{\bxjs@papersizefalse} \DeclareOption{papersize}{\bxjs@papersizetrue} % \end{macrocode} -% +% \end{macro} % \end{ZRnote} % % \paragraph{英語化} @@ -898,8 +942,16 @@ % \item |japaram=|\meta{name} : 和文フォントパラメタの指定。 % \item |magstyle=|\meta{name} : “版面拡大”の実現方法の選択。 % \item |dvi=|\meta{name} : DVIモードの時のみに参照されるドライバ指定。 -% \item |geometry=|\meta{name} : |geometry| パッケージの読込を自動的に +% \item |geometry=|\{|class|\OR|user|\} : |geometry| パッケージの読込を自動的に % 行うかユーザに任せるか。 +% \item |fancyhdr=|\meta{bool} : |fancyhdr| パッケージ用の調整を行うか。 +% \item |layout=|\meta{name} : レイアウト変種の指定。 +% \item |textwidth-limit=|\meta{number} : |bxjsbook| における、 +% |\textwidth| の上限の全角単位での値。 +% \item |paragraph-mark=|\meta{char} : パラグラフのマーク。 +% \item |whole-zw-lines| : (予定) +% \item |dummy-microtype| : (予定) +% \item |hyperref-enc| : (予定) % \end{itemize} % % \begin{macro}{\bxjs@invscale} @@ -1020,6 +1072,13 @@ \DeclareOption{lualatex}{% \def\bxjs@engine@opt{lualatex}% \let\bxjs@engine@given=l} +\DeclareOption{platex-ng}{% + \def\bxjs@engine@opt{platex-ng}% + \let\bxjs@engine@given=g} +\DeclareOption{platex-ng*}{% + \def\bxjs@engine@opt{platex-ng*}% + \let\bxjs@platexng@nodrv=t% + \let\bxjs@engine@given=g} % \end{macrocode} % % \begin{macro}{\bxjs@driver@given} @@ -1214,6 +1273,25 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\bxjs@set@keyval} +% |\bxjs@set@keyval{|\meta{key}|}{|\meta{value}|}{|\meta{error}|}|\par +% |\bxjs@kv@|\meta{key}|@|\meta{value} が定義済ならそれを実行し、 +% 未定義ならエラーを出す。 +% \begin{macrocode} +\def\bxjs@set@keyval#1#2#3{% + \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname + \ifx\bxjs@next\relax + \bxjs@error@keyval{#1}{#2}% + #3% + \else \bxjs@next + \fi} +\@onlypreamble\bxjs@error@keyval +\def\bxjs@error@keyval#1#2{% + \ClassError\bxjs@clsname + {Invalid value '#2' for option #1}\@ehc} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\ifbxjs@scaleset} % 和文スケール値が指定されたか。 % \begin{macrocode} @@ -1222,10 +1300,10 @@ % \end{macro} % % \begin{macro}{\jsScale} -% 和文スケール値。 +% 〔実数値マクロ〕 +% 和文スケール値。 % \begin{macrocode} \def\jsScale{0.924715} -\def\Cjascale{\jsScale} % \end{macrocode} % \end{macro} % @@ -1264,6 +1342,7 @@ % \end{macrocode} % % |CJK| オプションは廃止された。 +% \Note 1.3版で宣言そのものを削除する。 % \begin{macrocode} \DeclareOption{CJK}{% \ClassWarning\bxjs@clsname @@ -1295,7 +1374,9 @@ % \end{macrocode} % \end{macro} % -% |ja| オプション(|jadriver| オプション)の処理。 +% |ja| オプションの処理。 +% \Note |jadriver| は0.9版で用いられた旧称。 +% \Note 単なる |ja| という指定は無視される(Pandoc 対策)。 % \begin{macrocode} \define@key{bxjs}{jadriver}{\edef\bxjs@jadriver{#1}} \define@key{bxjs}{ja}[\relax]{% @@ -1347,6 +1428,9 @@ \ifx l\jsEngine \ifnum\luatexversion>86 \let\bxjs@magstyle@default\bxjs@magstyle@xreal \fi\fi +\ifjsWithpTeXng + \let\bxjs@magstyle@default\bxjs@magstyle@xreal +\fi \let\bxjs@magstyle\bxjs@magstyle@default % \end{macrocode} % \end{macro} @@ -1384,6 +1468,22 @@ \fi} % \end{macrocode} % +% \begin{macro}{\ifbxjs@fancyhdr} +% 〔スイッチ〕 +% |fancyhdr| パッケージに対する調整を行うか。 +% \begin{macrocode} +\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue +% \end{macrocode} +% \end{macro} +% +% |fancyhdr| オプションの処理。 +% \begin{macrocode} +\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse +\define@key{bxjs}{fancyhdr}{% + \bxjs@set@keyval{fancyhdr}{#1}{}} +% \end{macrocode} +% % \begin{macro}{\ifbxjs@dvi@opt} % |dvi| オプションが指定されたか。 % \begin{macrocode} @@ -1417,6 +1517,75 @@ \fi} % \end{macrocode} % +% \begin{macro}{\ifbxjs@layout@buggyhmargin} +% 〔スイッチ〕 +% |bxjsbook| の左右マージンがアレか。 +% \Note 既定はアレだが1.3版で非アレになる予定。 +% \begin{macrocode} +\newif\ifbxjs@layout@buggyhmargin \bxjs@layout@buggyhmargintrue +% \end{macrocode} +% \end{macro} +% +% |layout| オプションの処理。 +% \begin{macrocode} +\@namedef{bxjs@kv@layout@v1}{% + \bxjs@layout@buggyhmargintrue} +\@namedef{bxjs@kv@layout@v2}{% + \bxjs@layout@buggyhmarginfalse} +\define@key{bxjs}{layout}{% + \bxjs@set@keyval{layout}{#1}{}} +% \end{macrocode} +% +% \begin{macro}{\bxjs@textwidth@limit} +% |textwidth-limit| の指定値。 +% |\textwidth| の上限。 +% \begin{macrocode} +%\let\bxjs@textwidth@limit\@undefined +\define@key{bxjs}{textwidth-limit}{% + \edef\bxjs@textwidth@limit{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@paragraph@mark} +% |paragraph-mark| の指定値。 +% パラグラフのマーク。 +% \begin{macrocode} +%\let\bxjs@paragraph@mark\@undefined +\define@key{bxjs}{paragraph-mark}{% + \edef\bxjs@paragraph@mark{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifbxjs@whole@zw@lines} +% 〔スイッチ〕 |whole-zw-lines| の指定値。 +% \begin{macrocode} +\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse +\define@key{bxjs}{whole-zw-lines}{\bxjs@set@keyval{wholezwlines}{#1}{}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifbxjs@dummy@microtype} +% 〔スイッチ〕 |dummy-microtype| の指定値。 +% \begin{macrocode} +\newif\ifbxjs@dummy@microtype \bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@true\bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@false\bxjs@dummy@microtypefalse +\define@key{bxjs}{dummy-microtype}{\bxjs@set@keyval{dummymicrotype}{#1}{}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifbxjs@hyperref@enc} +% 〔スイッチ〕 |hyperref-enc| の指定値。 +% \begin{macrocode} +\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse +\define@key{bxjs}{hyperref-enc}{\bxjs@set@keyval{hyperrefenc}{#1}{}} +% \end{macrocode} +% \end{macro} +% % \end{ZRnote} % % \paragraph{オプションの実行} @@ -1479,7 +1648,7 @@ \bxjs@purge@brace@elts % \end{macrocode} % -% |papersize| と |10pt| のオプションは他のパッケージと衝突を +% |papersize|、|10pt|、|noscale| の各オプションは他のパッケージと衝突を % 起こす可能性があるため、グローバルオプションから外す。 % % \begin{macrocode} @@ -1487,6 +1656,8 @@ {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement {10pt}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {noscale}\@classoptionslist\@classoptionslist % \end{macrocode} % % 現在の(正規化前の)和文ドライバの値を\ @@ -1501,6 +1672,9 @@ % それが実際のエンジンと一致するかを検査する。 % \begin{macrocode} \let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithpTeXng + \let\bxjs@tmpb=g +\fi\fi \ifx j\bxjs@tmpb\ifjsWithupTeX \let\bxjs@tmpb=u \fi\fi @@ -1514,7 +1688,7 @@ \ifx *\bxjs@engine@given \let\bxjs@engine@given\bxjs@tmpb % \end{macrocode} -% エンジン指定が |autodetec-engine| であり、かつ実際のエンジンが +% エンジン指定が |autodetect-engine| であり、かつ実際のエンジンが % {(u)\pLaTeX}だった場合は、本来のエンジンオプションを % グローバルオプションに加える。 % \begin{macrocode} @@ -1532,6 +1706,14 @@ \fi % \end{macrocode} % +% エンジンが{\pTeX-ng}の場合、グローバルオプションに |uplatex| を +% 追加する。 +% \begin{macrocode} +\ifjsWithpTeXng + \g@addto@macro\@classoptionslist{,uplatex} +\fi +% \end{macrocode} +% % ドライバ指定のオプションが与えられた場合は、 % それがエンジンと整合するかを検査する。 % \begin{macrocode} @@ -1551,6 +1733,9 @@ \else\ifx\bxjs@driver@given\bxjs@driver@@xetex \@tempswafalse \fi\fi + \ifjsWithpTeXng\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx\else + \@tempswafalse + \fi\fi \fi\fi \fi \if@tempswa\else @@ -1563,8 +1748,9 @@ % \begin{macrocode} \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse +\else\ifjsWithpTeXng \@tempswafalse \else \@tempswatrue -\fi\fi +\fi\fi\fi \if@tempswa % \end{macrocode} % ドライバオプションがない場合は警告を出す。 @@ -1591,6 +1777,20 @@ \fi % \end{macrocode} % +% エンジンが{\pTeX-ng}の場合、グローバルオプションに |dvipdfmx| +% を追加する。 +% ただし、エンジンオプションが |platex-ng*|(|*|付)の場合、および +% 既に |dvipdfmx| が指定されている場合を除く。 +% \begin{macrocode} +\ifjsWithpTeXng + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \let\bxjs@platexng@nodrv\@undefined + \else\ifx t\bxjs@platexng@nodrv\else + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi\fi +\fi +% \end{macrocode} +% % |\bxjs@jadriver| の正規化。 % 値が未指定の場合は |minimal| に変える。 % ただしエンジンが{(u)\pTeX}である場合は |standard| @@ -1639,6 +1839,14 @@ \bxjs@do@opt@jbase % \end{macrocode} % +% \begin{macro}{\Cjascale} +% 和文クラス共通仕様(※ただしZR氏提唱)における、 +% 和文スケール値の変数。 +% \begin{macrocode} +\let\Cjascale\jsScale +% \end{macrocode} +% \end{macro} +% % \end{ZRnote} % % 後処理 @@ -1690,7 +1898,7 @@ % 命令を実行する。 % \begin{macrocode} \ifbxjs@oldfontcommands - \jsAtEndOfClass{\allowoldfontcommands} + \AtEndOfClass{\allowoldfontcommands} \fi % \end{macrocode} % \end{ZRnote} @@ -1750,7 +1958,6 @@ % 設定すべき |\mag| 値を (基底サイズ)/(10\,pt) $\times$ 1000 と算出。 % BXJSクラスでは、|\mag| を直接指定したい場合は、|geometry| 側では % なくクラスのオプションで行うものとする。 -% \end{ZRnote} % \begin{macrocode} \ifx\bxjs@param@mag\relax \@tempdima=\bxjs@param@basefontsize @@ -1781,6 +1988,7 @@ %\typeout{\string\ifjsc@mag: \meaning\ifjsc@mag} %\typeout{\string\ifbxjs@nfss@patch: \meaning\ifbxjs@nfss@patch} % \end{macrocode} +% \end{ZRnote} % % [2016-07-08] |\jsc@mpt| および |\jsc@mmm| に,それぞれ1ptおよび1mmを拡大させた値を格納します。 % 以降のレイアウト指定ではこちらを使います。 @@ -1791,6 +1999,8 @@ % その上で、|\mag| する場合は |?| を無視して |\p@| と解釈させ、 % |\mag| しない場合は |?| を英字扱いにして |\p@?| という制御綴を % |\jsc@mpt| と同値にする。 +% \Note (多分2.0版あたりで)JSクラスに合わせるため |\p@?| 表記を +% 止める予定。 % \begin{macrocode} \ifjsc@mag \let\jsc@mpt\p@ @@ -2141,7 +2351,6 @@ % % \begin{ZRnote} % まず |\Cwd| 等の変数を定義する。 -% \end{ZRnote} % \begin{macrocode} \ifx\Cht\@undefined \newdimen\Cht \fi \ifx\Cdp\@undefined \newdimen\Cdp \fi @@ -2150,7 +2359,6 @@ \ifx\Chs\@undefined \newdimen\Chs \fi % \end{macrocode} % -% \begin{ZRnote} % 規約上、現在の |\jsZw| の値が |\Cwd| である。 % |\Cht| と |\Cdp| は単純に |\Cwd| の88\%と12\%の値とする。 % \end{ZRnote} @@ -2416,12 +2624,15 @@ % % \subsection{ページレイアウト} % -% |geometry| パッケージに任せる。 +% \begin{ZRnote} +% BXJSではページレイアウトの処理は |geometry| パッケージが担当している。 +% \end{ZRnote} % +% \paragraph{準備 \ZRX} +% \mbox{} % \begin{ZRnote} % 現状ではここで |\mag| を設定している。\par % |\topskip| も指定する。 -% \end{ZRnote} % \begin{macrocode} \ifjsc@mag \mag=\bxjs@param@mag @@ -2429,10 +2640,8 @@ \setlength{\topskip}{10\p@?} % \end{macrocode} % -% \begin{ZRnote} % |\bxjs@param@paper| が長さ指定(|{W}{H}|)の場合、 % |geometry| の形式(|papersize={W,H}|)に変換する。 -% \end{ZRnote} % \begin{macrocode} \def\bxjs@read@a{\futurelet\bxjs@tmpa\bxjs@read@b} \def\bxjs@read@b{% @@ -2443,21 +2652,19 @@ \expandafter\bxjs@read@a\bxjs@param@paper\@nil % \end{macrocode} % -% \begin{ZRnote} -% |\bxjs@layout@paper| は |geometry| の用紙設定のオプション。 -% \end{ZRnote} +% \begin{macro}{\bxjs@layout@paper} +% |geometry| の用紙設定のオプション。 % \begin{macrocode} \edef\bxjs@layout@paper{% \ifjsc@mag truedimen,\fi \if@landscape landscape,\fi \bxjs@param@paper} % \end{macrocode} +% \end{macro} % -% -% \begin{ZRnote} -% |\bxjs@layout| は |geometry| のページレイアウトのオプション -% 列であり、文書クラス毎に異なる。 -% \end{ZRnote} +% \begin{macro}{\bxjs@layout} +% |geometry| のページレイアウトのオプション列。 +% 文書クラス毎に異なる。 % \begin{macrocode} %<*article|report> \def\bxjs@layout{% @@ -2468,11 +2675,21 @@ } % %<*book> +\ifbxjs@layout@buggyhmargin %--- +% アレ \def\bxjs@layout{% headheight=\topskip,headsep=6\jsc@mmm,nofoot,includeheadfoot,% hmargin=36\jsc@mmm,hmarginratio=1:1,% vscale=0.83,vmarginratio=1:1,% } +\else %--- +% 非アレ +\def\bxjs@layout{% + headheight=\topskip,headsep=6\jsc@mmm,nofoot,includeheadfoot,% + hmargin=18\jsc@mmm,% + vscale=0.83,vmarginratio=1:1,% +} +\fi %--- % %<*slide> \def\bxjs@layout{% @@ -2482,16 +2699,34 @@ } % % \end{macrocode} +% \end{macro} % -% \begin{ZRnote} -% |geometry| の後処理。 -% -% |\jsTextWidthLimit| は |bxjsbook| での |\textwidth| の -% 上限で、全角単位の実数値マクロ。 -% \end{ZRnote} +% \begin{macro}{\fullwidth} +% 〔寸法レジスタ〕 +% ヘッダ・フッタ領域の横幅。 % \begin{macrocode} \newdimen\fullwidth -%\newcommand\jsTextWidthLimit{40} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jsTextWidthLimit} +% 〔実数値マクロ〕 +% |bxjsbook| における、|\textwidth| の上限の全角単位での値。 +% \begin{macrocode} +%<*book> +\newcommand\jsTextWidthLimit{40} +\ifx\bxjs@textwidth@limit\@undefined\else + \let\c@bxjs@cnta\@tempcnta + \setcounter{bxjs@cnta}{\bxjs@textwidth@limit} + \long\edef\jsTextWidthLimit{\the\@tempcnta} +\fi +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@postproc@layout} +% |geometry| の後処理。 +% \begin{macrocode} \def\bxjs@postproc@layout{% % ドライバ再設定 \ifx\bxjs@geometry@driver\relax\else @@ -2534,32 +2769,31 @@ \stockheight=\paperheight } % \end{macrocode} +% \end{macro} % % \begin{macro}{\jsGeometryOptions} -% \begin{ZRnote} % |geometry|パッケージに渡すオプションのリスト。 % \Note |geometry=user| 指定時にユーザが利用することを想定している。 -% \end{ZRnote} % \begin{macrocode} \edef\jsGeometryOptions{% \bxjs@layout@paper,\bxjs@layout} % \end{macrocode} % \end{macro} +% \end{ZRnote} % +% \paragraph{geometry パッケージ読込 \ZRX} +% \mbox{} % \begin{ZRnote} -% ここで|geoemtry|オプションの値に応じて分岐する。 +% |geoemtry| オプションの値に応じて分岐する。 % % まずは|geometry=class|の場合。 -% \end{ZRnote} % \begin{macrocode} \ifx\bxjs@geometry\bxjs@geometry@class % \end{macrocode} % -% \begin{ZRnote} % |geometry| は |\topskip| が標準の行高(|\ht\strutbox|)より小さくならない % ようにする自動調整を行うが、これをどうするかは未検討。 % 今のところ、単純に回避(無効化)している。 -% \end{ZRnote} % \begin{macrocode} \@onlypreamble\bxjs@revert \let\bxjs@revert\@empty @@ -2567,14 +2801,13 @@ \ht\strutbox=10\p@? \g@addto@macro\bxjs@revert{\ht\strutbox=\bxjs@tmpa\relax} % \end{macrocode} -% \begin{ZRnote} +% % |geometry| のドライバオプション指定。 % |nopapersize| 指定時は、special命令出力を抑止するために % ドライバを |none| にする。 % そうでない場合は、クラスで指定したドライバオプションが引き継がれる % ので何もしなくてよいが、例外として、ドライバが |dvipdfmx| の % 時は、現状の |geometry| は |dvipdfm| を指定する必要がある。 -% \end{ZRnote} % \begin{macrocode} \ifbxjs@papersize \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx @@ -2585,11 +2818,10 @@ \PassOptionsToPackage{driver=none}{geometry} \fi % \end{macrocode} -% \begin{ZRnote} +% % ここで |geometry| を読み込む。 % \Note |geometry| のbegin-documentフックにおいて、Lua{\TeX}の % 旧版互換を有効にする。 -% \end{ZRnote} % \begin{macrocode} \edef\bxjs@nxt{% \noexpand\RequirePackage[\bxjs@layout@paper,\bxjs@layout]{geometry}} @@ -2598,25 +2830,25 @@ \bxjs@nxt \bxjs@revert \AtBeginDocument{\RevokeOldLuaTeXBehavior} % \end{macrocode} -% \begin{ZRnote} -% |\bxjs@geometry@driver| は |geometry| が用いるドライバの名前。 +% +% \begin{macro}{\bxjs@geometry@driver} +% |geometry| が用いるドライバの名前。 % \Note この値は一度決めた後は変わってほしくないので、 % |\bxjs@postproc@layout| において書き戻す処理を入れている。 -% \end{ZRnote} % \begin{macrocode} \let\bxjs@geometry@driver\Gm@driver \bxjs@postproc@layout % \end{macrocode} +% \end{macro} % % \begin{macro}{\bxjs@pre@geometry@hook} -% \begin{ZRnote} % 1.2版より、|geometry| の4.x版の使用は非推奨とする。 % \Note 将来サポートを廃止する予定。 -% \end{ZRnote} % \begin{macrocode} \@onlypreamble\bxjs@pre@geometry@hook \def\bxjs@pre@geometry@hook{% - \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{% + \@ifpackageloaded{geometry}{% + \@ifpackagelater{geometry}{2010/02/12}{}{%else \PackageWarningNoLine\bxjs@clsname {The 'geometry' package installed\MessageBreak is too old (< v5.0)}% @@ -2625,11 +2857,18 @@ \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi \fi\fi - }}{}} + }% + \ifjsWithpTeXng + \ifx\Gm@driver\@empty + \def\Gm@driver{pdftex}% + \fi + \fi + }{}} % \end{macrocode} % \end{macro} % -% \begin{ZRnote} +% \begin{macro}{\setpagelayout} +% ページレイアウト設定のためのユーザ命令。 % \begin{itemize} % \item |\setpagelayout{|\meta{text}|}| : 現在の geometry の設定の % 一部を修正する。 @@ -2637,7 +2876,6 @@ % 改めて設定を行う。 % \end{itemize} % どちらも設定の後で後処理 |\bxjs@postproc@layout| を実行する。 -% \end{ZRnote} % \begin{macrocode} \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} @@ -2648,23 +2886,20 @@ \edef\bxjs@nxt{\noexpand\geometry{reset,\bxjs@layout@paper,#1,truedimen}}% \bxjs@nxt\bxjs@postproc@layout} % \end{macrocode} +% \end{macro} % -% \begin{ZRnote} % |geometry=class|の場合の処理はここで終わり。 % % 次に、|geometry=user|の場合の処理。 -% \end{ZRnote} % \begin{macrocode} \else\ifx\bxjs@geometry\bxjs@geometry@user % \end{macrocode} % -% \begin{ZRnote} % この場合はユーザが何らかの方法(例えば |geometry| を読み込む) % でページレイアウトを設定する必要がある。 % もし、本体開始時に |\textwidth| がカーネル設定の値(|.5\maxdimen|) % になっている場合はエラーを出す。 % \Note |\jsUseMinimalPageLayout| は動作テスト用。 -% \end{ZRnote} % \begin{macrocode} \AtBeginDocument{\bxjs@check@page@layout} \@onlypreamble\bxjs@check@page@layout @@ -2679,9 +2914,7 @@ \setlength{\textheight}{8in}} % \end{macrocode} % -% \begin{ZRnote} % |\setpagelayout| はとりあえず無効にしておく。 -% \end{ZRnote} % \begin{macrocode} \let\bxjs@geometry@driver\relax \def\setpagelayout{\@ifstar @@ -2692,14 +2925,11 @@ because 'geometry' value is not 'class'}\@eha} % \end{macrocode} % -% \begin{ZRnote} % |geometry=user|の場合の処理はここで終わり。 -% \end{ZRnote} % \begin{macrocode} \fi\fi % \end{macrocode} % -% \begin{ZRnote} % ここからのコードは以下の点を除いて JS クラスのものを踏襲する。 % \begin{itemize} % \item zw の代わりに |\jsZw| を用いる。 @@ -3153,6 +3383,7 @@ % % \begin{ZRnote} % \begin{macro}{\subtitle} +% \begin{macro}{\jsSubtitle} % 副題を設定する。 % \Note プレアンブルにおいて |\newcommand*{\subtitle}{...}| が % 行われることへの対策として、 @@ -3177,12 +3408,17 @@ \fi} % \end{macrocode} % \end{macro} +% \end{macro} % +% \begin{macro}{\bxjs@annihilate@subtitle} +% |\subtitle| 命令を無効化する。 +% \Note 独自の |\subtitle| が使われている場合は無効化しない。 % \begin{macrocode} \def\bxjs@annihilate@subtitle{% \ifx\subtitle\jsSubtitle \global\let\subtitle\relax \fi \global\let\jsSubtitle\relax} % \end{macrocode} +% \end{macro} % % \end{ZRnote} % @@ -4151,6 +4387,9 @@ % \end{ZRnote} % \begin{macrocode} \newcommand\jsParagraphMark{\jsJaChar{■}} +\ifx\bxjs@paragraph@mark\@undefined\else + \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs@paragraph@mark}} +\fi \let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% @@ -6619,8 +6858,11 @@ % \begin{macrocode} \def\bxjs@tmpa#1/#2/#3/#4/#5\relax{% \def\bxjs@y{#5}} +\ifjsWithpTeXng \def\bxjs@y{10}% +\else \expandafter\expandafter\expandafter\bxjs@tmpa \expandafter\string\the\jfont\relax +\fi \@for\bxjs@x:={\jsc@JYn/mc/m/n,\jsc@JYn/gt/m/n,% \jsc@JTn/mc/m/n,\jsc@JTn/gt/m/n}\do {\expandafter\let\csname\bxjs@x/10\endcsname=\@undefined @@ -6875,6 +7117,7 @@ \bxjs@do@simplejasetup \fi} \fi +% \end{macrocode} % % |precisetext| オプションの処理。 % \begin{macrocode} @@ -6889,6 +7132,90 @@ \fi % \end{macrocode} % +% \paragraph{fancyhdr対策} +% |fancyhdr| オプションの値が |true| であり、 +% かつ |fancyhdr| が使用された場合に以下の対策を行う。 +% \begin{itemize} +% \item デフォルトの書式設定に含まれる“二文字フォント命令”を除去する。 +% \item bxjsbookにおいて、ヘッダ・フッタの横幅を |\fullwidth| に変える。 +% \end{itemize} +% +% \begin{macrocode} +\ifbxjs@fancyhdr +% \end{macrocode} +% +% \begin{macro}{\bxjs@adjust@fancyhdr} +% |fancyhdr| の初期設定に関する改変の処理。 +% |fancyhdr| 読込完了と |\pagestyle{fancy}| 実行の間で実行されるべき。 +% \begin{macrocode} +\@onlypreamble\bxjs@adjust@fancyhdr +\def\bxjs@adjust@fancyhdr{% +% \end{macrocode} +% ヘッダ・フッタの要素の書式について、それが既定のままであれば、 +% “二文字フォント命令”を除去したものに置き換える。 +% \Note 和文なので |\sl| は無い方がよいはず。 +% \begin{macrocode} + \def\bxjs@tmpa{\fancyplain{}{\sl\rightmark}\strut}% + \def\bxjs@tmpb{\fancyplain{}{\rightmark}\strut}% + \ifx\f@ncyelh\bxjs@tmpa \global\let\f@ncyelh\bxjs@tmpb \fi + \ifx\f@ncyerh\bxjs@tmpa \global\let\f@ncyerh\bxjs@tmpb \fi + \ifx\f@ncyolh\bxjs@tmpa \global\let\f@ncyolh\bxjs@tmpb \fi + \ifx\f@ncyorh\bxjs@tmpa \global\let\f@ncyorh\bxjs@tmpb \fi + \def\bxjs@tmpa{\fancyplain{}{\sl\leftmark}\strut}% + \def\bxjs@tmpb{\fancyplain{}{\leftmark}\strut}% + \ifx\f@ncyelh\bxjs@tmpa \global\let\f@ncyelh\bxjs@tmpb \fi + \ifx\f@ncyerh\bxjs@tmpa \global\let\f@ncyerh\bxjs@tmpb \fi + \ifx\f@ncyolh\bxjs@tmpa \global\let\f@ncyolh\bxjs@tmpb \fi + \ifx\f@ncyorh\bxjs@tmpa \global\let\f@ncyorh\bxjs@tmpb \fi + \def\bxjs@tmpa{\rm\thepage\strut}% + \def\bxjs@tmpb{\thepage\strut}% + \ifx\f@ncyecf\bxjs@tmpa \global\let\f@ncyecf\bxjs@tmpb \fi + \ifx\f@ncyocf\bxjs@tmpa \global\let\f@ncyocf\bxjs@tmpb \fi +% \end{macrocode} +% |\fullwidth| が(定義済で)|\textwidth| よりも大きい場合、 +% ヘッダ・フッタの横幅を |\fullwidth| に合わせる。 +% \begin{macrocode} + \ifx\fullwidth\@undefined\else \ifdim\textwidth<\fullwidth + \setlength{\@tempdima}{\fullwidth-\textwidth}% + \edef\bxjs@tmpa{\noexpand\fancyhfoffset[EL,OR]{\the\@tempdima}% + }\bxjs@tmpa + \fi\fi + \PackageInfo\bxjs@clsname + {Patch to fancyhdr is applied\@gobble}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@pagestyle@hook} +% |\pagestyle| へのフックの本体。 +% \begin{macrocode} +\def\bxjs@pagestyle@hook{% + \@ifpackageloaded{fancyhdr}{% + \bxjs@adjust@fancyhdr + \global\let\bxjs@adjust@fancyhdr\relax + }{}} +% \end{macrocode} +% \end{macro} +% +% |\pagestyle| にフックを入れ込む。 +% \begin{macrocode} +\let\bxjs@org@pagestyle\pagestyle +\def\pagestyle{% + \bxjs@pagestyle@hook \bxjs@org@pagestyle} +% \end{macrocode} +% +% begin-document フック。 +% \Note これ以降に |fancyhdr| が読み込まれることはあり得ない。 +% \begin{macrocode} +\AtBeginDocument{% + \bxjs@pagestyle@hook + \global\let\bxjs@pagestyle@hook\relax} +% \end{macrocode} +% +% 終わり。 +% \begin{macrocode} +\fi +% \end{macrocode} +% % 以上で終わり。 % \begin{macrocode} % @@ -6963,12 +7290,15 @@ % |\trueQ| と |\trueH| はともに0.25\,true\,mmに等しい。 % \begin{macrocode} \ifjsc@mag - \@tempdima=2.5mm \@tempdimb=\jsBaseFontSize\relax \edef\bxjs@tmpa{\strip@pt\@tempdimb}% + \@tempdima=2.5mm \bxjs@invscale\@tempdima\bxjs@tmpa - \edef\trueQ{\dimexpr\the\@tempdima\relax} - \else \let\trueQ\jQ + \protected\edef\trueQ{\dimexpr\the\@tempdima\relax} + \@tempdima=10pt + \bxjs@invscale\@tempdima\bxjs@tmpa + \protected\edef\bxjs@truept{\dimexpr\the\@tempdima\relax} + \else \let\trueQ\jQ \let\bxjs@truept\p@ \fi \let\trueH\trueQ % \end{macrocode} @@ -6976,15 +7306,21 @@ % \end{macro} % % \begin{macro}{\ascQ} +% \begin{macro}{\ascpt} % |\ascQ| は |\trueQ| を和文スケール値で割った値。 % 例えば、|\fontsize{12\ascQ}{16\trueH}| とすると、 % 和文が12Qになる。 +% +% 同様に、|\ascpt| は |truept| を和文スケールで割った値。 % \begin{macrocode} \@tempdima\trueQ \bxjs@invscale\@tempdima\jsScale - \edef\ascQ{\dimexpr\the\@tempdima\relax} + \protected\edef\ascQ{\dimexpr\the\@tempdima\relax} + \@tempdima\bxjs@truept \bxjs@invscale\@tempdima\jsScale + \protected\edef\ascpt{\dimexpr\the\@tempdima\relax} \fi % \end{macrocode} % \end{macro} +% \end{macro} % % 続いて、和文間空白・和欧文間空白関連の命令を実装する。 % (エンジン依存のコード。) @@ -7376,7 +7712,8 @@ % % |tounicode| special命令を出力する。 % \begin{macrocode} -\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx +\if \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx T% + \else\ifjsWithpTeXng T\else F\fi\fi T% \ifnum\jis"2121="A1A1 %euc \bxjs@urgent@special{pdf:tounicode EUC-UCS2} \else\ifnum\jis"2121="8140 %sjis diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls index 0f612f80b22..b9beaffc632 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls @@ -37,14 +37,20 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsarticle} - [2016/08/01 v1.2 BXJS document classes] -%% このファイルは日本語文字を含みます + [2016/08/16 v1.2a BXJS document classes] +%% このファイルは日本語文字を含みます. \RequirePackage{calc} \RequirePackage{keyval} \IfFileExists{bxjscompat.sty}{% \let\jsAtEndOfClass\@gobble \RequirePackage{bxjscompat}% }{} +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +\let\jsDocClass\jsArticle +\def\bxjs@clsname{bxjsarticle} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -52,6 +58,7 @@ \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} \bxjs@test@engine\kanjiskip{\let\jsEngine=j} \bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\Omegaversion{\let\jsEngine=O} \bxjs@test@engine\XeTeXversion{\let\jsEngine=x} \bxjs@test@engine\pdftexversion{\let\jsEngine=p} \bxjs@test@engine\luatexversion{\let\jsEngine=l} @@ -60,8 +67,20 @@ \jsWithupTeXtrue \fi\fi \let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWithpTeXng +\bxjs@test@engine\ngbanner{\jsWithpTeXngtrue} \newif\ifjsWitheTeX \bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\let\bxjs@tmpa\relax +\ifx J\jsEngine \def\bxjs@tmpa{NTT-jTeX}\fi +\ifx O\jsEngine \def\bxjs@tmpa{Omega}\fi +\ifx\bxjs@tmpa\relax \expandafter\@gobble +\else + \ClassError\@currname + {The engine in use (\bxjs@tmpa) is not supported} + {It's a fatal error. I'll quit right now.} + \expandafter\@firstofone +\fi{\endinput\@@end} \ifjsWitheTeX \let\bxjs@protected\protected \else \let\bxjs@protected\@empty \fi @@ -82,12 +101,6 @@ #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo \fi} -\let\jsArticle=a -\let\jsBook=b -\let\jsReport=r -\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 @@ -301,6 +314,13 @@ \DeclareOption{lualatex}{% \def\bxjs@engine@opt{lualatex}% \let\bxjs@engine@given=l} +\DeclareOption{platex-ng}{% + \def\bxjs@engine@opt{platex-ng}% + \let\bxjs@engine@given=g} +\DeclareOption{platex-ng*}{% + \def\bxjs@engine@opt{platex-ng*}% + \let\bxjs@platexng@nodrv=t% + \let\bxjs@engine@given=g} \let\bxjs@driver@@dvimode=0 \let\bxjs@driver@@dvipdfmx=1 \let\bxjs@driver@@pdfmode=2 @@ -372,9 +392,19 @@ \setkeys{#1}{#2}% \let\KV@errx\bxjs@KV@errx} \def\bxjs@safe@setkeys@a#1{} +\def\bxjs@set@keyval#1#2#3{% + \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname + \ifx\bxjs@next\relax + \bxjs@error@keyval{#1}{#2}% + #3% + \else \bxjs@next + \fi} +\@onlypreamble\bxjs@error@keyval +\def\bxjs@error@keyval#1#2{% + \ClassError\bxjs@clsname + {Invalid value '#2' for option #1}\@ehc} \newif\ifbxjs@scaleset \def\jsScale{0.924715} -\def\Cjascale{\jsScale} \define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} \@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax @@ -414,6 +444,9 @@ \ifx l\jsEngine \ifnum\luatexversion>86 \let\bxjs@magstyle@default\bxjs@magstyle@xreal \fi\fi +\ifjsWithpTeXng + \let\bxjs@magstyle@default\bxjs@magstyle@xreal +\fi \let\bxjs@magstyle\bxjs@magstyle@default \define@key{bxjs}{magstyle}{% \expandafter\let\expandafter\bxjs@magstyle\csname @@ -434,6 +467,11 @@ {Invalid geometry value `#1'}\@ehc \let\bxjs@geometry\bxjs@geometry@class \fi} +\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse +\define@key{bxjs}{fancyhdr}{% + \bxjs@set@keyval{fancyhdr}{#1}{}} \newif\ifbxjs@dvi@opt \let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx \let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvimode @@ -450,6 +488,29 @@ \let\bxjs@driver@given\@undefined \bxjs@dvi@opttrue \fi} +\newif\ifbxjs@layout@buggyhmargin \bxjs@layout@buggyhmargintrue +\@namedef{bxjs@kv@layout@v1}{% + \bxjs@layout@buggyhmargintrue} +\@namedef{bxjs@kv@layout@v2}{% + \bxjs@layout@buggyhmarginfalse} +\define@key{bxjs}{layout}{% + \bxjs@set@keyval{layout}{#1}{}} +\define@key{bxjs}{textwidth-limit}{% + \edef\bxjs@textwidth@limit{#1}} +\define@key{bxjs}{paragraph-mark}{% + \edef\bxjs@paragraph@mark{#1}} +\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse +\define@key{bxjs}{whole-zw-lines}{\bxjs@set@keyval{wholezwlines}{#1}{}} +\newif\ifbxjs@dummy@microtype \bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@true\bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@false\bxjs@dummy@microtypefalse +\define@key{bxjs}{dummy-microtype}{\bxjs@set@keyval{dummymicrotype}{#1}{}} +\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse +\define@key{bxjs}{hyperref-enc}{\bxjs@set@keyval{hyperrefenc}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -481,10 +542,15 @@ {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement {10pt}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {noscale}\@classoptionslist\@classoptionslist \ifx\bxjs@jadriver\relax\else \let\bxjs@jadriver@given\bxjs@jadriver \fi \let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithpTeXng + \let\bxjs@tmpb=g +\fi\fi \ifx j\bxjs@tmpb\ifjsWithupTeX \let\bxjs@tmpb=u \fi\fi @@ -505,6 +571,9 @@ {Option `\bxjs@engine@opt' used on wrong engine}\@ehc \fi \fi +\ifjsWithpTeXng + \g@addto@macro\@classoptionslist{,uplatex} +\fi \@tempswatrue \ifx \bxjs@driver@given\@undefined\else \ifjsInPdfMode @@ -521,6 +590,9 @@ \else\ifx\bxjs@driver@given\bxjs@driver@@xetex \@tempswafalse \fi\fi + \ifjsWithpTeXng\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx\else + \@tempswafalse + \fi\fi \fi\fi \fi \if@tempswa\else @@ -529,8 +601,9 @@ \fi \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse +\else\ifjsWithpTeXng \@tempswafalse \else \@tempswatrue -\fi\fi +\fi\fi\fi \if@tempswa \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@given\@undefined\else \ClassWarningNoLine\bxjs@clsname @@ -545,6 +618,13 @@ }\bxjs@nxt \fi \fi +\ifjsWithpTeXng + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \let\bxjs@platexng@nodrv\@undefined + \else\ifx t\bxjs@platexng@nodrv\else + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi\fi +\fi \def\bxjs@@minimal{minimal} \ifx\bxjs@jadriver\relax \ifx j\jsEngine @@ -570,6 +650,7 @@ \fi \fi \bxjs@do@opt@jbase +\let\Cjascale\jsScale \if@slide \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} \fi @@ -590,7 +671,7 @@ \fi \g@addto@macro\@classoptionslist{,nosetpagesize} \ifbxjs@oldfontcommands - \jsAtEndOfClass{\allowoldfontcommands} + \AtEndOfClass{\allowoldfontcommands} \fi \ifdim\bxjs@param@basefontsize<10pt \def\n@baseline{15}% \else \def\n@baseline{16}\fi @@ -883,7 +964,8 @@ \bxjs@postproc@layout \@onlypreamble\bxjs@pre@geometry@hook \def\bxjs@pre@geometry@hook{% - \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{% + \@ifpackageloaded{geometry}{% + \@ifpackagelater{geometry}{2010/02/12}{}{%else \PackageWarningNoLine\bxjs@clsname {The 'geometry' package installed\MessageBreak is too old (< v5.0)}% @@ -892,7 +974,13 @@ \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi \fi\fi - }}{}} + }% + \ifjsWithpTeXng + \ifx\Gm@driver\@empty + \def\Gm@driver{pdftex}% + \fi + \fi + }{}} \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} \def\bxjs@modify@layout#1{% @@ -1325,6 +1413,9 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\ifx\bxjs@paragraph@mark\@undefined\else + \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs@paragraph@mark}} +\fi \let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls index 43c0028cf4c..56d451894b3 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls @@ -37,14 +37,20 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsbook} - [2016/08/01 v1.2 BXJS document classes] -%% このファイルは日本語文字を含みます + [2016/08/16 v1.2a BXJS document classes] +%% このファイルは日本語文字を含みます. \RequirePackage{calc} \RequirePackage{keyval} \IfFileExists{bxjscompat.sty}{% \let\jsAtEndOfClass\@gobble \RequirePackage{bxjscompat}% }{} +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +\let\jsDocClass\jsBook +\def\bxjs@clsname{bxjsbook} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -52,6 +58,7 @@ \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} \bxjs@test@engine\kanjiskip{\let\jsEngine=j} \bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\Omegaversion{\let\jsEngine=O} \bxjs@test@engine\XeTeXversion{\let\jsEngine=x} \bxjs@test@engine\pdftexversion{\let\jsEngine=p} \bxjs@test@engine\luatexversion{\let\jsEngine=l} @@ -60,8 +67,20 @@ \jsWithupTeXtrue \fi\fi \let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWithpTeXng +\bxjs@test@engine\ngbanner{\jsWithpTeXngtrue} \newif\ifjsWitheTeX \bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\let\bxjs@tmpa\relax +\ifx J\jsEngine \def\bxjs@tmpa{NTT-jTeX}\fi +\ifx O\jsEngine \def\bxjs@tmpa{Omega}\fi +\ifx\bxjs@tmpa\relax \expandafter\@gobble +\else + \ClassError\@currname + {The engine in use (\bxjs@tmpa) is not supported} + {It's a fatal error. I'll quit right now.} + \expandafter\@firstofone +\fi{\endinput\@@end} \ifjsWitheTeX \let\bxjs@protected\protected \else \let\bxjs@protected\@empty \fi @@ -82,12 +101,6 @@ #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo \fi} -\let\jsArticle=a -\let\jsBook=b -\let\jsReport=r -\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 @@ -305,6 +318,13 @@ \DeclareOption{lualatex}{% \def\bxjs@engine@opt{lualatex}% \let\bxjs@engine@given=l} +\DeclareOption{platex-ng}{% + \def\bxjs@engine@opt{platex-ng}% + \let\bxjs@engine@given=g} +\DeclareOption{platex-ng*}{% + \def\bxjs@engine@opt{platex-ng*}% + \let\bxjs@platexng@nodrv=t% + \let\bxjs@engine@given=g} \let\bxjs@driver@@dvimode=0 \let\bxjs@driver@@dvipdfmx=1 \let\bxjs@driver@@pdfmode=2 @@ -376,9 +396,19 @@ \setkeys{#1}{#2}% \let\KV@errx\bxjs@KV@errx} \def\bxjs@safe@setkeys@a#1{} +\def\bxjs@set@keyval#1#2#3{% + \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname + \ifx\bxjs@next\relax + \bxjs@error@keyval{#1}{#2}% + #3% + \else \bxjs@next + \fi} +\@onlypreamble\bxjs@error@keyval +\def\bxjs@error@keyval#1#2{% + \ClassError\bxjs@clsname + {Invalid value '#2' for option #1}\@ehc} \newif\ifbxjs@scaleset \def\jsScale{0.924715} -\def\Cjascale{\jsScale} \define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} \@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax @@ -418,6 +448,9 @@ \ifx l\jsEngine \ifnum\luatexversion>86 \let\bxjs@magstyle@default\bxjs@magstyle@xreal \fi\fi +\ifjsWithpTeXng + \let\bxjs@magstyle@default\bxjs@magstyle@xreal +\fi \let\bxjs@magstyle\bxjs@magstyle@default \define@key{bxjs}{magstyle}{% \expandafter\let\expandafter\bxjs@magstyle\csname @@ -438,6 +471,11 @@ {Invalid geometry value `#1'}\@ehc \let\bxjs@geometry\bxjs@geometry@class \fi} +\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse +\define@key{bxjs}{fancyhdr}{% + \bxjs@set@keyval{fancyhdr}{#1}{}} \newif\ifbxjs@dvi@opt \let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx \let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvimode @@ -454,6 +492,29 @@ \let\bxjs@driver@given\@undefined \bxjs@dvi@opttrue \fi} +\newif\ifbxjs@layout@buggyhmargin \bxjs@layout@buggyhmargintrue +\@namedef{bxjs@kv@layout@v1}{% + \bxjs@layout@buggyhmargintrue} +\@namedef{bxjs@kv@layout@v2}{% + \bxjs@layout@buggyhmarginfalse} +\define@key{bxjs}{layout}{% + \bxjs@set@keyval{layout}{#1}{}} +\define@key{bxjs}{textwidth-limit}{% + \edef\bxjs@textwidth@limit{#1}} +\define@key{bxjs}{paragraph-mark}{% + \edef\bxjs@paragraph@mark{#1}} +\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse +\define@key{bxjs}{whole-zw-lines}{\bxjs@set@keyval{wholezwlines}{#1}{}} +\newif\ifbxjs@dummy@microtype \bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@true\bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@false\bxjs@dummy@microtypefalse +\define@key{bxjs}{dummy-microtype}{\bxjs@set@keyval{dummymicrotype}{#1}{}} +\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse +\define@key{bxjs}{hyperref-enc}{\bxjs@set@keyval{hyperrefenc}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -485,10 +546,15 @@ {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement {10pt}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {noscale}\@classoptionslist\@classoptionslist \ifx\bxjs@jadriver\relax\else \let\bxjs@jadriver@given\bxjs@jadriver \fi \let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithpTeXng + \let\bxjs@tmpb=g +\fi\fi \ifx j\bxjs@tmpb\ifjsWithupTeX \let\bxjs@tmpb=u \fi\fi @@ -509,6 +575,9 @@ {Option `\bxjs@engine@opt' used on wrong engine}\@ehc \fi \fi +\ifjsWithpTeXng + \g@addto@macro\@classoptionslist{,uplatex} +\fi \@tempswatrue \ifx \bxjs@driver@given\@undefined\else \ifjsInPdfMode @@ -525,6 +594,9 @@ \else\ifx\bxjs@driver@given\bxjs@driver@@xetex \@tempswafalse \fi\fi + \ifjsWithpTeXng\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx\else + \@tempswafalse + \fi\fi \fi\fi \fi \if@tempswa\else @@ -533,8 +605,9 @@ \fi \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse +\else\ifjsWithpTeXng \@tempswafalse \else \@tempswatrue -\fi\fi +\fi\fi\fi \if@tempswa \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@given\@undefined\else \ClassWarningNoLine\bxjs@clsname @@ -549,6 +622,13 @@ }\bxjs@nxt \fi \fi +\ifjsWithpTeXng + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \let\bxjs@platexng@nodrv\@undefined + \else\ifx t\bxjs@platexng@nodrv\else + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi\fi +\fi \def\bxjs@@minimal{minimal} \ifx\bxjs@jadriver\relax \ifx j\jsEngine @@ -574,6 +654,7 @@ \fi \fi \bxjs@do@opt@jbase +\let\Cjascale\jsScale \if@slide \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} \fi @@ -594,7 +675,7 @@ \fi \g@addto@macro\@classoptionslist{,nosetpagesize} \ifbxjs@oldfontcommands - \jsAtEndOfClass{\allowoldfontcommands} + \AtEndOfClass{\allowoldfontcommands} \fi \ifdim\bxjs@param@basefontsize<10pt \def\n@baseline{15}% \else \def\n@baseline{16}\fi @@ -825,13 +906,26 @@ \ifjsc@mag truedimen,\fi \if@landscape landscape,\fi \bxjs@param@paper} +\ifbxjs@layout@buggyhmargin %--- \def\bxjs@layout{% headheight=\topskip,headsep=6\jsc@mmm,nofoot,includeheadfoot,% hmargin=36\jsc@mmm,hmarginratio=1:1,% vscale=0.83,vmarginratio=1:1,% } +\else %--- +\def\bxjs@layout{% + headheight=\topskip,headsep=6\jsc@mmm,nofoot,includeheadfoot,% + hmargin=18\jsc@mmm,% + vscale=0.83,vmarginratio=1:1,% +} +\fi %--- \newdimen\fullwidth \newcommand\jsTextWidthLimit{40} +\ifx\bxjs@textwidth@limit\@undefined\else + \let\c@bxjs@cnta\@tempcnta + \setcounter{bxjs@cnta}{\bxjs@textwidth@limit} + \long\edef\jsTextWidthLimit{\the\@tempcnta} +\fi \def\bxjs@postproc@layout{% \ifx\bxjs@geometry@driver\relax\else \let\Gm@driver\bxjs@geometry@driver @@ -891,7 +985,8 @@ \bxjs@postproc@layout \@onlypreamble\bxjs@pre@geometry@hook \def\bxjs@pre@geometry@hook{% - \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{% + \@ifpackageloaded{geometry}{% + \@ifpackagelater{geometry}{2010/02/12}{}{%else \PackageWarningNoLine\bxjs@clsname {The 'geometry' package installed\MessageBreak is too old (< v5.0)}% @@ -900,7 +995,13 @@ \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi \fi\fi - }}{}} + }% + \ifjsWithpTeXng + \ifx\Gm@driver\@empty + \def\Gm@driver{pdftex}% + \fi + \fi + }{}} \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} \def\bxjs@modify@layout#1{% @@ -1418,6 +1519,9 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\ifx\bxjs@paragraph@mark\@undefined\else + \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs@paragraph@mark}} +\fi \let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty index 7b6633e60e7..5d0c9a4a5b7 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesPackage{bxjscjkcat} - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] \def\bxjx@pkgname{bxjscjkcat} \newcount\bxjx@cnta \let\bxjx@engine=n diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty index 92e16650459..72dd2d183b6 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesPackage{bxjscompat} - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] \def\bxac@pkgname{bxjscompat} \let\bxac@engine=n \def\bxac@do#1#2{% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def index 86983756bd0..7b9cd7eb544 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-minimal.def} - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] %% このファイルは日本語文字を含みます \def\DeclareJaTextFontCommand#1#2{% \DeclareRobustCommand#1[1]{% @@ -147,8 +147,11 @@ \fi \def\bxjs@tmpa#1/#2/#3/#4/#5\relax{% \def\bxjs@y{#5}} +\ifjsWithpTeXng \def\bxjs@y{10}% +\else \expandafter\expandafter\expandafter\bxjs@tmpa \expandafter\string\the\jfont\relax +\fi \@for\bxjs@x:={\jsc@JYn/mc/m/n,\jsc@JYn/gt/m/n,% \jsc@JTn/mc/m/n,\jsc@JTn/gt/m/n}\do {\expandafter\let\csname\bxjs@x/10\endcsname=\@undefined @@ -285,6 +288,44 @@ \bxjs@do@precisetext \fi \fi +\ifbxjs@fancyhdr +\@onlypreamble\bxjs@adjust@fancyhdr +\def\bxjs@adjust@fancyhdr{% + \def\bxjs@tmpa{\fancyplain{}{\sl\rightmark}\strut}% + \def\bxjs@tmpb{\fancyplain{}{\rightmark}\strut}% + \ifx\f@ncyelh\bxjs@tmpa \global\let\f@ncyelh\bxjs@tmpb \fi + \ifx\f@ncyerh\bxjs@tmpa \global\let\f@ncyerh\bxjs@tmpb \fi + \ifx\f@ncyolh\bxjs@tmpa \global\let\f@ncyolh\bxjs@tmpb \fi + \ifx\f@ncyorh\bxjs@tmpa \global\let\f@ncyorh\bxjs@tmpb \fi + \def\bxjs@tmpa{\fancyplain{}{\sl\leftmark}\strut}% + \def\bxjs@tmpb{\fancyplain{}{\leftmark}\strut}% + \ifx\f@ncyelh\bxjs@tmpa \global\let\f@ncyelh\bxjs@tmpb \fi + \ifx\f@ncyerh\bxjs@tmpa \global\let\f@ncyerh\bxjs@tmpb \fi + \ifx\f@ncyolh\bxjs@tmpa \global\let\f@ncyolh\bxjs@tmpb \fi + \ifx\f@ncyorh\bxjs@tmpa \global\let\f@ncyorh\bxjs@tmpb \fi + \def\bxjs@tmpa{\rm\thepage\strut}% + \def\bxjs@tmpb{\thepage\strut}% + \ifx\f@ncyecf\bxjs@tmpa \global\let\f@ncyecf\bxjs@tmpb \fi + \ifx\f@ncyocf\bxjs@tmpa \global\let\f@ncyocf\bxjs@tmpb \fi + \ifx\fullwidth\@undefined\else \ifdim\textwidth<\fullwidth + \setlength{\@tempdima}{\fullwidth-\textwidth}% + \edef\bxjs@tmpa{\noexpand\fancyhfoffset[EL,OR]{\the\@tempdima}% + }\bxjs@tmpa + \fi\fi + \PackageInfo\bxjs@clsname + {Patch to fancyhdr is applied\@gobble}} +\def\bxjs@pagestyle@hook{% + \@ifpackageloaded{fancyhdr}{% + \bxjs@adjust@fancyhdr + \global\let\bxjs@adjust@fancyhdr\relax + }{}} +\let\bxjs@org@pagestyle\pagestyle +\def\pagestyle{% + \bxjs@pagestyle@hook \bxjs@org@pagestyle} +\AtBeginDocument{% + \bxjs@pagestyle@hook + \global\let\bxjs@pagestyle@hook\relax} +\fi \endinput %% %% End of file `bxjsja-minimal.def'. diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def index 338e4eeb6c0..2ba09a1234c 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-modern.def} - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] \input{bxjsja-standard.def} \ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi=\z@ \def\encodingdefault{T1}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def index 8e7d253c5fe..54d73ffeff5 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-pandoc.def} - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] \input{bxjsja-standard.def} \@onlypreamble\bxjs@set@dupload@proc \def\bxjs@set@dupload@proc#1{% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def index 6c07f5b2fdb..3c4e4dceb1e 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def @@ -36,7 +36,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{bxjsja-standard.def} - [2016/08/01 v1.2 BXJS document classes] + [2016/08/16 v1.2a BXJS document classes] %% このファイルは日本語文字を含みます \input{bxjsja-minimal.def} \bxjs@simplejasetupfalse @@ -45,16 +45,21 @@ \protected\edef\jQ{\dimexpr\the\@tempdima\relax} \let\jH\jQ \ifjsc@mag - \@tempdima=2.5mm \@tempdimb=\jsBaseFontSize\relax \edef\bxjs@tmpa{\strip@pt\@tempdimb}% + \@tempdima=2.5mm + \bxjs@invscale\@tempdima\bxjs@tmpa + \protected\edef\trueQ{\dimexpr\the\@tempdima\relax} + \@tempdima=10pt \bxjs@invscale\@tempdima\bxjs@tmpa - \edef\trueQ{\dimexpr\the\@tempdima\relax} - \else \let\trueQ\jQ + \protected\edef\bxjs@truept{\dimexpr\the\@tempdima\relax} + \else \let\trueQ\jQ \let\bxjs@truept\p@ \fi \let\trueH\trueQ \@tempdima\trueQ \bxjs@invscale\@tempdima\jsScale - \edef\ascQ{\dimexpr\the\@tempdima\relax} + \protected\edef\ascQ{\dimexpr\the\@tempdima\relax} + \@tempdima\bxjs@truept \bxjs@invscale\@tempdima\jsScale + \protected\edef\ascpt{\dimexpr\the\@tempdima\relax} \fi \def\bxjs@kanjiskip{0pt} \newcommand*\setkanjiskip[1]{% @@ -269,7 +274,8 @@ \endgroup} \@gtempa \bxjs@fix@hyperref@unicode{false} -\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx +\if \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx T% + \else\ifjsWithpTeXng T\else F\fi\fi T% \ifnum\jis"2121="A1A1 %euc \bxjs@urgent@special{pdf:tounicode EUC-UCS2} \else\ifnum\jis"2121="8140 %sjis diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls index 1c6673c43f5..ceff7b8ed45 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls @@ -37,14 +37,20 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsreport} - [2016/08/01 v1.2 BXJS document classes] -%% このファイルは日本語文字を含みます + [2016/08/16 v1.2a BXJS document classes] +%% このファイルは日本語文字を含みます. \RequirePackage{calc} \RequirePackage{keyval} \IfFileExists{bxjscompat.sty}{% \let\jsAtEndOfClass\@gobble \RequirePackage{bxjscompat}% }{} +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +\let\jsDocClass\jsReport +\def\bxjs@clsname{bxjsreport} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -52,6 +58,7 @@ \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} \bxjs@test@engine\kanjiskip{\let\jsEngine=j} \bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\Omegaversion{\let\jsEngine=O} \bxjs@test@engine\XeTeXversion{\let\jsEngine=x} \bxjs@test@engine\pdftexversion{\let\jsEngine=p} \bxjs@test@engine\luatexversion{\let\jsEngine=l} @@ -60,8 +67,20 @@ \jsWithupTeXtrue \fi\fi \let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWithpTeXng +\bxjs@test@engine\ngbanner{\jsWithpTeXngtrue} \newif\ifjsWitheTeX \bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\let\bxjs@tmpa\relax +\ifx J\jsEngine \def\bxjs@tmpa{NTT-jTeX}\fi +\ifx O\jsEngine \def\bxjs@tmpa{Omega}\fi +\ifx\bxjs@tmpa\relax \expandafter\@gobble +\else + \ClassError\@currname + {The engine in use (\bxjs@tmpa) is not supported} + {It's a fatal error. I'll quit right now.} + \expandafter\@firstofone +\fi{\endinput\@@end} \ifjsWitheTeX \let\bxjs@protected\protected \else \let\bxjs@protected\@empty \fi @@ -82,12 +101,6 @@ #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo \fi} -\let\jsArticle=a -\let\jsBook=b -\let\jsReport=r -\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 @@ -305,6 +318,13 @@ \DeclareOption{lualatex}{% \def\bxjs@engine@opt{lualatex}% \let\bxjs@engine@given=l} +\DeclareOption{platex-ng}{% + \def\bxjs@engine@opt{platex-ng}% + \let\bxjs@engine@given=g} +\DeclareOption{platex-ng*}{% + \def\bxjs@engine@opt{platex-ng*}% + \let\bxjs@platexng@nodrv=t% + \let\bxjs@engine@given=g} \let\bxjs@driver@@dvimode=0 \let\bxjs@driver@@dvipdfmx=1 \let\bxjs@driver@@pdfmode=2 @@ -376,9 +396,19 @@ \setkeys{#1}{#2}% \let\KV@errx\bxjs@KV@errx} \def\bxjs@safe@setkeys@a#1{} +\def\bxjs@set@keyval#1#2#3{% + \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname + \ifx\bxjs@next\relax + \bxjs@error@keyval{#1}{#2}% + #3% + \else \bxjs@next + \fi} +\@onlypreamble\bxjs@error@keyval +\def\bxjs@error@keyval#1#2{% + \ClassError\bxjs@clsname + {Invalid value '#2' for option #1}\@ehc} \newif\ifbxjs@scaleset \def\jsScale{0.924715} -\def\Cjascale{\jsScale} \define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} \@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax @@ -418,6 +448,9 @@ \ifx l\jsEngine \ifnum\luatexversion>86 \let\bxjs@magstyle@default\bxjs@magstyle@xreal \fi\fi +\ifjsWithpTeXng + \let\bxjs@magstyle@default\bxjs@magstyle@xreal +\fi \let\bxjs@magstyle\bxjs@magstyle@default \define@key{bxjs}{magstyle}{% \expandafter\let\expandafter\bxjs@magstyle\csname @@ -438,6 +471,11 @@ {Invalid geometry value `#1'}\@ehc \let\bxjs@geometry\bxjs@geometry@class \fi} +\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse +\define@key{bxjs}{fancyhdr}{% + \bxjs@set@keyval{fancyhdr}{#1}{}} \newif\ifbxjs@dvi@opt \let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx \let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvimode @@ -454,6 +492,29 @@ \let\bxjs@driver@given\@undefined \bxjs@dvi@opttrue \fi} +\newif\ifbxjs@layout@buggyhmargin \bxjs@layout@buggyhmargintrue +\@namedef{bxjs@kv@layout@v1}{% + \bxjs@layout@buggyhmargintrue} +\@namedef{bxjs@kv@layout@v2}{% + \bxjs@layout@buggyhmarginfalse} +\define@key{bxjs}{layout}{% + \bxjs@set@keyval{layout}{#1}{}} +\define@key{bxjs}{textwidth-limit}{% + \edef\bxjs@textwidth@limit{#1}} +\define@key{bxjs}{paragraph-mark}{% + \edef\bxjs@paragraph@mark{#1}} +\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse +\define@key{bxjs}{whole-zw-lines}{\bxjs@set@keyval{wholezwlines}{#1}{}} +\newif\ifbxjs@dummy@microtype \bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@true\bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@false\bxjs@dummy@microtypefalse +\define@key{bxjs}{dummy-microtype}{\bxjs@set@keyval{dummymicrotype}{#1}{}} +\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse +\define@key{bxjs}{hyperref-enc}{\bxjs@set@keyval{hyperrefenc}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -485,10 +546,15 @@ {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement {10pt}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {noscale}\@classoptionslist\@classoptionslist \ifx\bxjs@jadriver\relax\else \let\bxjs@jadriver@given\bxjs@jadriver \fi \let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithpTeXng + \let\bxjs@tmpb=g +\fi\fi \ifx j\bxjs@tmpb\ifjsWithupTeX \let\bxjs@tmpb=u \fi\fi @@ -509,6 +575,9 @@ {Option `\bxjs@engine@opt' used on wrong engine}\@ehc \fi \fi +\ifjsWithpTeXng + \g@addto@macro\@classoptionslist{,uplatex} +\fi \@tempswatrue \ifx \bxjs@driver@given\@undefined\else \ifjsInPdfMode @@ -525,6 +594,9 @@ \else\ifx\bxjs@driver@given\bxjs@driver@@xetex \@tempswafalse \fi\fi + \ifjsWithpTeXng\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx\else + \@tempswafalse + \fi\fi \fi\fi \fi \if@tempswa\else @@ -533,8 +605,9 @@ \fi \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse +\else\ifjsWithpTeXng \@tempswafalse \else \@tempswatrue -\fi\fi +\fi\fi\fi \if@tempswa \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@given\@undefined\else \ClassWarningNoLine\bxjs@clsname @@ -549,6 +622,13 @@ }\bxjs@nxt \fi \fi +\ifjsWithpTeXng + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \let\bxjs@platexng@nodrv\@undefined + \else\ifx t\bxjs@platexng@nodrv\else + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi\fi +\fi \def\bxjs@@minimal{minimal} \ifx\bxjs@jadriver\relax \ifx j\jsEngine @@ -574,6 +654,7 @@ \fi \fi \bxjs@do@opt@jbase +\let\Cjascale\jsScale \if@slide \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} \fi @@ -594,7 +675,7 @@ \fi \g@addto@macro\@classoptionslist{,nosetpagesize} \ifbxjs@oldfontcommands - \jsAtEndOfClass{\allowoldfontcommands} + \AtEndOfClass{\allowoldfontcommands} \fi \ifdim\bxjs@param@basefontsize<10pt \def\n@baseline{15}% \else \def\n@baseline{16}\fi @@ -887,7 +968,8 @@ \bxjs@postproc@layout \@onlypreamble\bxjs@pre@geometry@hook \def\bxjs@pre@geometry@hook{% - \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{% + \@ifpackageloaded{geometry}{% + \@ifpackagelater{geometry}{2010/02/12}{}{%else \PackageWarningNoLine\bxjs@clsname {The 'geometry' package installed\MessageBreak is too old (< v5.0)}% @@ -896,7 +978,13 @@ \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi \fi\fi - }}{}} + }% + \ifjsWithpTeXng + \ifx\Gm@driver\@empty + \def\Gm@driver{pdftex}% + \fi + \fi + }{}} \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} \def\bxjs@modify@layout#1{% @@ -1414,6 +1502,9 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\ifx\bxjs@paragraph@mark\@undefined\else + \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs@paragraph@mark}} +\fi \let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls index d0c10a719b6..f417271dc08 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls @@ -37,14 +37,20 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsslide} - [2016/08/01 v1.2 BXJS document classes] -%% このファイルは日本語文字を含みます + [2016/08/16 v1.2a BXJS document classes] +%% このファイルは日本語文字を含みます. \RequirePackage{calc} \RequirePackage{keyval} \IfFileExists{bxjscompat.sty}{% \let\jsAtEndOfClass\@gobble \RequirePackage{bxjscompat}% }{} +\let\jsArticle=a +\let\jsBook=b +\let\jsReport=r +\let\jsSlide=s +\let\jsDocClass\jsSlide +\def\bxjs@clsname{bxjsslide} \let\jsEngine=n \def\bxjs@test@engine#1#2{% \edef\bxjs@tmpa{\string#1}% @@ -52,6 +58,7 @@ \ifx\bxjs@tmpa\bxjs@tmpb #2\fi} \bxjs@test@engine\kanjiskip{\let\jsEngine=j} \bxjs@test@engine\jintercharskip{\let\jsEngine=J} +\bxjs@test@engine\Omegaversion{\let\jsEngine=O} \bxjs@test@engine\XeTeXversion{\let\jsEngine=x} \bxjs@test@engine\pdftexversion{\let\jsEngine=p} \bxjs@test@engine\luatexversion{\let\jsEngine=l} @@ -60,8 +67,20 @@ \jsWithupTeXtrue \fi\fi \let\if@jsc@uplatex\ifjsWithupTeX +\newif\ifjsWithpTeXng +\bxjs@test@engine\ngbanner{\jsWithpTeXngtrue} \newif\ifjsWitheTeX \bxjs@test@engine\eTeXversion{\jsWitheTeXtrue} +\let\bxjs@tmpa\relax +\ifx J\jsEngine \def\bxjs@tmpa{NTT-jTeX}\fi +\ifx O\jsEngine \def\bxjs@tmpa{Omega}\fi +\ifx\bxjs@tmpa\relax \expandafter\@gobble +\else + \ClassError\@currname + {The engine in use (\bxjs@tmpa) is not supported} + {It's a fatal error. I'll quit right now.} + \expandafter\@firstofone +\fi{\endinput\@@end} \ifjsWitheTeX \let\bxjs@protected\protected \else \let\bxjs@protected\@empty \fi @@ -82,12 +101,6 @@ #1\expandafter\@firstoftwo \else\expandafter\@secondoftwo \fi} -\let\jsArticle=a -\let\jsBook=b -\let\jsReport=r -\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 @@ -301,6 +314,13 @@ \DeclareOption{lualatex}{% \def\bxjs@engine@opt{lualatex}% \let\bxjs@engine@given=l} +\DeclareOption{platex-ng}{% + \def\bxjs@engine@opt{platex-ng}% + \let\bxjs@engine@given=g} +\DeclareOption{platex-ng*}{% + \def\bxjs@engine@opt{platex-ng*}% + \let\bxjs@platexng@nodrv=t% + \let\bxjs@engine@given=g} \let\bxjs@driver@@dvimode=0 \let\bxjs@driver@@dvipdfmx=1 \let\bxjs@driver@@pdfmode=2 @@ -372,9 +392,19 @@ \setkeys{#1}{#2}% \let\KV@errx\bxjs@KV@errx} \def\bxjs@safe@setkeys@a#1{} +\def\bxjs@set@keyval#1#2#3{% + \expandafter\let\expandafter\bxjs@next\csname bxjs@kv@#1@#2\endcsname + \ifx\bxjs@next\relax + \bxjs@error@keyval{#1}{#2}% + #3% + \else \bxjs@next + \fi} +\@onlypreamble\bxjs@error@keyval +\def\bxjs@error@keyval#1#2{% + \ClassError\bxjs@clsname + {Invalid value '#2' for option #1}\@ehc} \newif\ifbxjs@scaleset \def\jsScale{0.924715} -\def\Cjascale{\jsScale} \define@key{bxjs}{base}{\bxjs@setbasefontsize{#1}} \@onlypreamble\bxjs@do@opt@jbase \let\bxjs@do@opt@jbase\relax @@ -414,6 +444,9 @@ \ifx l\jsEngine \ifnum\luatexversion>86 \let\bxjs@magstyle@default\bxjs@magstyle@xreal \fi\fi +\ifjsWithpTeXng + \let\bxjs@magstyle@default\bxjs@magstyle@xreal +\fi \let\bxjs@magstyle\bxjs@magstyle@default \define@key{bxjs}{magstyle}{% \expandafter\let\expandafter\bxjs@magstyle\csname @@ -434,6 +467,11 @@ {Invalid geometry value `#1'}\@ehc \let\bxjs@geometry\bxjs@geometry@class \fi} +\newif\ifbxjs@fancyhdr \bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@true\bxjs@fancyhdrtrue +\let\bxjs@kv@fancyhdr@false\bxjs@fancyhdrfalse +\define@key{bxjs}{fancyhdr}{% + \bxjs@set@keyval{fancyhdr}{#1}{}} \newif\ifbxjs@dvi@opt \let\bxjs@dvidriver@@dvipdfmx=\bxjs@driver@@dvipdfmx \let\bxjs@dvidriver@@dvips=\bxjs@driver@@dvimode @@ -450,6 +488,29 @@ \let\bxjs@driver@given\@undefined \bxjs@dvi@opttrue \fi} +\newif\ifbxjs@layout@buggyhmargin \bxjs@layout@buggyhmargintrue +\@namedef{bxjs@kv@layout@v1}{% + \bxjs@layout@buggyhmargintrue} +\@namedef{bxjs@kv@layout@v2}{% + \bxjs@layout@buggyhmarginfalse} +\define@key{bxjs}{layout}{% + \bxjs@set@keyval{layout}{#1}{}} +\define@key{bxjs}{textwidth-limit}{% + \edef\bxjs@textwidth@limit{#1}} +\define@key{bxjs}{paragraph-mark}{% + \edef\bxjs@paragraph@mark{#1}} +\newif\ifbxjs@whole@zw@lines \bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue +\let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse +\define@key{bxjs}{whole-zw-lines}{\bxjs@set@keyval{wholezwlines}{#1}{}} +\newif\ifbxjs@dummy@microtype \bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@true\bxjs@dummy@microtypetrue +\let\bxjs@kv@dummymicrotype@false\bxjs@dummy@microtypefalse +\define@key{bxjs}{dummy-microtype}{\bxjs@set@keyval{dummymicrotype}{#1}{}} +\newif\ifbxjs@hyperref@enc \bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@true\bxjs@hyperref@enctrue +\let\bxjs@kv@hyperrefenc@false\bxjs@hyperref@encfalse +\define@key{bxjs}{hyperref-enc}{\bxjs@set@keyval{hyperrefenc}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -481,10 +542,15 @@ {papersize}\@classoptionslist\@classoptionslist \@expandtwoargs\@removeelement {10pt}\@classoptionslist\@classoptionslist +\@expandtwoargs\@removeelement + {noscale}\@classoptionslist\@classoptionslist \ifx\bxjs@jadriver\relax\else \let\bxjs@jadriver@given\bxjs@jadriver \fi \let\bxjs@tmpb\jsEngine +\ifx j\bxjs@tmpb\ifjsWithpTeXng + \let\bxjs@tmpb=g +\fi\fi \ifx j\bxjs@tmpb\ifjsWithupTeX \let\bxjs@tmpb=u \fi\fi @@ -505,6 +571,9 @@ {Option `\bxjs@engine@opt' used on wrong engine}\@ehc \fi \fi +\ifjsWithpTeXng + \g@addto@macro\@classoptionslist{,uplatex} +\fi \@tempswatrue \ifx \bxjs@driver@given\@undefined\else \ifjsInPdfMode @@ -521,6 +590,9 @@ \else\ifx\bxjs@driver@given\bxjs@driver@@xetex \@tempswafalse \fi\fi + \ifjsWithpTeXng\ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx\else + \@tempswafalse + \fi\fi \fi\fi \fi \if@tempswa\else @@ -529,8 +601,9 @@ \fi \ifjsInPdfMode \@tempswafalse \else\ifx x\jsEngine \@tempswafalse +\else\ifjsWithpTeXng \@tempswafalse \else \@tempswatrue -\fi\fi +\fi\fi\fi \if@tempswa \ifx\bxjs@driver@opt\@undefined \ifx\bxjs@jadriver@given\@undefined\else \ClassWarningNoLine\bxjs@clsname @@ -545,6 +618,13 @@ }\bxjs@nxt \fi \fi +\ifjsWithpTeXng + \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx + \let\bxjs@platexng@nodrv\@undefined + \else\ifx t\bxjs@platexng@nodrv\else + \g@addto@macro\@classoptionslist{,dvipdfmx} + \fi\fi +\fi \def\bxjs@@minimal{minimal} \ifx\bxjs@jadriver\relax \ifx j\jsEngine @@ -570,6 +650,7 @@ \fi \fi \bxjs@do@opt@jbase +\let\Cjascale\jsScale \if@slide \def\maybeblue{\@ifundefined{ver@color.sty}{}{\color{blue}}} \fi @@ -590,7 +671,7 @@ \fi \g@addto@macro\@classoptionslist{,nosetpagesize} \ifbxjs@oldfontcommands - \jsAtEndOfClass{\allowoldfontcommands} + \AtEndOfClass{\allowoldfontcommands} \fi \def\n@baseline{13}% \newif\ifbxjs@nfss@patch @@ -881,7 +962,8 @@ \bxjs@postproc@layout \@onlypreamble\bxjs@pre@geometry@hook \def\bxjs@pre@geometry@hook{% - \@ifpackageloaded{geometry}{\@ifpackagelater{geometry}{2010/02/12}{}{% + \@ifpackageloaded{geometry}{% + \@ifpackagelater{geometry}{2010/02/12}{}{%else \PackageWarningNoLine\bxjs@clsname {The 'geometry' package installed\MessageBreak is too old (< v5.0)}% @@ -890,7 +972,13 @@ \ifx\pdfhorigin\@undefined \newdimen\pdfhorigin \fi \ifx\pdfvorigin\@undefined \newdimen\pdfvorigin \fi \fi\fi - }}{}} + }% + \ifjsWithpTeXng + \ifx\Gm@driver\@empty + \def\Gm@driver{pdftex}% + \fi + \fi + }{}} \def\setpagelayout{\@ifstar {\bxjs@reset@layout}{\bxjs@modify@layout}} \def\bxjs@modify@layout#1{% @@ -1323,6 +1411,9 @@ {\normalfont\normalsize\headfont}} \fi \newcommand\jsParagraphMark{\jsJaChar{■}} +\ifx\bxjs@paragraph@mark\@undefined\else + \long\edef\jsParagraphMark{\noexpand\jsJaChar{\bxjs@paragraph@mark}} +\fi \let\jsJaChar\@empty \if@twocolumn \newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% -- cgit v1.2.3