% 文字コードは UTF-8
% xelatex で組版する
\documentclass[xelatex,ja=standard,jafont=ipaex,
  a4paper]{bxjsarticle}
\xeCJKDeclareCharClass{CJK}{`■,`※}
\usepackage{color}
\definecolor{myblue}{rgb}{0,0,0.75}
\definecolor{mygreen}{rgb}{0,0.45,0}
\usepackage[colorlinks,hyperfootnotes=false]{hyperref}
\hypersetup{linkcolor=myblue,urlcolor=mygreen}
\usepackage{bxtexlogo}
\bxtexlogoimport{*}
\usepackage{shortvrb}
\MakeShortVerb{\|}
\newcommand{\PkgVersion}{0.5}
\newcommand{\PkgDate}{2019/06/29}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
\newcommand{\Means}{：\ }
%-----------------------------------------------------------
\begin{document}
\title{\Pkg{zxjafont} パッケージ（v\PkgVersion）}
\author{八登崇之\ （Takayuki YATO; aka.~``ZR''）}
\date{v\PkgVersion\quad[\PkgDate]}
\maketitle

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

{\XeLaTeX}＋\Pkg{fontspec}でのフォントファミリ名を直接指定する方式は
「好きなフォントを指定する」という点では、
{\pLaTeX}\>よりも格段に使い易いが、
日本語を扱うためには必ず何らかの設定を行う必要があり、
これが煩わしく感じられる場合もある。
本パッケージでは、{\pLaTeX}\>において
一般的に行われている設定を予め用意しておいて、
簡単に呼び出せるようにしている。

\paragraph{前提環境}\mbox{}
\begin{itemize}
\item フォーマット\Means {\LaTeX}
\item エンジン\Means {\XeTeX}
\item 依存パッケージ\Means \Pkg{fontspec}パッケージ
\end{itemize}

%===========================================================
\section{使い方}

以下のようにパッケージを読み込むだけである。
（ユーザ命令・環境はない。）
\begin{quote}\small
|\usepackage[|\Meta{メイン設定}|,|\Meta{サブ設定}|,|%
\Meta{他オプション}|]{zxjafont}|
\end{quote}

\Meta{メイン設定}は1つだけ指定できるが、
\Meta{サブ設定}と\Meta{他オプション}は任意個数指定可能である。
もし\Pkg{fontspec}が未読込の場合は自動的に読み込む。
{\XeLaTeX}\>には和文と欧文の元来の区別がないので、
このパッケージで指定するフォントが全ての文字に通用する。
ただし、\Pkg{zxjatype}パッケージでは和文と欧文を区別するので、
それと併用の場合は和文のみにフォント設定が適用される。

%-------------------
\subsection{メイン設定}

総称ファミリの設定
（\Pkg{fontspec}の |\setmainfont|、|\setsansfont|、|\setmonofont|）
を行うもの。

\Note 「メイン設定」は\Pkg{pxchfon}パッケージにおける
「プリセット設定」をそのまま
（ただし明朝・ゴシック2ウェイトに縮減して）
引き継いでいる。
設定内容の詳細については、\Pkg{pxchfon}の説明書を
参照してほしい。

\paragraph{単ウェイト用の設定}
明朝・ゴシック各々1ウェイトのみを用いる設定。
セリフ（|\rmfamily|）に明朝、
サンセリフ（|\sffamily|）と等幅（|\ttfamily|）にゴシックを割り当てる。
さらに、{\pLaTeX}\>の習慣に合わせて、
セリフの太字（|\bfseries|）もゴシックにする。
（これは必ずしも好ましい設定ではないことに注意。）

\begin{itemize}
\item |ms|\Means
MS フォント。
\item |ipa|\Means
IPAフォント。
\item |ipaex|\Means
IPAexフォント。
\end{itemize}
\Note {\XeTeX}\>は「フォント非埋込のPDF生成」に対応していない。

\paragraph{多ウェイト用の設定}
明朝・ゴシック各々2ウェイトを用いる設定
\footnote{\Pkg{fontspec}では3ウェイト以上の設定ができない。）}。
セリフに明朝、サンセリフと等幅にゴシックを割り当て、
各々について通常（|\mdseries|）と太字（|\bfseries|）
を個別に設定する。
\begin{itemize}
\item |ms-hg|\Means
  MSフォント + HGフォント。
  \Note HGフォント = Microsoft Office 付属の日本語フォント
\item |ipa-hg|\Means
  IPAフォント + HGフォント。
\item |ipaex-hg|\Means
  IPAexフォント + HGフォント。
\item |moga|\Means
  Mogaフォント（2004JIS字形）。
  \Note MogaEx系統が用いられる。
\item |moga-90|\Means
  Mogaフォント（90／2000JIS字形）。
  \Note MogaEx90系統が用いられる。
\item |ume|\Means
  梅フォント。
\item |kozuka-pro|\Means
  小塚フォント（Pro版）。
\item |kozuka-pr6|\Means
  小塚フォント（Pr6版）。
\item |kozuka-pr6n|\Means
  小塚フォント（Pr6N版）。
\item |hiragino-pro|\Means
  ヒラギノフォント基本6書体セット（Pro/Std版）。
\item |hiragino-pron|\Means
  ヒラギノフォント基本6書体セット（ProN/StdN版）。
\item |morisawa-pro|\Means
  モリサワフォント基本7書体（Pro版）。
\item |morisawa-pr6n|\Means
  モリサワフォント基本7書体（Pr6N版）。
\item |yu-win|\Means
  游書体（Windows~8.1搭載版）。
\item |yu-win10|\Means
  游書体（Windows~10搭載版）。%TODO
\item |yu-osx|\Means
  游書体（macOS搭載版）。
\item |sourcehan|\Means
  Source Han Serif（源ノ明朝）+ Source Han Sans（源ノ角ゴシック）、
  非サブセット版%TODO
  \footnote{つまり、地域別サブセットOTF版以外のもの。
    後掲の |noto| も同じ。}。
\item |sourcehan-jp|\Means
  Source Han Serif + Source Han Sans、
  日本用地域別サブセット版。
\item |noto|\Means
  Noto Serif CJK + Noto Sans CJK、
  非サブセット版。
\item |noto-jp|\Means
  Noto Serif JP + Noto Sans JP、
  日本用地域別サブセット版。
\end{itemize}

\paragraph{他パッケージとの互換用のオプション}
\mbox{}
%\Pkg{ptex-fontmaps}のプリセット名を別名として用意した。

\begin{itemize}
\item |kozuka|\Means
  |kozuka-pro| の別名。
  （\Pkg{ptex-fontmaps}でのプリセット名。）
\item |morisawa|\Means
  |morisawa-pro| の別名。
  （\Pkg{ptex-fontmaps}でのプリセット名。）
\item |moga-mobo-ex|\Means
  |moga| の別名。
  （\Pkg{ptex-fontmaps}でのプリセット名。）
\item |noto-otf|\Means
  |noto| の別名。
  （\Pkg{luatexja-preset}でのプリセット名。）
\end{itemize}

\Note なお、|hiragino-pro| と同義の\Pkg{ptex-fontmaps}の
プリセット名は |hiragino| であるが、本パッケージの |hiragino| は
旧版で用いられていた設定であり |hiragino-pro| とは異なる。

\paragraph{廃止されたプリセット設定}

0.2a版以前で用意されていた次のプリセット設定は、
0.5版において廃止された。
現在は指定するとエラーが発生する。

\begin{quote}
|kozuka4|、|kozuka6|、|kozuka6n|、|hiragino|、
|ms-dx|、|ipa-dx|、|hiragino-dx|
\end{quote}

%-------------------
\subsection{サブ設定}

\Pkg{fontspec}では使用するフォントを |\newfontfamily| 命令で
増やすことができる。
それを利用した追加設定である。

\begin{itemize}
\item |hg|\Means
Microsoft Officeのフォント（HGフォント）に対応する、
以下のファミリ命令が定義される。
\begin{itemize}
\item |\hgmcfamily|\Means HGS明朝B、太字=HGS明朝E。
\item |\hgprfamily|\Means HGS創英ﾌﾟﾚｾﾞﾝｽEB
\item |\hggtfamily|\Means HGSｺﾞｼｯｸM、太字=HGSｺﾞｼｯｸE。
\item |\hggufamily|\Means HGS創英角ｺﾞｼｯｸUB
\item |\hgmgfamily|\Means HG丸ｺﾞｼｯｸM-PRO
\item |\hgkkfamily|\Means HGS教科書体
\item |\hgksfamily|\Means HG正楷書体-PRO
\item |\hggsfamily|\Means HGS行書体
\item |\hgppfamily|\Means HGS創英角ﾎﾟｯﾌﾟ体
\end{itemize}

\item |hiraginomg|\Means
ヒラギノの丸ゴシックを使う設定。
\begin{itemize}
\item |\hmgfamily|\Means ヒラギノ丸ゴ Pro W4
\end{itemize}

\item |mobo|\Means
Moboフォント（2004JIS字形）を使う設定。
\begin{itemize}
\item |\mobofamily|\Means Moboフォント（2004JIS字形）
\end{itemize}

\item |mobo-90|\Means
Moboフォント（90／2000JIS字形）を使う設定。
\begin{itemize}
\item |\mobofamily|\Means Moboフォント（90／2000JIS字形）
\end{itemize}

\item |maruberi|\Means
マルベリフォントを使う設定。
\begin{itemize}
\item |\mmgfamily|\Means モトヤLマルベリ3等幅
\end{itemize}
\end{itemize}
\Note \Pkg{fontspec}では取り扱うフォントのウェイトを通常（|\mdseries|）
と太字（|\bfseries|）の2つに制限している。
多くのOSでの扱いに合わせているようである。

%-------------------
\subsection{その他のオプション}

\begin{itemize}
\item |oneweight|\Means
複数ウェイト用のメイン設定を単ウェイトとして用いる。
\Note \Pkg{pxchfon}の説明書において |\setminchofont|
と |\setgothicfont| で設定されているウェイトのフォント
が用いられる。
\item |nooneweight|\Means
|oneweight|の否定。

\item |prop|\Means
プロポーショナル幅のフォントを用いる。
例えば、「IPA明朝」の代わりに「IPA P明朝」、
「HGS行書体」の代わりに「HGP行書体」を指定する。
既定で用いるのは等幅のフォントだが、
「欧文のみプロポーショナル」の変種（HGフォントの場合「HGS～」名称のもの）
がある場合はそれを優先させている。
\Note \Pkg{zxjatype}を用いる場合は、
和文は等幅フォントを用いることが前提なので、
このオプションは指定できない（エラーになる）。
\item |noprop|\Means
|prop|の否定。

\item |scale=|\Meta{実数}\Means
スケール値（\Pkg{fontspec}の |Scale| 属性の値）。
既定値は、\Pkg{BXjscls}の文書クラスおよび
\Pkg{zxjatype}パッケージで指定されている場合はその値、
なければ1となる。

\item |jis90|／|90jis|\Means
90JIS字形（2000JIS字形）の使用を指定する。

\item |jis2004|／|2004jis|\Means
2004JIS字形の使用を指定する。

\item |feature={|\Meta{属性リスト}|}|\Means
このパッケージで指定されるフォント全体に通用する
\Pkg{fontspec}の属性の指定。

\end{itemize}

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