GitBucket
4.21.2
Toggle navigation
Snippets
Sign in
Files
Branches
1
Releases
1
Issues
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
nigel.stanger
/
XML
Browse code
Removed derived XSLT files.
master
OLD_GRAPHICS_HANDLING
1 parent
7167300
commit
6d7fce6378c788bc90c311df68fe10290900c01a
cedwards
authored
on 8 Jan 2004
Patch
Showing
2 changed files
xml2html.xsl
xml2latex.xsl
Show notes
View
xml2html.xsl
100755 → 0
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl-out:stylesheet xmlns:xsl-out="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl-out:strip-space elements="*"/><xsl-out:param name="department">INFO</xsl-out:param><xsl-out:param name="paper"/><xsl-out:output method="html" encoding="ISO-8859-1" media-type="text/html" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/><xsl-out:template match="/document"><xsl-out:comment> THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! </xsl-out:comment><HTML><HEAD><LINK REL="Stylesheet" HREF="http://info-nts-05.otago.ac.nz/info321/styles.css" TYPE="text/css"/><TITLE><xsl-out:apply-templates select="title" mode="preamble"/></TITLE></HEAD><BODY><xsl-out:apply-templates/><HR/><ADDRESS><xsl-out:apply-templates select="copyright"/><xsl-out:apply-templates select="document-metadata/cvs-id"/></ADDRESS></BODY></HTML></xsl-out:template> <xsl-out:template name="PaperCode" match="PaperCode"> <xsl:value-of select="$department" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&nbsp;</xsl:text> <xsl:value-of select="$paper" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="OracleServer" match="OracleServer">Oracle9<I xmlns:xsl="http://www.w3.org/1999/XSL/Transform">i</I></xsl-out:template> <xsl-out:template name="paragraph" match="paragraph|para|p"><P xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></P></xsl-out:template> <xsl-out:template name="newline" match="newline"><BR xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="page-break" match="page-break|new-page"/> <xsl-out:template name="non-breaking-space" match="non-breaking-space|nbsp"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&nbsp;</xsl:text></xsl-out:template> <xsl-out:template name="non-breaking-space-math" match="non-breaking-space|nbsp" mode="math"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&nbsp;</xsl:text></xsl-out:template> <xsl-out:template name="ellipsis-sign" match="ellipsis-sign|etc|ellipsis|dots"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8230;</xsl:text></xsl-out:template> <xsl-out:template name="endash" match="endash|en-dash"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8211;</xsl:text></xsl-out:template> <xsl-out:template name="emdash" match="emdash|em-dash"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8212;</xsl:text></xsl-out:template> <xsl-out:template name="apostrophe" match="apostrophe"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8217;</xsl:text></xsl-out:template> <xsl-out:template name="dollar" match="dollar">$</xsl-out:template> <xsl-out:template name="percent-sign" match="percent-sign">%</xsl-out:template> <xsl-out:template name="ampersand" match="ampersand"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&amp;</xsl:text></xsl-out:template> <xsl-out:template name="trademark-sign" match="trademark-sign|trademark|TM"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8482;</xsl:text></xsl-out:template> <xsl-out:template name="copyright-sign" match="copyright-sign"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#169;</xsl:text></xsl-out:template> <xsl-out:template name="degree-sign" match="degree-sign|degrees"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#176;</xsl:text></xsl-out:template> <xsl-out:template name="section-sign" match="section-sign"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#167;</xsl:text></xsl-out:template> <xsl-out:template name="paragraph-sign" match="paragraph-sign"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#182;</xsl:text></xsl-out:template> <xsl-out:template name="pi-math" match="pi" mode="math"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#960;</xsl:text></xsl-out:template> <xsl-out:template name="pi-normal" match="pi"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#960;</xsl:text></xsl-out:template> <xsl-out:template name="LaTeX" match="LaTeX|latex">L<SUP xmlns:xsl="http://www.w3.org/1999/XSL/Transform">A</SUP>T<SUB xmlns:xsl="http://www.w3.org/1999/XSL/Transform">E</SUB>X</xsl-out:template> <xsl-out:template name="menu-separator" match="menu-separator|menusep"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8594;</xsl:text></xsl-out:template> <xsl-out:template name="menu-item" match="menu/item"><B xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></B></xsl-out:template> <xsl-out:template name="emph" match="emph"><EM xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></EM></xsl-out:template> <xsl-out:template name="italic" match="italic"><I xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></I></xsl-out:template> <xsl-out:template name="strong" match="strong"><STRONG xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></STRONG></xsl-out:template> <xsl-out:template name="bold" match="bold"><B xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></B></xsl-out:template> <xsl-out:template name="term" match="term"><I CLASS="term" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></I></xsl-out:template> <xsl-out:template name="foreign" match="foreign"><I CLASS="foreign" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></I></xsl-out:template> <xsl-out:template name="code" match="code"><CODE xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></CODE></xsl-out:template> <xsl-out:template name="superscript" match="superscript"><SUP xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></SUP></xsl-out:template> <xsl-out:template name="subscript" match="subscript"><SUB xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></SUB></xsl-out:template> <xsl-out:template name="no-break" match="no-break|mbox"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="code-block" match="code-block"> <PRE CLASS="code" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></PRE> </xsl-out:template> <xsl-out:template name="verbatim" match="verbatim"> <PRE xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></PRE> </xsl-out:template> <xsl-out:template name="single-quote" match="quote[@single='yes']|q[@single='yes']"> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8216;</xsl:text> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8217;</xsl:text> </xsl-out:template> <xsl-out:template name="double-quote" match="quote|qq"> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8220;</xsl:text> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8221;</xsl:text> </xsl-out:template> <xsl-out:template name="nested-double-quote" match="quote//quote"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(count(ancestor::quote) mod 2) = 0"> <xsl:call-template name="double-quote"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="single-quote"/> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="nested-single-quote" match="quote[@single='yes']//quote" priority="2"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(count(ancestor::quote) mod 2) = 0"> <xsl:call-template name="single-quote"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="double-quote"/> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="itemised-list" match="itemised-list|itemize|unordered-list|bulleted-list|bullet-list|bullet-points|UL|ul"> <UL xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </UL> </xsl-out:template> <xsl-out:template name="enumerated-list" match="enumerated-list|enumerate|ordered-list|numbered-list|question-list|OL|ol"> <OL xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </OL> </xsl-out:template> <xsl-out:template name="definition-list" match="definition-list|description-list|DL|dl"> <!-- Hmm, <DL>s in HTML tend to come out with the spacing a bit wrong (or maybe it's just my browser?). Might using a table be better? Messy if the keyword is long, though, and you don't get a proper hanging indent... Maybe this is something that could be handled in CSS instead. --> <DL xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates mode="definition-list"/> </DL> <!-- <TABLE BORDER="0" CELLPADDING="10"> --> <!-- <xsl:apply-templates/> --> <!-- </TABLE> --> </xsl-out:template> <xsl-out:template name="item" match="item"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="count(paragraph|para|p) != 0"> <LI><xsl:apply-templates/></LI> </xsl:when> <xsl:otherwise> <LI><P><xsl:apply-templates/></P></LI> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="definition-item" match="item" mode="definition-list"> <DT xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><P><xsl:apply-templates select="keyword|topic|DT|dt"/></P></DT> <DD xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates select="definition|description|discourse|DD|dd"/></DD> <!-- <TR VALIGN="TOP"> --> <!-- <TD><P><xsl:apply-templates select="keyword"/></P></TD> --> <!-- <TD><xsl:apply-templates select="definition|description|discourse"/></TD> --> <!-- </TR> --> </xsl-out:template> <xsl-out:template name="keyword" match="keyword|topic|DT|dt"><STRONG xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></STRONG></xsl-out:template> <xsl-out:template name="definition" match="item/definition|item/description|item/discourse|item/DD|item/dd"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="count(paragraph|para|p) != 0"> <xsl:apply-templates/> </xsl:when> <xsl:otherwise> <P><xsl:apply-templates/></P> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="section" match="section"> <xsl:if test="@label" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><A NAME="{@label}"/></xsl:if> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <!-- Since HTML doesn't really support footnotes as such, include them as "section notes" instead. --> <xsl:if test="count(.//footnote) > 0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <P><STRONG>Notes:</STRONG></P> <xsl:apply-templates select=".//footnote" mode="list"/> </xsl:if> </xsl-out:template> <xsl-out:template name="footnote" match="footnote"> <A xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:attribute name="NAME"> <xsl:text>footnote-</xsl:text> <xsl:number level="any" count="footnote"/> <xsl:text>-source</xsl:text> </xsl:attribute> <xsl:attribute name="HREF"> <xsl:text>#footnote-</xsl:text> <xsl:number level="any" count="footnote"/> <xsl:text>-target</xsl:text> </xsl:attribute> <xsl:text>[</xsl:text> <xsl:number level="any" count="footnote"/> <xsl:text>]</xsl:text> </A> </xsl-out:template> <xsl-out:template name="footnote-list" match="footnote" mode="list"> <P xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <A> <xsl:attribute name="NAME"> <xsl:text>footnote-</xsl:text> <xsl:number level="any" count="footnote"/> <xsl:text>-target</xsl:text> </xsl:attribute> <xsl:text>[</xsl:text> <xsl:number level="any" count="footnote"/> <xsl:text>]</xsl:text> </A> <xsl:text> </xsl:text> <xsl:apply-templates/> <xsl:text> </xsl:text> <!-- Provide a back link to the original footnote marker. --> <A> <xsl:attribute name="HREF"> <xsl:text>#footnote-</xsl:text> <xsl:number level="any" count="footnote"/> <xsl:text>-source</xsl:text> </xsl:attribute> <xsl:text>[Back]</xsl:text> </A> </P> </xsl-out:template> <xsl-out:template name="preamble-title" match="document/title" mode="preamble"> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="preamble-author" match="document/author" mode="preamble"/> <xsl-out:template name="preamble-date" match="document/date" mode="preamble"/> <xsl-out:template name="document-title" match="document/title"> <H1 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></H1> </xsl-out:template> <xsl-out:template name="document-author" match="document/author"/> <xsl-out:template name="document-date" match="document/date"/> <xsl-out:template name="generate-subs"/> <xsl-out:template name="section-title" match="section/title"> <!-- The depth is used in a couple of places, so we pre-calculate it. --> <xsl:variable name="depth" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:number value="1 + count(ancestor::section)"/> <xsl:if test="1 + count(ancestor::section) > 6">6</xsl:if> </xsl:variable> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><H</xsl:text><xsl:number value="$depth" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">></xsl:text> <xsl:number count="section" level="multiple" format="1.1.1.1.1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:text> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></H</xsl:text><xsl:number value="$depth" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">></xsl:text> </xsl-out:template> <xsl-out:template name="quotation" match="quotation"> <P xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:if test="@align"> <xsl:attribute name="ALIGN"> <xsl:value-of select="@align"/> </xsl:attribute> </xsl:if> <I><xsl:apply-templates/></I> </P> </xsl-out:template> <xsl-out:template name="metadata" match="metadata"/> <xsl-out:template name="omit" match="omit"/> <xsl-out:template match="figure/id"/> <xsl-out:template match="figure/label"/> <xsl-out:template name="comment" match="comment"> <xsl:comment xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </xsl:comment> </xsl-out:template> <xsl-out:template name="tabular" match="tabular"> <TABLE xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:attribute name="BORDER"> <xsl:value-of select="@border"/> <xsl:if test="not(@border)">0</xsl:if> </xsl:attribute> <xsl:if test="@align"> <xsl:attribute name="ALIGN"> <xsl:value-of select="@align"/> </xsl:attribute> </xsl:if> <!-- Note different ordering of tabular components: HTML requires THEAD and TFOOT to precede TBODY. --> <xsl:apply-templates select="tabular-header"/> <xsl:apply-templates select="tabular-footer"/> <xsl:apply-templates select="tabular-body"/> </TABLE> </xsl-out:template> <xsl-out:template name="aligned-column" match="column[@align]"/> <xsl-out:template name="unaligned-column" match="column[not(@align)]"/> <xsl-out:template name="tabular-header" match="tabular-header"> <THEAD xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </THEAD> </xsl-out:template> <xsl-out:template name="tabular-footer" match="tabular-footer"> <TFOOT xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </TFOOT> </xsl-out:template> <xsl-out:template name="tabular-body" match="tabular-body"> <TBODY xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </TBODY> </xsl-out:template> <xsl-out:template name="row" match="row"> <TR xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:apply-templates/> </TR> </xsl-out:template> <xsl-out:template name="row-rule-full" match="row-rule[not(@columns)]"/> <xsl-out:template name="row-rule-partial" match="row-rule[@columns]"/> <xsl-out:template name="multirow-cell" match="cell" mode="multi-row"/> <xsl-out:template name="multicolumn-cell" match="cell" mode="multi-column"/> <xsl-out:template match="cell"> <!-- position() doesn't seem to work very well in this context. --> <xsl:variable name="column-no" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:number/></xsl:variable> <TD xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:attribute name="ALIGN"> <xsl:value-of select="@align"/> <xsl:if test="not(@align)"> <xsl:value-of select="ancestor::tabular/columns/column[position() = $column-no]/@align"/> <xsl:if test="not(ancestor::tabular/columns/column[position() = $column-no]/@align)">left</xsl:if> </xsl:if> </xsl:attribute> <xsl:attribute name="COLSPAN"> <xsl:value-of select="@columns"/> <xsl:if test="not(@columns)">1</xsl:if> </xsl:attribute> <xsl:attribute name="ROWSPAN"> <xsl:value-of select="@rows"/> <xsl:if test="not(@rows)">1</xsl:if> </xsl:attribute> <xsl:apply-templates/> </TD> </xsl-out:template> <xsl-out:template name="hyperlink-label" match="hyperlink[@label]"><A HREF="#{@label}" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></A></xsl-out:template> <xsl-out:template name="hyperlink-url" match="hyperlink[@url and node()]"><A HREF="{@url}" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></A></xsl-out:template> <xsl-out:template name="empty-hyperlink-url" match="hyperlink[@url and not(node())]"><A HREF="{@url}" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><CODE><xsl:value-of select="@url"/></CODE></A></xsl-out:template> <xsl-out:template name="url" match="url|uri|email|e-mail|email-address|e-mail-address"><CODE xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></CODE></xsl-out:template> <xsl-out:template name="reference" match="reference"> <!-- Find the element whose label is the same as our label. --> <xsl:apply-templates select="//*[@label = current()/@label]" mode="reference" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="section-reference" match="section" mode="reference"> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">Section&#160;</xsl:text> <xsl:number count="figure" level="multiple" format="1.1.1.1.1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="figure-reference" match="figure" mode="reference"> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">Figure&#160;</xsl:text> <xsl:number count="figure" level="any" format="1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="table-reference" match="table" mode="reference"> <xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">Table&#160;</xsl:text> <xsl:number count="table" level="any" format="1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="figure" match="figure"> <DIV CLASS="figure" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:if test="@label"><A NAME="{@label}"/></xsl:if> <xsl:if test="count(id) != 0"><A NAME="{id}"/></xsl:if> <xsl:apply-templates select="*[not(self::caption)]"/> <xsl:if test="count(caption) != 0"> <BR/> <xsl:apply-templates select="caption"/> </xsl:if> </DIV> </xsl-out:template> <xsl-out:template name="table" match="table"> <DIV CLASS="table" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:if test="@label"><A NAME="{@label}"/></xsl:if> <xsl:apply-templates select="*[not(self::caption)]"/> <xsl:if test="count(caption) != 0"> <BR/> <xsl:apply-templates select="caption"/> </xsl:if> </DIV> </xsl-out:template> <xsl-out:template name="figure-caption" match="figure/caption"> <STRONG xmlns:xsl="http://www.w3.org/1999/XSL/Transform">Figure <xsl:number count="figure" level="any" format="1"/>. </STRONG><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="table-caption" match="table/caption"> <STRONG xmlns:xsl="http://www.w3.org/1999/XSL/Transform">Table <xsl:number count="table" level="any" format="1"/>. </STRONG><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template match="image" mode="latex"/> <xsl-out:template match="image[count(provide-large-version) = 0]"> <IMG BORDER="0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:attribute name="SRC"> <xsl:choose> <xsl:when test="(name(/child::node()[1])='tutorial') or (name(/child::node()[1])='laboratory')"> <xsl:text>Graphics/</xsl:text> <xsl:value-of select="basename"/> <xsl:text>-72dpi.png</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>images/</xsl:text> <xsl:value-of select="basename"/> <xsl:text>.</xsl:text> <xsl:choose> <xsl:when test="count(format) != 0"> <xsl:value-of select="format"/> </xsl:when> <xsl:otherwise> <xsl:text>png</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:attribute name="ALT"><xsl:apply-templates select="description"/></xsl:attribute> </IMG> </xsl-out:template> <xsl-out:template match="image[count(provide-large-version) != 0]"> <A xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:attribute name="HREF"> <xsl:text>images/</xsl:text> <xsl:value-of select="basename"/> <xsl:text>-zoom.</xsl:text> <xsl:choose> <xsl:when test="count(format) != 0"> <xsl:value-of select="format"/> </xsl:when> <xsl:otherwise> <xsl:text>png</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:attribute> <IMG BORDER="0"> <xsl:attribute name="SRC"> <xsl:text>images/</xsl:text> <xsl:value-of select="basename"/> <xsl:text>.</xsl:text> <xsl:choose> <xsl:when test="count(format) != 0"> <xsl:value-of select="format"/> </xsl:when> <xsl:otherwise> <xsl:text>png</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:attribute name="ALT"> <xsl:apply-templates select="description"/> </xsl:attribute> </IMG> <BR CLEAR="right"/> <xsl:text>(Larger version)</xsl:text> </A> </xsl-out:template> <xsl-out:template name="include-xml" match="include-document"> <xsl:apply-templates select="document(@file)" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="environment" match="environment[@file]"/> <xsl-out:template name="latex-package" match="latex-packages/package"/> <xsl-out:template name="latex-command" match="latex-packages/command"/> <xsl-out:template name="raw-latex" match="raw-code[@format = 'latex']"/> <xsl-out:template name="raw-html" match="raw-code[@format = 'html']"><xsl:copy-of select="*" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="latex-input" match="latex-input"/> <xsl-out:template name="process-when-latex" match="process-when[@format = 'latex']"/> <xsl-out:template name="process-when-html" match="process-when[@format = 'html']"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="math-inline" match="paragraph//math|para//math|p//math"><xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="math-display" match="math"><P ALIGN="center" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="math"/></P></xsl-out:template> <xsl-out:template name="equation-array" match="equation-array"> <TABLE CLASS="equation" BORDER="0" ALIGN="CENTER" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="math"/></TABLE> </xsl-out:template> <xsl-out:template match="equation-array/row" mode="math"> <TR xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><TD ALIGN="RIGHT"><xsl:apply-templates select="left"/></TD><TD ALIGN="CENTER"><xsl:apply-templates select="middle"/></TD><TD ALIGN="LEFT"><xsl:apply-templates select="right"/></TD></TR> </xsl-out:template> <xsl-out:template name="math-text" match="text" mode="math"><xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="digit-group-separator" match="digit-group-separator|digitsep"> <xsl:call-template name="non-breaking-space" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="digit-group-separator-math" match="digit-group-separator|digitsep" mode="math"> <xsl:call-template name="non-breaking-space" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="superscript-math" match="superscript" mode="math"><SUP xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="math"/></SUP></xsl-out:template> <xsl-out:template name="subscript-math" match="subscript" mode="math"><SUB xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="math"/></SUB></xsl-out:template> <xsl-out:template name="plus-operator-math" match="plus" mode="math">+</xsl-out:template> <xsl-out:template name="plus-operator" match="plus">+</xsl-out:template> <xsl-out:template name="minus-operator-math" match="minus" mode="math">-</xsl-out:template> <xsl-out:template name="minus-operator" match="minus">-</xsl-out:template> <xsl-out:template name="times-operator-math" match="times" mode="math"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> &#215; </xsl:text></xsl-out:template> <xsl-out:template name="times-operator" match="times"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> &#215; </xsl:text></xsl-out:template> <xsl-out:template name="divide-operator-math" match="divide" mode="math">/</xsl-out:template> <xsl-out:template name="divide-operator" match="divide">/</xsl-out:template> <xsl-out:template name="equals-operator-math" match="equals" mode="math"> = </xsl-out:template> <xsl-out:template name="equals-operator" match="equals"> = </xsl-out:template> <xsl-out:template name="approximately-equals-operator-math" match="approximately-equals|approximately-equal-to|approx" mode="math"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8776;</xsl:text></xsl-out:template> <xsl-out:template name="approximately-equals-operator" match="approximately-equals|approximately-equal-to|approx"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#8776;</xsl:text></xsl-out:template> <xsl-out:template name="degree-sign-math" match="degree-sign" mode="math"><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">&#176;</xsl:text></xsl-out:template> <xsl-out:template name="log-like-function" match="function" mode="math"><xsl:value-of select="@name" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="math-variable" match="variable" mode="math"><I xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="math"/></I></xsl-out:template> <xsl-out:template name="math-fraction" match="fraction" mode="math"><xsl:apply-templates select="numerator" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><BIG xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> / </BIG><xsl:apply-templates select="denominator" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> </xsl-out:stylesheet>
Show notes
View
xml2latex.xsl
100755 → 0
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl-out:stylesheet xmlns:xsl-out="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl-out:strip-space elements="*"/><xsl-out:param name="department">INFO</xsl-out:param><xsl-out:param name="paper"/><xsl-out:output method="text" encoding="ISO-8859-1" media-type="text/plain"/><xsl-out:param name="image-format">pdf</xsl-out:param><xsl-out:param name="standalone">yes</xsl-out:param><xsl-out:template match="/document"><xsl-out:choose><xsl-out:when test="$standalone = 'yes'"> % THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! \documentclass[12pt,a4paper]{article} \usepackage[margin=1in]{geometry} \usepackage{mathpple} \usepackage{multirow} \usepackage{graphicx} <xsl-out:apply-templates select="document('environment.xml')/environment/latex-packages"/> \usepackage[pdftex]{hyperref} <xsl-out:apply-templates select="document('environment.xml')/environment/latex-commands"/><xsl-out:apply-templates select="title" mode="preamble"/><xsl-out:apply-templates select="author" mode="preamble"/><xsl-out:apply-templates select="date" mode="preamble"/> \begin{document} \maketitle <xsl-out:apply-templates/> \vfill {\scriptsize \hfill \verb+<xsl-out:apply-templates select="document-metadata/cvs-id"/>+} \end{document} </xsl-out:when><xsl-out:otherwise><xsl-out:apply-templates/></xsl-out:otherwise></xsl-out:choose></xsl-out:template> <xsl-out:template name="PaperCode" match="PaperCode"><xsl:value-of select="$department" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>~<xsl:value-of select="$paper" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="OracleServer" match="OracleServer">Oracle9\textit{i}</xsl-out:template> <xsl-out:template name="paragraph" match="paragraph|para|p"><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:text><xsl:if test="@indent = 'no'" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\noindent </xsl:if><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:text></xsl-out:template> <xsl-out:template name="newline" match="newline"><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \\</xsl:text></xsl-out:template> <xsl-out:template name="page-break" match="page-break|new-page">\newpage</xsl-out:template> <xsl-out:template name="non-breaking-space" match="non-breaking-space|nbsp">~</xsl-out:template> <xsl-out:template name="non-breaking-space-math" match="non-breaking-space|nbsp" mode="math">~</xsl-out:template> <xsl-out:template name="ellipsis-sign" match="ellipsis-sign|etc|ellipsis|dots">{\ldots}</xsl-out:template> <xsl-out:template name="endash" match="endash|en-dash">--</xsl-out:template> <xsl-out:template name="emdash" match="emdash|em-dash">---</xsl-out:template> <xsl-out:template name="apostrophe" match="apostrophe">'</xsl-out:template> <xsl-out:template name="dollar" match="dollar">{\$}</xsl-out:template> <xsl-out:template name="percent-sign" match="percent-sign">{\%}</xsl-out:template> <xsl-out:template name="ampersand" match="ampersand">{\&}</xsl-out:template> <xsl-out:template name="trademark-sign" match="trademark-sign|trademark|TM">{\texttrademark}</xsl-out:template> <xsl-out:template name="copyright-sign" match="copyright-sign">{\copyright}</xsl-out:template> <xsl-out:template name="degree-sign" match="degree-sign|degrees">\(^{\circ}\)</xsl-out:template> <xsl-out:template name="section-sign" match="section-sign">{\S}</xsl-out:template> <xsl-out:template name="paragraph-sign" match="paragraph-sign">{\P}</xsl-out:template> <xsl-out:template name="pi-math" match="pi" mode="math">{\pi}</xsl-out:template> <xsl-out:template name="pi-normal" match="pi">\(\pi\)</xsl-out:template> <xsl-out:template name="LaTeX" match="LaTeX|latex">{\LaTeX}</xsl-out:template> <xsl-out:template name="menu-separator" match="menu-separator|menusep">\(\triangleright\)</xsl-out:template> <xsl-out:template name="menu-item" match="menu/item">\menuitem{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="emph" match="emph">\emph{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="italic" match="italic">\textit{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="strong" match="strong">\textbf{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="bold" match="bold">\textbf{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="term" match="term">\term{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="foreign" match="foreign">\foreign{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="code" match="code">\verb+<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>+</xsl-out:template> <xsl-out:template name="superscript" match="superscript">\(^{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}\)</xsl-out:template> <xsl-out:template name="subscript" match="subscript">\(_{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}\)</xsl-out:template> <xsl-out:template name="no-break" match="no-break|mbox">\mbox{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="code-block" match="code-block"> \begin{verbatim} <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> \end{verbatim} </xsl-out:template> <xsl-out:template name="verbatim" match="verbatim"> \begin{verbatim} <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> \end{verbatim} </xsl-out:template> <xsl-out:template name="single-quote" match="quote[@single='yes']|q[@single='yes']">`<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>'</xsl-out:template> <xsl-out:template name="double-quote" match="quote|qq">``<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>''</xsl-out:template> <xsl-out:template name="nested-double-quote" match="quote//quote"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(count(ancestor::quote) mod 2) = 0"> <xsl:call-template name="double-quote"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="single-quote"/> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="nested-single-quote" match="quote[@single='yes']//quote" priority="2"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(count(ancestor::quote) mod 2) = 0"> <xsl:call-template name="single-quote"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="double-quote"/> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="itemised-list" match="itemised-list|itemize|unordered-list|bulleted-list|bullet-list|bullet-points|UL|ul"> \begin{itemize} <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> \end{itemize} </xsl-out:template> <xsl-out:template name="enumerated-list" match="enumerated-list|enumerate|ordered-list|numbered-list|question-list|OL|ol"> \begin{enumerate} <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> \end{enumerate} </xsl-out:template> <xsl-out:template name="definition-list" match="definition-list|description-list|DL|dl"> \begin{description} <xsl:apply-templates mode="definition-list" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> \end{description} </xsl-out:template> <xsl-out:template name="item" match="item"><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\item </xsl:text><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="definition-item" match="item" mode="definition-list"> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\item[</xsl:text> <xsl:apply-templates select="keyword|topic|DT|dt" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">] </xsl:text> <xsl:apply-templates select="definition|description|discourse|DD|dd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="keyword" match="keyword|topic|DT|dt"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="definition" match="item/definition|item/description|item/discourse|item/DD|item/dd"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="section" match="section"> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:with-param name="label"> <xsl:value-of select="@label"/> <xsl:if test="not(@label)">THERE_IS_NO_LABEL</xsl:if> </xsl:with-param> </xsl:apply-templates> </xsl-out:template> <xsl-out:template name="footnote" match="footnote">\footnote{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="footnote-list" match="footnote" mode="list"/> <xsl-out:template name="preamble-title" match="document/title" mode="preamble">\title{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="preamble-author" match="document/author" mode="preamble">\author{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="preamble-date" match="document/date" mode="preamble">\date{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="document-title" match="document/title"><xsl:if test="$standalone = 'no'" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="document-author" match="document/author"/> <xsl-out:template name="document-date" match="document/date"/> <xsl-out:template name="generate-subs"> <xsl:param name="depth" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">1</xsl:param> <xsl:if test="$depth > 1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:text>sub</xsl:text> <xsl:call-template name="generate-subs"> <xsl:with-param name="depth"><xsl:value-of select="$depth - 1"/></xsl:with-param> </xsl:call-template> </xsl:if> </xsl-out:template> <xsl-out:template name="section-title" match="section/title"> <xsl:param name="label" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\</xsl:text> <!-- Generate the correct number of "sub"s for LaTeX. --> <xsl:call-template name="generate-subs" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:with-param name="depth"> <xsl:number value="count(ancestor::section)"/> <xsl:if test="count(ancestor::section) > 3">3</xsl:if> </xsl:with-param> </xsl:call-template> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">section{</xsl:text> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}</xsl:text> <xsl:if test="$label != 'THERE_IS_NO_LABEL'" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \label{<xsl:value-of select="$label"/>} </xsl:if> </xsl-out:template> <xsl-out:template name="quotation" match="quotation"> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(@align = 'left') or (@align = 'right')"> <xsl:text>\begin{flush</xsl:text> <xsl:value-of select="@align"/> <xsl:text>}\itshape </xsl:text> <xsl:apply-templates/> <xsl:text>\end{flush</xsl:text> <xsl:value-of select="@align"/> <xsl:text>}</xsl:text> </xsl:when> <xsl:when test="@align = 'center'"> <xsl:text>\begin{center}\itshape </xsl:text> <xsl:apply-templates/> <xsl:text>\end{center}</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>\begin{quote}\itshape </xsl:text> <xsl:apply-templates/> <xsl:text>\end{quote}</xsl:text> </xsl:otherwise> </xsl:choose> </xsl-out:template> <xsl-out:template name="metadata" match="metadata"/> <xsl-out:template name="omit" match="omit"/> <xsl-out:template match="figure/id"/> <xsl-out:template match="figure/label"/> <xsl-out:template name="comment" match="comment"> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \begin{comment}</xsl:text> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\end{comment} </xsl:text> </xsl-out:template> <xsl-out:template name="tabular" match="tabular"> <!-- Overall table alignment. --> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\begin{</xsl:text> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(@align = 'left') or (@align = 'right')"> <xsl:text>flush</xsl:text><xsl:value-of select="@align"/> </xsl:when> <xsl:when test="@align = 'center'"> <xsl:text>center</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>flushleft</xsl:text> </xsl:otherwise> </xsl:choose> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}</xsl:text> \begin{tabular}{<xsl:apply-templates select="columns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>} <xsl:apply-templates select="tabular-header" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:apply-templates select="tabular-body" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:apply-templates select="tabular-footer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> \end{tabular} <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\end{</xsl:text> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="(@align = 'left') or (@align = 'right')"> <xsl:text>flush</xsl:text><xsl:value-of select="@align"/> </xsl:when> <xsl:when test="@align = 'center'"> <xsl:text>center</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>flushleft</xsl:text> </xsl:otherwise> </xsl:choose> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}</xsl:text> </xsl-out:template> <xsl-out:template name="aligned-column" match="column[@align]"> <xsl:value-of select="@left-border" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:value-of select="substring(@align, 1, 1)" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:value-of select="@right-border" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="unaligned-column" match="column[not(@align)]"> <xsl:value-of select="@left-border" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">l</xsl:text> <xsl:value-of select="@right-border" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="tabular-header" match="tabular-header"/> <xsl-out:template name="tabular-footer" match="tabular-footer"/> <xsl-out:template name="tabular-body" match="tabular-body"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="row" match="row"> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \\</xsl:text> <xsl:if test="@no-page-break = 'yes'" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">*</xsl:if> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:text> </xsl-out:template> <xsl-out:template name="row-rule-full" match="row-rule[not(@columns)]"><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\hline </xsl:text></xsl-out:template> <xsl-out:template name="row-rule-partial" match="row-rule[@columns]">\cline{<xsl:value-of select="@columns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="multirow-cell" match="cell" mode="multi-row"> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\multirow{</xsl:text> <xsl:value-of select="@rows" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}{*}{</xsl:text> <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}</xsl:text> </xsl-out:template> <xsl-out:template name="multicolumn-cell" match="cell" mode="multi-column"> <xsl:param name="num-columns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">1</xsl:param> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\multicolumn{</xsl:text> <xsl:value-of select="$num-columns" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}{</xsl:text> <xsl:value-of select="@left-border" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="@align"> <xsl:value-of select="substring(@align, 1, 1)"/> </xsl:when> <xsl:otherwise> <xsl:text>l</xsl:text> </xsl:otherwise> </xsl:choose> <xsl:value-of select="@right-border" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}{</xsl:text> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="@rows"> <xsl:apply-templates select="." mode="multi-row"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates/> </xsl:otherwise> </xsl:choose> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}</xsl:text> </xsl-out:template> <xsl-out:template match="cell"> <!-- position() doesn't seem to work very well in this context. --> <xsl:variable name="column-no" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:number/></xsl:variable> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="@columns"> <xsl:apply-templates select="." mode="multi-column"> <xsl:with-param name="num-columns" select="@columns"/> </xsl:apply-templates> </xsl:when> <xsl:when test="@align"> <xsl:apply-templates select="." mode="multi-column"/> </xsl:when> <xsl:when test="@rows"> <xsl:apply-templates select="." mode="multi-row"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates/> </xsl:otherwise> </xsl:choose> <xsl:if test="$column-no != last()" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> & </xsl:if> </xsl-out:template> <xsl-out:template name="hyperlink-label" match="hyperlink[@label]">\hyperref[<xsl:value-of select="@label" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>]{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="hyperlink-url" match="hyperlink[@url and node()]">\href{<xsl:value-of select="@url" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="empty-hyperlink-url" match="hyperlink[@url and not(node())]">\href{<xsl:value-of select="@url" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}{\texttt{<xsl:value-of select="@url" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}}</xsl-out:template> <xsl-out:template name="url" match="url|uri|email|e-mail|email-address|e-mail-address">\texttt{<xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="reference" match="reference"> <!-- Find the element whose label is the same as our label. --> <xsl:apply-templates select="//*[@label = current()/@label]" mode="reference" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="section-reference" match="section" mode="reference">Section~\ref*{<xsl:value-of select="@label" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="figure-reference" match="figure" mode="reference">Figure~\ref*{<xsl:value-of select="@label" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="table-reference" match="table" mode="reference">Table~\ref*{<xsl:value-of select="@label" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="figure" match="figure"> \begin{figure} \centering <xsl:apply-templates select="*[not(self::caption)]" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:if test="count(caption) != 0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \caption{<xsl:apply-templates select="caption"/>} <xsl:if test="@label">\label{<xsl:value-of select="@label"/>}</xsl:if> <xsl:if test="count(id) != 0">\label{<xsl:value-of select="id"/>}</xsl:if> </xsl:if> \end{figure} </xsl-out:template> <xsl-out:template name="table" match="table"> \begin{table} \centering <xsl:apply-templates select="*[not(self::caption)]" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:if test="count(caption) != 0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \caption{<xsl:apply-templates select="caption"/>} <xsl:if test="@label">\label{<xsl:value-of select="@label"/>}</xsl:if> </xsl:if> \end{table} </xsl-out:template> <xsl-out:template name="figure-caption" match="figure/caption"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="table-caption" match="table/caption"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template match="image" mode="latex"> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\includegraphics</xsl:text> <xsl:if test="count(latex-scaling) != 0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:text>[scale=</xsl:text> <xsl:value-of select="latex-scaling"/> <xsl:text>]</xsl:text> </xsl:if> <!-- Use whatever standard image folder is appropriate for the context. --> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Could possibly change this to test="/document/@class = 'tutorial'" or similar? --> <!-- Sounds nicer...I think ideally the XSL processor would automatically figure out the path to the graphics based on the path to the source XML file. Can this be done? --> <xsl:when test="name(/child::node()[1])='tutorial'"> <xsl:text>{\tutroot/</xsl:text><xsl:value-of select="/tutorial/metadata/number-code"/><xsl:text>-</xsl:text><xsl:value-of select="/tutorial/metadata/title-code"/><xsl:text>/Graphics/</xsl:text> </xsl:when> <xsl:when test="name(/child::node()[1])='laboratory'"> <xsl:text>{\labroot/</xsl:text><xsl:value-of select="/laboratory/metadata/number-code"/><xsl:text>-</xsl:text><xsl:value-of select="/laboratory/metadata/title-code"/><xsl:text>/Graphics/</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>{images/</xsl:text> </xsl:otherwise> </xsl:choose> <xsl:value-of select="basename" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">.</xsl:text> <xsl:choose xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:when test="count(format) != 0"> <xsl:value-of select="format"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$image-format"/> </xsl:otherwise> </xsl:choose> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">}</xsl:text> </xsl-out:template> <xsl-out:template match="image[count(provide-large-version) = 0]"><xsl:apply-templates select="." mode="latex" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template match="image[count(provide-large-version) != 0]"><xsl:apply-templates select="." mode="latex" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="include-xml" match="include-document"> <xsl:apply-templates select="document(@file)" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="environment" match="environment[@file]"/> <xsl-out:template name="latex-package" match="latex-packages/package">\usepackage<xsl:if test="@options" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">[<xsl:value-of select="@options"/>]</xsl:if>{<xsl:value-of select="." xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="latex-command" match="latex-packages/command"><xsl:value-of select="." xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="raw-latex" match="raw-code[@format = 'latex']"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="raw-html" match="raw-code[@format = 'html']"/> <xsl-out:template name="latex-input" match="latex-input">\input{<xsl:value-of select="." xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="process-when-latex" match="process-when[@format = 'latex']"><xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="process-when-html" match="process-when[@format = 'html']"/> <xsl-out:template name="math-inline" match="paragraph//math|para//math|p//math">\(<xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>\)</xsl-out:template> <xsl-out:template name="math-display" match="math">\[<xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>\]</xsl-out:template> <xsl-out:template name="equation-array" match="equation-array"> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\begin{eqnarray*} </xsl:text> <xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\end{eqnarray*}</xsl:text> </xsl-out:template> <xsl-out:template match="equation-array/row" mode="math"> <xsl:apply-templates select="left" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> & </xsl:text><xsl:apply-templates select="middle" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text disable-output-escaping="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> & </xsl:text><xsl:apply-templates select="right" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/><xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> \\ \\ </xsl:text> </xsl-out:template> <xsl-out:template name="math-text" match="text" mode="math">\mathrm{<xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="digit-group-separator" match="digit-group-separator|digitsep"> <xsl:call-template name="non-breaking-space" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="digit-group-separator-math" match="digit-group-separator|digitsep" mode="math"> <xsl:call-template name="non-breaking-space" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> </xsl-out:template> <xsl-out:template name="superscript-math" match="superscript" mode="math">^{<xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="subscript-math" match="subscript" mode="math">_{<xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> <xsl-out:template name="plus-operator-math" match="plus" mode="math">+</xsl-out:template> <xsl-out:template name="plus-operator" match="plus">+</xsl-out:template> <xsl-out:template name="minus-operator-math" match="minus" mode="math">-</xsl-out:template> <xsl-out:template name="minus-operator" match="minus">\(-\)</xsl-out:template> <xsl-out:template name="times-operator-math" match="times" mode="math">\times</xsl-out:template> <xsl-out:template name="times-operator" match="times">\(\times\)</xsl-out:template> <xsl-out:template name="divide-operator-math" match="divide" mode="math">/</xsl-out:template> <xsl-out:template name="divide-operator" match="divide">/</xsl-out:template> <xsl-out:template name="equals-operator-math" match="equals" mode="math"> = </xsl-out:template> <xsl-out:template name="equals-operator" match="equals"> = </xsl-out:template> <xsl-out:template name="approximately-equals-operator-math" match="approximately-equals|approximately-equal-to|approx" mode="math">{\approx}</xsl-out:template> <xsl-out:template name="approximately-equals-operator" match="approximately-equals|approximately-equal-to|approx">\(\approx\)</xsl-out:template> <xsl-out:template name="degree-sign-math" match="degree-sign" mode="math">^{\circ}</xsl-out:template> <xsl-out:template name="log-like-function" match="function" mode="math">\<xsl:value-of select="@name" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="math-variable" match="variable" mode="math"><xsl:apply-templates mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/></xsl-out:template> <xsl-out:template name="math-fraction" match="fraction" mode="math">\frac{<xsl:apply-templates select="numerator" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}{<xsl:apply-templates select="denominator" mode="math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>}</xsl-out:template> </xsl-out:stylesheet>
Show line notes below