diff options
17 files changed, 603 insertions, 138 deletions
diff --git a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md index 632f511bb23..233304ee1bc 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README-ja.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README-ja.md @@ -98,6 +98,11 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使 更新履歴 -------- + * Version 1.7 〈2017/10/21〉 + - 和文空白命令(`\jaenspace` 等)を追加。 + - `everyparhook` オプションを新設。 + * Version 1.6b 〈2017/09/28〉 + - Pandoc モードでは bxcjkjatype に autotilde を付けない。 * Version 1.6a 〈2017/09/24〉 - `bxjspandoc` パッケージを新設。 - Pandoc モードで起こる細かい不具合に対処した。 diff --git a/Master/texmf-dist/doc/latex/bxjscls/README.md b/Master/texmf-dist/doc/latex/bxjscls/README.md index fc1c3498fce..8fa22da1b0e 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/README.md +++ b/Master/texmf-dist/doc/latex/bxjscls/README.md @@ -88,6 +88,8 @@ This package is distributed under the BSD 2-Clause License. Revision History ---------------- + * Version 1.7 〈2017/10/21〉 + * Version 1.6b 〈2017/09/28〉 * Version 1.6a 〈2017/09/24〉 * Version 1.6 〈2017/09/09〉 - Sync with jsclasses 2017/09/03. diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf Binary files differindex d1734bf43f9..c6e7e21685b 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.pdf diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex index 6e0ce1aa1d0..4b05743e5a1 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls-manual.tex @@ -12,13 +12,14 @@ \renewcommand*{\XeLaTeX}{XeLaTeX}} \usepackage{shortvrb} \MakeShortVerb{\|} -\newcommand{\PkgVersion}{1.6a} -\newcommand{\PkgDate}{2017/09/24} +\newcommand{\PkgVersion}{1.7} +\newcommand{\PkgDate}{2017/10/21} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} \newcommand{\Means}{:\ } \newcommand{\jemph}{\textsf} +\newcommand{\wbr}{\linebreak[0]} \providecommand{\pTeX}{p\TeX} \providecommand{\pLaTeX}{p\LaTeX} \providecommand{\upTeX}{u\pTeX} @@ -790,9 +791,13 @@ JSクラスには無くBXJSクラスで追加されたクラスオプション \Pkg{hyperref}パッケージについて 「PDF文字列の文字コード設定を補正する処理」 を行うか否か。 -\item |xkanjiskip-cmd=|\Meta{真偽値}\Means - |\>| を和欧文間空白を挿入する命令として定義するか否か。 +\item |jaspace-cmd=|\Meta{真偽値}\Means + 以下に挙げる和文空白命令を定義するか否か。 (詳しくは\ref{ssec:ja-settings}節を参照。) + \begin{quote} + |\jaenspace|、|\jathinspace|、|\>|、 + |\_|(|\|\,+\,全角空白) + \end{quote} \item |layout=|\Meta{値}\Means レイアウトの変種を選択する。 現状では、過去の版との互換性を維持するために用いられている。 @@ -1234,6 +1239,14 @@ vscale=0.944, vmarginratio=1:1 ただし |nozw| 指定時は定義されない。 \item |\zwspace|\Means 全角(|\jsZw|)幅の水平空き。 +\item |\_|(|\|\,の後に全角空白文字)\Means + |\zwspace| の別名。 + 全角幅の水平空き。 + \Note \Pkg{jlreq}クラスと互換の命令。 + ただしBXJSクラスはJLREQの和字間隔の規定とは無関係であり、 + この命令は単純に |\hspace|\wbr|{\jsZw}| と等価である。 +\item |\jaenspace|\Means + 半角(0.5|\jsZw|)幅の水平空き。 \end{itemize} \subsubsection{standard和文ドライバの場合} @@ -1286,15 +1299,18 @@ standard和文ドライバ(およびそれを継承するドライバ)では \item |\autospacing|/|\noautospacing|\Means 和文間空白の挿入を有効/無効にする。 {\pLaTeX}の同名の命令と同等。 +\item |\jathinspace|\Means + 和欧文間空白を挿入する。 \item |\>|\Means - 和欧文間空白を挿入する。% + (非数式モードで \footnote{|\>| という命令名は、plain {\TeX}では数式中の空白 ({\LaTeX}の |\:| と同等)を表す。 このため、実際には{\LaTeX}でも |\>| は |\:| と同等の命令として 定義されている。 この「plain互換の |\>|」を利用したコードが影響を受けるのを避ける - ため、数式中では |\>| は従来通り |\:| と同等の動作を行う。} - ただし |xkanjiskip-cmd=false| 指定時は定義されない。% + ため、数式中では |\>| は従来通り |\:| と同等の動作を行う。}% + )和欧文間空白を挿入する。 + \Note |jaspace-cmd=false| 指定時は定義されない。% \footnote{ただし、standard和文ドライバで自動的に読み込まれる \Pkg{zxjatype}や\Pkg{bxcjkjatype}のパッケージは、 それ自体が同様の機能の |\>| を提供することにも注意を要する。} diff --git a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf Binary files differindex 56b97c79314..71ab0d79c95 100644 --- a/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf +++ b/Master/texmf-dist/doc/latex/bxjscls/bxjscls.pdf diff --git a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx index 0e9f43cea11..d0a7daf8242 100644 --- a/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx +++ b/Master/texmf-dist/source/latex/bxjscls/bxjscls.dtx @@ -68,7 +68,9 @@ %<*driver> \ProvidesFile{bxjscls.dtx} %</driver> - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] +% [2017/09/28 v1.6b BXJS document classes] +% [2017/09/24 v1.6a BXJS document classes] % [2017/09/09 v1.6 BXJS document classes] % based on jsclasses [2017/09/03] % [2017/07/07 v1.5d BXJS document classes] @@ -1788,13 +1790,14 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\ifbxjs@xkanjiskip@cmd} -% 〔スイッチ〕 |xkanjiskip-cmd| の指定値。 +% \begin{macro}{\ifbxjs@jaspace@cmd} +% 〔スイッチ〕 |jaspace-cmd| の指定値。 % \begin{macrocode} -\newif\ifbxjs@xkanjiskip@cmd \bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@true\bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@false\bxjs@xkanjiskip@cmdfalse -\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{xkanjiskipcmd}{#1}{}} +\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse +\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}} +\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}} % \end{macrocode} % \end{macro} % @@ -1808,6 +1811,24 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\bxjs@everyparhook} +% |everyparhook| の指定値。 +% \begin{macrocode} +\chardef\bxjs@everyparhook@none=0 +\chardef\bxjs@everyparhook@compat=1 +\chardef\bxjs@everyparhook@modern=2 +\if j\jsEngine + \let\bxjs@everyparhook\bxjs@everyparhook@compat +\else + \let\bxjs@everyparhook\bxjs@everyparhook@modern +\fi +\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none} +\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat} +\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern} +\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}} +% \end{macrocode} +% \end{macro} +% % \end{ZRnote} % % \paragraph{オプションの実行} @@ -4574,6 +4595,19 @@ % 前のアキがちょうどゼロの場合にもうまくいくように,多少変えてあります。 % |\everyparhook| も挿入しています。 % +% \begin{ZRnote} +% |\everyparhook| の挿入は |everyparhook=compat| の時のみ行う。 +% \begin{macro}{\bxjs@if@ceph} +% |everyparhook=compat| である場合にのみ直後のトークンを実行する。 +% \begin{macrocode} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \let\bxjs@if@ceph\@firstofone +\else \let\bxjs@if@ceph\@gobble +\fi +% \end{macrocode} +% \end{macro} +% \end{ZRnote} +% % \begin{macrocode} \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth @@ -4636,11 +4670,10 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa - \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty - \everypar{\everyparhook}% - \fi\everyparhook}% + \everypar\expandafter{\bxjs@if@ceph\everyparhook}% + \fi\bxjs@if@ceph\everyparhook}% \else \par \nobreak \vskip \@tempskipa @@ -4667,14 +4700,6 @@ \@xsect{#3}} % \end{macrocode} % -% \begin{ZRnote} -% 上記の定義中の |\bxjs@ltj@inhibitglue| は{Lua\TeX-ja}で -% 用いられるフック。 -% \begin{macrocode} -\let\bxjs@ltj@inhibitglue\@empty -% \end{macrocode} -% \end{ZRnote} -% % \paragraph{柱関係の命令} % % \begin{macro}{\chaptermark} @@ -7170,7 +7195,9 @@ % これの初期値を先述の |\jsInhibitGlueAtParTop| とする。 % \begin{macrocode} \def\everyparhook{\jsInhibitGlueAtParTop} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \AtBeginDocument{\everypar{\everyparhook}} +\fi % \end{macrocode} % \end{macro} % \end{ZRnote} @@ -7186,10 +7213,12 @@ % 高いので,専用の命令 |\jsc@ig@temp| に置き換えました(Issue \#54)。 % % \begin{ZRnote} -% \begin{macro}{\@inhibitglue} -% JSクラスでの |\jsInhibitGlueAtParTop| の実装。 -% (これは{(u)\pTeX}専用である。) +% 次の |\@inhibitglue| はJSクラスでの |\jsInhibitGlueAtParTop| の +% 実装である。 +% エンジンが |(u)platex| の場合はこれを採用する。 +% \end{ZRnote} % \begin{macrocode} +\ifx j\jsEngine \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \begingroup @@ -7217,10 +7246,18 @@ \inhibitglue \fi \fi} +\fi % \end{macrocode} -% \end{macro} % +% \begin{ZRnote} +% ここからしばらく +% 「(本物の)|\everypar| に追加した |\everyparhook| を保持する」 +% ためのパッチ処理が続く。 +% これは、|everyparhook=compat| の場合にのみ実行する。 % \end{ZRnote} +% \begin{macrocode} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat +% \end{macrocode} % % これだけではいけないようです。あちこちに |\everypar| を初期化するコマンドが % 隠されていました。 @@ -7293,7 +7330,6 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi - \bxjs@ltj@inhibitglue \everyparhook}% \if@noitemarg \@noitemargfalse @@ -7335,6 +7371,13 @@ \fi\everyparhook}} % \end{macrocode} % +% \begin{ZRnote} +% 「|\everyparhook| 用のパッチ処理」はここまで。 +% \end{ZRnote} +% \begin{macrocode} +\fi +% \end{macrocode} +% % |\@gnewline| についてはちょっと複雑な心境です。 % もともとのp\LaTeXe は段落の頭にグルーが入る方で統一されていました。 % しかし |\\| の直後にはグルーが入らず,不統一でした。 @@ -7344,7 +7387,13 @@ % % しかし単に戻すだけでも駄目みたいなので,ここでも最後にグルーを消しておきます。 % +% \begin{ZRnote} +% \Note |luatexja| を読みこんだ場合に lltjcore.sty によって上書きされる +% のを防ぐため遅延させる。 +% \end{ZRnote} % \begin{macrocode} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else +\AtEndOfPackage{% \def\@gnewline #1{% \ifvmode \@nolnerr @@ -7352,6 +7401,8 @@ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null \jsInhibitGlue \ignorespaces \fi} +} +\fi % \end{macrocode} % % \section{いろいろなロゴ} @@ -8233,6 +8284,43 @@ \fi % \end{macrocode} % +% \paragraph{段落頭でのグルー挿入禁止} +% +% \begin{macro}{\bxjs@check@everyparhook} +% 本体開始時において |\everyparhook| を検査して、 +% “結局何もしない”ことになっている場合は、 +% 副作用を完全に無くすために |\everyparhook| を空にする。 +% \begin{macrocode} +\@onlypreamble\bxjs@check@everyparhook +\def\bxjs@check@everyparhook{% + \ifx\jsInhibitGlueAtParTop\@empty + \def\bxjs@tmpa{\jsInhibitGlueAtParTop}% + \ifx\everyparhook\bxjs@tmpa + \let\everyparhook\@empty + \fi + \fi} +\AtBeginDocument{\bxjs@check@everyparhook} +% \end{macrocode} +% \end{macro} +% +% |everyparhook=modern| の場合の、|\everyparhook| の有効化の実装。 +% \Note 本体開始時ではなく最初から有効化していることに注意。 +% \begin{macrocode} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@modern +% \end{macrocode} +% まず |\everypar| を“乗っ取る”処理を行う。 +% \begin{macrocode} + \let\bxjs@everypar\everypar + \newtoks\everypar + \everypar\bxjs@everypar +% \end{macrocode} +% そして本物の |\everypar| では、最後で常に |\everyparhook| が実行される +% ようにする。 +% \begin{macrocode} + \bxjs@everypar{\the\expandafter\everypar\everyparhook}% +\fi +% \end{macrocode} +% % \paragraph{fancyhdr対策} % |fancyhdr| オプションの値が |true| であり、 % かつ |fancyhdr| が使用された場合に以下の対策を行う。 @@ -8312,6 +8400,54 @@ \global\let\bxjs@pagestyle@hook\relax} % \end{macrocode} % +% \paragraph{和文空白命令} +% \begin{macrocode} +\ifbxjs@jaspace@cmd +% \end{macrocode} +% +% \begin{macro}{\jaenspace} +% 半角幅の水平空き。 +% \begin{macrocode} + \def\jaenspace{\hskip.5\jsZw\relax} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jathinspace} +% 和欧文間空白を入れるユーザ命令。 +% \Note minimalではダミー定義。 +% \begin{macrocode} + \def\jathinspace{\hskip\z@skip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\_} +% 全角空白文字1つからなる名前の制御綴。 +% |\zwspace| と等価になる。 +% \begin{macrocode} + \def\ {\zwspace} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\jaspace} +% |jlreq| クラスと互換の命令。 +% \begin{macrocode} + \DeclareRobustCommand*{\jaspace}[1]{% + \expandafter\ifx\csname bxjs@jaspace@@#1\endcsname\relax + \ClassError\bxjs@clsname + {Unknown jaspace: #1}{\@eha}% + \else + \csname bxjs@jaspace@@#1\endcsname + \fi} + \def\bxjs@jaspace@@zenkaku{\hskip 1\jsZw\relax} + \def\bxjs@jaspace@@nibu{\hskip .5\jsZw\relax} + \def\bxjs@jaspace@@shibu{\hskip .25\jsZw\relax} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\fi +% \end{macrocode} +% % 終わり。 % \begin{macrocode} \fi @@ -8801,6 +8937,39 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\jsCheckHyperrefUnicode} +% 「|hyperref| の |unicode| オプションの値を検証する」ための +% 本体開始時のフック。 +% \begin{macrocode} +\@onlypreamble\jsCheckHyperrefUnicode +\let\jsCheckHyperrefUnicode\@empty +\AtBeginDocument{\jsCheckHyperrefUnicode} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bxjs@check@hyperref@unicode} +% |hyperref| の |unicode| オプションの値を本体開始時に検証する。 +% \begin{macrocode} +\@onlypreamble\bxjs@check@hyperref@unicode +\def\bxjs@check@hyperref@unicode#1{% + \g@addto@macro\jsCheckHyperrefUnicode{% + \@tempswafalse + \begingroup + \expandafter\ifx\csname ifHy@unicode\endcsname\relax + \aftergroup\@tempswatrue \fi + \expandafter\ifx\csname ifHy@unicode\expandafter\endcsname + \csname if#1\endcsname + \aftergroup\@tempswatrue \fi + \endgroup + \if@tempswa\else + \ClassError\bxjs@clsname + {The value of hyperref 'unicode' key is not suitable\MessageBreak + for the present engine (must be #1)}% + {\@ehc}% + \fi}} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\bxjs@urgent@special} % DVIのなるべく早い位置にspecialを出力する。 % \begin{macrocode} @@ -8879,16 +9048,10 @@ \fi % \end{macrocode} % -% 和欧文間空白の命令 |\>| の実装。 +% 和欧文間空白の命令 |\jathinspace| の実装。 % \begin{macrocode} -\ifbxjs@xkanjiskip@cmd - \def\bxjs@put@xkanjiskip{% - \relax\ifmmode \mskip\medmuskip - \else \hskip\xkanjiskip - \fi} - \ifjsWitheTeX \protected\def\>{\bxjs@put@xkanjiskip} - \else \def\>{\protect\bxjs@put@xkanjiskip} - \fi +\ifbxjs@jaspace@cmd + \def\jathinspace{\hskip\xkanjiskip} \fi % \end{macrocode} % @@ -8970,7 +9133,7 @@ % |unicode| にしてはいけない。 % \begin{macrocode} \ifbxjs@hyperref@enc - \bxjs@fix@hyperref@unicode{false} + \bxjs@check@hyperref@unicode{false} \fi % \end{macrocode} % @@ -9034,10 +9197,14 @@ % オプション(プリセット指定)に渡す。 % (|auto| ならば |\bxjs@get@kanjiEmbed| を実行する。) % スケール値(|\jsScale|)の反映は bxcjkjatype の側で行われる。 +% \Note Pandocモードでは |autotilde| を指定しない。 % \begin{macrocode} \bxjs@adjust@jafont{f} \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa\bxjs@jp@font} -\edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{whole,autotilde}} +\edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{whole}} +\def\bxjs@tmpb{pandoc}\ifx\bxjs@tmpb\bxjs@jadriver\else + \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{autotilde}} +\fi \edef\bxjs@next{% \noexpand\RequirePackage[\bxjs@tmpa]{bxcjkjatype}[2013/10/15]% v0.2c }\bxjs@next @@ -9119,11 +9286,10 @@ \CJKforced{#1}} % \end{macrocode} % -% |\>| は |bxcjkjatype| で定義されているが、保護付のマクロに変換する。 +% 和欧文間空白の命令 |\jathinspace| の実装。 % \begin{macrocode} -\ifbxjs@xkanjiskip@cmd - \protected\def\>{% - \relax\ifmmode \mskip\medmuskip \else \CJKecglue\ignorespaces \fi} +\ifbxjs@jaspace@cmd + \protected\def\jathinspace{\CJKecglue} \fi % \end{macrocode} % @@ -9213,8 +9379,19 @@ % 近いものが得られるらしい。 % % 従って、|\jsInhibitGlueAtParTop| は結局何もしないことにする。 +% +% 強制改行直後のグルー禁止処理、のような怪しげな何か。 +% % \begin{macrocode} -\let\jsInhibitGlueAtParTop\@empty +\AtEndOfPackage{% +\def\@gnewline #1{% + \ifvmode \@nolnerr + \else + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \nobreak \hskip-1sp\hskip1sp\relax + \ignorespaces + \fi} +} % \end{macrocode} % % \paragraph{共通命令の実装} @@ -9255,12 +9432,10 @@ #1} % \end{macrocode} % -% |\>| は |zxjatype| で定義されているが、standardの仕様に合わせて変更する。 -% \Note 元は |\ignorespaces| でなく |\relax|(|\scan_stop:|)だった。 +% |\jathinspace| の実装。 % \begin{macrocode} -\ifbxjs@xkanjiskip@cmd - \protected\def\>{% - \relax\ifmmode \mskip\medmuskip \else \CJKecglue\ignorespaces \fi} +\ifbxjs@jaspace@cmd + \protected\def\jathinspace{\CJKecglue} \fi % \end{macrocode} % @@ -9375,20 +9550,53 @@ % % \paragraph{段落頭でのグルー挿入禁止} % +% 基本的に現状の |ltjs*| クラスの処理に合わせる。 +% \Note |\jsInhibitGlueAtParTop| は使わない。 +% +% \begin{macro}{\ltjfakeparbegin} +% 現在の{\LuaTeX-ja}で定義されているマクロで、 +% 段落中で段落冒頭用の処理を発動する。 +% 未定義である場合にに備えて同等のものを用意する。 % \begin{macrocode} -\protected\def\@inhibitglue{% - \directlua{% - luatexja.jfmglue.create_beginpar_node()}} -\let\bxjs@ltj@inhibitglue\@inhibitglue -\let\@@inhibitglue\@undefined +\ifx\ltjfakeparbegin\@undefined + \protected\def\ltjfakeparbegin{% + \ifhmode + \relax\directlua{% + luatexja.jfmglue.create_beginpar_node()}} + \fi} +\fi +% \end{macrocode} +% \end{macro} +% +% |ltjs*| クラスの定義と同等になるようにパッチを当てる。 +% \begin{macrocode} +\unless\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none +\begingroup + \let\%\@percentchar \def\@#1{[[\detokenize{#1}]]} + \@gobble\if\def\bxjs@tmpa{\@{\everypar{}\fi}} + \ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \@gobble\if\def\bxjs@tmpa{\@{\everypar{\everyparhook}\fi}}\fi + \directlua{ + local function patchcmd(cs, code, from, to) + tex.sprint(code:gsub(from:gsub("\%W", "\%\%\%0"), "\%0"..to) + :gsub("macro:", \@\gdef..cs, 1):gsub("->", "{", 1).."}") + end + patchcmd(\@\@xsect, [[\meaning\@xsect]], + \@{\hskip-\@tempskipa}, \@\ltjfakeparbegin) + patchcmd(\@\@item, [[\meaning\@item]], + \bxjs@tmpa, \@\ltjfakeparbegin)} +\endgroup +\fi % \end{macrocode} % % \paragraph{hyperref対策} % % |unicode| にするべき。 +% \Note 1.6c版より、固定ではなく既定設定+検証に切り替えた。 % \begin{macrocode} \ifbxjs@hyperref@enc - \bxjs@fix@hyperref@unicode{true} + \PassOptionsToPackage{unicode}{hyperref} + \bxjs@check@hyperref@unicode{true} \fi % \end{macrocode} % @@ -9415,13 +9623,11 @@ \ltjjachar`#1\relax} % \end{macrocode} % -% |\>| の実装。 +% |\jathinspace| の実装。 % \begin{macrocode} -\ifbxjs@xkanjiskip@cmd - \protected\def\>{% - \relax\ifmmode \mskip\medmuskip - \else \hskip\ltjgetparameter{xkanjiskip}\ignorespaces - \fi} +\ifbxjs@jaspace@cmd + \protected\def\jathinspace{% + \hskip\ltjgetparameter{xkanjiskip}\relax} \fi % \end{macrocode} % @@ -9472,6 +9678,24 @@ % \end{macro} % \end{macro} % +% \paragraph{和文空白命令} +% \begin{macro}{\>} +% 非数式中では |\jathinspace| と等価になるように再定義する。 +% \Note 数式中では従来通り(|\:| と等価)。 +% \begin{macrocode} +\ifbxjs@jaspace@cmd + \bxjs@protected\def\bxjs@choice@jathinspace{% + \relax\ifmmode \mskip\medmuskip + \else \jathinspace\ignorespaces + \fi} + \jsAtEndOfClass{% + \ifjsWitheTeX \let\>\bxjs@choice@jathinspace + \else \def\>{\protect\bxjs@choice@jathinspace}% + \fi} +\fi +% \end{macrocode} +% \end{macro} +% % \paragraph{和文・和欧文間空白の初期値} % % \begin{macrocode} @@ -9725,6 +9949,33 @@ % \end{macrocode} % %^^A---------------- +%\subsection{全角空白文字} +% +% \begin{macrocode} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>\z@ + \catcode"3000=\active + \begingroup \catcode`\!=7 + \protected\gdef!!!!3000{\zwspace} + \endgroup +\else\ifx\DeclareUnicodeCharacter\@undefined\else + \DeclareUnicodeCharacter{3000}{\bxjs@zsp@char} + \bxjs@protected\def\bxjs@zsp@char{\zwspace} +\fi\fi +% \end{macrocode} +% +%^^A---------------- +% \paragraph{hyperref対策} +% +% |hyperref| の |unicode| オプションの固定を行う。 +% \begin{macrocode} +\if j\jsEngine + \bxjs@fix@hyperref@unicode{false} +\else + \bxjs@fix@hyperref@unicode{true} +\fi +% \end{macrocode} +% +%^^A---------------- % \subsection{完了} % おしまい。 % \begin{macrocode} diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls index 7a22892d8e5..716134ef316 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsarticle} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます. \def\bxjs@clsname{bxjsarticle} \newif\ifjsc@needsp@tch @@ -541,14 +541,27 @@ \let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue \let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse \define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}} -\newif\ifbxjs@xkanjiskip@cmd \bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@true\bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@false\bxjs@xkanjiskip@cmdfalse -\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{xkanjiskipcmd}{#1}{}} +\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse +\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}} +\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#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}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}} +\chardef\bxjs@everyparhook@none=0 +\chardef\bxjs@everyparhook@compat=1 +\chardef\bxjs@everyparhook@modern=2 +\if j\jsEngine + \let\bxjs@everyparhook\bxjs@everyparhook@compat +\else + \let\bxjs@everyparhook\bxjs@everyparhook@modern +\fi +\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none} +\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat} +\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern} +\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -1323,6 +1336,10 @@ \@ifstar {\@ssect{#3}{#4}{#5}{#6}}% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \let\bxjs@if@ceph\@firstofone +\else \let\bxjs@if@ceph\@gobble +\fi \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \let\@svsec\@empty @@ -1370,11 +1387,10 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa - \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty - \everypar{\everyparhook}% - \fi\everyparhook}% + \everypar\expandafter{\bxjs@if@ceph\everyparhook}% + \fi\bxjs@if@ceph\everyparhook}% \else \par \nobreak \vskip \@tempskipa @@ -1399,7 +1415,6 @@ \endgroup \fi \@xsect{#3}} -\let\bxjs@ltj@inhibitglue\@empty \newcommand*\chaptermark[1]{} \setcounter{secnumdepth}{3} \newcounter{part} @@ -1989,7 +2004,10 @@ \llap{\@makefnmark\hskip0.3\jsZw}#1} \let\jsInhibitGlueAtParTop\@empty \def\everyparhook{\jsInhibitGlueAtParTop} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \AtBeginDocument{\everypar{\everyparhook}} +\fi +\ifx j\jsEngine \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \begingroup @@ -2017,6 +2035,8 @@ \inhibitglue \fi \fi} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \def\@doendpe{% \@endpetrue \def\par{% @@ -2069,7 +2089,6 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi - \bxjs@ltj@inhibitglue \everyparhook}% \if@noitemarg \@noitemargfalse @@ -2103,6 +2122,9 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi\everyparhook}} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else +\AtEndOfPackage{% \def\@gnewline #1{% \ifvmode \@nolnerr @@ -2110,6 +2132,8 @@ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null \jsInhibitGlue \ignorespaces \fi} +} +\fi \if@jslogo \IfFileExists{jslogo.sty}{% \RequirePackage{jslogo}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls index 5a89ea06886..819886cfca0 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsbook.cls @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsbook} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます. \def\bxjs@clsname{bxjsbook} \newif\ifjsc@needsp@tch @@ -550,14 +550,27 @@ \let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue \let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse \define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}} -\newif\ifbxjs@xkanjiskip@cmd \bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@true\bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@false\bxjs@xkanjiskip@cmdfalse -\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{xkanjiskipcmd}{#1}{}} +\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse +\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}} +\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#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}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}} +\chardef\bxjs@everyparhook@none=0 +\chardef\bxjs@everyparhook@compat=1 +\chardef\bxjs@everyparhook@modern=2 +\if j\jsEngine + \let\bxjs@everyparhook\bxjs@everyparhook@compat +\else + \let\bxjs@everyparhook\bxjs@everyparhook@modern +\fi +\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none} +\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat} +\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern} +\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -1350,6 +1363,10 @@ \@ifstar {\@ssect{#3}{#4}{#5}{#6}}% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \let\bxjs@if@ceph\@firstofone +\else \let\bxjs@if@ceph\@gobble +\fi \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \let\@svsec\@empty @@ -1397,11 +1414,10 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa - \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty - \everypar{\everyparhook}% - \fi\everyparhook}% + \everypar\expandafter{\bxjs@if@ceph\everyparhook}% + \fi\bxjs@if@ceph\everyparhook}% \else \par \nobreak \vskip \@tempskipa @@ -1426,7 +1442,6 @@ \endgroup \fi \@xsect{#3}} -\let\bxjs@ltj@inhibitglue\@empty \newcommand*\chaptermark[1]{} \setcounter{secnumdepth}{2} \newcounter{part} @@ -2096,7 +2111,10 @@ \llap{\@makefnmark\hskip0.3\jsZw}#1} \let\jsInhibitGlueAtParTop\@empty \def\everyparhook{\jsInhibitGlueAtParTop} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \AtBeginDocument{\everypar{\everyparhook}} +\fi +\ifx j\jsEngine \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \begingroup @@ -2124,6 +2142,8 @@ \inhibitglue \fi \fi} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \def\@doendpe{% \@endpetrue \def\par{% @@ -2176,7 +2196,6 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi - \bxjs@ltj@inhibitglue \everyparhook}% \if@noitemarg \@noitemargfalse @@ -2210,6 +2229,9 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi\everyparhook}} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else +\AtEndOfPackage{% \def\@gnewline #1{% \ifvmode \@nolnerr @@ -2217,6 +2239,8 @@ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null \jsInhibitGlue \ignorespaces \fi} +} +\fi \if@jslogo \IfFileExists{jslogo.sty}{% \RequirePackage{jslogo}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty index 8ac1d5150c5..473adb8082d 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscjkcat.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesPackage{bxjscjkcat} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 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 e72267bcb31..c36f490f226 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjscompat.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesPackage{bxjscompat} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 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 8b6e7326583..6e699799db0 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-minimal.def @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesFile{bxjsja-minimal.def} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます \def\DeclareJaTextFontCommand#1#2{% \DeclareRobustCommand#1[1]{% @@ -286,6 +286,21 @@ \bxjs@do@precisetext \fi \fi +\@onlypreamble\bxjs@check@everyparhook +\def\bxjs@check@everyparhook{% + \ifx\jsInhibitGlueAtParTop\@empty + \def\bxjs@tmpa{\jsInhibitGlueAtParTop}% + \ifx\everyparhook\bxjs@tmpa + \let\everyparhook\@empty + \fi + \fi} +\AtBeginDocument{\bxjs@check@everyparhook} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@modern + \let\bxjs@everypar\everypar + \newtoks\everypar + \everypar\bxjs@everypar + \bxjs@everypar{\the\expandafter\everypar\everyparhook}% +\fi \ifbxjs@fancyhdr \@onlypreamble\bxjs@adjust@fancyhdr \def\bxjs@adjust@fancyhdr{% @@ -323,6 +338,21 @@ \AtBeginDocument{% \bxjs@pagestyle@hook \global\let\bxjs@pagestyle@hook\relax} +\ifbxjs@jaspace@cmd + \def\jaenspace{\hskip.5\jsZw\relax} + \def\jathinspace{\hskip\z@skip} + \def\ {\zwspace} + \DeclareRobustCommand*{\jaspace}[1]{% + \expandafter\ifx\csname bxjs@jaspace@@#1\endcsname\relax + \ClassError\bxjs@clsname + {Unknown jaspace: #1}{\@eha}% + \else + \csname bxjs@jaspace@@#1\endcsname + \fi} + \def\bxjs@jaspace@@zenkaku{\hskip 1\jsZw\relax} + \def\bxjs@jaspace@@nibu{\hskip .5\jsZw\relax} + \def\bxjs@jaspace@@shibu{\hskip .25\jsZw\relax} +\fi \fi \endinput %% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def index 1d66deb3f7e..4e09f6d071f 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-modern.def @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesFile{bxjsja-modern.def} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 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 1412fa21374..73df73dec2a 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-pandoc.def @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesFile{bxjsja-pandoc.def} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] \input{bxjsja-standard.def} \RequirePackage{bxjspandoc} \@onlypreamble\bxjs@set@dupload@proc @@ -92,6 +92,20 @@ \if@tempswa\ifx\jsParagraphMark\bxjs@org@paragraph@mark \let\jsParagraphMark\@empty \fi\fi} +\ifnum0\if x\jsEngine1\fi\if l\jsEngine1\fi>\z@ + \catcode"3000=\active + \begingroup \catcode`\!=7 + \protected\gdef!!!!3000{\zwspace} + \endgroup +\else\ifx\DeclareUnicodeCharacter\@undefined\else + \DeclareUnicodeCharacter{3000}{\bxjs@zsp@char} + \bxjs@protected\def\bxjs@zsp@char{\zwspace} +\fi\fi +\if j\jsEngine + \bxjs@fix@hyperref@unicode{false} +\else + \bxjs@fix@hyperref@unicode{true} +\fi \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 3f9d1282d58..ad1a5222703 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsja-standard.def @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesFile{bxjsja-standard.def} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます \input{bxjsja-minimal.def} \bxjs@simplejasetupfalse @@ -235,6 +235,26 @@ }% }% } +\@onlypreamble\jsCheckHyperrefUnicode +\let\jsCheckHyperrefUnicode\@empty +\AtBeginDocument{\jsCheckHyperrefUnicode} +\@onlypreamble\bxjs@check@hyperref@unicode +\def\bxjs@check@hyperref@unicode#1{% + \g@addto@macro\jsCheckHyperrefUnicode{% + \@tempswafalse + \begingroup + \expandafter\ifx\csname ifHy@unicode\endcsname\relax + \aftergroup\@tempswatrue \fi + \expandafter\ifx\csname ifHy@unicode\expandafter\endcsname + \csname if#1\endcsname + \aftergroup\@tempswatrue \fi + \endgroup + \if@tempswa\else + \ClassError\bxjs@clsname + {The value of hyperref 'unicode' key is not suitable\MessageBreak + for the present engine (must be #1)}% + {\@ehc}% + \fi}} \@onlypreamble\bxjs@urgent@special \def\bxjs@urgent@special#1{% \AtBeginDvi{\special{#1}}% @@ -281,14 +301,8 @@ \bxUInt{\@tempcnta}% \fi} \fi -\ifbxjs@xkanjiskip@cmd - \def\bxjs@put@xkanjiskip{% - \relax\ifmmode \mskip\medmuskip - \else \hskip\xkanjiskip - \fi} - \ifjsWitheTeX \protected\def\>{\bxjs@put@xkanjiskip} - \else \def\>{\protect\bxjs@put@xkanjiskip} - \fi +\ifbxjs@jaspace@cmd + \def\jathinspace{\hskip\xkanjiskip} \fi \ifbxjs@jp@jismmiv \PassOptionsToPackage{prefer2004jis}{pxchfon} @@ -335,7 +349,7 @@ \endgroup} \@gtempa \ifbxjs@hyperref@enc - \bxjs@fix@hyperref@unicode{false} + \bxjs@check@hyperref@unicode{false} \fi \if \ifx\bxjs@driver@given\bxjs@driver@@dvipdfmx T% \else\ifjsWithpTeXng T\else F\fi\fi T% @@ -372,7 +386,10 @@ \else\if p\jsEngine \bxjs@adjust@jafont{f} \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa\bxjs@jp@font} -\edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{whole,autotilde}} +\edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{whole}} +\def\bxjs@tmpb{pandoc}\ifx\bxjs@tmpb\bxjs@jadriver\else + \edef\bxjs@tmpa{\bxjs@catopt\bxjs@tmpa{autotilde}} +\fi \edef\bxjs@next{% \noexpand\RequirePackage[\bxjs@tmpa]{bxcjkjatype}[2013/10/15]% v0.2c }\bxjs@next @@ -422,9 +439,8 @@ \let\CJKecglue\bxjs@CJKecglue} \def\bxjs@jachar#1{% \CJKforced{#1}} -\ifbxjs@xkanjiskip@cmd - \protected\def\>{% - \relax\ifmmode \mskip\medmuskip \else \CJKecglue\ignorespaces \fi} +\ifbxjs@jaspace@cmd + \protected\def\jathinspace{\CJKecglue} \fi \ifx t\bxjs@enablejfam \ClassWarningNoLine\bxjs@clsname @@ -455,7 +471,15 @@ \PassOptionsToPackage{unicode}{hyperref} \fi \fi -\let\jsInhibitGlueAtParTop\@empty +\AtEndOfPackage{% +\def\@gnewline #1{% + \ifvmode \@nolnerr + \else + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \nobreak \hskip-1sp\hskip1sp\relax + \ignorespaces + \fi} +} \newskip\jsKanjiSkip \newskip\jsXKanjiSkip \ifx\CJKecglue\@undefined @@ -480,9 +504,8 @@ \def\bxjs@jachar#1{% \xeCJKDeclareCharClass{CJK}{`#1}\relax #1} -\ifbxjs@xkanjiskip@cmd - \protected\def\>{% - \relax\ifmmode \mskip\medmuskip \else \CJKecglue\ignorespaces \fi} +\ifbxjs@jaspace@cmd + \protected\def\jathinspace{\CJKecglue} \fi \ifx t\bxjs@enablejfam \@enablejfamtrue @@ -530,13 +553,33 @@ \ltjsetparameter{jaxspmode={`〒,2}} \ltjsetparameter{alxspmode={`+,3}} \ltjsetparameter{alxspmode={`\%,3}} -\protected\def\@inhibitglue{% - \directlua{% - luatexja.jfmglue.create_beginpar_node()}} -\let\bxjs@ltj@inhibitglue\@inhibitglue -\let\@@inhibitglue\@undefined +\ifx\ltjfakeparbegin\@undefined + \protected\def\ltjfakeparbegin{% + \ifhmode + \relax\directlua{% + luatexja.jfmglue.create_beginpar_node()}} + \fi} +\fi +\unless\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none +\begingroup + \let\%\@percentchar \def\@#1{[[\detokenize{#1}]]} + \@gobble\if\def\bxjs@tmpa{\@{\everypar{}\fi}} + \ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \@gobble\if\def\bxjs@tmpa{\@{\everypar{\everyparhook}\fi}}\fi + \directlua{ + local function patchcmd(cs, code, from, to) + tex.sprint(code:gsub(from:gsub("\%W", "\%\%\%0"), "\%0"..to) + :gsub("macro:", \@\gdef..cs, 1):gsub("->", "{", 1).."}") + end + patchcmd(\@\@xsect, [[\meaning\@xsect]], + \@{\hskip-\@tempskipa}, \@\ltjfakeparbegin) + patchcmd(\@\@item, [[\meaning\@item]], + \bxjs@tmpa, \@\ltjfakeparbegin)} +\endgroup +\fi \ifbxjs@hyperref@enc - \bxjs@fix@hyperref@unicode{true} + \PassOptionsToPackage{unicode}{hyperref} + \bxjs@check@hyperref@unicode{true} \fi \protected\def\autospacing{% \ltjsetparameter{autospacing=true}} @@ -552,11 +595,9 @@ \ltjsetparameter{xkanjiskip={\@tempskipa}}} \def\bxjs@jachar#1{% \ltjjachar`#1\relax} -\ifbxjs@xkanjiskip@cmd - \protected\def\>{% - \relax\ifmmode \mskip\medmuskip - \else \hskip\ltjgetparameter{xkanjiskip}\ignorespaces - \fi} +\ifbxjs@jaspace@cmd + \protected\def\jathinspace{% + \hskip\ltjgetparameter{xkanjiskip}\relax} \fi \ifx f\bxjs@enablejfam \ClassWarningNoLine\bxjs@clsname @@ -572,6 +613,16 @@ \DeclareJaMathFontCommand{\mathmc}{\mcfamily} \DeclareJaMathFontCommand{\mathgt}{\gtfamily} \fi +\ifbxjs@jaspace@cmd + \bxjs@protected\def\bxjs@choice@jathinspace{% + \relax\ifmmode \mskip\medmuskip + \else \jathinspace\ignorespaces + \fi} + \jsAtEndOfClass{% + \ifjsWitheTeX \let\>\bxjs@choice@jathinspace + \else \def\>{\protect\bxjs@choice@jathinspace}% + \fi} +\fi \setkanjiskip{0pt plus.1\jsZw minus.01\jsZw} \ifx\jsDocClass\jsSlide \setxkanjiskip{0.1em} \else \setxkanjiskip{0.25em plus 0.15em minus 0.06em} diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty b/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty index 914ac949ec9..46cb8f33c87 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjspandoc.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) \ProvidesPackage{bxjspandoc} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます. \def\bxjsp@pkgname{bxjscjkcat} \let\bxjsp@engine=n diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls index de3554ba617..512d7ec0b15 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsreport.cls @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsreport} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます. \def\bxjs@clsname{bxjsreport} \newif\ifjsc@needsp@tch @@ -549,14 +549,27 @@ \let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue \let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse \define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}} -\newif\ifbxjs@xkanjiskip@cmd \bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@true\bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@false\bxjs@xkanjiskip@cmdfalse -\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{xkanjiskipcmd}{#1}{}} +\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse +\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}} +\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#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}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}} +\chardef\bxjs@everyparhook@none=0 +\chardef\bxjs@everyparhook@compat=1 +\chardef\bxjs@everyparhook@modern=2 +\if j\jsEngine + \let\bxjs@everyparhook\bxjs@everyparhook@compat +\else + \let\bxjs@everyparhook\bxjs@everyparhook@modern +\fi +\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none} +\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat} +\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern} +\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -1332,6 +1345,10 @@ \@ifstar {\@ssect{#3}{#4}{#5}{#6}}% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \let\bxjs@if@ceph\@firstofone +\else \let\bxjs@if@ceph\@gobble +\fi \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \let\@svsec\@empty @@ -1379,11 +1396,10 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa - \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty - \everypar{\everyparhook}% - \fi\everyparhook}% + \everypar\expandafter{\bxjs@if@ceph\everyparhook}% + \fi\bxjs@if@ceph\everyparhook}% \else \par \nobreak \vskip \@tempskipa @@ -1408,7 +1424,6 @@ \endgroup \fi \@xsect{#3}} -\let\bxjs@ltj@inhibitglue\@empty \newcommand*\chaptermark[1]{} \setcounter{secnumdepth}{2} \newcounter{part} @@ -2126,7 +2141,10 @@ \llap{\@makefnmark\hskip0.3\jsZw}#1} \let\jsInhibitGlueAtParTop\@empty \def\everyparhook{\jsInhibitGlueAtParTop} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \AtBeginDocument{\everypar{\everyparhook}} +\fi +\ifx j\jsEngine \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \begingroup @@ -2154,6 +2172,8 @@ \inhibitglue \fi \fi} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \def\@doendpe{% \@endpetrue \def\par{% @@ -2206,7 +2226,6 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi - \bxjs@ltj@inhibitglue \everyparhook}% \if@noitemarg \@noitemargfalse @@ -2240,6 +2259,9 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi\everyparhook}} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else +\AtEndOfPackage{% \def\@gnewline #1{% \ifvmode \@nolnerr @@ -2247,6 +2269,8 @@ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null \jsInhibitGlue \ignorespaces \fi} +} +\fi \if@jslogo \IfFileExists{jslogo.sty}{% \RequirePackage{jslogo}% diff --git a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls index 72d6b301fd9..3227f3b19ee 100644 --- a/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls +++ b/Master/texmf-dist/tex/latex/bxjscls/bxjsslide.cls @@ -22,7 +22,7 @@ %% in the same archive or directory.) \NeedsTeXFormat{LaTeX2e} \ProvidesClass{bxjsslide} - [2017/09/24 v1.6a BXJS document classes] + [2017/10/21 v1.7 BXJS document classes] %% このファイルは日本語文字を含みます. \def\bxjs@clsname{bxjsslide} \newif\ifjsc@needsp@tch @@ -541,14 +541,27 @@ \let\bxjs@kv@wholezwlines@true\bxjs@whole@zw@linestrue \let\bxjs@kv@wholezwlines@false\bxjs@whole@zw@linesfalse \define@key{bxjs}{whole-zw-lines}[true]{\bxjs@set@keyval{wholezwlines}{#1}{}} -\newif\ifbxjs@xkanjiskip@cmd \bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@true\bxjs@xkanjiskip@cmdtrue -\let\bxjs@kv@xkanjiskipcmd@false\bxjs@xkanjiskip@cmdfalse -\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{xkanjiskipcmd}{#1}{}} +\newif\ifbxjs@jaspace@cmd \bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@true\bxjs@jaspace@cmdtrue +\let\bxjs@kv@jaspacecmd@false\bxjs@jaspace@cmdfalse +\define@key{bxjs}{jaspace-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#1}{}} +\define@key{bxjs}{xkanjiskip-cmd}[true]{\bxjs@set@keyval{jaspacecmd}{#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}[true]{\bxjs@set@keyval{hyperrefenc}{#1}{}} +\chardef\bxjs@everyparhook@none=0 +\chardef\bxjs@everyparhook@compat=1 +\chardef\bxjs@everyparhook@modern=2 +\if j\jsEngine + \let\bxjs@everyparhook\bxjs@everyparhook@compat +\else + \let\bxjs@everyparhook\bxjs@everyparhook@modern +\fi +\def\bxjs@kv@everyparhook@none{\let\bxjs@everyparhook\bxjs@everyparhook@none} +\def\bxjs@kv@everyparhook@compat{\let\bxjs@everyparhook\bxjs@everyparhook@compat} +\def\bxjs@kv@everyparhook@modern{\let\bxjs@everyparhook\bxjs@everyparhook@modern} +\define@key{bxjs}{everyparhook}{\bxjs@set@keyval{everyparhook}{#1}{}} \let\bxjs@ltx@removeelement\@removeelement \def\@removeelement#1#2#3{% \def\reserved@a{#2}% @@ -1321,6 +1334,10 @@ \@ifstar {\@ssect{#3}{#4}{#5}{#6}}% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat + \let\bxjs@if@ceph\@firstofone +\else \let\bxjs@if@ceph\@gobble +\fi \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \let\@svsec\@empty @@ -1368,11 +1385,10 @@ \unskip \@tempskipa #1\relax \hskip -\@tempskipa - \bxjs@ltj@inhibitglue \else \clubpenalty \@clubpenalty - \everypar{\everyparhook}% - \fi\everyparhook}% + \everypar\expandafter{\bxjs@if@ceph\everyparhook}% + \fi\bxjs@if@ceph\everyparhook}% \else \par \nobreak \vskip \@tempskipa @@ -1397,7 +1413,6 @@ \endgroup \fi \@xsect{#3}} -\let\bxjs@ltj@inhibitglue\@empty \newcommand*\chaptermark[1]{} \setcounter{secnumdepth}{3} \newcounter{part} @@ -1987,7 +2002,10 @@ \llap{\@makefnmark\hskip0.3\jsZw}#1} \let\jsInhibitGlueAtParTop\@empty \def\everyparhook{\jsInhibitGlueAtParTop} +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \AtBeginDocument{\everypar{\everyparhook}} +\fi +\ifx j\jsEngine \def\@inhibitglue{% \futurelet\@let@token\@@inhibitglue} \begingroup @@ -2015,6 +2033,8 @@ \inhibitglue \fi \fi} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@compat \def\@doendpe{% \@endpetrue \def\par{% @@ -2067,7 +2087,6 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi - \bxjs@ltj@inhibitglue \everyparhook}% \if@noitemarg \@noitemargfalse @@ -2101,6 +2120,9 @@ \clubpenalty \@clubpenalty \everypar{\everyparhook}% \fi\everyparhook}} +\fi +\ifnum\bxjs@everyparhook=\bxjs@everyparhook@none\else +\AtEndOfPackage{% \def\@gnewline #1{% \ifvmode \@nolnerr @@ -2108,6 +2130,8 @@ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null \jsInhibitGlue \ignorespaces \fi} +} +\fi \if@jslogo \IfFileExists{jslogo.sty}{% \RequirePackage{jslogo}% |