%% $Id: libertinus-otf.sty 1086 2019-09-20 13:39:09Z 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 2019 Herbert Voss hvoss@tug.org and Bob Tennent rdt@cs.queensu.ca % \ProvidesPackage{libertinus-otf}[% 2019/09/20 v. 0.20 (Herbert Voss and Bob Tennent) Supports libertinus fonts for lualatex and xelatex.] \RequirePackage{ifxetex,ifluatex,xkeyval,textcomp} %\RequirePackage[no-math]{fontspec} \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{+lnum} \else \def\libertinus@figurestyle{+onum} \fi \iflibertinus@tabular \def\libertinus@figurealign{+tnum} \else \def\libertinus@figurealign{+pnum} \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}[ RawFeature = {\libertinus@figurealign;\libertinus@figurestyle}, Scale = \libertinusRM@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-\libertinus@boldstyle, BoldItalicFont = *-\libertinus@boldstyle Italic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSerifSB{LibertinusSerif}[ RawFeature = {\libertinus@figurealign;\libertinus@figurestyle}, Scale = \libertinusRM@scale, UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Semibold, BoldItalicFont = *-SemiboldItalic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSerifOsF{LibertinusSerif}[ RawFeature = {+onum}, Scale = \libertinusRM@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-\libertinus@boldstyle, BoldItalicFont = *-\libertinus@boldstyle Italic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSerifTLF{LibertinusSerif}[ RawFeature = {+tnum;-onum}, Scale = \libertinusRM@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-\libertinus@boldstyle, BoldItalicFont = *-\libertinus@boldstyle Italic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \setsansfont{LibertinusSans}[ Extension = .otf, RawFeature = {\libertinus@figurealign;\libertinus@figurestyle} , Scale = \libertinusSF@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-Italic, BoldItalicFeatures = {RawFeature={embolden=3}}, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, ] \newfontfamily\LibertinusSansOsF{LibertinusSans}[ RawFeature = {+onum;+pnum}, Scale = \libertinusSF@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-Italic, BoldItalicFeatures = {RawFeature={embolden=3}}, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \newfontfamily\LibertinusSansTLF{LibertinusSans}[ RawFeature = {+lnum;-onum;+tnum} , Scale = \libertinusSF@scale , UprightFont = *-Regular, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-Italic, BoldItalicFeatures = {RawFeature={embolden=3}}, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, Extension = .otf ] \iflibertinus@mono \setmonofont{LibertinusMono}[ RawFeature = {\libertinus@figurealign; \libertinus@figurestyle}, Scale = \libertinusTT@scale, FakeStretch = 0.8, UprightFont = *-Regular, ItalicFont = *-Regular, ItalicFeatures = {FakeSlant=0.2}, BoldFont = *-Regular, BoldFeatures = {RawFeature={embolden=3}}, BoldItalicFont = *-Regular, BoldItalicFeatures={FakeSlant=0.2,RawFeature={embolden=3}}, Extension = .otf, ] \fi \else \setmainfont{Libertinus Serif}[ RawFeature = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , % UprightFont = * Regular, % ItalicFont = * Ialic, % BoldFont = * Bold, % \libertinus@boldstyle, % BoldItalicFont = * Bold Italic, %-\libertinus@boldstyle italic, SmallCapsFont = * Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSerif{Libertinus Serif}[ RawFeature = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , % UprightFont = *-Regular, % ItalicFont = *-Italic, % BoldFont = *-\libertinus@boldstyle, % BoldItalicFont = *-\libertinus@boldstyle italic, SmallCapsFont = * Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertnusSerifSB{Libertinus Serif}[ RawFeature = {\libertinus@figurealign,\libertinus@figurestyle}, Scale = \libertinusRM@scale , % UprightFont = *-Regular, % ItalicFont = *-Italic, BoldFont = * Semibold, BoldItalicFont = * Semibold Italic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSerifOsF{Libertinus Serif}[ RawFeature = {OldStyle,Proportional}, Scale = \libertinusRM@scale , % UprightFont = *-Regular, % ItalicFont = *-Italic, % BoldFont = *-\libertinus@boldstyle, % BoldItalicFont = *-\libertinus@boldstyle italic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSerifTLF{Libertinus Serif}[ RawFeature = {Lining,Monospaced}, Scale = \libertinusRM@scale , % UprightFont = *-Regular, % ItalicFont = *-Italic, % BoldFont = *-\libertinus@boldstyle, % BoldItalicFont = *-\libertinus@boldstyle italic, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \setsansfont{Libertinus Sans}[ RawFeature = {\libertinus@figurealign, \libertinus@figurestyle} , Scale = \libertinusSF@scale , UprightFont = * Regular, ItalicFont = * Italic, BoldFont = * Bold, BoldItalicFont = * Italic, BoldItalicFeatures = {RawFeature={embolden=3}}, SmallCapsFont = * Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, ] \newfontfamily\LibertinusSansOsF{Libertinus Sans} [ RawFeature = {OldStyle,Proportional} , Scale = \libertinusSF@scale , UprightFont = * Regular, ItalicFont = * Italic, BoldFont = * Bold, BoldItalicFont = * Italic, BoldItalicFeatures = {RawFeature={embolden=3}}, SmallCapsFont = * Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \newfontfamily\LibertinusSansTLF{Libertinus Sans} [ RawFeature = {Lining, Monospaced} , Scale = \libertinusSF@scale , UprightFont = * Regular, ItalicFont = * Italic, BoldFont = * Bold, BoldItalicFont = * Italic, BoldItalicFeatures = {RawFeature={embolden=3}}, SmallCapsFont = *-Regular, SmallCapsFeatures={RawFeature=+smcp}, % SmallCapsFeatures={Letters=SmallCaps}, % Extension = .otf ] \iflibertinus@mono \setmonofont{Libertinus Mono}[ % RawFeature = {\libertinus@figurealign, \libertinus@figurestyle}, Scale = \libertinusTT@scale, FakeStretch = 0.8, UprightFont = * Regular, ItalicFont = * Regular, ItalicFeatures = {FakeSlant=0.2}, BoldFont = * Regular, BoldFeatures = {RawFeature={embolden=3}}, BoldItalicFont = * Regular, BoldItalicFeatures={FakeSlant=0.2,RawFeature={embolden=3}}, ] \fi \fi \def\sufigures{\addfontfeatures{VerticalPosition=Superior}} \DeclareTextFontCommand{\textsu}{\sufigures} \iflibertinus@nomath\else \setmathfont{LibertinusMath-Regular.otf}%[BoldFont=LibertinusMath-Bold.otf] \setmathfont[version=bold,RawFeature={embolden=3}]{LibertinusMath-Regular.otf} \fi \ifluatex \newfontface\LibertinusKeyboard{LibertinusKeyboard-Regular.otf} % \hyphenchar\LibertinusKeyboard=-1 \else \font\LibertinusKeyboard="[LibertinusKeyboard-Regular.otf]" \fi \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{Strg}} \DeclareRobustCommand*\LKeyAlt{\BiolinumKeyGlyph{Alt}} \DeclareRobustCommand*\LKeyAltGr{\BiolinumKeyGlyph{AltGr}} \DeclareRobustCommand*\LKeyShift{\BiolinumKeyGlyph{Shift}} \DeclareRobustCommand*\LKeyTab{\BiolinumKeyGlyph{Tab}} \DeclareRobustCommand*\LKeyEnter{\BiolinumKeyGlyph{Enter}} \DeclareRobustCommand*\LKeyCapslock{\BiolinumKeyGlyph{Capslock}} \DeclareRobustCommand*\LKeyPos{\BiolinumKeyGlyph{Pos1}} \DeclareRobustCommand*\LKeyEntf{\BiolinumKeyGlyph{Entf}} \DeclareRobustCommand*\LKeyEinf{\BiolinumKeyGlyph{Einf}} \DeclareRobustCommand*\LKeyLeer{\BiolinumKeyGlyph{Leer}} \let\LKeySpace\LKeyLeer \DeclareRobustCommand*\LKeyEsc{\BiolinumKeyGlyph{Esc}} \DeclareRobustCommand*\LKeyEnde{\BiolinumKeyGlyph{Ende}} %\DeclareRobustCommand*\LKeyTux{\BiolinumKeyGlyph{Tux}} \DeclareRobustCommand*\LKeyWin{\BiolinumKeyGlyph{Windows}} \DeclareRobustCommand*\LKeyMenu{\biolinumKeyGlyph{"E104}} \DeclareRobustCommand*\LKeyCtrl{\BiolinumKeyGlyph{Ctrl}} \DeclareRobustCommand*\LKeyOptionKey{\BiolinumKeyGlyph{Fn}} \DeclareRobustCommand*\LKeyBack{\BiolinumKeyGlyph{Back}} \DeclareRobustCommand*\LKeyUp{\biolinumKeyGlyph{"2191}} \DeclareRobustCommand*\LKeyDown{\biolinumKeyGlyph{"2193}} \DeclareRobustCommand*\LKeyLeft{\biolinumKeyGlyph{"2190}} \DeclareRobustCommand*\LKeyRight{\biolinumKeyGlyph{"2192}} \DeclareRobustCommand*\LKeyBildUp{\BiolinumKeyGlyph{Buildup}} \DeclareRobustCommand*\LKeyBildDown{\BiolinumKeyGlyph{Builddown}} \DeclareRobustCommand*\LKeyAt{\biolinumKeyGlyph{"0040}} \DeclareRobustCommand*\LKeyFn{\BiolinumKeyGlyph{Fn}} \DeclareRobustCommand*\LKeyHome{\BiolinumKeyGlyph{Home}} \DeclareRobustCommand*\LKeyDel{\BiolinumKeyGlyph{Del}} \DeclareRobustCommand*\LKeyIns{\BiolinumKeyGlyph{Ins}} \DeclareRobustCommand*\LKeyEnd{\BiolinumKeyGlyph{End}} \DeclareRobustCommand*\LKeyGNU{\BiolinumKeyGlyph{GNU}} \DeclareRobustCommand*\LKeyPageUp{\BiolinumKeyGlyph{Pageup}} \DeclareRobustCommand*\LKeyPageDown{\BiolinumKeyGlyph{Pagedown}} \DeclareRobustCommand*\LKeyWindows{\BiolinumKeyGlyph{Windows}} \@namedef{libertine@key@F@1}{\BiolinumKeyGlyph{F1}} \@namedef{libertine@key@F@2}{\BiolinumKeyGlyph{F2}} \@namedef{libertine@key@F@3}{\BiolinumKeyGlyph{F3}} \@namedef{libertine@key@F@4}{\BiolinumKeyGlyph{F4}} \@namedef{libertine@key@F@5}{\BiolinumKeyGlyph{F5}} \@namedef{libertine@key@F@6}{\BiolinumKeyGlyph{F6}} \@namedef{libertine@key@F@7}{\BiolinumKeyGlyph{F7}} \@namedef{libertine@key@F@8}{\BiolinumKeyGlyph{F8}} \@namedef{libertine@key@F@9}{\BiolinumKeyGlyph{F9}} \@namedef{libertine@key@F@10}{\BiolinumKeyGlyph{F10}} \@namedef{libertine@key@F@11}{\BiolinumKeyGlyph{F11}} \@namedef{libertine@key@F@12}{\BiolinumKeyGlyph{F12}} \@namedef{libertine@key@F@13}{\BiolinumKeyGlyph{F13}} \@namedef{libertine@key@F@14}{\BiolinumKeyGlyph{F14}} \@namedef{libertine@key@F@15}{\BiolinumKeyGlyph{F15}} \@namedef{libertine@key@F@16}{\BiolinumKeyGlyph{F16}} \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*\LKeyStrgAltEntf{\LKeyStrg+\LKeyAlt+\LKeyEntf} \let\LKeyReset\LKeyStrgAltEntf % \@namedef{libertine@key@Pad@0}{\BiolinumKeyGlyph{Pad0}} \@namedef{libertine@key@Pad@1}{\BiolinumKeyGlyph{Pad1}} \@namedef{libertine@key@Pad@2}{\BiolinumKeyGlyph{Pad2}} \@namedef{libertine@key@Pad@3}{\BiolinumKeyGlyph{Pad3}} \@namedef{libertine@key@Pad@4}{\BiolinumKeyGlyph{Pad4}} \@namedef{libertine@key@Pad@5}{\BiolinumKeyGlyph{Pad5}} \@namedef{libertine@key@Pad@6}{\BiolinumKeyGlyph{Pad6}} \@namedef{libertine@key@Pad@7}{\BiolinumKeyGlyph{Pad7}} \@namedef{libertine@key@Pad@8}{\BiolinumKeyGlyph{Pad8}} \@namedef{libertine@key@Pad@9}{\BiolinumKeyGlyph{Pad9}} %\@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 % \iffalse \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}} \fi % \def\Wikipedia{{\fontspec{Libertinus Serif Regular}[RawFeature=+ss05]W}} %\def\WikipediaSF{{\addfontfeature{RawFeature=+ss05}\fontspec{Libertinus Sans Regular}W}}