<< . . . 17( : 23) . . >>

Now we are ready to roll our own “theorem styles”. This is done via the \newtheoremstyle
command, which allows us to control almost all aspects of typesetting theorem like state-
ments. this command has nine parameters and the general syntax is
\newtheoremstyle%
{name}%
{abovespace}%
{belowspace}%
{bodyfont}%
{indent}%

The ¬rst parameter name is the name of the new style. Note that it is not the name of the
environment which is to be used later. Thus in the example above remark is the name of a
new style for typesetting theorem like statements and note is the name of the environment
subsequently de¬ned to have this style (and Note is the name of the statement itself).
The next two parameters determine the vertical space between the theorem and the
surrounding text”the abovespace is the space from the preceding text and the belows-
pace the space from the following text. You can specify either a rigid length (such as
12pt) or a rubber length (such as \baselineskip) as a value for either of these. Leaving
either of these empty sets them to the “usual values” (Technically the \topsep).
The fourth parameter bodyfont speci¬es the font to be used for the body of the
theorem-like statement. This is to be given as a declaration such as \scshape or \bfseries
and not as a command such as \textsc or \textbf. If this is left empty, then the main
text font of the document is used.
The next four parameters refer to the theoremhead”the part of the theorem like
statement consisting of the name, number and the optional note. The ¬fth parameter
indent speci¬es the indentation of theoremhead from the left margin. If this is empty,
then there is no indentation of the theoremhead from the left margin. The next parameter
bodyfont, made in the previous paragraph holds for this also. The parameter headpunct
THEOREMS”THE AMSTHM PACKAGE 113
DESIGNER
IX.2.

(the seventh in our list) is for specifying the punctuation after the theoremhead. If you
do not want any, you can leave this empty. The last parameter in this category (the last
but one in the entire list), namely headspace, determines the (horizontal) space to be left
between the theoremhead and the theorembody. If you want only a normal interword
space here put a single blank space as { } in this place. (Note that it is not the same as
leaving this empty as in {}.) Another option here is to put the command \newline here.
Then instead of a space, you get a linebreak in the output; that is, the theoremhead will
be printed in a line by itself and the theorembody starts from the next line.
some explanation (and since we are de¬nitely in need of some breathing space), let us now
look at a few examples using the eight parameters we™ve already discussed.
It is almost obvious now how the last theorem in Section 1 (see Page 111) was
designed. It was generated by
\newtheoremstyle{mystyle}{}{}{\slshape}{}{\scshape}{.}{ }{}
\theoremstyle{mystyle}
\newtheorem{mythm}{Theorem}[section]
\begin{mythm}
The sum of the angles of a triangle is $180ˆ\circ$.
\end{mythm}
As another example, consider the following
\newtheoremstyle{mynewstyle}{12pt}{12pt}{\itshape}%
{}{\sffamily}{:}{\newline}{}
\theoremstyle{mynewstyle}
\newtheorem{mynewthm}{Theorem}[section]
\begin{mynewthm}[Euclid]
The sum of the angles of a triangle is $180ˆ\circ$.
\end{mynewthm}
This produces

Theorem IX.2.1 (Euclid):
The sum of the angles of a triangle is 180—¦ .

Do you need anything more? Perhaps yes. Note that theoremhead includes the op-
tional note to the theorem also, so that the font of the number and name of the theorem-
like statement and that of the optional note are always the same. What if you need
something like

Cauchy™s Theorem (Third Version). If G is a simply connected open subset of C, then for every
closed recti¬able curve γ in G, we have

f = 0.
γ

It is in such cases, that the last parameter of \newtheoremstyle is needed. Using it we
can separately customize the name and number of the theorem-like statement and also
the optional note. The basic syntax for setting this parameter is
{commands#1commands#2commands#3}
where #1 corresponds to the name of the theorem-like statement, #2 corresponds to its
number and #3 corresponds to the optional note. We are here actually supplying the
replacement text for a command \thmhead which has three arguments. It is as if we are
de¬ning
114 TYPESETTING THEOREMS
IX.

but without actually typing the \renewcommand{\thmhead}[3]. For example the theorem
above (Cauchy™s Theorem) was produced by
\newtheoremstyle{nonum}{}{}{\itshape}{}{\bfseries}{.}{ }{#1 (\mdseries #3)}
\theoremstyle{nonum}
\newtheorem{Cauchy}{Cauchy™s Theorem}

\begin{Cauchy}[Third Version]
If $G$ is a simply connected open subset of $\mathbb{C}$, then for every closed
rectifiable curve $\gamma$ in $G$, we have
\begin{equation*}
\int_\gamma f=0.
\end{equation*}
\end{Cauchy}

Note that the absence of #2 in the custom-head-spec, suppresses the theorem number and
that the space after #1 and the command (\mdseries#3) sets the optional note in medium
size within parentheses and with a preceding space.
Now if you try to produce

Riemann Mapping Theorem. Every open simply connected proper subset of C is analytically
homeomorphic to the open unit disk in C.

by typing
\theoremstyle{nonum}
\newtheorem{Riemann}{Riemann Mapping THeorem}

\begin{Riemann}Every open simply connected proper subset of $\mathbb{C}$ is analytically
homeomorphic to the open unit disk in $\mathbb{C}$.
\end{Riemann}

you will get

Riemann Mapping Theorem (). Every open simply connected proper subset of C is analytically
homeomorphic to the open unit disk in C.

Do you see what is happened? In the \theoremstyle{diffnotenonum}, the parameter
controlling the note part of the theoremhead was de¬ned as (\mdseries #3) and in the
\newtheorem{Riemann}, there is no optional note, so that in the output, you get an empty
“note”, enclosed in parantheses (and also with a preceding space).
To get around these dif¬culties, you can use the commands \thmname, \thmnumber
and \thmnote within the {custom-head-spec} as
{\thmname{commands#1}%
\thmnumber{commands#2}%
\thmnote{commands#3}}

Each of these three commands will typeset its argument if and only if the correspond-
ing argument in the \thmhead is non empty. Thus the correct way to get the Riemann
Mapping theorem in Page 114 is to input
THEOREMS”THE AMSTHM PACKAGE 115
DESIGNER
IX.2.

\newtheoremstyle{newnonum}{}{}{\itshape}{}{\bfseries}{.}{ }%
{\thmname{#1}\thmnote{ (\mdseries #3)}}

\theoremstyle{newnonum}
\newtheorem{newRiemann}{Riemann Mapping Theorem}

\begin{newRiemann} Every open simply connected proper subset of $\mathbb{C}$ is
analytically homeomorphic to the open unit disk in $\mathbb{C}$.
\end{newRiemann}

Then you can also produce Cauchy™s Theorem in Page 113 by typing
\theoremstyle{newnonum}
\newtheorem{newCauchy}{Cauchy™s Theorem}

\begin{newCauchy}[Third Version]If $G$ is a simply connected open subset of
$\mathbb{C}$, then for every closed rectifiable curve $\gamma$ in $G$, we have
\begin{equation*}
\int_\gamma f=0
\end{equation*}
\end{newCauchy}

The output will be exactly the same as that seen in Page 113. Now suppose you
want to highlight certain theorems from other sources in your document, such as

Axiom 1 in [1]. Things that are equal to the same thing are equal to one another.

This can be done as follows:
\newtheoremstyle{citing}{}{}{\itshape}{}{\bfseries}{.}{ }{\thmnote{#3}}

\theoremstyle{citing}
\newtheorem{cit}{}

\begin{cit}[Axiom 1 in \cite{eu}]
Things that are equal to the same thing are equal to one another.
\end{cit}

Of course, your bibliography should include the citation with label eu.

There is more!
IX.2.3.

There are some more prede¬ned features in amsthm package. In all the different examples
we have seen so far, the theorem number comes after the theorem name. Some prefer to
have it the other way round as in

Theorem (Euclid). The sum of the angles in a triangle is 180—¦ .
IX.2.1

This effect is produced by the command \swapnumbers as shown below:
\swapnumbers
\theoremstyle{plain}
\newtheorem{numfirstthm}{Theorem}[section]

\begin{numfirstthm}[Euclid]
The sum of the angles in a triangle is $180ˆ\circ$
\end{numfirstthm}
116 TYPESETTING THEOREMS
IX.

Note that the \swapnumbers command is a sort of toggle-switch, so that once it is given,
all subsequent theorem-like statements will have their numbers ¬rst. If you want it the
other way for some other theorem, then give \swapnumbers again before its de¬nition.
A quick way to suppress theoremnumbers is to use the \newtheorem* command as in
\newtheorem*{numlessthm}{Theorem}[section]

\begin{numlessthm}[Euclid]
The sum of the angles in a triangle is $180ˆ\circ$.
\end{numlessthm}

to produce

Euclid. The sum of the angles in a triangle is 180—¦ .

Note that this could also be done by leaving out #2 in the custom-head-spec parameter
of \newtheoremstyle, as seen earlier.
We have been talking only about theorems so far, but Mathematicians do not live
by theorems alone; they need proofs. The amsthm package contains a prede¬ned proof
environment so that the proof of a theorem-like statement can be enclosed within \begin
{proof} ... \end{proof} commands as shown below:
\begin{thmsec}
The number of primes is infinite.
\end{thmsec}

\begin{proof}
Let $\{p_1,p_2,\dotsc p_k\}$ be a finite set of primes. Define $n=p_1p_2\dotsm p_k+1$. Then either $n$ itself is a prime or has a prime factor. Now $n$ is
neither equal to nor is divisible by any of the primes $p_1,p_2,\dotsc p_k$ so
that in either case, we get a prime different from $p_1,p_2,\dotsc p_k$. Thus
no finite set of primes can include all the primes.
\end{proof}

to produce the following output

Theorem The number of primes is in¬nite.
IX.2.3.

Proof. Let {p1 , p2 , . . . pk } be a ¬nite set of primes. De¬ne n = p1 p2 · · · pk + 1. Then either n itself
is a prime or has a prime factor. Now n is neither equal to nor is divisible by any of the primes
p1 , p2 , . . . pk so that in either case, we get a prime different from p1 , p2 , . . . pk . Thus no ¬nite set
of primes can include all the primes.

There is an optional argument to the proof environment which can be used to change
\begin{proof}[\textsc{Proof\,(Euclid)}:]
\begin{proof}
Let $\{p_1,p_2,\dotsc p_k\}$ be a finite set of primes. Define $n=p_1p_2\dotsm p_k+1$. Then either $n$ itself is a prime or has a prime factor. Now $n$ is
neither equal to nor is divisible by any of the primes $p_1,p_2,\dotsc p_k$ so
that in either case, we get a prime different from $p_1,p_2,\dotsc p_k$. Thus
no finite set of primes can include all the primes.
\end{proof}
THEOREMS”THE AMSTHM PACKAGE 117
DESIGNER
IX.2.

produces the following

PROOF (EUCLID): Let {p1 , p2 , . . . pk } be a ¬nite set of primes. De¬ne n = p1 p2 · · · pk + 1. Then
either n itself is a prime or has a prime factor. Now n is neither equal to nor is divisible by any
of the primes p1 , p2 , . . . pk so that in either case, we get a prime different from p1 , p2 . . . pk . Thus
no ¬nite set of primes can include all the primes.

Note that the end of a proof is automatically marked with a which is de¬ned in the
package by the command \qedsymbol. If you wish to change it, use \renewcommand to
rede¬ne the \qedsymbol. Thus if you like the original “Halmos symbol” to mark the
\newcommand{\halmos}{\rule{1mm}{2.5mm}}
\renewcommand{\qedsymbol}{\halmos}

in the preamble to your document.
Again, the placement of the \qedsymbol at the end of the last line of the proof is done
via the command \qed. The default placement may not be very pleasing in some cases as
in

Theorem IX.2.4. The square of the sum of two numbers is equal to the sum of their squares
and twice their product.

Proof. This follows easily from the equation

(x + y)2 = x2 + y2 + 2xy

It would be better if this is typeset as

Theorem IX.2.5. The square of the sum of two numbers is equal to the sum of their squares
and twice their product.

Proof. This follows easily from the equation

(x + y)2 = x2 + y2 + 2xy

which is achieved by the input shown below:
\begin{proof}
This follows easily from the equation

(x+y)ˆ2=xˆ2+yˆ2+2xy\tag*{\qed}

\renewcommand{\qed}{}
\end{proof}

For this trick to work, you must have loaded the package amsmath without the leqno
option. Or, if you prefer

Proof. This follows easily from the equation

(x + y)2 = x2 + y2 + 2xy

Then you can use
118 TYPESETTING THEOREMS
IX.

\begin{proof}
This follows easily from the equation
\begin{equation*}
(x+y)ˆ2=xˆ2+yˆ2+2xy\qed
\end{equation*}
\renewcommand{\qed}{}
\end{proof}

HOUSEKEEPING
IX.3.

It is better to keep all \newtheoremstyle commands in the preamble than scattering them
all over the document. Better still, you can keep them together with other customization
in a personal .sty ¬le and load it using the \usepackage command in the preamble. Also,
within this .sty ¬le, you can divide your \newtheorem commands into groups and preface
each group with the appropriate \theoremstyle.

BIBLIOGRAPHY

[1] Euclid, The Elements, Greece 300 BC
TUTORIAL X

SEVERAL KINDS OF BOXES

The method of composing pages out of boxes lies at the very heart of TEX and many
LTEX constructs are available to take advantage of this method of composition.
A

A box is an object that is treated by TEX as a single character. A box cannot be split
and broken across lines or pages. Boxes can be moved up, down, left and right. LTEX A

has three types of boxes.

(left-right) The content of this box are typeset from left to right.
LR
(paragraphs) This kind of box can contain several lines, which will be typeset
Par
in paragraph mode just like normal text. Paragraphs are put one on top of the
other. Their widths are controlled by a user speci¬ed value.
A thin or thick line that is often used to separate various logical elements on
Rule
the output page, such as between table rows and columns and between running
titles and the main text.

LR
X.1. BOXES

The usage information of four types of LR boxes are given below. The ¬rst line considers
the text inside the curly braces as a box, with or without a frame drawn around it. For
instance, \fbox{some words} gives some words whereas \mbox will do the same thing,
but without the ruled frame around the text.

\mbox{text}
\makebox{width}{pos}{text}
\fbox{text}
\framebox{width}{pos}{text}

The commands in the third and fourth lines are a generalization of the other com-
mands. They allow the user to specify the width of the box and the positioning of text
inside.
some words \makebox{5cm}{some words} \par

some words \framebox{5cm}{r}{some words}
 << . . . 17( : 23) . . >>