summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pxufont
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-06-29 21:34:03 +0000
committerKarl Berry <karl@freefriends.org>2017-06-29 21:34:03 +0000
commit2c8d23277ab1b87ca0587580f1b3a2f12ddb5a07 (patch)
treef6af6b377458ba8d5b12e71828d5f75c95b049e6 /Master/texmf-dist/tex/latex/pxufont
parent492d2fafcfc5e0d0fa4002ec8c1044ef070d6f7b (diff)
pxufont (29jun17)
git-svn-id: svn://tug.org/texlive/trunk@44725 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pxufont')
-rw-r--r--Master/texmf-dist/tex/latex/pxufont/pxufont.sty130
1 files changed, 130 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pxufont/pxufont.sty b/Master/texmf-dist/tex/latex/pxufont/pxufont.sty
new file mode 100644
index 00000000000..611e020ebd8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pxufont/pxufont.sty
@@ -0,0 +1,130 @@
+%%
+%% This is file 'pxufont.sty'.
+%%
+%% Copyright (c) 2017 Takayuki YATO (aka. "ZR")
+%% GitHub: https://github.com/zr-tex8r
+%% Twitter: @zr_tex8r
+%%
+%% This package is distributed under the MIT License.
+%%
+
+%% package declaration
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{pxufont}[2017/06/28 v0.2]
+\def\pxuf@pkgname{pxufont}
+%
+\providecommand\bxDebug[1]{}
+
+%--------------------------------------- general
+
+%% packages
+\RequirePackage{ifuptex}
+
+%% unique tokens
+\def\pxuf@end{\pxuf@end@}
+\def\pxuf@mt{\pxuf@mt@}
+
+%% swutch 'pxuf@otf@used'
+\newif\ifpxuf@otf@used
+\@ifpackageloaded{otf}{%
+ \pxuf@otf@usedtrue
+}{%else
+ \AtBeginDocument{%
+ \@ifpackageloaded{otf}{%
+ \PackageError\pxuf@pkgname
+ {You must load this package after 'otf'}\@ehc
+ }{}}%
+}
+
+%% \pxuf@JY/\pxuf@JT
+\ifNativeupTeX
+\def\pxuf@JY{JY2}\def\pxuf@JT{JT2}
+\else
+\def\pxuf@JY{JY1}\def\pxuf@JT{JT1}
+\fi
+
+%--------------------------------------- general
+\begingroup
+
+%% variables
+% \pxuf@scale
+% \pxuf@tfm
+
+%% \pxuf@reset@size
+\def\pxuf@reset@size{10}
+\ifdim\f@size\p@=10\p@\else
+ \edef\pxuf@reset@size{\pxuf@reset@size,\f@size}
+\fi
+\ifx\jsc@JYn\@undefined\else %jsclasses
+ \begingroup
+ \footnotesize \xdef\@gtempa{\f@size}
+ \endgroup
+ \edef\pxuf@reset@size{\pxuf@reset@size,\@gtempa}
+\fi
+\bxDebug{ufont:reset@size=\pxuf@reset@size}
+
+%% \pxuf@parse@spec{E/F/S/S}
+% Sets \pxuf@scale and \pxuf@tfm.
+\edef\pxuf@tmpb{%
+ {\expandafter\string\csname<->s\endcsname*[}{]}{$}}
+\def\pxuf@tmpa#1#2#3{%
+ \def\pxuf@parse@spec##1{%
+ \let\pxuf@scale\relax\let\pxuf@tfm\relax
+ \expandafter\expandafter\expandafter\pxuf@parse@spec@a
+ \csname##1\endcsname}%
+ \def\pxuf@parse@spec@a##1{%
+ \expandafter\pxuf@parse@spec@b\string##1#3#1#2#3\pxuf@end}
+ \def\pxuf@parse@spec@b##1#1##2#2##3#3##4\pxuf@end{%
+ \ifx\pxuf@mt##4\pxuf@mt\else
+ \def\pxuf@scale{##2}\def\pxuf@tfm{##3}%
+ \fi}%
+}\expandafter\pxuf@tmpa\pxuf@tmpb
+
+%% \pxuf@process@one
+\def\pxuf@process@one#1#2#3#4#5{%
+\bxDebug{ufont:process(#1;#2/#3/#4/#5)}%
+ \pxuf@parse@spec{#2/#3/#4/#5}%
+ \ifx\pxuf@tfm\relax\else
+\bxDebug{spec=\pxuf@scale:\pxuf@tfm}%
+ \DeclareFontShape{#2}{#3}{#4}{#5}{<->s*[\pxuf@scale]zu-\pxuf@tfm}{}%
+ \if t#1%
+ \@for\pxuf@tmpa:=\pxuf@reset@size\do{%
+ \global\expandafter\let\csname#2/#3/#4/#5/\pxuf@tmpa
+ \endcsname\relax}%
+ \fi
+ \fi}
+
+%% process
+\ifpxuf@otf@used\ifNativeupTeX\else
+ \@for\pxuf@w:={\pxuf@JY,\pxuf@JT}\do{%
+ \@for\pxuf@x:={hmc,hgt,mg,ruby,rubyg,rubymg}\do{%
+ \@for\pxuf@y:={l,m,bx,eb}\do{%
+ \expandafter\ifx\csname\pxuf@w/\pxuf@x/\pxuf@y/n\endcsname\relax\else
+ \expandafter\let\csname pxuf@DF/\pxuf@x\endcsname=t%
+ \pxuf@process@one{t}\pxuf@w\pxuf@x\pxuf@y{n}%
+ \fi}}}
+\fi\fi
+\ifpxuf@otf@used
+ \@for\pxuf@w:={\pxuf@JY,\pxuf@JT}\do{%
+ \@for\pxuf@x:={cidj,cidjg,cidjmg}\do{%
+ \@for\pxuf@y:={l,m,bx,eb}\do{%
+ \expandafter\ifx\csname\pxuf@w/\pxuf@x/\pxuf@y/0\endcsname\relax\else
+ \@tfor\pxuf@z:=012345\do{%
+ \pxuf@process@one{f}\pxuf@w\pxuf@x\pxuf@y\pxuf@z}%
+ \fi}}}
+\fi
+\ifNativeupTeX\else
+ \@for\pxuf@w:={\pxuf@JY,\pxuf@JT}\do{%
+ \@for\pxuf@x:={\mcdefault,\gtdefault,mc,gt}\do{%
+ \expandafter\ifx\csname pxuf@DF/\pxuf@x\endcsname\relax
+ \expandafter\ifx\csname\pxuf@w/\pxuf@x/m/n\endcsname\relax\else
+ \expandafter\let\csname pxuf@DF/\pxuf@x\endcsname=t%
+ \pxuf@process@one{t}\pxuf@w\pxuf@x{m}{n}%
+ \fi
+ \fi}}
+\fi
+
+\endgroup
+%--------------------------------------- all done
+\endinput
+%% EOF