| |
---|
| | |
---|
| | <stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
---|
| | |
---|
| | |
---|
| | |
---|
| | |
---|
| | <template match="calendar"> |
---|
| | <common formats="/latex/xelatex/"> |
---|
| | <xsl:text> |
---|
| | \begin{center} |
---|
| | \begin{sideways} |
---|
| | \resizebox{24cm}{!}{% |
---|
| | \begin{tabular}{|c|c|c|c|l|c|c|c|c|c|c|} |
---|
| | </xsl:text> |
---|
| | <!-- Calendar heading. --> |
---|
| | <xsl:text>\multicolumn{</xsl:text> |
---|
| | <xsl:value-of select="$number-of-columns" /> |
---|
| | <xsl:text>}{c}{\LARGE\textbf{</xsl:text> |
---|
| | <xsl:apply-templates select="paper" /> |
---|
| | <xsl:text> Paper Calendar, </xsl:text> |
---|
| | <xsl:apply-templates select="period" /> |
---|
| | <xsl:text>, </xsl:text> |
---|
| | <xsl:apply-templates select="year" />}} \\ |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:text>\multicolumn{</xsl:text> |
---|
| | <xsl:value-of select="$number-of-columns" /> |
---|
| | <xsl:text>}{c}{} \\</xsl:text> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:text>\hline</xsl:text> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <!-- The calendar itself. --> |
---|
| | <xsl:apply-templates select="header" /> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:text>\hline\hline</xsl:text> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:apply-templates select="body" /> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:text>\hline\hline</xsl:text> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:apply-templates select="footer" /> |
---|
| | |
---|
| | <xsl:call-template name="newline-internal" /> |
---|
| | |
---|
| | <xsl:text> |
---|
| | \end{tabular}% |
---|
| | } |
---|
| | \end{sideways} |
---|
| | \end{center} |
---|
| | </xsl:text> |
---|
| | </common> |
---|
| | <common formats="/html/xhtml/"> |
---|
| | <!-- Page heading. --> |
---|
| | <h2> |
---|
| | <xsl:apply-templates select="paper" /> |
---|
| | <xsl:text> Paper Calendar, </xsl:text> |
---|
| | <xsl:apply-templates select="period" /> |
---|
| | <xsl:text>, </xsl:text> |
---|
| | <xsl:apply-templates select="year" /> |
---|
| | </h2> |
---|
| | |
---|
| | <!-- The calendar itself. --> |
---|
| | <div class="sans"> |
---|
| | <table class="small" summary="Paper calendar with relevant links" cellspacing="0"> |
---|
| | <!-- |
---|
| | I was going to generate COL elements here, but they |
---|
| | don't seem to be supported by all browsers. Damn. The same |
---|
| | applies for THEAD/TFOOT/TBODY, but I may as well leave them in |
---|
| | for the browsers that do support them. |
---|
| | --> |
---|
| | <thead> |
---|
| | <xsl:apply-templates select="header" /> |
---|
| | </thead> |
---|
| | <tfoot> |
---|
| | <xsl:apply-templates select="footer" /> |
---|
| | </tfoot> |
---|
| | <tbody> |
---|
| | <xsl:apply-templates select="body" /> |
---|
| | </tbody> |
---|
| | </table> |
---|
| | </div> |
---|
| | </common> |
---|
| | </template> |
---|
| | |
---|
| | |
---|
| | <template name="SubjectCode" match="SubjectCode"> |
---|
| | <common> |
---|
| | <xsl:value-of select="$subject-code" /> |
---|
| | </common> |
---|
| | </template> |
---|
| | |
---|
| | |
---|
| | <template name="PaperNumber" match="PaperNumber"> |
---|
| | <common> |
---|
| | <xsl:value-of select="$paper-number" /> |
---|
| | </common> |
---|
| | </template> |
---|
| | |
---|
| | |
---|
| | <template name="PaperCode" match="PaperCode"> |
---|
| | <common> |
---|
| | <xsl:value-of select="$subject-code" /> |
---|
| | <xsl:text> </xsl:text> |
---|
| | <xsl:value-of select="$paper-number" /> |
---|
| | </common> |
---|
| | </template> |
---|
| | |
---|
| | |
---|
| | <xsl:template name="PaperYear" match="PaperYear"> |
---|
| | <common> |
---|
| | <!-- |
---|
| | @offset lets us output the year +/- some integer value. |
---|
| | The input value is truncated and defaults to zero if not |
---|
| | supplied. |
---|
| | --> |
---|
| | <xsl:variable name="add"> |
---|
| | <xsl:value-of select="floor(@offset)" /> |
---|
| | <xsl:if test="not(@offset)">0</xsl:if> |
---|
| | </xsl:variable> |
---|
| | <xsl:value-of select="$paper-year + $add" /> |
---|
| | </common> |
---|
| | </xsl:template> |
---|
| | |
---|
| | |
---|
| | <xsl:template name="PaperPeriod" match="PaperPeriod"> |
---|
| | <common> |
---|
| | <xsl:value-of select="$paper-period" /> |
---|
| | </common> |
---|
| | </xsl:template> |
---|
| | |
---|
| | |
---|
| | <!-- |
---|
| | Header/footer rows for the calendar table. To get proper table |
---|
| | headings/footings, use HEADING/FOOTING. For other text, use NOTE. |
---|
| | --> |
---|
| | <xsl:template match="header|footer"> |
---|
| | <common formats="/latex/xelatex/"> |
---|
| | <xsl:apply-templates /> |
---|
| | <xsl:text>\\ \hline</xsl:text> |
---|
| | </common> |
---|
| | <common formats="/html/xhtml/"> |
---|
| | <tr> |
---|
| | <xsl:apply-templates /> |
---|
| | </tr> |
---|
| | </common> |
---|
| | </xsl:template> |
---|
| | |
---|
| | |
---|
| | <!-- |
---|
| | A table heading or footing, bolded, centered, etc. |
---|
| | --> |
---|
| | <xsl:template match="heading|footing"> |
---|
| | <common formats="/latex/xelatex/"> |
---|
| | <xsl:if test="@columns"> |
---|
| | <xsl:text>\multicolumn{</xsl:text> |
---|
| | <xsl:value-of select="@columns" /> |
---|
| | <xsl:text>}{|c|}{</xsl:text> |
---|
| | </xsl:if> |
---|
| | <xsl:text>\textbf{</xsl:text> |
---|
| | <xsl:apply-templates /> |
---|
| | <xsl:text>}</xsl:text> |
---|
| | <xsl:if test="@columns"> |
---|
| | <xsl:text>}</xsl:text> |
---|
| | </xsl:if> |
---|
| | <xsl:if test="position() != last()"> |
---|
| | <xsl:text> & </xsl:text> |
---|
| | </xsl:if> |
---|
| | </common> |
---|
| | <common formats="/html/xhtml/"> |
---|
| | <th> |
---|
| | <xsl:if test="@columns"> |
---|
| | <xsl:attribute name="colspan"> |
---|
| | <xsl:value-of select="@columns" /> |
---|
| | </xsl:attribute> |
---|
| | </xsl:if> |
---|
| | <xsl:apply-templates /> |
---|
| | </th> |
---|
| | </common> |
---|
| | </xsl:template> |
---|
| | |
---|
| | |
---|
| | <!-- |
---|
| | A miscellaneous piece of text to be inserted somewhere in the |
---|
| | calendar table. |
---|
| | --> |
---|
| | <xsl:template match="note"> |
---|
| | <common formats="/latex/xelatex/"> |
---|
| | <xsl:if test="@columns"> |
---|
| | <xsl:text>\multicolumn{</xsl:text> |
---|
| | <xsl:value-of select="@columns" /> |
---|
| | <xsl:text>}{|l|}{</xsl:text> |
---|
| | </xsl:if> |
---|
| | <xsl:apply-templates /> |
---|
| | <xsl:if test="@columns"> |
---|
| | <xsl:text>}</xsl:text> |
---|
| | </xsl:if> |
---|
| | </common> |
---|
| | <common formats="/html/xhtml/"> |
---|
| | <td> |
---|
| | <xsl:if test="@columns"> |
---|
| | <xsl:attribute name="colspan"> |
---|
| | <xsl:value-of select="@columns" /> |
---|
| | </xsl:attribute> |
---|
| | </xsl:if> |
---|
| | <xsl:apply-templates /> |
---|
| | </td> |
---|
| | </common> |
---|
| | </xsl:template> |
---|
| | |
---|
| | |
---|
| | </stylesheet> |
---|
| | |
---|