1

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)

enter image description here

enter image description here

2
7

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 circle[radius=0.7cm];
 \draw[rounded corners] (-0.9,-0.8) rectangle (0.9,0.8);
\end{tikzpicture}
\end{document}

enter image description here

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 circle[radius=0.7cm];
 \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}

enter image description here

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 circle[radius=0.7cm];
 \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.

4
  • 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
  • 1
    @Vebjorn I added an explicit example to my answer. – user194703 Nov 18 '19 at 18:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.