summaryrefslogtreecommitdiff
path: root/fonts/kpfonts-otf/tex/kpfonts-otf.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-06-04 03:02:40 +0000
committerNorbert Preining <norbert@preining.info>2020-06-04 03:02:40 +0000
commit6c90555ebb89f41cc4dfb6cf3ee6bfaa8107650e (patch)
treed3475ab1d6bd6675a0975dfa6059602be057f0d5 /fonts/kpfonts-otf/tex/kpfonts-otf.sty
parent44fde4a143b75ae4f383b05832343d497c254989 (diff)
CTAN sync 202006040302
Diffstat (limited to 'fonts/kpfonts-otf/tex/kpfonts-otf.sty')
-rw-r--r--fonts/kpfonts-otf/tex/kpfonts-otf.sty423
1 files changed, 423 insertions, 0 deletions
diff --git a/fonts/kpfonts-otf/tex/kpfonts-otf.sty b/fonts/kpfonts-otf/tex/kpfonts-otf.sty
new file mode 100644
index 0000000000..89d644af84
--- /dev/null
+++ b/fonts/kpfonts-otf/tex/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