diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/platex/pxchfon/README-ja.md | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxchfon/README.md | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf | bin | 284120 -> 283833 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex | 197 | ||||
-rw-r--r-- | Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty | 225 |
5 files changed, 262 insertions, 174 deletions
diff --git a/Master/texmf-dist/doc/platex/pxchfon/README-ja.md b/Master/texmf-dist/doc/platex/pxchfon/README-ja.md index f87781ff481..5ee03bcbd89 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/README-ja.md +++ b/Master/texmf-dist/doc/platex/pxchfon/README-ja.md @@ -21,6 +21,7 @@ pLaTeX / upLaTeX の文書の標準のフォント(明朝・ゴシック)を * DVIウェア: dvipdfmx * 依存パッケージ: - atbegshi パッケージ(`everypage` オプション使用時) + - pxufont パッケージ(`unicode` オプション使用時) ### インストール @@ -62,10 +63,13 @@ MITライセンスの下で配布される。 更新履歴 -------- + * Version 1.3a ‹2019/03/20› + - 1.3 版の追加機能の大幅な改修。Unicode 直接モードの `expert` が + pTeX でも使用可能になった。 * Version 1.3 ‹2019/02/03› - Unicode 直接モードにおいて japanese-otf の `expert` 指定の主要な 機能(横組・縦組用仮名字形、ルビ用字形)に対応した。 - - (試験的) GID 指定入力(`glyphid` オプション、`\gid` 命令)。 + - GID 指定入力(`glyphid` オプションおよび `\gid` 命令)。 * Version 1.2b ‹2019/01/21› - 「じゅん101」のファイル名の誤りを修正。 * Version 1.2a ‹2018/03/17› diff --git a/Master/texmf-dist/doc/platex/pxchfon/README.md b/Master/texmf-dist/doc/platex/pxchfon/README.md index 5fcdb738313..d48b5e5bf41 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/README.md +++ b/Master/texmf-dist/doc/platex/pxchfon/README.md @@ -17,7 +17,8 @@ used in the japanese-otf package. * TeX engine: pTeX or upTeX. * DVIware: dvipdfmx. * Prerequisite packages: - - atbegshi + - atbegshi (when option `everypage` is used) + - pxufont (when option `unicode` is used) ### INSTALLATION @@ -38,10 +39,13 @@ This package is distributed under the MIT License. Revision History ---------------- + * Version 1.3a ‹2019/03/20› + - Now the support of `expert` mode in the direct Unicode mode is + available also on pTeX. * Version 1.3 ‹2019/02/03› - Now the direct Unicode mode supports the major feature of the `expert` mode of the otf-japanese package. - - (experimental) The feature of GID input (`glyphid` option). + - The feature of GID input (`glyphid` option). * Version 1.2b ‹2019/01/21› - Fix the file name for font “Jun 101”. * Version 1.2a ‹2018/03/17› diff --git a/Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf b/Master/texmf-dist/doc/platex/pxchfon/pxchfon.pdf Binary files differindex 2c3589e7dab..36ed279943d 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 4a5aee4d2b0..22e5f89e4af 100644 --- a/Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex +++ b/Master/texmf-dist/doc/platex/pxchfon/pxchfon.tex @@ -10,12 +10,13 @@ \usepackage{metalogo} \usepackage{shortvrb} \MakeShortVerb{\|} -\newcommand{\PkgVersion}{1.3} -\newcommand{\PkgDate}{2019/02/03} +\newcommand{\PkgVersion}{1.3a} +\newcommand{\PkgDate}{2019/03/20} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} \newcommand{\Means}{:\ } +\providecommand{\Strong}[1]{\textsf{#1}} \providecommand{\pTeX}{p\TeX} \providecommand{\pLaTeX}{p\LaTeX} \providecommand{\upTeX}{u\pTeX} @@ -31,9 +32,9 @@ %=========================================================== \section{概要} -{\pLaTeX}/{\upLaTeX}の文書の標準のフォント(明朝・ゴシック) -をユーザ指定のものに置き換える。 -dvipdfmx専用である。 +{\pLaTeX}/{\upLaTeX}+dvipdfmxのワークフローでPDF文書を作る場合に、 +標準の和文フォント(明朝・ゴシック)に対して実際に使われる +OpenTypeフォントをユーザが指定する機能を提供する。 使用するフォントを{\LaTeX}文書中で指定するので、 一度パッケージをインストールするだけで、 任意の日本語フォント(ただし等幅に限る)を使うことができる。 @@ -42,15 +43,16 @@ dvipdfmx専用である。 https://www.ctan.org/pkg/japanese-otf}% パッケージにも対応している。 -0.5版での拡張で、{\pTeX}において広く行われているフォント設定 -(IPAフォントの使用等)をパッケージオプション一つで -行う機能を追加した。 +また、{(u)\pLaTeX}において広く行われているフォント設定 +(IPAexフォントの使用等)をパッケージオプション一つで適用する機能 +(プリセット指定)も備えている。 %=========================================================== \section{前提環境} \begin{itemize} -\item {\TeX}フォーマット\Means {\pLaTeX}/{\upLaTeX} +\item {\TeX}フォーマット\Means {\LaTeX} +\item {\TeX}エンジン\Means {\pTeX}/{\upTeX} \item DVIウェア\Means dvipdfmx \item 前提パッケージ\Means \begin{itemize} @@ -71,7 +73,7 @@ dvipdfmx専用である。 オプションは次のものが用意されている。 \begin{itemize} -\item \textbf{ドライバオプション}\Means +\item \Strong{ドライバオプション}\Means |dvipdfmx|、|dvips|、|dviout|、|xdvi| および |nodvidriver|% \footnote{ドライバ依存動作を明示的に無効化するための指定。} が指定できる。 @@ -81,23 +83,34 @@ dvipdfmx専用である。 他のDVIウェアにおける動作については \ref{sec:Other-Drivers}節を参照。 ドライバオプションの既定値は |dvipdfmx| である。 -\item \textbf{プリセット指定オプション}(|ipa|、|hiragino| 等) +\item \Strong{プリセット指定オプション}(|ipaex|、|hiragino-pron| 等) 名前に対応するプリセット指定を有効にする。 \Note 詳細については\ref{sec:Preset}節を参照。 -\item \textbf{ファイルプリセット指定オプション}% +\item \Strong{ファイルプリセット指定オプション}% (|+|\mbox{}\textgt{名前} または |*|\mbox{}\textgt{名前}) 名前に対応するファイルプリセット指定を有効にする。 \Note 詳細については\ref{sec:FilePreset}節を参照。 \item |alphabet|\Means 欧文フォントも指定されたフォントの英数字部分で置き換える。 (明朝が |\rmfamily|、ゴシックが |\sffamily| に適用される。) - プリセット指定オプション未使用の場合は既定で有効である。 + \Note 技術的制約のため + \footnote{プロポーショナル幅のフォントを使うためには、 + そのフォントに合わせた{\TeX}側の論理フォント(TFM)を + 事前に用意する必要があるため。 + 和文が全角幅しか使えないのも同じ理由である。}、 + \Strong{半角等幅のフォント}しかサポートされないことに注意してほしい。 + つまり、この設定を使うと欧文が全て等幅になってしまう。 + 「部分的に欧文フォントを和文フォントに合わせたい」という場合は、 + 後述の |relfont| オプションの使用も検討されたい。 + \Note プリセット指定オプション\Strong{不使用}の場合は + こちらが既定で有効になる。 + すなわち\Strong{欧文フォントも置き換えられる}。 \item |noalphabet|\Means |alphabet| の否定。 欧文フォントは変更しない。 % インストール時に欧文用の設定をしていない場合は必ずこれを % 指定する必要がある。 - \textbf{プリセット指定オプション使用の場合はこちらが既定で有効になる。} + \Note プリセット指定オプション使用の場合はこちらが既定で有効になる。 \item |otf|(既定)\Means \Pkg{japanese-otf}パッケージの使用時に、 そのフォントも置き換えの対象とする。 @@ -143,15 +156,16 @@ dvipdfmx専用である。 \paragraph{上級者向けオプション} \begin{itemize} \item |relfont|\Means - 指定された和文フォントの英数字部分を({\pLaTeX}の標準機能の) - 従属欧文フォントとして設定する。 - すなわち、既定の欧文フォントは置き換えないが、|\selectfont| で + 指定された和文フォントの英数字部分を({\pLaTeX}の標準機能である) + \Strong{従属欧文フォント}として設定する。 + すなわち、既定では欧文フォントは置き換えないが、|\selectfont| で 和文フォントを選択する際に予め |\userelfont| を実行しておくと 欧文も和文と同じ書体になる。 \footnote{特に 「\texttt{\symbol{`\\}userelfont\symbol{`\\}selectfont}」 だけ実行すると、欧文が現在の和文と同じ書体になる。} - (ただし置き換えていない総称ファミリについては無効。) + (ただし適用すべき和文ファミリについて置換が設定されていない + 場合は無効になる。) \Note |alphabet|、|noalphabet|、|relfont| の3つのオプションは 排他である。 \item |everypage|\Means @@ -160,13 +174,14 @@ dvipdfmx専用である。 \item |noeverypage|(既定)\Means |everypage|の否定。 DVIの先頭ページにのみマップ設定を書き込む。 -\item \textbf{Unicode直接指定オプション}\Means - 一部(または全部)のフォントについて、エンコーディング指定方式を +\item \Strong{Unicode直接指定オプション}\Means + 一部または全部のフォントについて、エンコーディング指定方式を “Cmap指定”から“Unicode直接指定”に変更する。 |nodirectunicode|(既定)、|directunicode|、|directunicode*|、 |unicode*|、|unicode| の5種類の指定がある。 \Note 詳細については\ref{sec:DirectUnicode}節を参照。 - \Note 一部のプリセット指定はUnicode直接指定の既定値を変更する。 + \Note 一部のプリセット指定(|sourcehan|等)は + Unicode直接指定の既定値を変更する。 %\item |directunicode|\Means % \Pkg{japanese-otf}パッケージのUnicode出力用フォント(|\UTF{}| の出力) % について、Unicodeを用いてフォントのグリフにアクセスするように @@ -195,25 +210,19 @@ dvipdfmx専用である。 % |directunicode| の否定。 \item |usecmapforalphabet|\Means |alphabet|(または |relfont|)を指定して日本語フォントの英数字部分を - 欧文フォントとして使う際に、そのフォントマップについて - “CMap指定”を利用する。 - \Note “CMap指定”と“Unicode直接指定”の違いについては - \ref{sec:DirectUnicode}節を参照。 + 欧文フォントとして使う際に、そのエンコーディング指定方式を + “CMap指定”にする。 +% \Note “CMap指定”と“Unicode直接指定”の違いについては +% \ref{sec:DirectUnicode}節を参照。 \Note 半角英数字用の\texttt{UniJIS-UCS2-HW-H}というCMapが指定される。 - \Note “AJ1である”OpenTypeフォントの場合、“Unicode直接指定” - を使うと英数字がプロポーショナル幅のものになってしまうので、 + \Note 字形セットがAJ1であるOpenTypeフォントの場合、“Unicode直接指定” + を使うと英数字がプロポーショナル幅のものになるがこれは + サポートされない(|alphabet| オプションの説明を参照)ので、 このオプションを指定して半角幅のものを使う必要がある。 - \footnote{% - 念のため補足すると、半角幅しかサポートされないのは技術的制限による。 -% すなわち、フォントを「後から置き換える」ということを可能に -% するためには、TFMは固定幅でなければならないのである。 - \ref{sec:Notice}節を参照されたい。} \item |nousecmapforalphabet|(既定)\Means |usecmapforalphabet| の否定。 - \Note 和文と異なり、欧文フォントでは“Unicode直接指定”の方が - 既定となる。 - ただし、|unicode*| または |unicode| が指定された場合はそちらの指定が - 優先されて欧文フォントもUnicode直接指定になる。 + \Note 和文と異なり、欧文フォントでは実質的に“Unicode直接指定”の方が + 既定となっている。 \Note 一部のプリセット指定は |usecmapforalphabet| の指定を強制する。 \item |dumpmap|\Means 「通常マップファイルダンプ出力」を有効にする。 @@ -223,7 +232,7 @@ dvipdfmx専用である。 |dumpmap| の否定。 \item |dumpmaptl|\Means 「{\TeX} Liveマップファイルダンプ出力」を有効にする。 - すなわち、本パッケージにより設定されたフォントマップに対応する + すなわち、本パッケージによる設定を再現する kanji-config-updmap用のマップファイルのセット (|ptex-NAME.map|、|otf-NAME.map|、|uptex-NAME.map|、 |otf-up-NAME.map| の4つ、ただし |NAME| はジョブ名) @@ -238,9 +247,9 @@ dvipdfmx専用である。 \item |nodumpmaptl|(既定)\Means |dumpmaptl| の否定。 \item |strictcsi|\Means - |Identity-H/V| のCMapが指定されたマップ行について、“CSI指定”は + |Identity-H/V| のCMapが指定されたマップ行について、CSI指定は (仕様に厳密に従って)フォントがTrueTypeグリフの場合にのみ出力する。 - \Note “CSI指定”とはフォントファイル名の直後に書く“|/AJ1|”の類の + \Note 「CSI指定」とはフォントファイル名の直後に書く“|/AJ1|”の類の ことで、本来は(グリフ集合情報を持たない)TrueTypeグリフのフォント のためのものである。 しかし、CFFグリフのフォントに対してCSI指定があっても特に問題は @@ -248,29 +257,45 @@ dvipdfmx専用である。 かかるため、既定では厳密な判定は行わない。 \item |nostrictcsi|(既定)\Means |strictcsi| の否定。 - |Identity-H/V| に対する“CSI指定”は常に出力される。 + |Identity-H/V| に対するCSI指定は常に出力される。 \Note さすがにファイルに出力されたマップ行に不備があるのは 避けたいので、|dumpmap(tl)| が指定された場合は、 既定が |strictcsi| に変更される。 +\item |expert|(既定)\Means + Unicode直接指定の適用時に\Pkg{japanese-otf}の |expert| オプション + の機能を(可能な範囲で)エミュレートする。 + \Note \Pkg{japanese-otf}の |expert| が指定されない場合は無意味。 +\item |noexpert|\Means + |expert| の否定。 + Unicode直接指定時には\Pkg{japanese-otf}の |expert| は無効になる。 +\item |glyphid|\Means + GID指定入力(|\gid| 命令)の機能を有効にする。 + \Note エンジンが{\upTeX}でかつUnicode直接指定が有効の場合に + のみ利用できる。 +\item |noglyphid|(既定)\Means + |glyphid| の否定。 \end{itemize} %=========================================================== \section{機能} -以下に該当する和文(CJK)フォントを、以降で述べるユーザ命令で -指定したものに置き換える。 +以下に該当する和文(CJK)用の論理フォント(原メトリックTFM)について、 +それに対応する物理フォント(OpenTypeフォント)を +ユーザ指定のものに置き換える。 \begin{itemize} \item {\pTeX}の標準のフォント --- |rml*|/|gbm*| \item {\upTeX}の日本語フォント --- |urml*|/|ugbm*|/|uprml*|/|upgbm*| \item {\upTeX}の中国語・韓国語フォント \item \Pkg{UTF}パッケージのフォント --- |hmr*|/|hkb*|/|unij*|/|cid*| -\item \Pkg{japanese-otf}パッケージの日本語フォント --- |hmin*|/|hgoth*|/|otf-{u,c}j*| +\item \Pkg{japanese-otf}パッケージの日本語フォント + --- |{,up}hmin*|/|{,up}hgoth*|/|otf-{u,c}j*| \item \Pkg{japanese-otf}パッケージの中国語・韓国語フォント +\item \Pkg{pxufont}パッケージのフォント + --- |zur-?j*| %\item \Pkg{PXfontspec}パッケージの日本語フォント --- |nja{r,s}-*| \end{itemize} -\Note 0.7c版で中国語・韓国語フォントに -対するサポートを行った。 +\Note 中国語・韓国語フォントに対するサポートの詳細については \ref{sec:Non-Japanese}を参照。 和文フォント置換は、dvipdfmxのマップ設定を文書内で @@ -278,28 +303,40 @@ dvipdfmx専用である。 欧文フォントについては実現方法が少し異なる (\ref{sec:Mechanism-Alph}節を参照)。 +\paragraph{単ウェイトの場合の設定} + \Pkg{japanese-otf}パッケージを |deluxe| オプション付きで用いている 場合\textgt{以外}、すなわち明朝・ゴシックとも単ウェイトの場合、 以下の命令を用いる。 \begin{itemize} \item |\setminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means - 「明朝」のフォントを置き換えるフォントをファイル名で指定する。 + 明朝体(|\mcfamily|)のフォントを置き換えるフォントを + ファイル名で指定する。 TTC形式の場合の該当のフォントの番号を\Meta{番号}に指定する。 \item |\setgothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means - 「ゴシック」のフォントを置き換えるフォントをファイル名で指定する。 + ゴシック体(|\gtfamily|% + \footnote{単ウェイト設定を用いる多くの場合、明朝体の太字 + (|\mcfamily|\linebreak[0]|\bfseries|)は + ゴシック体(|\gtfamily| と同じもの)で代替される。}% + )のフォントを置き換えるフォントをファイル名で指定する。 + \Meta{番号}の意味は前項と同じ。 \item 以上の2つの命令、および以降で紹介するフォント設定命令について、 \Meta{フォントファイル名}の値を |*| にするとフォント非埋込を指示する。 また、この値を空にすると、以前に(当該の命令により)設定されていた - 値を取り消して既定の設定に戻す。 + 値を取り消して(dvipdfmxの)既定の設定に戻す。 \end{itemize} -\begin{quote}\small - 例: -\begin{verbatim} -\setminchofont{ipam.ttf} % IPA明朝 -\setgothicfont[0]{msgothic.ttc} % MS ゴシック -\end{verbatim} -\end{quote} + +以下に設定例を示す。 + +\begin{quote}\small\begin{verbatim} +\setminchofont{ipam.ttf} % 明朝体は"IPA明朝" +\setgothicfont[0]{msgothic.ttc} % ゴシック体は"MS ゴシック" +\setminchofont{*} % 明朝体は非埋込 +\setgothicfont{} % ゴシック体は既定設定に従う +\end{verbatim}\end{quote} + +\paragraph{多ウェイトの場合の設定} \Pkg{japanese-otf}パッケージを |deluxe| 付きで用いている場合は、 明朝・ゴシックともに3ウェイトを使う。 @@ -372,19 +409,32 @@ dvipdfmx専用である。 dvipdfmxのマップ行を直接指定して、その読込を指示する。 pdf{\TeX}の |\pdfmapline| に相当する機能。 \item |\diruni|\Means - 和文フォントを、「Unicodeを用いてフォントのグリフにアクセスする」 - 状態に切り替える(宣言型命令)。 - これにより、全角幅の任意の文字が出力可能となる。 -% \footnote{\texttt{directunicode} オプションはBMP内でしか -% 効かないが、この命令の効果はBMP外の文字にも及ぶ。 -% つまり本当に任意の文字が扱える。}% + 現在の和文フォントを“Unicode直接入力” + (フォントマップを“Unicode直接指定”にした上で + さらに和文VFをバイパスする) + の状態に切り替える(宣言型命令)。 + これにより、実際のフォントがサポートする任意の + 文字が出力可能となる。 その代わり、この状態では、約物の周りの空き調整が無効になる。 - 詳細については\ref{sec:Loading}節の |directunicode| オプションの - 説明を参照されたい。 - なお、この命令は、シェープを |diruni| という値に変えることで - 実現されている。 +% 詳細については\ref{sec:Loading}節の |directunicode| オプションの +% 説明を参照されたい。 + \Note “Unicode直接指定”のオプションの何れか + (|unicode|等)が有効であり、 + かつ現在の和文ファミリについてフォントの置き換えが有効に + なっている必要がある。 + \Note 全角幅のグリフでないと正常に出力されない。 + \Note この命令自体は単にシェープを |diruni| という値に変えて + いるだけであり、このシェープに“Unicode直接入力”のフォントが + 予め設定されているわけである。 \item |\textdiruni{|\Meta{テキスト}|}|\Means |\diruni| に対応する引数型命令。 +\item |\gid{|\Meta{整数}|}|\Means + 現在の和文フォントで、指定の値のGIDをもつグリフを出力する。 + \Note 全角幅のグリフでないと正常に出力されない。 + \Note エンジンが{\upLaTeX}であり、 + |unicode| オプションが指定されていて、かつ、 + 現在の和文ファミリについてフォントの置き換えが有効に + 有効になっている必要がある。 \end{itemize} %=========================================================== @@ -396,7 +446,8 @@ dvipdfmx専用である。 例えば「普段使う設定が複数ありそれを簡単に切り替えたい」という 場合にも有用である。 そこで、{\pTeX}において広く行われている設定をパッケージ内に -組み込んで、パッケージオプションでそれを呼び出すという機能を追加した。 +組み込んで、パッケージオプションでそれを呼び出すという機能が +後になって追加された。 \footnote{元々は\Pkg{PXjafont}という別のパッケージで 提供されていた機能であるが、 0.5版からこのパッケージに組み入れることにした。} @@ -935,7 +986,7 @@ CMap指定の利用が必須であったため、慣習的に、dvipdfmxのフ Unicode直接指定をサポートしている。 特に1.0版から、新しいdvipdfmxのOpenType属性の指定を積極的に 利用することで、“AJ1でない”フォントを使用した場合でも、 -CMap指定の場合の機能性を可能な限り保つことを目財している。 +CMap指定の場合の機能性を可能な限り保つことを目指している。 \Note Unicode直接指定に対するサポートは発展途上であるため、 過渡的な要素が多く混ざっていてやや煩雑になっていることに @@ -951,12 +1002,12 @@ Unicode直接指定が有効になる。 最も理想的な設定であるが、現存の{\TeX} Live 2017では利用できない。 \Note dvipdfmxの20170918版以降({\TeX} Live 2018以降)が必要。 \item |unicode*|\Means - |unicode| と同じだが、{\TeX} Live 2017のdvipdfmaに対応するために + |unicode| と同様だが、{\TeX} Live 2017のdvipdfmaに対応するために 妥協を入れた(過渡的な)設定。 一部の約物・記号の出力が異常になる可能性がある。 \Note dvipdfmxの20170318版以降({\TeX} Live 2017以降)が必要。 \item |directunicode*|\Means - |unicode| と同じだが、古い({\TeX} Live 2016以前の)dvipdfmaに + |unicode| と同様だが、古い({\TeX} Live 2016以前の)dvipdfmaに 対応するために、OpenType属性の指定を全く行わない設定。 つまり、入力のUnicode文字に対する既定のグリフが常に出力され、 異体字の区別は全て無効になる。 @@ -1061,7 +1112,7 @@ OT1として扱われるが、実際にはOT1の一部のグリフしか持っ (例えば jsarticle の標準設定ならJISメトリック) \item 欧文部分を置き換えた場合、残念ながら欧文も等幅 (半角幅)になってしまう。 -\item さらに、アクセント付きの文字(\'e 等)や非英語文字 + さらに、アクセント付きの文字(\'e 等)や非英語文字 ({\ss} 等)も使えない。 大抵の日本語用フォントにはその文字を出力するためのグリフがそもそも ないのであるが、例えあったとしても使えない。 @@ -1076,9 +1127,9 @@ OT1として扱われるが、実際にはOT1の一部のグリフしか持っ 設定に欧文フォントの置換の際にも従っているが、 明朝のみが置換されている場合は、 明朝の置換フォントが太字にも適用される。 -\item 既述のように、0.3版以降では\Pkg{japanese-otf}パッケージで |deluxe|、 - |bold|、|noreplace| のいずれも指定されてない場合でも |\setgothicfont| - が有効になる。 +%\item 既述のように、0.3版以降では\Pkg{japanese-otf}パッケージで |deluxe|、 +% |bold|、|noreplace| のいずれも指定されてない場合でも |\setgothicfont| +% が有効になる。 \end{itemize} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty b/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty index 186d862c680..b7b236e0ed2 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/02/03 v1.3] +\ProvidesPackage{pxchfon}[2019/03/20 v1.3a] \def\pxcz@pkgname{pxchfon} %% preparations @@ -97,6 +97,24 @@ \newif\ifpxcz@otf@multi \pxcz@otf@multifalse \@ifpackagewith{otf}{multi}{\pxcz@otf@multitrue}{} +%% \ifpxcz@otf@expert +\newif\ifpxcz@otf@expert \pxcz@otf@expertfalse +\@ifpackagewith{otf}{expert}{\pxcz@otf@experttrue}{} + +%% \pxcz@pxufont@avail +\IfFileExists{pxufont-ruby.sty}{\chardef\pxcz@pxufont@avail=2 }{% +\IfFileExists{pxufont.sty}{\chardef\pxcz@pxufont@avail=1 }{% + \chardef\pxcz@pxufont@avail=0 }} + +%% \pxcz@pxufont@loaded +\@ifpackageloaded{pxufont}{% + \ifx t\pxufontUseRubyFont \chardef\pxcz@pxufont@loaded=2 + \else \chardef\pxcz@pxufont@loaded=1 + \fi +}{%else + \chardef\pxcz@pxufont@loaded=0 +} + %--------------------------------------- handle options %% variables @@ -265,6 +283,12 @@ %% apply default value for \pxcz@directunicode \ifx\pxcz@directunicode\relax \let\pxcz@directunicode\pxcz@directunicode@none + \ifnum\pxcz@pxufont@loaded>0 + \PackageWarningNoLine\pxcz@pkgname + {Option 'unicode' is enabled, since the package\MessageBreak + 'pxufont' is already loaded} + \let\pxcz@directunicode\pxcz@directunicode@full + \fi \pxcz@directunicode@defaulttrue \fi @@ -393,50 +417,63 @@ %% 'replace-lecacycode' requires the 'pxufont' package \ifnum\pxcz@legacycode=\pxcz@legacycode@replace - \IfFileExists{pxufont.sty}{}{%else + \ifnum\pxcz@pxufont@avail<1 \PackageError\pxcz@pkgname {The option 'replace-lecacycode' requires the 'pxufont'\MessageBreak package, but it is not installed}% {The option 'suprress-lecacycode' is applied as fallback.\MessageBreak \@ehc} - \let\pxcz@legacycode\pxcz@legacycode@suppress}% + \let\pxcz@legacycode\pxcz@legacycode@suppress + \fi \fi -%% 'glyphid' requires 'replace-' or 'suppress-legacycode' -\pxcz@okfalse -\ifnum\pxcz@legacycode=\pxcz@legacycode@replace \pxcz@oktrue \fi -\ifnum\pxcz@legacycode=\pxcz@legacycode@suppress \pxcz@oktrue \fi -\ifpxcz@uptex\else \pxcz@okfalse \fi -\ifpxcz@ok\else - \ifpxcz@glyphid +%% check requirements for 'glyphid' +\ifpxcz@glyphid + \pxcz@oktrue + \ifnum\pxcz@legacycode=\pxcz@legacycode@replace\else \pxcz@okfalse \fi + \ifpxcz@uptex\else \pxcz@okfalse \fi + \ifnum\pxcz@pxufont@avail<2 \pxcz@okfalse \fi + \ifpxcz@ok\else \PackageError\pxcz@pkgname {The option 'glyphid' cannot be used here. You must\MessageBreak - use upLaTeX and the 'unicode' option} + use upLaTeX and the 'unicode' option, and package\MessageBreak + 'pxufont' of v0.5 or later must be installed} {\@ehc} \pxcz@glyphidfalse \fi +\fi + +%% check requirements for 'expert' +\pxcz@oktrue +\ifnum\pxcz@legacycode=\pxcz@legacycode@replace\else \pxcz@okfalse \fi +\ifnum\pxcz@directunicode=\pxcz@directunicode@full\else \pxcz@okfalse \fi +\ifpxcz@uniquify \pxcz@okfalse \fi % no 'unicode*' +\ifpxcz@switch@font@xwid \pxcz@okfalse \fi % no 'unicode+' +\ifnum\pxcz@pxufont@avail<2 \pxcz@okfalse \fi +\ifpxcz@ok\else \if t\pxcz@expert % explicitly given \PackageError\pxcz@pkgname {The option 'expert' cannot be used here. You must\MessageBreak - use upLaTeX and the 'unicode' option} + use upLaTeX and the 'unicode' option, and package\MessageBreak + 'pxufont' of v0.5 or later must be installed} {\@ehc} \fi \let\pxcz@expert=f \fi %% apply default for \pxcz@expert -\@ifpackagewith{otf}{expert}{% +\ifpxcz@otf@expert \ifx\pxcz@expert\relax \let\pxcz@expert=t \fi -}{%else +\else \if t\pxcz@expert \PackageWarningNoLine\pxcz@pkgname {The 'expert' option will be ignored, since the\MessageBreak expert mode of the 'otf' package is not enabled} \fi \let\pxcz@expert=f -} +\fi %--------------------------------------- user interface @@ -772,13 +809,7 @@ \pxcz@switch@font@for{fwid}% \pxcz@add@lopt{fwid}} % AJ16/AK12/AG14/AC14 -\pxcz@declare@entry@modifier{AJ16}{% - \def\pxcz@csi{AJ16}% - \if t\pxcz@expert \ifnum\pxcz@directunicode<\pxcz@directunicode@all\else - \ifx\pxcz@font\pxcz@noembed\else - \let\pxcz@cmap\pxcz@cmap@directuni \let\pxcz@csi\relax - \pxcz@add@lopt{ruby}% - \fi\fi\fi} +\pxcz@declare@entry@modifier{AJ16}{\def\pxcz@csi{AJ16}} \pxcz@declare@entry@modifier{AK12}{\def\pxcz@csi{AK12}\pxcz@retaintrue} \pxcz@declare@entry@modifier{AG14}{\def\pxcz@csi{AG14}\pxcz@retaintrue} \pxcz@declare@entry@modifier{AC14}{\def\pxcz@csi{AC14}\pxcz@retaintrue} @@ -795,12 +826,16 @@ \else \pxcz@add@lopt{hkna}% \fi \fi\fi} -% SubG -\pxcz@declare@entry@modifier{SubG}{% - \ifpxcz@glyphid - \edef\pxcz@cmap{Identity-\pxcz@cmap}\def\pxcz@csi{I}% - \pxcz@retaintrue \pxcz@retain@csitrue +% Ruby +\pxcz@declare@entry@modifier{Ruby}{% + \if t\pxcz@expert + \let\pxcz@cmap\pxcz@cmap@directuni + \pxcz@add@lopt{ruby}% \fi} +% I +\pxcz@declare@entry@modifier{I}{% + \def\pxcz@csi{I}% + \pxcz@retaintrue \pxcz@retain@csitrue} % Fin: final step \pxcz@declare@entry@modifier{Fin}{% \ifx\pxcz@csi\relax\else @@ -947,8 +982,8 @@ \Entry{mnl}{hminl-v} {V} {90,V}% \Entry{mnl}{otf-ujmln-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{mnl}{otf-ujmln-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{mnl}{hminln-h} {H} {SubG}% -\Entry{mnl}{hminln-v} {V} {SubG,V}% +\Entry{mnl}{hminln-h} {H} {}% +\Entry{mnl}{hminln-v} {V} {V}% \Entry{mnr}{otf-ujmr-h} {UniJIS-UTF16-H} {Uni,90,FWid}% \Entry{mnr}{otf-ujmr-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% \Entry{mnr}{otf-cjmr-h} {Identity-H} {AJ16}% @@ -957,8 +992,8 @@ \Entry{mnr}{hminr-v} {V} {90,V}% \Entry{mnr}{otf-ujmrn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{mnr}{otf-ujmrn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{mnr}{hminrn-h} {H} {SubG}% -\Entry{mnr}{hminrn-v} {V} {SubG,V}% +\Entry{mnr}{hminrn-h} {H} {}% +\Entry{mnr}{hminrn-v} {V} {V}% \Entry{mnb}{otf-ujmb-h} {UniJIS-UTF16-H} {Uni,90,FWid}% \Entry{mnb}{otf-ujmb-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% \Entry{mnb}{otf-cjmb-h} {Identity-H} {AJ16}% @@ -967,8 +1002,8 @@ \Entry{mnb}{hminb-v} {V} {90,V}% \Entry{mnb}{otf-ujmbn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{mnb}{otf-ujmbn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{mnb}{hminbn-h} {H} {SubG}% -\Entry{mnb}{hminbn-v} {V} {SubG,V}% +\Entry{mnb}{hminbn-h} {H} {}% +\Entry{mnb}{hminbn-v} {V} {V}% \Entry{gtr}{otf-ujgr-h} {UniJIS-UTF16-H} {Uni,90,FWid}% \Entry{gtr}{otf-ujgr-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% \Entry{gtr}{otf-cjgr-h} {Identity-H} {AJ16}% @@ -977,8 +1012,8 @@ \Entry{gtr}{hgothr-v} {V} {90,V}% \Entry{gtr}{otf-ujgrn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{gtr}{otf-ujgrn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{gtr}{hgothrn-h} {H} {SubG}% -\Entry{gtr}{hgothrn-v} {V} {SubG,V}% +\Entry{gtr}{hgothrn-h} {H} {}% +\Entry{gtr}{hgothrn-v} {V} {V}% \Entry{gtb}{otf-ujgb-h} {UniJIS-UTF16-H} {Uni,90,FWid}% \Entry{gtb}{otf-ujgb-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% \Entry{gtb}{otf-cjgb-h} {Identity-H} {AJ16}% @@ -987,8 +1022,8 @@ \Entry{gtb}{hgothb-v} {V} {90,V}% \Entry{gtb}{otf-ujgbn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{gtb}{otf-ujgbn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{gtb}{hgothbn-h} {H} {SubG}% -\Entry{gtb}{hgothbn-v} {V} {SubG,V}% +\Entry{gtb}{hgothbn-h} {H} {}% +\Entry{gtb}{hgothbn-v} {V} {V}% \Entry{gtx}{otf-ujge-h} {UniJIS-UTF16-H} {Uni,90,FWid}% \Entry{gtx}{otf-ujge-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% \Entry{gtx}{otf-cjge-h} {Identity-H} {AJ16}% @@ -997,8 +1032,8 @@ \Entry{gtx}{hgotheb-v} {V} {90,V}% \Entry{gtx}{otf-ujgen-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{gtx}{otf-ujgen-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{gtx}{hgothebn-h} {H} {SubG}% -\Entry{gtx}{hgothebn-v} {V} {SubG,V}% +\Entry{gtx}{hgothebn-h} {H} {}% +\Entry{gtx}{hgothebn-v} {V} {V}% \Entry{mgr}{otf-ujmgr-h} {UniJIS-UTF16-H} {Uni,90,FWid}% \Entry{mgr}{otf-ujmgr-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% \Entry{mgr}{otf-cjmgr-h} {Identity-H} {AJ16}% @@ -1007,8 +1042,8 @@ \Entry{mgr}{hmgothr-v} {V} {90,V}% \Entry{mgr}{otf-ujmgrn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% \Entry{mgr}{otf-ujmgrn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% -\Entry{mgr}{hmgothrn-h} {H} {SubG}% -\Entry{mgr}{hmgothrn-v} {V} {SubG,V}% +\Entry{mgr}{hmgothrn-h} {H} {}% +\Entry{mgr}{hmgothrn-v} {V} {V}% % \ifpxcz@otf@multi \Entry{kom}{otf-ukmr-h} {UniKS-UTF16-H} {Uni,FWid}% @@ -1093,10 +1128,36 @@ \Entry{mgr}{uphmgothrn-v} {UniJIS2004-UTF16-V} {Uni*,04,V,Exp}% } \pxcz@mapentry{GID}{% -\Entry{mnr}{hminrn-h} {H} {SubG}% -\Entry{mnr}{hminrn-v} {V} {SubG,V}% -\Entry{gtr}{hgothrn-h} {H} {SubG}% -\Entry{gtr}{hgothrn-v} {V} {SubG,V}% +\Entry{mnl}{zur-gjml-h} {Identity-H} {I}% +\Entry{mnl}{zur-gjml-v} {Identity-V} {I,V}% +\Entry{mnr}{zur-gjmr-h} {Identity-H} {I}% +\Entry{mnr}{zur-gjmr-v} {Identity-V} {I,V}% +\Entry{mnb}{zur-gjmb-h} {Identity-H} {I}% +\Entry{mnb}{zur-gjmb-v} {Identity-V} {I,V}% +\Entry{gtr}{zur-gjgr-h} {Identity-H} {I}% +\Entry{gtr}{zur-gjgr-v} {Identity-V} {I,V}% +\Entry{gtb}{zur-gjgb-h} {Identity-H} {I}% +\Entry{gtb}{zur-gjgb-v} {Identity-V} {I,V}% +\Entry{gtx}{zur-gjge-h} {Identity-H} {I}% +\Entry{gtx}{zur-gjge-v} {Identity-V} {I,V}% +\Entry{mgr}{zur-gjmgr-h} {Identity-H} {I}% +\Entry{mgr}{zur-gjmgr-v} {Identity-V} {I,V}% +} +\pxcz@mapentry{EXPERT}{% +\Entry{mnl}{zur-rjml-h} {unicode} {Ruby}% +\Entry{mnl}{zur-rjml-v} {unicode} {V,Ruby}% +\Entry{mnr}{zur-rjmr-h} {unicode} {Ruby}% +\Entry{mnr}{zur-rjmr-v} {unicode} {V,Ruby}% +\Entry{mnb}{zur-rjmb-h} {unicode} {Ruby}% +\Entry{mnb}{zur-rjmb-v} {unicode} {V,Ruby}% +\Entry{gtr}{zur-rjgr-h} {unicode} {Ruby}% +\Entry{gtr}{zur-rjgr-v} {unicode} {V,Ruby}% +\Entry{gtb}{zur-rjgb-h} {unicode} {Ruby}% +\Entry{gtb}{zur-rjgb-v} {unicode} {V,Ruby}% +\Entry{gtx}{zur-rjge-h} {unicode} {Ruby}% +\Entry{gtx}{zur-rjge-v} {unicode} {V,Ruby}% +\Entry{mgr}{zur-rjmgr-h} {unicode} {Ruby}% +\Entry{mgr}{zur-rjmgr-v} {unicode} {V,Ruby}% } \pxcz@mapentry{PXOTF}{% } @@ -1255,67 +1316,32 @@ \else#2\fi} \if d\pxcz@otf@weight % deluxe -\pxcz@dg@decl@shape{hmc}{l}t{hminln}% -\pxcz@dg@decl@shape{hmc}{m}t{hminrn}% -\pxcz@dg@decl@shape{hmc}{bx}t{hminbn}% -\pxcz@dg@decl@shape{hgt}{m}t{hgothrn}% -\pxcz@dg@decl@shape{hgt}{bx}t{hgothbn}% -\pxcz@dg@decl@shape{hgt}{eb}t{hgothebn}% -\pxcz@dg@decl@shape{mg}{m}t{hmgothrn}% +\pxcz@dg@decl@shape{hmc}{l}t{zur-gjml}% +\pxcz@dg@decl@shape{hmc}{m}t{zur-gjmr}% +\pxcz@dg@decl@shape{hmc}{bx}t{zur-gjmb}% +\pxcz@dg@decl@shape{hgt}{m}t{zur-gjgr}% +\pxcz@dg@decl@shape{hgt}{bx}t{zur-gjgb}% +\pxcz@dg@decl@shape{hgt}{eb}t{zur-gjge}% +\pxcz@dg@decl@shape{mg}{m}t{zur-gjmgr}% \else\if b\pxcz@otf@weight % bold -\pxcz@dg@decl@shape{hmc}{m}t{hminrn}% +\pxcz@dg@decl@shape{hmc}{m}t{zur-gjmr}% \pxcz@dg@decl@shape{hmc}{bx}f{ssub*hgt/m/dirgid}{}% -\pxcz@dg@decl@shape{hgt}{m}t{hgothbn}% +\pxcz@dg@decl@shape{hgt}{m}t{zur-gjgb}% \pxcz@dg@decl@shape{hgt}{bx}f{ssub*hgt/m/dirgid}{}% \else\if r\pxcz@otf@weight % default -\pxcz@dg@decl@shape{hmc}{m}t{hminrn}% +\pxcz@dg@decl@shape{hmc}{m}t{zur-gjmr}% \pxcz@dg@decl@shape{hmc}{bx}f{ssub*hgt/m/dirgid}{}% -\pxcz@dg@decl@shape{hgt}{m}t{hgothrn}% +\pxcz@dg@decl@shape{hgt}{m}t{zur-gjgr}% \pxcz@dg@decl@shape{hgt}{bx}f{ssub*hgt/m/dirgid}{}% \else % noreplace -\pxcz@dg@decl@shape{mc}{m}t{hminrn}% +\pxcz@dg@decl@shape{mc}{m}t{zur-gjmr}% \pxcz@dg@decl@shape{mc}{bx}f{ssub*gt/m/dirgid}{}% -\pxcz@dg@decl@shape{gt}{m}t{hgothrn}% +\pxcz@dg@decl@shape{gt}{m}t{zur-gjgr}% \pxcz@dg@decl@shape{gt}{bx}f{ssub*gt/m/dirgid}{}% \fi\fi\fi \fi %---- </glyphid> -\ifx t\pxcz@expert %---- <*expert> - -%% \pxcz@dx@decl@shape{<fam>}{<ser>}<sw>{<tfmname>} -\@onlypreamble\pxcz@dx@decl@shape -\def\pxcz@dx@decl@shape#1#2#3#4{% -\DeclareFontShape{JY2}{#1}{#2}{n}{<->% - \pxcz@dx@shape@spec{#3}{#4}{h}}{}% -\DeclareFontShape{JT2}{#1}{#2}{n}{<->% - \pxcz@dx@shape@spec{#3}{#4}{v}}{}} -\@onlypreamble\pxcz@dx@shape@spec -\def\pxcz@dx@shape@spec#1#2#3{% - \if#1t% - s*[\pxcz@du@scale]#2-#3% - \else#2\fi} - -\AtEndOfPackage{% this must be after loading pxufont -\if d\pxcz@otf@weight % deluxe -\pxcz@dx@decl@shape{ruby}{l}t{otf-cjml}% -\pxcz@dx@decl@shape{ruby}{m}t{otf-cjmr}% -\pxcz@dx@decl@shape{ruby}{bx}t{otf-cjmb}% -\pxcz@dx@decl@shape{rubyg}{m}t{otf-cjgr}% -\pxcz@dx@decl@shape{rubyg}{bx}t{otf-cjgb}% -\pxcz@dx@decl@shape{rubyg}{eb}t{otf-cjge}% -\pxcz@dx@decl@shape{rubymg}{m}t{otf-cjmgr}% -\else\if b\pxcz@otf@weight % bold -\pxcz@dx@decl@shape{ruby}{m}t{otf-cjmr}% -\pxcz@dx@decl@shape{ruby}{bx}t{otf-cjgb}% -\else % default -\pxcz@dx@decl@shape{ruby}{m}t{otf-cjmr}% -\pxcz@dx@decl@shape{ruby}{bx}t{otf-cjgr}% -\fi\fi -} - -\fi %---- </expert> - \fi %---- </diruni-ok> %% \pxcz@err@diruni @@ -1462,9 +1488,10 @@ \pxcz@addtospec{UPOTF}% \fi \pxcz@addtospec{OTF}% - \else - \ifpxcz@glyphid \pxcz@addtospec{GID}% - \fi + \fi + \ifpxcz@glyphid \pxcz@addtospec{GID}% + \fi + \ifx t\pxcz@expert \pxcz@addtospec{EXPERT}% \fi \ifpxcz@utf \pxcz@addtospec{UTF}% \fi @@ -1883,9 +1910,11 @@ \fi %% load pxufont -\ifnum\pxcz@legacycode=\pxcz@legacycode@replace +\ifx t\pxcz@expert + \RequirePackage{pxufont-ruby}[] +\else\ifnum\pxcz@legacycode=\pxcz@legacycode@replace \RequirePackage{pxufont}[] -\fi +\fi\fi %--------------------------------------- all done \endinput |