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
latex [2012/01/30 10:28] 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>