\ProvidesPackage{librecaslon}[% 2020/07/24 (Bob Tennent) Supports LibreCaslon fonts for xeLaTeX and luaLaTeX. ] \RequirePackage{iftex} \ifpdftex \PackageError{librecaslon}{% *****************************************\MessageBreak Please process using XeLaTeX or luaLaTeX\MessageBreak *****************************************} \fi \newif\iflibrecaslon@lining \librecaslon@liningtrue \newcommand*{\LibreCaslon@scale}{1} \RequirePackage{xkeyval} \DeclareOptionX{scaled}{\renewcommand*{\LibreCaslon@scale}{#1}} \DeclareOptionX{scale}{\renewcommand*{\LibreCaslon@scale}{#1}} \DeclareOptionX{lining}[true]{% \@nameuse{if#1}% \librecaslon@liningtrue \else librecaslon@liningfalse \fi } \DeclareOptionX{lf}[true]{% \@nameuse{if#1}% \librecaslon@liningtrue \else librecaslon@liningfalse \fi } \DeclareOptionX{oldstyle}[true]{% \@nameuse{if#1}% \librecaslon@liningfalse \else \librecaslon@liningtrue \fi } \DeclareOptionX{osf}[true]{% \@nameuse{if#1}% \librecaslon@liningfalse \else \librecaslon@liningtrue \fi } \ProcessOptionsX\relax \iflibrecaslon@lining \def\librecaslon@figurestyle{Monospaced} \else \def\librecaslon@figurestyle{OldStyle} \fi \RequirePackage{fontspec} \ifxetex\XeTeXtracingfonts=1\fi \defaultfontfeatures{ Ligatures = TeX , Extension = .otf , Scale = \LibreCaslon@scale , } \setmainfont [ Numbers = {\librecaslon@figurestyle}, UprightFont = *-Regular , ItalicFont = *-Italic , BoldFont = *-Bold , ] {LibreCaslonText} \providecommand\useosf{% \edef\librecaslon@figurestyle{OldStyle} \defaultfontfeatures{ Ligatures = TeX , Extension = .otf , Scale = \LibreCaslon@scale , } \setmainfont [ Numbers = {\librecaslon@figurestyle}, UprightFont = *-Regular , ItalicFont = *-Italic , BoldFont = *-Bold , ] {LibreCaslonText} \defaultfontfeatures{} } \newfontfamily\librecaslon [ Numbers = {\librecaslon@figurestyle}, UprightFont = *-Regular , ItalicFont = *-Italic , BoldFont = *-Bold , ] {LibreCaslonText} \newfontfamily\librecaslonOsF [ Numbers = {OldStyle}, UprightFont = *-Regular , ItalicFont = *-Italic , BoldFont = *-Bold , ] {LibreCaslonText} \newfontfamily\librecaslonLF [ Numbers = {}, UprightFont = *-Regular , ItalicFont = *-Italic , BoldFont = *-Bold , ] {LibreCaslonText} \newfontfamily\librecaslonTLF [ Numbers = {Monospaced}, UprightFont = *-Regular , ItalicFont = *-Italic , BoldFont = *-Bold , ] {LibreCaslonText} \providecommand\sufigures{\librecaslonOsF\addfontfeatures{VerticalPosition=Superior}} \providecommand\infigures{\librecaslonOsF\addfontfeatures{VerticalPosition=ScientificInferior}} \DeclareTextFontCommand{\textsu}{\sufigures} \DeclareTextFontCommand{\textin}{\infigures} % turn off defaults in case other fonts are selected: \defaultfontfeatures{} \endinput