%% $Id: libertinus-otf.sty 1036 2019-04-04 20:29:44Z herbert $ %% %% This file is distributed under the terms of the LaTeX Project Public %% License from CTAN archives in directory macros/latex/base/lppl.txt. %% Either version 1.3 or, at your option, any later version. %% % % Copyright 2018 Herbert Voss hvoss@tug.org and Bob Tennent rdt@cs.queensu.ca % \ProvidesPackage{libertinus-otf}[% 2019/04/04 v. 0.14 (Herbert Voss and Bob Tennent) Supports libertinus fonts for lualatex and xelatex.] \RequirePackage{ifxetex,ifluatex,xkeyval,textcomp} \RequirePackage{unicode-math} \newif\iflibertinus@mono \libertinus@monotrue \newif\iflibertinus@nomath \libertinus@nomathfalse \newif\iflibertinus@lining \libertinus@liningtrue \newif\iflibertinus@tabular \libertinus@tabulartrue \newif\iflibertinus@semibold \libertinus@semiboldfalse \newif\iflibertinus@usefilenames \libertinus@usefilenamestrue \DeclareOptionX{lining}[true]{\@nameuse{libertinus@lining#1}} \DeclareOptionX{nf}[true]{\@nameuse{libertinus@lining#1}} \DeclareOptionX{lf}[true]{\@nameuse{libertinus@lining#1}} \DeclareOptionX{oldstyle}[true]{\@nameuse{if#1}\libertinus@liningfalse\else\libertinus@liningtrue\fi} \DeclareOptionX{osf}[true]{\@nameuse{if#1}\libertinus@liningfalse\else\libertinus@liningtrue\fi} \DeclareOptionX{usefilenames}[true]{\@nameuse{libertinus@usefilenames#1}} \DeclareOptionX{nomath}[true]{\@nameuse{libertinus@nomath#1}} \DeclareOptionX{mono}[true]{\@nameuse{libertinus@mono#1}} \DeclareOptionX{tabular}[true]{\@nameuse{libertinus@tabular#1}} \DeclareOptionX{t}[true]{\@nameuse{libertinus@tabular#1}} \DeclareOptionX{proportional}[true]{\@nameuse{if#1}\libertinus@tabularfalse\else\libertinus@tabulartrue\fi} \DeclareOptionX{p}[true]{\@nameuse{if#1}\libertinus@tabularfalse\else\libertinus@tabulartrue\fi} \DeclareOptionX{semibold}[true]{\@nameuse{libertinus@semibold#1}} \DeclareOptionX{sb}[true]{\@nameuse{libertinus@semibold#1}} \DeclareOptionX{bold}[true]{\@nameuse{if#1}\libertinus@semiboldfalse\else\libertinus@semiboldtrue\fi} \newcommand*\libertinusRM@scale{1} \newcommand*\libertinusDisplayT@scale{1} \newcommand*\libertinusSF@scale{1} \newcommand*\libertinusTT@scale{MatchLowercase} \newcommand*\libertinusInitialsT@scale{1} \DeclareOptionX{ScaleRM}{\renewcommand*{\libertinusRM@scale}{#1}} \DeclareOptionX{ScaleSF}{\renewcommand*{\libertinusSF@scale}{#1}} \DeclareOptionX{ScaleTT}{\renewcommand*{\libertinusTT@scale}{#1}} \def\libertinus@defaultfeatures{} \DeclareOptionX{defaultfeatures}{\def\libertinus@defaultfeatures{#1}} \ProcessOptionsX\relax \iflibertinus@lining \def\libertinus@figurestyle{Lining} \else \def\libertinus@figurestyle{OldStyle} \fi \iflibertinus@tabular \def\libertinus@figurealign{Monospaced} \else \def\libertinus@figurealign{Proportional} \fi \iflibertinus@semibold \def\libertinus@boldstyle{Semibold} \else \def\libertinus@boldstyle{Bold} \fi \ifxetex\XeTeXtracingfonts=1\fi \defaultfontfeatures{ Ligatures = TeX , SmallCapsFeatures={Letters=SmallCaps\ifluatex,Renderer=Basic\fi} , \libertinus@defaultfeatures } \iflibertinus@usefilenames \setmainfont{LibertinusSerif}[ Numbers = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-\libertinus@boldstyle, BoldItalicFont = *-\libertinus@boldstyle Italic, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSerifSB{LibertinusSerif}[ Numbers = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale, UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Semibold, BoldItalicFont = *-SemiboldItalic, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSerifOsF{LibertinusSerif}[ Numbers = {OldStyle,Proportional}, Scale = \libertinusRM@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-\libertinus@boldstyle, BoldItalicFont = *-\libertinus@boldstyle Italic, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSerifTLF{LibertinusSerif}[ Numbers = {Lining,Monospaced}, Scale = \libertinusRM@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-\libertinus@boldstyle, BoldItalicFont = *-\libertinus@boldstyle Italic, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \setsansfont{LibertinusSans}[ Numbers = {\libertinus@figurealign,\libertinus@figurestyle} , Scale = \libertinusSF@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSansOsF{LibertinusSans}[ Numbers = {OldStyle,Proportional} , Scale = \libertinusSF@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSansTLF{LibertinusSans}[ Numbers = {Lining, Monospaced} , Scale = \libertinusSF@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique, SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \iflibertinus@mono \setmonofont{LibertinusMono}[ % Numbers = {\libertinus@figurealign, \libertinus@figurestyle}, Scale = \libertinusTT@scale, FakeStretch = 0.8, UprightFont = *-Regular, ItalicFont = *-Oblique, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique, Extension = .otf, ] \fi \else \setmainfont{Libertinus Serif}[ Numbers = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , % UprightFont = * Regular, % ItalicFont = * Ialic, % BoldFont = * Bold, % \libertinus@boldstyle, % BoldItalicFont = * Bold Italic, %-\libertinus@boldstyle italic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSerif{Libertinus Serif}[ Numbers = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , % UprightFont = *-regular, % ItalicFont = *-italic, % BoldFont = *-\libertinus@boldstyle, % BoldItalicFont = *-\libertinus@boldstyle italic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertnusSerifSB{Libertinus Serif}[ Numbers = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , % UprightFont = *-regular, % ItalicFont = *-italic, BoldFont = * Semibold, BoldItalicFont = * Semibold Italic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSerifOsF{Libertinus Serif}[ Numbers = {OldStyle,Proportional}, Scale = \libertinusRM@scale , % UprightFont = *-regular, % ItalicFont = *-italic, % BoldFont = *-\libertinus@boldstyle, % BoldItalicFont = *-\libertinus@boldstyle italic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSerifTLF{Libertinus Serif}[ Numbers = {Lining,Monospaced}, Scale = \libertinusRM@scale , % UprightFont = *-regular, % ItalicFont = *-italic, % BoldFont = *-\libertinus@boldstyle, % BoldItalicFont = *-\libertinus@boldstyle italic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \setsansfont{Libertinus Sans}[ Numbers = {\libertinus@figurealign, \libertinus@figurestyle} , Scale = \libertinusSF@scale , % UprightFont = * Regular, % ItalicFont = * Italic, % BoldFont = * Bold, % BoldItalicFont = * Bold Italic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSansOsF{Libertinus Sans} [ Numbers = {OldStyle,Proportional} , Scale = \libertinusSF@scale , % UprightFont = *-regular, % ItalicFont = *-italic, % BoldFont = *-bold, % BoldItalicFont = *-bolditalic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSansTLF{Libertinus Sans} [ Numbers = {Lining, Monospaced} , Scale = \libertinusSF@scale , % UprightFont = *-regular, % ItalicFont = *-italic, % BoldFont = *-bold, % BoldItalicFont = *-bolditalic, SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \iflibertinus@mono \setmonofont{Libertinus Mono}[ % Numbers = {\libertinus@figurealign, \libertinus@figurestyle}, Scale = \libertinusTT@scale, FakeStretch = 0.8, % UprightFont = * Regular, % ItalicFont = * Italic, % BoldFont = * Bold, % BoldItalicFont = * Bold Italic, % AutoFakeBold = 1.5, % Extension = .otf, ] \fi \fi \def\sufigures{\addfontfeatures{VerticalPosition=Superior}} \DeclareTextFontCommand{\textsu}{\sufigures} \iflibertinus@nomath\else \setmathfont{LibertinusMath-Regular.otf}[BoldFont=LibertinusMath-Bold.otf] % \setmathfont{LibertinusMath-regular.otf} % \setmathfont[version=bold]{libertinusmath-bold.otf} \fi \newfontfamily\LibertinusKeyboard{LibertinusKeyboard-Regular.otf} \newfontfamily\LibertinusDisplay{LibertinusSerifDisplay-Regular.otf} \newfontfamily\Libertinusinitials{LibertinusSerifInitials-Regular.otf} \newfontfamily\LibertinusInitials{LibertinusSerifInitials-Regular.otf} \def\biolinumKeyGlyph#1{{\LibertinusKeyboard\symbol{#1}}} \def\BiolinumKeyGlyph#1{{\LibertinusKeyboard#1}} \DeclareRobustCommand*\LKey[1]{\BiolinumKeyGlyph{#1}} \DeclareRobustCommand*\LKeyStrg{\biolinumKeyGlyph{"E170}} \DeclareRobustCommand*\LKeyAlt{\biolinumKeyGlyph{"E171}} \DeclareRobustCommand*\LKeyAltGr{\biolinumKeyGlyph{"E172}} \DeclareRobustCommand*\LKeyShift{\biolinumKeyGlyph{"E174}} \DeclareRobustCommand*\LKeyTab{\biolinumKeyGlyph{"E175}} \DeclareRobustCommand*\LKeyEnter{\biolinumKeyGlyph{"E176}} \DeclareRobustCommand*\LKeyCapsLock{\biolinumKeyGlyph{"E177}} \DeclareRobustCommand*\LKeyPos{\biolinumKeyGlyph{"E191}} \DeclareRobustCommand*\LKeyEntf{\biolinumKeyGlyph{"E18A}} \DeclareRobustCommand*\LKeyEinf{\biolinumKeyGlyph{"E18B}} \DeclareRobustCommand*\LKeyLeer{\biolinumKeyGlyph{"E18C}} \let\LKeySpace\LKeyLeer \DeclareRobustCommand*\LKeyEsc{\biolinumKeyGlyph{"E195}} \DeclareRobustCommand*\LKeyEnde{\biolinumKeyGlyph{"E196}} \DeclareRobustCommand*\LKeyTux{\biolinumKeyGlyph{"E000}} \DeclareRobustCommand*\LKeyWin{\biolinumKeyGlyph{"E168}} \DeclareRobustCommand*\LKeyMenu{\biolinumKeyGlyph{"E104}} \DeclareRobustCommand*\LKeyCommand{\biolinumKeyGlyph{"2318}} \DeclareRobustCommand*\LKeyOptionKey{\biolinumKeyGlyph{"2325}} \DeclareRobustCommand*\LKeyBack{\biolinumKeyGlyph{"E16E}} \DeclareRobustCommand*\LKeyUp{\biolinumKeyGlyph{"2191}} \DeclareRobustCommand*\LKeyDown{\biolinumKeyGlyph{"2193}} \DeclareRobustCommand*\LKeyLeft{\biolinumKeyGlyph{"2190}} \DeclareRobustCommand*\LKeyRight{\biolinumKeyGlyph{"2192}} \DeclareRobustCommand*\LKeyPgUp{\biolinumKeyGlyph{"E198}} \DeclareRobustCommand*\LKeyPgDown{\biolinumKeyGlyph{"E199}} \DeclareRobustCommand*\LKeyAt{\biolinumKeyGlyph{"0040}} \DeclareRobustCommand*\LKeyFn{\biolinumKeyGlyph{"E188}} \DeclareRobustCommand*\LKeyHome{\biolinumKeyGlyph{"E189}} \DeclareRobustCommand*\LKeyDel{\biolinumKeyGlyph{"E18A}} \DeclareRobustCommand*\LKeyIns{\biolinumKeyGlyph{"E18B}} \DeclareRobustCommand*\LKeyEnd{\biolinumKeyGlyph{"E18E}} \DeclareRobustCommand*\LKeyGNU{\biolinumKeyGlyph{"E190}} \DeclareRobustCommand*\LKeyPageUp{\biolinumKeyGlyph{"E19A}} \DeclareRobustCommand*\LKeyPageDown{\biolinumKeyGlyph{"E19B}} \@namedef{libertine@key@F@1}{\biolinumKeyGlyph{"E178}} \@namedef{libertine@key@F@2}{\biolinumKeyGlyph{"E179}} \@namedef{libertine@key@F@3}{\biolinumKeyGlyph{"E17A}} \@namedef{libertine@key@F@4}{\biolinumKeyGlyph{"E17B}} \@namedef{libertine@key@F@5}{\biolinumKeyGlyph{"E17C}} \@namedef{libertine@key@F@6}{\biolinumKeyGlyph{"E17D}} \@namedef{libertine@key@F@7}{\biolinumKeyGlyph{"E17E}} \@namedef{libertine@key@F@8}{\biolinumKeyGlyph{"E17F}} \@namedef{libertine@key@F@9}{\biolinumKeyGlyph{"E180}} \@namedef{libertine@key@F@10}{\biolinumKeyGlyph{"E181}} \@namedef{libertine@key@F@11}{\biolinumKeyGlyph{"E182}} \@namedef{libertine@key@F@12}{\biolinumKeyGlyph{"E183}} \@namedef{libertine@key@F@13}{\biolinumKeyGlyph{"E184}} \@namedef{libertine@key@F@14}{\biolinumKeyGlyph{"E185}} \@namedef{libertine@key@F@15}{\biolinumKeyGlyph{"E186}} \@namedef{libertine@key@F@16}{\biolinumKeyGlyph{"E187}} \DeclareRobustCommand*\LKeyF[1]{\@nameuse{libertine@key@F@#1}} % \DeclareRobustCommand*\LKeyAltF[1]{\LKeyAlt+\@nameuse{libertine@key@F@#1}} \DeclareRobustCommand*\LKeyStrgAltF[1]{\LKeyStrg+\LKeyAlt+\@nameuse{libertine@key@F@#1}} \DeclareRobustCommand*\LKeyStrgX[1]{\LKeyStrg+\LKey{#1}} \DeclareRobustCommand*\LKeyShiftX[1]{\LKeyShift+\LKey{#1}} \DeclareRobustCommand*\LKeyAltX[1]{\LKeyAlt+\LKey{#1}} \DeclareRobustCommand*\LKeyAltGrX[1]{\LKeyAltGr+\LKey{#1}} \DeclareRobustCommand*\LKeyShiftStrgX[1]{\LKeyShift+\LKeyStrg+\LKey{#1}} \DeclareRobustCommand*\LKeyShiftAltX[1]{\LKeyShift+\LKeyAlt+\LKey{#1}} \DeclareRobustCommand*\LKeyShiftAltGrX[1]{\LKeyShift+\LKeyAltGr+\LKey{#1}} \DeclareRobustCommand*\LKeyStrgAltX[1]{\LKeyStrg+\LKeyAlt+\LKey{#1}} \DeclareRobustCommand*\LKeyStrgAltEnt{\LKeyStrg+\LKeyAlt+\LKeyEntf} \let\LKeyReset\LKeyStrgAltEnt % \@namedef{libertine@key@Pad@0}{\biolinumKeyGlyph{"E1A0}} \@namedef{libertine@key@Pad@1}{\biolinumKeyGlyph{"E1A1}} \@namedef{libertine@key@Pad@2}{\biolinumKeyGlyph{"E1A2}} \@namedef{libertine@key@Pad@3}{\biolinumKeyGlyph{"E1A3}} \@namedef{libertine@key@Pad@4}{\biolinumKeyGlyph{"E1A4}} \@namedef{libertine@key@Pad@5}{\biolinumKeyGlyph{"E1A5}} \@namedef{libertine@key@Pad@6}{\biolinumKeyGlyph{"E1A6}} \@namedef{libertine@key@Pad@7}{\biolinumKeyGlyph{"E1A7}} \@namedef{libertine@key@Pad@8}{\biolinumKeyGlyph{"E1A8}} \@namedef{libertine@key@Pad@9}{\biolinumKeyGlyph{"E1A9}} \@namedef{libertine@key@Pad@10}{\biolinumKeyGlyph{"E1AA}} \@namedef{libertine@key@Pad@11}{\biolinumKeyGlyph{"E1AB}} \@namedef{libertine@key@Pad@12}{\biolinumKeyGlyph{"E1AC}} \@namedef{libertine@key@Pad@13}{\biolinumKeyGlyph{"E1AD}} \@namedef{libertine@key@Pad@14}{\biolinumKeyGlyph{"E1AE}} \DeclareRobustCommand*\LKeyPad[1]{\@nameuse{libertine@key@Pad@#1}} % % Maus % \DeclareRobustCommand*\LMouseEmpty{\biolinumKeyGlyph{"E130}} \DeclareRobustCommand*\LMouseN{\biolinumKeyGlyph{"E131}} \DeclareRobustCommand*\LMouseL{\biolinumKeyGlyph{"E132}} \DeclareRobustCommand*\LMouseM{\biolinumKeyGlyph{"E133}} \DeclareRobustCommand*\LMouseR{\biolinumKeyGlyph{"E134}} \DeclareRobustCommand*\LMouseLR{\biolinumKeyGlyph{"E135}} \DeclareRobustCommand*\LMouseIIEmpty{\biolinumKeyGlyph{"E138}} \DeclareRobustCommand*\LMouseIIN{\biolinumKeyGlyph{"E139}} \DeclareRobustCommand*\LMouseIIL{\biolinumKeyGlyph{"E13A}} \DeclareRobustCommand*\LMouseIIR{\biolinumKeyGlyph{"E13C}} \DeclareRobustCommand*\LMouseIILR{\biolinumKeyGlyph{"E13D}} %