Integrating TikZ Pictures in a LaTeX environment
May 27, 2020
I provide some examples of complete LaTeX code to produce documents that include TikZ figures
Minimal Working Example #
A simple document with the minimal class: view output from pdflatex here
\documentclass{standalone}
% --------------------------------------------------------
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{tikz}
\usepackage{pgfplots}
% --------------------------------------------------------
\usetikzlibrary{shapes, arrows}
\usetikzlibrary{positioning}
\usetikzlibrary{matrix}
\usetikzlibrary{plotmarks}
\usetikzlibrary{arrows.meta}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
% --------------------------------------------------------
\begin{document}
% Definition of blocks:
\tikzset{%
block/.style = {draw, thick, rectangle, minimum height = 3em,
minimum width = 3em},
sum/.style = {draw, circle, node distance = 2cm}, % Adder
input/.style = {coordinate}, % Input
output/.style = {coordinate}, % Output
>={Latex[width=2mm,length=2mm]},
% Specifications for style of nodes:
base/.style = {rectangle, rounded corners, draw=black,
minimum width=4cm, minimum height=1cm,
text centered, font=\sffamily},
activityStarts/.style = {base, fill=blue!30},
startstop/.style = {base, fill=red!30},
activityRuns/.style = {base, fill=green!30},
process/.style = {base, minimum width=2.5cm, fill=orange!15,
font=\ttfamily}
}
\begin{tikzpicture}[
node distance=2cm,
every node/.style={fill=white, font=\sffamily},
align=center
]
% Specification of nodes (position, etc.)
\node (start) [activityStarts] {US Investor at $t=0$};
\node (borrowing0) [process, above=2.5cm of start] {US Bank};
\node (exchange0) [process, below=2.5cm of start] {Exchange Counterparty};
\node (lending01) [process, right=3.5cm of start] {Japanese Investor};
\node (end) [activityStarts, right=3.5cm of lending01] {US Investor at $t=1$};
\node (borrowing1) [process, above=2.5cm of end] {US Bank};
\node (exchange1) [process, below=2.5cm of end] {Exchange Counterparty};
% Link the nodes
\draw[->](borrowing0) -- node[]{Borrowing in USD} (start);
\draw[->](start) -- node[]{Buy Yen at rate $x_0$\\ buy for $\$1$ receive $\text{\textyen}\ 1 / x_0$}(exchange0);
\draw[->](start) -- node[text width = 2.4cm]{Lend $1/x_0$ Yens at $t=0$} (lending01);
\draw[->](lending01) -- node[text width = 2.4cm]{Receive Yens: $\frac{1}{x_0} \cdot (1+r^{\text{\textyen}})$} (end);
\draw[->](end) -- node[]{Repay USD loan at $t=1$ for \\$1+r$} (borrowing1);
\draw[->](exchange1) -- node[]{Exchange the \textyen \ investment in USD\\ $\frac{1}{x_0} \cdot (1+r^{\text{\textyen}}) \cdot F_{0,1}$} (end);
\end{tikzpicture}
\end{document}
Standard Article Class #
A document with the article class: view output from pdflatex here
\documentclass{article}
% --------------------------------------------------------
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{pdflscape}
\usepackage{tikz}
\usepackage{pgfplots}
% --------------------------------------------------------
\usetikzlibrary{shapes, arrows}
\usetikzlibrary{positioning}
\usetikzlibrary{matrix}
\usetikzlibrary{plotmarks}
\usetikzlibrary{arrows.meta}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
% --------------------------------------------------------
\begin{document}
% Definition of blocks:
\tikzset{%
block/.style = {draw, thick, rectangle, minimum height = 3em,
minimum width = 3em},
sum/.style = {draw, circle, node distance = 2cm}, % Adder
input/.style = {coordinate}, % Input
output/.style = {coordinate}, % Output
>={Latex[width=2mm,length=2mm]},
% Specifications for style of nodes:
base/.style = {rectangle, rounded corners, draw=black,
minimum width=4cm, minimum height=1cm,
text centered, font=\sffamily},
activityStarts/.style = {base, fill=blue!30},
startstop/.style = {base, fill=red!30},
activityRuns/.style = {base, fill=green!30},
process/.style = {base, minimum width=2.5cm, fill=orange!15,
font=\ttfamily}
}
\begin{landscape}
\begin{figure}
\begin{tikzpicture}[
node distance=2cm,
every node/.style={fill=white, font=\sffamily},
align=center
]
% Specification of nodes (position, etc.)
\node (start) [activityStarts] {US Investor at $t=0$};
\node (borrowing0) [process, above=2.5cm of start] {US Bank};
\node (exchange0) [process, below=2.5cm of start] {Exchange Counterparty};
\node (lending01) [process, right=3.5cm of start] {Japanese Investor};
\node (end) [activityStarts, right=3.5cm of lending01] {US Investor at $t=1$};
\node (borrowing1) [process, above=2.5cm of end] {US Bank};
\node (exchange1) [process, below=2.5cm of end] {Exchange Counterparty};
% Link the nodes
\draw[->](borrowing0) -- node[]{Borrowing in USD} (start);
\draw[->](start) -- node[]{Buy Yen at rate $x_0$\\ buy for $\$1$ receive $\text{\textyen}\ 1 / x_0$}(exchange0);
\draw[->](start) -- node[text width = 2.4cm]{Lend $1/x_0$ Yens at $t=0$} (lending01);
\draw[->](lending01) -- node[text width = 2.4cm]{Receive Yens: $\frac{1}{x_0} \cdot (1+r^{\text{\textyen}})$} (end);
\draw[->](end) -- node[]{Repay USD loan at $t=1$ for \\$1+r$} (borrowing1);
\draw[->](exchange1) -- node[]{Exchange the \textyen \ investment in USD\\ $\frac{1}{x_0} \cdot (1+r^{\text{\textyen}}) \cdot F_{0,1}$} (end);
\end{tikzpicture}
\end{figure}
\end{landscape}
\end{document}