Exercises and answers for LaTEX^{∗}

Revision 25 February 1994

Charles Wells Department of Mathematics Case Western Reserve University University Circle Cleveland, OH 44106-7058 USA

                     cfw2@po.cwru.edu

February 24, 1994

1 Description

Ans.sty is a LaTEX style file. It allows you to write exercises and their answers together in a LaTEX document. When composed, the answers will appear in a separate chapter or section elsewhere in the document (you determine where they appear).

Ans.sty allows several variations. In the current release, you can use article.sty or style files derived from article.sty and have exercises in a subsection at the end of each section; or you can use book.sty and have exercises at the end of each section or at the end of each chapter. I hope to have a version that allows exercises interspersed throughout the document (as in The TEXbook) in a later version.

This document is written using article.sty. Below are some exercises. The ones that are marked with a dot have answers on page 9. Some of those not marked with a dot have answers in the booklet called “Solutions to exercises not answered in text” that is generated with this article. Later in the document you will find more elaborate exercises along with their source.

∗Copyright \begin{matrix}c \\ ◯ \end{matrix}1994 by Charles Frederick Wells

1.1 Exercises

1.^{•} This the first exercise of section 1.

2.^{•} This is the second exercise of section 1.

3. This has an answer in the Solution Manual.

2 Using ans.sty

2.1 At the beginning of the document

The beginning of your document should look like this:

\documentstyle[ans]{article}
\makeanswers\artsec %% Use \bkchap or \bksec in book style
%% Other preamble commands you might want here
\begin{document}

If you want a booklet printed with answers to exercises not answered in the article, you should also put \makesolutions in the preamble.

2.1.1 Options

One of the options commands must come after \makeanswers. The options commands are

\artsec This is used in article style. It allows (no more than one) subsection of exercises in each section.

\artscattered Not currently implemented. For article style. Allows exercises to be interspersed throughout the document, as in The TEXbook.

\once This must be used in article style and allows just one section of exercises for the whole document. See 2.1.2 below. You cannot make a solution manual in this style. The file onceexam.tex contains an example of its use.

\bkchap Used with book.sty, allowing one section of exercises per chapter.

\bksec Used with book.sty, allowing one section of exercises per section.

\bkscattered Not currently implemented. Like \artscattered for book.sty.

If you omit the \makeanswers command, the document will compose without complaint but the answers won’t appear at the end. This may be useful for draft purposes.

If you include \makeanswers, the option command is mandatory. If you omit it, you will get an error message the first time you include an exercise.

2.1.2 Using \once

This option is for documents with just one section of exercises. It may be useful for class handouts whose answers are printed separately to be handed out later.

It is used a little differently from the others. In the other options, \exercises puts a section or subsection heading on each section of exercises and writes the appropriate heading for the answers to that set to the answer file. In this option, \exercises does neither. You must write the title of the exercise section if you want one, and you must write the title of the answer section, putting in a page break and setting the page number to 1 if that is what you want. The document “onceexam.tex” illustrates the use of the \once option.

2.2 To print the answers

At the place in the document where you want the answers printed, put

\doanswers

You can put this any place after the last batch of exercises. This will produce an unnumbered section titled “Solutions”, followed by the solutions to the problems in each section. (The \once option will not produce a section title, although it will print the answers.) When using book.sty, the section of answers will be formatted as an unnumbered chapter, therefore starting on a new page. In article.sty, the answer section will not start on a new page. If you want it to, type \newpage before \doanswers. If you want the page numbers to start over, type

\newpage
\setcounter{page}{1}

You could then bind the answer section as a separate document.

The command \dosolutions prints the answers you wrote to exercises that are not marked as having answers. Normally, you would set the page counter to 1 as above before invoking \dosolutions. This article does this, as you can see by examining the source code.

2.3 Entering the exercises

2.3.1 The exercise header

A subsection with exercises begins with the command \exercises and ends with \eexer. If the subsection has only one exercise, you can use \exercise. The word \exercises produces a subsection in the same format as other subsections, headed with the word “Exercises”. There should be at most one exercise subsection for each section of the document.

2.3.2 The exercises

Each exercise is preceded by the word \exer if you are not going to answer it, and by \exera if you are going to answer it. You can mix answered and unanswered exercises in any way you wish; the numbering will be correct in the answer section. Exercises with answers will be marked like this^{•}. You can change the answer mark by putting a command such as \ in the preamble.

2.3.3 The answers

Warning: The answers must be entered in exactly the way spelled out here. This aspect of ans.sty is very user-unfriendly. Deviation will result in answers appearing in the text or part of the next problem appearing in the answer.

The answer should start immediately after the exercise without a blank line intervening, preceded by the word \answer. You can type anything you want in the answer, subject to the following three requirements:

• The answer should start on the same line as the command \answer.

• The answer should contain no blank lines.

• The answer should be followed by at least one blank line.

If you want more than one paragraph in an answer, insert the command \par at the end of each paragraph except the last.

The reason for these requirements is that the program uses the blank line to delimit the answers (using an idea of Donald Knuth’s).

2.3.4 Subexercises

To write an exercise with subexercises, start the exercise with \exer or \exera, and then introduce each subexercise with \subexer or \subexera. You can mix answered and nonanswered subexercises as you wish.

If the exercise begins with a subexercise without any preceding text, it should begin “\exer\immsubexer” (either may be followed by an “a”). The remaining subexercises are labeled \subexer or \subexera as before. The answer to a subexercise beginning with \immsubexer should be labeled

\immsubanswer. The use of \immsubexer(a) and \immsubanswer keeps

the spacing straight (although the current version, February 24, 1994, still doesn’t get the spacing right when the exercise has a double-digit number).

I apologize for the necessity of using \immsubexer and \immsubanswer, but it seems quite complicated to create a version that knows whether the exercise has any beginning text or not.

2.3.5 Problems with special marks

To mark an exercise hard, type

\exer\annot{hard}

In general, you can annotate a problem with any sort of remark in this way.

2.4 Error messages

If you type \exera for an exercise but don’t give it an answer, you will get an error message. Likewise if you give an exercise an answer but headed it with \exer. Neither error stops the document from composing, and if you have given an exercise headed \exer an answer, the answer will be printed in the correct place with the correct number, but the spacing in the exercise section may be wrong.

If you use \exer(a) when you should have used \immsubexer(a) you will not get an error message; the spacing will merely be wrong.

2.5 Sample exercises

This section ends with a set of exercises illustrating all these points. The next section has a few, too, so you can see how the answer section handled the answers to different sections.

The answers to this section were entered as illustrated below. If you removed the percent signs from in front of the exercises that are commented out and compose this document again, you can see how the error messages work.

This example also illustrates the use of the \exhead command, which allows you to insert instructions for doing the next several exercises.

\exercises
\exera This the first exercise of section~\ref{seca}.
\answer{This is the answer to the first exercise of
section~\ref{seca}.}
\exera This is the second exercise of section~\ref{seca}.
\answer This is the answer to the second exercise of
section~\ref{seca}.
\exer This exercise has no answer.
% \exera This exercise tests an error message.
% It is marked to
% have an answer, but does not.
% \exer This exercise tests an error message too.
% \answer This should not be here.
\exhead{This header applies to Exercises~\ref{firste}
through~\ref{laste}.}
\exera\annot{hard}\label{firste} Yet another
exercise with an answer.
\answer This is yet another answer.
It is longer than the
others, and illustrates how you can
have more than one
paragraph.\par
This is the second paragraph.
\exer\annot{hard} This is an exercise with subexercises.

\subexera First subexercise.
\subanswer Answer to first subexercise.
\subexer Second subexercise.
\subexera Third subexercise.
\subanswer Answer to third subexercise.
\exer\label{laste}\immsubexera This
is the first subexercise of an exercise
that has no text before the subexercises.
\immsubanswer This is an answer.
\subexera Another subexercise.
\subanswer Another answer.
\exer\label{solans} This exercise has an answer
in the Solution Manual.
\solution Answer to Exercise~\ref{solans} on
page~\pageref{solans}.
\eexer

2.6 Exercises

1.^{•} This the first exercise of section2.

2.^{•} This is the second exercise of section 2.

3. This exercise has no answer.

This header applies to Exercises 4 through 6.

4.^{•}(hard) Yet another exercise with an answer.

5. (hard) This is an exercise with subexercises.

a.^{•} First subexercise.

b. Second subexercise.

c.^{•} Third subexercise.

6. a.^{•} This is the first subexercise of an exercise that has no text before the subexercises.

b.^{•} Another subexercise.

7. This exercise has an answer in the Solution Manual.

3 Bugs

3.1 Answers appearing in the text or text appearing in the answers

If you enter an exercise and answer like this

\exera This is an exercise.
\answer
I did this wrong.

the answer will appear in the text instead of in the answer section. The point is that the answer must start on the same line as the word \answer.

If you do this

\exera This is an exercise.
\answer I did this wrong too.
\exera This exercise will disappear.
\answer Here is an answer.

the second exercise will wind up as part of the answer to the first exercise, because a blank line must follow the answer. Reread Section 2.3.3 carefully.

3.2 Spaces between carriage returns

Most text editors allow you to type return (“enter” on some computers), one or more spaces, then return. TEX will not interpret the result as a blank line for the purposes of ending answers. The file has to contain two returns in a row without any intervening spaces. If in your printout you discover than an answer has swallowed the following exercise (or more), this may be the reason. Blanks are inserted between returns by some word processors or editors, and sometimes (apparently) by e-mail systems.

Many text editors allow you to detect blanks because the cursor changes shape on a blank. Your editor may allow you to search for the sequence carriage return, blank(s), carriage return, and change such sequences globally to carriage return, carriage return.

4 Customizing

If you look in the file ans.sty, you will discover numerous hints for customizing the file.

4.1 Headings

The headings put on the answer section and on the solutions booklet are determined by the option, \artsec, \bkchap, etc. and can easily be changed.

4.2 Other style files

Ans.sty will very likely work with many other style files besides the standard article.sty, but of course I can’t guarantee this. Since \exersection uses \subsection, a different style file with a different definition of subsection will place the exercise header in the same style as the other subsections.

4.3 Exercises

1.^{•} Prove that for any integer n > 2 there are no nonzero integers x, y and z for which x^{n} + y^{n} = z^{n}.

2. An exercise without an answer.

3.^{•} The very last exercise.

Answers to selected exercises

Section 1

1. This is the answer to the first exercise of section 1.

2. This is the answer to the second exercise of section 1.

Section 2

1. This is the answer to the first exercise of section 2.

2. This is the answer to the second exercise of section 2.

4. This is yet another answer. It is longer than the others, and illustrates how you can have more than one paragraph.

This is the second paragraph.

5. a. Answer to first subexercise.

c. Answer to third subexercise.

6. a. This is an answer.

b. Another answer.

Section 4

1. If I knew how to do \marginpar in LaTEX I would have written it in the margin. But that’s the way the cookie crumbles.

3. The very last answer.

Solutions to exercises not answered in text Section 1

3. This is an answer in the Solution Manual.

Section 2

7. Answer to Exercise 7 on page 8.

Section 4