Latex

Both declarative (rule-based) and imperative specification of document display is possible.

A document element is defined to either be a command and or an environment - which are distinguished based on the input they accept.

Common commands, environments

Common commands include section, subsection, paragraph, subsubsection, title, author. Common environments include list (itemize and enumerate), tabular etc..

Templates

Rules which map commands and environments to imperative display rules are collected together in templates. These rules may be overriden. Every document must be based on some template.

Common templates include: report, article.

Packages

Often display rules may be redefined in files called packages, which may be used/ invoked using usepackage command.

Page setup

microtype for full justification of text. fullpage for using the maximum possible printable area.

List compaction

enumitem and shortlst make lists more configurable.

Bibliography

This part of the document is often dynamically generated based on citations used and a bibliography file. In this process, aux and bbl files are generated and used. \exclaim{In case of error, try deleting these files!}

Two things affect document display here: citation style and bibliographystyle. These are usually specified using packages, possibly followed by minor redefinitions of commands.

Packages

natbib is configurable and popular.

(Re)definition

Commands can be defined using: \newcommand{cmd}[args]{def}.

Environments can be defined using \newenvironment{env}[args][default]{begdef}{enddef}.

Older definitions can be overridden using renewcommand and renewenvironment.

Imperative display commands

textit, textbf.

center, raggedleft, raggedright.

Font size

In order: tiny scriptsize footnotesize small normalsize large Large LARGE huge Huge .

Using them resets the font size till the end of the current text block.

Display parameters

They can be set using addtolength and setlength commands.

Common parameters include textwidth, oddsidemargin, evensidemargin, topsidemargin, parskip.

One can define colors using: \definecolor{mygrey}{gray}{.95}.

Space management

\vspace{-3ex} sets the vertical spacing to a third the size of ‘x’. This should ideally be used towards the end of the document.

hfill and vfill are used to fill spaces.

Drawing figures

pstricks. tikz: good for drawing graphs with nodes and edges, but not as advanced as pstricks.