%% %% 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/07/07 v0.3] \def\pxuf@pkgname{pxufont} % \providecommand\bxDebug[1]{} %--------------------------------------- general %% packages \RequirePackage{ifuptex} %% unique tokens \def\pxuf@end{\pxuf@end@} \def\pxuf@mt{\pxuf@mt@} %% \pxuf@split{}{} \def\pxuf@split#1#2{% \edef\pxuf@tmpx{{#1}{#2}}% \expandafter\pxuf@split@a\pxuf@tmpx} \def\pxuf@split@a#1#2{% \def\pxuf@tmpx##1#1##2\pxuf@end{\pxuf@split@b{##1}{##2}}% \pxuf@tmpx#2\pxuf@mt#1\pxuf@end} \def\pxuf@split@b#1#2{% \let\pxuf@pre\relax \let\pxuf@post\relax \ifx\pxuf@end#2\pxuf@end\else \pxuf@split@c#2\pxuf@end{#1}% \fi} \def\pxuf@split@c#1\pxuf@mt#2\pxuf@end#3{% \def\pxuf@pre{#3}\def\pxuf@post{#1}} %% 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}% \pxuf@change@tfm \fi}% }\expandafter\pxuf@tmpa\pxuf@tmpb %% \pxuf@change@tfm \def\pxuf@tmpb#1/#2/#3/#4\pxuf@end{% \def\pxuf@change@tfm{% \pxuf@change@tfm@a{#2}{#4}% \pxuf@change@tfm@a{#3}{#4}} }\def\pxuf@tmpa{/exp/ruby/nml} \expandafter\pxuf@tmpb\meaning\pxuf@tmpa\pxuf@end \def\pxuf@change@tfm@a#1#2{% \pxuf@split{#1}\pxuf@tfm\ifx\pxuf@pre\relax\else \edef\pxuf@tfm{\pxuf@pre#2\pxuf@post}% \fi} %% \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 \@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}}} \@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