mirror of
https://github.com/anoma/juvix.git
synced 2024-12-27 01:23:32 +03:00
189 lines
7.2 KiB
Plaintext
189 lines
7.2 KiB
Plaintext
|
\NeedsTeXFormat{LaTeX2e}
|
||
|
\ProvidesPackage{juvix}[Juvix code in LaTeX]
|
||
|
|
||
|
\RequirePackage{xcolor}
|
||
|
\RequirePackage{expkv-opt}
|
||
|
\RequirePackage{expkv-def}
|
||
|
\RequirePackage{ifthen}
|
||
|
|
||
|
\ekvdefinekeys{juvix}
|
||
|
{
|
||
|
store theme = \juvix@theme,
|
||
|
initial theme = latte,
|
||
|
% specify what happens for unknown keys
|
||
|
unknown code =
|
||
|
\PackageWarning{juvix}
|
||
|
{Unknown option `\detokenize{#1}' received `\detokenize{#2}'},
|
||
|
unknown noval =
|
||
|
\PackageWarning{juvix}{Unknown option `\detokenize{#1}'}
|
||
|
}
|
||
|
|
||
|
% process options given to \documentclass
|
||
|
\ekvoProcessGlobalOptions{juvix}
|
||
|
% for the next ekvoProcess... use the unknown handlers like defined for the set
|
||
|
\ekvoUseUnknownHandlers*
|
||
|
% process options given to this package
|
||
|
\ekvoProcessLocalOptions{juvix}
|
||
|
|
||
|
\newcommand{\mocha}{
|
||
|
\definecolor{ctpRosewater} {RGB} {245, 224, 220}
|
||
|
\definecolor{ctpFlamingo} {RGB} {242, 205, 205}
|
||
|
\definecolor{ctpPink} {RGB} {245, 194, 231}
|
||
|
\definecolor{ctpMauve} {RGB} {203, 166, 247}
|
||
|
\definecolor{ctpRed} {RGB} {243, 139, 168}
|
||
|
\definecolor{ctpMaroon} {RGB} {235, 160, 172}
|
||
|
\definecolor{ctpPeach} {RGB} {250, 179, 135}
|
||
|
\definecolor{ctpYellow} {RGB} {249, 226, 175}
|
||
|
\definecolor{ctpGreen} {RGB} {166, 227, 161}
|
||
|
\definecolor{ctpTeal} {RGB} {148, 226, 213}
|
||
|
\definecolor{ctpSky} {RGB} {137, 220, 235}
|
||
|
\definecolor{ctpSapphire} {RGB} {116, 199, 236}
|
||
|
\definecolor{ctpBlue} {RGB} {137, 180, 250}
|
||
|
\definecolor{ctpLavender} {RGB} {180, 190, 254}
|
||
|
\definecolor{ctpText} {RGB} {205, 214, 244}
|
||
|
\definecolor{ctpSubtext1} {RGB} {186, 194, 222}
|
||
|
\definecolor{ctpSubtext0} {RGB} {166, 173, 200}
|
||
|
\definecolor{ctpOverlay2} {RGB} {147, 153, 178}
|
||
|
\definecolor{ctpOverlay1} {RGB} {127, 132, 156}
|
||
|
\definecolor{ctpOverlay0} {RGB} {108, 112, 134}
|
||
|
\definecolor{ctpSurface2} {RGB} {88, 91, 112}
|
||
|
\definecolor{ctpSurface1} {RGB} {69, 71, 90}
|
||
|
\definecolor{ctpSurface0} {RGB} {49, 50, 68}
|
||
|
\definecolor{ctpBase} {RGB} {30, 30, 46}
|
||
|
\definecolor{ctpMantle} {RGB} {24, 24, 37}
|
||
|
\definecolor{ctpCrust} {RGB} {17, 17, 27}
|
||
|
}
|
||
|
|
||
|
\newcommand{\latte}{
|
||
|
\definecolor{ctpRosewater} {RGB} {220, 138, 120}
|
||
|
\definecolor{ctpFlamingo} {RGB} {221, 120, 120}
|
||
|
\definecolor{ctpPink} {RGB} {234, 118, 203}
|
||
|
\definecolor{ctpMauve} {RGB} {136, 57, 239}
|
||
|
\definecolor{ctpRed} {RGB} {210, 15, 57}
|
||
|
\definecolor{ctpMaroon} {RGB} {230, 69, 83}
|
||
|
\definecolor{ctpPeach} {RGB} {254, 100, 11}
|
||
|
\definecolor{ctpYellow} {RGB} {223, 142, 29}
|
||
|
\definecolor{ctpGreen} {RGB} {64, 160, 43}
|
||
|
\definecolor{ctpTeal} {RGB} {23, 146, 153}
|
||
|
\definecolor{ctpSky} {RGB} {4, 165, 229}
|
||
|
\definecolor{ctpSapphire} {RGB} {32, 159, 181}
|
||
|
\definecolor{ctpBlue} {RGB} {30, 102, 245}
|
||
|
\definecolor{ctpLavender} {RGB} {114, 135, 253}
|
||
|
\definecolor{ctpText} {RGB} {76, 79, 105}
|
||
|
\definecolor{ctpSubtext1} {RGB} {92, 95, 119}
|
||
|
\definecolor{ctpSubtext0} {RGB} {108, 111, 133}
|
||
|
\definecolor{ctpOverlay2} {RGB} {124, 127, 147}
|
||
|
\definecolor{ctpOverlay1} {RGB} {140, 143, 161}
|
||
|
\definecolor{ctpOverlay0} {RGB} {156, 160, 176}
|
||
|
\definecolor{ctpSurface2} {RGB} {172, 176, 190}
|
||
|
\definecolor{ctpSurface1} {RGB} {188, 192, 204}
|
||
|
\definecolor{ctpSurface0} {RGB} {204, 208, 218}
|
||
|
\definecolor{ctpBase} {RGB} {239, 241, 245}
|
||
|
\definecolor{ctpMantle} {RGB} {230, 233, 239}
|
||
|
\definecolor{ctpCrust} {RGB} {220, 224, 232}
|
||
|
}
|
||
|
|
||
|
\newcommand{\frappe}{
|
||
|
\definecolor{ctpRosewater} {RGB} {242, 213, 207}
|
||
|
\definecolor{ctpFlamingo} {RGB} {238, 190, 190}
|
||
|
\definecolor{ctpPink} {RGB} {244, 184, 228}
|
||
|
\definecolor{ctpMauve} {RGB} {202, 158, 230}
|
||
|
\definecolor{ctpRed} {RGB} {231, 130, 132}
|
||
|
\definecolor{ctpMaroon} {RGB} {234, 153, 156}
|
||
|
\definecolor{ctpPeach} {RGB} {239, 159, 118}
|
||
|
\definecolor{ctpYellow} {RGB} {229, 200, 144}
|
||
|
\definecolor{ctpGreen} {RGB} {166, 209, 137}
|
||
|
\definecolor{ctpTeal} {RGB} {129, 200, 190}
|
||
|
\definecolor{ctpSky} {RGB} {153, 209, 219}
|
||
|
\definecolor{ctpSapphire} {RGB} {133, 193, 220}
|
||
|
\definecolor{ctpBlue} {RGB} {140, 170, 238}
|
||
|
\definecolor{ctpLavender} {RGB} {186, 187, 241}
|
||
|
\definecolor{ctpText} {RGB} {198, 208, 245}
|
||
|
\definecolor{ctpSubtext1} {RGB} {181, 191, 226}
|
||
|
\definecolor{ctpSubtext0} {RGB} {165, 173, 206}
|
||
|
\definecolor{ctpOverlay2} {RGB} {148, 156, 187}
|
||
|
\definecolor{ctpOverlay1} {RGB} {131, 139, 167}
|
||
|
\definecolor{ctpOverlay0} {RGB} {115, 121, 148}
|
||
|
\definecolor{ctpSurface2} {RGB} {98, 104, 128}
|
||
|
\definecolor{ctpSurface1} {RGB} {81, 87, 109}
|
||
|
\definecolor{ctpSurface0} {RGB} {65, 69, 89}
|
||
|
\definecolor{ctpBase} {RGB} {48, 52, 70}
|
||
|
\definecolor{ctpMantle} {RGB} {41, 44, 60}
|
||
|
\definecolor{ctpCrust} {RGB} {35, 38, 52}
|
||
|
}
|
||
|
|
||
|
\newcommand{\macchiato}{
|
||
|
\definecolor{ctpRosewater} {RGB} {244, 219, 214}
|
||
|
\definecolor{ctpFlamingo} {RGB} {240, 198, 198}
|
||
|
\definecolor{ctpPink} {RGB} {245, 189, 230}
|
||
|
\definecolor{ctpMauve} {RGB} {198, 160, 246}
|
||
|
\definecolor{ctpRed} {RGB} {237, 135, 150}
|
||
|
\definecolor{ctpMaroon} {RGB} {238, 153, 160}
|
||
|
\definecolor{ctpPeach} {RGB} {245, 169, 127}
|
||
|
\definecolor{ctpYellow} {RGB} {238, 212, 159}
|
||
|
\definecolor{ctpGreen} {RGB} {166, 218, 149}
|
||
|
\definecolor{ctpTeal} {RGB} {139, 213, 202}
|
||
|
\definecolor{ctpSky} {RGB} {145, 215, 227}
|
||
|
\definecolor{ctpSapphire} {RGB} {125, 196, 228}
|
||
|
\definecolor{ctpBlue} {RGB} {138, 173, 244}
|
||
|
\definecolor{ctpLavender} {RGB} {183, 189, 248}
|
||
|
\definecolor{ctpText} {RGB} {202, 211, 245}
|
||
|
\definecolor{ctpSubtext1} {RGB} {184, 192, 224}
|
||
|
\definecolor{ctpSubtext0} {RGB} {165, 173, 203}
|
||
|
\definecolor{ctpOverlay2} {RGB} {147, 154, 183}
|
||
|
\definecolor{ctpOverlay1} {RGB} {128, 135, 162}
|
||
|
\definecolor{ctpOverlay0} {RGB} {110, 115, 141}
|
||
|
\definecolor{ctpSurface2} {RGB} {91, 96, 120}
|
||
|
\definecolor{ctpSurface1} {RGB} {73, 77, 100}
|
||
|
\definecolor{ctpSurface0} {RGB} {54, 58, 79}
|
||
|
\definecolor{ctpBase} {RGB} {36, 39, 58}
|
||
|
\definecolor{ctpMantle} {RGB} {30, 32, 48}
|
||
|
\definecolor{ctpCrust} {RGB} {24, 25, 38}
|
||
|
}
|
||
|
|
||
|
\newcommand{\settheme}[1]{%
|
||
|
\ifthenelse{\equal{#1}{mocha}}{\mocha{}}{%
|
||
|
\ifthenelse{\equal{#1}{macchiato}}{\macchiato{}}{%
|
||
|
\ifthenelse{\equal{#1}{latte}}{\latte{}}{%
|
||
|
\ifthenelse{\equal{#1}{frappe}}{\frappe{}}{%
|
||
|
\PackageError{juvix}{Invalid theme `#1'}{The theme should be one of: latte, mocha, macchiato, frappe.}%
|
||
|
}}}}
|
||
|
}
|
||
|
|
||
|
\settheme{\juvix@theme}
|
||
|
|
||
|
% Code
|
||
|
\colorlet{ju-function}{ctpYellow}
|
||
|
\colorlet{ju-inductive}{ctpGreen}
|
||
|
\colorlet{ju-constructor}{ctpMauve}
|
||
|
\colorlet{ju-axiom}{ctpRed}
|
||
|
\colorlet{ju-string}{ctpFlamingo}
|
||
|
\colorlet{ju-keyword}{ctpSky}
|
||
|
\colorlet{ju-delimiter}{ctpOverlay2}
|
||
|
\colorlet{ju-comment}{ctpRosewater}
|
||
|
\colorlet{ju-judoc}{ctpTeal}
|
||
|
\colorlet{ju-var}{ctpText}
|
||
|
\colorlet{ju-fixity}{ctpSapphire}
|
||
|
\colorlet{ju-number}{ctpText}
|
||
|
\colorlet{ju-module}{ctpLavender}
|
||
|
|
||
|
% Text
|
||
|
\colorlet{ju-text}{ctpText}
|
||
|
\colorlet{ju-subtext1}{ctpSubtext1}
|
||
|
\colorlet{ju-subtext0}{ctpSubtext0}
|
||
|
|
||
|
% Overlay
|
||
|
\colorlet{ju-overlay2}{ctpOverlay2}
|
||
|
\colorlet{ju-overlay1}{ctpOverlay1}
|
||
|
\colorlet{ju-overlay0}{ctpOverlay0}
|
||
|
|
||
|
% Surface
|
||
|
\colorlet{ju-surface2}{ctpSurface2}
|
||
|
\colorlet{ju-surface1}{ctpSurface1}
|
||
|
\colorlet{ju-surface0}{ctpSurface0}
|
||
|
|
||
|
% Panes
|
||
|
\colorlet{ju-base}{ctpBase}
|
||
|
\colorlet{ju-mantle}{ctpMantle}
|
||
|
\colorlet{ju-crust}{ctpCrust}
|