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)
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It only takes a minute to sign up.
Sign up to join this communityHow 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 circle[radius=0.7cm];
\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 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}
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.
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
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