diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/stex/example/paper/intro.omdoc')
-rw-r--r-- | Master/texmf-dist/doc/latex/stex/example/paper/intro.omdoc | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/intro.omdoc b/Master/texmf-dist/doc/latex/stex/example/paper/intro.omdoc new file mode 100644 index 00000000000..a4fe8c85f96 --- /dev/null +++ b/Master/texmf-dist/doc/latex/stex/example/paper/intro.omdoc @@ -0,0 +1,145 @@ +<?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:omdoc="http://omdoc.org/ns" xmlns="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns" xmlns:om="http://www.openmath.org/OpenMath"> + <omdoc:omgroup layout="sectioning" xml:id="intro" about="#intro" stex:srcref="intro.tex#textrange(from=1;0,to=91;13)"><omdoc:metadata xml:id="intro.metadata1" about="#intro.metadata1" stex:srcref="intro.tex#textrange(from=1;0,to=1;39)"><dc:title xml:id="intro.metadata1.title1" about="#intro.metadata1.title1" stex:srcref="intro.tex#textrange(from=1;0,to=91;13)">Introduction</dc:title></omdoc:metadata> + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.p1"> + <p style="" class="p" id="intro.p1.p1">We will show how to semantically mark up mathematics in the sTeX +format <cite class="cite">[<citation xmlns="http://omdoc.org/ns" bibrefs="kohlhase:ulsmf08"/>]</cite> and how to convert it into +OMDoc <cite class="cite">[<citation xmlns="http://omdoc.org/ns" bibrefs="kohlhase:omdoc1.3"/>]</cite>.</p> + </div> + + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.p2"> + <p style="" class="p" id="intro.p2.p1">We have some mathematical material in <omdoc:oref href="#sec.math"/> 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.</p> + </div> +<omdoc:omgroup layout="sectioning" xml:id="intro.omgroup4" about="#intro.omgroup4" stex:srcref="intro.tex#textrange(from=9;0,to=43;13)"><omdoc:metadata xml:id="intro.omgroup4.metadata1" about="#intro.omgroup4.metadata1" stex:srcref="intro.tex#textrange(from=9;0,to=42;12)"><dc:title xml:id="intro.omgroup4.metadata1.title1" about="#intro.omgroup4.metadata1.title1" stex:srcref="intro.tex#textrange(from=9;0,to=43;13)">The Setup</dc:title></omdoc:metadata><theory xml:id="setup" about="#setup" stex:srcref="intro.tex#textrange(from=10;0,to=42;12)"><omdoc:symbol name="target" xml:id="target.def.sym" about="#target.def.sym" stex:srcref="intro.tex#textrange(from=11;0,to=18;20)"/><omdoc:symbol name="module" xml:id="module.def.sym" about="#module.def.sym" stex:srcref="intro.tex#textrange(from=11;0,to=18;20)"/><omdoc:definition for="target module" xml:id="setup.definition3" about="#setup.definition3" stex:srcref="intro.tex#textrange(from=11;0,to=18;20)"><omdoc:CMP xml:id="setup.definition3.CMP1" about="#setup.definition3.CMP1" stex:srcref="intro.tex#textrange(from=11;0,to=18;20)"> + <p xmlns="http://www.w3.org/1999/xhtml" style="" class="p" id="setup.definition3.CMP1.p1">The source of this note is contained in the file <span style="" class="text typewriter">paper.tex</span>. We call it +the <omdoc:idx xml:id="setup.definition3.CMP1.p1.idx1" about="#setup.definition3.CMP1.p1.idx1" stex:srcref="intro.tex#textrange(from=12;59,to=13;23)"><omdoc:idt xml:id="setup.definition3.CMP1.p1.idx1.idt1" about="#setup.definition3.CMP1.p1.idx1.idt1" stex:srcref="intro.tex#textrange(from=12;59,to=13;23)"><omdoc:term cd="setup" name="target" role="definiendum" xml:id="setup.definition3.CMP1.p1.idx1.idt1.term1" about="#setup.definition3.CMP1.p1.idx1.idt1.term1" stex:srcref="intro.tex#textrange(from=12;59,to=13;23)">target</omdoc:term></omdoc:idt><omdoc:ide index="default" xml:id="setup.definition3.CMP1.p1.idx1.ide2" about="#setup.definition3.CMP1.p1.idx1.ide2" stex:srcref="intro.tex#textrange(from=12;59,to=13;23)"><omdoc:idp>target</omdoc:idp></omdoc:ide></omdoc:idx>, since formatting it with LaTeX will generate the main +document. The content in <omdoc:oref href="#sec.contfuncs"/> and <omdoc:oref href="#sec.differentiable"/> +comes from included files <span style="" class="text typewriter">continuous.tex</span> and +<span style="" class="text typewriter">differentiable.tex</span>, we will call them <omdoc:idx xml:id="setup.definition3.CMP1.p1.idx2" about="#setup.definition3.CMP1.p1.idx2" stex:srcref="intro.tex#textrange(from=15;18,to=16;68)"><omdoc:idt xml:id="setup.definition3.CMP1.p1.idx2.idt1" about="#setup.definition3.CMP1.p1.idx2.idt1" stex:srcref="intro.tex#textrange(from=15;18,to=16;68)"><omdoc:term cd="setup" name="module" role="definiendum" xml:id="setup.definition3.CMP1.p1.idx2.idt1.term1" about="#setup.definition3.CMP1.p1.idx2.idt1.term1" stex:srcref="intro.tex#textrange(from=15;18,to=16;68)">module</omdoc:term></omdoc:idt><omdoc:ide index="default" xml:id="setup.definition3.CMP1.p1.idx2.ide2" about="#setup.definition3.CMP1.p1.idx2.ide2" stex:srcref="intro.tex#textrange(from=15;18,to=16;68)"><omdoc:idp>module</omdoc:idp></omdoc:ide></omdoc:idx>s, since they may +be used (i.e. included) by other target documents as well.</p> + </omdoc:CMP></omdoc:definition><omdoc:omtext xml:id="setup.omtext4" about="#setup.omtext4" stex:srcref="intro.tex#textrange(from=20;1,to=31;14)"><omdoc:CMP xml:id="setup.omtext4.CMP1" about="#setup.omtext4.CMP1" stex:srcref="intro.tex#textrange(from=20;1,to=31;14)"> + <p xmlns="http://www.w3.org/1999/xhtml" style="" class="p" id="setup.omtext4.CMP1.p1">As the modules are built for inclusion into other documents, they are not +self-contained:</p> + + <ol xmlns="http://www.w3.org/1999/xhtml" class="enumerate" id="I5"> + + <li class="item" id="I5.i1"> + + <div class="para" id="I5.i1.p1"> + <p style="" class="p" id="I5.i1.p1.p1">they do not contain a LaTeX preamble and +<code class="verbatim typewriter" style="">\begin</code>/<code class="verbatim typewriter" style="">\end{document}</code>, and</p> + </div> + + </li> + + <li class="item" id="I5.i2"> + + <div class="para" id="I5.i2.p1"> + <p style="" class="p" id="I5.i2.p1.p1">they may depend on other modules, whose semantic macros they need to include,</p> + </div> + + </li> + + <li class="item" id="I5.i3"> + + <div class="para" id="I5.i3.p1"> + <p style="" class="p" id="I5.i3.p1.p1">to facilitate this a module file <span style="" class="text typewriter">modf.tex</span> comes with a “semantic +macro short form” <span style="" class="text typewriter">modf.sms</span> that can be included without generating +output in the PDF.</p> + </div> + + </li> + + </ol> + </omdoc:CMP></omdoc:omtext><omdoc:omtext xml:id="setup.omtext5" about="#setup.omtext5" stex:srcref="intro.tex#textrange(from=33;1,to=41;14)"><omdoc:CMP xml:id="setup.omtext5.CMP1" about="#setup.omtext5.CMP1" stex:srcref="intro.tex#textrange(from=33;1,to=41;14)"> + <p xmlns="http://www.w3.org/1999/xhtml" style="" class="p" id="setup.omtext5.CMP1.p1">This will have consequences for the automation. Concretely, the module on +differentiable functions in <omdoc:oref href="#sec.differentiable"/> depends on that for continuous +functions in <omdoc:oref href="#sec.contfuncs"/>. Both of them depend on modules for real numbers, +sets and functions that we do not want to cover in this note. <span style="" class="text inlinedef">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 <omdoc:idx xml:id="setup.omtext5.CMP1.p1.idx1" about="#setup.omtext5.CMP1.p1.idx1" stex:srcref="intro.tex#textrange(from=33;1,to=33;17)"><omdoc:idt xml:id="setup.omtext5.CMP1.p1.idx1.idt1" about="#setup.omtext5.CMP1.p1.idx1.idt1" stex:srcref="intro.tex#textrange(from=33;1,to=33;17)"><omdoc:term cd="setup" name="background-module" role="definiendum" xml:id="setup.omtext5.CMP1.p1.idx1.idt1.term1" about="#setup.omtext5.CMP1.p1.idx1.idt1.term1" stex:srcref="intro.tex#textrange(from=33;1,to=33;17)">background module</omdoc:term></omdoc:idt><omdoc:ide index="default" xml:id="setup.omtext5.CMP1.p1.idx1.ide2" about="#setup.omtext5.CMP1.p1.idx1.ide2" stex:srcref="intro.tex#textrange(from=33;1,to=33;17)"><omdoc:idp>background</omdoc:idp><omdoc:idp>module</omdoc:idp></omdoc:ide></omdoc:idx>s</span>. In our setup we +keep them in the subdirectory <span style="" class="text typewriter">background</span>.</p> + </omdoc:CMP></omdoc:omtext></theory></omdoc:omgroup><omdoc:omgroup layout="sectioning" xml:id="intro.omgroup5" about="#intro.omgroup5" stex:srcref="intro.tex#textrange(from=45;0,to=53;13)"><omdoc:metadata xml:id="intro.omgroup5.metadata1" about="#intro.omgroup5.metadata1" stex:srcref="intro.tex#textrange(from=45;0,to=45;51)"><dc:title xml:id="intro.omgroup5.metadata1.title1" about="#intro.omgroup5.metadata1.title1" stex:srcref="intro.tex#textrange(from=45;0,to=53;13)">Formatting and OMDoc conversion</dc:title></omdoc:metadata> + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.omgroup5.p1"> + <p style="" class="p" id="intro.omgroup5.p1.p1">To format an sTeX document — i.e. to produce a PDF file from the sTeX marked-up +sources — we only need to run the <span style="" class="text typewriter">pdflatex</span> program over the target document +— assuming that all modules (regular or background) have semantic macro short forms.</p> + </div> + + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.omgroup5.p2"> + <p style="" class="p" id="intro.omgroup5.p2.p1">To convert an sTeX document to OMDoc, we need to run <span style="" class="text typewriter">latexml</span> over it, +post-process the result by <span style="" class="text typewriter">latexmlpost</span>, and finally massage away all remaining +LaTeXML islands with a stylesheet, see  <cite class="cite">[<citation xmlns="http://omdoc.org/ns" bibrefs="kohlhase:ssmtl*"/>]</cite> for details.</p> + </div> +</omdoc:omgroup><omdoc:omgroup layout="sectioning" xml:id="intro.omgroup6" about="#intro.omgroup6" stex:srcref="intro.tex#textrange(from=55;0,to=89;13)"><omdoc:metadata xml:id="intro.omgroup6.metadata1" about="#intro.omgroup6.metadata1" stex:srcref="intro.tex#textrange(from=55;0,to=55;42)"><dc:title xml:id="intro.omgroup6.metadata1.title1" about="#intro.omgroup6.metadata1.title1" stex:srcref="intro.tex#textrange(from=55;0,to=89;13)">Makefile-based Automation</dc:title></omdoc:metadata> + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.omgroup6.p1"> + <p style="" class="p" id="intro.omgroup6.p1.p1">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 +<span style="" class="text typewriter">make</span> targets.</p> + </div> + + <dl xmlns="http://www.w3.org/1999/xhtml" class="description" id="I6"> + + <dt class="item" id="I6.i1"><span class="tag"><span style="" class="text typewriter">make omdoc</span></span></dt> + <dd class="item"> + <div class="para" id="I6.i1.p1"> + <p style="" class="p" id="I6.i1.p1.p1">will trigger the OMDoc transformation of the target +document.</p> + </div> +</dd> + + <dt class="item" id="I6.i2"><span class="tag"><span style="" class="text typewriter">make mods</span></span></dt> + <dd class="item"> + <div class="para" id="I6.i2.p1"> + <p style="" class="p" id="I6.i2.p1.p1">will trigger the OMDoc transformation of the modules.</p> + </div> +</dd> + + <dt class="item" id="I6.i3"><span class="tag"><span style="" class="text typewriter">make pdf</span></span></dt> + <dd class="item"> + <div class="para" id="I6.i3.p1"> + <p style="" class="p" id="I6.i3.p1.p1">will trigger the LaTeX formatting the target</p> + </div> +</dd> + + <dt class="item" id="I6.i4"><span class="tag"><span style="" class="text typewriter">make mpdf</span></span></dt> + <dd class="item"> + <div class="para" id="I6.i4.p1"> + <p style="" class="p" id="I6.i4.p1.p1">will trigger the LaTeX formatting the modules</p> + </div> +</dd> + + <dt class="item" id="I6.i5"><span class="tag"><span style="" class="text typewriter">make sms</span></span></dt> + <dd class="item"> + <div class="para" id="I6.i5.p1"> + <p style="" class="p" id="I6.i5.p1.p1">will trigger the re-generation of all semantic macro short +forms of modules (this is implicitly called in all the other <span style="" class="text typewriter">make</span> targets)</p> + </div> +</dd> + + </dl> + + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.omgroup6.p2"> + <p style="" class="p" id="intro.omgroup6.p2.p1">To use this, we need to set up a <span style="" class="text typewriter">Makefile</span> of the following form:</p> + </div> + + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.omgroup6.p3"> + <p style="" class="p" id="intro.omgroup6.p3.p1">The variable <span style="" class="text listing ">STEXDIR}}<span style="" class="text lstspace"> </span>has<span style="" class="text lstspace"> </span>to<span style="" class="text lstspace"> </span>be<span style="" class="text lstspace"> </span>set<span style="" class="text lstspace"> </span>to<span style="" class="text lstspace"> </span>the<span style="" class="text lstspace"> </span>main<span style="" class="text lstspace"> </span>directory<span style="" class="text lstspace"> </span>of<span style="" class="text lstspace"> </span>the</span>sTeX +distribution. The variable <span style="" class="text listing ">TARGET}}<span style="" class="text lstspace"> </span>specifies<span style="" class="text lstspace"> </span>the<span style="" class="text lstspace"> </span>target<span style="" class="text lstspace"> </span>document<span style="" class="text lstspace"> </span>(all<span style="" class="text lstspace"> </span>other</span><span style="" class="text typewriter">*.tex</span> files that are not excluded in the <span style="" class="text listing ">BUTFILES}}<span style="" class="text lstspace"> </span>variables<span style="" class="text lstspace"> </span>are<span style="" class="text lstspace">      </span>considered<span style="" class="text lstspace"> </span>as<span style="" class="text lstspace"> </span>modules).<span style="" class="text lstspace"> </span>Here,<span style="" class="text lstspace"> </span>the</span><span style="" class="text typewriter">background</span> directory for convenience. The +<span style="" class="text listing ">MODSLIBDIR}}<span style="" class="text lstspace"> </span>specifies<span style="" class="text lstspace"> </span>the<span style="" class="text lstspace"> </span>location<span style="" class="text lstspace"> </span>of<span style="" class="text lstspace"> </span>the<span style="" class="text lstspace"> </span>prefix<span style="" class="text lstspace"> </span>and<span style="" class="text lstspace"> </span>postfix<span style="" class="text lstspace"> </span>files</span><span style="" class="text typewriter">pre.tex</span> and <span style="" class="text typewriter">post.tex</span> 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 sTeX distribution and configure the +default make target (<span style="" class="text typewriter">make all</span>) to be produce the pdf version</p> + </div> + + <div xmlns="http://www.w3.org/1999/xhtml" class="para" id="intro.omgroup6.p4"> + <p style="" class="p" id="intro.omgroup6.p4.p1">Note that in the directory <span style="" class="text typewriter">background</span> we have a very similar Makefile as +above. The only differences are that the variable <span style="" class="text listing ">STEXDIR}}<span style="" class="text lstspace"> </span>is<span style="" class="text lstspace"> </span>adapted<span style="" class="text lstspace"> </span>and<span style="" class="text lstspace">     </span>that<span style="" class="text lstspace"> </span>the</span><span style="" class="text listing ">BUTFILE}}<span style="" class="text lstspace"> </span>variable<span style="" class="text lstspace"> </span>is<span style="" class="text lstspace"> </span>set<span style="" class="text lstspace"> </span>to</span><span style="" class="text typewriter">pre.tex</span> and +<span style="" class="text typewriter">post.tex</span>, so that they are not converted. In the directory +<span style="" class="text typewriter">background</span> we have followed good practice by establishing a phony</p> + </div> +</omdoc:omgroup></omdoc:omgroup> +</omdoc> |