diff options
Diffstat (limited to 'Master/texmf-dist')
21 files changed, 238 insertions, 76 deletions
diff --git a/Master/texmf-dist/doc/platex/pxchfon/README-ja.md b/Master/texmf-dist/doc/platex/pxchfon/README-ja.md index 5ee03bcbd89..778c33c7fe7 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/README-ja.md +++ b/Master/texmf-dist/doc/platex/pxchfon/README-ja.md @@ -63,6 +63,14 @@ MITライセンスの下で配布される。 更新履歴 -------- + * Version 1.4a ‹2019/03/24› + - 非置換のフォントに対して不具合が起こりうる設定を使う場合、 + 非置換のフォントがあると警告を出す。 + * Version 1.4 ‹2019/03/24› + - プリセット `sourcehan-jp`、`noto-jp` を追加。 + (Source Han・Noto CJK の地域別サブセット版を使用) + - 欧文フォント置換が T1 エンコーディングに(暫定的に)対応。 + - 欧文フォント置換の不具合の修正。 * Version 1.3a ‹2019/03/20› - 1.3 版の追加機能の大幅な改修。Unicode 直接モードの `expert` が pTeX でも使用可能になった。 diff --git a/Master/texmf-dist/doc/platex/pxchfon/README.md b/Master/texmf-dist/doc/platex/pxchfon/README.md index d48b5e5bf41..3f381054fb9 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/README.md +++ b/Master/texmf-dist/doc/platex/pxchfon/README.md @@ -39,6 +39,14 @@ This package is distributed under the MIT License. Revision History ---------------- + * Version 1.4a ‹2019/03/24› + - Issue a warning for unsubstituted font weights, if a setting + where unsubtituted fonts could cause problems is employed. + * Version 1.4 ‹2019/03/24› + - Presets `sourcehan-jp` and `noto-jp`, which use the subset OTF + version of Source Han and Noto CJK. + - Now the replacement of alphabetic fonts also works with T1 + encoding (besides OT1). * Version 1.3a ‹2019/03/20› - Now the support of `expert` mode in the direct Unicode mode is available also on pTeX. diff --git a/Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf b/Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf Binary files differindex 36ed279943d..9dd55eece2d 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf +++ b/Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf diff --git a/Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex b/Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex index 22e5f89e4af..e3df7da4e6c 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex +++ b/Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex @@ -10,8 +10,8 @@ \usepackage{metalogo} \usepackage{shortvrb} \MakeShortVerb{\|} -\newcommand{\PkgVersion}{1.3a} -\newcommand{\PkgDate}{2019/03/20} +\newcommand{\PkgVersion}{1.4a} +\newcommand{\PkgDate}{2019/03/24} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} @@ -807,8 +807,23 @@ OpenTypeフォントをユーザが指定する機能を提供する。 \setmarugothicfont{SourceHanSans-Medium.otf} \end{verbatim}\end{quote} +\item |sourcehan-jp|\Means + Source Han Serif JP(源ノ明朝)+ Source Han Sans JP(源ノ角ゴシック)、 + 地域別サブセットOTF版。 + +\begin{quote}\small\begin{verbatim} +\setminchofont{SourceHanSerifJP-Regular.otf} +\setlightminchofont{SourceHanSerifJP-Light.otf} +\setboldminchofont{SourceHanSerifJP-Bold.otf} +\setgothicfont{SourceHanSansJP-Medium.otf} +\setmediumgothicfont{SourceHanSansJP-Regular.otf} +\setboldgothicfont{SourceHanSansJP-Bold.otf} +\setxboldgothicfont{SourceHanSansJP-Heavy.otf} +\setmarugothicfont{SourceHanSansJP-Medium.otf} +\end{verbatim}\end{quote} + \item |noto-otc|\Means - Noto Serif CJK + Noto Sans CJK、 + Noto Serif CJK JP + Noto Sans CJK JP、 OTC版。 \begin{quote}\small\begin{verbatim} @@ -823,18 +838,33 @@ OpenTypeフォントをユーザが指定する機能を提供する。 \end{verbatim}\end{quote} \item |noto|\Means - Noto Serif CJK + Noto Sans CJK、 + Noto Serif CJK JP + Noto Sans CJK JP、 言語別OTF版。 \begin{quote}\small\begin{verbatim} -\setminchofont{NotoSerifCJK-Regular.otf} -\setlightminchofont{NotoSerifCJK-Light.otf} -\setboldminchofont{NotoSerifCJK-Bold.otf} -\setgothicfont{NotoSansCJK-Medium.otf} -\setmediumgothicfont{NotoSansCJK-Regular.otf} -\setboldgothicfont{NotoSansCJK-Bold.otf} -\setxboldgothicfont{NotoSansCJK-Black.otf} -\setmarugothicfont{NotoSansCJK-Medium.otf} +\setminchofont{NotoSerifCJKjp-Regular.otf} +\setlightminchofont{NotoSerifCJKjp-Light.otf} +\setboldminchofont{NotoSerifCJKjp-Bold.otf} +\setgothicfont{NotoSansCJKjp-Medium.otf} +\setmediumgothicfont{NotoSansCJKjp-Regular.otf} +\setboldgothicfont{NotoSansCJKjp-Bold.otf} +\setxboldgothicfont{NotoSansCJKjp-Black.otf} +\setmarugothicfont{NotoSansCJKjp-Medium.otf} +\end{verbatim}\end{quote} + +\item |noto-jp|\Means + Noto Serif JP + Noto Sans JP、 + 地域別サブセットOTF版。 + +\begin{quote}\small\begin{verbatim} +\setminchofont{NotoSerifJP-Regular.otf} +\setlightminchofont{NotoSerifJP-Light.otf} +\setboldminchofont{NotoSerifJP-Bold.otf} +\setgothicfont{NotoSansJP-Medium.otf} +\setmediumgothicfont{NotoSansJP-Regular.otf} +\setboldgothicfont{NotoSansJP-Bold.otf} +\setxboldgothicfont{NotoSansJP-Black.otf} +\setmarugothicfont{NotoSansJP-Medium.otf} \end{verbatim}\end{quote} \end{itemize} @@ -1030,10 +1060,12 @@ Unicode直接指定が有効になる。 1.2版から本来の仕様が適用される。}。 \begin{itemize} -\item |sourcehan| \item |sourcehan-otc| -\item |noto| +\item |sourcehan| +\item |sourcehan-jp| \item |noto-otc| +\item |noto| +\item |noto-jp| \end{itemize} \paragraph{特殊プリセット指定\<(過渡的)} @@ -1090,17 +1122,28 @@ DVI文書の全てのページにフォントマップ情報を書き出すの \label{sec:Mechanism-Alph} 指定された和文フォントの半角部分からなる欧文フォントファミリとして -OT1/cfjar(明朝)とOT1/cfjas(ゴシック)を定義し、 -既定の欧文ファミリに設定している -(明朝→|\rmdefault|;ゴシック→|\sfdefault|) -\footnote{従って、欧文フォントの置換(\texttt{alphabet}や -\texttt{relfont}オプション)を利用する場合は、欧文エンコーディングが -OT1である必要がある。}。 -その上で、この欧文ファミリに対するマップ指定を和文と同じ方法で行っている。 - -従って、例えば一時的に従来のCMフォントに切り替えたい場合はファミリ -をcmrに変更すればよい。なお、このcfjarとcfjasフォントは内部では -OT1として扱われるが、実際にはOT1の一部のグリフしか持っていない。 +OT1/cfjar(明朝)、OT1/cfjas(ゴシック)、OT1/cfjam(丸ゴシック) +の3つ(以下では\Strong{CFJAファミリ}と総称する)を定義している +\footnote{1.4版からはT1エンコーディングにもCFJAファミリを定義する。 +現状で対応しているのはOT1とT1のみであるので、欧文フォントの置換 +(\texttt{alphabet}や\texttt{relfont}オプション) +を利用する文書は、欧文エンコーディングがOT1かT1である必要がある。}。 +その上で、CFJAファミリに対するマップ指定を和文と同じ方法で行っている。 +なお、CFJAファミリは内部ではOT1として扱われるが、 +実際にはOT1の一部のグリフしか持っていない。 + +\paragraph{alphabetオプション指定時} +オプション |alphabet| を指定した場合、 +CFJAファミリを既定の欧文ファミリとして設定する +(cfjar→|\rmdefault|;cfjas→|\sfdefault|)。 +従って、例えば一時的に従来のCMフォントを使いたい場合は、 +適宜ファミリの変更(|\fontfamily{cmr}|等)を行えばよい。 + +\paragraph{relfontオプション指定時} +オプション |relfont| を指定した場合、 +CFJAファミリを和文ファミリの従属欧文フォントに +(cfjarを |\mcfamily| に、cfjasを |\gtfamily| に、 +cfjamを |\mgfamily| に対して)設定する。 %=========================================================== \section{注意事項} diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/cfjam-r-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/cfjam-r-l0j.tfm Binary files differnew file mode 100644 index 00000000000..1ce1eefb596 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/cfjam-r-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjam-r-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjam-r-l0j.tfm Binary files differnew file mode 100644 index 00000000000..b23da58d466 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjam-r-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjam-rz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjam-rz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..9666a37fc6a --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjam-rz-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-bz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-bz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..b6f4d38b555 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-bz-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-lz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-lz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..7a0d9dd3a73 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-lz-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-rz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-rz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..4ba44092041 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjar-rz-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-bz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-bz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..6ff8357a112 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-bz-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-rz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-rz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..87545408268 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-rz-l0j.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-xz-l0j.tfm b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-xz-l0j.tfm Binary files differnew file mode 100644 index 00000000000..ed424d178fb --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/pxchfon/r-cfjas-xz-l0j.tfm diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjam-r-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjam-r-l0j.vf Binary files differnew file mode 100644 index 00000000000..95662b47884 --- /dev/null +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjam-r-l0j.vf diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-b-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-b-l0j.vf Binary files differindex 8ea6168b8e9..691e35568d4 100644 --- a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-b-l0j.vf +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-b-l0j.vf diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-l-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-l-l0j.vf Binary files differindex f41371e79b5..f1446f879ab 100644 --- a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-l-l0j.vf +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-l-l0j.vf diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-r-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-r-l0j.vf Binary files differindex 66df3d729b3..6caaca72d58 100644 --- a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-r-l0j.vf +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjar-r-l0j.vf diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-b-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-b-l0j.vf Binary files differindex 181609aca68..b8d611659db 100644 --- a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-b-l0j.vf +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-b-l0j.vf diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-r-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-r-l0j.vf Binary files differindex d313ff45e77..f3b60a25372 100644 --- a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-r-l0j.vf +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-r-l0j.vf diff --git a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-x-l0j.vf b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-x-l0j.vf Binary files differindex 3f5e30725de..c1314dbd50f 100644 --- a/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-x-l0j.vf +++ b/Master/texmf-dist/fonts/vf/public/pxchfon/cfjas-x-l0j.vf diff --git a/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty b/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty index b7b236e0ed2..6206ddb0c8a 100644 --- a/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty +++ b/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty @@ -10,7 +10,7 @@ %% package declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesPackage{pxchfon}[2019/03/20 v1.3a] +\ProvidesPackage{pxchfon}[2019/03/24 v1.4a] \def\pxcz@pkgname{pxchfon} %% preparations @@ -219,10 +219,10 @@ kozuka-pro,kozuka-pr6,kozuka-pr6n,hiragino-pro,hiragino-pron,% hiragino-elcapitan-pro,hiragino-elcapitan-pron,% morisawa-pro,morisawa-pr6n,yu-win,yu-win10,yu-win10+,yu-osx,% - sourcehan-otc,sourcehan,noto-otc,noto,% + sourcehan-otc,sourcehan,sourcehan-jp,noto-otc,noto,noto-jp,% sourcehan-otc+,sourcehan+,noto-otc+,noto+,% %(alias) - hiragino,% + hiragino,noto-otf,% noEmbed,kozuka,hiragino-elcapitan,morisawa} \pxcz@onlypreamble@def\pxcz@all@abolished@preset{% ipa-otf,ipa-otf-dx,kozuka4,kozuka6,kozuka6n, @@ -355,7 +355,10 @@ \let\pxcz@switch@font@xjistrue\pxcz@switch@font@xjisfalse \fi -%--------------------------------------- preset-triggered setup +%--------------------------------------- preset-dependent setup + +%% variables +\newif\ifpxcz@warn@unless@all@defined %% \pxcz@apply@opt@unicode % Forces the 'unicode' setup (unless a directunicode option was given). @@ -399,8 +402,11 @@ % equivalent to the corresponding 'XXXX+' preset. \pxcz@do{sourcehan}{\pxcz@apply@opt@unicode} \pxcz@do{sourcehan-otc}{\pxcz@apply@opt@unicode} +\pxcz@do{sourcehan-jp}{\pxcz@apply@opt@unicode} \pxcz@do{noto}{\pxcz@apply@opt@unicode} +\pxcz@do{noto-otf}{\pxcz@apply@opt@unicode} \pxcz@do{noto-otc}{\pxcz@apply@opt@unicode} +\pxcz@do{noto-jp}{\pxcz@apply@opt@unicode} \pxcz@do{sourcehan+}{\pxcz@apply@opt@unicodeP} \pxcz@do{sourcehan-otc+}{\pxcz@apply@opt@unicodeP} \pxcz@do{noto+}{\pxcz@apply@opt@unicodeP} @@ -474,6 +480,9 @@ \fi \let\pxcz@expert=f \fi +\if t\pxcz@expert + \pxcz@warn@unless@all@definedtrue +\fi %--------------------------------------- user interface @@ -605,6 +614,11 @@ \newcommand*\usefontmapfile[1]{% \JaFontUserDefinedMap{\pxcz@addtospec@alt\pxcz@mapfile{#1}}} +%% \pxcz@check@extra +% Executed at the begin-document hook. +\@onlypreamble\pxcz@check@extra +\let\pxcz@check@extra\@empty + %--------------------------------------- map entry handling %%<*> \setnewglyphcmapprefix{<str>} @@ -796,14 +810,13 @@ \pxcz@declare@entry@modifier{HWid}{% \ifx\pxcz@font\pxcz@noembed \let\pxcz@cmap\pxcz@cmap@hwuni + \else\ifnum\pxcz@directunicode=\pxcz@directunicode@full + \let\pxcz@cmap\pxcz@cmap@directuni \else \let\pxcz@cmap\pxcz@cmap@uni \pxcz@switch@font@for{hwid}% - \fi - \pxcz@add@lopt{hwid}% - \def\pxcz@tmpa{mgr}\ifx\pxcz@sym\pxcz@tmpa - \let\pxcz@font\@empty - \fi} + \fi\fi + \pxcz@add@lopt{hwid}} % FWid \pxcz@declare@entry@modifier{FWid}{% \pxcz@switch@font@for{fwid}% @@ -952,12 +965,19 @@ } \pxcz@mapentry{ALPHA}{% \Entry{mnl}{r-cfjar-l-@PXcjk0@}{unicode} {HWid}% +\Entry{mnl}{r-cfjar-lz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% \Entry{mnr}{r-cfjar-r-@PXcjk0@}{unicode} {HWid}% +\Entry{mnr}{r-cfjar-rz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% \Entry{mnb}{r-cfjar-b-@PXcjk0@}{unicode} {HWid}% +\Entry{mnb}{r-cfjar-bz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% \Entry{gtr}{r-cfjas-r-@PXcjk0@}{unicode} {HWid}% +\Entry{gtr}{r-cfjas-rz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% \Entry{gtb}{r-cfjas-b-@PXcjk0@}{unicode} {HWid}% +\Entry{gtb}{r-cfjas-bz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% \Entry{gtx}{r-cfjas-x-@PXcjk0@}{unicode} {HWid}% -\Entry{mgr}{r-cfjas-r-@PXcjk0@}{unicode} {HWid}% +\Entry{gtx}{r-cfjas-xz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% +\Entry{mgr}{r-cfjam-r-@PXcjk0@}{unicode} {HWid}% +\Entry{mgr}{r-cfjam-rz-@PXcjk0@}{UniJIS-UCS2-H} {Uni*,FWid}% } \pxcz@mapentry{UTF}{% \Entry{mnr}{unijmin-h} {UniJIS-UTF16-H} {Uni*,Switch}% @@ -1366,26 +1386,40 @@ %--------------------------------------- 'alphabet' option -%% \pxcz@decl@shape{<fam>}{<ser>}{<font>} +%% \pxcz@afont@enc@list +\def\pxcz@afont@enc@list{OT1,T1} +%% \pxcz@decl@family{<fam>} +\@onlypreamble\pxcz@decl@family +\def\pxcz@decl@family#1{% + \@for\pxcz@x:=\pxcz@afont@enc@list\do{% + \DeclareFontFamily{\pxcz@x}{#1}{}}} +%% \pxcz@decl@shape{<fam>}{<ser>}<sw>{<font>} \@onlypreamble\pxcz@decl@shape -\def\pxcz@decl@shape#1#2#3{% -\DeclareFontShape{OT1}{#1}{#2}{n}{<->#3}{}% -\DeclareFontShape{OT1}{#1}{#2}{it}{<->ssub*#1/#2/n}{}} +\def\pxcz@decl@shape#1#2#3#4{% + \if s#3% + \@for\pxcz@x:=\pxcz@afont@enc@list\do{% + \DeclareFontShape{\pxcz@x}{#1}{#2}{n}{<->ssub*#4}{}}% + \else + \DeclareFontShape{OT1}{#1}{#2}{n}{<->#4-l0j}{}% + \DeclareFontShape {T1}{#1}{#2}{n}{<->#4-l0j}{}% FIXME + \fi + \@for\pxcz@x:=\pxcz@afont@enc@list\do{% + \DeclareFontShape{\pxcz@x}{#1}{#2}{it}{<->ssub*#1/#2/n}{}% + \DeclareFontShape{\pxcz@x}{#1}{#2}{sl}{<->ssub*#1/#2/n}{}}} -\let\pxcz@check@extra\@empty -\@onlypreamble\pxcz@check@extra -% \ifpxcz@alphafont %---- <*alphabet> \ifpxcz@otf@deluxe %---- <*otfdx> : otf with deluxe option % define families cfjar & cfjas -\DeclareFontFamily{OT1}{cfjar}{}% -\pxcz@decl@shape{cfjar}{l}{cfjar-l-l0j}% -\pxcz@decl@shape{cfjar}{m}{cfjar-r-l0j}% -\pxcz@decl@shape{cfjar}{bx}{cfjar-b-l0j}% -\DeclareFontFamily{OT1}{cfjas}{}% -\pxcz@decl@shape{cfjas}{m}{cfjas-r-l0j}% -\pxcz@decl@shape{cfjas}{bx}{cfjas-b-l0j}% -\pxcz@decl@shape{cfjas}{eb}{cfjas-x-l0j}% +\pxcz@decl@family{cfjar}% +\pxcz@decl@shape{cfjar}{l}n{cfjar-l}% +\pxcz@decl@shape{cfjar}{m}n{cfjar-r}% +\pxcz@decl@shape{cfjar}{bx}n{cfjar-b}% +\pxcz@decl@family{cfjas}% +\pxcz@decl@shape{cfjas}{m}n{cfjas-r}% +\pxcz@decl@shape{cfjas}{bx}n{cfjas-b}% +\pxcz@decl@shape{cfjas}{eb}n{cfjas-x}% +\pxcz@decl@family{cfjam}% +\pxcz@decl@shape{cfjam}{m}n{cfjam-r}% % redefine \ltseries & \ebseries so they affect roman font \let\ltseries\relax \let\ebseries\relax \DeclareRobustCommand\ltseries{% @@ -1395,18 +1429,18 @@ \not@math@alphabet\ebseries\relax \fontseries\ebdefault\selectfont}% \else %---- <*!otfdx> -\DeclareFontFamily{OT1}{cfjar}{}% -\pxcz@decl@shape{cfjar}{m}{cfjar-r-l0j}% -\pxcz@decl@shape{cfjar}{bx}{ssub*cfjas/m/n}% -\DeclareFontFamily{OT1}{cfjas}{}% -\pxcz@decl@shape{cfjas}{m}{cfjas-r-l0j}% -\pxcz@decl@shape{cfjas}{bx}{ssub*cfjas/m/n}% +\pxcz@decl@family{cfjar}% +\pxcz@decl@shape{cfjar}{m}n{cfjar-r}% +\pxcz@decl@shape{cfjar}{bx}s{cfjas/m/n}% +\pxcz@decl@family{cfjas}% +\pxcz@decl@shape{cfjas}{m}n{cfjas-r}% +\pxcz@decl@shape{cfjas}{bx}s{cfjas/m/n}% \@onlypreamble\pxcz@err@dxotf \def\pxcz@err@dxotf#1{% \pxcz@error{Loaded before '#1' with 'deluxe'}% {This package must be loaded after '#1' with 'deluxe' option when using both.}} -\def\pxcz@check@extra{% +\g@addto@macro\pxcz@check@extra{% \expandafter\let\expandafter\pxcz@x\csname pxcz@FS/mnr\endcsname \ifx\pxcz@x\@empty\else % if mnr is replaced but gtr is not then ... @@ -1422,6 +1456,12 @@ %--------------------------------------- begin-document hook +%% variables +\let\pxcz@afont@enc\relax + +%% \pxcz@mgfamily@hook +\def\pxcz@mgfamily@hook{\romanfamily{cfjam}} + %% \pxcz@set@page@hook{<text>} \@onlypreamble\pxcz@set@page@hook \ifpxcz@everypage @@ -1435,13 +1475,41 @@ \global\setbox\@begindvibox\vbox{\yoko\unvbox\@begindvibox#1}} \fi -%% the begin-document hook +%% \pxcz@check@alldefined{<sym>,...} \@onlypreamble\pxcz@check@alldefined \def\pxcz@check@alldefined#1{% \pxcz@oktrue \@for\pxcz@x:={#1}\do{% \expandafter\ifx\csname pxcz@FS/\pxcz@x\endcsname\@empty \pxcz@okfalse \fi}} + +%% \pxcz@decl@relfont{<fam>}{<afam>}{<ser>,...} +\@onlypreamble\pxcz@decl@relfont +\def\pxcz@decl@relfont#1#2#3{% + \@for\pxcz@x:={#3}\do{% + \expandafter\ifx\csname\k@encoding/#1/\pxcz@x/n\endcsname\relax\else + \edef\pxcz@tmpa{\noexpand\DeclareRelationFont + {\k@encoding}{#1}{\pxcz@x}{}{\pxcz@afont@enc}{#2}{\pxcz@x}{}% + }\pxcz@tmpa + \fi}% + \pxcz@info{Relation font set for \k@encoding/#1}} + +%% \pxcz@check@afont@enc +\@onlypreamble\pxcz@check@afont@enc +\def\pxcz@check@afont@enc{% + \pxcz@oktrue % OT1 is always okay + \def\pxcz@tmpa{OT1}\ifx\pxcz@tmpa\pxcz@afont@enc\else + % otherwise, noembed must not be used + \@for\pxcz@x:=\pxcz@sym@list\do{% + \expandafter\ifx\csname pxcz@FS/\pxcz@x\endcsname\pxcz@noembed + \pxcz@okfalse \fi}% + \expandafter\ifx\csname\pxcz@afont@enc+cfjar\endcsname\relax + \pxcz@okfalse \fi + \fi + % if not okay, use OT1 instead + \ifpxcz@ok\else \def\pxcz@afont@enc{OT1}\fi} + +%% the begin-document hook \@onlypreamble\pxcz@doc@hook \def\pxcz@doc@hook{% \pxcz@user@hook @@ -1451,24 +1519,41 @@ \ifx t\pxcz@strict@csi \pxcz@inspect@flavor@all \fi - \ifpxcz@alpha + \ifpxcz@alpha % 'alphabet' \pxcz@check@alldefined{mnl,mnr,mnb}% \ifpxcz@ok \renewcommand\rmdefault{cfjar}\fi \pxcz@check@alldefined{gtr,gtb,gtx}% \ifpxcz@ok \renewcommand\sfdefault{cfjas}\fi - \edef\pxcz@tmpa{\encodingdefault}\def\pxcz@tmpb{OT1} - \ifx\pxcz@tmpa\pxcz@tmpb\else + % attach hook to \mgfamily if mgr font is defined + \pxcz@check@alldefined{mgr} + \ifpxcz@ok\ifpxcz@otf@deluxe + \begingroup + \def\pxcz@x##1{\toks@\expandafter{##1}% + \xdef##1{\noexpand\pxcz@mgfamily@hook\the\toks@}% + }\expandafter\pxcz@x\csname mgfamily \endcsname + \endgroup + \fi\fi + % decide alphabet font encoding + \edef\pxcz@afont@enc{\encodingdefault}% + \pxcz@check@afont@enc\ifpxcz@ok\else \pxcz@warn{Default encoding is changed to 'OT1' because% \MessageBreak'alphabet' option is in effect}% + \renewcommand\encodingdefault{OT1}% \fi - \renewcommand\encodingdefault{OT1}\normalfont + \normalfont \pxcz@addtospec{ALPHA}% \fi - \ifpxcz@rel + \ifpxcz@rel % 'relfont' + \edef\pxcz@afont@enc{\encodingdefault}% + \pxcz@check@afont@enc \pxcz@check@alldefined{mnl,mnr,mnb}% - \ifpxcz@ok \pxcz@decl@relfont\mcdefault{cfjar}{l}\fi + \ifpxcz@ok \pxcz@decl@relfont\mcdefault{cfjar}{m,bx,l}\fi \pxcz@check@alldefined{gtr,gtb,gtx}% - \ifpxcz@ok \pxcz@decl@relfont\gtdefault{cfjas}{eb}\fi + \ifpxcz@ok \pxcz@decl@relfont\gtdefault{cfjas}{m,bx,eb}\fi + \pxcz@check@alldefined{mgr}% + \ifpxcz@ok\ifpxcz@otf@deluxe + \pxcz@decl@relfont\mgdefault{cfjam}{m}% + \fi\fi \pxcz@addtospec{ALPHA}% \fi \ifpxcz@uptex\else @@ -1499,6 +1584,20 @@ \@ifpackageloaded{pxfontenc}{\pxcz@oktrue}{}% \ifpxcz@ok \pxcz@addtospec{PXOTF}% \fi + % warn if some weights are not substituted, and if necessaty + \ifpxcz@warn@unless@all@defined + \ifpxcz@otf@deluxe + \pxcz@check@alldefined{mnl,mnr,mnb,gtr,gtb,gtx,mgr}% + \else \pxcz@check@alldefined{mnr,mnb,gtr,gtb}% + \fi + \ifpxcz@ok\else + \PackageWarningNoLine\pxcz@pkgname + {Some font weights are not substituted.\MessageBreak + Thus some features of pxchfon might not work\MessageBreak + properly when applied to such weights}% + \fi + \fi + % \pxcz@check@extra \pxcz@addtospec{USR}% \ifpxcz@enabled @@ -1517,17 +1616,6 @@ } \AtBeginDocument{\pxcz@doc@hook} -%% \pxcz@decl@relfont -\@onlypreamble\pxcz@decl@relfont -\def\pxcz@decl@relfont#1#2#3{% - \DeclareRelationFont{\k@encoding}{#1}{m}{}{OT1}{#2}{m}{}% - \DeclareRelationFont{\k@encoding}{#1}{bx}{}{OT1}{#2}{bx}{}% - \ifpxcz@otf@deluxe - \DeclareRelationFont{\k@encoding}{#1}{#3}{}{OT1}{#2}{#3}{}% - \fi - \pxcz@info{Relation font set for \k@encoding/#1}% -} - %--------------------------------------- strict-CSI mode \ifx t\pxcz@strict@csi % In this section, the e-TeX extension plus \pdffiledump and @@ -1877,6 +1965,13 @@ {SourceHanSans-Regular.otf}{SourceHanSans-Bold.otf}% {SourceHanSans-Heavy.otf}{SourceHanSans-Medium.otf}% {SourceHanSans-Medium.otf}} +% Source Han Sans/Serif, "Region-specific Subset OTF" +\pxcz@declare@preset{sourcehan-jp}{% + \pxcz@multiweight{SourceHanSerifJP-Light.otf}% + {SourceHanSerifJP-Regular.otf}{SourceHanSerifJP-Bold.otf}% + {SourceHanSansJP-Regular.otf}{SourceHanSansJP-Bold.otf}% + {SourceHanSansJP-Heavy.otf}{SourceHanSansJP-Medium.otf}% + {SourceHanSansJP-Medium.otf}} % Noto Sans/Serif CJK, "OpenType/CFF Collection (OTC)" \pxcz@declare@preset{noto-otc}{% \pxcz@multiweight{:0:NotoSerifCJK-Light.ttc}% @@ -1891,12 +1986,20 @@ {NotoSansCJKjp-Regular.otf}{NotoSansCJKjp-Bold.otf}% {NotoSansCJKjp-Black.otf}{NotoSansCJKjp-Medium.otf}% {NotoSansCJKjp-Medium.otf}} +% Noto Sans/Serif CJK, "Region-specific Subset OpenType/CFF (Subset OTF)" +\pxcz@declare@preset{noto-jp}{% + \pxcz@multiweight{NotoSerifJP-Light.otf}% + {NotoSerifJP-Regular.otf}{NotoSerifJP-Bold.otf}% + {NotoSansJP-Regular.otf}{NotoSansJP-Bold.otf}% + {NotoSansJP-Black.otf}{NotoSansJP-Medium.otf}% + {NotoSansJP-Medium.otf}} %(alias) \pxcz@declare@preset@alias{hiragino}{hiragino-pro} \pxcz@declare@preset@alias{noEmbed}{noembed} \pxcz@declare@preset@alias{kozuka}{kozuka-pro} \pxcz@declare@preset@alias{hiragino-elcapitan}{hiragino-elcapitan-pro} \pxcz@declare@preset@alias{morisawa}{morisawa-pro} +\pxcz@declare@preset@alias{noto-otf}{noto} %(plus-variants) \pxcz@declare@preset@alias{sourcehan+}{sourcehan} \pxcz@declare@preset@alias{sourcehan-otc+}{sourcehan-otc} |