18

I'd like to implement icons like those in the figure below to denote, for instance, the level of satisfaction of a certain requirement.

enter image description here

I didn't find such icons in any icon pack. I also tried \mathrel but the circles are not perfectly concentric at the end. How can i solve?

Moreover, is there a way to create them deciding the ratio between the black circle and the white one?

Thank you in advance.

1
  • Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format.
    – CarLaTeX
    Commented Sep 28, 2017 at 16:07

3 Answers 3

12

Package-free approach:

mwe

\documentclass{article}
\setlength{\unitlength}{1em}
\newcommand\like[1]{\begin{picture}(1,1)
\ifnum0=#1\put(.5,.35){\circle{1}}\else
\ifnum10=#1\put(.5,.35){\circle*{1}}\else
\put(.5,.35){\circle{1}}\put(.5,.35){\circle*{.#1}}
\fi\fi\end{picture}}

\begin{document}
I hate it \like{0} \like{1} \like{2} \like{3} \like{4} \like{5} 
\like{6} \like{7} \like{8} \like{9} \like{10}  I love it
\end{document}
21

How about this:

The command \satisfaction takes one parameter, which has to be a number from 0 to 4. And with the optional parameter, the color can be set. It scales with fontsize. And without optional parameter it takes the surrounding color.

enter image description here

The code:

\documentclass[10pt,a4paper]{article}
\usepackage{tikz}

\newdimen\satlevel
\newdimen\satdiameter
\newcommand{\satisfaction}[2][]{%
    \satdiameter=2.5ex\relax
    \ifcase#2\relax
        \satlevel=0pt\relax
    \or
        \satlevel=0.125\satdiameter
    \or
        \satlevel=0.25\satdiameter
    \or
        \satlevel=0.375\satdiameter
    \or
        \satlevel=0.5\satdiameter
    \fi
    \tikz[baseline=-0.3\satdiameter]{%
        \draw[#1] (0,0) circle (0.5\satdiameter);
        \fill[#1] (0,0) circle (\satlevel);
    }%
}
\begin{document}
M \satisfaction{0} M \satisfaction{1} M \satisfaction{2} M \satisfaction{3} M \satisfaction{4} M

\vspace{2ex}
M \satisfaction[blue]{0} M \satisfaction[blue]{1} M \satisfaction[blue]{2} M \satisfaction[blue]{3} M \satisfaction[blue]{4} M

\vspace{2ex}
{\Huge M \satisfaction[red]{0} M \satisfaction[red]{1} M \satisfaction[red]{2} M \satisfaction[red]{3} M \satisfaction[red]{4} M}

\vspace{2ex}
{\scriptsize M \satisfaction[cyan]{0} M \satisfaction[cyan]{1} M \satisfaction[cyan]{2} M \satisfaction[cyan]{3} M \satisfaction[cyan]{4} M}

\vspace{2ex}
\textcolor{green}{M \satisfaction{0} M \satisfaction{1} M \satisfaction{2} M \satisfaction{3} M \satisfaction{4} M}

\end{document}
0
9

A pstricks solution. I define 5 commands with an optional argument, the radius of the outer circle, which defaults to 0.75 em. You can change it via the key satradius. The colour (default: black) is changed with \psset{linecolor=some_colour}:

\documentclass[border=3pt, x11names]{standalone}
\usepackage{pstricks-add, cellspace}
\setlength{\cellspacetoplimit}{2pt}
\setlength{\cellspacebottomlimit}{2pt}
%
\usepackage{auto-pst-pdf}
\newlength{\satradius}
\makeatletter
\define@key[psset]{pstricks}{satradius}[0.75em]{\setlength{\satradius}{#1}}
\makeatother
\newcommand{\vlsat}{\raisebox{-0.4\height}{\begin{pspicture}\pscircle(0,0){\satradius}\end{pspicture}}}
\newcommand{\lsat}{\raisebox{-0.4\height}{\begin{pspicture}\pscircle(0,0){\satradius}\psscalebox{0.3}{\qdisk(0,0){\satradius}}\end{pspicture}}}
\newcommand{\msat}{\raisebox{-0.4\height}{\begin{pspicture}\pscircle(0,0){\satradius}\psscalebox{0.5}{\qdisk(0,0){\satradius}}\end{pspicture}}}
\newcommand{\hsat}{\raisebox{-0.4\height}{\begin{pspicture}\pscircle(0,0){\satradius}\psscalebox{0.75}{\qdisk(0,0){\satradius}}\end{pspicture}}}
\newcommand{\vhsat}{\raisebox{-0.4\height}{\begin{pspicture}\qdisk(0,0){\satradius}\end{pspicture}}}

\begin{document}

\psset{linecolor=Coral2, satradius=0.67em}
\begin{tabular}{|Sc|l|}%
    \hline
    \vlsat & Very low \\[2pt]
    \hline
    \lsat
           & Low \\[2pt]
    \hline
    \msat & Medium \\[2pt]
    \hline
    \hsat & High \\[2pt]
    \hline
    \vhsat & Very High \\[2pt]
    \hline
\end{tabular}

\end{document} 

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .