summaryrefslogtreecommitdiff
path: root/language/japanese/zxjafont
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/japanese/zxjafont
Initial commit
Diffstat (limited to 'language/japanese/zxjafont')
-rw-r--r--language/japanese/zxjafont/LICENSE21
-rw-r--r--language/japanese/zxjafont/README-ja.md55
-rw-r--r--language/japanese/zxjafont/README.md49
-rw-r--r--language/japanese/zxjafont/zxjafont.pdfbin0 -> 142301 bytes
-rw-r--r--language/japanese/zxjafont/zxjafont.sty427
-rw-r--r--language/japanese/zxjafont/zxjafont.tex285
6 files changed, 837 insertions, 0 deletions
diff --git a/language/japanese/zxjafont/LICENSE b/language/japanese/zxjafont/LICENSE
new file mode 100644
index 0000000000..534324b756
--- /dev/null
+++ b/language/japanese/zxjafont/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2019 Takayuki YATO (aka. "ZR")
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/language/japanese/zxjafont/README-ja.md b/language/japanese/zxjafont/README-ja.md
new file mode 100644
index 0000000000..2b21240e5d
--- /dev/null
+++ b/language/japanese/zxjafont/README-ja.md
@@ -0,0 +1,55 @@
+ZXjafont パッケージバンドル
+===========================
+
+LaTeX: 一般的な和文フォント設定のプリセット
+
+XeLaTeX + fontspec でのフォントファミリ名を直接指定する方式は「好きな
+フォントを指定する」という点では、 pLaTeX よりも格段に使い易いが、日本語
+を扱うためには必ず何らかの設定を行う必要があり、これが煩わしく感じられる
+場合もある。本パッケージでは、pLaTeX において一般的に行われている設定を
+予め用意しておいて、簡単に呼び出せるようにしている。
+
+### 前提環境
+
+ * フォーマット: LaTeX
+ * エンジン: XeTeX
+ * 依存パッケージ:
+ - fontspec
+
+### インストール
+
+TDS 1.1 に従ったシステムでは、各ファイルを次の場所に移動する。
+
+ - `*.sty` → $TEXMF/tex/xelatex/zxjafont
+
+### ライセンス
+
+本パッケージは MIT ライセンスの下で配布される。
+
+
+zxjafont パッケージ ー 本体
+---------------------------
+
+詳細についてはマニュアル `zxjafont.pdf` を参照されたい。
+
+
+更新履歴
+--------
+
+ * Version 0.5 〈2019/06/29〉
+ - 非推奨のプリセットを廃止した。
+ - 他パッケージとの互換のため、オプションやプリセットの別名を追加。
+ * Version 0.4 〈2018/05/04〉
+ - プリセット追加:`yu-win10`、`sourcehan(-jp)`、`noto(-jp)`、`ume`。
+ - オプション追加:`90jis`、`jis2004`。
+ - 非推奨のプリセットの使用を警告する。
+ * Version 0.3 〈2015/05/08〉
+ - プリセット設定を pxchfon のものに合わせた。
+ * Version 0.2a 〈2013/01/28〉
+ - 新版の zxjatype への対応。
+ * Version 0.2 〈2009/12/22〉
+ - 最初の公開版。
+
+--------------------
+Takayuki YATO (aka. "ZR")
+http://zrbabbler.sp.land.to/
diff --git a/language/japanese/zxjafont/README.md b/language/japanese/zxjafont/README.md
new file mode 100644
index 0000000000..94d039d587
--- /dev/null
+++ b/language/japanese/zxjafont/README.md
@@ -0,0 +1,49 @@
+ZXjafont Package
+================
+
+LaTeX: Set up Japanese font families for XeLaTeX
+
+Font selection using fontspec package is very flexible and powerful.
+But users who are used to pLaTeX often feel the setting bothersome,
+as there is no default working font setting (that involves Japanese
+fonts) and they always must give one. This package prepares some
+popular font settings as “presets” and allows users to use them
+simply by referring to their name.
+
+### SYSTEM REQUIREMENTS
+
+ - TeX format: XeLaTeX.
+ - Prerequisite packages: fontspec.
+
+### INSTALLATION
+
+Move the files as follows (in a system compliant to TDS 1.1):
+
+ - `*.sty` → $TEXMF/tex/xelatex/zxjafont/
+
+And rehash your TEXMF trees if necessary.
+
+### LICENSE
+
+This package is distributed under the MIT License.
+
+Revision History
+----------------
+
+ * Version 0.5 〈2019/06/29〉
+ - More aliases are provided.
+ - The deprecated presets are abolished.
+ * Version 0.4 〈2018/05/04〉
+ - New preets: `yu-win10`, `sourcehan(-jp)`, `noto(-jp)`, `ume`.
+ - New options: `90jis`, `jis2004`.
+ - The use of deprecated presets is warned.
+ * Version 0.3 〈2015/05/08〉
+ - Presets made more alike those of pxchfon.
+ * Version 0.2a 〈2013/01/28〉
+ - Adjustment for new zxjatype.
+ * Version 0.2 〈2009/12/22〉
+ - First public version.
+
+--------------------
+Takayuki YATO (aka. "ZR")
+http://zrbabbler.sp.land.to/
diff --git a/language/japanese/zxjafont/zxjafont.pdf b/language/japanese/zxjafont/zxjafont.pdf
new file mode 100644
index 0000000000..0026524f08
--- /dev/null
+++ b/language/japanese/zxjafont/zxjafont.pdf
Binary files differ
diff --git a/language/japanese/zxjafont/zxjafont.sty b/language/japanese/zxjafont/zxjafont.sty
new file mode 100644
index 0000000000..4ba6b6a64a
--- /dev/null
+++ b/language/japanese/zxjafont/zxjafont.sty
@@ -0,0 +1,427 @@
+%%
+%% This is file 'zxjafont.sty'.
+%%
+%% Copyright (c) 2018 Takayuki YATO (aka. "ZR")
+%% GitHub: https://github.com/zr-tex8r
+%% Twitter: @zr_tex8r
+%%
+%% This package is distributed under the MIT License.
+%%
+
+%% package declaration
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zxjafont}[2019/06/29 v0.5]
+\def\zxjf@pkgname{zxjafont}
+
+%% preparation
+\RequirePackage{ifxetex}\RequireXeTeX
+\providecommand{\bxDebug}[1]{}
+
+%--------------------------------------- general
+
+%% packages
+\RequirePackage{fontspec}
+\RequirePackage{keyval}
+\RequirePackage{etoolbox}
+
+%% errors
+\def\zxjf@err@ivval#1#2{%
+ \PackageError\zxjf@pkgname
+ {Invalid value '#2' for option #1}\@ehc}
+
+%--------------------------------------- handle options
+
+%% constants
+\chardef\zxjf@cjkshape@@none=0
+\chardef\zxjf@cjkshape@@xc=1 % 90jis
+\chardef\zxjf@cjkshape@@mmiv=2 % jis2004
+
+%% variables
+\let\zxjf@main@preset\relax
+\let\zxjf@sub@preset\@empty
+\newif\ifzxjf@prop
+\newif\ifzxjf@oneweight
+\let\zxjf@cjkshape\zxjf@cjkshape@@none
+\let\zxjf@scale\relax
+\let\zxjf@feat\@empty
+\newif\ifzxjf@zxjatype
+
+%% \zxjf@main@preset
+\def\zxjf@all@main@preset{%
+ %(uniweight)
+ ms,ipa,ipaex,%
+ %(multiweight)
+ ms-hg,ipa-hg,ipaex-hg,moga,moga-90,ume,%
+ kozuka-pro,kozuka-pr6,kozuka-pr6n,hiragino-pro,hiragino-pron,%
+ morisawa-pro,morisawa-pr6n,yu-win,yu-win10,yu-osx,%
+ sourcehan,sourcehan-jp,noto,noto-jp,%
+ %(alias)
+ kozuka,morisawa,moga-mobo-ex,noto-otf}
+
+%% \zxjf@main@sub@preset
+\def\zxjf@all@sub@preset{%
+ hg,hiraginomg-pro,hiraginomg-pron,mobo,mobo-90,maruberi,%
+ hiraginomg}
+
+% preset options
+\def\zxjf@do#1{\DeclareOption{#1}{\def\zxjf@main@preset{#1}}}
+\@for\zxjf@x:=\zxjf@all@main@preset\do{%
+ \expandafter\zxjf@do\expandafter{\zxjf@x}}
+\def\zxjf@do#1{\DeclareOption{#1}{\zxjf@add@sub@preset{#1}}}
+\@for\zxjf@x:=\zxjf@all@sub@preset\do{%
+ \expandafter\zxjf@do\expandafter{\zxjf@x}}
+\def\zxjf@add@sub@preset#1{%
+ \edef\zxjf@sub@preset{\zxjf@sub@preset#1,}}
+% 'prop'
+\DeclareOption{prop}{\zxjf@proptrue}
+\DeclareOption{noprop}{\zxjf@propfalse}
+% 'oneweight'
+\DeclareOption{oneweight}{\zxjf@oneweighttrue}
+\DeclareOption{nooneweight}{\zxjf@oneweightfalse}
+% '90jis'/'jis2004'
+\DeclareOption{jis90}{\let\zxjf@cjkshape\zxjf@cjkshape@@xc}
+\DeclareOption{90jis}{\let\zxjf@cjkshape\zxjf@cjkshape@@xc}
+\DeclareOption{jis2004}{\let\zxjf@cjkshape\zxjf@cjkshape@@mmiv}
+\DeclareOption{2004jis}{\let\zxjf@cjkshape\zxjf@cjkshape@@mmiv}
+
+% abolished presets
+\@onlypreamble\zxjf@err@abpre
+\def\zxjf@err@abpre#1{%
+ \PackageError\zxjf@pkgname
+ {The old preset '#1' is *abolished*}{\@ehc}}
+\@for\zxjf@x:={%
+ kozuka4,kozuka6,kozuka6n,hiragino,ms-dx,ipa-dx,hiragino-dx%
+}\do{\DeclareOption{\zxjf@x}{\zxjf@err@abpre{\CurrentOption}}}
+
+%% options using keyval
+\DeclareOption*{\def\zxjf@nxt{\setkeys{zxjf}}%
+ \expandafter\zxjf@nxt\expandafter{\CurrentOption}}
+% 'scale=<real>'
+\define@key{zxjf}{scale}{\def\zxjf@scale{#1}}
+% 'feature=<text>'
+\define@key{zxjf}{feature}{\def\zxjf@feat{#1}}
+
+%% dispatch
+\let\@org@use@ption\@use@ption
+\def\@use@ption{\csname ds@\CurrentOption \endcsname}
+\ProcessOptions*
+\let\@use@ption\@org@use@ption
+
+%% preset must be given
+\ifx\zxjf@main@preset\relax
+ \PackageError\zxjf@pkgname
+ {Preset name not specified}
+ {You must give one of the following names as option.\MessageBreak
+ \space\space\zxjf@all@main@preset}
+\expandafter\endinput\fi\relax
+
+%% detect bxjatype
+\@ifpackageloaded{zxjatype}{\zxjf@zxjatypetrue}{}
+\AtBeginDocument{%
+ \unless\ifzxjf@zxjatype
+ \@ifpackageloaded{zxjatype}{%
+ \PackageError\zxjf@pkgname
+ {zxjatype must be loaded before me}\@ehc
+ }{}%
+ \fi}
+\ifzxjf@zxjatype\ifzxjf@prop
+ \PackageError\zxjf@pkgname
+ {Option 'prop' cannot be used with zxjatype}\@ehc
+ \zxjf@propfalse
+\fi\fi
+
+%% decide scale factor
+\ifx\zxjf@scale\relax
+ % If zxjatype is used, try \JaFontScale, \zxjt@scale,
+ % and \__zxjt_scale_tl.
+ \ifzxjf@zxjatype
+ \ifdefined\JaFontScale \let\zxjf@scale\JaFontScale
+ \else\ifdefined\zxjt@scale \let\zxjf@scale\zxjt@scale
+ \else\ifcsname __zxjt_scale_tl\endcsname
+ \letcs\zxjf@scale{__zxjt_scale_tl}
+ \fi\fi\fi
+ \fi
+ \ifx\zxjf@scale\relax % still unknown
+ % Try \Cjascale and \jsScale.
+ \ifdefined\Cjascale \let\zxjf@scale\Cjascale
+ \else\ifdefined\jsScale \let\zxjf@scale\jsScale
+ \fi\fi
+ \fi
+ \ifx\zxjf@scale\relax % still unknown
+ \def\zxjf@scale{1}%
+ \fi
+\fi
+
+%% resolve CJKshape
+\edef\zxjf@feat{%
+ \ifcase\zxjf@cjkshape % none
+ \or CJKShape=JIS1990,% 90jis
+ \or CJKShape=JIS2004,% jis2004
+ \fi
+ \zxjf@feat}
+
+%% \zxjf@xfeat
+% All fontspec options including scale.
+\edef\zxjf@xfeat{Scale=\zxjf@scale,\zxjf@feat}
+\bxDebug{zxjafont>>scale=\zxjf@scale/feat={\zxjf@feat}/%
+ preset=\zxjf@main@preset/\zxjf@sub@preset}
+
+%--------------------------------------- font setup helpers
+
+%% \zxjf@setmainfont{<attributes>}{<fam_name>}, etc.
+\ifzxjf@zxjatype
+\def\zxjf@setmainfont#1{\setjamainfont[\zxjf@xfeat,#1]}
+\def\zxjf@setsansfont#1{\setjasansfont[\zxjf@xfeat,#1]}
+\def\zxjf@setmonofont#1{\setjamonofont[\zxjf@xfeat,#1]}
+\def\zxjf@newfamily#1#2#3{%
+ \csedef{#1family}{%
+ \expandonce{\csname a#1family\endcsname}\noexpand\CJKfamily{#1}}%
+ \expandafter\newfontfamily\csname a#1family\endcsname[\zxjf@feat,#2]{#3}%
+ \setjafamilyfont{#1}[\zxjf@xfeat,#2]{#3}}
+\else
+\def\zxjf@setmainfont#1{\setmainfont[\zxjf@xfeat,#1]}
+\def\zxjf@setsansfont#1{\setsansfont[\zxjf@xfeat,#1]}
+\def\zxjf@setmonofont#1{\setmonofont[\zxjf@xfeat,#1]}
+\def\zxjf@newfamily#1#2{%
+ \expandafter\newfontfamily\csname #1family\endcsname[\zxjf@xfeat,#2]}
+\fi
+
+%--------------------------------------- preset japanese font mappings
+
+%% \zxjf@declare@preset{<name>}{<text>}, etc.
+\def\zxjf@declare@preset#1{%
+ \expandafter\zxjf@decl@preset@a\csname zxjf@the@preset@#1\endcsname}
+\def\zxjf@decl@preset@a#1{\@onlypreamble#1\def#1}
+\zxjf@declare@preset{}{}
+\@onlypreamble\zxjf@uniweight
+\def\zxjf@uniweight#1#2{%
+ \zxjf@uniweight@opt{#1}{#2}{}}
+\@onlypreamble\zxjf@uniweight@opt
+\def\zxjf@uniweight@opt#1#2#3{%
+ \zxjf@setmainfont{#3,BoldFont=#2}{#1}%
+ \zxjf@setsansfont{#3}{#2}%
+ \zxjf@setmonofont{#3}{#2}}
+\@onlypreamble\zxjf@multiweight
+\def\zxjf@multiweight#1#2#3#4#5{%
+ \zxjf@multiweight@opt{#1}{#2}{#3}{#4}{#5}{}}
+\@onlypreamble\zxjf@multiweight@opt
+\def\zxjf@multiweight@opt#1#2#3#4#5#6{%
+ \ifzxjf@oneweight
+ \zxjf@setmainfont{#6,BoldFont=#5}{#1}%
+ \zxjf@setsansfont{#6}{#5}%
+ \zxjf@setmonofont{#6}{#5}%
+ \else
+ \zxjf@setmainfont{#6,BoldFont=#2}{#1}%
+ \zxjf@setsansfont{#6,BoldFont=#4}{#3}%
+ \zxjf@setmonofont{#6,BoldFont=#4}{#3}%
+ \fi}
+%% \zxjf@declare@preset@with@prop{<name>}{<text>}
+\def\zxjf@declare@preset@with@prop#1#2{%
+ \zxjf@declare@preset{#1}{#2{RawFeature=-palt;-kern}}%
+ \zxjf@declare@preset{#1/prop}{#2{RawFeature=+palt;+kern}}}
+
+%% \zxjf@declare@preset@alias{<name1>}{<name2>}
+\def\zxjf@declare@preset@alias#1#2{%
+ \csletcs{zxjf@the@preset@#1}{zxjf@the@preset@#2}}
+%% \zxjf@declare@preset@alias@with@prop{<name1>}{<name2>}
+\def\zxjf@declare@preset@alias@with@prop#1#2{%
+ \zxjf@declare@preset@alias{#1}{#2}%
+ \zxjf@declare@preset@alias{#1/prop}{#2/prop}}
+
+%% \zxjf@use@preset{<name>}
+\def\zxjf@use@preset#1{%
+ \undef\zxjf@nxt
+ \ifzxjf@prop \letcs\zxjf@nxt{zxjf@the@preset@#1/prop}\fi
+ \unless\ifdefined\zxjf@nxt \letcs\zxjf@nxt{zxjf@the@preset@#1}\fi
+ \zxjf@nxt}
+
+%% definitions of main preset mappings
+\zxjf@declare@preset{ms}{%
+ \zxjf@uniweight{MS-Mincho}{MS-Gothic}}
+\zxjf@declare@preset{ms/prop}{%
+ \zxjf@uniweight{MS-PMincho}{MS-PGothic}}
+\zxjf@declare@preset{ms-hg}{%
+ \zxjf@multiweight{MS-Mincho}{HGMinchoE}%
+ {HGGothicM}{HGGothicE}{MS-Gothic}}
+\zxjf@declare@preset{ms-hg/prop}{%
+ \zxjf@multiweight{MS-PMincho}{HGPMinchoE}%
+ {HGPGothicM}{HGGothicE}{MS-PGothic}}
+\zxjf@declare@preset{ipa}{%
+ \zxjf@uniweight{IPAMincho}{IPAGothic}}
+\zxjf@declare@preset{ipa/prop}{%
+ \zxjf@uniweight{IPAPMincho}{IPAPGothic}}
+\zxjf@declare@preset{ipa-hg}{%
+ \zxjf@multiweight{IPAMincho}{HGMinchoE}%
+ {HGGothicM}{HGGothicE}{IPAGothic}}
+\zxjf@declare@preset{ipa-hg/prop}{%
+ \zxjf@multiweight{IPAPMincho}{HGPMinchoE}%
+ {HGPGothicM}{HGGothicE}{IPAPGothic}}
+\zxjf@declare@preset{ipaex}{%
+ \zxjf@uniweight{ipaexm.ttf}{ipaexg.ttf}}
+\zxjf@declare@preset{ipaex-hg}{%
+ \zxjf@multiweight{ipaexm.ttf}{HGSMinchoE}%
+ {HGSGothicM}{HGSGothicE}{ipaexg.ttf}}
+\zxjf@declare@preset{moga}{%
+ \zxjf@multiweight{MogaExMincho}{MogaExMincho Bold}%
+ {MogaExGothic}{MogaExGothic Bold}{MogaExGothic}}
+\zxjf@declare@preset{moga-90}{%
+ \zxjf@multiweight{MogaEx90Mincho}{MogaEx90Mincho Bold}%
+ {MogaEx90Gothic}{MogaEx90Gothic Bold}{MogaEx90Gothic}}
+\zxjf@declare@preset{ume}{%
+ \zxjf@multiweight{Ume Mincho}{Ume Mincho}%
+ {Ume Gothic}{Ume Gothic O5}{Ume Gothic O5}}
+\zxjf@declare@preset{kozuka-pro}{%
+ \zxjf@multiweight@opt{KozMinPro-Regular}{KozMinPro-Bold}%
+ {KozGoPro-Regular}{KozGoPro-Bold}%
+ {KozGoPro-Medium}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{kozuka-pro/prop}{%
+ \zxjf@multiweight@opt{KozMinPro-Regular}{KozMinPro-Bold}%
+ {KozGoPro-Regular}{KozGoPro-Bold}%
+ {KozGoPro-Medium}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{kozuka-pr6}{%
+ \zxjf@multiweight@opt{KozMinProVI-Regular}{KozMinProVI-Bold}%
+ {KozGoProVI-Regular}{KozGoProVI-Bold}%
+ {KozGoProVI-Medium}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{kozuka-pr6/prop}{%
+ \zxjf@multiweight@opt{KozMinProVI-Regular}{KozMinProVI-Bold}%
+ {KozGoProVI-Regular}{KozGoProVI-Bold}%
+ {KozGoProVI-Medium}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{kozuka-pr6n}{%
+ \zxjf@multiweight@opt{KozMinPr6N-Regular}{KozMinPr6N-Bold}%
+ {KozGoPr6N-Regular}{KozGoPr6N-Bold}%
+ {KozGoPr6N-Medium}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{kozuka-pr6n/prop}{%
+ \zxjf@multiweight@opt{KozMinPr6N-Regular}{KozMinPr6N-Bold}%
+ {KozGoPr6N-Regular}{KozGoPr6N-Bold}%
+ {KozGoPr6N-Medium}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{hiragino-pro}{%
+ \zxjf@multiweight@opt{Hiragino Mincho Pro W3}{Hiragino Mincho Pro W6}%
+ {Hiragino Kaku Gothic Pro W3}{Hiragino Kaku Gothic Pro W6}%
+ {Hiragino Kaku Gothic Pro W6}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{hiragino-pro/prop}{%
+ \zxjf@multiweight@opt{Hiragino Mincho Pro W3}{Hiragino Mincho Pro W6}%
+ {Hiragino Kaku Gothic Pro W3}{Hiragino Kaku Gothic Pro W6}%
+ {Hiragino Kaku Gothic Pro W6}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{hiragino-pron}{%
+ \zxjf@multiweight@opt{Hiragino Mincho ProN W3}{Hiragino Mincho ProN W6}%
+ {Hiragino Kaku Gothic ProN W3}{Hiragino Kaku Gothic ProN W6}%
+ {Hiragino Kaku Gothic ProN W6}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{hiragino-pron/prop}{%
+ \zxjf@multiweight@opt{Hiragino Mincho ProN W3}{Hiragino Mincho ProN W6}%
+ {Hiragino Kaku Gothic ProN W3}{Hiragino Kaku Gothic ProN W6}%
+ {Hiragino Kaku Gothic ProN W6}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{morisawa-pro}{%
+ \zxjf@multiweight@opt{A-OTF-RyuminPro-Light.otf}{A-OTF-FutoMinA101Pro-Bold.otf}%
+ {A-OTF-GothicBBBPro-Medium.otf}{A-OTF-FutoGoB101Pro-Bold.otf}%
+ {A-OTF-GothicBBBPro-Medium.otf}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{morisawa-pro/prop}{%
+ \zxjf@multiweight@opt{A-OTF-RyuminPro-Light.otf}{A-OTF-FutoMinA101Pro-Bold.otf}%
+ {A-OTF-GothicBBBPro-Medium.otf}{A-OTF-FutoGoB101Pro-Bold.otf}%
+ {A-OTF-GothicBBBPro-Medium.otf}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{morisawa-pr6n}{%
+ \zxjf@multiweight@opt{A-OTF-RyuminPr6N-Light.otf}{A-OTF-FutoMinA101Pr6N-Bold.otf}%
+ {A-OTF-GothicBBBPr6N-Medium.otf}{A-OTF-FutoGoB101Pr6N-Bold.otf}%
+ {A-OTF-GothicBBBPr6N-Medium.otf}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{morisawa-pr6n/prop}{%
+ \zxjf@multiweight@opt{A-OTF-RyuminPr6N-Light.otf}{A-OTF-FutoMinA101Pr6N-Bold.otf}%
+ {A-OTF-GothicBBBPr6N-Medium.otf}{A-OTF-FutoGoB101Pr6N-Bold.otf}%
+ {A-OTF-GothicBBBPr6N-Medium.otf}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset{yu-win}{%
+ \zxjf@multiweight@opt{YuMincho-Regular}{YuMincho-Demibold}%
+ {YuGothic-Regular}{YuGothic-Bold}%
+ {YuGothic-Regular}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{yu-win/prop}{%
+ \zxjf@multiweight@opt{YuMincho-Regular}{YuMincho-Demibold}%
+ {YuGothic-Regular}{YuGothic-Bold}%
+ {YuGothic-Regular}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset@with@prop{yu-win10}{%
+ \zxjf@multiweight@opt{YuMincho-Regular}{YuMincho-Demibold}%
+ {YuGothic-Regular}{YuGothic-Bold}%
+ {YuGothic-Medium}}
+\zxjf@declare@preset{yu-osx}{%
+ \zxjf@multiweight@opt{YuMincho-Medium}{YuMincho-Demibold}%
+ {YuGothic-Medium}{YuGothic-Bold}%
+ {YuGothic-Medium}{RawFeature=-palt;-kern}}
+\zxjf@declare@preset{yu-osx/prop}{%
+ \zxjf@multiweight@opt{YuMincho-Medium}{YuMincho-Demibold}%
+ {YuGothic-Medium}{YuGothic-Bold}%
+ {YuGothic-Medium}{RawFeature=+palt;+kern}}
+\zxjf@declare@preset@with@prop{sourcehan}{%
+ \zxjf@multiweight@opt{SourceHanSerif-Regular}{SourceHanSerif-Bold}%
+ {SourceHanSans-Regular}{SourceHanSans-Bold}%
+ {SourceHanSans-Medium}}
+\zxjf@declare@preset@with@prop{sourcehan-jp}{%
+ \zxjf@multiweight@opt{SourceHanSerifJP-Regular}{SourceHanSerifJP-Bold}%
+ {SourceHanSansJP-Regular}{SourceHanSansJP-Bold}%
+ {SourceHanSansJP-Medium}}
+\zxjf@declare@preset@with@prop{noto}{%
+ \zxjf@multiweight@opt{NotoSerifCJKjp-Regular}{NotoSerifCJKjp-Bold}%
+ {NotoSansCJKjp-Regular}{NotoSansCJKjp-Bold}%
+ {NotoSansCJKjp-Medium}}
+\zxjf@declare@preset@with@prop{noto-jp}{%
+ \zxjf@multiweight@opt{NotoSerifJP-Regular}{NotoSerifJP-Bold}%
+ {NotoSansJP-Regular}{NotoSansJP-Bold}%
+ {NotoSansJP-Medium}}
+%(alias)
+\zxjf@declare@preset@alias@with@prop{kozuka}{kozuka-pro}
+\zxjf@declare@preset@alias@with@prop{morisawa}{morisawa-pro}
+\zxjf@declare@preset@alias{moga-mobo-ex}{moga}
+\zxjf@declare@preset@alias{noto-otf}{noto}
+
+%% definitions of sub preset mappings
+\zxjf@declare@preset{hg}{%
+ \zxjf@newfamily{hgmc}{BoldFont=HGSMinchoE}{HGSMinchoB}%
+ \zxjf@newfamily{hgpr}{}{HGSSoeiPresenceEB}%
+ \zxjf@newfamily{hggt}{BoldFont=HGSGothicE}{HGSGothicM}%
+ \zxjf@newfamily{hggu}{}{HGSSoeiKakugothicUB}%
+ \zxjf@newfamily{hgmg}{}{HGMaruGothicMPRO}%
+ \zxjf@newfamily{hgkk}{}{HGSKyokashotai}%
+ \zxjf@newfamily{hgks}{}{HGSeikaishotaiPRO}%
+ \zxjf@newfamily{hggs}{}{HGSGyoshotai}%
+ \zxjf@newfamily{hgpp}{}{HGSSoeiKakupoptai}%
+}
+\zxjf@declare@preset{hg/prop}{%
+ \zxjf@newfamily{hgmc}{BoldFont=HGPMinchoE}{HGPMinchoB}%
+ \zxjf@newfamily{hgpr}{}{HGPSoeiPresenceEB}%
+ \zxjf@newfamily{hggt}{BoldFont=HGPGothicE}{HGPGothicM}%
+ \zxjf@newfamily{hggu}{}{HGPSoeiKakugothicUB}%
+ \zxjf@newfamily{hgmg}{}{HGMaruGothicMPRO}%
+ \zxjf@newfamily{hgkk}{}{HGPKyokashotai}%
+ \zxjf@newfamily{hgks}{}{HGSeikaishotaiPRO}%
+ \zxjf@newfamily{hggs}{}{HGPGyoshotai}%
+ \zxjf@newfamily{hgpp}{}{HGPSoeiKakupoptai}%
+}
+\zxjf@declare@preset{hiraginomg-pro}{%
+ \zxjf@newfamily{hmg}{RawFeature=-palt;-kern}{Hiragino Maru Gothic Pro W4}}
+\zxjf@declare@preset{hiraginomg-pro/prop}{%
+ \zxjf@newfamily{hmg}{RawFeature=+palt;+kern}{Hiragino Maru Gothic Pro W4}}
+\zxjf@declare@preset{hiraginomg-pron}{%
+ \zxjf@newfamily{hmg}{RawFeature=-palt;-kern}{Hiragino Maru Gothic ProN W4}}
+\zxjf@declare@preset{hiraginomg-pron/prop}{%
+ \zxjf@newfamily{hmg}{RawFeature=+palt;+kern}{Hiragino Maru Gothic ProN W4}}
+\zxjf@declare@preset@alias{hiraginomg}{hiraginomg-pro}
+\zxjf@declare@preset@alias{hiraginomg/prop}{hiraginomg-pro/prop}
+
+\zxjf@declare@preset{mobo}{%
+ \zxjf@newfamily{mobo}{Bold=MoboExGothic Bold}{MoboExGothic}}
+\zxjf@declare@preset{mobo-90}{%
+ \zxjf@newfamily{mobo}{Bold=MoboEx90Gothic Bold}{MoboEx90Gothic}}
+\zxjf@declare@preset{maruberi}{%
+ \zxjf@newfamily{mmg}{}{MotoyaLMaru}}
+
+%% ... and invokes the specified one!
+\zxjf@use@preset{\zxjf@main@preset}
+\@for\zxjf@x:=\zxjf@sub@preset\do{\zxjf@use@preset\zxjf@x}
+
+%--------------------------------------- and some extras
+
+%%<*> \useeasyjapanesesettings
+\newcommand*\useeasyjapanesesettings{%
+\XeTeXlinebreaklocale "ja"\relax
+\XeTeXlinebreakskip=0pt plus 1pt minus 0.1pt\relax
+\XeTeXlinebreakpenalty=0\relax
+}
+
+%--------------------------------------- all done
+\endinput
+%% EOF
diff --git a/language/japanese/zxjafont/zxjafont.tex b/language/japanese/zxjafont/zxjafont.tex
new file mode 100644
index 0000000000..c3b52a9358
--- /dev/null
+++ b/language/japanese/zxjafont/zxjafont.tex
@@ -0,0 +1,285 @@
+% 文字コードは 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