summaryrefslogtreecommitdiff
path: root/fonts/ipaex-type1/ipaex-type1.sty
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/ipaex-type1/ipaex-type1.sty')
-rw-r--r--fonts/ipaex-type1/ipaex-type1.sty229
1 files changed, 229 insertions, 0 deletions
diff --git a/fonts/ipaex-type1/ipaex-type1.sty b/fonts/ipaex-type1/ipaex-type1.sty
new file mode 100644
index 0000000000..5188b993e9
--- /dev/null
+++ b/fonts/ipaex-type1/ipaex-type1.sty
@@ -0,0 +1,229 @@
+%%
+%% This is file 'ipaex-type1.sty'.
+%%
+%% Author: Takayuki YATO (aka. "ZR")
+%% GitHub: https://github.com/zr-tex8r
+%% Twitter: @zr_tex8r
+%%
+%% Note that this file is an original work by the author and NOT a
+%% Derived Work of the IPAex Fonts.
+%% This file is in the public domain, while many other files in the
+%% ipaex-type1 bundle are subject to the "IPA FontLicense Agreement
+%% v1.0".
+%%
+
+%% package declarations
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ipaex-type1}[2018/05/05 v0.5]
+\def\bxix@pkgname{ipaex-type1}
+
+%--------------------------------------- helpers
+
+%% \bxix@CJKfamily{<CJK-fam>}
+\def\bxix@CJKfamily#1{%
+ \ifx\CJKfamily\@undefined\else
+ \CJKfamily{#1}%
+ \fi}
+
+%% emerge \CJKhook
+\providecommand*{\CJKhook}{}
+
+%% \bxix@chardef
+\ifx\directlua\@undefined
+ \let\bxix@chardef\mathchardef
+\else % LuaTeX
+ % NOTE: On LuaTeX, meanings of the low-value mathchardefs
+ % such as '\mathchardef"12' are given as '\mathchardef"0012'.
+ \let\bxix@chardef\chardef
+\fi
+
+%--------------------------------------- public stuffs
+
+%% \bxix@CJK@ipxm/\bxix@CJK@ipxg
+\let\bxix@CJK@ipxm\relax
+\let\bxix@CJK@ipxg\relax
+
+%%<*> \extendipaextypeI/\noextendipaextypeI
+\DeclareRobustCommand*{\extendipaextypeI}{%
+ \def\bxix@CJK@ipxm{ipxma}%
+ \def\bxix@CJK@ipxg{ipxga}}
+\DeclareRobustCommand*{\noextendipaextypeI}{%
+ \def\bxix@CJK@ipxm{ipxm}%
+ \def\bxix@CJK@ipxg{ipxg}}
+\noextendipaextypeI
+
+%%<*> \ipxmfamily/\ipxgfamily
+\DeclareRobustCommand*{\ipxmfamily}{%
+ \bxix@CJKfamily{\bxix@CJK@ipxm}%
+ \fontfamily{ipxm}\selectfont}
+\DeclareRobustCommand*{\ipxgfamily}{%
+ \bxix@CJKfamily{\bxix@CJK@ipxg}%
+ \fontfamily{ipxg}\selectfont}
+
+%%<*> \textipxm/\textipxg
+\DeclareTextFontCommand{\textipxm}{\ipxmfamily}
+\DeclareTextFontCommand{\textipxg}{\ipxgfamily}
+
+%%<*> \CJKipxmfamily/\CJKipxgfamily
+\DeclareRobustCommand*{\CJKipxmfamily}{%
+ \bxix@CJKfamily{\bxix@CJK@ipxm}}
+\DeclareRobustCommand*{\CJKipxgfamily}{%
+ \bxix@CJKfamily{\bxix@CJK@ipxg}}
+
+%%<*> \textCJKipxm/\textCJKipxg
+\DeclareRobustCommand*{\textCJKipxm}{%
+ \bxix@textCJK{\bxix@CJK@ipxm}}
+\DeclareRobustCommand*{\textCJKipxg}{%
+ \bxix@textCJK{\bxix@CJK@ipxg}}
+\long\def\bxix@textCJK@outside#1#2{%
+ \begin{CJK*}{UTF8}{#1}\relax #2\end{CJK*}}
+\long\def\bxix@textCJK@inside#1#2{%
+ \begingroup\CJKfamily{#1}#2\endgroup}
+\let\bxix@textCJK\bxix@textCJK@outside
+\g@addto@macro\CJKhook{%
+ \let\bxix@textCJK\bxix@textCJK@inside}
+\AtBeginDocument{%
+ \@ifpackageloaded{CJK}{}{%else
+ \let\bxix@textCJK\@gobble}}
+
+%--------------------------------------- CJKUsymbol
+
+%% variables
+\let\bxix@g@sfid\relax
+\let\bxix@g@high\relax
+\let\bxix@g@low\relax
+
+%%<*> \ipxmsymbol{<Unicode-point>}
+\DeclareRobustCommand*{\ipxmsymbol}{%
+ \CJKUsymbol{\bxix@CJK@ipxm}}
+\DeclareRobustCommand*{\ipxgsymbol}{%
+ \CJKUsymbol{\bxix@CJK@ipxg}}
+
+%%<*> \CJKUsymbol{<CJK-fam>}{<Unicode-point>}
+\@ifundefined{CJKUsymbol}{%
+ \DeclareRobustCommand*{\CJKUsymbol}{\bxix@CJKUSymbol}%
+}{}
+\def\bxix@CJKUSymbol@outside#1#2{%
+ \bxix@decomp@uc{#2}%
+ \bxix@decl@family{#1}{\bxix@g@sfid}%
+ \begingroup
+ \fontencoding{U}\fontfamily{#1=\bxix@g@sfid}%
+ \selectfont\symbol{\bxix@g@low}%
+ \endgroup}
+\def\bxix@CJKUSymbol@inside#1#2{%
+ \bxix@decomp@uc{#2}%
+ \begingroup
+ \CJKfamily{#1}\Unicode{\bxix@g@high}{\bxix@g@low}%
+ \endgroup}
+\let\bxix@CJKUSymbol\bxix@CJKUSymbol@outside
+\g@addto@macro\CJKhook{%
+ \let\bxix@CJKUSymbol\bxix@CJKUSymbol@inside}
+
+%% \bxix@decomp@uc{<Unicode-point>}
+\def\bxix@decomp@uc#1{%
+ \begingroup
+ \@tempcnta=#1\relax
+ \ifnum\@tempcnta<\z@ \@tempcnta\z@ \fi
+ \@tempcntb\@tempcnta \divide\@tempcntb\@cclvi
+ \ifnum\@tempcntb>\bxix@ovhigh \@tempcntb\bxix@ovhigh \fi
+ \xdef\bxix@g@high{\the\@tempcntb}%
+ \bxix@chardef\bxix@tmpa\@tempcntb
+ \expandafter\bxix@decomp@uc@a\meaning\bxix@tmpa\relax
+ \multiply\@tempcntb-\@cclvi \advance\@tempcntb\@tempcnta
+ \xdef\bxix@g@low{\the\@tempcntb}%
+ \endgroup}
+\mathchardef\bxix@ovhigh="1100
+\def\bxix@decomp@uc@a#1"#2\relax{%
+ \lowercase{\bxix@decomp@uc@b#24321\relax}}%
+\def\bxix@decomp@uc@b#1#2#3#4#5#6\relax{%
+ \xdef\bxix@g@sfid{%
+ \ifcase#5 \or0#1\or#1#2\or0#1#2#3\or#1#2#3#4\fi}}
+
+%% \bxix@decl@family{<CJK-fam>}{<sfid>}
+\def\bxix@decl@family#1#2{%
+ \def\bxix@fam{#1=#2}%
+ \expandafter\ifx\csname U/\bxix@fam/m/n\endcsname\relax
+ \DeclareFontFamily{U}{\bxix@fam}{}%
+ \expandafter\ifx\csname bxix@decl@family/#1\endcsname\relax
+ \bxix@decl@family@other{#1}{#2}%
+ \else \@nameuse{bxix@decl@family/#1}{#2}%
+ \fi
+ \fi}
+%% the declarations
+\def\bxix@decl@shp#1#2#3{%
+ \DeclareFontShape{U}{\bxix@fam}{#1}{#2}{<->#3}{}}
+\@namedef{bxix@decl@family/ipxm}#1{%
+ \bxix@decl@family@other{ipxm-r-u}{#1}}
+\@namedef{bxix@decl@family/ipxma}#1{%
+ \bxix@decl@shp{m}{n}{ipxm-r-u#1}%
+ \bxix@decl@shp{m}{sl}{ipxm-ro-u#1}%
+ \bxix@decl@family@cmn}
+\@namedef{bxix@decl@family/ipxg}#1{%
+ \bxix@decl@family@other{ipxg-r-u}{#1}}
+\@namedef{bxix@decl@family/ipxga}#1{%
+ \bxix@decl@shp{m}{n}{ipxg-r-u#1}%
+ \bxix@decl@shp{m}{sl}{ipxg-ro-u#1}%
+ \bxix@decl@family@cmn}
+\def\bxix@decl@family@other#1#2{%
+ \bxix@decl@shp{m}{n}{#1#2}%
+ \bxix@decl@shp{m}{sl}{ssub*\bxix@fam/m/n}%
+ \bxix@decl@family@cmn}
+\def\bxix@decl@family@cmn{%
+ \bxix@decl@shp{m}{it}{ssub*\bxix@fam/m/sl}%
+ \bxix@decl@shp{m}{sc}{ssub*\bxix@fam/m/n}%
+ \bxix@decl@shp{bx}{it}{ssub*\bxix@fam/bx/sl}%
+ \bxix@decl@shp{bx}{sc}{ssub*\bxix@fam/bx/n}%
+ \bxix@decl@shp{b}{n}{ssub*\bxix@fam/bx/n}%
+ \bxix@decl@shp{b}{sl}{ssub*\bxix@fam/bx/sl}%
+ \bxix@decl@shp{b}{it}{ssub*\bxix@fam/bx/it}%
+ \bxix@decl@shp{b}{sc}{ssub*\bxix@fam/bx/sc}}
+
+%--------------------------------------- fancy things
+
+%%<*> some fancy commands
+\newcommand*\ipxmReferenceMark{\ipxmsymbol{"203B}}
+\newcommand*\ipxmCommandKey{\ipxmsymbol{"2318}}
+\newcommand*\ipxmReturnKey{\ipxmsymbol{"23CE}}
+\newcommand*\ipxmVisibleSpace{\ipxmsymbol{"2423}}
+\newcommand*\ipxmvarSquare{\ipxmsymbol{"25A0}}
+\newcommand*\ipxmSquare{\ipxmsymbol{"25A1}}
+\newcommand*\ipxmvarTriangle{\ipxmsymbol{"25B2}}
+\newcommand*\ipxmTriangle{\ipxmsymbol{"25B3}}
+\newcommand*\ipxmvarTriangleDown{\ipxmsymbol{"25BC}}
+\newcommand*\ipxmTriangleDown{\ipxmsymbol{"25BD}}
+\newcommand*\ipxmvarLozenge{\ipxmsymbol{"25C6}}
+\newcommand*\ipxmLozenge{\ipxmsymbol{"25C7}}
+\newcommand*\ipxmCircle{\ipxmsymbol{"25CB}}
+\newcommand*\ipxmBullsEye{\ipxmsymbol{"25CE}}
+\newcommand*\ipxmvarCircle{\ipxmsymbol{"25CF}}
+\newcommand*\ipxmSun{\ipxmsymbol{"2600}}
+\newcommand*\ipxmCloud{\ipxmsymbol{"2601}}
+\newcommand*\ipxmUmbrella{\ipxmsymbol{"2602}}
+\newcommand*\ipxmSnowman{\ipxmsymbol{"2603}}
+\newcommand*\ipxmvarStar{\ipxmsymbol{"2605}}
+\newcommand*\ipxmStar{\ipxmsymbol{"2606}}
+\newcommand*\ipxmPhone{\ipxmsymbol{"260E}}
+\newcommand*\ipxmGoteMark{\ipxmsymbol{"2616}}
+\newcommand*\ipxmSenteMark{\ipxmsymbol{"2617}}
+\newcommand*\ipxmRightHand{\ipxmsymbol{"261E}}
+\newcommand*\ipxmSpade{\ipxmsymbol{"2660}}
+\newcommand*\ipxmHeart{\ipxmsymbol{"2661}}
+\newcommand*\ipxmDiamond{\ipxmsymbol{"2662}}
+\newcommand*\ipxmClub{\ipxmsymbol{"2663}}
+\newcommand*\ipxmvarSpade{\ipxmsymbol{"2664}}
+\newcommand*\ipxmvarHeart{\ipxmsymbol{"2665}}
+\newcommand*\ipxmvarDiamond{\ipxmsymbol{"2666}}
+\newcommand*\ipxmvarClub{\ipxmsymbol{"2667}}
+\newcommand*\ipxmvarSnowman{\ipxmsymbol{"26C4}}
+\newcommand*\ipxmBlackSnowman{\ipxmsymbol{"26C7}}
+\newcommand*\ipxmCheckmark{\ipxmsymbol{"2713}}
+\newcommand*\ipxmPostalMark{\ipxmsymbol{"3012}}
+\newcommand*\ipxmGeta{\ipxmsymbol{"3013}}
+\newcommand*\ipxmPostal{\ipxmsymbol{"3020}}
+\newcommand*\ipxmvarPostal{\ipxmsymbol{"3036}}
+\newcommand*\ipxmvarPostalMark{\ipxmsymbol{"3036}}
+\newcommand*\ipxmUta{\ipxmsymbol{"303D}}
+
+%--------------------------------------- done
+\endinput
+%% EOF