===== Latex =====
====Configuration====
===Installation===
Unknown Errors are often caused by disabled automatic package installation.
They can be enabled through the Settings Menu, which is avaiable under:
* …MiKTeX x.x\miktex\bin\mo_admin.exe or through
* Start Menu->Program Files->MiKTeX 2.9->Maintenance->Settings
In the settings menu you should set **Install Missing Packages On-The-Fly -> YES**
{{ http://img822.imageshack.us/img822/7926/latexenableautoinstall.png }}
====Usage====
=== Things to remember ===
* When referencing an image write \caption before \label. r the \label or you will get **??** instead of a reference. \begin{wrapfigure}{r}{0.4\textwidth}
\center
\includegraphics[width=0.3\textwidth]{images/scratch_blockGroups.png}
\caption{Block groups}
\label{fig:blockgroups}
\end{wrapfigure}
* Use \clearpage and \cleardoublepage to start a new page. Theses commands really do begin a new page, drawing all pics before this command
=== Reference ===
* {{ http://www.tug.org/utilities/plain/cseq.html | TeX: Reference and Examples by David Bausum complete reference of TeX primitives (\hbox, etc)}}
* {{ http://www.artofproblemsolving.com/LaTeX/AoPS_L_About.php | LaTeX at Art of Problem Solving good summary information and symbol reference }}
* {{ http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf | The Comprehensive LaTeX Symbol List PDF with all LaTeX symbols including obscure ones }}
=== Scaling ===
To scale something - put it into a box.
\scalebox{0.7}{ scalebla something }
=== Centering ===
To center something - put it into a center environment
\begin{center}
to center
\end{center}
=== Define new commands ===
Use commands like: ** \mydef{Definition}**
{{ http://i55.tinypic.com/308cgep.png }}
% define new Definition command
\newcounter{mydefcount}
\newcommand{\mydef}[1]{ \stepcounter{mydefcount}
\colorbox{Orange}
{\large\textbf{Def \arabic{mydefcount}: #1 }}
\newline\newline
}
=== Temporary adjust text width===
Outside of environments - wrap the text by //adjustwidth//
% allows for temporary adjustment of side margins
\usepackage{chngpage}
\begin{adjustwidth}{-4cm}{-4cm}
...
\end{adjustwidth}
when using //adjustwidth// together with other float environments, like figure or table - move //adjustwidth// insdide of the environment.
\begin{table}[h!b!p!]
%temporary change textwidth
\begin{adjustwidth}{-4cm}{-4cm}% adjust the L and R margins by 1 inch
\begin{tabular}{ *{2}{l} }
CellOne & CellTwo \\
CellThree & CellFour \\
\end{tabular}
\end{adjustwidth}
\end{table}
=== Table ===
Table contains of two environments //table// and //tabular//. The first contais the second and can contain table settings.
Here a table, which is wider, than the textwidth.
\begin{table}[h!b!p!]
%temporary change textwidth
\begin{adjustwidth}{-4cm}{-4cm}% adjust the L and R margins by 1 inch
%odd-even row coloring
\rowcolors{2}{gray!10}{}
%centering the table
\begin{center}
%scaling the table
\scalebox{0.8}{
%tabular is INSIDE of all environments, table is OUTSIDE
\begin{tabular}{ *{2}{l} }
CellOne & CellTwo \\
CellThree & CellFour \\
\end{tabular}
}
\end{center}
\caption{Software key size related papers }
\label{tab:keysize}
\end{adjustwidth}
\end{table}
As a second example a table, with a linebreak in one of the cells using **parbox**
\begin{table}[!h]
%odd-even row coloring
\rowcolors{2}{gray!10}{}
%centering the table
\begin{center}
%scaling the table
\scalebox{0.70}{
%tabular is INSIDE of all environments, table is OUTSIDE
\begin{tabular}{ l p{3cm} p{4cm} l l l }
\multicolumn{1}{c}{Year} &
\multicolumn{1}{c}{Task} &
\hline
1990 & \parbox[t]{4cm}{First line \\ second} \\
1991 & \parbox[t]{4cm}{Again a line \\ second} \\
\end{tabular}
}
\end{center}
\caption{Software key size related papers }
\label{tab:keysize}
\end{table}
}
===Footmarks===
Footmarks are easily possible in Latex. \footnotemark[1] creates a footmark. \footnotetext[1]{text} creates a footmark text.
\footnotemark \footnotetext{text}
===Margin notes===
Use package //marginnote//. It can create margin notes even in tables.
\usepackage{marginnote}
\newcommand{\mnote}[1]{\marginnote{\color{LightBlue}#1}}
\mnote{Programming Block Type}
{{http://i55.tinypic.com/4sbm1w.png}}
=== Site geometry ===
Use package //geometry//. It can resize the sites margins, headers, footers. The manual is [[ ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/geometry/geometry.pdf|here ]]
\usepackage{geometry}
\newgeometry{top=0in,bottom=0in,right=0in,left=0in}
\pagestyle{empty} %hides all titles and page numbers
\fancyheadoffset[LO,RE]{0in}
\fancyfootoffset[RE]{0in}
%do something e.g. draw a picture
\begin{figure}[htb]
\center{\includegraphics[height=28cm]
{images/uml.png}}
\end{figure}
\restoregeometry
=== Hyperlinks ===
Hyperlinks are imported by the package //hyperref//. The manual is available {{http://www.pa.op.dlr.de/~PatrickJoeckel/pdflatex/hyperref.pdf|here}} \\
Internal links can be created by referencing a figure, section, table, bibtexentry etc.
\label{name} %anchor can be inserted into environments, commands, figures, other objects with counters
\pageref{fig:example} %prints the number of the page where the figure is located, with a link behind it.
\ref{bibkey} %prints the name of the author of the bibtex entry
%define a command with a counter and 2 parameters and build in label to be passed as a parameter
\newcounter{mydefcount} % define new counter
\newcommand{\mydef}[2]{ \stepcounter{mydefcount}
\colorbox{red}
{\large\textbf{\label{#2}Def \arabic{mydefcount}: #1 }}
\newline\newline
}
%use the command
\mydef{Definition text}{labelname}
%reference the definition
\ref{labelname}
\pageref{labelname}
or internal links can be created by introducing an anchor:
\hypertarget{name}{text} %anchor
\hyperlink{}{text} %link
external links are created as
\href{http://link.com}{text}
===Minipages===
To align text and a picture side by side use minipages.
% Subclasses of ShapeWithSlotsHead
\begin{figure}[ht]
\begin{minipage}[b]{0.5\linewidth}
Text here
\end{minipage}
\hspace{0.5cm}
\begin{minipage}[b]{0.5\linewidth}
\centering
\includegraphics[scale=1]{picture.png}
\caption{default}
\label{fig:figure2}
\end{minipage}
\end{figure}
===Citation===
The package biblatex is required for citation. It can be loaded with a bunch of options. [[ftp://www.ctan.org/ctan/macros/latex/exptl/biblatex/doc/biblatex.pdf|Here]] is a detailed manual to biblatex.
Authoryear and abbreviate make citations look like **Knuth et al., 2009**.
\usepackage[style=authoryear,
bibstyle=authoryear,
citestyle=authoryear,
natbib=true,
hyperref=true,
backref=false,
abbreviate=true]{biblatex}
Citations is text can be dona with the commands. I prefer **\parencite** for citations to be displayed as **[Knuth et al., 2009]**
\citet = in-text citation, as in: Morgan & Keenan (1973)
\citep{} = parenthetical citation, as in: (Morgan & Keenan 1973)
\nocite{} = adds nothing to the text, but lets bibtex know that you want a citation included in the bibliography, in the document you may type: "As was shown in Morgan & Keenan (1973)\nocite{MK73} ..."
\parencite = citation in squared parentheses [Morgan et al. 1973]
\parencite* = the star makes all authors to be listed as [Morgan,Keenan and Resnick 1973] instead of writing et.al.
Unfortunately biblatex links only the year, not the whole entry. For the whole entry to be a link to look like that:
{{ http://i54.tinypic.com/sfkrjb.png }} add the following:
\makeatletter
%Works without the last bracket ;-)
\let\abx@macro@citeOrig\abx@macro@cite
\renewbibmacro{cite}{%
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@citeOrig%
}%
}
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{%
\bibhyperref{%
\let\bibhyperref\relax\relax%
\abx@macro@textciteOrig%
}%
}%
\makeatother
At least the literature references are printed with the command **\printbibliography**.
To easily find the referenced literature it should start with the abbreviation in parentheses, as the citation in text does.
{{ http://i55.tinypic.com/2rx90nb.png }}
For that use the following snippet:
\newcounter{mymaxcitenames}
\AtBeginDocument{%
\setcounter{mymaxcitenames}{\value{maxnames}}%
}
\renewbibmacro*{begentry}{%
\printtext[brackets]{%
\begingroup
\defcounter{maxnames}{\value{mymaxcitenames}}%
\printnames{labelname}%
\setunit{\nameyeardelim}%
\printfield{labelyear}%
\printfield{extrayear}%
\endgroup
}%
\quad% or \addspace
}
\DeclareNameAlias{sortname}{first-last}
Sometimes it is useful to display the literature in separate groups. A filter can be used for that.
Here is an example how to filter out the "online" literature. Than the filter can be passed to the **\printbibliography** command to print
first all non-online literature and then all online literature.
\defbibfilter{online}{%
\( \type{online} \)}
\defbibfilter{offline}{%
\( \not \type{online} \)}
\printbibliography[heading=offline,filter=offline]
\printbibliography[heading=online,filter=online]