diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/japanese/zxjafont |
Initial commit
Diffstat (limited to 'language/japanese/zxjafont')
-rw-r--r-- | language/japanese/zxjafont/LICENSE | 21 | ||||
-rw-r--r-- | language/japanese/zxjafont/README-ja.md | 55 | ||||
-rw-r--r-- | language/japanese/zxjafont/README.md | 49 | ||||
-rw-r--r-- | language/japanese/zxjafont/zxjafont.pdf | bin | 0 -> 142301 bytes | |||
-rw-r--r-- | language/japanese/zxjafont/zxjafont.sty | 427 | ||||
-rw-r--r-- | language/japanese/zxjafont/zxjafont.tex | 285 |
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 Binary files differnew file mode 100644 index 0000000000..0026524f08 --- /dev/null +++ b/language/japanese/zxjafont/zxjafont.pdf 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 |