User Tools

Site Tools


latex

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
latex [2012/01/20 22:24] – [Usage] skipidarlatex [2020/12/27 20:35] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +===== 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. <code>\begin{wrapfigure}{r}{0.4\textwidth}
 +\center
 +\includegraphics[width=0.3\textwidth]{images/scratch_blockGroups.png}
 +\caption{Block groups}
 +\label{fig:blockgroups}
 +\end{wrapfigure}</code>
 +  * 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.
 +<code>
 + \scalebox{0.7}{ scalebla something }
 +</code>
 +
 +=== Centering ===
 +To center something - put it into a center environment
 +<code>
 +\begin{center}
 +to center
 +\end{center}
 +</code>
 +
 +
 +=== Define new commands ===
 +Use commands like: ** \mydef{Definition}**
 +
 +{{ http://i55.tinypic.com/308cgep.png }}
 +
 +<code>
 +% define new Definition command
 +\newcounter{mydefcount}
 +\newcommand{\mydef}[1]{ \stepcounter{mydefcount}
 + \colorbox{Orange}
 + {\large\textbf{Def \arabic{mydefcount}: #1 }}
 + \newline\newline
 +}
 +</code>
 +
 +
 +=== Temporary adjust text width===
 +Outside of environments - wrap the text by //adjustwidth//
 +<code>
 +% allows for temporary adjustment of side margins
 +\usepackage{chngpage}
 +\begin{adjustwidth}{-4cm}{-4cm}
 +...
 +\end{adjustwidth}
 +</code>
 +
 +when using //adjustwidth// together with other float environments, like figure or table - move //adjustwidth// insdide of the environment.
 +
 +<code>
 +\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}
 +</code>
 +
 +
 +=== 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.
 +
 +<code>
 +\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}
 +</code>
 +
 +As a second example a table, with a linebreak in one of the cells using **parbox**
 +<code>
 +\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}
 +}
 +</code>
 +
 +===Footmarks===
 +Footmarks are easily possible in Latex. \footnotemark[1] creates a footmark. \footnotetext[1]{text} creates a footmark text.
 +
 +<code>
 +\footnotemark \footnotetext{text}
 +</code>
 +
 +===Margin notes===
 +Use package //marginnote//. It can create margin notes even in tables.
 +<code>
 +  \usepackage{marginnote}
 +  \newcommand{\mnote}[1]{\marginnote{\color{LightBlue}#1}}
 +  \mnote{Programming Block Type}
 +</code>
 +{{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 ]]
 +<code>
 +  \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
 +</code>
 +
 +=== 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.
 +<code>
 +\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}
 +
 +</code>
 +
 +
 +
 +
 +
 +or internal links can be created by introducing an anchor:
 +<code>
 +\hypertarget{name}{text}   %anchor
 +\hyperlink{<name>}{text}   %link
 +</code>
 +
 +external links are created as 
 +<code>
 +\href{http://link.com}{text}
 +</code>
 +
 +===Minipages===
 +To align text and a picture side by side use minipages.
 +
 +<code>
 +% 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}
 +</code>
 +
 +===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**.
 +<code>
 + \usepackage[style=authoryear,
 +            bibstyle=authoryear,
 +            citestyle=authoryear,
 +            natbib=true,
 +            hyperref=true,
 +            backref=false,
 +            abbreviate=true]{biblatex}  
 +</code>
 +
 +Citations is text can be dona with the commands. I prefer **\parencite** for citations to be displayed as **[Knuth et al., 2009]**
 +<code>
 +\citet = in-text citation, as in: Morgan & Keenan (1973)
 +\citep{<cite key>} = parenthetical citation, as in: (Morgan & Keenan 1973)
 +\nocite{<cite key>} = 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.
 +</code>
 +
 +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:
 +<code>
 +\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
 +</code>
 +
 +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: 
 +<code>
 +\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}
 +</code>
 +
 +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.
 +<code>
 +\defbibfilter{online}{%
 +  \( \type{online} \)}
 +
 +\defbibfilter{offline}{%
 +  \( \not \type{online} \)}
 +
 +\printbibliography[heading=offline,filter=offline]
 +\printbibliography[heading=online,filter=online]
 +</code>