import re import klammer_base import kutil class Color(klammer_base.Klammer_base): def __init__(self, K): kutil.msg() super().__init__(K) match = re.compile(r'([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)', re.S).match(self.rgb) if not match: raise fehler.KlammertextError( 'Error in color format: "{}". '.format(K.rgb) + 'Should be ",,", where the components are [0,1].') self.r, self.g, self.b = [float(c) for c in match.groups()] def html(self): result = 'rgb({},{},{})'.format(*[int(round(float(e*255))) for e in [self.r, self.g, self.b]]) #result = f"rgb({self.r},{self.g},{self.b}" if self.text: result = f'{self.text}' return result def tex(self): result = '\\color[rgb]{{{},{},{}}}'.format(self.r, self.g, self.b) if self.text: result = '{{{} {}}}'.format(result, self.text) return result def hex_color(name, hex): def c(h): return float(eval('0x' + h)) / 255.0 r = c(hex[:2]) g = c(hex[2:4]) b = c(hex[4:]) return '\\definecolor{{{}}}{{rgb}}{{{:.3f},{:.3f},{:.3f}}}'.format( name, r, g, b)