2.6.1. PGF/TikZ

Homepage

PGF/TikZ Home (VisualTikZ Home)

CTAN Package

PGF/TikZ Package (VisualTikZ Package)

Documentation

PGF/TikZ Manual (VisualTikZ Manual)

Documentation

PGF/TikZ Introduction by Jacques Crémer

Git Repository

PGF/TikZ Master Branch

PGF is a macro package for creating graphics. It is platform- and format-independent and works together with the most important TeX backend drivers. It comes with a user-friendly syntax layer called TikZ. Its usage is similar to pstricks and the standard picture environment. PGF works with plain TeX, LaTeX, and ConTeXt. Unlike pstricks, it can produce either PS or PDF output.

pgftikz/shapesyms.tex 1, in Figure 2.2.

\begin{tikzpicture}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% My Customized Styles
%%

\tikzset{
    pics/trident/.style={
        code={
            \draw[->] (0,0) -- (45:0.5);
            \draw[->] (0,0) -- (0:{0.5/sqrt(2)});
            \draw[->] (0,0) -- (-45:0.5);
            \fill(0,0) circle[radius=2pt];
        }
    },
    >={Triangle},
    circ/.style={
        circle,
        draw,
        minimum size=1.6em,
        inner sep=1pt
    },
    truncated/.style={
        path picture={
            \draw ([xshift=-#1]path picture bounding box.north)
               -- ([xshift=-#1]path picture bounding box.south)
                  ([xshift=#1]path picture bounding box.north)
               -- ([xshift=#1]path picture bounding box.south);
        }
    },
    truncated/.default=1ex,
    Dotted/.style={% https://tex.stackexchange.com/a/101263/194703
        line cap=round,
        dash pattern=on 0pt off 4.5\pgflinewidth,
        shorten >=1ex,
        shorten <=1ex
    }
}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Drawing
%%

\begin{scope}[local bounding box=fit]
    \node[circ] (i) {$\boldsymbol{i}$};
    \draw[<-] (i)
        -- ++ (160:1.2) coordinate (aux1);
    \draw[<-] (i)
        -- ++ (-160:1.2) coordinate (aux2);
    \draw[thick] (i)
        -- ++ (20:1.2) coordinate (aux3) pic[pos=1,sloped,thin]{trident};
    \draw[thick] (i)
        -- ++ (-20:1.2) coordinate (aux4) pic[pos=1,sloped,thin]{trident};
    \path (aux1)
        -- node(Ini){In$(i)$} (aux2) (aux3)
        -- node{Out$(i)$}     (aux4) (aux3)
        ++ (0,0.7) coordinate (aux6);
    \node[below=1.1cm of Ini,circ](lc1){$\phantom{i}$};
    \draw[thick] (lc1)
        -- node[above]{$e$} node[below=0.5ex]{$U_eR_e$}
        ++ (00:1) coordinate(aux5) pic[pos=1,sloped,thin]{trident};
    \path coordinate[right=7mm of aux5] (lc2)
           node[above=0.4em of lc2,circ](lc3){$\phantom{i}$}
           node[below=0.4em of lc2,circ](lc4){$\phantom{i}$}; 
\end{scope}

\begin{scope}[on background layer]
    \node[%Network cloud
        cloud,cloud puffs=6,draw,
        fit=(fit),fill=white,inner sep=-1em,
        label=above:Network
    ] (cloud) {};
\end{scope}

\path (cloud.20)
    -- ++ (20:1.5)   node[circ](1) {$\boldsymbol{1}$}
                     coordinate[pos=0.4] (auxTR)
                     node[above=1em]{Sinks $\mathcal{T}$};
\draw[->] (cloud) -- (1);
\path (cloud.0)
    -- ++ (0:1.5)    node[circ](t) {$\boldsymbol{t}$}
                     node[right=1em]{$\boldsymbol{Y}_{\beta(t)}$};
\draw[->] (cloud) -- (t);
\path (cloud.-20)
    -- ++ (-20:1.5)  node[circ,truncated=1.1ex](T) {$\mathcal{T}$}
                     coordinate[pos=0.4] (auxBR);
\draw[->] (cloud) -- (T);

\draw[line width=1.8pt,Dotted] (auxTR) -- (auxBR);

\path (cloud.160)
    -- ++ (160:1.5)  node[circ](1') {$\boldsymbol{1}$}
                     node[above=1em]{Sources $\mathcal{T}$}
                     coordinate[pos=0.5] (auxTL) ;
\draw (1'.-20)
    -- ++ (-20:0.7)  pic[pos=1,sloped]{trident};
\path (cloud.180)
    -- ++ (180:1.7)  node[circ](s) {$\boldsymbol{s}$}
                     node[left=1em]{$Y_s$};
\draw (s.00)
    -- ++ (00:0.7)   pic[pos=1,sloped]{trident};
\path (cloud.-160)
    -- ++ (-160:1.5) node[circ,truncated=1.1ex](S) {$\mathcal{S}$}
                     coordinate[pos=0.5] (auxBL)  ;
\draw (S.20)
    -- ++ (20:0.7)  pic[pos=1,sloped]{trident};

\draw[line width=1.8pt,Dotted] (auxTL) -- (auxBL);

%%
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.2 Shapes and symbols

pgftikz/matrix.tex 2, in Figure 2.3.

\begin{tikzpicture}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% My Customized Styles
%%

\tikzset{% Environment Config
    font=\large,
    Dish/.style = {% Style for dishes
        circle, 
        draw,
        line width=1.2pt,
        minimum width=20.0mm, 
        align=center,
        text width=12.0mm,
    },
    Customer/.style = {% Style for labels in dishes nodes
        draw,
        line width=1.2pt,
        align=center,
        inner sep=3pt,
        label distance=5pt,
        rounded corners=4pt,
    },
    Decor/.style = {% Style for background decoration in matrix
        fill=black!10,
        rounded corners=3pt,
        inner sep=3pt,
    },
}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Drawing
%%

% Start drawing "the shapes..." 
\node (Dish1) [% Exelent option from Zarko's answer.
    Dish,
    label={[Customer,custA]270:A},
    label={[Customer,custB]160:B},
    label={[Customer,custC]210:C}
] {\textbfit{Dish 1}};

\node (Dish2) [
    Dish,
    on grid,
    right=25.0mm of Dish1,
    label={[Customer,custA]80:A},
    label={[Customer,custB]280:B},
%%  label={[Customer,custC]210:C}
%%  You can make comment a line to avoid execute.
] {\textbfit{Dish 2}};

\node (Dish3) [
    Dish,
    on grid,
    right=25.0mm of Dish2,
%%  label={[Customer,custA]80:A},
    label={[Customer,custB]310:B},
%%  label={[Customer,custC]210:C}
] {\textbfit{Dish 3}};

\node (L dots) [on grid, right=20.0mm of Dish3] {\Huge . . .};

% Start drawing "the matrix..." 
\matrix[% Positioning properties
    on grid,
    right=40.0mm of L dots,
    % General option for all nodes
    matrix of nodes,
    text height=2.5ex,
    text depth=0.75ex,
    text width=3.25ex,
    font=\large\bf,
    align=center,
    line width=1pt,
    column sep=10pt,
    stA/.style={% Style option for customer A
        draw=custA,
        line width=1.2pt,
        rounded corners=4pt,
    },
    stB/.style={% Style option for customer B
        draw=custB,
        line width=1.2pt,
        rounded corners=4pt,
    },
    stC/.style={% Style option for customer C
        draw=custC,
        line width=1.2pt,
        rounded corners=4pt,
    },
] (M1) {% Matrix contents  
    {~} & 1 & 2 & 3\\ [5pt] % \\[separation]
    A &    |[stA,fill]|    &   |[stA,fill]|    &   |[stA,fill=black!30]|\\ [5pt]
    B &    |[stB,fill]|    &   |[stB,fill]|    &   |[stB,fill]|\\ [5pt]
    C &    |[stC,fill]|    &   |[stC,fill=black!30]|   &   |[stC,fill=black!30]|\\ [5pt]
};

% Start drawing "the background..." 
\begin{scope}[on background layer] % Nice trick from Zarko's answer.
    \foreach \i in {1,...,4}{
        \node[Decor,fit=(M1-1-\i)(M1-4-\i)]{};
    }
\end{scope}

% Start drawing "the description..." 
\draw node[rotate=90, on grid, left=28.0mm of M1]{\textit{Customers}};
\draw node[on grid, above=25.0mm of M1]{\textit{Dishes}};

%%
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.3 Shapes absolut and in a matrix positioned

pgftikz/fancyeye.tex 3, in Figure 2.4.

\begin{tikzpicture}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% My Customized Styles
%%

[scale=0.75]
\def\topedge{(-3,0) .. controls (-2,1.8) and (2,2) .. (2.3,.3)}
\def\bottomedge{(2.3,.3) .. controls (2,-2.2) and (-2,-1.2) .. (-3,0)}
\def\eyepath{\topedge -- \bottomedge --cycle;}
\clip\eyepath;

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Drawing
%%

% Iris
\filldraw[color=orange!30!black] (-.2,.2) circle (1.4);

% Shadow on iris
\filldraw[color=orange!40!black] (-.3,-.1) circle (1.1);

% Iris lines
\foreach \a in {0,5,...,360}{
    \pgfmathparse{25+28*rnd}
    \fill[
        orange!\pgfmathresult!black,
        decoration={
            random steps,
            segment length=1pt,
            amplitude=0.3pt
        },
        decorate,
        line width=0.3pt
    ] (-.2,.2) -- ++($(\a+2*rnd:.8+0.3*rnd)$) -- ++(\a+90:3pt) -- cycle;
}

% Pupil
\fill[color=black] (-.2,.2) circle (0.5);

% Sun reflection
\fill[color=white] (90:.8) {[rotate=-30] circle (0.2 and 0.12)};

% Shadow of the eyelid
\draw[line width=2.5mm, draw opacity=0.1, line cap=round]\topedge;

% Eyelids
\draw[line width=1mm, red!40!white!80!black, line cap=round]\bottomedge;
\draw[line width=1.2mm, red!40!white!60!black, line cap=round]\topedge;

% Lacrimal
\fill[red!40!white!80!black] (-2.8,0) circle (.25);
\fill[white] (-2.7,.1) circle (.03);

%%
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.4 Drawing a constructive but realistic eye

pgftikz/fourier.tex 4, in Figure 2.5.

\begin{tikzpicture}

\begin{axis}[
    set layers=standard,
    domain=0:10,
    samples y=1,
    view={40}{20},
    hide axis,
    unit vector ratio*=2 4 2,
    xtick=\empty, ytick=\empty, ztick=\empty,
    clip=false
]
    \def\sumcurve{0}
    \pgfplotsinvokeforeach{0.5,1.5,...,5.5}{
        \draw [on layer=background, gray!20] (axis cs:0,#1,0) -- (axis cs:10,#1,0);
        \addplot3 [on layer=main, blue!30, smooth, samples=101]
            (x,#1,{2*sin(#1*x*(157))/(#1*2)});
        \addplot3 [on layer=axis foreground, very thick, blue,ycomb, samples=2]
            (10.5,#1,{1/(#1*2)});
        \xdef\sumcurve{\sumcurve + 2*sin(#1*x*(157))/(#1*2)}
    }
    \addplot3 [red, samples=200] (x,0,{\sumcurve});
    \draw[->,thick] (axis cs:0,0,0) -- (axis cs:0,0,2) node[above] {Magnitude};
    \draw[->,thick,on layer=axis foreground]  (axis cs:0,0,0) -- (axis cs:10,0,0) node[below right] {Time};
    \draw[->,thick] (axis cs:10.5,0.25,0) -- (axis cs:10.5,5.5,0) node[right] {Frequency};
\end{axis}

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.5 Time-frequency correspondence of the Fourier transformation

pgftikz/interference.tex 5, in Figure 2.6.

\begin{tikzpicture}[x={(1cm,0.5cm)},z={(0cm,1cm)},y={(1cm,-0.2cm)}]

    %repere
    \draw[->] (0,-pi,0) --++ (6,0,0) node[above right] {Frequency};
    \draw[->] (0,-pi,0) --++ (0,6.5,0) node[right] {Time};
    \draw[->] (0,-pi,0) --++ (0,0,1.5) node[above] {Magnitude};

    \draw [dashed] (1,0,0.2) --++ (4,0,0);          
    \foreach \y in {1,2,...,5}{
        %sinusoides
        \draw[blue] plot[domain = -pi:+pi, samples = 300] 
            (\y,\x,{0.2*cos(10*\y/2*(\x) r)});
        \draw[blue] (\y,-pi-0.15,0) node [left]{$f_{\y}$};
        \draw[red] (\y,0,{0.2*cos(10*\y/2*(0) r)}) node {\textbf{.}};
    }

    %sinc
    \draw[red, thick] plot[domain = -pi:+pi, samples = 2000] 
        (0,\x,{0.02*sin(50*(\x) r)/(\x))});

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.6 Show constructive interferences in the time domain

pgftikz/modula-am.tex 6, in Figure 2.7.

\begin{tikzpicture}[samples=1000, domain=0:10*pi]

	\begin{axis}[
		width=11cm, height=3.5cm,
		xtick=\empty,
		ytick=\empty,
		xlabel={\large $t$},
		ylabel={\large $x(t)$},
		xmin=0, xmax=11*pi,
		ymin=-0.5, ymax=7.5,
		axis lines = middle,
		very thick,
		trig format = rad
	]
		\addplot [no markers, smooth, thick] {2.5 + 2*sin(0.5*x)};
	\end{axis}

	\begin{axis}[
		at={(0, -2.25cm)},
		width=11cm, height=3.5cm,
		xtick=\empty,
		ytick=\empty,
		xlabel={\large $t$},
		ylabel={\textcolor{blue}{carrier wave}},
		xmin=0, xmax=11*pi,
		ymin=-3, ymax=5,
		axis lines = middle,
		very thick,
		trig format = rad
	]
		\addplot [no markers, smooth, blue, very thick] {2*sin(6*x)};
	\end{axis}

	\begin{axis}[
		at={(0, -5cm)},
		width=11cm, height=4cm,
		xtick=\empty,
		ytick=\empty,
		xlabel={\large $t$},
		ylabel={\textcolor{red}{AM wave}},
		xmin=0, xmax=11*pi,
		ymin=-10, ymax=17,
		axis lines = middle,
		very thick,
		trig format = rad
	]
		\addplot [no markers, smooth, red, very thick] {(2.5 + 2*sin(0.5*x)) * 2*sin(6*x)};
	\end{axis}
\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.7 Graphical derivation of an amplitude modulated signal

pgftikz/modula-fm.tex 7, in Figure 2.8.

\begin{tikzpicture}[samples=1000, domain=0:10]

	\begin{axis}[
		width=11cm, height=3.5cm,
		xtick=\empty,
		ytick=\empty,
		xlabel={\large $t$},
		ylabel={\large $x(t)$},
		xmin=0, xmax=11,
		ymin=-3, ymax=5,
		axis lines = middle,
		very thick,
		trig format = rad
	]
		\addplot [no markers, smooth, thick] {2*sin(2*pi*0.25*x)};
	\end{axis}

	\begin{axis}[
		at={(0, -2.25cm)},
		width=11cm, height=3.5cm,
		xtick=\empty,
		ytick=\empty,
		xlabel={\large $t$},
		ylabel={\textcolor{blue}{carrier wave}},
		xmin=0, xmax=11,
		ymin=-3, ymax=5,
		axis lines = middle,
		very thick,
		trig format = rad
	]
		\addplot [no markers, smooth, blue, very thick] {2*sin(6*pi*x)};
	\end{axis}

	\begin{axis}[
		at={(0, -4.5cm)},
		width=11cm, height=3.5cm,
		xtick=\empty,
		ytick=\empty,
		xlabel={\large $t$},
		ylabel={\textcolor{red}{FM wave}},
		xmin=0, xmax=11,
		ymin=-3, ymax=5,
		axis lines = middle,
		very thick,
		trig format = rad
	]
		\addplot expression [no markers, smooth, red, very thick] {2*sin(2*pi*3*x - 8*cos(2*pi*0.25*x))};
	\end{axis}

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.8 Graphical derivation of a frequency modulated signal

pgftikz/flowchart.tex 8, in Figure 2.9.

\begin{tikzpicture}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% My Customized Styles
%%

[node distance=2cm]% automatically spaced 2cm apart from their centres

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% My Customized Components
%%

\tikzstyle{startstop} = [% use for start and stop blocks
    rectangle,
    rounded corners=0.5cm,
    minimum width=3cm,
    minimum height=1cm,
    text centered,
    text width=3cm,
    text badly centered,
    draw=black,
    fill=red!30
]
\tikzstyle{data} = [% style for data
    trapezium,
    trapezium left angle=66,
    trapezium right angle=-66,
    minimum width=0,
    minimum height=1cm,
    inner sep=0pt,
    outer sep=0pt,
    text centered,
%   text width=1.5cm,
    text badly centered,
    draw=black,
    fill=white
]
\tikzstyle{print} = [% style for print
    tape,
    tape bend top=none,
    minimum width=3cm,
    minimum height=1cm,
    inner sep=0pt,
    outer sep=0pt,
    text centered,
%   text width=1.5cm,
    text badly centered,
    draw=black,
    fill=white
]
\tikzstyle{io} = [% specify an input or output box
    trapezium,
    trapezium left angle=66,
    trapezium right angle=-66,
    minimum width=3cm,
    minimum height=1cm,
    text centered,
    text width=1.5cm,
    text badly centered,
    draw=black,
    fill=blue!30
]
\tikzstyle{loopevent} = [% style for loop or event blocks
    chamfered rectangle,
    minimum width=3cm,
    minimum height=1cm,
    text centered,
    text width=1.5cm,
    text badly centered,
    draw=black,
    fill=yellow!30
]
\tikzstyle{process instruction} = [% style for process blocks
    rectangle,
    minimum width=3cm,
    minimum height=1cm,
    text centered,
    text width=3cm,
    text badly centered,
    draw=black,
    fill=orange!30
]
\tikzstyle{process function} = [% style for pre-defined process blocks
    rectangle split,
    rectangle split horizontal,
    rectangle split parts = 3,
    rectangle split empty part width=-8pt,
    minimum width=3cm,
    minimum height=1cm,
    text centered,
%   text width=3cm,
    text badly centered,
    draw=black,
    fill=orange!30
]
\tikzstyle{decision} = [% style for decision blocks
    diamond,
    minimum width=3cm,
    minimum height=1cm,
    text centered,
    text width=1.5cm,
    text badly centered,
    draw=black,
    fill=green!30
]
\tikzstyle{arrow} = [% style for the arrows
    thick,->,>=stealth
]

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Flowchart
%%

% our start block
\node (start) [startstop] {Start};

% add an input block in below the start block
\node (in1) [io,below of=start,yshift=-0.5cm] {Input};

% add in a process block and a decision block
\node (ins1) [process instruction,below of=in1] {Instruction 1};
% yshift should make the gap more regular
\node (dec1) [decision,below of=ins1,yshift=-0.5cm] {Decision};

% add in two process blocks coming out of the decision block
\node (ins2a) [process instruction,below of=dec1,yshift=-1.5cm] {
    Instruction 2a:
    This is a process with a very long description text within a single paragraph.
};
\node (fun2b) [process function,right of=dec1,xshift=2cm] {
    \nodepart[text width=2.5cm]{two}{Function 2b}
};

% finish off adding the blocks by adding in an output block and a stop block
\node (out1) [io,below of=ins2a,yshift=-1cm] {Output};
\node (stop) [startstop,below of=out1,yshift=-0.5cm] {Stop};

% arrows
\draw [arrow] (start) -- (in1);
\draw [arrow] (in1) -- (ins1);
\draw [arrow] (ins1) -- (dec1);
% arrows coming out of a decision block need some text (node) with anchor
\draw [arrow] (dec1) -- node[anchor=east] {yes} (ins2a);
\draw [arrow] (dec1) -- node[anchor=south] {no} (fun2b);
% final arrows
\draw [arrow] (fun2b) |- (ins1); % swap the first dash for a bar symbol which
                                 % will make the arrow go in a vertical
                                 % direction before going in a horizontal
                                 % direction
\draw [arrow] (ins2a) -- (out1);
\draw [arrow] (out1) -- (stop);

% add in a event block beside with a data block
\node (ev1) [loopevent,left of=in1,xshift=-2cm] {Event};
\node (dat1) [data,above of=ev1,yshift=-0.5cm] {CON:};
\draw [arrow] (dat1) -- (ev1);
\draw [arrow,dashed] (ev1) -- (in1);

% add in a loop block beside with a print block
\node (lp1) [loopevent,right of=out1,xshift=2cm] {Loop};
\node (prn1) [print,below of=lp1,yshift=0.5cm] {PRN:};
\draw [arrow,dashed] (out1) -- (lp1);
\draw [arrow] (lp1) -- (prn1);

%%
%%
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{tikzpicture}

%Local variables:
% coding: utf-8
% mode: text
% mode: rst
% End:
% vim: fileencoding=utf-8 filetype=tex :

Figure 2.9 Geometrical shapes in a flowchart

Footnotes

1

Indication of provenance: StackExchange (TeX): a/518945 (user194703, Dec 2 ‘19 at 15:56)

2

Indication of provenance: StackExchange (TeX): a/435856 (J Leon V., BSD, MIT, Beerware licences)

3

Indication of provenance: StackExchange (TeX): a/94087 (JLDiaz)

4

Indication of provenance: StackExchange (TeX): a/127401 (Jake)

5

Indication of provenance: StackExchange (TeX): a/162263 (Thomas)

6

Indication of provenance: Amplitude modulation (AM) (Petar Veličković, July 2016)

7

Indication of provenance: Frequency modulation (FM) (Petar Veličković, July 2016)

8

Indication of provenance: TikZ Tutorial for Beginners (Part 3)—Creating Flowcharts (Josh Cassidy, August 2013)