summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-12-15 23:30:20 +0000
committerKarl Berry <karl@freefriends.org>2012-12-15 23:30:20 +0000
commit73e38a04c88122b4157e1a4708fe7d4520b2ac41 (patch)
tree1f19474087290e8bbd51845ad542940fee4a178e /Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty
parent4d9e3bb3fa14ad6e2fda22af339c194eefab2151 (diff)
new zxjafont (15dec12)
git-svn-id: svn://tug.org/texlive/trunk@28540 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty')
-rw-r--r--Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty229
1 files changed, 229 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty b/Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty
new file mode 100644
index 00000000000..09eb347f9e9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/zxjafont/zxjafont.sty
@@ -0,0 +1,229 @@
+%
+% zxjafont.sty
+%
+%%%% package declaration
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zxjafont}[2009/12/22 v0.2]
+\RequirePackage{ifxetex}
+\RequireXeTeX
+
+%%%% preparation
+\def\zxjf@pkgname{zxjafont}
+\def\zxjf@error{\PackageError\zxjf@pkgname}
+\def\zxjf@warn{\PackageInfo\zxjf@pkgname}
+\RequirePackage{fontspec}
+\RequirePackage{keyval}
+\ifx\bxUseDebug\relax \let\zxjf@debug\@gobble
+\else \def\zxjf@debug#1{\typeout{\zxjf@pkgname: #1}}
+\fi
+
+%%%% options handling
+%% \zxjf@main@preset
+\def\zxjf@all@main@preset{%
+ ms,ms-dx,ipa,ipa-dx,kozuka4,kozuka6,kozuka6n,hiragino,hiragino-dx}
+\def\zxjf@all@sub@preset{%
+ hg,hiraginomg}
+\let\zxjf@main@preset\relax
+\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}}
+\let\zxjf@sub@preset\@empty
+\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,}}
+%
+\newif\ifzxjf@prop
+\DeclareOption{prop}{\zxjf@proptrue}
+\define@key{zxjf}{scale}{\def\zxjf@scale{#1}}
+% options using keyval
+\let\zxjf@scale\relax
+\define@key{zxjf}{scale}{\def\zxjf@scale{#1}}
+\let\zxjf@feat\@empty
+\define@key{zxjf}{feature}{\def\zxjf@feat{#1}}
+\DeclareOption*{\def\zxjf@nxt{\setkeys{zxjf}}%
+ \expandafter\zxjf@nxt\expandafter{\CurrentOption}}
+% 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
+ \zxjf@error{Preset name not specified}
+ {You must give one of the following names as option.\MessageBreak
+ \space\space\zxjf@all@main@preset}
+ \endinput\fi
+
+%%%% detect bxjatype
+\newif\ifzxjf@zxjatype
+\@ifpackageloaded{zxjatype}{\zxjf@zxjatypetrue}{}
+\AtBeginDocument{%
+ \ifzxjf@zxjatype\else\@ifpackageloaded{zxjatype}{%
+ \zxjf@error{zxjatype must be loaded before me}\@ehc
+ }\fi}
+\ifzxjf@zxjatype\ifzxjf@prop
+ \zxjf@error{Option 'prop' cannot be used with zxjatype}\@ehc
+ \zxjf@propfalse
+\fi\fi
+
+%%%% decide scale factor
+\ifx\zxjf@scale\relax
+ \ifzxjf@zxjatype \let\zxjf@scale\zxjt@scale
+ \else\ifx\jsDocClass\@undefined \def\zxjf@scale{1}%
+ \else \let\zxjf@scale\jsScale \fi\fi
+\fi
+\edef\zxjf@xfeat{Scale=\zxjf@scale,\zxjf@feat}
+\zxjf@debug{feat={\zxjf@feat}/preset=\zxjf@main@preset/\zxjf@sub@preset}
+
+%%-------- preset japanese font mappings
+
+%% \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{%
+ \expandafter\def\csname #1family\expandafter\endcsname\expandafter
+ {\csname a#1family\endcsname\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
+
+%% \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}
+\@onlypreamble\zxjf@uniweight
+\def\zxjf@uniweight#1#2{%
+ \zxjf@setmainfont{BoldFont=#2}{#1}%
+ \zxjf@setsansfont{}{#2}%
+ \zxjf@setmonofont{}{#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{%
+ \zxjf@setmainfont{BoldFont=#2}{#1}%
+ \zxjf@setsansfont{BoldFont=#4}{#3}%
+ \zxjf@setmonofont{BoldFont=#4}{#3}}
+\@onlypreamble\zxjf@multiweight@opt
+\def\zxjf@multiweight@opt#1#2#3#4#5{%
+ \zxjf@setmainfont{#5,BoldFont=#2}{#1}%
+ \zxjf@setsansfont{#5,BoldFont=#4}{#3}%
+ \zxjf@setmonofont{#5,BoldFont=#4}{#3}}
+
+%% \zxjf@use@preset{<name>}
+\def\zxjf@use@preset#1{%
+ \ifzxjf@prop \zxjf@use@preset@a{#1/prop}%
+ \else \let\zxjf@nxt\relax \fi
+ \ifx\zxjf@nxt\relax \zxjf@use@preset@a{#1}\fi
+ \zxjf@nxt}
+\def\zxjf@use@preset@a#1{%
+ \expandafter\let\expandafter\zxjf@nxt
+ \csname zxjf@the@preset@#1\endcsname}
+
+%% definitions of main preset mappings
+\zxjf@declare@preset{ms}{%
+ \zxjf@uniweight{MS 明朝}{MS ゴシック}}
+\zxjf@declare@preset{ms/prop}{%
+ \zxjf@uniweight{MS P明朝}{MS Pゴシック}}
+\zxjf@declare@preset{ms-dx}{%
+ \zxjf@multiweight{MS 明朝}{HG明朝E}{HGゴシックM}{HGゴシックE}}
+\zxjf@declare@preset{ms-dx/prop}{%
+ \zxjf@multiweight{MS P明朝}{HGP明朝E}{HGPゴシックM}{HGゴシックE}}
+\zxjf@declare@preset{ipa}{%
+ \zxjf@uniweight{IPA明朝}{IPAゴシック}}
+\zxjf@declare@preset{ipa/prop}{%
+ \zxjf@uniweight{IPA P明朝}{IPA Pゴシック}}
+\zxjf@declare@preset{ipa-dx}{%
+ \zxjf@multiweight{IPA明朝}{HG明朝E}{HGゴシックM}{HGゴシックE}}
+\zxjf@declare@preset{ipa-dx/prop}{%
+ \zxjf@multiweight{IPA P明朝}{HGP明朝E}{HGPゴシックM}{HGゴシックE}}
+\zxjf@declare@preset{kozuka4}{%
+ \zxjf@uniweight@opt{Kozuka Mincho Pro}{Kozuka Gothic Pro}%
+ {RawFeature=-palt}}
+\zxjf@declare@preset{kozuka4}{%
+ \zxjf@uniweight@opt{Kozuka Mincho Pro}{Kozuka Gothic Pro}%
+ {RawFeature=+palt}}
+\zxjf@declare@preset{kozuka6}{%
+ \zxjf@uniweight@opt{Kozuka Mincho Pro-VI}{Kozuka Gothic Pro-VI}%
+ {RawFeature=-palt}}
+\zxjf@declare@preset{kozuka6/prop}{%
+ \zxjf@uniweight@opt{Kozuka Mincho Pro-VI}{Kozuka Gothic Pro-VI}%
+ {RawFeature=+palt}}
+\zxjf@declare@preset{kozuka6n}{%
+ \zxjf@uniweight@opt{Kozuka Mincho Pr6N}{Kozuka Gothic Pr6NI}%
+ {RawFeature=-palt}}
+\zxjf@declare@preset{kozuka6n/prop}{%
+ \zxjf@uniweight@opt{Kozuka Mincho Pr6N}{Kozuka Gothic Pr6NI}%
+ {RawFeature=+palt}}
+\zxjf@declare@preset{hiragino}{%
+ \zxjf@uniweight@opt{ヒラギノ明朝 Pro W3}{ヒラギノ角ゴ Pro W6}%
+ {RawFeature=-palt}}
+\zxjf@declare@preset{hiragino/prop}{%
+ \zxjf@uniweight@opt{ヒラギノ明朝 Pro W3}{ヒラギノ角ゴ Pro W6}%
+ {RawFeature=+palt}}
+\zxjf@declare@preset{hiragino-dx}{%
+ \zxjf@multiweight@opt{ヒラギノ明朝 Pro W3}{ヒラギノ明朝 Pro W6}%
+ {ヒラギノ角ゴ Pro W3}{ヒラギノ角ゴ Pro W6}%
+ {RawFeature=-palt}}
+\zxjf@declare@preset{hiragino-dx/prop}{%
+ \zxjf@multiweight@opt{ヒラギノ明朝 Pro W3}{ヒラギノ明朝 Pro W6}%
+ {ヒラギノ角ゴ Pro W3}{ヒラギノ角ゴ Pro W6}%
+ {RawFeature=+palt}}
+
+\zxjf@declare@preset{hg}{%
+ \zxjf@newfamily{hgmc}{BoldFont=HGS明朝E}{HGS明朝B}%
+ \zxjf@newfamily{hgpr}{}{HGS創英プレゼンスEB}%
+ \zxjf@newfamily{hggt}{BoldFont=HGSゴシックE}{HGSゴシックM}%
+ \zxjf@newfamily{hggu}{}{HGS創英角ゴシックUB}%
+ \zxjf@newfamily{hgmg}{}{HG丸ゴシックM-PRO}%
+ \zxjf@newfamily{hgkk}{}{HGS教科書体}%
+ \zxjf@newfamily{hgks}{}{HG正楷書体-PRO}%
+ \zxjf@newfamily{hggs}{}{HGS行書体}%
+ \zxjf@newfamily{hgpp}{}{HGS創英角ポップ体}%
+}
+\zxjf@declare@preset{hg/prop}{%
+ \zxjf@newfamily{hgmc}{BoldFont=HGP明朝E}{HGP明朝B}%
+ \zxjf@newfamily{hgpr}{}{HGP創英プレゼンスEB}%
+ \zxjf@newfamily{hggt}{BoldFont=HGPゴシックE}{HGPゴシックM}%
+ \zxjf@newfamily{hggu}{}{HGP創英角ゴシックUB}%
+ \zxjf@newfamily{hgmg}{}{HG丸ゴシックM-PRO}%
+ \zxjf@newfamily{hgkk}{}{HGP教科書体}%
+ \zxjf@newfamily{hgks}{}{HG正楷書体-PRO}%
+ \zxjf@newfamily{hggs}{}{HGP行書体}%
+ \zxjf@newfamily{hgpp}{}{HGP創英角ポップ体}%
+}
+\zxjf@declare@preset{hiraginomg}{%
+ \zxjf@newfamily{hmg}{RawFeature=-palt}{ヒラギノ丸ゴ Pro W4}%
+}
+\zxjf@declare@preset{hiraginomg/prop}{%
+ \zxjf@newfamily{hmg}{RawFeature=+palt}{ヒラギノ丸ゴ Pro W4}%
+}
+
+
+%%%% ... 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
+
+\def\useeasyjapanesesettings{%
+\XeTeXlinebreaklocale "ja"\relax
+\XeTeXlinebreakskip=0pt plus 1pt minus 0.1pt\relax
+\XeTeXlinebreakpenalty=0\relax
+}
+
+%%------ all done
+\endinput
+%% EOF