\documentclass{article} \usepackage{tikz} \usetikzlibrary{shapes.geometric, calc} \newcommand\score[2]{% \pgfmathsetmacro\pgfxa{#1 + 1}% \tikzstyle{scorestars}=[star, star points=5, star point ratio=2.25, draw, inner sep=0.15em, anchor=outer point 3]% \begin{tikzpicture}[baseline] \foreach \i in {1, ..., #2} { \pgfmathparse{\i<=#1 ? "yellow" : "gray"} \edef\starcolor{\pgfmathresult} \draw (\i*1em, 0) node[name=star\i, scorestars, fill=\starcolor] {}; } \pgfmathparse{#1>int(#1) ? int(#1+1) : 0} \let\partstar=\pgfmathresult \ifnum\partstar>0 \pgfmathsetmacro\starpart{#1-(int(#1)} \path [clip] ($(star\partstar.outer point 3)!(star\partstar.outer point 2)!(star\partstar.outer point 4)$) rectangle ($(star\partstar.outer point 2 |- star\partstar.outer point 1)!\starpart!(star\partstar.outer point 1 -| star\partstar.outer point 5)$); \fill (\partstar*1em, 0) node[scorestars, fill=yellow] {}; \fi \end{tikzpicture}% } \begin{document} \score{0}{5} That's appalling! \small\score{2}{5} A meagre result. \Huge{\score{4.4}{5} Wooo!} \end{document}