diff options
author | Karl Berry <karl@freefriends.org> | 2020-06-03 21:27:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-06-03 21:27:32 +0000 |
commit | 1d00b0ed4388acf6399f8f609b856e999fa7bc77 (patch) | |
tree | 22bb5809acebe5154055816ae1e65b853a75664a /Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty | |
parent | 810785e2302cd260eb73f01e897c5e5978963cb8 (diff) |
kpfonts-otf (3jun20)
git-svn-id: svn://tug.org/texlive/trunk@55407 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty | 423 |
1 files changed, 423 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty b/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty new file mode 100644 index 00000000000..89d644af847 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kpfonts-otf/kpfonts-otf.sty @@ -0,0 +1,423 @@ +\NeedsTeXFormat{LaTeX2e}[2019/01/01] +\def\fileversion{0.20} +\def\filedate{2020/04/18} +\ProvidesPackage{kpfonts-otf}[\filedate\space\fileversion] + +% Ensure luatex or xetex engine +\RequirePackage{iftex}[2019/10/24] +\RequireTUTeX +% +\newif\ifkp@math \kp@mathtrue +\newif\ifkp@text \kp@texttrue +\newif\ifkp@sf \kp@sftrue +\newif\ifkp@tt \kp@tttrue +% +\newif\ifkp@lighttext +\newif\ifkp@largesmallcaps +\newif\ifkp@osn +\newif\ifkp@os +\newif\ifkp@vos +\newif\ifkp@Qtail +% +\newif\ifkp@lightmath +\newif\ifkp@osnm +\newif\ifkp@narrowiints +\newif\ifkp@partialup +\newif\ifkp@Dcommand \kp@Dcommandtrue +\newif\ifkp@sfmathbb +\newif\ifkp@frenchstyle +\newif\ifkp@calasscr +\newif\ifkp@oldReIm +\newif\ifkp@symbols \kp@symbolstrue +% +% Global options +\DeclareOption{light} {\kp@lighttexttrue\kp@lightmathtrue} +\DeclareOption{nomath} {\kp@mathfalse\kp@symbolsfalse} +\DeclareOption{notext} {\kp@textfalse} +\DeclareOption{nosf} {\kp@sffalse} +\DeclareOption{nott} {\kp@ttfalse} +\DeclareOption{onlyrm} {\kp@ttfalse\kp@sffalse} +% Text options +\DeclareOption{lighttext} {\kp@lighttexttrue} +\DeclareOption{oldstylenums} {\kp@osntrue} +\DeclareOption{oldstyle} {\kp@ostrue\kp@Qtailtrue} +\DeclareOption{veryoldstyle} {\kp@vostrue\kp@Qtailtrue} +\DeclareOption{largesmallcaps} {\kp@largesmallcapstrue} +% Math options +\DeclareOption{lightmath} {\kp@lightmathtrue} +\DeclareOption{bbsans} {\kp@sfmathbbtrue} +\DeclareOption{mathcal} {\kp@calasscrtrue} +\DeclareOption{narrowiints} {\kp@narrowiintstrue} +\DeclareOption{frenchstyle} {\kp@frenchstyletrue} +\DeclareOption{partialup} {\kp@partialuptrue} +\DeclareOption{oldstylenumsmath} {\kp@osnmtrue} +\DeclareOption{fancyReIm} {\kp@oldReImtrue} +\DeclareOption{noDcommand} {\kp@Dcommandfalse} +\DeclareOption{symbols} {\kp@textfalse\kp@sffalse\kp@ttfalse + \kp@mathfalse} +\ProcessOptions + +\ifkp@symbols % true unless "nomath" + \RequirePackage{unicode-math}[2019/01/01] + % \D close integral + \ifkp@Dcommand + \newcommand*{\D}[1]{\mathclose{\,\symup{d}}#1}% + \fi +\fi +% Loading Math fonts... +\ifkp@math + \ifkp@lightmath + \ifkp@calasscr + \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss01} + \fi + \ifkp@sfmathbb + \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss02} + \fi + \ifkp@narrowiints + \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+ss03} + \fi + \ifkp@frenchstyle + \defaultfontfeatures+[KpMath-Light.otf]{math-style=french} + \fi + \ifkp@osnm + \defaultfontfeatures+[KpMath-Light.otf]{Numbers=Lowercase} + \fi + \ifkp@oldReIm + \defaultfontfeatures+[KpMath-Light.otf]{RawFeature=+cv03} + \fi + \ifkp@partialup + \defaultfontfeatures+[KpMath-Light.otf]{partial=upright} + \fi + \setmathfont{KpMath-Light.otf} + \else + \ifkp@calasscr + \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+ss01} + \fi + \ifkp@sfmathbb + \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+ss02} + \fi + \ifkp@narrowiints + \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+ss03} + \fi + \ifkp@frenchstyle + \defaultfontfeatures+[KpMath-Regular.otf]{math-style=french} + \fi + \ifkp@osnm + \defaultfontfeatures+[KpMath-Regular.otf]{Numbers=Lowercase} + \fi + \ifkp@oldReIm + \defaultfontfeatures+[KpMath-Regular.otf]{RawFeature=+cv03} + \fi + \ifkp@partialup + \defaultfontfeatures+[KpMath-Regular.otf]{partial=upright} + \fi + \setmathfont{KpMath-Regular.otf} + \fi +\fi + +% Loading Text fonts... +\ifkp@text + \RequirePackage{fontspec}[2019/01/01] + \defaultfontfeatures+[\rmfamily,\KpLight]{Contextuals={WordFinal,Alternate}} + %Oldstylenums + \ifkp@osn + \ifkp@sf + \ifkp@tt + \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily,\ttfamily]% + {Numbers=Lowercase} + \else + \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{Numbers=Lowercase} + \fi + \else + \defaultfontfeatures+[\rmfamily,\KpLight]{Numbers=Lowercase} + \fi + \fi + % Oldstyle + \ifkp@os + \ifkp@sf + \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{% + Style=Swash,Ligatures={TeX,Rare},Numbers=Lowercase} + \else + \defaultfontfeatures+[\rmfamily,\KpLight]{% + Style=Swash,Ligatures={TeX,Rare},Numbers=Lowercase} + \fi + \ifkp@tt\defaultfontfeatures+[\ttfamily]{Numbers=Lowercase}\fi + \fi + % Veryoldstyle + \ifkp@vos + \ifkp@sf + \defaultfontfeatures+[\rmfamily,\KpLight,\sffamily]{% + Style=Historic, Ligatures={TeX,Historic}} + \else + \defaultfontfeatures+[\rmfamily,\KpLight]{% + Style=Historic, Ligatures={TeX,Historic}} + \fi + \fi + \ifkp@largesmallcaps + \defaultfontfeatures+{SmallCapsFeatures = {Letters=SmallCaps}} + \else + \defaultfontfeatures+{SmallCapsFeatures = {Letters=PetiteCaps}} + \fi + % Text Serif fonts: + \setmainfont{KpRoman}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic + ] + \newfontfamily\KpLight{KpRoman-Light}[ + Extension = .otf, + BoldFont = KpRoman-Semibold, + ItalicFont = KpRoman-LightItalic, + BoldItalicFont = KpRoman-SemiboldItalic, + Ligatures=TeX + ] + \newfontface\Light{KpRoman-Light.otf}[Ligatures=TeX] + \newfontface\LightItalic {KpRoman-LightItalic.otf}[Ligatures=TeX] + \newfontface\Semibold{KpRoman-Semibold.otf}[Ligatures=TeX] + \newfontface\SemiboldItalic{KpRoman-SemiboldItalic.otf}[Ligatures=TeX] +\fi +% Text Sans Serif fonts: +\ifkp@sf + \defaultfontfeatures+[\sffamily]{Contextuals={WordFinal,Alternate}} + \setsansfont{KpSans}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic + ] +\fi +% Text Typewriter fonts: +\ifkp@tt + \defaultfontfeatures+[\ttfamily]{Contextuals={WordFinal,Alternate}} + \setmonofont{KpMono}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic + ] +\fi +% Light option +\ifkp@lighttext + \renewcommand{\rmfamily}{\KpLight} +\fi + +% Large/Petites smallcaps +\DeclareRobustCommand\lscshape{\addfontfeatures{RawFeature=+smcp}} +\DeclareRobustCommand\pscshape{\addfontfeatures{RawFeature=+pcap}} +\DeclareRobustCommand\textlsc[1]{{\lscshape #1}} +\DeclareRobustCommand\textpsc[1]{{\pscshape #1}} + +\ifkp@symbols + % Style aliases + \newopentypefeature{Style}{mathcal}{ss01} + \newopentypefeature{Style}{bbsans}{ss02} + \newopentypefeature{Style}{narrowiints}{ss03} + \newopentypefeature{Style}{leqslant}{ss04} + \newopentypefeature{Style}{smaller}{ss05} + \newopentypefeature{Style}{subsetneq}{ss06} + \newopentypefeature{Style}{parallelslant}{ss07} + \AtBeginDocument{% + % Kpfonts specific math symbols + \Umathchardef\msanspartial = 0 0 "E000 \relax + \Umathchardef\mitsanspartial = 0 0 "E010 \relax + \Umathchardef\mitsanswp = 0 0 "E015 \relax + \Umathchardef\mitsansell = 0 0 "E019 \relax + \Umathchardef\varemptyset = 0 0 "E021 \relax + \Umathchardef\lambdaslash = 0 0 "E029 \relax + \Umathchardef\lambdabar = 0 0 "E02A \relax + \Umathchardef\mbfvec = 0 0 "E044 \relax + \Umathchardef\mbfwp = 0 0 "E045 \relax + \Umathchardef\mbfimath = 0 0 "E046 \relax + \Umathchardef\mbfjmath = 0 0 "E047 \relax + \Umathchardef\mbfell = 0 0 "E049 \relax + \Umathchardef\mbhbar = 0 0 "E068 \relax + \Umathchardef\mbhslash = 0 0 "E06F \relax + \Umathchardef\mithbar = 0 0 "E078 \relax + \Umathchardef\parallelbackslant = 3 0 "E080 \relax + \Umathchardef\nparallelbackslant = 3 0 "E081 \relax + \Umathchardef\parallelslant = 3 0 "E090 \relax + \Umathchardef\nparallelslant = 3 0 "E091 \relax + \Umathchardef\nsubseteqq = 3 0 "E0AE \relax + \Umathchardef\nsupseteqq = 3 0 "E0AF \relax + \Umathchardef\@idotsint = 1 0 "E111 \relax + \Umathchardef\Mmapsfrom = 0 0 "E400 \relax + \Umathchardef\Mmapsto = 0 0 "E401 \relax + \Umathchardef\mmapsfrom = 0 0 "E402 \relax + \Umathchardef\mmapsto = 0 0 "E403 \relax + \Umathchardef\Longmmapsfrom = 0 0 "E404 \relax + \Umathchardef\Longmmapsto = 0 0 "E405 \relax + \Umathchardef\longmmapsfrom = 0 0 "E406 \relax + \Umathchardef\longmmapsto = 0 0 "E407 \relax + \Umathchardef\leftrightdasharrow = 0 0 "E408 \relax + \Umathchardef\leadsto = 0 0 "E409 \relax + \Umathchardef\leadstoext = 0 0 "E40A \relax + \Umathchardef\longleadsto = 0 0 "E40B \relax + \Umathchardef\colonapprox = 0 0 "E410 \relax + \Umathchardef\colonsim = 0 0 "E411 \relax + \Umathchardef\Colonapprox = 0 0 "E412 \relax + \Umathchardef\Colonsim = 0 0 "E413 \relax + \Umathchardef\colondash = 0 0 "E414 \relax + \Umathchardef\eqqColon = 0 0 "E415 \relax + \Umathchardef\Colondash = 0 0 "E416 \relax + \Umathchardef\dashColon = 0 0 "E417 \relax + \Umathchardef\strictif = 0 0 "E418 \relax + \Umathchardef\strictfi = 0 0 "E419 \relax + \Umathchardef\strictiff = 0 0 "E41A \relax + \Umathchardef\circledwedge = 0 0 "E41B \relax + \Umathchardef\circledvee = 0 0 "E41C \relax + \Umathchardef\circledbar = 0 0 "E41D \relax + \Umathchardef\multimapdot = 0 0 "E420 \relax + \Umathchardef\multimapdotinv = 0 0 "E421 \relax + \Umathchardef\multimapdotboth = 0 0 "E422 \relax + \Umathchardef\multimapbothvert = 0 0 "E423 \relax + \Umathchardef\multimapdotbothvert = 0 0 "E424 \relax + \Umathchardef\multimapdotbothAvert = 0 0 "E425 \relax + \Umathchardef\multimapdotbothBvert = 0 0 "E426 \relax + \Umathchardef\Wr = 0 0 "E427 \relax + \Umathchardef\boxbar = 0 0 "E428 \relax + \Umathchardef\opentimes = 0 0 "E429 \relax + \Umathchardef\openJoin = 0 0 "E42A \relax + \Umathchardef\VvDash = 0 0 "E42B \relax + \Umathchardef\Diamondright = 0 0 "E430 \relax + \Umathchardef\Diamondleft = 0 0 "E431 \relax + \Umathchardef\Diamonddotright = 0 0 "E432 \relax + \Umathchardef\Diamonddotleft = 0 0 "E433 \relax + \Umathchardef\boxright = 0 0 "E434 \relax + \Umathchardef\boxleft = 0 0 "E435 \relax + \Umathchardef\boxdotright = 0 0 "E436 \relax + \Umathchardef\boxdotleft = 0 0 "E437 \relax + \Umathchardef\DiamondRight = 0 0 "E438 \relax + \Umathchardef\DiamondLeft = 0 0 "E439 \relax + \Umathchardef\DiamonddotRight = 0 0 "E43A \relax + \Umathchardef\DiamonddotLeft = 0 0 "E43B \relax + \Umathchardef\boxRight = 0 0 "E43C \relax + \Umathchardef\boxLeft = 0 0 "E43D \relax + \Umathchardef\boxdotRight = 0 0 "E43E \relax + \Umathchardef\boxdotLeft = 0 0 "E43F \relax + \Umathchardef\circleright = 0 0 "E440 \relax + \Umathchardef\circleleft = 0 0 "E441 \relax + \Umathchardef\circledotright = 0 0 "E442 \relax + \Umathchardef\circledotleft = 0 0 "E443 \relax + \Umathchardef\capplus = 0 0 "E444 \relax + \Umathchardef\bigcapplus = 0 0 "E445 \relax + \Umathchardef\sqcapplus = 0 0 "E447 \relax + \Umathchardef\bigsqcapplus = 0 0 "E448 \relax + \Umathchardef\sqcupplus = 0 0 "E44A \relax + \Umathchardef\bigsqcupplus = 0 0 "E44B \relax + \Umathchardef\oint@cw = 1 0 "E44E \relax + \Umathchardef\oiint@acw = 1 0 "E450 \relax + \Umathchardef\varoiint@cw = 1 0 "E452 \relax + \Umathchardef\oiiint@acw = 1 0 "E454 \relax + \Umathchardef\varoiiint@cw = 1 0 "E456 \relax + \Umathchardef\varoiint@acw = 1 0 "E458 \relax + \Umathchardef\oiint@cw = 1 0 "E45A \relax + \Umathchardef\varoiiint@acw = 1 0 "E45C \relax + \Umathchardef\oiiint@cw = 1 0 "E45E \relax + \Umathchardef\sq@iint = 1 0 "E460 \relax + \Umathchardef\sq@iiint = 1 0 "E462 \relax + \Umathchardef\var@int = 1 0 "E464 \relax + \Umathchardef\var@iint = 1 0 "E466 \relax + \Umathchardef\var@iiint = 1 0 "E468 \relax + \Umathchardef\var@iiiint = 1 0 "E46A \relax + \Umathchardef\var@idotsint = 1 0 "E46C \relax + \Umathchardef\varoint@acw = 1 0 "E46E \relax + \DeclareRobustCommand{\ointclockwise}{\oint@cw\nolimits}% + \DeclareRobustCommand{\varointctrclockwise}{\varoint@acw\nolimits}% + \DeclareRobustCommand{\oiintclockwise}{\oiint@cw\nolimits}% + \DeclareRobustCommand{\oiintctrclockwise}{\oiint@acw\nolimits}% + \DeclareRobustCommand{\varoiintclockwise}{\varoiint@cw\nolimits}% + \DeclareRobustCommand{\varoiintctrclockwise}{\varoiint@acw\nolimits}% + \DeclareRobustCommand{\oiiintclockwise}{\oiiint@cw\nolimits}% + \DeclareRobustCommand{\oiiintctrclockwise}{\oiiint@acw\nolimits}% + \DeclareRobustCommand{\varoiiintclockwise}{\varoiiint@cw\nolimits}% + \DeclareRobustCommand{\varoiiintctrclockwise}{\varoiiint@acw\nolimits}% + \DeclareRobustCommand{\idotsint}{\@idotsint\nolimits}% + \DeclareRobustCommand{\sqiint}{\sq@iint\nolimits}% + \DeclareRobustCommand{\sqiiint}{\sq@iiint\nolimits}% + \DeclareRobustCommand{\varint}{\var@int\nolimits}% + \DeclareRobustCommand{\variint}{\var@iint\nolimits}% + \DeclareRobustCommand{\variiint}{\var@iiint\nolimits}% + \DeclareRobustCommand{\variiiint}{\var@iiiint\nolimits}% + \DeclareRobustCommand{\varidotsint}{\var@idotsint\nolimits}% + \Umathchardef\IM = 0 0 "E7FE \relax + \Umathchardef\RE = 0 0 "E7FF \relax + %\widearc and\overrightarc + \newcommand*{\widearc}{\Umathaccent 0 0 "E540 }% + \newcommand*{\widearcarrow}{\Umathaccent 0 0 "20D5 }% + \let\overrightarc\widearcarrow + % amssymb + \@ifpackageloaded{amssymb}% + {\PackageWarning{kpfonts-otf}{% + kpfonts-otf provides all AMS symbols.\MessageBreak + Loading amssymb.sty is not advisable.\MessageBreak + Reported}% + }% + {% AMS Symbols not referenced in unicode-math-table.tex + % \Umathchardef\sum = <math type> <family> <slot> + % <math type> : \mathord=0 \mathrel=3 ; <family>=0 + \Umathchardef\circledR = 0 0 "24C7 \relax + \Umathchardef\circledS = 0 0 "24C8 \relax + \Umathchardef\npreceq = 3 0 "E096 \relax + \Umathchardef\nsucceq = 3 0 "E097 \relax + \Umathchardef\diagup = 0 0 "E0A0 \relax + \Umathchardef\diagdown = 0 0 "E0A1 \relax + \Umathchardef\shortmid = 3 0 "E0A2 \relax + \Umathchardef\shortparallel = 3 0 "E0A3 \relax + \Umathchardef\nshortmid = 3 0 "E0A4 \relax + \Umathchardef\nshortparallel = 3 0 "E0A5 \relax + \Umathchardef\lvertneqq = 3 0 "E0A6 \relax + \Umathchardef\gvertneqq = 3 0 "E0A7 \relax + \Umathchardef\varsubsetneq = 3 0 "E0AC \relax + \Umathchardef\varsupsetneq = 3 0 "E0AD \relax + \Umathchardef\varsubsetneqq = 3 0 "E09C \relax + \Umathchardef\varsupsetneqq = 3 0 "E09D \relax + \Umathchardef\nleqslant = 3 0 "E0A8 \relax + \Umathchardef\ngeqslant = 3 0 "E0A9 \relax + \Umathchardef\nleqq = 3 0 "E0AA \relax + \Umathchardef\ngeqq = 3 0 "E0AB \relax + \Umathchardef\leadsto = 3 0 "E409 \relax + \let\centerdot\cdotp % vysmblksquare ? + \let\restriction\upharpoonright + \let\doteqdot\Doteq + \let\doublecup\Cup + \let\doublecap\Cap + \let\llless\lll + \let\gggtr\ggg + \let\circlearrowleft\acwopencirclearrow + \let\circlearrowright\cwopencirclearrow + \let\lozenge\diamondsuit + \let\blacklozenge\vardiamondsuit + \let\square\mdlgwhtsquare + \let\blacksquare\mdlgblksquare + \let\dashleftarrow\leftdasharrow + \let\dashrightarrow\rightdasharrow + \let\ntriangleleft\nvartriangleleft + \let\ntriangleright\nvartriangleright + \let\varpropto\propto + \let\thicksim\sim + \let\thickapprox\approx + \let\smallsmile\smile + \let\smallfrown\frown + }% + % latexsym + \@ifpackageloaded{latexsym}% + {\PackageWarning{kpfonts-otf}{% + kpfonts-otf provides all LaTeX symbols.\MessageBreak + Loading latexsym.sty is not advisable.\MessageBreak + Reported}% + }% + {\let\lhd\triangleleft + \let\rhd\triangleright + \let\unlhd\trianglelefteq + \let\unrhd\trianglerighteq + \let\Box\mdlgwhtsquare + \let\Diamond\mdwhtdiamond + }% + } +\fi + +\endinput |