% 文字コードは 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}{1.0}
\newcommand{\PkgDate}{2020/02/02}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
\newcommand{\Means}{：\ }
\newcommand{\JEmph}{\textgt}
\newcommand{\JSl}{\mbox{／}\linebreak[0]}
%-----------------------------------------------------------
\begin{document}
\title{\Pkg{zxjafont} パッケージ（v\PkgVersion）}
\author{八登崇之\ （Takayuki YATO; aka.~``ZR''）}
\date{v\PkgVersion\quad[\PkgDate]}
\maketitle

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

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

\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{xeCJK}パッケージや\Pkg{zxjatype}パッケージの
日本語処理機能を利用する場合には和文と欧文が区別されるようになり、
この場合は\JEmph{和文のみ}にフォント設定が適用される。

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

総称ファミリに関する設定、すなわち、
\Pkg{fontspec}の\>|\setmainfont|\JSl|\setsansfont|\JSl|\setmonofont|\>%
（\Pkg{xeCJK}\JSl\Pkg{zxjatype}併用時は\>%
|\setCJKmainfont|\JSl|\setCJKsansfont|\JSl|\setCJKmonofont|）
を行うもの。

\Note 「メイン設定」は\Pkg{pxchfon}パッケージにおける
「プリセット設定」をそのまま
引き継いでいる。
設定内容の詳細については、
\JEmph{\Pkg{pxchfon}の説明書を参照してほしい}。

\Note 1.0版より、\Pkg{pxchfon}パッケージの多ウェイト設定について
明朝・ゴシックの3ウェイトが全てサポートされるようになった。

\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生成」に対応していないので、
|noembed| 設定は存在しない。

例えば、メイン設定\>|ms|\>は以下の\Pkg{fontspec}の設定を行う：
\begin{quote}\small\begin{verbatim}
\setmainfont{MS-Mincho}[BoldFont=MS-Gothic]
\setsansfont{MS-Gothic}[BoldFont=MS-Gothic]
\setmonofont{MS-Gothic}[BoldFont=MS-Gothic]
\end{verbatim}\end{quote}
\Note \Pkg{xeCJK}\JSl\Pkg{zxjatype}読込時は和文用フォントの
設定（|\setCJKmainfont|\>等）に置き換わり、またこの場合は
和文スケール設定（|Scale|\>オプションキー）が追加される。
これは以降で紹介する例についても同様である。

\paragraph{多ウェイト用の設定}
セリフ（|\rmfamily|）に明朝、
サンセリフ（|\sffamily|）と等幅（|\ttfamily|）にゴシックを割り当て、
各々について中字（|\mdseries|）と太字（|\bfseries|）のフォントを
\Pkg{pxchfon}のプリセットと同様に個別に設定する。

さらに、|threeweight|\>オプションが有効の場合は、
{p\LaTeX}\>の\Pkg{japanese-otf}で\>|deluxe|\>オプションを指定したときと
同様に、「明朝の細字（|\rmfamily\ltseries|）」と
「ゴシックの極太（|\sffamily\ebseries|）」が指定できるようになり、
明朝とゴシックの各々について3ウェイトのフォントが
\Pkg{pxchfon}のプリセットと同様に個別に設定される。
\Note |threeweight|\>オプションは通常は既定で有効になっている
（詳細は後述）。

\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\JSl 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、
  日本用地域別サブセット版。
\item |haranoaji|\Means
  原ノ味フォント。
\end{itemize}

例えば\>|haranoaji|\>オプションについて説明すると、%
|threeweight|\>が有効の場合は以下の設定
（3ウェイト）が行われる：
\begin{quote}\small\begin{verbatim}
\setmainfont{HaranoAjiMincho-Regular}[BoldFont=HaranoAjiMincho-Bold,
    FontFace={l}{n}{HaranoAjiMincho-Light}]
\setsansfont{HaranoAjiGothic-Regular}[BoldFont=HaranoAjiGothic-Bold,
    FontFace={eb}{n}{HaranoAjiGothic-Heavy}]
\setmonofont{HaranoAjiGothic-Regular}[BoldFont=HaranoAjiGothic-Bold,
    FontFace={eb}{n}{HaranoAjiGothic-Heavy}]
\end{verbatim}\end{quote}

|threeweight|\>が無効の場合は以下の設定
（中字・太字のみの2ウェイト）が行われる：
\begin{quote}\small\begin{verbatim}
\setmainfont{HaranoAjiMincho-Regular}[BoldFont=HaranoAjiMincho-Bold]
\setsansfont{HaranoAjiGothic-Regular}[BoldFont=HaranoAjiGothic-Bold]
\setmonofont{HaranoAjiGothic-Regular}[BoldFont=HaranoAjiGothic-Bold]
\end{verbatim}\end{quote}

|oneweight|\>オプション指定時は以下の設定
（1ウェイトのみ）が行われる：
\begin{quote}\small\begin{verbatim}
\setmainfont{HaranoAjiMincho-Regular}[BoldFont=HaranoAjiMincho-Medium]
\setsansfont{HaranoAjiGothic-Medium}[BoldFont=HaranoAjiGothic-Medium]
\setmonofont{HaranoAjiGothic-Medium}[BoldFont=HaranoAjiGothic-Medium]
\end{verbatim}\end{quote}
\Note 他の例と異なりゴシックで“|HaranoAjiMincho-Medium|”%
（\Pkg{pxchfon}のマニュアルのプリセットの解説で\>|\setgothicfont|\>に
割り当てられているフォント）が使われていることに注意。

そして\>|bold|\>オプション指定時は以下の設定が行われる：
\begin{quote}\small\begin{verbatim}
\setmainfont{HaranoAjiMincho-Regular}[BoldFont=HaranoAjiMincho-Bold]
\setsansfont{HaranoAjiGothic-Bold}[BoldFont=HaranoAjiGothic-Bold]
\setmonofont{HaranoAjiGothic-Bold}[BoldFont=HaranoAjiGothic-Bold]
\end{verbatim}\end{quote}

\paragraph{他パッケージとの互換用のオプション}
\mbox{}

\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}でのプリセット名。）
\item |hiragino|\Means
  |hiragino-pro| の別名。
  （\Pkg{ptex-fontmaps}でのプリセット名。）
  \Note 0.6版で追加。
  0,4版以前では |hiragino| が別の設定を指していたが、
  これは0.5版で廃止された。
\end{itemize}

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

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

\Note ただし |hiragino| については現在では |hiragino-pro| の別名と
解釈される。

\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\JSl 2000JIS字形）を使う設定。
\begin{itemize}
\item |\mobofamily|\Means Moboフォント（90\JSl 2000JIS字形）
\end{itemize}

\item |maruberi|\Means
マルベリフォントを使う設定。
\begin{itemize}
\item |\mmgfamily|\Means モトヤLマルベリ3等幅
\end{itemize}
\end{itemize}

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

\begin{itemize}
\item |oneweight|（または|nodeluxe|）\Means
多ウェイト用のメイン設定を単ウェイトとして用いる。
\Note \Pkg{pxchfon}のマニュアルのプリセットの記述に
おいて\>|\setminchofont|\>と\>|\setgothicfont|\>で設定されている
ウェイトのフォントが用いられる。
\item |nooneweight|（または|deluxe|；既定）\Means
|oneweight|\>の否定。
\Note |(no)deluxe|\>は\Pkg{luatexja-preset}との互換の別名。

\item |threeweight|（既定）\Means
多ウェイト用のメイン設定を使う場合に3ウェイトを利用できるようにする。
\item |nothreeweight|\Means
|threeweight|\>の否定。
多ウェイト用のメイン設定は2ウェイトのみ使える。
\Note 既定は\>|threeweight|\>であるが、使用中の\Pkg{fontspec}の版が
古くて追加ウェイトに対応できない場合は\>|nothreeweight|\>が既定になる。

\item |bold|\Means
|oneweight|\>と同じく多ウェイト用のメイン設定を単ウェイトとして用いるが、
この際のゴシック体のフォントとして太字ウェイトに相当するものを用いる。
\Note \Pkg{pxchfon}の説明書の記述における\>|\setminchofont|\>%
と\>|\setboldgothicfont|\>のフォントが用いられる。
\Note \Pkg{luatexja-preset}とは異なり、|bold|\>の指定自体が
単ウェイト設定を強制する。
|bold|\>と\>|oneweight|\>を同時に指定した場合は\>|bold|\>が優先する。
\item |nobold|（既定）\Means
|bold|\>の否定。

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

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

\item |jis90|\JSl|90jis|\Means
90JIS字形（2000JIS字形）の使用を指定する。
\item |jis2004|\JSl|2004jis|\Means
2004JIS字形の使用を指定する。
\item |nojisshape|（既定）\Means
特定のJIS字形の使用の指定を行わない。

\item |ignorejatype|\Means
たとえ\Pkg{xeCJK}\JSl\Pkg{zxjatype}が読み込まれていたとしても
それらを無視して、「和文欧文の区別がない」前提の動作を行う。
\Note この場合「プリセットで指定した日本語フォントが\JEmph{欧文のみ}に
適用される」という奇妙な動作になるため、このオプションの有用性は
ほぼないと思われる。
\item |noignorejatype|（既定）\Means
|ignorejatype|\>の否定。

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

\end{itemize}

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