summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib/projlib-font.sty
blob: c308c1c66d716fb0755aa766ff67503d6595416e (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\RequirePackage{l3keys2e}
\ProvidesExplPackage
  {projlib-font}
  {2022/03/01} {}
  {Font selection and configuration}

\keys_define:nn { projlib-font }
  {
    , useosf           .bool_set:N   = \l__projlib_font_useosf_bool
    , useosf           .initial:n    = { false }
    , old-style-figures.bool_set:N   = \l__projlib_font_useosf_bool
    , old~style~figures.bool_set:N   = \l__projlib_font_useosf_bool
    , old style figures.bool_set:N   = \l__projlib_font_useosf_bool
    , lmodern          .bool_set:N   = \l__projlib_font_lmodern_bool
    , lmodern          .initial:n    = { false }
    , latin-modern     .bool_set:N   = \l__projlib_font_lmodern_bool
    , latin~modern     .bool_set:N   = \l__projlib_font_lmodern_bool
    , latin modern     .bool_set:N   = \l__projlib_font_lmodern_bool
    , palatino         .bool_set:N   = \l__projlib_font_palatino_bool
    , palatino         .initial:n    = { false }
    , times            .bool_set:N   = \l__projlib_font_times_bool
    , times            .initial:n    = { false }
    , garamond         .bool_set:N   = \l__projlib_font_garamond_bool
    , garamond         .initial:n    = { false }
    , noto             .bool_set:N   = \l__projlib_font_noto_bool
    , noto             .initial:n    = { false }
    , biolinum         .bool_set:N   = \l__projlib_font_biolinum_bool
    , biolinum         .initial:n    = { false }
    , unknown          .code:n       = {}
  }
\ProcessKeysOptions { projlib-font }

\RequirePackage { setspace }

\cs_new:Nn \projlib_font_set_linespacing_latin:n
  {
    \cs_if_exist:NTF \projlib_language_set_linespacing_latin:n
      {
        \projlib_language_set_linespacing_latin:n { #1 }
      }
      {
        #1
      }
  }

\bool_if:NT \l__projlib_font_lmodern_bool
  {
    \RequirePackage { amssymb }
    \bool_if:NTF \l__projlib_font_useosf_bool
      {
        \RequirePackage { cfr-lm }
      }
      {
        \RequirePackage { lmodern }
      }
    \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
  }

\bool_if:NT \l__projlib_font_palatino_bool
  {
    \RequirePackage { mathpazo }
    \PassOptionsToPackage { defaultsups } { newpxtext }
    \RequirePackage { newpxtext }
    \cs_undefine:c { openbox }
    \projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
    \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
  }

\bool_if:NT \l__projlib_font_times_bool
  {
    \PassOptionsToPackage { defaultsups } { newtxtext }
    \RequirePackage { newtxtext }
    \RequirePackage { newtxmath }
    \cs_undefine:c { openbox }
    \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
    \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
  }

\bool_if:NT \l__projlib_font_garamond_bool
  {
    \bool_if:NF \l__projlib_font_useosf_bool
      {
        \PassOptionsToPackage { lining } { ebgaramond }
      }
    \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
    \cs_undefine:c { openbox }
    \RequirePackage { ebgaramond-maths }
    \RequirePackage { ebgaramond }
    \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
  }

\bool_if:NT \l__projlib_font_noto_bool
  {
    \bool_if:NT \l__projlib_font_useosf_bool
      {
        \PassOptionsToPackage { oldstyle } { notomath }
      }
    \RequirePackage { anyfontsize }
    \RequirePackage { notomath }
    \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
  }

\bool_if:NT \l__projlib_font_biolinum_bool
  {
    \RequirePackage [ OT1 ] { eulervm }
    \sys_if_engine_pdftex:TF
      {
        \bool_if:NT \l__projlib_font_useosf_bool
          {
            \PassOptionsToPackage { osf } { biolinum }
          }
          \RequirePackage { biolinum }
          \tl_gset:Nn \familydefault { \biolinum@family }
      }
      {
        \PassOptionsToPackage { no-math } { fontspec }
        \RequirePackage { fontspec }
        \bool_if:NTF \l__projlib_font_useosf_bool
          {
            \setmainfont { LinBiolinum_R.otf } [
              BoldFont       = LinBiolinum_RB.otf  ,
              ItalicFont     = LinBiolinum_RI.otf  ,
              BoldItalicFont = LinBiolinum_RBO.otf ,
              Numbers        = OldStyle            , ]
          }
          {
            \setmainfont { LinBiolinum_R.otf } [
              BoldFont       = LinBiolinum_RB.otf  ,
              ItalicFont     = LinBiolinum_RI.otf  ,
              BoldItalicFont = LinBiolinum_RBO.otf , ]
          }
      }
    \projlib_font_set_linespacing_latin:n { \setstretch { 1.05 } }
    \RequirePackage [ italic, defaultmathsizes ] { mathastext }
  }

\RequirePackage { silence }
\WarningFilter { microtype } { Unable }
\RequirePackage { microtype }

\endinput
%%
%% End of file `projlib-font.sty'.