summaryrefslogtreecommitdiff
path: root/fonts/librecaslon/latex/librecaslon.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/librecaslon/latex/librecaslon.sty
Initial commit
Diffstat (limited to 'fonts/librecaslon/latex/librecaslon.sty')
-rw-r--r--fonts/librecaslon/latex/librecaslon.sty173
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
+