% 文字コードは UTF-8
% uplatex で組版する
\documentclass[uplatex,dvipdfmx,a4paper]{jsarticle}
\usepackage{color}
\definecolor{myblue}{rgb}{0,0,0.75}
\definecolor{mygreen}{rgb}{0,0.45,0}
\usepackage[colorlinks,hyperfootnotes=false]{hyperref}
\usepackage{pxjahyper}
\hypersetup{linkcolor=myblue,urlcolor=mygreen}
\usepackage{metalogo}
\usepackage{shortvrb}
\MakeShortVerb{\|}
\newcommand{\PkgVersion}{1.2b}
\newcommand{\PkgDate}{2019/01/21}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
\newcommand{\Means}{：\ }
\providecommand{\pTeX}{p\TeX}
\providecommand{\pLaTeX}{p\LaTeX}
\providecommand{\upTeX}{u\pTeX}
\providecommand{\upLaTeX}{u\pLaTeX}
%-----------------------------------------------------------
\begin{document}
\title{\Pkg{pxchfon} パッケージ}
\author{八登崇之\ （Takayuki YATO; aka.~``ZR''）}
\date{v\PkgVersion\quad[\PkgDate]}
\maketitle
\tableofcontents

%===========================================================
\section{概要}

{\pLaTeX}／{\upLaTeX}の文書の標準のフォント（明朝・ゴシック）
をユーザ指定のものに置き換える。
dvipdfmx専用である。
使用するフォントを{\LaTeX}文書中で指定するので、
一度パッケージをインストールするだけで、
任意の日本語フォント（ただし等幅に限る）を使うことができる。
欧文部分を同じ日本語フォントで置き換えることも可能である。
\Pkg{japanese-otf}\footnote{\Pkg{japanese-otf}パッケージ\Means
  https://www.ctan.org/pkg/japanese-otf}%
パッケージにも対応している。

0.5版での拡張で、{\pTeX}において広く行われているフォント設定
（IPAフォントの使用等）をパッケージオプション一つで
行う機能を追加した。

%===========================================================
\section{前提環境}

\begin{itemize}
\item {\TeX}フォーマット\Means {\pLaTeX}／{\upLaTeX}
\item DVIウェア\Means dvipdfmx
\item 前提パッケージ\Means
  \begin{itemize}
  \item \Pkg{atbegshi}パッケージ（|everypage| オプション使用時）
  \item \Pkg{pxufont}パッケージ（|unicode| オプション使用時）
  \end{itemize}
\end{itemize}

%===========================================================
\section{読込}
\label{sec:Loading}

プレアンブルにおいて、|\usepackage| を用いて読み込む。
\begin{quote}\small\begin{verbatim}                                      
\usepackage[<オプション>,...]{pxchfon}
\end{verbatim}\end{quote}

オプションは次のものが用意されている。

\begin{itemize}
\item \textbf{ドライバオプション}\Means
  |dvipdfmx|、|dvips|、|dviout|、|xdvi| および |nodvidriver|%
  \footnote{ドライバ依存動作を明示的に無効化するための指定。}
  が指定できる。
  ただし、本パッケージの主要機能である
  「フォントマップの文書内での指定」
  がサポートされるのはdvipdfmxのみである。
  他のDVIウェアにおける動作については
  \ref{sec:Other-Drivers}節を参照。
  ドライバオプションの既定値は |dvipdfmx| である。
\item \textbf{プリセット指定オプション}（|ipa|、|hiragino| 等）
  名前に対応するプリセット指定を有効にする。
  \Note 詳細については\ref{sec:Preset}節を参照。
\item \textbf{ファイルプリセット指定オプション}%
  （|+|\mbox{}\textgt{名前} または |*|\mbox{}\textgt{名前}）
  名前に対応するファイルプリセット指定を有効にする。
  \Note 詳細については\ref{sec:FilePreset}節を参照。
\item |alphabet|\Means
  欧文フォントも指定されたフォントの英数字部分で置き換える。
  （明朝が |\rmfamily|、ゴシックが |\sffamily| に適用される。）
  プリセット指定オプション未使用の場合は既定で有効である。
\item |noalphabet|\Means
  |alphabet| の否定。
  欧文フォントは変更しない。
%  インストール時に欧文用の設定をしていない場合は必ずこれを
%  指定する必要がある。
  \textbf{プリセット指定オプション使用の場合はこちらが既定で有効になる。}
\item |otf|（既定）\Means
  \Pkg{japanese-otf}パッケージの使用時に、
  そのフォントも置き換えの対象とする。
\item |nootf|\Means
  |otf| の否定。
  \Pkg{japanese-otf}パッケージのフォントは置き換えない。
  \Note この場合、\Pkg{japanese-otf}パッケージで |noreplace| を
  指定しない限り、標準の和文フォントは変化しない。
\item |prefer2004jis|\Means
  {\pTeX}／{\upTeX}の標準和文フォントのCMapを「2004JIS字形」指定の
  ものに変更する。
  \footnote{\Pkg{japanese-otf}パッケージの和文フォントについては、
    \Pkg{japanese-otf}パッケージの |jis2004| オプションで2004JIS字形
    指定を行う仕様になっている。
    そのため、本パッケージの |prefer2004jis| の対象にはならない。
    ところが0.7h版以前の本パッケージでは、
    {\upTeX}上の\Pkg{japanese-otf}の和文フォントにも |prefer2004jis| を
    適用していた。
    これは、昔の\Pkg{japanese-otf}が{\upTeX}上では |jis2004| オプションに
    未対応であったためであり、非公式の暫定仕様であった。
    現在では、この暫定仕様は廃止されている。}
\item |noprefer2004jis|（既定）\Means
  |prefer2004jis| の否定。
\item |(no)jis2004|\Means
  |(no)prefer2004jis| の別名。
  \Note グローバルオプションに |jis2004| を指定して\Pkg{japanese-otf}と
  \Pkg{pxchfon}の両方に適用することを意図している。
\item |oneweight|\Means
  \Pkg{japanese-otf}パッケージを単ウェイトで使用する場合に、
  プリセット設定で使われるフォントの集合を{\pTeX}標準と同一にする。
  \footnote{小塚フォントのプリセットでは、{\pTeX}標準のゴシック
  （jisg等）にはMウェイト（Acrobatに付属のフォントの一つ）を
  割り当てる一方で、\Pkg{japanese-otf}パッケージの3ウェイトのゴシックには
  R、B、Hウェイトを割り当てている。
  従って、\Pkg{japanese-otf}を単ウェイトで用いる時にMウェイトを使いたい
  場合には \texttt{oneweight} オプションを指定すればよい。
  現状では、小塚フォント以外のプリセットではこのオプションを
  用いる必要はない。}
\item |nooneweight|（既定）\Means
  |oneweight| の否定。
\end{itemize}

\paragraph{上級者向けオプション}
\begin{itemize}
\item |relfont|\Means
  指定された和文フォントの英数字部分を（{\pLaTeX}の標準機能の）
  従属欧文フォントとして設定する。
  すなわち、既定の欧文フォントは置き換えないが、|\selectfont| で
  和文フォントを選択する際に予め |\userelfont| を実行しておくと
  欧文も和文と同じ書体になる。
  \footnote{特に
  「\texttt{\symbol{`\\}userelfont\symbol{`\\}selectfont}」
  だけ実行すると、欧文が現在の和文と同じ書体になる。}
  （ただし置き換えていない総称ファミリについては無効。）
  \Note |alphabet|、|noalphabet|、|relfont| の3つのオプションは
  排他である。
\item |everypage|\Means
  DVIの全ページにマップ設定を書き込む。
  \Note 詳細については\ref{sec:PageSelection}節を参照。
\item |noeverypage|（既定）\Means
  |everypage|の否定。
  DVIの先頭ページにのみマップ設定を書き込む。
\item \textbf{Unicode直接指定オプション}\Means
  一部（または全部）のフォントについて、エンコーディング指定方式を
  “Cmap指定”から“Unicode直接指定”に変更する。
  |nodirectunicode|（既定）、|directunicode|、|directunicode*|、
  |unicode*|、|unicode| の5種類の指定がある。
  \Note 詳細については\ref{sec:DirectUnicode}節を参照。
  \Note 一部のプリセット指定はUnicode直接指定の既定値を変更する。
%\item |directunicode|\Means
%  \Pkg{japanese-otf}パッケージのUnicode出力用フォント（|\UTF{}| の出力）
%  について、Unicodeを用いてフォントのグリフにアクセスするように
%  設定する。
%  この設定を用いると、当該のフォントのもつ任意のUnicode文字
%  （ただし全角幅に限る）が利用可能になる。
%  \footnote{通常は、Unicodeを一旦Adobe-Japan1のCIDに変換して、
%  CIDでフォントのグリフにアクセスするという処理になる。
%  このため、Adobe-Japan1のグリフと対応しないUnicode文字は
%  普通は使えない。なお、\texttt{directunicode} は0.6c版では
%  横書きのみの対応であったが、0.7版で縦書きにも対応した。
%  ただし、dvipdfmxの仕様の都合で、縦書き用グリフにはならない。
%  また、現状では実質的に効果がBMP内の文字に限られる。}
%\item |directunicode*|\Means
%  |directunicode| の設定を適用し、さらに、{\upTeX}標準の
%  和文フォントにもUnicodeを用いたグリフアクセスを設定する。
%  \Note これは、「非標準的なCMapをもつOpenTypeフォント
%  \footnote{例えば、Adobeの「Source Han Sans」など。}%
%  を\Pkg{pxchfon}で使いたい」
%  という要求のための部分的な解決法である。
%  このオプションを利用する場合、状況によって一部の出力が異常になる
%  可能性があることに予め注意すべきである。
%  例えば、|prefer2004jis| は機能しなくなるし、また縦組の約物の
%  出力は異常になる。
%\item |nodirectunicode|（既定）\Means
%  |directunicode| の否定。
\item |usecmapforalphabet|\Means
  |alphabet|（または |relfont|）を指定して日本語フォントの英数字部分を
  欧文フォントとして使う際に、そのフォントマップについて
  “CMap指定”を利用する。
  \Note “CMap指定”と“Unicode直接指定”の違いについては
  \ref{sec:DirectUnicode}節を参照。
  \Note 半角英数字用の\texttt{UniJIS-UCS2-HW-H}というCMapが指定される。
  \Note “AJ1である”OpenTypeフォントの場合、“Unicode直接指定”
  を使うと英数字がプロポーショナル幅のものになってしまうので、
  このオプションを指定して半角幅のものを使う必要がある。
  \footnote{%
  念のため補足すると、半角幅しかサポートされないのは技術的制限による。
%  すなわち、フォントを「後から置き換える」ということを可能に
%  するためには、TFMは固定幅でなければならないのである。
  \ref{sec:Notice}節を参照されたい。}
\item |nousecmapforalphabet|（既定）\Means
  |usecmapforalphabet| の否定。
  \Note 和文と異なり、欧文フォントでは“Unicode直接指定”の方が
  既定となる。
  ただし、|unicode*| または |unicode| が指定された場合はそちらの指定が
  優先されて欧文フォントもUnicode直接指定になる。
  \Note 一部のプリセット指定は |usecmapforalphabet| の指定を強制する。
\item |dumpmap|\Means
  「通常マップファイルダンプ出力」を有効にする。
  すなわち、本パッケージにより文書に設定されるマップ行を、
  \Meta{ジョブ名}|.map| の名のファイルに書き出す。
\item |nodumpmap|（既定）\Means
  |dumpmap| の否定。
\item |dumpmaptl|\Means
  「{\TeX} Liveマップファイルダンプ出力」を有効にする。
  すなわち、本パッケージにより設定されたフォントマップに対応する
  kanji-config-updmap用のマップファイルのセット
  （|ptex-NAME.map|、|otf-NAME.map|、|uptex-NAME.map|、
  |otf-up-NAME.map| の4つ、ただし |NAME| はジョブ名）
  を出力する。
  \Note 例えば、\Pkg{japanese-otf}パッケージが使われない場合は
  \Pkg{japanese-otf}パッケージ用のマップ行は適用されない。
  そのため、通常ダンプ出力はそのようなマップ行は書き出されない。
  これに対して、
  {\TeX} Live用ダンプ出力は「実際に適用されるか」は無関係で
  kanji-config-updmapの規則に従うため、
  \Pkg{japanese-otf}パッケージ用のマップが |otf-*.map| に書き出される。
\item |nodumpmaptl|（既定）\Means
  |dumpmaptl| の否定。
\item |strictcsi|\Means
  |Identity-H/V| のCMapが指定されたマップ行について、“CSI指定”は
  （仕様に厳密に従って）フォントがTrueTypeグリフの場合にのみ出力する。
  \Note “CSI指定”とはフォントファイル名の直後に書く“|/AJ1|”の類の
    ことで、本来は（グリフ集合情報を持たない）TrueTypeグリフのフォント
    のためのものである。
    しかし、CFFグリフのフォントに対してCSI指定があっても特に問題は
    起こらず、また、フォントのグリフ種別の判断する処理は少し時間が
    かかるため、既定では厳密な判定は行わない。
\item |nostrictcsi|（既定）\Means
  |strictcsi| の否定。
  |Identity-H/V| に対する“CSI指定”は常に出力される。
  \Note さすがにファイルに出力されたマップ行に不備があるのは
    避けたいので、|dumpmap(tl)| が指定された場合は、
    既定が |strictcsi| に変更される。
\end{itemize}

%===========================================================
\section{機能}

以下に該当する和文（CJK）フォントを、以降で述べるユーザ命令で
指定したものに置き換える。
\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}パッケージの中国語・韓国語フォント
%\item \Pkg{PXfontspec}パッケージの日本語フォント --- |nja{r,s}-*|
\end{itemize}

\Note 0.7c版で中国語・韓国語フォントに
対するサポートを行った。
\ref{sec:Non-Japanese}を参照。

和文フォント置換は、dvipdfmxのマップ設定を文書内で
（一時的に）変更するという方法で実現している。
欧文フォントについては実現方法が少し異なる
（\ref{sec:Mechanism-Alph}節を参照）。

\Pkg{japanese-otf}パッケージを |deluxe| オプション付きで用いている
場合\textgt{以外}、すなわち明朝・ゴシックとも単ウェイトの場合、
以下の命令を用いる。

\begin{itemize}
\item |\setminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
  「明朝」のフォントを置き換えるフォントをファイル名で指定する。
  TTC形式の場合の該当のフォントの番号を\Meta{番号}に指定する。
\item |\setgothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
  「ゴシック」のフォントを置き換えるフォントをファイル名で指定する。
\item 以上の2つの命令、および以降で紹介するフォント設定命令について、
  \Meta{フォントファイル名}の値を |*| にするとフォント非埋込を指示する。
  また、この値を空にすると、以前に（当該の命令により）設定されていた
  値を取り消して既定の設定に戻す。
\end{itemize}
\begin{quote}\small
  例:
\begin{verbatim}
\setminchofont{ipam.ttf}        % IPA明朝
\setgothicfont[0]{msgothic.ttc} % ＭＳ ゴシック
\end{verbatim}
\end{quote}

\Pkg{japanese-otf}パッケージを |deluxe| 付きで用いている場合は、
明朝・ゴシックともに3ウェイトを使う。
この時は、各ウェイト毎にフォント指定ができる。
またこの場合、丸ゴシック（|\mgfamily|）が使用可能になるが、
これに対して置き換えるフォントを指定することができる。

\begin{itemize}
\newcommand*{\CNot}{\footnotesize}
\item |\setlightminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      明朝・細ウェイト{\CNot （|\mcfamily\ltseries|）}
\item |\setmediumminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      明朝・中ウェイト{\CNot （|\mcfamily\mdseries|）}
\item |\setboldminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      明朝・太ウェイト{\CNot （|\mcfamily\bfseries|）}
\item |\setmediumgothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      ゴシック・中ウェイト{\CNot （|\gtfamily\mdseries|）}
\item |\setboldgothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      ゴシック・太ウェイト{\CNot （|\gtfamily\bfseries|）}
\item |\setxboldgothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      ゴシック・極太ウェイト{\CNot （|\gtfamily\ebseries|）}
\item |\setmarugothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      丸ゴシック{\CNot （|\mgfamily|）}
\end{itemize}

さらに、この場合、|\setminchofont| と |\setgothicfont| は各々のファミリの
3ウェイト全てを指定のフォントで置き換える。
実質的に単ウェイトになってしまうようで無意味に思えるが、
例えば明朝を実際には 2ウェイトしか使わないという時に、
\begin{quote}\small\begin{verbatim}
\setminchofont{minchoW3.otf}      %まず3ウェイト指定して
\setboldminchofont{minchoW6.otf}  %太だけ再指定する
\end{verbatim}\end{quote}
とする使い方が考えられる。
特に、欧文フォントも置き換えたい場合は3ウェイトが
全て指定されていないと有効にならないので、
\begin{quote}\small\begin{verbatim}
\setmediumminchofont{minchoW3.otf}
\setboldminchofont{minchoW6.otf}
\end{verbatim}\end{quote}
では思い通りにならないことになる。
また、この仕様のため、|deluxe| 以外の場合
（既定、|bold|、|noreplace|）は |\setgothicfont| で指定した
ものが確実にゴシック（単ウェイト）に反映される。

\paragraph{上級者向け機能}
\begin{itemize}
\item |\usecmapforalphabet|\Means
  |usecmapforalphabet| オプションの設定に切り替える。
  （\ref{sec:Loading}節を参照。）
\item |\nousecmapforalphabet|\Means
  |nousecmapforalphabet| オプションの設定に切り替える。
\item |\setnewglyphcmapprefix{|\Meta{文字列}|}|\Means
  2004JIS用のJISコード系のCMapの名前の接頭辞を指定する。
  そのようなCMapは、{\pTeX}の標準和文フォントについて2004JIS字形を
  選択（|prefer2004jis| 指定）した時に必要となるが、
  Adobeが配布しているCMapファイルには該当するものがないので、
  それを適宜用意してそのファイル名をこの命令で指定する必要がある。
  引数に与えるのは最後の1文字（書字方向の「|H|」「|V|」）を除いた
  部分の文字列である。\par
  CMap名接頭辞の既定値は「|2004-|」で、これは最近の{\TeX} Liveに
  含まれている「|2004-H|」等のCMapファイルを用いることを意味する。%
  \footnote{%
    引数に \texttt{*} を与えた場合は \texttt{JISX0213-2004-H} が
    指定されたと見なされる（歴史的理由から）。}
\item |\usefontmapfile{|\Meta{マップファイル名}|}|\Means
  指定のdvipdfmx用のマップファイルの読込を指示する。
  pdf{\TeX}の |\pdfmapfile| に相当する機能。
\item |\usefontmapline{|\Meta{マップ行}|}|\Means
  dvipdfmxのマップ行を直接指定して、その読込を指示する。
  pdf{\TeX}の |\pdfmapline| に相当する機能。
\item |\diruni|\Means
  和文フォントを、「Unicodeを用いてフォントのグリフにアクセスする」
  状態に切り替える（宣言型命令）。
  これにより、全角幅の任意の文字が出力可能となる。
%  \footnote{\texttt{directunicode} オプションはBMP内でしか
%    効かないが、この命令の効果はBMP外の文字にも及ぶ。
%    つまり本当に任意の文字が扱える。}%
  その代わり、この状態では、約物の周りの空き調整が無効になる。
  詳細については\ref{sec:Loading}節の |directunicode| オプションの
  説明を参照されたい。
  なお、この命令は、シェープを |diruni| という値に変えることで
  実現されている。
\item |\textdiruni{|\Meta{テキスト}|}|\Means
  |\diruni| に対応する引数型命令。
\end{itemize}

%===========================================================
\section{プリセット指定}
\label{sec:Preset}

このパッケージの元々の意図は、標準のフォントを
普段使っているものと全く別の書体に変えることであったが、
例えば「普段使う設定が複数ありそれを簡単に切り替えたい」という
場合にも有用である。
そこで、{\pTeX}において広く行われている設定をパッケージ内に
組み込んで、パッケージオプションでそれを呼び出すという機能を追加した。
\footnote{元々は\Pkg{PXjafont}という別のパッケージで
提供されていた機能であるが、
0.5版からこのパッケージに組み入れることにした。}

パッケージオプションにプリセット名を指定すると予め決められたフォント
ファイル名が |\setminchofont| 等の命令で設定される。
例えば、
\begin{quote}\small\begin{verbatim}
\usepackage[ipa]{pxchfon}
\end{verbatim}\end{quote}
は以下の記述と同等になる。
\begin{quote}\small\begin{verbatim}
\usepackage[noalphabet]{pxchfon}
\setminchofont{ipam.ttf}
\setgothicfont{ipag.ttf}
\end{verbatim}\end{quote}

注意として、プリセット指定を用いた場合は、
欧文フォントの置換について |noalphabet|（無効）が既定になる。
プリセット指定の場合は和文が「普通の」明朝・ゴシックのフォントと
なるので欧文フォントを変更しない場合が多いと考えられるためである。

%-------------------
\subsection{単ウェイト用の設定}

後述の「多ウェイト用の設定」で述べられた設定以外で使う場合に使用する。

\begin{itemize}
\item |noembed|\Means
  フォントを埋め込まない。
\begin{quote}\small\begin{verbatim}
\setminchofont{*} % 非埋込
\setgothicfont{*} % 非埋込
\end{verbatim}\end{quote}

\item |ms|\Means
  MSフォント。
\begin{quote}\small\begin{verbatim}
\setminchofont[0]{msmincho.ttc} % ＭＳ 明朝
\setgothicfont[0]{msgothic.ttc} % ＭＳ ゴシック
\end{verbatim}\end{quote}

\item |ipa|\Means
  IPAフォント。
\begin{quote}\small\begin{verbatim}
\setminchofont{ipam.ttf} % IPA明朝
\setgothicfont{ipag.ttf} % IPAゴシック
\end{verbatim}\end{quote}

\item |ipaex|\Means
  IPAexフォント。
\begin{quote}\small\begin{verbatim}
\setminchofont{ipaexm.ttf} % IPAex明朝
\setgothicfont{ipaexg.ttf} % IPAexゴシック
\end{verbatim}\end{quote}
\end{itemize}

%-------------------
\subsection{多ウェイト用の設定}

\Pkg{japanese-otf}パッケージの |deluxe| オプション使用時に有効になる。
明朝3ウェイト、ゴシック3ウェイト、丸ゴシック1ウェイトを設定する。

\begin{itemize}
\item |ms-hg|\Means
  MSフォント + HGフォント。
  \Note HGフォント = Microsoft Office 付属の日本語フォント
  \Note 「HG丸ｺﾞｼｯｸM-PRO」
  は欧文が等幅でないので |alphabet| オプション指定と
  ともに使うことができない。
  （後掲の |ipa-hg|、|ipaex-hg| についても同様。）

\begin{quote}\small\begin{verbatim}
\setminchofont[0]{msmincho.ttc}    % ＭＳ 明朝
\setboldminchofont[0]{hgrme.ttc}   % HG明朝E
\setgothicfont[0]{msgothic.ttc}    % ＭＳ ゴシック
\setmediumgothicfont[0]{hgrgm.ttc} % HGｺﾞｼｯｸM
\setboldgothicfont[0]{hgrge.ttc}   % HGｺﾞｼｯｸE
\setxboldgothicfont[0]{hgrsgu.ttc} % HG創英角ｺﾞｼｯｸUB
\setmarugothic{hgrsmp.ttf}         % HG丸ｺﾞｼｯｸM-PRO 
\end{verbatim}\end{quote}

\item |ipa-hg|\Means
   IPAフォント + HGフォント。
\begin{quote}\small\begin{verbatim}
\setminchofont{ipam.ttf}           % IPA明朝
\setboldminchofont[0]{hgrme.ttc}   % HG明朝E
\setgothicfont{ipag.ttf}           % IPAゴシック
\setmediumgothicfont[0]{hgrgm.ttc} % HGｺﾞｼｯｸM
\setboldgothicfont[0]{hgrge.ttc}   % HGｺﾞｼｯｸE
\setxboldgothicfont[0]{hgrsgu.ttc} % HG創英角ｺﾞｼｯｸUB
\setmarugothic{hgrsmp.ttf}         % HG丸ｺﾞｼｯｸM-PRO 
\end{verbatim}\end{quote}

\item |ipaex-hg|\Means
   IPAexフォント + HGフォント。
\begin{quote}\small\begin{verbatim}
\setminchofont{ipaexm.ttf}         % IPAex明朝
\setboldminchofont[0]{hgrme.ttc}   % HG明朝E
\setgothicfont{ipaexg.ttf}         % IPAexゴシック
\setmediumgothicfont[0]{hgrgm.ttc} % HGｺﾞｼｯｸM
\setboldgothicfont[0]{hgrge.ttc}   % HGｺﾞｼｯｸE
\setxboldgothicfont[0]{hgrsgu.ttc} % HG創英角ｺﾞｼｯｸUB
\setmarugothic{hgrsmp.ttf}         % HG丸ｺﾞｼｯｸM-PRO 
\end{verbatim}\end{quote}

\item |moga-mobo|\Means
   Mogaフォント + Moboフォント。
   \Note 「丸ゴシック」ファミリに MoboGothic を充てている。
   \Note Moga/MoboフォントはCIDアクセス非対応であるが、
   フォント実体を変えることで |prefer2004jis| オプションに
   対応させている。
   \par\medskip
   \textgt{|prefer2004jis| 非指定時}
\begin{quote}\small\begin{verbatim}
\setminchofont[3]{mogam.ttc}       % Moga90Mincho
\setboldminchofont[3]{mogamb.ttc}  % Moga90Mincho Bold
\setgothicfont[2]{mogag.ttc}       % Moga90Gothic
\setboldgothicfont[2]{mogagb.ttc}  % Moga90Gothic Bold
\setxboldgothicfont[2]{mogagb.ttc} % Moga90Gothic Bold
\setmarugothic[2]{mobog.ttc}       % Mobo90Gothic
\end{verbatim}\end{quote}
   \par\medskip
   \textgt{|prefer2004jis| 指定時}
\begin{quote}\small\begin{verbatim}
\setminchofont[0]{mogam.ttc}       % MogaMincho
\setboldminchofont[0]{mogamb.ttc}  % MogaMincho Bold
\setgothicfont[0]{mogag.ttc}       % MogaGothic
\setboldgothicfont[0]{mogagb.ttc}  % MogaGothic Bold
\setxboldgothicfont[0]{mogagb.ttc} % MogaGothic Bold
\setmarugothic[0]{mobog.ttc}       % MoboGothic
\end{verbatim}\end{quote}

\item |moga-mobo-ex|\Means
   MogaExフォント + MoboExフォント。
   \Note 「丸ゴシック」ファミリに MoboExGothic を充てている。
   \Note フォント実体を変えることで |prefer2004jis| オプションに
   対応させている。
   \par\medskip
   \textgt{|prefer2004jis| 非指定時}
\begin{quote}\small\begin{verbatim}
\setminchofont[4]{mogam.ttc}       % MogaEx90Mincho
\setboldminchofont[4]{mogamb.ttc}  % MogaEx90Mincho Bold
\setgothicfont[3]{mogag.ttc}       % MogaEx90Gothic
\setboldgothicfont[3]{mogagb.ttc}  % MogaEx90Gothic Bold
\setxboldgothicfont[3]{mogagb.ttc} % MogaEx90Gothic Bold
\setmarugothic[3]{mobog.ttc}       % MoboEx90Gothic
\end{verbatim}\end{quote}
   \par\medskip
   \textgt{|prefer2004jis| 指定時}
\begin{quote}\small\begin{verbatim}
\setminchofont[1]{mogam.ttc}       % MogaExMincho
\setboldminchofont[1]{mogamb.ttc}  % MogaExMincho Bold
\setgothicfont[1]{mogag.ttc}       % MogaExGothic
\setboldgothicfont[1]{mogagb.ttc}  % MogaExGothic Bold
\setxboldgothicfont[1]{mogagb.ttc} % MogaExGothic Bold
\setmarugothic[1]{mobog.ttc}       % MoboExGothic
\end{verbatim}\end{quote}

\item |moga-maruberi|\Means
   Mogaフォント + モトヤLマルベリ3等幅。
   \Note |moga-mobo| と以下を除いて同じ。
\begin{quote}\small\begin{verbatim}
\setmarugothic{MTLmr3m.ttf}        % モトヤLマルベリ3等幅
\end{verbatim}\end{quote}

\item |ume|\Means
   梅フォント。
\begin{quote}\small\begin{verbatim}
\setminchofont{ume-tmo3.ttf}       % 梅明朝
\setgothicfont{ume-tgo5.ttf}       % 梅ゴシックO5
\setmediumgothicfont{ume-tgo4.ttf} % 梅ゴシック
\setmarugothic{ume-tgo5.ttf}       % 梅ゴシックO5
\end{verbatim}\end{quote}

\item |kozuka-pro|\Means
  小塚フォント（Pro版）。
\begin{quote}\small\begin{verbatim}
\setminchofont{KozMinPro-Regular.otf}      % 小塚明朝 Pro R
\setlightminchofont{KozMinPro-Light.otf}   % 小塚明朝 Pro L
\setboldminchofont{KozMinPro-Bold.otf}     % 小塚明朝 Pro B
\setgothicfont{KozGoPro-Medium.otf}        % 小塚ゴシック Pro M
\setmediumgothicfont{KozGoPro-Regular.otf} % 小塚ゴシック Pro R
\setboldgothicfont{KozGoPro-Bold.otf}      % 小塚ゴシック Pro B
\setxboldgothicfont{KozGoPro-Heavy.otf}    % 小塚ゴシック Pro H
\setmarugothicfont{KozGoPro-Heavy.otf}     % 小塚ゴシック Pro H
\end{verbatim}\end{quote}

\item |kozuka-pr6|\Means
  小塚フォント（Pr6版）。
\begin{quote}\small\begin{verbatim}
\setminchofont{KozMinProVI-Regular.otf}      % 小塚明朝 Pro-VI R
\setlightminchofont{KozMinProVI-Light.otf}   % 小塚明朝 Pro-VI L
\setboldminchofont{KozMinProVI-Bold.otf}     % 小塚明朝 Pro-VI B
\setgothicfont{KozGoProVI-Medium.otf}        % 小塚ゴシック Pro-VI M
\setmediumgothicfont{KozGoProVI-Regular.otf} % 小塚ゴシック Pro-VI R
\setboldgothicfont{KozGoProVI-Bold.otf}      % 小塚ゴシック Pro-VI B
\setxboldgothicfont{KozGoProVI-Heavy.otf}    % 小塚ゴシック Pro-VI H
\setmarugothicfont{KozGoProVI-Heavy.otf}     % 小塚ゴシック Pro-VI H
\end{verbatim}\end{quote}

\item |kozuka-pr6n|\Means
  小塚フォント（Pr6n版）。
\begin{quote}\small\begin{verbatim}
\setminchofont{KozMinPr6N-Regular.otf}      % 小塚明朝 Pr6N R
\setlightminchofont{KozMinPr6N-Light.otf}   % 小塚明朝 Pr6N L
\setboldminchofont{KozMinPr6N-Bold.otf}     % 小塚明朝 Pr6N B
\setgothicfont{KozGoPr6N-Medium.otf}        % 小塚ゴシック Pr6N M
\setmediumgothicfont{KozGoPr6N-Regular.otf} % 小塚ゴシック Pr6N R
\setboldgothicfont{KozGoPr6N-Bold.otf}      % 小塚ゴシック Pr6N B
\setxboldgothicfont{KozGoPr6N-Heavy.otf}    % 小塚ゴシック Pr6N H
\setmarugothicfont{KozGoPr6N-Heavy.otf}     % 小塚ゴシック Pr6N H
\end{verbatim}\end{quote}

\item |hiragino-pro|\Means
  ヒラギノフォント基本6書体セット（Pro/Std版） + 明朝W2。
\begin{quote}\small\begin{verbatim}
\setminchofont{HiraMinPro-W3.otf}       % ヒラギノ明朝 Pro W3
\setlightminchofont{HiraMinPro-W2.otf}  % ヒラギノ明朝 Pro W2
\setboldminchofont{HiraMinPro-W6.otf}   % ヒラギノ明朝 Pro W6
\setgothicfont{HiraKakuPro-W3.otf}      % ヒラギノ角ゴ Pro W3
\setboldgothicfont{HiraKakuPro-W6.otf}  % ヒラギノ角ゴ Pro W6
\setxboldgothicfont{HiraKakuStd-W8.otf} % ヒラギノ角ゴ Std W8
\setmarugothicfont{HiraMaruPro-W4.otf}  % ヒラギノ丸ゴ Pro W4
\end{verbatim}\end{quote}

\item |hiragino-pron|\Means
  ヒラギノフォント基本6書体セット（ProN/StdN版） + 明朝W2。
\begin{quote}\small\begin{verbatim}
\setminchofont{HiraMinProN-W3.otf}       % ヒラギノ明朝 ProN W3
\setlightminchofont{HiraMinProN-W2.otf}  % ヒラギノ明朝 ProN W2
\setboldminchofont{HiraMinProN-W6.otf}   % ヒラギノ明朝 ProN W6
\setgothicfont{HiraKakuProN-W3.otf}      % ヒラギノ角ゴ ProN W3
\setboldgothicfont{HiraKakuProN-W6.otf}  % ヒラギノ角ゴ ProN W6
\setxboldgothicfont{HiraKakuStdN-W8.otf} % ヒラギノ角ゴ StdN W8
\setmarugothicfont{HiraMaruProN-W4.otf}  % ヒラギノ丸ゴ ProN W4
\end{verbatim}\end{quote}

\item |hiragino-elcapitan-pro|\Means
  ヒラギノフォント（Mac~OS~X El~Capitan 搭載；Pro/Std版） + 明朝W2。
\begin{quote}\small\begin{verbatim}
\setminchofont[1]{HiraginoSerif-W3.ttc}
\setlightminchofont{HiraMinPro-W2.otf}
\setboldminchofont[1]{HiraginoSerif-W6.ttc}
\setgothicfont[3]{HiraginoSans-W3.ttc}
\setboldgothicfont[3]{HiraginoSans-W6.ttc}
\setxboldgothicfont[2]{HiraginoSans-W8.ttc}
\setmarugothicfont[0]{HiraginoSansR-W4.ttc}
\end{verbatim}\end{quote}

\item |hiragino-elcapitan-pron|\Means
  ヒラギノフォント（Mac~OS~X El~Capitan 搭載；ProN/StdN版） + 明朝W2。
\begin{quote}\small\begin{verbatim}
\setminchofont[0]{HiraginoSerif-W3.ttc}
\setlightminchofont{HiraMinProN-W2.otf}
\setboldminchofont[0]{HiraginoSerif-W6.ttc}
\setgothicfont[2]{HiraginoSans-W3.ttc}
\setboldgothicfont[2]{HiraginoSans-W6.ttc}
\setxboldgothicfont[3]{HiraginoSans-W8.ttc}
\setmarugothicfont[1]{HiraginoSansR-W4.ttc}
\end{verbatim}\end{quote}

\item |morisawa-pro|\Means
  モリサワフォント基本7書体（Pro版）。
\begin{quote}\small\begin{verbatim}
\setminchofont{A-OTF-RyuminPro-Light.otf}         % A-OTF リュウミン Pro L-KL
\setboldminchofont{A-OTF-FutoMinA101Pro-Bold.otf} % A-OTF 太ミンA101 Pro
\setgothicfont{A-OTF-GothicBBBPro-Medium.otf}     % A-OTF 中ゴシックBBB Pro
\setboldgothicfont{A-OTF-FutoGoB101Pro-Bold.otf}  % A-OTF 太ゴB101 Pro
\setxboldgothicfont{A-OTF-MidashiGoPro-MB31.otf}  % A-OTF 見出ゴMB31 Pro
\setmarugothicfont{A-OTF-Jun101Pro-Light.otf}     % A-OTF じゅん Pro 101
\end{verbatim}\end{quote}

\item |morisawa-pr6n|\Means
  モリサワフォント基本7書体（Pr6N版
  \footnote{「じゅん」はPr6N版が存在しないためPro版が使われる。}）。
\begin{quote}\small\begin{verbatim}
\setminchofont{A-OTF-RyuminPr6N-Light.otf}         % A-OTF リュウミン Pr6N L-KL
\setboldminchofont{A-OTF-FutoMinA101Pr6N-Bold.otf} % A-OTF 太ミンA101 Pr6N
\setgothicfont{A-OTF-GothicBBBPr6N-Medium.otf}     % A-OTF 中ゴシックBBB Pr6N
\setboldgothicfont{A-OTF-FutoGoB101Pr6N-Bold.otf}  % A-OTF 太ゴB101 Pr6N
\setxboldgothicfont{A-OTF-MidashiGoPr6N-MB31.otf}  % A-OTF 見出ゴMB31 Pr6N
\setmarugothicfont{A-OTF-Jun101Pro-Light.otf}      % A-OTF じゅん Pro 101
\end{verbatim}\end{quote}

\item |yu-win|\Means
  游書体（Windows~8.1搭載版）。
\begin{quote}\small\begin{verbatim}
\setminchofont{yumin.ttf}         % 游明朝 Regular
\setlightminchofont{yuminl.ttf}   % 游明朝 Light
\setboldminchofont{yumindb.ttf}   % 游明朝 Demibold
\setgothicfont{yugothic.ttf}      % 游ゴシック Regular
\setboldgothicfont{yugothib.ttf}  % 游ゴシック Bold
\setxboldgothicfont{yugothib.ttf} % 游ゴシック Bold
\setmarugothicfont{yugothic.ttf}  % 游ゴシック Regular
\end{verbatim}\end{quote}

\item |yu-win10|\Means
  游書体（Windows~10搭載版）。
  \Note フォントの性質のため、この設定では欧文引用符
  “\,”‘\,’の出力が不正になる。
  この不具合は |unicode| オプションを指定する
  （dvipdfmxの20170918版が必要）、
  または代わりに |yu-win10+| プリセットを指定する
  （dvipdfmxの20170318版が必要）ことで回避できる。
  詳細については\ref{sec:DirectUnicode}節を参照されたい。

\begin{quote}\small\begin{verbatim}
\setminchofont{yumin.ttf}
\setlightminchofont{yuminl.ttf}
\setboldminchofont{yumindb.ttf}
\setgothicfont[0]{YuGothM.ttc}
\setmediumgothicfont[0]{YuGothR.ttc}
\setboldgothicfont[0]{YuGothB.ttc}
\setxboldgothicfont[0]{YuGothB.ttc}
\setmarugothicfont[0]{YuGothM.ttc}
\end{verbatim}\end{quote}

\item |yu-osx|\Means
  游書体（Mac OS X搭載版）。
\begin{quote}\small\begin{verbatim}
\setminchofont{YuMin-Medium.otf}       % 游明朝体 ミディアム
\setboldminchofont{YuMin-Demibold.ttf} % 游明朝体 デミボールド
\setgothicfont{YuGo-Medium.otf}        % 游ゴシック体 ミディアム
\setboldgothicfont{YuGo-Bold.otf}      % 游ゴシック体 ボールド
\setxboldgothicfont{YuGo-Bold.otf}     % 游ゴシック体 ボールド
\setmarugothicfont{YuGo-Medium.otf}    % 游ゴシック体 ミディアム
\end{verbatim}\end{quote}

\item |sourcehan-otc|\Means
  Source Han Serif（源ノ明朝）+ Source Han Sans（源ノ角ゴシック）、
  OTC版。

\begin{quote}\small\begin{verbatim}
\setminchofont[0]{SourceHanSerif-Regular.ttc}
\setlightminchofont[0]{SourceHanSerif-Light.ttc}
\setboldminchofont[0]{SourceHanSerif-Bold.ttc}
\setgothicfont[0]{SourceHanSans-Medium.ttc}
\setmediumgothicfont[0]{SourceHanSans-Regular.ttc}
\setboldgothicfont[0]{SourceHanSans-Bold.ttc}
\setxboldgothicfont[0]{SourceHanSans-Heavy.ttc}
\setmarugothicfont[0]{SourceHanSans-Medium.ttc}
\end{verbatim}\end{quote}

\item |sourcehan|\Means
  Source Han Serif（源ノ明朝）+ Source Han Sans（源ノ角ゴシック）、
  言語別OTF版。

\begin{quote}\small\begin{verbatim}
\setminchofont{SourceHanSerif-Regular.otf}
\setlightminchofont{SourceHanSerif-Light.otf}
\setboldminchofont{SourceHanSerif-Bold.otf}
\setgothicfont{SourceHanSans-Medium.otf}
\setmediumgothicfont{SourceHanSans-Regular.otf}
\setboldgothicfont{SourceHanSans-Bold.otf}
\setxboldgothicfont{SourceHanSans-Heavy.otf}
\setmarugothicfont{SourceHanSans-Medium.otf}
\end{verbatim}\end{quote}

\item |noto-otc|\Means
  Noto Serif CJK + Noto Sans CJK、
  OTC版。

\begin{quote}\small\begin{verbatim}
\setminchofont[0]{NotoSerifCJK-Regular.ttc}
\setlightminchofont[0]{NotoSerifCJK-Light.ttc}
\setboldminchofont[0]{NotoSerifCJK-Bold.ttc}
\setgothicfont[0]{NotoSansCJK-Medium.ttc}
\setmediumgothicfont[0]{NotoSansCJK-Regular.ttc}
\setboldgothicfont[0]{NotoSansCJK-Bold.ttc}
\setxboldgothicfont[0]{NotoSansCJK-Black.ttc}
\setmarugothicfont[0]{NotoSansCJK-Medium.ttc}
\end{verbatim}\end{quote}

\item |noto|\Means
  Noto Serif CJK + Noto Sans CJK、
  言語別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}
\end{verbatim}\end{quote}

\end{itemize}

%-------------------
\subsection{ptex-fontmaps互換のオプション}

\Pkg{ptex-fontmaps}のプリセット名を別名として用意した。

\begin{itemize}
\item |noEmbed|\Means |noembed| の別名。
\item |kozuka|\Means |kozuka-pro| の別名。
\item |hiragino|\Means |hiragino-pro| の別名。
\item |hiragino-elcapitan|\Means |hiragino-elcapitan-pro| の別名。
\item |morisawa|\Means |morisawa-pro| の別名。
\end{itemize}

%-------------------
\subsection{廃止されたオプション}

以下に挙げるのは、0.5版以降で非推奨となっていたプリセット設定である。
これらは1.0版において\textgt{廃止}されたため、
現在は使用するとエラーが発生する。

\begin{itemize}
\item |ipa-otf|\Means
  「拡張子が |.otf| の」IPAフォント。
  \Note 代替のプリセットはない。
\item |ipa-otf-dx|\Means
  「拡張子が |.otf| の」IPAフォント + HGフォント。
  \Note 代替のプリセットはない。
\item |kozuka4|\Means
  小塚フォント（Pro版）の単ウェイト使用。
  \Note |kozuka-pro|＋|oneweight| オプションで代替可能。
\item |kozuka6|\Means
  小塚フォント（Pr6版）の単ウェイト使用。
  \Note |kozuka-pr6|＋|oneweight| オプションで代替可能。
\item |kozuka6n|\Means
  小塚フォント（Pr6n版）の単ウェイト使用。
  \Note |kozuka-pr6n|＋|oneweight| オプションで代替可能。
\item |hiragino|\Means
  ヒラギノフォントの単ウェイト使用。
  \Note |hiragino-pro|＋|oneweight| オプションで代替可能。
  \Note 1.2a版以降で、|hiragino-pro| の別名として再定義された。
\item |ms-dx|\Means |ms-hg| の別名。
\item |ipa-ttf|\Means |ipa| の別名。
\item |ipa-ttf-dx|\Means |ipa-hg| の別名。
\item |ipav2|\Means |ipa| の別名。
\item |ipav2-dx|\Means |ipa-hg| の別名。
\item |ipa-dx|\Means |ipa-hg| の別名。
\item |hiragino-dx|\Means |hiragino-pro| の別名。
\end{itemize}

%===========================================================
\section{ファイルプリセット機能}
\label{sec:FilePreset}

ファイルプリセット機能を利用すると、既存のdvipdfmx用のマップファイル
の読込を文書内で指定することが可能になる。
パッケージオプションに次の何れかの形式の文字列を指定すると、
ファイルプリセットの指定と見なされる。

\begin{itemize}
\item |+|\mbox{}\textgt{名前}\Means
  {\TeX} Live用ファイルプリセット。
\item |*|\mbox{}\textgt{名前}\Means
  単純ファイルプリセット。
\end{itemize}

\subsection{{\TeX} Live用ファイルプリセット機能}

{\TeX} Liveでは{(u)\pLaTeX}のフォントの設定を
kanji-config-updmapというユーティリティで行うことができる。
そこでは、決まった形式のファイル名をもつdvipdfmx用の
マップファイルを用意していて、ユーザが要求したプリセット名に
対応したファイルをupdmapの機構を用いて有効化することで、
dvipdfmxの既定の設定を切り替えている。

パッケージオプションとして |+| で始まる文字列
（仮に |+NAME| とする）を与えると、
kanji-config-updmap用のマップファイルの読込が指示される。
具体的には、以下の名前のマップファイルが読み込まれる。

\begin{itemize}
\item {\pLaTeX}の場合：
  \begin{itemize}
  \item |ptex-NAME.map|
  \item |otf-NAME.map|
  \end{itemize}
\item {\upLaTeX}の場合、上記のものに加えて以下のもの：
  \begin{itemize}
  \item |uptex-NAME.map|
  \item |otf-up-NAME.map|
  \end{itemize}
\end{itemize}

例えば、{\pLaTeX}文書において以下のようにパッケージを読み込んだとする。

\begin{quote}\small\begin{verbatim}
\usepackage[+yu-win]{pxchfon}
\end{verbatim}\end{quote}

この場合、|ptex-yu-win.map| と |otf-yu-win.map| の2つのマップファイル
がdvipdfmx実行時に読み込まれる。

\subsection{単純ファイルプリセット機能}

パッケージオプションとして |*| で始まる文字列
（仮に |*NAME| とする）を与えると、
|NAME.map| という名前のマップファイルの読込が指示される。

例えば、以下のようにパッケージを読み込んだとする。

\begin{quote}\small\begin{verbatim}
\usepackage[*yu]{pxchfon}
\end{verbatim}\end{quote}

この場合、|yu.map| というマップファイル
\footnote{例えばW32{\TeX}ではこの名前のマップファイルが
  用意されている。}%
がdvipdfmx実行時に読み込まれる。


%===========================================================
\section{Unicode直接指定}
\label{sec:DirectUnicode}

dvipdfmxのフォントマップ設定において、和文フォントのエンコーディングを
指定する方法は“CMap指定”と“Unicode直接指定”の2種類がある。
\footnote{詳細についてはdvipdfmxのマニュアルを参照されたい。}
かつては、Unicodeで包摂されている異体字を区別するためには
CMap指定の利用が必須であったため、慣習的に、dvipdfmxのフォントマップ
設定においてはCMap指定が主に用いられてきた。

しかしこのCMap指定は、Adobe-Japan1（AJ1）%
\footnote{または各々のCJK言語の“Adobe標準”のグリフ集合、
例えば簡体字中国語ならAdobe-GB1。}%
のグリフ集合に対応したOpenTypeフォントにしか適用できない、
という欠点がある。
近年は、“AJ1でない”OpenTypeフォント
\footnote{例えば、Adobe開発のフリーフォントの
「Source Han Serif（源ノ明朝）」など。}%
が普及しつつあり、そのようなフォントでは異体字の切替などの
付加機能を専ら“OpenType属性の指定”により行うことを想定している。
これに対応するため、dvipdfmxのマップ指定において
“OpenType属性の指定”がサポートされるようになった。

\Pkg{pxchfon}では和文フォントのエンコーディングに対する
Unicode直接指定をサポートしている。
特に1.0版から、新しいdvipdfmxのOpenType属性の指定を積極的に
利用することで、“AJ1でない”フォントを使用した場合でも、
CMap指定の場合の機能性を可能な限り保つことを目財している。

\Note Unicode直接指定に対するサポートは発展途上であるため、
過渡的な要素が多く混ざっていてやや煩雑になっていることに
注意してほしい。

\paragraph{“Unicode直接指定”オプション}
以下のパッケージオプションを指定することで
Unicode直接指定が有効になる。

\begin{itemize}
\item |unicode|\Means
  全般的にUnicode直接指定を利用する。
  最も理想的な設定であるが、現存の{\TeX} Live 2017では利用できない。
  \Note dvipdfmxの20170918版以降（{\TeX} Live 2018以降）が必要。
\item |unicode*|\Means
  |unicode| と同じだが、{\TeX} Live 2017のdvipdfmaに対応するために
  妥協を入れた（過渡的な）設定。
  一部の約物・記号の出力が異常になる可能性がある。
  \Note dvipdfmxの20170318版以降（{\TeX} Live 2017以降）が必要。
\item |directunicode*|\Means
  |unicode| と同じだが、古い（{\TeX} Live 2016以前の）dvipdfmaに
  対応するために、OpenType属性の指定を全く行わない設定。
  つまり、入力のUnicode文字に対する既定のグリフが常に出力され、
  異体字の区別は全て無効になる。
\item |directunicode|\Means
  \Pkg{japanese-otf}の|\UTF|入力のフォントに限って
  Unicode直接指定を利用する。
  |directunicode*| と同じくOpenType属性の指定を全く行わない。
  \Note 前述の通り |directunicode*| はデメリットが強いため、
  適用範囲を限定したもの。
\end{itemize}

\paragraph{Unicode直接指定専用プリセット}

以下に挙げるプリセット設定は“AJ1でない”OpenTypeフォントを
利用するものである。
そのため、これらのプリセットを指定した場合は、
自動的に |unicode| が（既定として）指定される%
\footnote{1.0～1.1b版では{\TeX} Live 2017のための暫定措置として
「|+|付の特殊プリセットへの自動振替」が行われていたが、
1.2版から本来の仕様が適用される。}。

\begin{itemize}
\item |sourcehan|
\item |sourcehan-otc|
\item |noto|
\item |noto-otc|
\end{itemize}

\paragraph{特殊プリセット指定\<（過渡的）}

現状の{\TeX} Live 2017のdvipdfmxで |unicode| が使えない
という問題に対処するため、
一部のプリセット指定について、
「|unicode| を指定した理想的な状態を模倣する」
特殊なプリセット設定を用意した。
これらの設定はdvipdfmxの20170318版以降（{\TeX} Live 2017以降）
において使用できる。

本来使えないはずの設定を模倣するために、
少々邪悪な細工を行ている。

\begin{itemize}
\item |sourcehan+|、|sourcehan-otc+|、
    |noto+|、|noto-otc+|\Means
  これらの特殊プリセット指定は、対応する（|+| 無しの）
  Unicode直接指定専用プリセットの設定を模倣する。
  日本語用の一部のグリフを
  日本語以外（繁体中国語等）のフォントに振り替えている。
  従って、言語別OTF版のフォントファイルを利用する場合は、
  原則的に全てのCJK言語の版を用意する必要がある。

\item |yu-win10+|\Means
  |yu-win10| に |unicode| を加えた設定を模倣する。
  クオートの出力を正常にするため、クオートのグリフを
  「Yu Gothic UI」フォントに振り替えている。
\end{itemize}


%===========================================================
\section{dvipdfmxのページ抜粋処理への対応}
\label{sec:PageSelection}

dvipdfmxには元のDVI文書の一部のページだけを抜粋してPDF文書に変換する
機能がある（|-s| オプション）。
ところが、本パッケージでは、ユーザ命令で指定されたフォントマップ情報を、
DVIの先頭ページに書き出すという処理方法をとっている
（すなわち「ページ独立性」を保っていない）ため、
先頭ページを含まない抜粋を行った場合は、
フォント置換が効かないという現象が発生する。

この問題を解決するのが |everypage| パッケージオプションである。
このオプションが指定された場合は、
DVI文書の全てのページにフォントマップ情報を書き出すので、
ページ抜粋を行っても確実にフォント置換が有効になる。
ただし、このオプションを指定する場合は\Pkg{atbegshi}パッケージが
必要である。

%===========================================================
\section{欧文フォントの置換の原理}
\label{sec:Mechanism-Alph}

指定された和文フォントの半角部分からなる欧文フォントファミリとして
OT1/cfjar（明朝）とOT1/cfjas（ゴシック）を定義し、
既定の欧文ファミリに設定している
（明朝→|\rmdefault|；ゴシック→|\sfdefault|）
\footnote{従って、欧文フォントの置換（\texttt{alphabet}や
\texttt{relfont}オプション）を利用する場合は、欧文エンコーディングが
OT1である必要がある。}。
その上で、この欧文ファミリに対するマップ指定を和文と同じ方法で行っている。

従って、例えば一時的に従来のCMフォントに切り替えたい場合はファミリ
をcmrに変更すればよい。なお、このcfjarとcfjasフォントは内部では
OT1として扱われるが、実際にはOT1の一部のグリフしか持っていない。

%===========================================================
\section{注意事項}
\label{sec:Notice}

\begin{itemize}
\item 指定できるフォントは等幅のものに限られる。
  実際に使われるメトリックは置換前と変わらない。
  （例えば jsarticle の標準設定ならJISメトリック）
\item 欧文部分を置き換えた場合、残念ながら欧文も等幅
  （半角幅）になってしまう。
\item さらに、アクセント付きの文字（\'e 等）や非英語文字
  （{\ss} 等）も使えない。
  大抵の日本語用フォントにはその文字を出力するためのグリフがそもそも
  ないのであるが、例えあったとしても使えない。
\item \Pkg{japanese-otf}／\Pkg{UTF}パッケージ使用時に |\UTF| や |\CID| で
  指定した文字が出力されるかは、
  指定したフォントがその文字を持っているかに依存する。
\item |deluxe| 付きの\Pkg{japanese-otf}パッケージと |alphabet| 付きの
  \Pkg{pxchfon}を同時に使う場合には、
  \Pkg{japanese-otf}パッケージを先に読み込む必要がある。
  （これに反した場合はエラーになる。）
\item 単ウェイトの場合は、明朝の太字はゴシックになるという一般的な
  設定に欧文フォントの置換の際にも従っているが、
  明朝のみが置換されている場合は、
  明朝の置換フォントが太字にも適用される。
\item 既述のように、0.3版以降では\Pkg{japanese-otf}パッケージで |deluxe|、
  |bold|、|noreplace| のいずれも指定されてない場合でも |\setgothicfont|
  が有効になる。
\end{itemize}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
%===========================================================
\section{dvipdfmx以外のDVIウェアでの使用}
\label{sec:Other-Drivers}

本パッケージの核心の機能である
「使用フォントを文書中で指定する」
ことの実現にはdvipdfmxの拡張機能を利用している。
従って、dvipdfmxの利用が必須となるのだが、
（プレビュー等の目的で）
文書中で指定したフォントが反映されなくてもよいのなら、
他のDVIウェアでも本パッケージを利用した
DVI文書を扱える可能性がある。

%-------------------
\subsection{和文フォントだけを置き換えた場合（\texttt{noalphabet} 指定時）}

この設定で生成されるDVIファイルを
dvipdfmx以外のDVIウェアに読ませた場合、
フォント置換が無視され、
そのソフトウェアで設定されたフォントで出力されるはずである。
%ただ、ソフトウェアによっては、警告やエラーが出る可能性もある。

%-------------------
\subsection{欧文フォントも置き換えた場合（\texttt{alphabet} 指定時）}

欧文フォントを置き換えたDVIファイルは、
独自の欧文フォント（|r-cfja?-?-l0j| という形式の名前）
を含んでいるので、
少なくともそれに関する設定をしない限りはdvipdfmx以外の
DVIウェアで処理することができない。
さらに、このフォントを扱うためにはDVIウェアが
サブフォント（sfd）に対応している必要がある。
文書中での設定をdvipdfmx以外のDVIウェアで活かすことはできない。
しかし、「独自部分の欧文フォントを常に特定の代替フォントで表示させる」
ということは、sfd対応のDVIウェアであれば可能である。

以下に、ttf2pkについて、「常にIPAフォントで代替する」
ための設定を掲げておく。
この記述をttf2pkのマップファイル（ttfonts.map）に加えると、
例えば、dvioutで本パッケージ使用のDVIファイルを閲覧できるようになる。

\begin{quote}\small\begin{verbatim}
r-cfjar-l-@PXcjk0@     msmincho.ttc FontIndex=0
r-cfjar-r-@PXcjk0@     msmincho.ttc FontIndex=0
r-cfjar-b-@PXcjk0@     msmincho.ttc FontIndex=0
r-cfjas-r-@PXcjk0@     msgothic.ttc FontIndex=0
r-cfjas-b-@PXcjk0@     msgothic.ttc FontIndex=0
r-cfjas-x-@PXcjk0@     msgothic.ttc FontIndex=0
\end{verbatim}\end{quote}

%===========================================================
\section{pxjafontパッケージ}

現在の版の\Pkg{pxchfon}パッケージは旧来の\Pkg{pxjafont}の機能を
取り込んでいるため、\Pkg{pxjafont}は不要である。
古い環境との互換性のため\Pkg{pxjafont}を残していたが、
1.0版において\Pkg{pxjafont}の使用を非推奨の扱いとした。
（近い将来に廃止予定。）

\Pkg{pxjafont}を利用しているユーザは、
\ref{sec:Preset}節を参照して現在の\Pkg{pxchfon}用の
適切な設定に書き直す必要がある。

\Note 古いプリセット名の中に廃止されたものがあるので注意。

%===========================================================
\section{中国語・韓国語フォントへの対応}
\label{sec:Non-Japanese}

0.7c版で\Pkg{japanese-otf}パッケージ（|multi| オプション指定）および
{\upTeX}標準の中国語・韓国語フォントについてのサポートを始めた。
以下の命令で、実フォントの置換指定ができる。

\begin{itemize}
\newcommand*{\CNot}{\footnotesize}
\item |\setkoreanminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      韓国語・明朝体。
\item |\setkoreangothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      韓国語・ゴシック体。
\item |\setschineseminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      簡体字中国語・明朝体（宋体）。
\item |\setschinesegothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      簡体字中国語・ゴシック体（黒体）。
\item |\settchineseminchofont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      繁体字中国語・明朝体（明体）。
\item |\settchinesegothicfont[|\Meta{番号}|]{|\Meta{フォントファイル名}|}|\Means
      繁体字中国語・ゴシック体（黒体）。
\end{itemize}

注意事項。

\begin{itemize}
\item プリセット指定は中国語・韓国語のフォントについては何も指定しない。
従って、上記の命令を用いない場合は、これらのフォントのマップ再設定が
行われることはない。
\item 「Unicode直接指定オプション」は中国語・韓国語のフォントに対しても
有効である。
|directunicode| の場合は「\Pkg{japanese-otf}パッケージのUnicode入力命令」
（|\UTFK|、|\UTFM|、等）が対象となり、
それ以外はこれに加えて{\upTeX}標準のフォントも
対象になる。
\end{itemize}

%===========================================================
\end{document}
%% EOF
