Skip to main content

Section 16.3 Divisions of <exercise>s

You can also put several <exercise>s as part of an <exercises> element within a division, which is the typical way for creating a collection of exercises togther at the end of a division such as a chapter or section. The content of an <exercises> division is rather limited. It can begin with an <introduction> (perhaps a set of common instructions), followed by a mixture of <exercise> and <exercisegroup> (see Subsection 16.3.1) elements, followed by an optional <conclusion>. The sample code in Listing 16.3.1 illustrates this structure, which is rendered later as “16.4 Exercises”.

An alternative structure for an <exercises> division is to use a sequence of <subsexercises> elements, optionally preceded by an <introduction> and followed by a <conclusion>. The content of a <subexercises> element is identical to what was described above for an <exercises> element, but we emphasize that a strong rationale for using <subexercises> (as opposed to <exercisegroup>) is that a <subexercises> element can begin with a <title>, providing a clear way of organizing the <exercise>s for the reader.

Subsection 16.3.1 <exercisegroup>

Sometimes you have several exercises that should all have a common set of instructions, which is when you will use the <exercisegroup> tag. An <exercisegroup> can only be used as part of an <exercises> element or a <subexercises> element, however! The portion of this section headed as “16.4 Exercises” is produced using the code in Listing 16.3.1.

<exercises xml:id="basics-s-sample-exercises">
  <exercisegroup>

    <introduction>
      <p>
        Here's where you put the common instructions.
      </p>
    </introduction>

    <exercise>
      <statement>
        <p>
          First exercise.
          The <c>statement</c> is mandatory.
          <idx><h sortby="statement"><tag>statement</tag></h><h sortby="of an exercise">of an <tag>exercise</tag></h></idx>
          <idx><h sortby="exercise"><tag>exercise</tag></h><h sortby="statement"><tag>statement</tag></h></idx>
          You can add all the usual bells and whistles after,
          but we'll keep it short here.
        </p>
      </statement>
    </exercise>

    <exercise>
      <statement>
        <p>
          Second exercise.
        </p>
      </statement>
    </exercise>

    <exercise>
      <statement>
        <p>
          Third exercise.
        </p>
      </statement>
    </exercise>

  </exercisegroup>

  <exercise>
    <statement>
      <p>
        This <c>exercise</c> is not inside the <c>exercisegroup</c>.
      </p>
    </statement>
  </exercise>

</exercises>
Listing 16.3.1. Using an <exercisegroup>.

If you want the contents of an <exercisegroup> to be put in multiple columns, you can add a @cols attribute to the <exercisegroup> with value (for example) 3. The integer value of @cols must be between 2 and 6 (inclusive).

The code in Listing 16.3.1 produces the output seen in Exercises 16.4.

Subsection 16.3.2 Reading questions

Another specialized division, <reading-questions>, can be used to house <exercise>s designed to test or guide a reader's comprehension of the material in that division. The structure of a <reading-questions> element is similar to an <exercises> element, but without the grouping options of <subexercises> and <exercisegroup>. The portion of this section headed as “16.3.3 Check your understanding!” is produced using the code in Listing 16.3.2.

<reading-questions xml:id="basics-reading-questions">
  <title>Check your understanding!</title>
  <introduction>
    <p>
      Here is a spot to explain the purpose of these questions. It's
      optional, like most introductions.
    </p>
  </introduction>

  <exercise>
    <statement>
      <p>
	Here is a question.
      </p>
    </statement>
    <hint>
      <p>
        A little hint.
      </p>
    </hint>
    <answer>
      <p>
        Just the answer.
      </p>
    </answer>
    <solution>
      <p>
        All the glorious details about an answer.
      </p>
    </solution>
  </exercise>

  <exercise>
    <statement>
      <p>
	A second comprehension question. We don't bother with answers
	or solutions.
      </p>
    </statement>
  </exercise>

  <conclusion>
    <p>
      A little wrap up, perhaps giving guidance or encouragement if
      the student struggled with the questions. Optional like most
      conclusions. 
    </p>
  </conclusion>

</reading-questions>
Listing 16.3.2. Structure of <reading-questions>.

Reading Questions 16.3.3 Check your understanding!

Here is a spot to explain the purpose of these questions. It's optional, like most introductions.

1.

Here is a question.

Hint.

A little hint.

Answer.

Just the answer.

Solution.

All the glorious details about an answer.

2.

A second comprehension question. We don't bother with answers or solutions.

A little wrap up, perhaps giving guidance or encouragement if the student struggled with the questions. Optional like most conclusions.