lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.6.6 vs lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.6.7
- old
+ new
@@ -2188,18 +2188,23 @@
<fo:table-row>
<fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
+
<!-- fn will be processed inside 'note' processing -->
+
+ <!-- for BSI (not PAS) display Notes before footnotes -->
+
+
<!-- except gb -->
<xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
@@ -2221,10 +2226,14 @@
<!-- fn processing -->
<xsl:call-template name="fn_display"/>
+
+ <!-- for PAS display Notes after footnotes -->
+
+
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
@@ -2278,10 +2287,11 @@
</xsl:if>
<xsl:if test="$parent-name = 'tfoot'">
+
</xsl:if>
@@ -2428,14 +2438,19 @@
+
+ <!-- Table's note name (NOTE, for example) -->
+
<fo:inline padding-right="2mm">
+
+
<xsl:if test="@type = 'source' or @type = 'abbreviation'">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<!-- <fo:inline>
<xsl:call-template name="capitalize">
<xsl:with-param name="str" select="@type"/>
@@ -2447,10 +2462,12 @@
<xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
</fo:inline>
+
+
<xsl:apply-templates mode="process"/>
</fo:block>
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
<xsl:apply-templates/>
@@ -2466,15 +2483,17 @@
</xsl:variable>
<xsl:for-each select="xalan:nodeset($references)//fn">
<xsl:variable name="reference" select="@reference"/>
<xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
<fo:block margin-bottom="12pt">
+
+
<fo:inline font-size="80%" padding-right="5mm" id="{@id}">
<xsl:attribute name="vertical-align">super</xsl:attribute>
@@ -2485,10 +2504,11 @@
<xsl:value-of select="@reference"/>
+
</fo:inline>
<fo:inline>
<!-- <xsl:apply-templates /> -->
<xsl:copy-of select="./node()"/>
@@ -2634,10 +2654,11 @@
<fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
<xsl:value-of select="@reference"/>
+
</fo:basic-link>
</fo:inline>
</xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
<fo:inline>
<xsl:apply-templates/>
@@ -3641,10 +3662,11 @@
</xsl:if>
+
<fo:block-container margin-left="0mm">
@@ -4851,20 +4873,22 @@
<xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
<xsl:attribute name="vertical-align">super</xsl:attribute>
</xsl:if>
-
+
+
+
<fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
-
<xsl:if test="normalize-space(@citeas) = ''">
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
</xsl:if>
<xsl:if test="@type = 'inline'">
+
</xsl:if>
<xsl:apply-templates/>
</fo:basic-link>
@@ -5786,6 +5810,102 @@
<xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
<xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
+ </xsl:template><xsl:template name="number-to-words">
+ <xsl:param name="number"/>
+ <xsl:param name="first"/>
+ <xsl:if test="$number != ''">
+ <xsl:variable name="words">
+ <words>
+ <word cardinal="1">One-</word>
+ <word ordinal="1">First </word>
+ <word cardinal="2">Two-</word>
+ <word ordinal="2">Second </word>
+ <word cardinal="3">Three-</word>
+ <word ordinal="3">Third </word>
+ <word cardinal="4">Four-</word>
+ <word ordinal="4">Fourth </word>
+ <word cardinal="5">Five-</word>
+ <word ordinal="5">Fifth </word>
+ <word cardinal="6">Six-</word>
+ <word ordinal="6">Sixth </word>
+ <word cardinal="7">Seven-</word>
+ <word ordinal="7">Seventh </word>
+ <word cardinal="8">Eight-</word>
+ <word ordinal="8">Eighth </word>
+ <word cardinal="9">Nine-</word>
+ <word ordinal="9">Ninth </word>
+ <word ordinal="10">Tenth </word>
+ <word ordinal="11">Eleventh </word>
+ <word ordinal="12">Twelfth </word>
+ <word ordinal="13">Thirteenth </word>
+ <word ordinal="14">Fourteenth </word>
+ <word ordinal="15">Fifteenth </word>
+ <word ordinal="16">Sixteenth </word>
+ <word ordinal="17">Seventeenth </word>
+ <word ordinal="18">Eighteenth </word>
+ <word ordinal="19">Nineteenth </word>
+ <word cardinal="20">Twenty-</word>
+ <word ordinal="20">Twentieth </word>
+ <word cardinal="30">Thirty-</word>
+ <word ordinal="30">Thirtieth </word>
+ <word cardinal="40">Forty-</word>
+ <word ordinal="40">Fortieth </word>
+ <word cardinal="50">Fifty-</word>
+ <word ordinal="50">Fiftieth </word>
+ <word cardinal="60">Sixty-</word>
+ <word ordinal="60">Sixtieth </word>
+ <word cardinal="70">Seventy-</word>
+ <word ordinal="70">Seventieth </word>
+ <word cardinal="80">Eighty-</word>
+ <word ordinal="80">Eightieth </word>
+ <word cardinal="90">Ninety-</word>
+ <word ordinal="90">Ninetieth </word>
+ <word cardinal="100">Hundred-</word>
+ <word ordinal="100">Hundredth </word>
+ </words>
+ </xsl:variable>
+
+ <xsl:variable name="ordinal" select="xalan:nodeset($words)//word[@ordinal = $number]/text()"/>
+
+ <xsl:variable name="value">
+ <xsl:choose>
+ <xsl:when test="$ordinal != ''">
+ <xsl:value-of select="$ordinal"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$number < 100">
+ <xsl:variable name="decade" select="concat(substring($number,1,1), '0')"/>
+ <xsl:variable name="digit" select="substring($number,2)"/>
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $decade]/text()"/>
+ <xsl:value-of select="xalan:nodeset($words)//word[@ordinal = $digit]/text()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- more 100 -->
+ <xsl:variable name="hundred" select="substring($number,1,1)"/>
+ <xsl:variable name="digits" select="number(substring($number,2))"/>
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $hundred]/text()"/>
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = '100']/text()"/>
+ <xsl:call-template name="number-to-words">
+ <xsl:with-param name="number" select="$digits"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first = 'true'">
+ <xsl:variable name="value_lc" select="java:toLowerCase(java:java.lang.String.new($value))"/>
+ <xsl:call-template name="capitalize">
+ <xsl:with-param name="str" select="$value_lc"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
</xsl:template></xsl:stylesheet>
\ No newline at end of file