# Create oven symbols [closed]

How do I create small oven symbols in LaTeX using tikz and/or other packages?

The symbols I want to create looks like this: (The symbols with black background on the adjuster, all of them or as many as possible)

Drawing such symbols is very simple, here are three quickly written examples.

\documentclass[border=3mm,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[ultra thick,line cap=round]
\draw ([yshift=2mm]120:0.4) -- (120:0.4) arc(120:420:0.4) -- ++ (0,0.2)
foreach \X in {0,-30,...,-180} {(\X:0.5) -- (\X:0.75)};
\draw[rounded corners] (-0.9,-0.9) rectangle (0.9,0.6);
\end{tikzpicture}
\begin{tikzpicture}[ultra thick,line cap=round]
\draw[fill,rounded corners] foreach \X in {0,120,240}
{[rotate=\X] (0,0) to (0.5,0) to (-60:0.5) to cycle };
\draw[line width=2mm] (-0.6,-0.6) -- (0.6,-0.6);
\draw[rounded corners] (-0.9,-0.8) rectangle (0.9,0.7);
\end{tikzpicture}
\begin{tikzpicture}[ultra thick]
\draw[fill] foreach \X in {0,120,240}
{[rotate=\X] (0,0) to[out=10,in=170] (0.5,0) to[out=-10,in=-50] (-60:0.5)
to[out=130,in=-40] cycle };
\draw[rounded corners] (-0.9,-0.8) rectangle (0.9,0.8);
\end{tikzpicture}
\end{document}


It is just tedious to produce them. BTW, there are tons of packages such as fontawesome that may have one or the other symbol (I did not check), just look at texdoc symbols.

If you want to scale them, you could use the nice scalerel package.

\documentclass{article}
\usepackage{tikz}
\usepackage{scalerel}
\newcommand\OvenBulb{\scalerel*{\begin{tikzpicture}[line width=3pt,line cap=round]
\draw ([yshift=2mm]120:0.4) -- (120:0.4) arc(120:420:0.4) -- ++ (0,0.2)
foreach \X in {0,-30,...,-180} {(\X:0.5) -- (\X:0.75)};
\draw[rounded corners] (-0.9,-0.95) rectangle (0.9,0.6);
\end{tikzpicture}}{AA}}
\newcommand\OvenUnderVent{\scalerel*{\begin{tikzpicture}[line width=3pt,line cap=round]
\draw[fill,rounded corners,very thick] foreach \X in {0,120,240}
{[rotate=\X] (0,0) to (0.5,0) to (-60:0.5) to cycle };
\draw[line width=2mm] (-0.6,-0.6) -- (0.6,-0.6);
\draw[rounded corners] (-0.9,-0.85) rectangle (0.9,0.7);
\end{tikzpicture}}{AA}}
\newcommand\OvenVent{\scalerel*{\begin{tikzpicture}[line width=3pt,line cap=round]
\draw[fill,very thick] foreach \X in {0,120,240}
{[rotate=\X] (0,0) to[out=10,in=170] (0.5,0) to[out=-10,in=-50] (-60:0.5)
to[out=130,in=-40] cycle };
\draw[rounded corners] (-0.9,-0.85) rectangle (0.9,0.85);
\end{tikzpicture}}{AA}}
\begin{document}
A \OvenBulb\ B \OvenVent\ C \OvenUnderVent
\bigskip

{\Huge A \OvenBulb\ B \OvenVent\ C \OvenUnderVent}
\end{document}


A somewhat more organized way of achieving the same is to define these things as pics. Then you get these symbols with \OvenSymbol{bulb}, i.e. do not have to worry about the names of the macros too much, and have the additional benefit of using the pics inside any tikzpicture when you wish to combine them.

\documentclass{article}
\usepackage{tikz}
\tikzset{pics/oven/.cd,
bulb/.style={code={
\draw ([yshift=2mm]120:0.4) -- (120:0.4) arc(120:420:0.4) -- ++ (0,0.2)
foreach \X in {0,-30,...,-180} {(\X:0.5) -- (\X:0.75)};
\draw[rounded corners] (-0.9,-0.95) rectangle (0.9,0.6);}},
under vent/.style={code={
\draw[fill,rounded corners,very thick] foreach \X in {0,120,240}
{[rotate=\X] (0,0) to (0.5,0) to (-60:0.5) to cycle };
\draw[line width=2mm] (-0.6,-0.6) -- (0.6,-0.6);
\draw[rounded corners] (-0.9,-0.85) rectangle (0.9,0.7);}},
vent/.style={code={
\draw[fill,very thick] foreach \X in {0,120,240}
{[rotate=\X] (0,0) to[out=10,in=170] (0.5,0) to[out=-10,in=-50] (-60:0.5)
to[out=130,in=-40] cycle };
\draw[rounded corners] (-0.9,-0.85) rectangle (0.9,0.85);
}}}
\usepackage{scalerel}
\newcommand\OvenSymbol[2][]{\scalerel*{\begin{tikzpicture}[line width=3pt,line cap=round]
\pic[#1]{oven/#2};
\end{tikzpicture}}{AA}}
\begin{document}
A \OvenSymbol{bulb}\ B \OvenSymbol{vent}\ C \OvenSymbol{under vent}
\bigskip

{\Huge \OvenSymbol{bulb}\ B \OvenSymbol{vent}\ C \OvenSymbol{under vent}}
\end{document}


There is much more that one could say. I recommend reading this discussion.

• How can you make them smaller, so that they are the same size as the text? – Vebjorn Nov 18 '19 at 17:41
• @Vebjorn You can use scale=<factor> and adjust the line width by hand, or use scale line widths from tex.stackexchange.com/a/515305/194703. – user194703 Nov 18 '19 at 17:45
• I tried scale=0.1 which is a suitable size. However, the square is almost a circle then, so it doesn't look the same. It looks like a fan with two circles. – Vebjorn Nov 18 '19 at 17:50
• @Vebjorn I added an explicit example to my answer. – user194703 Nov 18 '19 at 18:02