Mention in README.md the need for the iftex package and how to get it.
[ibg.git] / appendices / c.rst
index c82f0b384045ef5a65d8cdee828f1f51206b4bba..bbd896db84cd3019eb384e5aae164282b7d78e47 100644 (file)
@@ -1,25 +1,17 @@
-.. raw:: latex
-
-   \newpage
-
 ======================================
  Appendix C -- "William Tell" story
 ======================================
 
+.. highlight:: transcript
 
 .. only:: html
 
   .. image:: /images/picW.png
      :align: left
 
-.. raw:: latex
-
-    \dropcap{w}
-
-illiam Tell, our second game, is also very straightforward. See "William 
-Tell: a tale is born" on page 69, "William Tell: the early years" on 
-page 79, "William Tell: in his prime" on page 91 and "William Tell: the 
-end is nigh" on page 103.
+|W|\illiam Tell, our second game, is also very straightforward.  See
+:doc:`/chapters/06`, :doc:`/chapters/07`, :doc:`/chapters/08` and
+:doc:`/chapters/09`.
 
 Transcript of play
 ==================
@@ -33,6 +25,8 @@ Game source code
 .. literalinclude:: /examples/Tell.inf
    :language: inform6
 
+.. _compile-as-you-go:
+
 Compile-as-you-go
 =================
 
@@ -65,7 +59,9 @@ reached by the end of Chapter 6, you’ll get this::
        Tell.inf(47): Error: No such constant as "quiver"
        Compiled with 3 errors and 3 warnings
 
-However, by adding these lines to the end of your game file::
+However, by adding these lines to the end of your game file:
+
+.. code-block:: inform
 
        ! ===============================================================
        ! TEMPORARY DEFINITIONS NEEDED TO COMPILE AT THE END OF CHAPTER 6
@@ -97,14 +93,20 @@ you do, though, you'll get this::
        ** The room "(street)" has no "description" property **
        >
 
+.. Generated by autoindex
+.. index::
+   pair: description; library property
+
 Whoops! We've fallen foul of Inform's rule saying that every room must 
-have a ``description`` property, to be displayed by the interpreter when 
-you enter that room. Our ``street`` stub hasn't got a ``description``, 
+have a :prop:`description` property, to be displayed by the interpreter when 
+you enter that room. Our ``street`` stub hasn't got a :prop:`description`, 
 so although the game compiles successfully, it still causes an error to 
 be reported at run-time.
 
 The best way round this is to extend the definition of our ``Room`` 
-class, thus::
+class, thus:
+
+.. code-block:: inform
 
        Class  Room
          with description "UNDER CONSTRUCTION",
@@ -113,7 +115,7 @@ class, thus::
 By doing this, we ensure that *every* room has a description of some 
 form; normally we'd override this default value with something 
 meaningful -- "The narrow street runs north towards the town square..." 
-and so on -- by including a ``description`` property in the object's 
+and so on -- by including a :prop:`description` property in the object's 
 definition. However, in a stub object used only for testing, a default 
 description is sufficient (and less trouble)::
 
@@ -135,12 +137,16 @@ description is sufficient (and less trouble)::
 
        >
 
+.. Generated by autoindex
+.. index::
+   pair: name; library property
+
 You'll notice a couple of interesting points. Because we didn't supply 
 external names with our ``street`` , ``bow`` and ``quiver`` stubs, the 
 compiler has provided some for us -- ``(street)`` , ``(bow)`` and 
 ``(quiver)`` -- simply by adding parentheses around the internal IDs 
 which we used. And, because our ``bow`` and ``quiver`` stubs have no 
-``name`` properties, we can't actually refer to those objects when 
+:prop:`name` properties, we can't actually refer to those objects when 
 playing the game. Neither of these points would be acceptable in a 
 finished game, but for testing purposes at this early stage -- they'll 
 do.
@@ -151,7 +157,9 @@ the end of Chapter 6. But once we reach the end of Chapter 7, things
 have moved on, and we now need a different set of stub objects. For a 
 test compilation at this point, remove the previous set of stubs, and 
 instead add these -- ``south_square`` and ``apple`` objects, and a dummy 
-action handler to satisfy the ``Talk`` action in Helga’s life property::
+action handler to satisfy the ``Talk`` action in Helga’s life property:
+
+.. code-block:: inform
 
        ! ===============================================================
        ! TEMPORARY DEFINITIONS NEEDED TO COMPILE AT THE END OF CHAPTER 7
@@ -162,7 +170,9 @@ action handler to satisfy the ``Talk`` action in Helga’s life property::
        [ TalkSub; ];
 
 Similarly, at the end of Chapter 8, replace the previous stubs by these 
-if you wish to check that the game compiles::
+if you wish to check that the game compiles:
+
+.. code-block:: inform
 
        ! ===============================================================
        ! TEMPORARY DEFINITIONS NEEDED TO COMPILE AT THE END OF CHAPTER 8