Skip to main content

Section 16.1 <exercise> structure

An <exercise> can be rather freeform, containing elements such as <p>, <figure>, <image>, etc. However, an author will typically think about an exercise as having an associated correct answer, perhaps with a hint or a detailed solution. PreTeXt has tags to support that sort of content, but it does require that your <exercise> be structured. This is nearly identical to the structure of a project-like element.

<exercise>
  <statement>
    <p>
      The <c>statement</c> is mandatory.
    </p>
  </statement>
  <hint>
    <p>
      Optional.
      Just an suggestion of what to try.
    </p>
  </hint>
  <answer>
    <p>
      Optional.
      Just the <q>final answer</q>.
    </p>
  </answer>
  <solution>
    <p>
      Optional.
      All the gory details.
    </p>
  </solution>
</exercise>
Listing 16.1.1. An exercise

The code in Listing 16.1.1 produces the following output:

The statement is mandatory.

Hint.

Optional. Just an suggestion of what to try.

Answer.

Optional. Just the “final answer”.

Solution.

Optional. All the gory details.

Note that you can have multiple <hint>, <answer>, and <solution> elements. But you must put all the <hint>s first, then all the <answer>s, and then all the <solution>s. There are a variety of options for determining where hints, answers, and solutions appear (at all). Check Section 5.5 for information about stringparams.

An <exercise> can also have a more complicated structure that assigns a sequence of steps for a student to complete. PreTeXt provides the same <task> tag that is used in project-like elements to give structure to such an <exercise>.

<exercise>
  <title>A structured exercise</title>
  <introduction>
    <p>
      Here is where we give the student the background information
      required to start accomplishing tasks.
    </p>
  </introduction>

  <task>
    <statement>
      <p>
        The first step to do.
      </p>
    </statement>
    <hint>
      <p>
        A little hint.
      </p>
    </hint>
    <answer>
      <p>
        Just the answer.
      </p>
    </answer>
    <solution>
      <p>
        All the glorious details about how to do the first step.
      </p>
    </solution>
  </task>

  <task>
    <statement>
      <p>
        The second step to do.
        We'll be lazy and just include an answer.
      </p>
    </statement>
    <answer>
      <p>
        Just the answer.
      </p>
    </answer>
  </task>

  <conclusion>
    <p>
      A little wrap up.
    </p>
  </conclusion>

</exercise>
Listing 16.1.3. An exercise with tasks

The code in Listing 16.1.3 produces the following output:

Here is where we give the student the background information required to start accomplishing tasks.

(a)

The first step to do.

Hint.

A little hint.

Answer.

Just the answer.

Solution.

All the glorious details about how to do the first step.

(b)

The second step to do. We'll be lazy and just include an answer.

Answer.

Just the answer.

A little wrap up.