-If you check the ``name`` properties of the toilet door, the toilet key
-and the toilet room, you’ll see that the dictionary word ``'toilet'``
-occurs in all of them. There won't be any problems if players mention
-the words DOOR or KEY, but we reach a strange impasse should they try to
-perform some action with just the word TOILET. The interpreter has to
-think fast: is the player talking about the key? About the door? Or
-about the toilet? Unable to decide, it asks: "Which do you mean, the
-door to the toilet, the toilet key or the toilet?"
-
-And guess what? Players will never be able to refer to the toilet object
-(unless they type BATH ROOM or REST ROOM, not an obvious choice since we
-haven't used those phrases anywhere visible). If the player answers
-TOILET the parser will still have three objects with that dictionary
-word as a possible name, so it will ask again, and again -- until we
-give it some dictionary word which is not ambiguous. A human reader
-would be able to understand that the word TOILET alone refers to the
-room, but the interpreter won't -- unless we help it a little.
-
-We could work around this problem in more than one way, but we'll take
-this opportunity of demonstrating the use of a third-party library
-package.
-
-When experienced designers find a problem which is not easily solvable,
-they may come up with a smart solution and then consider that others
-could benefit from the effort. The product of this generosity takes the
-form of a library extension: the solution neatly packaged as a file that
-other designers can incorporate into their source code. These files can
-be found in the IF Archive: go to
-``http://mirror.ifarchive.org/indexes/if-archive.html`` and then select
-"``.../infocom``", "``.../compilers``", "``.../inform6``",
-"``.../library``", and "``.../contributions``". All of these files
-contain Inform code. To use a library extension (also known as a library
-contribution), you should download it and read the instructions (usually
-embedded as comments in the file, but occasionally supplied separately)
-to discover what to do next. Normally, you ``Include`` it (as we have
-already done with ``Parser``, ``VerbLib`` and ``Grammar``), but often
-there are rules about where exactly this Include should be placed in
-your source code. It is not unusual to find other suggestions and
-warnings.
-
-To help us out of the disambiguation problem with the word TOILET, we
-are going to use Neil Cerutti's extension ``pname.h``, which is designed
-for situations precisely like this. First, we follow the link to the IF
-archive and download the compressed file ``pname.zip``, which contains
-two more files: ``pname.h`` and ``pname.txt``. We place these files in
-the folder where we are currently developing our game or, if using the
-environment we proposed in "Tools of the trade" on page 17, in the
-``Inform\Lib\Contrib`` folder. The text file offers instructions about
-installation and usage. Here we find a warning:
-
- This version of pname.h is recommended for use only with version 6/10
- of the Inform Library.
-
-We're actually using a later version, but this doesn't seem to cause a
-problem. Most extensions aren't so fussy, but ``pname.h`` fiddles with
-some routines at the heart of the standard library; these may not be
+.. index::
+ single: ambiguous objects
+
+If you check the :prop:`name` properties of the toilet door, the toilet key
+and the toilet room, you’ll see that the dictionary word ``'toilet'``
+occurs in all of them. There won't be any problems if players mention the
+words DOOR or KEY, but we reach a strange impasse should they try to
+perform some action with just the word TOILET. The interpreter has to
+think fast: is the player talking about the key? About the door? Or about
+the toilet? Unable to decide, it asks: "Which do you mean, the door to the
+toilet, the toilet key or the toilet?"
+
+And guess what? Players will never be able to refer to the toilet object
+(unless they type BATH ROOM or REST ROOM, not an obvious choice since we
+haven't used those phrases anywhere visible). If the player answers TOILET
+the parser will still have three objects with that dictionary word as a
+possible name, so it will ask again, and again -- until we give it some
+dictionary word which is not ambiguous. A human reader would be able to
+understand that the word TOILET alone refers to the room, but the
+interpreter won't -- unless we help it a little.
+
+We could work around this problem in more than one way, but we'll take this
+opportunity of demonstrating the use of a third-party library package.
+
+.. |IFARCHIVE| replace:: http://mirror.ifarchive.org/indexes/if-archive.html
+
+.. Generated by autoindex
+.. index::
+ single: IF Archive
+
+When experienced designers find a problem which is not easily solvable,
+they may come up with a smart solution and then consider that others could
+benefit from the effort. The product of this generosity takes the form of
+a library extension: the solution neatly packaged as a file that other
+designers can incorporate into their source code. These files can be found
+in the IF Archive: go to |IFARCHIVE| and then select "``.../infocom``",
+"``.../compilers``", "``.../inform6``", "``.../library``", and
+"``.../contributions``". All of these files contain Inform code. To use a
+library extension (also known as a library contribution), you should
+download it and read the instructions (usually embedded as comments in the
+file, but occasionally supplied separately) to discover what to do next.
+Normally, you ``Include`` it (as we have already done with ``Parser``,
+``VerbLib`` and ``Grammar``), but often there are rules about where exactly
+this Include should be placed in your source code. It is not unusual to
+find other suggestions and warnings.
+
+To help us out of the disambiguation problem with the word TOILET, we are
+going to use Neil Cerutti's extension ``pname.h``, which is designed for
+situations precisely like this. First, we follow the link to the IF
+archive and download the compressed file ``pname.zip``, which contains two
+more files: ``pname.h`` and ``pname.txt``. We place these files in the
+folder where we are currently developing our game or, if using the
+environment we proposed in :doc:`02`, in the ``Inform\Lib\Contrib`` folder.
+The text file offers instructions about installation and usage. Here we
+find a warning:
+
+ This version of pname.h is recommended for use only with version 6/10 of
+ the Inform Library.
+
+We're actually using a later version, but this doesn't seem to cause a
+problem. Most extensions aren't so fussy, but ``pname.h`` fiddles with
+some routines at the heart of the standard library; these may not be