summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/sourcecodepro/sourcecodepro-otf.sty
blob: e269f1c61d51656fb506482136e10c07fb3843ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
% Source Code Pro for LaTeX
% 
% Silke Hofstra, silke@slxh.nl
%
% OpenType version of Source Code Pro for XeTeX and LuaTeX users.
%
% Licenced under the LPPL
%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{sourcecodepro-otf}[2012/11/04 v1.02 Adobe's Source Code Pro typeface]

% Check if engine is XeTeX or LuaTeX
\RequirePackage{expl3}[2011/09/05]
\ExplSyntaxOn
\msg_new:nnn {sourcecodepro-otf} {cannot-use-pdftex}
{
  The~ sourcecodepro-otf~ package~ requires~ either~ XeTeX~ or~ LuaTeX~ to~ function.
  \\\\
  You~ must~ change~ your~ typesetting~ engine~ to,~
    e.g.,~ "xelatex"~ or~ "lualatex"\\
  instead~ of~ plain~ "latex"~ or~ "pdflatex".
}
\xetex_if_engine:F {
  \luatex_if_engine:TF {
    \RequirePackage{luaotfload}
    \RequireLuaModule{fontspec}
  }{
    \msg_fatal:nn {sourcecodepro-otf} {cannot-use-pdftex}
  }
}

\RequirePackage{fontspec} 

\IfFileExists{xkeyval.sty}{
    \newcommand*{\sourcecodepro@scale}{1}
    \RequirePackage{xkeyval}
    \DeclareOptionX{scaled}{\renewcommand*{\sourcecodepro@scale}{##1}}
}{
    \let\DeclareOptionX\DeclareOption
    \let\ExecuteOptionsX\ExecuteOptions
    \let\ProcessOptionsX\ProcessOptions
}

\DeclareOptionX{lining}{\edef\sourcecodepro@figurestyle{}}
\DeclareOptionX{nf}{\edef\sourcecodepro@figurestyle{}}
\DeclareOptionX{oldstyle}{\edef\sourcecodepro@figurestyle{OldStyle}}
\DeclareOptionX{osf}{\edef\sourcecodepro@figurestyle{OldStyle}}
\DeclareOptionX{black}{\edef\sourcecodepro@boldstyle{Black}}
\DeclareOptionX{semibold}{\edef\sourcecodepro@boldstyle{Semibold}}
\DeclareOptionX{bold}{\edef\sourcecodepro@boldstyle{Bold}}
\DeclareOptionX{light}{\edef\sourcecodepro@regstyle{Light}}
\DeclareOptionX{extralight}{\edef\sourcecodepro@regstyle{ExtraLight}}
\DeclareOptionX{regular}{\edef\sourcecodepro@regstyle{Regular}}
\DeclareOptionX{default}{\renewcommand*{\familydefault}{\ttdefault}}
\ExecuteOptionsX{lining,bold,regular}
\ProcessOptionsX\relax

% Shared features
\defaultfontfeatures{
	Ligatures = TeX ,
	Numbers   = \sourcecodepro@figurestyle,
	Scale     = \sourcecodepro@scale ,
	Extension = .otf }

% Default font
\setmonofont
	[ UprightFont    = *-\sourcecodepro@regstyle ,
	  ItalicFont     = *-\sourcecodepro@regstyle ,
	  BoldFont       = *-\sourcecodepro@boldstyle , 
	  BoldItalicFont = *-\sourcecodepro@boldstyle ]
	{SourceCodePro}

% Font commands
\newfontfamily\sourcecodepro
	[ UprightFont    = *-Regular ,
	  ItalicFont     = *-Regular ,
	  BoldFont       = *-Bold , 
	  BoldItalicFont = *-Bold ]
	{SourceCodePro}

\newfontfamily\sourcecodeprolight
	[ UprightFont    = *-Light ,
	  ItalicFont     = *-Light ,
	  BoldFont       = *-Semibold ,
	  BoldItalicFont = *-Semibold ]
	{SourceCodePro}
	
\newfontfamily\sourcecodeproextreme
	[ UprightFont    = *-ExtraLight ,
	  ItalicFont     = *-ExtraLight ,
	  BoldFont       = *-Black ,
	  BoldItalicFont = *-Black ]
	{SourceCodePro}
	
% Old Style numbers
\renewcommand*\oldstylenums[1]{\addfontfeature{Numbers=OldStyle}#1}
	
\endinput