summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib/projlib-paper.sty
blob: bb13bbe00a2ecceed70e3381d78adcfc812b4e0a (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
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\RequirePackage{l3keys2e}
\ProvidesExplPackage
  {projlib-paper}
  {2022/03/09} {}
  {Configuration of the paper style}

\keys_define:nn { projlib-paper }
  {
    , preview-mode      .bool_set:N         = \l__projlib_paper_preview_bool
    , preview-mode      .initial:n          = { false }
    , paper-style       .tl_set:N           = \l__projlib_paper_paperstyle_tl
    , paper-style       .initial:n          = { normal }
    , paper-style       .value_required:n   = true
    , paper~style       .tl_set:N           = \l__projlib_paper_paperstyle_tl
    , paper style       .tl_set:N           = \l__projlib_paper_paperstyle_tl
    , yellow-paper      .meta:n             = { paperstyle = yellow     }
    , yellow~paper      .meta:n             = { paperstyle = yellow     }
    , yellow paper      .meta:n             = { paperstyle = yellow     }
    , parchment-paper   .meta:n             = { paperstyle = parchment  }
    , parchment~paper   .meta:n             = { paperstyle = parchment  }
    , parchment paper   .meta:n             = { paperstyle = parchment  }
    , green-paper       .meta:n             = { paperstyle = green      }
    , green~paper       .meta:n             = { paperstyle = green      }
    , green paper       .meta:n             = { paperstyle = green      }
    , light-gray-paper  .meta:n             = { paperstyle = lightgray  }
    , light~gray~paper  .meta:n             = { paperstyle = lightgray  }
    , light gray-paper  .meta:n             = { paperstyle = lightgray  }
    , light gray~paper  .meta:n             = { paperstyle = lightgray  }
    , light gray paper  .meta:n             = { paperstyle = lightgray  }
    , gray-paper        .meta:n             = { paperstyle = gray       }
    , gray~paper        .meta:n             = { paperstyle = gray       }
    , gray paper        .meta:n             = { paperstyle = gray       }
    , nord-paper        .meta:n             = { paperstyle = nord       }
    , nord~paper        .meta:n             = { paperstyle = nord       }
    , nord paper        .meta:n             = { paperstyle = nord       }
    , dark-paper        .meta:n             = { paperstyle = dark       }
    , dark~paper        .meta:n             = { paperstyle = dark       }
    , dark paper        .meta:n             = { paperstyle = dark       }
    , unknown           .code:n             = {}
  }
\ProcessKeysOptions { projlib-paper }

\cs_new:Nn \projlib_paper_preview_disable:
  {
    \bool_set_false:c { l__projlib_paper_preview_bool }
  }

\hook_gput_code:nnn { begindocument/before } { projlib-paper }
  {
    \bool_if:NT \l__projlib_paper_preview_bool
      {
        \dim_set:Nn \paperwidth
          {
            \dim_eval:n { \textwidth * 21 / 20 }
          }
        \dim_set:Nn \paperheight
          {
            \dim_eval:n { ( \textheight + \headheight + \headsep + \footskip ) * 21 / 20 }
          }
        \dim_set:Nn \oddsidemargin
          {
            \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
          }
        \dim_set:Nn \evensidemargin
          {
            \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
          }
        \dim_set:Nn \topmargin
          {
            \dim_eval:n { ( \paperheight - \textheight - \headheight - \headsep - \footskip ) / 2 - 1in }
          }
      }
  }

\RequirePackage { xcolor }

\definecolor { paper }     { RGB } { 255, 255, 255 }
\definecolor { main-text } { RGB } {   0,   0,   0 }

\str_case_e:nn { \l__projlib_paper_paperstyle_tl }
  {
    { yellow      } { \definecolor { paper }     { RGB } { 247, 246, 233 } }
    { parchment   } { \definecolor { paper }     { RGB } { 224, 204, 160 } }
    { green       } { \definecolor { paper }     { RGB } { 207, 231, 207 } }
    { lightgray   } { \definecolor { paper }     { RGB } { 236, 239, 244 }
                      \definecolor { main-text } { RGB } {  37,  41,  46 } }
    { light-gray  } { \definecolor { paper }     { RGB } { 236, 239, 244 }
                      \definecolor { main-text } { RGB } {  37,  41,  46 } }
    { gray        } { \definecolor { paper }     { RGB } { 127, 130, 136 }
                      \definecolor { main-text } { RGB } { 236, 239, 244 } }
    { nord        } { \definecolor { paper }     { RGB } {  46,  52,  64 }
                      \definecolor { main-text } { RGB } { 214, 220, 230 } }
    { dark        } { \definecolor { paper }     { RGB } {  28,  29,  33 }
                      \definecolor { main-text } { RGB } { 210, 213, 217 } }
  }

\cs_new:Nn \projlib_paper_set_page_color:n
  {
    \pagecolor { #1 }
  }
\cs_new:Nn \projlib_paper_set_text_color:n
  {
    \color { #1 }
    \cs_gset_eq:cc { default@color } { current@color }
  }

\projlib_paper_set_page_color:n { paper }
\projlib_paper_set_text_color:n { main-text }

\hook_gput_code:nnn { begindocument/before } { projlib-paper }
  {
    \cs_if_exist:NT \tcbset
      { \tcbset { colupper = main-text, collower = main-text } }
  }

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