\documentclass[10pt,a4paper]{article}

% Packages
\usepackage{fancyhdr}           % For header and footer
\usepackage{multicol}           % Allows multicols in tables
\usepackage{tabularx}           % Intelligent column widths
\usepackage{tabulary}           % Used in header and footer
\usepackage{hhline}             % Border under tables
\usepackage{graphicx}           % For images
\usepackage{xcolor}             % For hex colours
%\usepackage[utf8x]{inputenc}    % For unicode character support
\usepackage[T1]{fontenc}        % Without this we get weird character replacements
\usepackage{colortbl}           % For coloured tables
\usepackage{setspace}           % For line height
\usepackage{lastpage}           % Needed for total page number
\usepackage{seqsplit}           % Splits long words.
%\usepackage{opensans}          % Can't make this work so far. Shame. Would be lovely.
\usepackage[normalem]{ulem}     % For underlining links
% Most of the following are not required for the majority
% of cheat sheets but are needed for some symbol support.
\usepackage{amsmath}            % Symbols
\usepackage{MnSymbol}           % Symbols
\usepackage{wasysym}            % Symbols
%\usepackage[english,german,french,spanish,italian]{babel}              % Languages

% Document Info
\author{fippli}
\pdfinfo{
  /Title (clojure-for-nyborjare.pdf)
  /Creator (Cheatography)
  /Author (fippli)
  /Subject (Clojure f{\"o}r nyb{\"o}rjare Cheat Sheet)
}

% Lengths and widths
\addtolength{\textwidth}{6cm}
\addtolength{\textheight}{-1cm}
\addtolength{\hoffset}{-3cm}
\addtolength{\voffset}{-2cm}
\setlength{\tabcolsep}{0.2cm} % Space between columns
\setlength{\headsep}{-12pt} % Reduce space between header and content
\setlength{\headheight}{85pt} % If less, LaTeX automatically increases it
\renewcommand{\footrulewidth}{0pt} % Remove footer line
\renewcommand{\headrulewidth}{0pt} % Remove header line
\renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit
% This two commands together give roughly
% the right line height in the tables
\renewcommand{\arraystretch}{1.3}
\onehalfspacing

% Commands
\newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour
\newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols
\newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns
\newcommand{\tn}{\tabularnewline} % Required as custom column type in use

% Font and Colours
\definecolor{HeadBackground}{HTML}{333333}
\definecolor{FootBackground}{HTML}{666666}
\definecolor{TextColor}{HTML}{333333}
\definecolor{DarkBackground}{HTML}{C0C2E4}
\definecolor{LightBackground}{HTML}{F7F7FB}
\renewcommand{\familydefault}{\sfdefault}
\color{TextColor}

% Header and Footer
\pagestyle{fancy}
\fancyhead{} % Set header to blank
\fancyfoot{} % Set footer to blank
\fancyhead[L]{
\noindent
\begin{multicols}{3}
\begin{tabulary}{5.8cm}{C}
    \SetRowColor{DarkBackground}
    \vspace{-7pt}
    {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent
        \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}}
    }
\end{tabulary}
\columnbreak
\begin{tabulary}{11cm}{L}
    \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Clojure f{\"o}r nyb{\"o}rjare Cheat Sheet}}}} \\
    \normalsize{by \textcolor{DarkBackground}{fippli} via \textcolor{DarkBackground}{\uline{cheatography.com/54515/cs/14600/}}}
\end{tabulary}
\end{multicols}}

\fancyfoot[L]{ \footnotesize
\noindent
\begin{multicols}{3}
\begin{tabulary}{5.8cm}{LL}
  \SetRowColor{FootBackground}
  \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}}  \\
  \vspace{-2pt}fippli \\
  \uline{cheatography.com/fippli} \\
  \end{tabulary}
\vfill
\columnbreak
\begin{tabulary}{5.8cm}{L}
  \SetRowColor{FootBackground}
  \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}}  \\
   \vspace{-2pt}Published 16th March, 2018.\\
   Updated 16th March, 2018.\\
   Page {\thepage} of \pageref{LastPage}.
\end{tabulary}
\vfill
\columnbreak
\begin{tabulary}{5.8cm}{L}
  \SetRowColor{FootBackground}
  \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}}  \\
  \SetRowColor{white}
  \vspace{-5pt}
  %\includegraphics[width=48px,height=48px]{dave.jpeg}
  Measure your website readability!\\
  www.readability-score.com
\end{tabulary}
\end{multicols}}




\begin{document}
\raggedright
\raggedcolumns

% Set font size to small. Switch to any value
% from this page to resize cheat sheet text:
% www.emerson.emory.edu/services/latex/latex_169.html
\footnotesize % Small font.

\begin{multicols*}{2}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Variabler och str{\"a}ngar}}  \tn
% Row 0
\SetRowColor{LightBackground}
(println "Hej v{\"a}rlden!") & ;; Skriv ut "Hej v{\"a}rlden!" \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
(def meddelande "Hej v{\"a}rlden!")\{\{nl\}\}(println meddelande) & ;; Definiera variabel\{\{nl\}\};; Skriv ut v{\"a}rdet \tn 
% Row Count 5 (+ 3)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{2.508 cm} x{1.976 cm} x{3.116 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Matematiska operatorer}}  \tn
% Row 0
\SetRowColor{LightBackground}
Addition & (+ 5 3) & 8 \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
Subtraktion & (- 5 3) & 2 \tn 
% Row Count 2 (+ 1)
% Row 2
\SetRowColor{LightBackground}
\seqsplit{Multiplikation} & (* 5 3) & 15 \tn 
% Row Count 4 (+ 2)
% Row 3
\SetRowColor{white}
Division & (/ 5 3) & 5/3 \tn 
% Row Count 5 (+ 1)
% Row 4
\SetRowColor{LightBackground}
 & (/ 5.0 3.0) & \seqsplit{1.6666666666666667} \tn 
% Row Count 7 (+ 2)
% Row 5
\SetRowColor{white}
Modulo & (mod 5 3) & 2 \tn 
% Row Count 8 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}---}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{5.6 cm} x{2.4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{J{\"a}mf{\"o}relse}}  \tn
% Row 0
\SetRowColor{LightBackground}
lika med & (= x 42) \tn 
% Row Count 1 (+ 1)
% Row 1
\SetRowColor{white}
inte lika med & (not= x 42) \tn 
% Row Count 2 (+ 1)
% Row 2
\SetRowColor{LightBackground}
st{\"o}rre {\"a}n & (\textgreater{} x 42) \tn 
% Row Count 3 (+ 1)
% Row 3
\SetRowColor{white}
st{\"o}rre {\"a}n eller lika med & (\textgreater{}= x 42) \tn 
% Row Count 4 (+ 1)
% Row 4
\SetRowColor{LightBackground}
mindre {\"a}n & (\textless{} x 42) \tn 
% Row Count 5 (+ 1)
% Row 5
\SetRowColor{white}
mindre {\"a}n eller lika med & (\textless{}= x 42) \tn 
% Row Count 6 (+ 1)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{If-satser}}  \tn
% Row 0
\SetRowColor{LightBackground}
(if (\textgreater{}= ålder 18)\{\{nl\}\}~~~~("Du får r{\"o}sta")\{\{nl\}\}~~~~("Du får inte r{\"o}sta")) & ;; Om villkoret st{\"a}mmer \{\{nl\}\};; k{\"o}r f{\"o}rsta funktionen.\{\{nl\}\};; Annars k{\"o}r andra. \tn 
% Row Count 6 (+ 6)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Listor}}  \tn
% Row 0
\SetRowColor{LightBackground}
(def v{\"a}nner \{\{nl\}\}{[} "Jonas" "Simon" "Johan" {]}) & ;; Definiera lista med str{\"a}ngar \tn 
% Row Count 3 (+ 3)
% Row 1
\SetRowColor{white}
(first v{\"a}nner) & ;; H{\"a}mta f{\"o}rsta element i listan \tn 
% Row Count 5 (+ 2)
% Row 2
\SetRowColor{LightBackground}
(last v{\"a}nner) & ;; H{\"a}mta sista element i listan \tn 
% Row Count 7 (+ 2)
% Row 3
\SetRowColor{white}
(nth v{\"a}nner n) & ;; H{\"a}mta n:te elementet \tn 
% Row Count 9 (+ 2)
% Row 4
\SetRowColor{LightBackground}
(rest v{\"a}nner) & ;; Alla element utom f{\"o}rsta \tn 
% Row Count 11 (+ 2)
% Row 5
\SetRowColor{white}
(pop v{\"a}nner) & ;; Alla element utom sista \tn 
% Row Count 13 (+ 2)
% Row 6
\SetRowColor{LightBackground}
(empty? v{\"a}nner) & ;; Kollar ifall listan {\"a}r tom \tn 
% Row Count 15 (+ 2)
% Row 7
\SetRowColor{white}
(count v{\"a}nner) & ;; Listans l{\"a}ngd \tn 
% Row Count 16 (+ 1)
% Row 8
\SetRowColor{LightBackground}
Obs! Str{\"a}ngar kan ses som lista av karakt{\"a}rer:\{\{nl\}\}(empty? "Jonas")\{\{nl\}\}(count "Jonas") & \{\{nl\}\}\{\{nl\}\} ;; Är str{\"a}ngen tom?\{\{nl\}\} ;; Hur lång {\"a}r str{\"a}ngen? \tn 
% Row Count 21 (+ 5)
% Row 9
\SetRowColor{white}
(assoc v{\"a}nner 0 "Calle") & ;; Returnerar {[}"Calle" "Simon" "Johan"{]} \tn 
% Row Count 23 (+ 2)
% Row 10
\SetRowColor{LightBackground}
(def matris {[}{[}"a"{]} {[}"b"{]} {[}"c"{]}{]})\{\{nl\}\}(assoc-in matris {[}1 0{]} "x") & ;; 2-dimensionell lista \{\{nl\}\};; Returnerar {[}{[}"a"{]} {[}"x"{]} {[}"c"{]}{]} \tn 
% Row Count 27 (+ 4)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4.24 cm} x{3.76 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Funktioner}}  \tn
% Row 0
\SetRowColor{LightBackground}
(defn h{\"a}lsa-utan-namn {[}{]} \{\{nl\}\}~~~~"Hej hej!") & ;; Definiera funktion utan parameter \tn 
% Row Count 4 (+ 4)
% Row 1
\SetRowColor{white}
(h{\"a}lsa-utan-namn) & ;; Anropa funktion utan parameter \tn 
% Row Count 6 (+ 2)
% Row 2
\SetRowColor{LightBackground}
(defn h{\"a}lsa-med-namn {[} namn {]}\{\{nl\}\}~~~~ (str "Hej" namn "!")) & ;; Definiera funktion med parameter \tn 
% Row Count 10 (+ 4)
% Row 3
\SetRowColor{white}
(h{\"a}lsa-med-namn "Filip") & ;; Anropa funktion med parameter \tn 
% Row Count 12 (+ 2)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Rekursion}}  \tn
% Row 0
\SetRowColor{LightBackground}
(defn foo {[}{]} \{\{nl\}\}~~~~(foo)) & ;; O{\"a}ndlig rekursion \tn 
% Row Count 3 (+ 3)
% Row 1
\SetRowColor{white}
(defn foo {[} tal {]}\{\{nl\}\}~~~~(if (\textgreater{} tal 0)\{\{nl\}\} ~~~~~~~~(foo (- tal 1))\{\{nl\}\} ~~~~~~~~(println "stop")))\{\{nl\}\} & ;; Ha med basfall i rekursiva funktioner\{\{nl\}\};; Basfallet avg{\"o}r om:\{\{nl\}\};; rekursionen forts{\"a}tter \{\{nl\}\};; rekursionen avbryts \tn 
% Row Count 14 (+ 11)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}

\begin{tabularx}{8.4cm}{x{3.92 cm} x{4.08 cm} }
\SetRowColor{DarkBackground}
\mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Fels{\"o}kningstips}}  \tn
% Row 0
\SetRowColor{LightBackground}
1. Stava r{\"a}tt & variabelnamn kan l{\"a}tt bli varibaelnanm \tn 
% Row Count 2 (+ 2)
% Row 1
\SetRowColor{white}
2. Kolla parenteser & Se till att varje ( matchas med en )\{\{nl\}\} Eller {[} med {]} \tn 
% Row Count 5 (+ 3)
% Row 2
\SetRowColor{LightBackground}
3. St{\"a}ngda str{\"a}ngar? & "Detta kommer inte funka. \tn 
% Row Count 7 (+ 2)
% Row 3
\SetRowColor{white}
 & Ej heller det h{\"a}r." \tn 
% Row Count 8 (+ 1)
% Row 4
\SetRowColor{LightBackground}
4. Kontrollera att funktionen anropas! & (foo) \tn 
% Row Count 10 (+ 2)
% Row 5
\SetRowColor{white}
5. Kontrollera antal parametrar & (foo {[}a b{]} ;\textless{}- Tar 2 parametrar\{\{nl\}\}~~~~~(println a )\{\{nl\}\}~~~~~(println b ))\{\{nl\}\}\{\{nl\}\}(foo "en parameter" ) ;\textless{}- Fel antal \tn 
% Row Count 19 (+ 9)
\hhline{>{\arrayrulecolor{DarkBackground}}--}
\end{tabularx}
\par\addvspace{1.3em}


% That's all folks
\end{multicols*}

\end{document}