diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/librecaslon/latex/librecaslon.sty |
Initial commit
Diffstat (limited to 'fonts/librecaslon/latex/librecaslon.sty')
-rw-r--r-- | fonts/librecaslon/latex/librecaslon.sty | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/fonts/librecaslon/latex/librecaslon.sty b/fonts/librecaslon/latex/librecaslon.sty new file mode 100644 index 0000000000..8568633493 --- /dev/null +++ b/fonts/librecaslon/latex/librecaslon.sty @@ -0,0 +1,173 @@ +\ProvidesPackage{librecaslon}[% + 2019/06/25 (Bob Tennent) Supports LibreCaslon fonts for all LaTeX engines. ] + +\RequirePackage{ifxetex,ifluatex,textcomp} + +\newif\iflibrecaslon@otf +\ifxetex + \librecaslon@otftrue +\else\ifluatex + \librecaslon@otftrue +\else % [pdf]LaTeX + \librecaslon@otffalse +\fi\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{type1}{\librecaslon@otffalse} + +\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@otf + \iflibrecaslon@lining + \def\librecaslon@figurestyle{Monospaced} + \else + \def\librecaslon@figurestyle{OldStyle} + \fi + +\else % type1 + + \iflibrecaslon@lining + \def\librecaslon@figurealign{T} + \def\librecaslon@figurestyle{LF} + \else + \def\librecaslon@figurealign{} + \def\librecaslon@figurestyle{OsF} + \fi +\fi + + +\iflibrecaslon@otf + \RequirePackage{fontspec} +\else + \RequirePackage{fontenc,fontaxes} +\fi + +\iflibrecaslon@otf + \ifxetex\XeTeXtracingfonts=1\fi + \defaultfontfeatures{ + Ligatures = TeX , + Extension = .otf , + Scale = \LibreCaslon@scale , + } + \setmainfont + [ Numbers = {\librecaslon@figurestyle}, + UprightFont = *-Regular , + ItalicFont = *-Italic , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic ] + {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 , + BoldItalicFont = *-BoldItalic ] + {LibreCaslonText} + \defaultfontfeatures{} + } + \newfontfamily\librecaslon + [ Numbers = {\librecaslon@figurestyle}, + UprightFont = *-Regular , + ItalicFont = *-Italic , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic ] + {LibreCaslonText} + \newfontfamily\librecaslonOsF + [ Numbers = {OldStyle}, + UprightFont = *-Regular , + ItalicFont = *-Italic , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic ] + {LibreCaslonText} + \newfontfamily\librecaslonLF + [ Numbers = {}, + UprightFont = *-Regular , + ItalicFont = *-Italic , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic ] + {LibreCaslonText} + \newfontfamily\librecaslonTLF + [ Numbers = {Monospaced}, + UprightFont = *-Regular , + ItalicFont = *-Italic , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic ] + {LibreCaslonText} + + \providecommand\sufigures{\librecaslonOsF\addfontfeatures{VerticalPosition=Superior}} + \providecommand\infigures{\librecaslonOsF\addfontfeatures{VerticalPosition=ScientificInferior}} + + +\else % type1 + + \def\librecaslonfamily{LibreCaslon-\librecaslon@figurealign\librecaslon@figurestyle} + \providecommand*\librecaslon{\fontfamily{\librecaslonfamily}\selectfont} + \providecommand*\librecaslonLF{\fontfamily{LibreCaslon-LF}\selectfont} + \providecommand*\librecaslonTLF{\fontfamily{LibreCaslon-TLF}\selectfont} + \providecommand*\librecaslonOsF{\fontfamily{LibreCaslon-OsF}\selectfont} + + \fa@naming@exception{figures}{{superior}{proportional}}{Sup} + \fa@naming@exception{figures}{{superior}{tabular}}{Sup} + \providecommand\sufigures{\@nomath\sufigures\fontfigurestyle{superior}\selectfont} + \fa@naming@exception{figures}{{inferior}{proportional}}{Inf} + \fa@naming@exception{figures}{{inferior}{tabular}}{Inf} + \def\infigures{\@nomath\infigures\fontfigurestyle{inferior}\selectfont} + + \renewcommand*\rmdefault{\librecaslonfamily} + \providecommand*\useosf{\edef\librecaslon@figurealign{}\edef\librecaslon@figurestyle{OsF}% + \renewcommand*{\rmdefault}{LibreCaslon-OsF}} + +\fi +\DeclareTextFontCommand{\textsu}{\sufigures} +\DeclareTextFontCommand{\textin}{\infigures} + +% turn off defaults in case other fonts are selected: +\iflibrecaslon@otf + \defaultfontfeatures{} +\fi + +\endinput + |