Spaces
LaTeX has many ways to produce white (or filled) space.

\hspace
Synopsis:

\hspace{length}
\hspace*{length}

Add the horizontal space given by length. The length is a rubber length, that is, it may contain a plus or minus component, in any unit that LaTeX understands (see Lengths).
This command can add both positive and negative space; adding negative space is like backspacing.
Normally when TeX breaks a paragraph into lines it discards white space (glues and kerns) that would come at the start of a line, so you get an inter-word space or a line break between words but not both. This command’s starred version \hspace*{..} puts a non-discardable invisible item in front of the space, so the space appears in the output.
This example make a one-line paragraph that puts ‘Name:’ an inch from the right margin.

\noindent\makebox[\linewidth]{\hspace{\fill}Name:\hspace{1in}}

\hfill
Produce a rubber length which has no natural space but can stretch horizontally as far as needed (see Lengths).
The command \hfill is equivalent to \hspace{\fill}. For space that does not disappear at line breaks use \hspace*{\fill} instead (see \hspace).

\(SPACE) and \@
Mark a punctuation character, typically a period, as either ending a sentence or as ending an abbreviation.
By default, in justifying a line LaTeX adjusts the space after a sentence-ending period (or a question mark, exclamation point, comma, or colon) more than the space between words (see \frenchspacing). LaTeX assumes that the period ends a sentence unless it is preceded by a capital letter, in which case it takes that period for part of an abbreviation. Note that if a sentence-ending period is immediately followed by a right parenthesis or bracket, or right single or double quote, then the intersentence space follows that parenthesis or quote.
If you have a period ending an abbreviation whose last letter is not a capital letter, and that abbreviation is not the last word in the sentence, then follow that period with a backslash-space (\ ) or a tie (~). Examples are Nat.\ Acad.\ Science, and Mr.~Bean, and (manure, etc.)\ for sale.
For other use of \ , see also \(SPACE) after CS.
In the opposite situation, if you have a capital letter followed by a period that ends the sentence, then put \@ on the left of that period. For example, book by the MAA\@. will have intersentence spacing after the period.
In contrast, putting \@ on the right of a period tells TeX that the period does not end the sentence. In the example reserved words (if, then, etc.\@) are different, TeX will put interword space after the closing parenthesis (note that \@ is before the parenthesis).

\ after a control sequence
The \ command is often used after control sequences to keep them from gobbling the space that follows, as in \TeX\ is a nice system. And, under normal circumstances \tab and \newline are equivalent to \ . For other use of \ , see also \(SPACE) and \@.
Some people prefer to use {} for the same purpose, as in \TeX{} is a nice system. This has the advantage that you can always write it the same way, like \TeX{}, whether it is followed by a space or by a punctuation mark. Please compare:

\TeX\ is a nice system. \TeX, a nice system.

\TeX{} is a nice system. \TeX{}, a nice system.

When you define user commands (see \newcommand & \renewcommand) you can prevent the space gobbling after the command by using the package xspace and inserting \xspace at the end of the definition For instance:

\documentclass{minimal}
\usepackage{xspace}
\newcommand*{\Loup}{Grand Cric\xspace}
\begin{document}
Que le \Loup me croque !
\end{document}

A quick hack to use \xspace for existing command is as follows:

\documentclass{minimal}
\usepackage{xspace}
\newcommand*{\SansXspaceTeX}{}
\let\SansXspaceTeX\TeX
\renewcommand{\TeX}{\SansXspaceTeX\xspace}
\begin{document}
\TeX is a nice system.
\end{document}

\frenchspacing
This declaration (from Plain TeX) causes LaTeX to treat intersentence spacing in the same way as interword spacing.
In justifying the text in a line, some typographic traditions, including English, prefer to adjust the space between sentences (or after other punctuation marks) more than the space between words. Following this declaration, all spaces are instead treated equally.
Revert to the default behavior by declaring \nonfrenchspacing.

\thinspace: Insert 1/6em
\thinspace produces an unbreakable and unstretchable space that is 1/6 of an em. This is the proper space to use between nested quotes, as in ’”.

\/: Insert italic correction
The \/ command produces an italic correction. This is a small space defined by the font designer for a given character, to avoid the character colliding with whatever follows. The italic f character typically has a large italic correction value.
If the following character is a period or comma, it’s not necessary to insert an italic correction, since those punctuation symbols have a very small height. However, with semicolons or colons, as well as normal letters, it can help. Compare f: f; (in the TeX output, the ‘f’s are nicely separated) with f: f;.
When changing fonts with commands such as \textit{italic text} or {\itshape italic text}, LaTeX will automatically insert an italic correction if appropriate (see Font styles).
Despite the name, roman characters can also have an italic correction. Compare pdfTeX (in the TeX output, there is a small space after the ‘f’) with pdfTeX.
There is no concept of italic correction in math mode; spacing is done in a different way.

\hrulefill \dotfill
Produce an infinite rubber length (see Lengths) filled with a horizontal rule (that is, a line) or with dots, instead of just white space.
When placed between blank lines this example creates a paragraph that is left and right justified, where the space in the middle is filled with evenly spaced dots.

\noindent Jack Aubrey\dotfill Melbury Lodge

To make the rule or dots go to the line’s end use \null at the start or end.
To change the rule’s thickness, copy the definition and adjust it, as with \renewcommand{\hrulefill}{\leavevmode\leaders\hrule height 1pt\hfill\kern\z@}, which changes the default thickness of 0.4pt to 1pt. Similarly, adjust the dot spacing as with \renewcommand{\dotfill}{\leavevmode\cleaders\hb@xt@ 1.00em{\hss .\hss }\hfill\kern\z@}, which changes the default length of 0.33em to 1.00em.

\addvspace
\addvspace{length}
Add a vertical space of height length, which is a rubber length (see Lengths). However, if vertical space has already been added to the same point in the output by a previous \addvspace command then this command will not add more space than what is needed to make the natural length of the total vertical space equal to length.
Use this command to adjust the vertical space above or below an environment that starts a new paragraph. (For instance, a Theorem environment is defined to begin and end in \addvspace{..} so that two consecutive Theorem’s are separated by one vertical space, not two.)
This command is fragile (see \protect).
The error ‘Something's wrong--perhaps a missing \item’ means that you were not in vertical mode when you invoked this command; one way to change that is to precede this command with a \par command.

\bigskip \medskip \smallskip
These commands produce a given amount of space, specified by the document class.
\bigskip 	 The same as \vspace{\bigskipamount}, ordinarily about one line space, with stretch and shrink (the default for the book and article classes is 12pt plus 4pt minus 4pt).
\medskip 	 The same as \vspace{\medskipamount}, ordinarily about half of a line space, with stretch and shrink (the default for the book and article classes is 6pt plus 2pt minus 2pt).
\smallskip 	 The same as \vspace{\smallskipamount}, ordinarily about a quarter of a line space, with stretch and shrink (the default for the book and article classes is 3pt plus 1pt minus 1pt).

\vfill
End the current paragraph and insert a vertical rubber length (see Lengths) that is infinite, so it can stretch or shrink as far as needed.
It is often used in the same way as \vspace{\fill}, except that \vfill ends the current paragraph, whereas \vspace{\fill} adds the infinite vertical space below its line irrespective of the paragraph structure. In both cases that space will disappear at a page boundary; to circumvent this see \vspace.
In this example the page is filled, so the top and bottom lines contain the text ‘Lost Dog!’ and the third ‘Lost Dog!’ is exactly halfway between them.

\begin{document}
Lost Dog!
\vfill
Lost Dog!
\vfill
Lost Dog!
\end{document}

\vspace{length}
Synopsis, one of these two:

\vspace{length}
\vspace*{length}

Add the vertical space length. This can be negative or positive, and is a rubber length (see Lengths).
LaTeX removes the vertical space from \vfill at a page break, that is, at the top or bottom of a page. The starred version \vspace*{..} causes the space to stay.
In this example the two questions will be evenly spaced vertically on the page, with at least one inch of space below each.

\begin{document}
1) Who put the bomp in the bomp bah bomp bah bomp?
\vspace{1in plus 1fill}

2) Who put the ram in the rama lama ding dong?
\vspace{1in plus 1fill}
\end{document}