diff --git a/README.md b/README.md
index d11aa47..87d85c6 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,7 @@ We support the old colors based on the
## Download the colors
+### Gimp/Inkscape
If you just need the colors outside Python, you can download a GIMP colorpalette with all colors (see image below).
Right click any of the links below and then select "Save Link as":
@@ -23,6 +24,16 @@ Right click any of the links below and then select "Save Link as":
2021 colors
These files can be imported into GIMP or Inkscape.
+
+### Latex
+
+We also provide a LaTeX color file for the 2021 colors. You can download it here:
+
+2021 colors
+
+For this to work you need to include the xcolor package in your preamble (`\usepackage{xcolor}`) and then you can use
+the colors by copying the file into your project and including it in your document (`\input{fau_colors_2021.tex}`).
+
If you need the colors in other formats, please open an issue with details about the required file format.
## Installation
diff --git a/color_palettes/_create_palettes.py b/color_palettes/_create_palettes.py
index f9748a3..3879c81 100644
--- a/color_palettes/_create_palettes.py
+++ b/color_palettes/_create_palettes.py
@@ -1,10 +1,14 @@
from pathlib import Path
-from fau_colors import export_as_gpl
+from fau_colors import export_as_gpl, export_as_tex
from fau_colors.v2019 import cmaps as colors_2019
from fau_colors.v2021 import cmaps as colors_2021
+from fau_colors.v2021 import cmaps_with_names as colors_2021_with_names
HERE = Path(__file__).parent
export_as_gpl(colors_2021, file_name="fau_colors_2021.gpl", folder_path=HERE)
export_as_gpl(colors_2019, file_name="fau_colors_2019.gpl", folder_path=HERE)
+
+
+export_as_tex(colors_2021_with_names, file_name="fau_colors_2021.tex", folder_path=HERE)
diff --git a/color_palettes/fau_colors_2021.tex b/color_palettes/fau_colors_2021.tex
new file mode 100644
index 0000000..4525e32
--- /dev/null
+++ b/color_palettes/fau_colors_2021.tex
@@ -0,0 +1,104 @@
+% Tex color file defining the FAU colors.
+% To use, you need to include the `xcolor` package (\usepackage{xcolor} in your preamble).
+% Then copy this file into your project and include it with `\input{fau_colors_2021.tex}`.\definecolor{fau-fau-125}{rgb}{0.8745098039215686, 0.8976393694732795, 0.9276585928489043}
+\definecolor{fau-fau-250}{rgb}{0.7490196078431373, 0.795278738946559, 0.8553171856978086}
+\definecolor{fau-fau-375}{rgb}{0.6235294117647059, 0.6929181084198386, 0.7829757785467129}
+\definecolor{fau-fau-625}{rgb}{0.37254901960784315, 0.48819684736639757, 0.6382929642445214}
+\definecolor{fau-fau-dark}{rgb}{0.01568627450980392, 0.11764705882352941, 0.25882352941176473}
+\definecolor{fau-fau-light}{rgb}{0.37254901960784315, 0.48627450980392156, 0.6392156862745098}
+\definecolor{fau-fau_dark-125}{rgb}{0.876478277585544, 0.889273356401384, 0.9069896193771626}
+\definecolor{fau-fau_dark-250}{rgb}{0.7529565551710881, 0.7785467128027682, 0.8139792387543252}
+\definecolor{fau-fau_dark-375}{rgb}{0.629434832756632, 0.6678200692041523, 0.7209688581314879}
+\definecolor{fau-fau_dark-625}{rgb}{0.3823913879277201, 0.4463667820069205, 0.5349480968858131}
+\definecolor{fau-fau_dark}{rgb}{0.01568627450980392, 0.11764705882352941, 0.25882352941176473}
+\definecolor{fau-fau_light-125}{rgb}{0.9212610534409842, 0.9355324875048059, 0.954725105728566}
+\definecolor{fau-fau_light-250}{rgb}{0.8425221068819685, 0.8710649750096117, 0.9094502114571319}
+\definecolor{fau-fau_light-375}{rgb}{0.7637831603229527, 0.8065974625144176, 0.8641753171856978}
+\definecolor{fau-fau_light-625}{rgb}{0.6063052672049212, 0.6776624375240292, 0.7736255286428296}
+\definecolor{fau-fau_light}{rgb}{0.37254901960784315, 0.48627450980392156, 0.6392156862745098}
+\definecolor{fau-fau}{rgb}{0.0, 0.1843137254901961, 0.4235294117647059}
+\definecolor{fau-med-125}{rgb}{0.8745098039215686, 0.954725105728566, 0.9847443291041907}
+\definecolor{fau-med-250}{rgb}{0.7490196078431373, 0.9094502114571319, 0.9694886582083814}
+\definecolor{fau-med-375}{rgb}{0.6235294117647059, 0.8641753171856978, 0.9542329873125721}
+\definecolor{fau-med-625}{rgb}{0.37254901960784315, 0.7736255286428296, 0.9237216455209535}
+\definecolor{fau-med-dark}{rgb}{0.0, 0.3803921568627451, 0.6274509803921569}
+\definecolor{fau-med-light}{rgb}{0.37254901960784315, 0.7725490196078432, 0.9254901960784314}
+\definecolor{fau-med_dark-125}{rgb}{0.8745098039215686, 0.922245290272972, 0.9532487504805844}
+\definecolor{fau-med_dark-250}{rgb}{0.7490196078431373, 0.8444905805459438, 0.9064975009611688}
+\definecolor{fau-med_dark-375}{rgb}{0.6235294117647059, 0.7667358708189158, 0.8597462514417532}
+\definecolor{fau-med_dark-625}{rgb}{0.37254901960784315, 0.6112264513648596, 0.766243752402922}
+\definecolor{fau-med_dark}{rgb}{0.0, 0.3803921568627451, 0.6274509803921569}
+\definecolor{fau-med_light-125}{rgb}{0.9212610534409842, 0.9714571318723568, 0.9906497500961169}
+\definecolor{fau-med_light-250}{rgb}{0.8425221068819685, 0.9429142637447135, 0.9812995001922338}
+\definecolor{fau-med_light-375}{rgb}{0.7637831603229527, 0.9143713956170704, 0.9719492502883507}
+\definecolor{fau-med_light-625}{rgb}{0.6063052672049212, 0.8572856593617839, 0.9532487504805844}
+\definecolor{fau-med_light}{rgb}{0.37254901960784315, 0.7725490196078432, 0.9254901960784314}
+\definecolor{fau-med}{rgb}{0.0, 0.6392156862745098, 0.8784313725490196}
+\definecolor{fau-nat-125}{rgb}{0.9074817377931564, 0.9611226451364859, 0.8951787773933103}
+\definecolor{fau-nat-250}{rgb}{0.8149634755863129, 0.922245290272972, 0.7903575547866205}
+\definecolor{fau-nat-375}{rgb}{0.7224452133794694, 0.8833679354094579, 0.6855363321799308}
+\definecolor{fau-nat-625}{rgb}{0.5374086889657823, 0.8056132256824298, 0.4758938869665513}
+\definecolor{fau-nat-dark}{rgb}{0.13333333333333333, 0.5333333333333333, 0.2823529411764706}
+\definecolor{fau-nat-light}{rgb}{0.5372549019607843, 0.803921568627451, 0.4745098039215686}
+\definecolor{fau-nat_dark-125}{rgb}{0.8912418300653595, 0.941437908496732, 0.9099423298731257}
+\definecolor{fau-nat_dark-250}{rgb}{0.782483660130719, 0.8828758169934641, 0.8198846597462515}
+\definecolor{fau-nat_dark-375}{rgb}{0.6737254901960784, 0.8243137254901961, 0.7298269896193772}
+\definecolor{fau-nat_dark-625}{rgb}{0.4562091503267973, 0.7071895424836601, 0.5497116493656287}
+\definecolor{fau-nat_dark}{rgb}{0.13333333333333333, 0.5333333333333333, 0.2823529411764706}
+\definecolor{fau-nat_light-125}{rgb}{0.9419300269127259, 0.9753940792003076, 0.9340561322568243}
+\definecolor{fau-nat_light-250}{rgb}{0.8838600538254517, 0.9507881584006151, 0.8681122645136485}
+\definecolor{fau-nat_light-375}{rgb}{0.8257900807381776, 0.9261822376009228, 0.8021683967704729}
+\definecolor{fau-nat_light-625}{rgb}{0.7096501345636294, 0.8769703960015379, 0.6702806612841214}
+\definecolor{fau-nat_light}{rgb}{0.5372549019607843, 0.803921568627451, 0.4745098039215686}
+\definecolor{fau-nat}{rgb}{0.2627450980392157, 0.6901960784313725, 0.16470588235294117}
+\definecolor{fau-phil-125}{rgb}{1.0, 0.9650595924644367, 0.8882891195693964}
+\definecolor{fau-phil-250}{rgb}{1.0, 0.9301191849288735, 0.7765782391387928}
+\definecolor{fau-phil-375}{rgb}{1.0, 0.8951787773933103, 0.6648673587081892}
+\definecolor{fau-phil-625}{rgb}{1.0, 0.8252979623221838, 0.441445597846982}
+\definecolor{fau-phil-dark}{rgb}{0.9098039215686274, 0.4666666666666667, 0.13333333333333333}
+\definecolor{fau-phil-light}{rgb}{1.0, 0.8235294117647058, 0.44313725490196076}
+\definecolor{fau-phil_dark-125}{rgb}{0.9886812764321414, 0.9330718954248366, 0.8912418300653595}
+\definecolor{fau-phil_dark-250}{rgb}{0.977362552864283, 0.8661437908496732, 0.782483660130719}
+\definecolor{fau-phil_dark-375}{rgb}{0.9660438292964244, 0.7992156862745098, 0.6737254901960784}
+\definecolor{fau-phil_dark-625}{rgb}{0.9434063821607074, 0.6653594771241831, 0.4562091503267973}
+\definecolor{fau-phil_dark}{rgb}{0.9098039215686274, 0.4666666666666667, 0.13333333333333333}
+\definecolor{fau-phil_light-125}{rgb}{1.0, 0.9778546712802768, 0.9301191849288735}
+\definecolor{fau-phil_light-250}{rgb}{1.0, 0.9557093425605536, 0.860238369857747}
+\definecolor{fau-phil_light-375}{rgb}{1.0, 0.9335640138408304, 0.7903575547866205}
+\definecolor{fau-phil_light-625}{rgb}{1.0, 0.889273356401384, 0.6505959246443676}
+\definecolor{fau-phil_light}{rgb}{1.0, 0.8235294117647058, 0.44313725490196076}
+\definecolor{fau-phil}{rgb}{1.0, 0.7215686274509804, 0.10980392156862745}
+\definecolor{fau-tech-125}{rgb}{0.9330718954248366, 0.9527566320645905, 0.9635832372164552}
+\definecolor{fau-tech-250}{rgb}{0.8661437908496732, 0.9055132641291811, 0.9271664744329104}
+\definecolor{fau-tech-375}{rgb}{0.7992156862745098, 0.8582698961937716, 0.8907497116493657}
+\definecolor{fau-tech-625}{rgb}{0.6653594771241831, 0.7637831603229527, 0.8179161860822761}
+\definecolor{fau-tech-dark}{rgb}{0.2549019607843137, 0.4549019607843137, 0.5529411764705883}
+\definecolor{fau-tech-light}{rgb}{0.6666666666666666, 0.7647058823529411, 0.8196078431372549}
+\definecolor{fau-tech_dark-125}{rgb}{0.9064975009611688, 0.9315955401768551, 0.9438985005767013}
+\definecolor{fau-tech_dark-250}{rgb}{0.8129950019223375, 0.8631910803537101, 0.8877970011534025}
+\definecolor{fau-tech_dark-375}{rgb}{0.7194925028835064, 0.7947866205305651, 0.8316955017301038}
+\definecolor{fau-tech_dark-625}{rgb}{0.532487504805844, 0.6579777008842753, 0.7194925028835064}
+\definecolor{fau-tech_dark}{rgb}{0.2549019607843137, 0.4549019607843137, 0.5529411764705883}
+\definecolor{fau-tech_light-125}{rgb}{0.9581699346405229, 0.970472895040369, 0.977362552864283}
+\definecolor{fau-tech_light-250}{rgb}{0.9163398692810457, 0.9409457900807382, 0.954725105728566}
+\definecolor{fau-tech_light-375}{rgb}{0.8745098039215686, 0.9114186851211072, 0.9320876585928489}
+\definecolor{fau-tech_light-625}{rgb}{0.7908496732026143, 0.8523644752018454, 0.8868127643214149}
+\definecolor{fau-tech_light}{rgb}{0.6666666666666666, 0.7647058823529411, 0.8196078431372549}
+\definecolor{fau-tech}{rgb}{0.4666666666666667, 0.6235294117647059, 0.7098039215686275}
+\definecolor{fau-wiso-125}{rgb}{0.9729334871203383, 0.8823836985774702, 0.8971472510572857}
+\definecolor{fau-wiso-250}{rgb}{0.9458669742406767, 0.7647673971549405, 0.7942945021145713}
+\definecolor{fau-wiso-375}{rgb}{0.918800461361015, 0.6471510957324107, 0.691441753171857}
+\definecolor{fau-wiso-625}{rgb}{0.8646674356016917, 0.41191849288735105, 0.4857362552864283}
+\definecolor{fau-wiso-dark}{rgb}{0.592156862745098, 0.10588235294117647, 0.1843137254901961}
+\definecolor{fau-wiso-light}{rgb}{0.8627450980392157, 0.4117647058823529, 0.48627450980392156}
+\definecolor{fau-wiso_dark-125}{rgb}{0.9488196847366398, 0.8877970011534025, 0.8976393694732795}
+\definecolor{fau-wiso_dark-250}{rgb}{0.8976393694732795, 0.7755940023068051, 0.795278738946559}
+\definecolor{fau-wiso_dark-375}{rgb}{0.8464590542099193, 0.6633910034602075, 0.6929181084198386}
+\definecolor{fau-wiso_dark-625}{rgb}{0.7440984236831988, 0.4389850057670127, 0.48819684736639757}
+\definecolor{fau-wiso_dark}{rgb}{0.592156862745098, 0.10588235294117647, 0.1843137254901961}
+\definecolor{fau-wiso_light-125}{rgb}{0.9827758554402153, 0.9261822376009228, 0.9355324875048059}
+\definecolor{fau-wiso_light-250}{rgb}{0.9655517108804306, 0.8523644752018454, 0.8710649750096117}
+\definecolor{fau-wiso_light-375}{rgb}{0.948327566320646, 0.7785467128027681, 0.8065974625144176}
+\definecolor{fau-wiso_light-625}{rgb}{0.9138792772010765, 0.6309111880046137, 0.6776624375240292}
+\definecolor{fau-wiso_light}{rgb}{0.8627450980392157, 0.4117647058823529, 0.48627450980392156}
+\definecolor{fau-wiso}{rgb}{0.7843137254901961, 0.06274509803921569, 0.1803921568627451}
\ No newline at end of file
diff --git a/fau_colors/__init__.py b/fau_colors/__init__.py
index b30ab26..093f226 100644
--- a/fau_colors/__init__.py
+++ b/fau_colors/__init__.py
@@ -1,5 +1,14 @@
__version__ = "1.4.3"
-from fau_colors._utils import export_as_gpl
+from fau_colors._utils import export_as_gpl, export_as_tex
from fau_colors.fonts import register_fausans_font
-from fau_colors.v2021 import cmaps, colors, colors_all, colors_dark, colors_light, register_cmaps, unregister_cmaps
+from fau_colors.v2021 import (
+ cmaps,
+ cmaps_with_names,
+ colors,
+ colors_all,
+ colors_dark,
+ colors_light,
+ register_cmaps,
+ unregister_cmaps,
+)
diff --git a/fau_colors/_utils.py b/fau_colors/_utils.py
index 4c351f1..f26b113 100644
--- a/fau_colors/_utils.py
+++ b/fau_colors/_utils.py
@@ -45,3 +45,29 @@ def export_as_gpl(colors: Sequence[List[Tuple[float, float, float]]], file_name:
with open(Path(folder_path) / file_name, "w") as f:
f.write(HEADER)
f.write(body)
+
+
+def export_as_tex(
+ colors: Sequence[Tuple[List[str], List[Tuple[float, float, float]]]], file_name: str, folder_path: Path
+):
+ assert file_name.endswith("tex"), "`name` must end with '.tex'"
+ HEADER = (
+ f"% Tex color file defining the FAU colors.\n"
+ "% To use, you need to include the `xcolor` package (\\usepackage{xcolor} in your preamble).\n"
+ f"% Then copy this file into your project and include it with `\\input{{{file_name}}}`."
+ )
+
+ color_strings = []
+ for cmap in colors:
+ for name, rgb in zip(*cmap):
+ color_as_rgb = matplotlib.colors.to_rgb(rgb)
+ color_strings.append(
+ f"\\definecolor{{{name}}}{{rgb}}{{{color_as_rgb[0]}, {color_as_rgb[1]}, {color_as_rgb[2]}}}"
+ )
+
+ color_strings = sorted(set(color_strings))
+
+ body = "\n".join(color_strings)
+ with open(Path(folder_path) / file_name, "w") as f:
+ f.write(HEADER)
+ f.write(body)
diff --git a/fau_colors/v2021.py b/fau_colors/v2021.py
index 41c3baa..9943a85 100644
--- a/fau_colors/v2021.py
+++ b/fau_colors/v2021.py
@@ -12,6 +12,7 @@
"colors_dark",
"colors_light",
"cmaps",
+ "cmaps_with_names",
"register_cmaps",
"unregister_cmaps",
]
@@ -69,20 +70,28 @@
**{f"{k}_light": v for k, v in colors_light._asdict().items()},
)
-cmaps = _CmapsAll(
- faculties=sns.color_palette(list(colors), as_cmap=True),
- faculties_dark=sns.color_palette(list(colors_dark), as_cmap=True),
- faculties_light=sns.color_palette(list(colors_light), as_cmap=True),
- faculties_all=sns.color_palette(list(colors_all), as_cmap=True),
- **{
- k: sns.color_palette(
- custom_blend_colormap(["#FFFFFF", v], list(reversed(_LIGHTNESS_LEVELS))),
- as_cmap=True,
- )
- for k, v in colors_all._asdict().items()
- },
+
+lightened_colors = {}
+reversed_light_levels = _LIGHTNESS_LEVELS[::-1]
+lightness_name_postfix = [f"-{int(i*1000)}" if i != 1 else "" for i in reversed_light_levels]
+for name, color in colors_all._asdict().items():
+ lightened_colors[name] = (
+ [f"fau-{name}{p}" for p in lightness_name_postfix],
+ custom_blend_colormap(["#FFFFFF", color], reversed_light_levels),
+ )
+
+cmaps_with_names = _CmapsAll(
+ faculties=([f"fau-{f}" for f in colors._fields], sns.color_palette(list(colors), as_cmap=True)),
+ faculties_dark=([f"fau-{f}-dark" for f in colors_dark._fields], sns.color_palette(list(colors_dark), as_cmap=True)),
+ faculties_light=(
+ [f"fau-{f}-light" for f in colors_light._fields],
+ sns.color_palette(list(colors_light), as_cmap=True),
+ ),
+ faculties_all=([f"fau-{f}" for f in colors_all._fields], sns.color_palette(list(colors_all), as_cmap=True)),
+ **lightened_colors,
)
+cmaps = _CmapsAll(**{name: cmap[1] for name, cmap in cmaps_with_names._asdict().items()})
register_cmaps = get_register_func(cmaps)
unregister_cmaps = get_unregister_func(cmaps)