<?xml version="1.0"?>
<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="paper.tex#textrange(from=15;1,to=15;17)" xml:id="paper.omdoc">
  <metadata xml:id="paper.omdoc.p1" about="#paper.omdoc.p1" stex:srcref="paper.tex#textrange(from=18;0,to=25;16)">
    <dc:creator xml:id="paper.omdoc.p1.p1" about="#paper.omdoc.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">MichaelKohlhase</dc:creator>
    <dc:rights xml:id="paper.omdoc.p1.p2" about="#paper.omdoc.p1.p2" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">Copyright (c) 2009 Michael Kohlhase</dc:rights>
    <dc:title xml:id="paper.omdoc.p1.p3" about="#paper.omdoc.p1.p3" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">An example of semantic Markup in <phrase xml:id="paper.omdoc.p1.p3.p1" about="#paper.omdoc.p1.p3.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">sTeX</phrase></dc:title>
    <dc:description xml:id="paper.omdoc.p1.p4" about="#paper.omdoc.p1.p4" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">In this note we give an example of semantic markup in <phrase xml:id="paper.omdoc.p1.p4.p1" about="#paper.omdoc.p1.p4.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">sTeX</phrase>:
Continuous and differentiable functions are introduced using real numbers, sets and
functions as an assumed background.</dc:description>
  </metadata>
  <omgroup layout="sectioning" xml:id="intro" about="#intro" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">
    <metadata xml:id="intro.p1" about="#intro.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">
      <dc:title stex:srcref="paper.tex#textrange(from=27;0,to=110;13)" xml:id="intro.p1.p1" about="#intro.p1.p1">Introduction</dc:title>
    </metadata>
    <omtext xml:id="intro.p2" about="#intro.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
      <CMP xml:id="intro.p2.p1" about="#intro.p2.p1" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">We will show how to semantically mark up mathematics in the <phrase xml:id="intro.p2.p1.p1" about="#intro.p2.p1.p1" stex:srcref="paper.tex#textrange(from=27;1,to=28;68)">sTeX</phrase>
format&#xA0;<citation xmlns:mcd="http://www.w3.org/ns/mathml-cd" bibrefs="kohlhase:ulsmf08"/> and how to convert it into
OMDoc&#xA0;<citation xmlns:mcd="http://www.w3.org/ns/mathml-cd" bibrefs="kohlhase:omdoc1.3"/>.
We have some mathematical material in Section <ref type="cite" xref="sec.math" xml:id="intro.p2.p1.p2" about="#intro.p2.p1.p2" stex:srcref="paper.tex#textrange(from=31;29,to=32;56)"/> which will serve as example
content. In the rest of this section we will explain the setup of the example and
present an approach to automation of the OMDoc conversion via Unix Makefiles.
</CMP>
    </omtext>
    <omgroup layout="sectioning" xml:id="intro.p3" about="#intro.p3" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">
      <metadata xml:id="intro.p3.p1" about="#intro.p3.p1" stex:srcref="paper.tex#textrange(from=35;0,to=62;13)">
        <dc:title stex:srcref="paper.tex#textrange(from=35;0,to=63;13)" xml:id="intro.p3.p1.p1" about="#intro.p3.p1.p1">The Setup</dc:title>
      </metadata>
      <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="setup" about="#setup" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
        <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
        <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
        <symbol name="target" xml:id="target.def.sym" about="#target.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
        <symbol name="module" xml:id="module.def.sym" about="#module.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
        <definition for="target module" xml:id="setup.p3" about="#setup.p3" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
          <CMP xml:id="setup.p3.p1" about="#setup.p3.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
            <p xml:id="setup.p3.p1.p1" about="#setup.p3.p1.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
The source of this note is contained in the file <phrase class="code" xml:id="setup.p3.p1.p1.p1" about="#setup.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=37;13,to=38;74)">paper.tex</phrase>. We call it
the <idx xml:id="setup.p3.p1.p1.p2" about="#setup.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)"><idt><term cd="setup" name="target" role="definiendum" xml:id="setup.p3.p1.p1.p2.p1" about="#setup.p3.p1.p1.p2.p1" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)">target</term></idt><ide index="default"><idp>target</idp></ide></idx>, since formatting it with LaTeX will generate the main
document. The content in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p3.p1.p1.p3" about="#setup.p3.p1.p1.p3" stex:srcref="paper.tex#textrange(from=39;33,to=40;52)"/> and Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p3.p1.p1.p4" about="#setup.p3.p1.p1.p4" stex:srcref="paper.tex#textrange(from=39;1,to=40;84)"/>
comes from included files <phrase class="code" xml:id="setup.p3.p1.p1.p5" about="#setup.p3.p1.p1.p5" stex:srcref="paper.tex#textrange(from=40;5,to=41;56)">continuous.tex</phrase> and
<phrase class="code" xml:id="setup.p3.p1.p1.p6" about="#setup.p3.p1.p1.p6" stex:srcref="paper.tex#textrange(from=41;54,to=42;34)">differentiable.tex</phrase>, we will call them <idx xml:id="setup.p3.p1.p1.p7" about="#setup.p3.p1.p1.p7" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)"><idt><term cd="setup" name="module" role="definiendum" xml:id="setup.p3.p1.p1.p7.p1" about="#setup.p3.p1.p1.p7.p1" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)">module</term></idt><ide index="default"><idp>module</idp></ide></idx>s, since they may
be used (i.e. included) by other target documents as well.
</p>
          </CMP>
        </definition>
        <omtext xml:id="setup.p4" about="#setup.p4" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
          <CMP xml:id="setup.p4.p1" about="#setup.p4.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">As the modules are built for inclusion into other documents, they are not
self-contained:
</CMP>
        </omtext>
        <omgroup layout="enumerate" xml:id="I1" about="#I1" stex:srcref="paper.tex#textrange(from=47;0,to=54;19)">
          <omtext xml:id="I1.p1" about="#I1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
            <CMP xml:id="I1.p1.p1" about="#I1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
              <p xml:id="I1.p1.p1.p1" about="#I1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">they do not contain a LaTeX preamble and
<phrase><omlet action="display" data="#id36156444" show="embed" style="" font="typewriter"/>/<omlet action="display" data="#id36151430" show="embed" style="" font="typewriter"/>, and
</phrase></p>
            </CMP>
          </omtext>
          <omtext xml:id="I1.p2" about="#I1.p2" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
            <CMP xml:id="I1.p2.p1" about="#I1.p2.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
              <p xml:id="I1.p2.p1.p1" about="#I1.p2.p1.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">they may depend on other modules, whose semantic macros they need to include,
</p>
            </CMP>
          </omtext>
          <omtext xml:id="I1.p3" about="#I1.p3" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
            <CMP xml:id="I1.p3.p1" about="#I1.p3.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
              <p xml:id="I1.p3.p1.p1" about="#I1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">to facilitate this a module file <phrase class="code" xml:id="I1.p3.p1.p1.p1" about="#I1.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=50;25,to=51;61)">modf.tex</phrase> comes with a &#x201C;semantic
macro short form&#x201D; <phrase class="code" xml:id="I1.p3.p1.p1.p2" about="#I1.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=51;41,to=52;43)">modf.sms</phrase> that can be included without generating
output in the PDF.
</p>
            </CMP>
          </omtext>
        </omgroup>
        <symbol name="background-module" xml:id="background-module.def.sym"/>
        <omtext xml:id="setup.p6" about="#setup.p6" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
          <CMP xml:id="setup.p6.p1" about="#setup.p6.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">this will have consequences for the automation. Concretely, the module on
differentiable functions in Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p6.p1.p1" about="#setup.p6.p1.p1" stex:srcref="paper.tex#textrange(from=55;32,to=56;58)"/> depends on that for continuous
functions in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p6.p1.p2" about="#setup.p6.p1.p2" stex:srcref="paper.tex#textrange(from=56;51,to=57;38)"/>. Both of them depend on modules for real numbers,
sets and functions that we do not want to cover in this note. <phrase for="background-module" type="inlinedef" xml:id="setup.p6.p1.p3" about="#setup.p6.p1.p3" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">We assume that
they have already been marked up with the same methods as we describe here and are
accessible to us and call them <idx xml:id="setup.p6.p1.p3.p1" about="#setup.p6.p1.p3.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)"><idt><term cd="setup" name="background-module" role="definiendum" xml:id="setup.p6.p1.p3.p1.p1" about="#setup.p6.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">background module</term></idt><ide index="default"><idp>background</idp><idp>module</idp></ide></idx>s</phrase>. In our setup we
keep them in the subdirectory <phrase class="code" xml:id="setup.p6.p1.p4" about="#setup.p6.p1.p4" stex:srcref="paper.tex#textrange(from=60;2,to=61;54)">background</phrase>.
</CMP>
        </omtext>
      </theory>
    </omgroup>
    <omgroup layout="sectioning" xml:id="intro.p4" about="#intro.p4" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
      <metadata xml:id="intro.p4.p1" about="#intro.p4.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">
        <dc:title stex:srcref="paper.tex#textrange(from=65;0,to=73;13)" xml:id="intro.p4.p1.p1" about="#intro.p4.p1.p1">Formatting and OMDoc conversion</dc:title>
      </metadata>
      <omtext xml:id="intro.p4.p2" about="#intro.p4.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
        <CMP xml:id="intro.p4.p2.p1" about="#intro.p4.p2.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">To format an <phrase xml:id="intro.p4.p2.p1.p1" about="#intro.p4.p2.p1.p1" stex:srcref="paper.tex#textrange(from=65;68,to=66;21)">sTeX</phrase> document &#x2014; i.e. to produce a PDF file from the <phrase xml:id="intro.p4.p2.p1.p2" about="#intro.p4.p2.p1.p2" stex:srcref="paper.tex#textrange(from=65;11,to=66;78)">sTeX</phrase> marked-up
sources &#x2014; we only need to run the <phrase class="code" xml:id="intro.p4.p2.p1.p3" about="#intro.p4.p2.p1.p3" stex:srcref="paper.tex#textrange(from=66;34,to=67;56)">pdflatex</phrase> program over the target document
&#x2014; assuming that all modules (regular or background) have semantic macro short forms.
To convert an <phrase xml:id="intro.p4.p2.p1.p4" about="#intro.p4.p2.p1.p4" stex:srcref="paper.tex#textrange(from=69;66,to=70;22)">sTeX</phrase> document to OMDoc, we need to run <phrase class="code" xml:id="intro.p4.p2.p1.p5" about="#intro.p4.p2.p1.p5" stex:srcref="paper.tex#textrange(from=69;10,to=70;78)">latexml</phrase> over it,
post-process the result by <phrase class="code" xml:id="intro.p4.p2.p1.p6" about="#intro.p4.p2.p1.p6" stex:srcref="paper.tex#textrange(from=70;41,to=71;50)">latexmlpost</phrase>, and finally massage away all remaining
LaTeXML islands with a stylesheet, see &#xA0;<citation xmlns:mcd="http://www.w3.org/ns/mathml-cd" bibrefs="kohlhase:ssmtl*"/> for details.
</CMP>
      </omtext>
    </omgroup>
    <omgroup layout="sectioning" xml:id="intro.p5" about="#intro.p5" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
      <metadata xml:id="intro.p5.p1" about="#intro.p5.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">
        <dc:title stex:srcref="paper.tex#textrange(from=75;0,to=108;13)" xml:id="intro.p5.p1.p1" about="#intro.p5.p1.p1">Makefile-based Automation</dc:title>
      </metadata>
      <omtext xml:id="intro.p5.p2" about="#intro.p5.p2" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
        <CMP xml:id="intro.p5.p2.p1" about="#intro.p5.p2.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">As the conversion to OMDoc is rather complex (the programs in the three steps take a
variety of options), we support an automation by Unix Makefiles. There are three main
<phrase class="code" xml:id="intro.p5.p2.p1.p1" about="#intro.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=77;10,to=78;16)">make</phrase> targets.
</CMP>
      </omtext>
      <omgroup layout="description" xml:id="I2" about="#I2" stex:srcref="paper.tex#textrange(from=79;0,to=87;19)">
        <omtext xml:id="I2.p1" about="#I2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
          <metadata xml:id="I2.p1.p1" about="#I2.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
            <dc:title xml:id="I2.p1.p1.p1" about="#I2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
              <phrase class="code" xml:id="I2.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">make omdoc</phrase>
            </dc:title>
          </metadata>
          <CMP xml:id="I2.p1.p2" about="#I2.p1.p2" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
            <p xml:id="I2.p1.p2.p1" about="#I2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">will trigger the OMDoc transformation of the target
document.
</p>
          </CMP>
        </omtext>
        <omtext xml:id="I2.p2" about="#I2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
          <metadata xml:id="I2.p2.p1" about="#I2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
            <dc:title xml:id="I2.p2.p1.p1" about="#I2.p2.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
              <phrase class="code" xml:id="I2.p2.p1.p1.p1" about="#I2.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">make mods</phrase>
            </dc:title>
          </metadata>
          <CMP xml:id="I2.p2.p2" about="#I2.p2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
            <p xml:id="I2.p2.p2.p1" about="#I2.p2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">will trigger the OMDoc transformation of the modules.
</p>
          </CMP>
        </omtext>
        <omtext xml:id="I2.p3" about="#I2.p3" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
          <metadata xml:id="I2.p3.p1" about="#I2.p3.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
            <dc:title xml:id="I2.p3.p1.p1" about="#I2.p3.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
              <phrase class="code" xml:id="I2.p3.p1.p1.p1" about="#I2.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">make pdf</phrase>
            </dc:title>
          </metadata>
          <CMP xml:id="I2.p3.p2" about="#I2.p3.p2" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
            <p xml:id="I2.p3.p2.p1" about="#I2.p3.p2.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">will trigger the LaTeX formatting the target
</p>
          </CMP>
        </omtext>
        <omtext xml:id="I2.p4" about="#I2.p4" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
          <metadata xml:id="I2.p4.p1" about="#I2.p4.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
            <dc:title xml:id="I2.p4.p1.p1" about="#I2.p4.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
              <phrase class="code" xml:id="I2.p4.p1.p1.p1" about="#I2.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">make mpdf</phrase>
            </dc:title>
          </metadata>
          <CMP xml:id="I2.p4.p2" about="#I2.p4.p2" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
            <p xml:id="I2.p4.p2.p1" about="#I2.p4.p2.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">will trigger the LaTeX formatting the modules
</p>
          </CMP>
        </omtext>
        <omtext xml:id="I2.p5" about="#I2.p5" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
          <metadata xml:id="I2.p5.p1" about="#I2.p5.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
            <dc:title xml:id="I2.p5.p1.p1" about="#I2.p5.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
              <phrase class="code" xml:id="I2.p5.p1.p1.p1" about="#I2.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">make sms</phrase>
            </dc:title>
          </metadata>
          <CMP xml:id="I2.p5.p2" about="#I2.p5.p2" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
            <p xml:id="I2.p5.p2.p1" about="#I2.p5.p2.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">will trigger the re-generation of all semantic macro short
forms of modules (this is implicitly called in all the other <phrase class="code" xml:id="I2.p5.p2.p1.p1" about="#I2.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=85;10,to=86;79)">make</phrase> targets)
</p>
          </CMP>
        </omtext>
      </omgroup>
      <omtext xml:id="intro.p5.p4" about="#intro.p5.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
        <CMP xml:id="intro.p5.p4.p1" about="#intro.p5.p4.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">To use this, we need to set up a <phrase class="code" xml:id="intro.p5.p4.p1.p1" about="#intro.p5.p4.p1.p1" stex:srcref="paper.tex#textrange(from=87;24,to=88;55)">Makefile</phrase> of the following form:

<omlet xmlns:mcd="http://www.w3.org/ns/mathml-cd" action="display" show="embed" style="display:block" class="language_make" xml:id="LSTx1"><code><data format="listingblock"><table class="listing"><tr><td/><td>STEXDIR&#xA0;=&#xA0;../..</td></tr><tr><td>2</td><td>TARGET&#xA0;=&#xA0;paper.tex</td></tr><tr><td/><td>MODSLIBDIR&#xA0;=&#xA0;../background</td></tr><tr><td>4</td><td/></tr><tr><td/><td>include&#xA0;$(STEXDIR)/make/Makefile.vars</td></tr><tr><td>6</td><td>all:&#xA0;omdoc&#xA0;mods&#xA0;pdf</td></tr><tr><td/><td>include&#xA0;$(STEXDIR)/make/Makefile.in</td></tr></table></data></code></omlet>
The variable <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">STEXDIR</phrase> has to be set to the main directory of the <phrase xml:id="intro.p5.p4.p1.p3" about="#intro.p5.p4.p1.p3" stex:srcref="paper.tex#textrange(from=92;1,to=93;86)">sTeX</phrase>
distribution. The variable <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">TARGET</phrase> specifies the target document (all other
<phrase class="code" xml:id="intro.p5.p4.p1.p4" about="#intro.p5.p4.p1.p4" stex:srcref="paper.tex#textrange(from=94;73,to=95;17)">*.tex</phrase> files that are not excluded in the <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">BUTFILES</phrase> variables are
considered as modules). Here, the <phrase class="code" xml:id="intro.p5.p4.p1.p5" about="#intro.p5.p4.p1.p5" stex:srcref="paper.tex#textrange(from=95;32,to=96;56)">background</phrase> directory for convenience. The
<phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">MODSLIBDIR</phrase> specifies the location of the prefix and postfix files
<phrase class="code" xml:id="intro.p5.p4.p1.p6" about="#intro.p5.p4.p1.p6" stex:srcref="paper.tex#textrange(from=97;68,to=98;19)">pre.tex</phrase> and <phrase class="code" xml:id="intro.p5.p4.p1.p7" about="#intro.p5.p4.p1.p7" stex:srcref="paper.tex#textrange(from=97;44,to=98;43)">post.tex</phrase> that will be prepended and appended to the
modules to make them into complete files TeX files that can be converted. The last
three lines just include the Makefiles from the <phrase xml:id="intro.p5.p4.p1.p8" about="#intro.p5.p4.p1.p8" stex:srcref="paper.tex#textrange(from=99;32,to=100;56)">sTeX</phrase> distribution and configure the
default make target (<phrase class="code" xml:id="intro.p5.p4.p1.p9" about="#intro.p5.p4.p1.p9" stex:srcref="paper.tex#textrange(from=100;31,to=101;40)">make all</phrase>) to be produce the pdf version
Note that in the directory <phrase class="code" xml:id="intro.p5.p4.p1.p10" about="#intro.p5.p4.p1.p10" stex:srcref="paper.tex#textrange(from=102;36,to=103;49)">background</phrase> we have a very similar Makefile as
above. The only differences are that the variable <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">STEXDIR</phrase> is adapted and
that the <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">BUTFILE</phrase> variable is set to <phrase class="code" xml:id="intro.p5.p4.p1.p11" about="#intro.p5.p4.p1.p11" stex:srcref="paper.tex#textrange(from=104;5,to=105;69)">pre.tex</phrase> and
<phrase class="code" xml:id="intro.p5.p4.p1.p12" about="#intro.p5.p4.p1.p12" stex:srcref="paper.tex#textrange(from=105;51,to=106;20)">post.tex</phrase>, so that they are not converted. In the directory
<phrase class="code" xml:id="intro.p5.p4.p1.p13" about="#intro.p5.p4.p1.p13" stex:srcref="paper.tex#textrange(from=106;56,to=107;22)">background</phrase> we have followed good practice by establishing a phony
</CMP>
      </omtext>
    </omgroup>
  </omgroup>
  <omgroup layout="sectioning" xml:id="sec.math" about="#sec.math" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">
    <metadata xml:id="sec.math.p1" about="#sec.math.p1" stex:srcref="paper.tex#textrange(from=112;0,to=112;50)">
      <dc:title stex:srcref="paper.tex#textrange(from=112;0,to=116;13)" xml:id="sec.math.p1.p1" about="#sec.math.p1.p1">Mathematical Content</dc:title>
    </metadata>
    <omtext xml:id="sec.math.p2" about="#sec.math.p2" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
      <CMP xml:id="sec.math.p2.p1" about="#sec.math.p2.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">We present some standard mathematical definitions, here from calculus.
</CMP>
    </omtext>
    <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
      <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
        <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">Continuous Functions</dc:title>
      </metadata>
      <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
        <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
        <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
        <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
        <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
        <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
        <notation cd="continuous" name="continuousfunctions">
          <prototype>
            <om:OMA>
              <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
              <expr name="arg1"/>
              <expr name="arg2"/>
            </om:OMA>
          </prototype>
          <rendering>
            <m:mrow>
              <m:msup>
                <m:mi mathvariant="script">C</m:mi>
                <m:mn>0</m:mn>
              </m:msup>
              <m:mo>&#x2062;</m:mo>
              <m:mfenced open="(" close=")">
                <m:mrow>
                  <render name="arg1"/>
                  <m:mo>,</m:mo>
                  <render name="arg2"/>
                </m:mrow>
              </m:mfenced>
            </m:mrow>
          </rendering>
        </notation>
        <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
        <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
          <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
            <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
A function <om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp>continuous</idp></ide></idx> at
<om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ>, iff for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3F5;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ> there is a <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3B4;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ>, such that
<om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="&#x3F5;"/></om:OMA></om:OMOBJ> for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="&#x3B4;"/></om:OMA></om:OMOBJ></p>
          </CMP>
        </definition>
      </theory>
    </omgroup>
    <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
      <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
        <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">Differentiable Functions</dc:title>
      </metadata>
      <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
        <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
        <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
        <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
        <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
        <notation cd="differentiable" name="difffunctions">
          <prototype>
            <om:OMA>
              <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
              <expr name="arg1"/>
              <expr name="arg2"/>
            </om:OMA>
          </prototype>
          <rendering>
            <m:mrow>
              <m:msup>
                <m:mi mathvariant="script">C</m:mi>
                <m:mn>1</m:mn>
              </m:msup>
              <m:mo>&#x2062;</m:mo>
              <m:mfenced open="(" close=")">
                <m:mrow>
                  <render name="arg1"/>
                  <m:mo>,</m:mo>
                  <render name="arg2"/>
                </m:mrow>
              </m:mfenced>
            </m:mrow>
          </rendering>
        </notation>
        <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
        <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
          <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
            <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
A function <om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp>differentiable</idp></ide></idx> at
<om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ>, iff for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3F5;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ> there is a <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3B4;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ>, such that
<om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="rfrac"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="&#x3F5;"/></om:OMA></om:OMOBJ> for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="&#x3B4;"/></om:OMA></om:OMOBJ>.
</p>
          </CMP>
        </definition>
      </theory>
    </omgroup>
  </omgroup>
  <omgroup layout="sectioning" xml:id="concl" about="#concl" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
    <metadata xml:id="concl.p1" about="#concl.p1" stex:srcref="paper.tex#textrange(from=118;0,to=118;37)">
      <dc:title stex:srcref="paper.tex#textrange(from=118;0,to=121;13)" xml:id="concl.p1.p1" about="#concl.p1.p1">Conclusion</dc:title>
    </metadata>
    <omtext xml:id="concl.p2" about="#concl.p2" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
      <CMP xml:id="concl.p2.p1" about="#concl.p2.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">In this note we have given an example of standard mathematical markup and shown how a a
<phrase xml:id="concl.p2.p1.p1" about="#concl.p2.p1.p1" stex:srcref="paper.tex#textrange(from=119;42,to=120;8)">sTeX</phrase> collection can be set up for automation.
</CMP>
    </omtext>
  </omgroup>
  <bibliography files="kwarc"/>
  <!--The data elements-->
  <private xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="id36156444">
    <data format="text"><![CDATA[\begin]]></data>
  </private>
  <private xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="id36151430">
    <data format="text"><![CDATA[\end{document}]]></data>
  </private>
</omdoc>
