summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/opensans/opensans.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/opensans/opensans.sty')
-rw-r--r--Master/texmf-dist/tex/latex/opensans/opensans.sty195
1 files changed, 141 insertions, 54 deletions
diff --git a/Master/texmf-dist/tex/latex/opensans/opensans.sty b/Master/texmf-dist/tex/latex/opensans/opensans.sty
index 51757406bd1..070cb6f3548 100644
--- a/Master/texmf-dist/tex/latex/opensans/opensans.sty
+++ b/Master/texmf-dist/tex/latex/opensans/opensans.sty
@@ -1,5 +1,5 @@
%% opensans.sty
-%% Copyright 2011 Mohamed El Morabity
+%% Copyright 2019 Mohamed El Morabity
%
% This work may be distributed and/or modified under the conditions of the LaTeX
% Project Public License, either version 1.3 of this license or (at your option)
@@ -8,74 +8,161 @@
% distributions of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is Mohamed El Morabity
%
% This work consists of all files listed in manifest.txt.
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{opensans}[2011/11/11 Opensans]
-\RequirePackage{keyval}
-\RequirePackage{slantsc}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{opensans}[2019/06/15 Style file for Open Sans.]
+
+\RequirePackage{fontaxes}
+\RequirePackage{ifluatex}
+\RequirePackage{ifxetex}
+\RequirePackage{xkeyval}
+
+\newif\ifopensans@otf
+\ifxetex
+ \opensans@otftrue
+\else
+ \ifluatex
+ \opensans@otftrue
+ \else
+ \opensans@otffalse
+ \fi
+\fi
-% Taken from inconsolata.sty
-\define@key{opensans}{scale}[1.0]{\def\opensans@scale{s*[#1]}}
-\DeclareOption*{%
- \begingroup%
- \edef\x{\endgroup%
- \noexpand\setkeys{opensans}{\CurrentOption}}%
- \x%
-}
+\newif\ifopensans@lining
+\newif\ifopensans@oldstyle
-\newif\ifopensans@osfigures
-\opensans@osfiguresfalse
-
-\newif\ifopensans@defaultsans
-\opensans@defaultsansfalse
+\newif\ifopensans@tabular
+\newif\ifopensans@proportional
\newif\ifopensans@default
\opensans@defaultfalse
-\newif\ifopensans@footnotefigures
-\opensans@footnotefiguresfalse
-
-\newcommand{\opensans@family}{fos}
-
-\DeclareOption{osfigures}{%
- \opensans@osfigurestrue%
-}
-
-\DeclareOption{defaultsans}{%
- \opensans@defaultsanstrue%
-}
-
-\DeclareOption{default}{%
- \opensans@defaulttrue%
-}
-
-\DeclareOption{footnotefigures}{%
- \opensans@footnotefigurestrue%
-}
-
-\ProcessOptions*
-
-\newcommand{\fosfamily}{%
- \fontfamily{\opensans@family}%
- \selectfont%
-}
+\newif\ifopensans@defaultsans
+\opensans@defaultsansfalse
-\ifopensans@osfigures%
- \renewcommand{\opensans@family}{fosj}%
+\newcommand*{\opensans@scale}{1}
+\DeclareOptionX{scale}{\renewcommand*{\opensans@scale}{#1}}
+\DeclareOptionX{scaled}{\renewcommand*{\opensans@scale}{#1}}
+
+\DeclareOptionX{default}{\opensans@defaulttrue}
+\DeclareOptionX{defaultsans}{\opensans@defaultsanstrue}
+\DeclareOptionX{lining}{\opensans@liningtrue}
+\DeclareOptionX{oldstyle}{\opensans@liningfalse}
+\DeclareOptionX{tabular}{\opensans@tabulartrue}
+\DeclareOptionX{proportional}{\opensans@tabularfalse}
+\DeclareOptionX{type1}{\opensans@otffalse}
+
+\ExecuteOptionsX{tabular,lining}
+\ProcessOptionsX
+\relax
+
+\ifopensans@tabular
+ \newcommand*{\opensans@figurewidth@otf}{Monospaced}
+ \newcommand*{\opensans@figurewidth@pfb}{T}
+\else
+ \newcommand*{\opensans@figurewidth@otf}{Proportional}
+ \newcommand*{\opensans@figurewidth@pfb}{TLF}
\fi
-
-\ifopensans@defaultsans%
-\renewcommand*{\sfdefault}{\opensans@family}%
+\ifopensans@lining
+ \newcommand*{\opensans@figurestyle@otf}{Lining}
+ \newcommand*{\opensans@figurestyle@pfb}{LF}
+\else
+ \newcommand*{\opensans@figurestyle@otf}{OldStyle}
+ \newcommand*{\opensans@figurestyle@pfb}{OsF}
\fi
-\ifopensans@default%
- \renewcommand*{\sfdefault}{\opensans@family}%
- \renewcommand*{\familydefault}{\opensans@family}%
+\newcommand*{\opensans@familyprefix}{opensans}
+\newcommand*{\opensans@family}[1]{\opensans@familyprefix-#1}
+\newcommand*{\opensansfamily}{\opensans@family{\opensans@figurewidth@pfb\opensans@figurestyle@pfb}}
+
+\ifopensans@otf
+ \RequirePackage{fontspec}
+
+ \ifxetex
+ \XeTeXtracingfonts=1
+ \fi
+
+ \newcommand*{\opensans@otf@features}{%
+ Extension=.ttf,%
+ Ligatures=Common,%
+ Scale=\opensans@scale,%
+ FontFace={l}{n}{*-Light},%
+ FontFace={l}{it}{*-LightItalic},%
+ FontFace={lc}{n}{*Condensed-Light},%
+ FontFace={lc}{it}{*Condensed-LightItalic},%
+ UprightFont={*-Regular},%
+ ItalicFont={*-Italic},%
+ FontFace={sb}{n}{*-SemiBold},%
+ FontFace={sb}{it}{*-SemiBoldItalic},%
+ FontFace={b}{n}{*-Bold},%
+ FontFace={b}{it}{*-BoldItalic},%
+ BoldFont={*-Bold},%
+ BoldItalicFont={*-BoldItalic},%
+ FontFace={bc}{n}{*Condensed-Bold},%
+ FontFace={eb}{n}{*-ExtraBold},%
+ FontFace={eb}{it}{*-ExtraBoldItalic}%
+ }
+
+ % Define family for each figure style/width, with corresponding
+ % NFSS family, for fontaxes support
+ \newfontfamily{\opensans@otf@TLF}[%
+ \opensans@otf@features,%
+ Numbers={Monospaced,Lining},%
+ NFSSFamily=\opensans@family{TLF}%
+ ]{OpenSans}
+ \newfontfamily{\opensans@otf@LF}[%
+ \opensans@otf@features,%
+ Numbers={Proportional,Lining},%
+ NFSSFamily=\opensans@family{LF}%
+ ]{OpenSans}
+ \newfontfamily{\opensans@otf@TOsF}[%
+ \opensans@otf@features,%
+ Numbers={Monospaced,OldStyle},%
+ NFSSFamily=\opensans@family{TOsF}%
+ ]{OpenSans}
+ \newfontfamily{\opensans@otf@OsF}[%
+ \opensans@otf@features,%
+ Numbers={Proportional,OldStyle},%
+ NFSSFamily=\opensans@family{OsF}%
+ ]{OpenSans}
+
+ \expandafter\let\expandafter\opensans\csname opensans@otf@\opensans@figurewidth@pfb\opensans@figurestyle@pfb\endcsname
+
+ % Legacy compatibility
+ \newfontfamily{\fosfamily}[%
+ \opensans@otf@features,%
+ Numbers={Monospaced,Lining},%
+ NFSSFamily=fos%
+ ]{OpenSans}
+
+ \ifopensans@defaultsans
+ \setsansfont[%
+ \opensans@otf@features,%
+ Numbers={\opensans@figurewidth@otf,\opensans@figurestyle@otf},%
+ ]{Open Sans}
+ \fi
+ \ifopensans@default
+ \setmainfont[%
+ \opensans@otf@features,%
+ Numbers={\opensans@figurewidth@otf,\opensans@figurestyle@otf},%
+ ]{Open Sans}
+ \fi
+\else
+ \newcommand*{\opensans}{\fontfamily{\opensansfamily}\selectfont}
+ % Legacy compatibility
+ \newcommand*{\fosfamily}{\fontfamily{opensans-TLF}\selectfont}
+
+ \ifopensans@defaultsans
+ \renewcommand*{\sfdefault}{\opensansfamily}
+ \fi
+ \ifopensans@default
+ \renewcommand*{\familydefault}{\opensansfamily}
+ \fi
\fi
\endinput