Commits

Anonymous committed 97a3e4f

Added a .css for the single-document tutorial.

Comments (0)

Files changed (9)

Documents/Basics/Tutorial 00.xml

             <para>The API, in C, is defined by a number of typedefs, #defined enumerator values, and
                 functions. The typedefs define basic GL types like <type>GLint</type>,
                     <type>GLfloat</type> and so forth.</para>
-            <para>Complex aggregates like structs are never directly exposed in OpenGL. Any such
+            <para xml:id="OpenGLObjects">Complex aggregates like structs are never directly exposed in OpenGL. Any such
                 constructs are hidden behind the API. This makes it easier to expose the OpenGL API
                 to non-C languages without having a complex conversion layer.</para>
             <para>In C++, if you wanted an object that contained an integer, a float, and a string,

Documents/Basics/Tutorial 01.xml

                 with this object.</para>
             <para>The <function>glBindBuffer</function> function makes the buffer object the
                 currently bound buffer to the <literal>GL_ARRAY_BUFFER</literal> binding target. As
-                mentioned in Tutorial 0, objects in OpenGL usually have to be bound to the context
-                in order for them to do anything, and buffer objects are no exception.</para>
+                mentioned in <link endterm="OpenGLObjects">Tutorial 0</link>, objects in OpenGL
+                usually have to be bound to the context in order for them to do anything, and buffer
+                objects are no exception.</para>
             <para>The <function>glBufferData</function> function allocates memory for the buffer
                 currently bound to <literal>GL_ARRAY_BUFFER</literal>, which is the one we just
                 created. We already have some vertex data; the problem is that it is in our memory
                 despite having the word <quote>Pointer</quote> in it, does not deal with pointers.
                 Instead, it deals with buffer objects.</para>
             <para>This function tells OpenGL where a particular piece of vertex data is coming from.
-                The buffer that is bound to GL_ARRAY_BUFFER at the time that this function is called
-                is the buffer object that will be associated with this piece of data.</para>
+                The buffer that is bound to <literal>GL_ARRAY_BUFFER</literal> at the time that this
+                function is called is the buffer object that will be associated with this piece of
+                data.</para>
             <para>What this particular function call is saying is this. <quote>The piece of vertex
                     data called <varname>positionAttrib</varname> comes from the buffer object
                         <varname>positionBufferObject</varname>. This piece of vertex data contains
             compile.</para>
         <para>After compiling, we need to see if the compilation was successful. We do this by
             calling <function>glGetShaderiv</function> to retrieve the
-                <literal>GL_COMPILE_STATUS</literal>. If this is GL_FALSE, then the shader failed to
-            compile; otherwise compiling was successful.</para>
+                <literal>GL_COMPILE_STATUS</literal>. If this is <literal>GL_FALSE</literal>, then
+            the shader failed to compile; otherwise compiling was successful.</para>
         <para>If compilation fails, we do some error reporting. It prints a message to stderr that
             explains what failed to compile. It also prints an info log from OpenGL that describes
             the error; this of this log as the compiler output from a regular C compilation.</para>
                 OpenGL that no programs will be used for rendering.</para>
         </formalpara>
         <note>
-            <para>For the purposes of these tutorials, using program objects when rendering is
+            <para>For the purposes of these tutorials, using program objects is
                     <emphasis>not</emphasis> optional. OpenGL does have, in its compatibility
                 profile, default rendering state that takes over when a program is not being used.
                 We will not be using this, and you are encouraged to avoid its use as well.</para>

Documents/Basics/Tutorial 02.xml

         tutorial. Instead of just giving the triangle a solid color, we will use two methods to
         provide it with varying color across its surface. The methods are to using the fragment's
         position to compute a color and to using per-vertex data to compute a color.</para>
-    <section>
+    <section xml:id="FragPosition">
         <title>Fragment Position Display</title>
         <para>As we stated in the overview, part of the fragment's data includes the position of the
             fragment on the screen. Thus, if we want to vary the color of a triangle across its
         <note>
             <para>The third parameter to <function>mix</function> must be on the range [0, 1].
                 However, GLSL will not check this or do the clamping for you. If it is not on this
-                range, the result of the <function>mix</function> function will be undefined.</para>
+                range, the result of the <function>mix</function> function will be undefined.
+                    <quote>Undefined</quote> is the OpenGL shorthand for, <quote>I don't know, but
+                    it's probably not what you want.</quote></para>
         </note>
         <para>In this case, the bottom of the triangle, the one closest to a Y of 0, will be the
             most white. While the top of the triangle, the parts closest to a Y of 500, will have
             <note>
                 <para>If you're wondering why it is <literal>(void*)48</literal> and not just 48,
                     that is because of some legacy API cruft. The reason why the function name is
-                            glVertexAttrib<quote>Pointer</quote> is
-                    because the last parameter is technically a pointer to client memory. Or at
-                    least, it could be in the past.</para>
+                        glVertexAttrib<quote>Pointer</quote> is because the last parameter is
+                    technically a pointer to client memory. Or at least, it could be in the
+                    past.</para>
             </note>
             <para>After this, we use <function>glDrawArrays</function> to render, then disable the
                 arrays with <function>glDisableVertexAttribArray.</function></para>
                     <function>glGetAttribLocation</function>:</para>
             <example>
                 <title>Querying the Attributes</title>
-                <programlisting><![CDATA[   positionAttrib = glGetAttribLocation(theProgram, "position");
-    colorAttrib = glGetAttribLocation(theProgram, "color");]]></programlisting>
+                <programlisting>positionAttrib = glGetAttribLocation(theProgram, "position");
+colorAttrib = glGetAttribLocation(theProgram, "color");</programlisting>
             </example>
             <para>The <varname>colorAttrib</varname> variable is used later when defining the
                 attribute arrays for rendering.</para>
         </section>
         <section>
             <title>Fragment Interpolation</title>
-            <para>Now we come to the elephant in the room, so to speak. There is a communication
-                problem.</para>
+            <para>Now we come to the elephant in the room, so to speak. There is a basic
+                communication problem.</para>
             <para>See, our vertex shader is run 3 times. This execution produces 3 output positions
                     (<varname>gl_Position</varname>) and 3 output colors
                     (<varname>theColor</varname>). The 3 positions are used to construct and
             <para>The fragment shader is not run 3 times. It is run once for every fragment produced
                 by the rasterizer for this triangle. The number of fragments produced by a triangle
                 depends on the viewing resolution and how much area of the screen the triangle
-                covers. At a resolution of 500x500, an equilateral triangle the length of who's
-                sides is 1 has an area of ~0.433. The total screen area (on the range [-1, 1] in X
-                and Y) is 4, so our triangle covers approximately one-tenth of the screen. 500*500
-                is 250,000 pixels; one-tenth of this is 25,000. So our fragment shader gets executed
-                about 25,000 times.</para>
+                covers. An equilateral triangle the length of who's sides is 1 has an area of
+                ~0.433. The total screen area (on the range [-1, 1] in X and Y) is 4, so our
+                triangle covers approximately one-tenth of the screen. The window's natural
+                resolution is 500x500 pixels. 500*500 is 250,000 pixels; one-tenth of this is
+                25,000. So our fragment shader gets executed about 25,000 times.</para>
             <para>There's a slight disparity here. If the vertex shader is directly communicating
                 with the fragment shader, and the vertex shader is outputting only 3 total color
                 values, where do the other 24,997 values come from?</para>
                 of the triangle will simply get the first of the three vertex shader output
                 variables. The fragment shader gets a flat value across the surface of the triangle,
                 hence the term <quote>flat.</quote></para>
-            <para>Each triangle has its own </para>
+            <para>Each rasterized triangle has its own set of 3 outputs that are interpolated to
+                compute the value for the fragments created by that triangle. So if you render 2
+                triangles, the interpolated values from one triangle do not directly affect the
+                interpolated values from another triangle. Thus, each triangle can be taken
+                independently from the rest.</para>
+            <para>It is possible, and highly desirable in many cases, to build multiple triangles
+                from shared vertices and vertex data. But we will discuss this at a later
+                time.</para>
         </section>
         <section>
             <title>The Final Image</title>
         <glossentry>
             <glossterm>Fragment Interpolation</glossterm>
             <glossdef>
-                <para/>
+                <para>This is the process of taking 3 corresponding vertex shader outputs and
+                    interpolating them across the surface of the triangle. For each fragment
+                    generated, there will also be an interpolated value generated for each of the
+                    vertex shader's outputs (except for certain built-in outputs, like
+                        <varname>gl_Position</varname>.) The way that the interpolation is handled
+                    depends on the <glossterm>interpolation qualifier</glossterm> on the vertex
+                    output and fragment input.</para>
             </glossdef>
         </glossentry>
         <glossentry>
             <glossterm>Interpolation Qualifier</glossterm>
             <glossdef>
-                <para/>
+                <para>A GLSL keyword assigned to outputs of vertex shaders and the corresponding
+                    inputs of fragment shaders. It determines how the three values of the triangle
+                    are interpolated across that triangle's surface. The qualifier used on the
+                    vertex shader output must match with the one used on the fragment shader input
+                    of the same name.</para>
+                <para>Valid interpolation qualifiers are <literal>smooth</literal>,
+                        <literal>flat</literal>, and <literal>noperspective</literal>.</para>
             </glossdef>
         </glossentry>
     </glossary>

Documents/Positioning/Tutorial 03.xml

         <para>And typically, that is how rendering is done much of the time. Vertex shaders are
             given transformation values that are pre-computed on the CPU. But this does not mean
             that this is the only or best way to do this. In some cases, it is often useful to
-            compute the offsets via parameterized functions in a vertex shader.</para>
+            compute the offsets via parameterized values passed to the vertex shader.</para>
         <para>This is best done when vertex shader inputs are abstracted away. That is, rather than
             passing a position, the user passes more general information, and the shader generates
             the position at a particular time or some other parameter. This can be done for particle
                         statement; feel free to use a sin or cos function to do this.</para>
                 </listitem>
                 <listitem>
-                    <para>Using our knowledge of uniforms, go back to Tutorial 2's FragPosition
-                        tutorial. Modify the code so that it takes a uniform that describes the
-                        window's height, rather than using a hard-coded value. Change the
-                            <function>reshape</function> function to bind the program and modify the
-                        uniform with the new height.</para>
+                    <para>Using our knowledge of uniforms, go back to <link linkend="FragPosition"
+                            >Tutorial 2's FragPosition</link> tutorial. Modify the code so that it
+                        takes a uniform that describes the window's height, rather than using a
+                        hard-coded value. Change the <function>reshape</function> function to bind
+                        the program and modify the uniform with the new height.</para>
                 </listitem>
             </itemizedlist>
         </section>

Documents/Positioning/Tutorial 04.xml

 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
     <title>Objects at Rest</title>
-    <para>Thus far, we have seen very flat things. Namely, a single triangle. This tutorial is all
-        about how to create a realistic world of objects.</para>
+    <para>Thus far, we have seen very flat things. Namely, a single triangle. Maybe the triangle
+        moved around or had some colors.</para>
+    <para>This tutorial is all about how to create a realistic world of objects.</para>
     <note>
-        <title>Math Warning</title>
+        <title>Incoming Wall of Text</title>
         <para>This tutorial, even moreso than some of the previous ones, is very heavy on text and
-            light on code. The actual new code introduced in this tutorial is perhaps 30 lines. What
-            is important here is why this is the correct code to do what we need to do. And that
+            light on code. The actual new code introduced in this tutorial is not that much. What is
+            important here is why this is the correct code to do what we need to do. And that
             requires a lot of text.</para>
-        <para>It requires a lot of math and geometry. The tutorial will explain everything
+        <para>It also requires a lot of math and geometry. The tutorial will explain everything
             step-by-step and in-depth, but understanding everything will exercise your math skills.
             Even worse, the code that we deal with here is usually boilerplate code. It's the kind
             of code that you write once and then use forever without having to go change it or
         <para/>
     </section>
     <section>
-        <title>Enter the Matrix</title>
+        <title>The Matrix has You</title>
         <para/>
     </section>
     <section>

Documents/Tutorial Documents.xpr

                         <scenarioAssociation-array>
                             <scenarioAssociation>
                                 <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
+                                    <String xml:space="preserve">Tutorial to HTML</String>
                                 </field>
                                 <field name="type">
                                     <String xml:space="preserve">XSL</String>
                             </scenarioAssociation>
                             <scenarioAssociation>
                                 <field name="name">
+                                    <String xml:space="preserve">Tutorial to HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">Tutorials.html</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
                                     <String xml:space="preserve">Docbook PDF Printable</String>
                                 </field>
                                 <field name="type">
                                     <String xml:space="preserve">XSL</String>
                                 </field>
                                 <field name="url">
-                                    <String xml:space="preserve">file:/../Writing/KotoRII/Adventures%20of%20Bastila%20and%20Mira/Chapter%201.xml</String>
+                                    <String xml:space="preserve">Outline.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/G:/Program%20Files/XMLmind_XML_Editor/demo/docbook-modular-book/chapter.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook XHTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/FirstBook.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter2.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Episode%20I.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter3.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook XHTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter1.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/BasicOutline.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../WritingDesign/TacticalD20/Anime_d20_SRD_v1.0_-_Chap01-12/DocBook/CharacterCreation.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%201%20Trouble.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%20Prologue.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Projects/DuelingCircle/DC21.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/DoxyFormat.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/OldData/DoxyFormat.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Writing/KotoRII/Novelization/Episode%20II/Chapter1.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/ProgDocSchema.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/InternalExes/FoMaker/design/FoLoadCodeGen.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF Printable</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Design/RenderToDo.xml</String>
                                 </field>
                             </scenarioAssociation>
                             <scenarioAssociation>
                                     <String xml:space="preserve">XSL</String>
                                 </field>
                                 <field name="url">
-                                    <String xml:space="preserve">file:/../Design/RenderToDo.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/InternalExes/FoMaker/design/FoLoadCodeGen.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/ProgDocSchema.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Writing/KotoRII/Novelization/Episode%20II/Chapter1.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/OldData/DoxyFormat.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/DoxyFormat.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Projects/DuelingCircle/DC21.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%20Prologue.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%201%20Trouble.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../WritingDesign/TacticalD20/Anime_d20_SRD_v1.0_-_Chap01-12/DocBook/CharacterCreation.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/BasicOutline.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook XHTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter1.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter3.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Episode%20I.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter2.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook XHTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/FirstBook.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/G:/Program%20Files/XMLmind_XML_Editor/demo/docbook-modular-book/chapter.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF Printable</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">Outline.xml</String>
+                                    <String xml:space="preserve">file:/../Writing/KotoRII/Adventures%20of%20Bastila%20and%20Mira/Chapter%201.xml</String>
                                 </field>
                             </scenarioAssociation>
                         </scenarioAssociation-array>
                                     <null/>
                                 </field>
                                 <field name="name">
+                                    <String xml:space="preserve">Execute SQL</String>
+                                </field>
+                                <field name="baseURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="footerURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="fOPMethod">
+                                    <null/>
+                                </field>
+                                <field name="fOProcessorName">
+                                    <null/>
+                                </field>
+                                <field name="headerURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="inputXSLURL">
+                                    <String xml:space="preserve">${currentFileURL}</String>
+                                </field>
+                                <field name="inputXMLURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="defaultScenario">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="isFOPPerforming">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">SQL</String>
+                                </field>
+                                <field name="saveAs">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="openInBrowser">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="outputFile">
+                                    <null/>
+                                </field>
+                                <field name="openOtherLocationInBrowser">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="locationToOpenInBrowserURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="openInEditor">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInHTMLPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInXMLPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInSVGPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInResultSetPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="useXSLTInput">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="xsltParams">
+                                    <list/>
+                                </field>
+                                <field name="cascadingStylesheets">
+                                    <String-array/>
+                                </field>
+                                <field name="xslTransformer">
+                                    <String xml:space="preserve">JDBC</String>
+                                </field>
+                                <field name="extensionURLs">
+                                    <String-array/>
+                                </field>
+                            </scenario>
+                            <scenario>
+                                <field name="advancedOptionsMap">
+                                    <null/>
+                                </field>
+                                <field name="name">
                                     <String xml:space="preserve">Execute XQuery</String>
                                 </field>
                                 <field name="baseURL">
                                     <null/>
                                 </field>
                                 <field name="name">
-                                    <String xml:space="preserve">Execute SQL</String>
-                                </field>
-                                <field name="baseURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="footerURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="fOPMethod">
-                                    <null/>
-                                </field>
-                                <field name="fOProcessorName">
-                                    <null/>
-                                </field>
-                                <field name="headerURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="inputXSLURL">
-                                    <String xml:space="preserve">${currentFileURL}</String>
-                                </field>
-                                <field name="inputXMLURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="defaultScenario">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="isFOPPerforming">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">SQL</String>
-                                </field>
-                                <field name="saveAs">
-                                    <Boolean xml:space="preserve">true</Boolean>
-                                </field>
-                                <field name="openInBrowser">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="outputFile">
-                                    <null/>
-                                </field>
-                                <field name="openOtherLocationInBrowser">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="locationToOpenInBrowserURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="openInEditor">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInHTMLPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInXMLPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInSVGPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInResultSetPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="useXSLTInput">
-                                    <Boolean xml:space="preserve">true</Boolean>
-                                </field>
-                                <field name="xsltParams">
-                                    <list/>
-                                </field>
-                                <field name="cascadingStylesheets">
-                                    <String-array/>
-                                </field>
-                                <field name="xslTransformer">
-                                    <String xml:space="preserve">JDBC</String>
-                                </field>
-                                <field name="extensionURLs">
-                                    <String-array/>
-                                </field>
-                            </scenario>
-                            <scenario>
-                                <field name="advancedOptionsMap">
-                                    <null/>
-                                </field>
-                                <field name="name">
                                     <String xml:space="preserve">Docbook Chunked HTML</String>
                                 </field>
                                 <field name="baseURL">
                                     <String-array/>
                                 </field>
                             </scenario>
+                            <scenario>
+                                <field name="advancedOptionsMap">
+                                    <null/>
+                                </field>
+                                <field name="name">
+                                    <String xml:space="preserve">Tutorial to HTML</String>
+                                </field>
+                                <field name="baseURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="footerURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="fOPMethod">
+                                    <String xml:space="preserve">pdf</String>
+                                </field>
+                                <field name="fOProcessorName">
+                                    <String xml:space="preserve">Apache FOP</String>
+                                </field>
+                                <field name="headerURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="inputXSLURL">
+                                    <String xml:space="preserve">${frameworks}/docbook/xsl/html/docbook.xsl</String>
+                                </field>
+                                <field name="inputXMLURL">
+                                    <String xml:space="preserve">${currentFileURL}</String>
+                                </field>
+                                <field name="defaultScenario">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="isFOPPerforming">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="saveAs">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="openInBrowser">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="outputFile">
+                                    <File xml:space="preserve">${cfd}/${cfn}.html</File>
+                                </field>
+                                <field name="openOtherLocationInBrowser">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="locationToOpenInBrowserURL">
+                                    <null/>
+                                </field>
+                                <field name="openInEditor">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInHTMLPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInXMLPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInSVGPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInResultSetPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="useXSLTInput">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="xsltParams">
+                                    <list>
+                                    <transformationParameter>
+                                    <field name="paramDescription">
+                                    <paramDescriptor>
+                                    <field name="localName">
+                                    <String xml:space="preserve">draft.mode</String>
+                                    </field>
+                                    <field name="prefix">
+                                    <null/>
+                                    </field>
+                                    <field name="namespace">
+                                    <null/>
+                                    </field>
+                                    </paramDescriptor>
+                                    </field>
+                                    <field name="value">
+                                    <String xml:space="preserve">no</String>
+                                    </field>
+                                    </transformationParameter>
+                                    <transformationParameter>
+                                    <field name="paramDescription">
+                                    <paramDescriptor>
+                                    <field name="localName">
+                                    <String xml:space="preserve">generate.toc</String>
+                                    </field>
+                                    <field name="prefix">
+                                    <null/>
+                                    </field>
+                                    <field name="namespace">
+                                    <null/>
+                                    </field>
+                                    </paramDescriptor>
+                                    </field>
+                                    <field name="value">
+                                    <String xml:space="preserve">appendix  toc,title article/appendix  nop article   toc,title book      toc,title chapter   title part      toc,title,example,figure,table,equation preface   toc,title qandadiv  toc qandaset  toc reference toc,title sect1     toc sect2     toc sect3     toc sect4     toc sect5     toc section   toc set       toc,title</String>
+                                    </field>
+                                    </transformationParameter>
+                                    <transformationParameter>
+                                    <field name="paramDescription">
+                                    <paramDescriptor>
+                                    <field name="localName">
+                                    <String xml:space="preserve">html.stylesheet</String>
+                                    </field>
+                                    <field name="prefix">
+                                    <null/>
+                                    </field>
+                                    <field name="namespace">
+                                    <null/>
+                                    </field>
+                                    </paramDescriptor>
+                                    </field>
+                                    <field name="value">
+                                    <String xml:space="preserve">standard.css</String>
+                                    </field>
+                                    </transformationParameter>
+                                    <transformationParameter>
+                                    <field name="paramDescription">
+                                    <paramDescriptor>
+                                    <field name="localName">
+                                    <String xml:space="preserve">toc.max.depth</String>
+                                    </field>
+                                    <field name="prefix">
+                                    <null/>
+                                    </field>
+                                    <field name="namespace">
+                                    <null/>
+                                    </field>
+                                    </paramDescriptor>
+                                    </field>
+                                    <field name="value">
+                                    <String xml:space="preserve">2</String>
+                                    </field>
+                                    </transformationParameter>
+                                    </list>
+                                </field>
+                                <field name="cascadingStylesheets">
+                                    <String-array/>
+                                </field>
+                                <field name="xslTransformer">
+                                    <String xml:space="preserve">Saxon6.5.5</String>
+                                </field>
+                                <field name="extensionURLs">
+                                    <String-array/>
+                                </field>
+                            </scenario>
+                            <scenario>
+                                <field name="advancedOptionsMap">
+                                    <null/>
+                                </field>
+                                <field name="name">
+                                    <String xml:space="preserve">Tutorial to HTML Chunked</String>
+                                </field>
+                                <field name="baseURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="footerURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="fOPMethod">
+                                    <String xml:space="preserve">pdf</String>
+                                </field>
+                                <field name="fOProcessorName">
+                                    <String xml:space="preserve">Apache FOP</String>
+                                </field>
+                                <field name="headerURL">
+                                    <String xml:space="preserve"></String>
+                                </field>
+                                <field name="inputXSLURL">
+                                    <String xml:space="preserve">${frameworks}/docbook/xsl/html/chunkfast.xsl</String>
+                                </field>
+                                <field name="inputXMLURL">
+                                    <String xml:space="preserve">${currentFileURL}</String>
+                                </field>
+                                <field name="defaultScenario">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="isFOPPerforming">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="saveAs">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="openInBrowser">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="outputFile">
+                                    <File xml:space="preserve">${cfd}/${cfn}.html</File>
+                                </field>
+                                <field name="openOtherLocationInBrowser">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="locationToOpenInBrowserURL">
+                                    <null/>
+                                </field>
+                                <field name="openInEditor">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInHTMLPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInXMLPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInSVGPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="showInResultSetPane">
+                                    <Boolean xml:space="preserve">false</Boolean>
+                                </field>
+                                <field name="useXSLTInput">
+                                    <Boolean xml:space="preserve">true</Boolean>
+                                </field>
+                                <field name="xsltParams">
+                                    <list>
+                                    <transformationParameter>
+                                    <field name="paramDescription">
+                                    <paramDescriptor>
+                                    <field name="localName">
+                                    <String xml:space="preserve">chunk.quietly</String>
+                                    </field>
+                                    <field name="prefix">
+                                    <null/>
+                                    </field>
+                                    <field name="namespace">
+                                    <null/>
+                                    </field>
+                                    </paramDescriptor>
+                                    </field>
+                                    <field name="value">
+                                    <String xml:space="preserve">1</String>
+                                    </field>
+                                    </transformationParameter>
+                                    </list>
+                                </field>
+                                <field name="cascadingStylesheets">
+                                    <String-array/>
+                                </field>
+                                <field name="xslTransformer">
+                                    <String xml:space="preserve">Saxon6.5.5</String>
+                                </field>
+                                <field name="extensionURLs">
+                                    <String-array/>
+                                </field>
+                            </scenario>
                         </scenario-array>
                     </entry>
                     <entry>
             <file name="Positioning/Tutorial%2004.xml"/>
         </folder>
         <file name="Building%20the%20Tutorials.xml"/>
+        <file name="cssDoc.txt"/>
         <file name="Outline.xml"/>
+        <file name="standard.css"/>
         <file name="Tutorials.xml"/>
     </projectTree>
 </project>

Documents/Tutorials.xml

                 3-dimensional space.</para>
         </partintro>
         <xi:include href="Positioning/tutorial 03.xml"/>
+        <xi:include href="Positioning/tutorial 04.xml"/>
     </part>
     <part>
         <info>

Documents/cssDoc.txt

+
+Things that need to be styled:
+
+
+Top-level constructs:
+    body: Everything
+    div.book: The main book
+    div.preface: The preface of the set of tutorials.
+    div.part: Contains all of the chapters and stuff in a part.
+        div.partintro: Contains intro material and a table of contents.
+    div.article: An article.
+    div.chapter: A chapter of the book. In our case, a tutorial.
+    div.section
+    div.glossary
+    
+    div.titlepage: Contains the title, author, etc of the book/part/chapter/etc.
+    
+    div.toc: The table of contents.
+        dl: Definition list
+        dd: ??
+        dt: ??
+        dt/span.section: The title of a section.
+        dt/span.part: The title of a part.
+        dt/span.chapter: The title of a chapter.
+        dt/span.glossary: The title of a glossary.
+        
+    em.glossterm
+    acronym.acronym
+    span.emphasis
+    div.note
+        h3.title: The note's name
+    pre.programlisting
+    
+    code.function: Used for functions names.
+    code.varname: Used for variable names.
+    code.filename: Used for filenames.
+    code.literal: Used for various kinds of literals in code.
+    span.type: Used for the types of things.
+    
+    div.example: Stores the entire example.
+        p.title: The title of the example.
+    div.example-contents: Stores everything but the title of the example.
+    br.example-break
+    

Documents/standard.css

+
+body
+{
+    background-color: #fff6e7;
+    padding: 0 5%;
+    font-family: calibri, helvetica, serif;
+    font-size: 12pt;
+}
+
+br.example-break
+{
+    display: none;
+}
+
+div.note
+{
+    margin-left: 50%;
+}
+
+div.example p.title
+{
+    text-align: center;
+}
+
+pre.programlisting
+{
+    font-family: consolas, monospace;
+    font-size: 12pt;
+    margin-left: 5%;
+    margin-right: 5%;
+    background-color: #dbeded;
+    background-image: -moz-linear-gradient(left, #dbeded, #fff6e7);
+    padding: 7px;
+    border: 2px dashed black;
+    -moz-border-radius: 7px;
+    -webkit-border-radius: 7px;
+}
+
+code
+{
+    font-family: consolas, monospace;
+}
+
+code.function { color: #a00010; }
+
+code.varname { color: #d300ff; }
+
+code.filename {  }
+
+code.literal { color: #0f0aae; }
+
+span.type {  }
+
+em.glossterm { text-decoration: underline; }
+
+acronym.acronym { font-weight: bold; }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.