\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

Typeset all of your papers using latex.


Installation

No Install

Use Overleaf to create latex documents in a web browser.

Partial Install

Download MikTex. It includes the TeXworks editor and will download packages as you use them. This will not take up as much disk space as a full install.

Full Install

Windows

Download TexLive. This is several gigabytes since it includes all the popular LaTex packages and takes a while to install. You'll also need an editor. I recommend installing Atom with the following packages:

  • latex for calling the TexLive compiler
  • language-latex for syntax highlighting
  • pdf-view for viewing the compiled pdf.

Linux

sudo apt install texlive-full

Compile tex documents with

pdflatex [mydocument.tex]

Usage

Fancy Math Font

 

See this answer.

% Use mathbb for the set of reals R or the set of complex numbers C
% Requires amsfonts
\mathbb{R}

Spaces

See Reference
 

Spaces in mathematical mode.
 
\begin{align*}
f(x) =& x^2\! +3x\! +2 \\
f(x) =& x^2+3x+2 \\
f(x) =& x^2\, +3x\, +2 \\
f(x) =& x^2\: +3x\: +2 \\
f(x) =& x^2\; +3x\; +2 \\
f(x) =& x^2\ +3x\ +2 \\
f(x) =& x^2\quad +3x\quad +2 \\
f(x) =& x^2\qquad +3x\qquad +2
\end{align*}

Units

For spacing between elements, use \hspace or \vspace.

\hspace[4mm]

Units in Latex
You can specify spacing in pt, mm, cm, ex, em, bp, dd, pc, in

Indents

Section

\hspace*{5mm}\begin{minipage}{\dimexpr\textwidth-5mm}
   Indented Section
\end{minipage}

Programming

Latex is a turing complete language.
You can use if statements and for loops in latex.

Custom Commands

You can define your own commands using \newcommand

Custom Operators

Latex packages like amsmath come with operators such as \sin and \log.
To get normal text for custom functions like arcsin, use \operatorname{arcsin}.
Below are some potentially useful math operators.

\DeclareMathOperator{\Tr}{Tr}
\DeclareMathOperator{\VCdim}{VCdim}
\DeclareMathOperator{\sign}{sign}
\DeclareMathOperator{\rank}{rank}
\DeclareMathOperator{\argmin}{argmin}
\DeclareMathOperator{\argmax}{argmax}

Enumerate

Enumerate is used to make lists

Change the label

Reference
Add the option for the labels:

  • label=(\alph*) for letters
  • label=(\Alph*) for upper-case letters
  • label=(\roman*) for roman numerals.
  • label=(\arabic*) for numbers
Example
\usepackage{enumitem}
#...
\begin{enumerate}[label=(\alph*)]
\item an apple
\item a banana
\item a carrot
\item a durian
\end{enumerate}

Useful Commands

A list of potentially useful commands

\newcommand{\degree}{\ensuremath{^{\circ}} }
\newcommand{\etal}{{\em et al. }}

Bibliography (Bibtex)

How to do references in Latex.
Bibtex Examples

Citations

Use \cite or some variant to cite references.
Natbib reference sheet

# Defaults to author-year citations
\usepackage{natbib}
# For numerical citations
\usepackage[numbers]{natbib}

# If using author-year citations
\citet{jon90} ⇒ Jones et al. (1990)
\citep{jon90} ⇒ (Jones et al., 1990)
\citep[see][]{jon90} ⇒ (see Jones et al., 1990)

# If using numerical citations
\citet{jon90} ⇒ Jones et al. [21]
\citep{jon90} ⇒ [21]
\citep[see][]{jon90} ⇒ [see 21]

Case of Titles

If you do not want lower case titles, you can change your .bst file by commenting out the portion which alters the case.

FUNCTION {format.title}
{ 
  %title empty$
  %  { "" }
  %  { title "t" change.case$ }
  %if$
  title
  %add.link
}

Tikz

Tikz is used to draw graphs and other shapes

Drawing over images

\begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0) {
    \includegraphics[width=.9\linewidth]{my_image.png}
    };<br />
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
        \draw[black,ultra thick,rounded corners] (0.0,0.1) rectangle (0.3,0.5);
        \draw[red,ultra thick,rounded corners] (0.5,0.1) rectangle (0.8,0.5);
        % \draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1);
        % \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
        % \foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; }
    \end{scope}
\end{tikzpicture}

algorithm2e

\usepackage[linesnumbered,ruled]{algorithm2e}

Resources