Flexibility.
\show\bigskip
reveals that \bigskip
expands to \vspace{\bigskipamount}
so in terms of functionality, there's no difference. However, if after typing a 110 page thesis, you realise that the limit for length set by your university is 100 pages, then simply redefining \bigskipammount
might get you your extra 10 pages in one fell swoop, rather than having to go through and considering each individual \vspace
and remembering why it was there.
In general, a good rule is that commands should carry contextual information. So even though \(\vec{x}\)
and \(\overline{x}\)
might look the same, \(\vec{x}\)
should always be used for vectors and for nothing else. So that when that Big Shot Journal says "House style is that all vectors are purple with yellow dots", a simple \renewcommand{\vec}[1]{\color{purple with yellow dots}#1}
does the trick without messing up any of the rest of the document.
Edit: (in response to vanden's request in the comments)
Of course, \bigskipamount
is a length and in TeX, lengths can be a bit complicated: they don't have to be exact measurements but can include a little flexibility. Examining latex.ltx
reveals that, unless further modified, \bigskipamount
(and the others) are defined to be:
\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
\newskip\medskipamount \medskipamount =6pt plus 2pt minus 2pt
\newskip\bigskipamount \bigskipamount =12pt plus 4pt minus 4pt
Hopefully, the meaning of the syntax is clear. Thus if you are redefining \bigskipamount
then it's good practice to also include a little flexibility.
If this is new to someone, it's worth knowing that such lengths are called rubber lengths and the extra bit is known as glue so those are the words to look out for in the documentation. (Hope I've gotten that bit right; certainly those two words are associated with this concept.)
Moral of the Story: Flexibility's what you need.
(Probably only people of my generation who grew up in Britain will have a hope of getting the reference there)
As @Marco mentioned in his comment, "every documentclass" provides the titlepage
environment - you won't find it as part of latex.ltx
. However, it is probably best to view these macros and environments as they are defined in the class files: article.cls
, book.cls
and report.cls
.
However, some discussion may also be warranted.
When looking at the titlepage
environment in these document classes, it merely provides a shell that is used by some other macros/environments. For example, setting the documentclass option titlepage
(or notitlepage
) modifies the way titlepage
is defined. This option also affects the way the abstract
environment is typeset, since it is done inside titlepage
. Also, \maketitle
is typeset inside titlepage
with this option set for the documentclass.
Finally, \maketitle
is a macro that "self-destructs" after you use it, since it's definition includes \global\let\maketitle\relax
towards the end. So, you use it and you lose it. Whereas the usage of the titlepage
environment lives well beyond \maketitle
; hence it's use in other parts of the document as a wrapper. And, the above definitions are similar across the document classes.
In terms of the usage difference between \maketitle
and titlepage
: They shouldn't be mixed.
Edit:
article.cls
(as well as the other book.cls
and report.cls
document classes) initiates loading of many of its basic functionality based on a compatibility condition \if@compatibility
. That is, certain options/macros/environments are only available if \@compatibilitytrue
, or vice versa. If you want a toned-down version of article.cls
, use
\makeatletter\@compatibilitytrue\makeatother
\documentclass{article}
The default is to load article
with \@compatibilityfalse
, are just leaving out the compatibility requirement all together. For a complete discussion on this topic, see What's the use of the @compatibility condition?. This condition also governs the declaration of the titlepage
environment. Assuming that one loads the standard document class(es) as-is, titlepage
is defined as follows:
\newenvironment{titlepage}
{\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}%
\setcounter{page}\@ne
}%
{\if@restonecol\twocolumn \else \newpage \fi
\if@twoside\else
\setcounter{page}\@ne
\fi
}
From this it is clear that the (traditional) titlepage
environment does the following
- at
\begin{titlepage}
:
- Conditions on whether the document is in
twocolumn
mode or not. If this is the case (\@twocolumntrue
), then switch to one column mode (\onecolumn
) and set a flag to restore to two column mode \@restonecoltrue
. Otherwise, if already in one column mode, issue \newpage
;
- Clear the page headings
\thispagestyle{empty}
; and
- Set the page counter to one
\setcounter{page}{@ne}
.
- at
\end{titlepage}
:
- Restore two column mode if need be (set at
\begin{titlepage}
), or issue another \newpage
; and
- Reset the page counter to one if not in
twoside
mode \setcounter{page}{@ne}
.
In essence, titlepage
is meant for a single, one column page without headings. You're free to do inside of it what as you please. Perhaps that answers your second question as well.
Best Answer
At the TeX level using
\\
doesn't start a new paragraph while using\par
obviously does. As noted in comments, When to use \par and when \\, or blank lines covers the difference between the two in general. To see what is going on in the current case, where we are talking about 'design', a small demo such asis useful. Looking over the log, we see for the first case that between the two parts we have
while in the second there is
With the standard settings you are not going to see any difference, but if for example
\parfillskip
was set to something for 'special effects' the results could be different. (In the\\
case,\hfil
is inserted so will always be\glue 0.0 plus 1.0fil
.) Similarly, notice that using\par
adds a\parskip
glue element, which again here is zero length with a small amount of stretch but could be a fixed value: this applies in addition to any\vspace
. (Try\setlength\parskip{2cm}
to see this.)As in the more general case of comparing
\par
and\\
I'd suggest thinking about meaning. In the example in the question, the lines manually spaced out are conceptually connected (all part of an address), so\\
seems more natural than\par
. The latter is often used between different 'blocks' in a title page: the parts are logically separate and often have font differences too.