lib/isodoc/iho/iho.specification.xsl in metanorma-iho-0.3.11 vs lib/isodoc/iho/iho.specification.xsl in metanorma-iho-0.3.12
- old
+ new
@@ -1522,17 +1522,24 @@
<xsl:attribute name="font-family">STIX Two Math</xsl:attribute>
</xsl:attribute-set><xsl:attribute-set name="list-style">
- </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
+ <xsl:attribute name="line-height">135%</xsl:attribute>
+ </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="OLD_processPrefaceSectionsDefault_Contents">
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
- </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="." mode="contents"/>
+ </xsl:for-each>
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
<!-- Normative references -->
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
<!-- Terms and definitions -->
@@ -1541,17 +1548,37 @@
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
<xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
<!-- Bibliography -->
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
- </xsl:template><xsl:template name="processPrefaceSectionsDefault">
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="." mode="contents"/>
+ </xsl:for-each>
+
+ <xsl:for-each select="/*/*[local-name()='annex']">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="." mode="contents"/>
+ </xsl:for-each>
+
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="." mode="contents"/>
+ </xsl:for-each>
+ </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
- </xsl:template><xsl:template name="processMainSectionsDefault">
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
<!-- Normative references -->
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
<!-- Terms and definitions -->
@@ -1559,10 +1586,26 @@
<!-- Another main sections -->
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
<xsl:apply-templates select="/*/*[local-name()='annex']"/>
<!-- Bibliography -->
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
+ </xsl:template><xsl:template name="processMainSectionsDefault">
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="."/>
+
+ </xsl:for-each>
+
+ <xsl:for-each select="/*/*[local-name()='annex']">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
+ <xsl:sort select="@displayorder" data-type="number"/>
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
</xsl:template><xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template><xsl:template match="*[local-name()='br']">
<xsl:value-of select="$linebreak"/>
</xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
@@ -4076,10 +4119,17 @@
<xsl:attribute name="height">
<xsl:value-of select="round(xalan:nodeset($viewbox)//item[4])"/>
</xsl:attribute>
<xsl:apply-templates mode="svg_update"/>
</xsl:copy>
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
+ <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
+ <xsl:for-each select="*[local-name() = 'svg']">
+ <xsl:call-template name="image_svg">
+ <xsl:with-param name="name" select="$name"/>
+ </xsl:call-template>
+ </xsl:for-each>
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
<xsl:variable name="svg_content" select="document(@src)"/>
<xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
<xsl:call-template name="image_svg">
@@ -4180,11 +4230,11 @@
<fo:block> </fo:block></fo:block-container>
</fo:inline-container>
</fo:basic-link>
</fo:block>
</fo:block-container>
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
<xsl:apply-templates mode="contents"/>
<xsl:text> </xsl:text>
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
<xsl:apply-templates mode="bookmarks"/>
<xsl:text> </xsl:text>
@@ -4860,25 +4910,27 @@
<xsl:if test="normalize-space() != ''">
<xsl:value-of select="."/>
</xsl:if>
</xsl:template><xsl:variable name="localized.source">
<xsl:call-template name="getLocalizedString">
- <xsl:with-param name="key">source</xsl:with-param>
- </xsl:call-template>
+ <xsl:with-param name="key">source</xsl:with-param>
+ </xsl:call-template>
</xsl:variable><xsl:template match="*[local-name() = 'origin']">
<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="@bibitemid"/></xsl:attribute>
</xsl:if>
+
<fo:inline>
+
<xsl:call-template name="getTitle">
<xsl:with-param name="name" select="'title-source'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
@@ -4886,10 +4938,11 @@
</fo:inline>
<fo:inline xsl:use-attribute-sets="origin-style">
<xsl:apply-templates/>
</fo:inline>
+
</fo:basic-link>
</xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
<fo:inline><xsl:apply-templates/></fo:inline>
</xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
<xsl:if test="normalize-space() != ''">
@@ -4952,11 +5005,14 @@
<xsl:attribute name="vertical-align">super</xsl:attribute>
</xsl:if>
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
+ <xsl:variable name="text" select="normalize-space()"/>
+
<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>
@@ -4967,11 +5023,13 @@
</xsl:if>
-
+
+
+
<xsl:apply-templates/>
</fo:basic-link>
</fo:inline>
</xsl:when>
@@ -5569,12 +5627,100 @@
</fo:inline>
</xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'textarea']">
<fo:block-container border="1pt solid black" width="50%">
<fo:block> </fo:block>
</fo:block-container>
+ </xsl:template><xsl:template match="*[local-name() = 'toc']">
+ <xsl:param name="colwidths"/>
+ <xsl:variable name="colwidths_">
+ <xsl:choose>
+ <xsl:when test="not($colwidths)">
+ <xsl:variable name="toc_table_simple">
+ <tbody>
+ <xsl:apply-templates mode="toc_table_width"/>
+ </tbody>
+ </xsl:variable>
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
+ <xsl:call-template name="calculate-column-widths">
+ <xsl:with-param name="cols-count" select="$cols-count"/>
+ <xsl:with-param name="table" select="$toc_table_simple"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$colwidths"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <fo:block role="TOCI" space-after="16pt">
+ <fo:table width="100%" table-layout="fixed">
+ <xsl:for-each select="xalan:nodeset($colwidths_)/column">
+ <fo:table-column column-width="proportional-column-width({.})"/>
+ </xsl:for-each>
+ <fo:table-body>
+ <xsl:apply-templates/>
+ </fo:table-body>
+ </fo:table>
+ </fo:block>
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
+ <fo:table-row min-height="5mm">
+ <xsl:apply-templates/>
+ </fo:table-row>
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']/*[local-name() = 'p']">
+ <xsl:apply-templates/>
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'xref']" priority="3">
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>“9th CGPM, 1948:<tab/>decision to establish the SI”</xref> -->
+ <xsl:variable name="target" select="@target"/>
+ <xsl:for-each select="*[local-name() = 'tab']">
+ <xsl:variable name="current_id" select="generate-id()"/>
+ <fo:table-cell>
+ <fo:block>
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
+ <xsl:choose>
+ <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
+ <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </fo:basic-link>
+ </fo:block>
+ </fo:table-cell>
+ </xsl:for-each>
+ <!-- last column - for page numbers -->
+ <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
+ <fo:block>
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
+ <fo:page-number-citation ref-id="{$target}"/>
+ </fo:basic-link>
+ </fo:block>
+ </fo:table-cell>
+ </xsl:template><xsl:template match="*" mode="toc_table_width">
+ <xsl:apply-templates mode="toc_table_width"/>
+ </xsl:template><xsl:template match="*[local-name() = 'clause'][@type = 'toc']/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'clause'][not(@type = 'toc')]/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'li']" mode="toc_table_width">
+ <tr>
+ <xsl:apply-templates mode="toc_table_width"/>
+ </tr>
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="toc_table_width">
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>“9th CGPM, 1948:<tab/>decision to establish the SI”</xref> -->
+ <xsl:for-each select="*[local-name() = 'tab']">
+ <xsl:variable name="current_id" select="generate-id()"/>
+ <td>
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </td>
+ </xsl:for-each>
+ <td>333</td> <!-- page number, just for fill -->
</xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
<fo:inline padding-right="5mm"> </fo:inline>
<fo:inline><xsl:apply-templates/></fo:inline>
+ </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
+ <fo:inline padding-right="2.5mm" baseline-shift="5%">
+ <fo:instream-foreign-object content-height="2mm" content-width="2mm" fox:alt-text="Quad">
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="0 0 2 2">
+ <rect x="0" y="0" width="2" height="2" fill="black"/>
+ </svg>
+ </fo:instream-foreign-object>
+ </fo:inline>
</xsl:template><xsl:template name="convertDate">
<xsl:param name="date"/>
<xsl:param name="format" select="'short'"/>
<xsl:variable name="year" select="substring($date, 1, 4)"/>
<xsl:variable name="month" select="substring($date, 6, 2)"/>
\ No newline at end of file