metanorma-iso 1.9.3 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2260,6 +2260,8 @@
2260
2260
 
2261
2261
  <title-list-figures lang="en">List of Figures</title-list-figures>
2262
2262
 
2263
+ <title-table-figures lang="en">Table of Figures</title-table-figures>
2264
+
2263
2265
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2264
2266
 
2265
2267
  <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
@@ -2558,6 +2560,11 @@
2558
2560
 
2559
2561
 
2560
2562
 
2563
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
2564
+
2565
+
2566
+
2567
+
2561
2568
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2562
2569
 
2563
2570
 
@@ -2731,13 +2738,20 @@
2731
2738
 
2732
2739
  </xsl:attribute-set><xsl:attribute-set name="list-style">
2733
2740
 
2734
- </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">
2741
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
2742
+ <xsl:attribute name="line-height">135%</xsl:attribute>
2743
+ </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">
2735
2744
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2736
2745
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2737
2746
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2738
2747
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2739
2748
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2740
- </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2749
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
2750
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
2751
+ <xsl:sort select="@displayorder" data-type="number"/>
2752
+ <xsl:apply-templates select="." mode="contents"/>
2753
+ </xsl:for-each>
2754
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
2741
2755
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2742
2756
 
2743
2757
  <!-- Normative references -->
@@ -2750,13 +2764,33 @@
2750
2764
  <!-- Bibliography -->
2751
2765
  <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"/>
2752
2766
 
2753
- </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2767
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2768
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2769
+ <xsl:sort select="@displayorder" data-type="number"/>
2770
+ <xsl:apply-templates select="." mode="contents"/>
2771
+ </xsl:for-each>
2772
+
2773
+ <xsl:for-each select="/*/*[local-name()='annex']">
2774
+ <xsl:sort select="@displayorder" data-type="number"/>
2775
+ <xsl:apply-templates select="." mode="contents"/>
2776
+ </xsl:for-each>
2777
+
2778
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
2779
+ <xsl:sort select="@displayorder" data-type="number"/>
2780
+ <xsl:apply-templates select="." mode="contents"/>
2781
+ </xsl:for-each>
2782
+ </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
2754
2783
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2755
2784
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2756
2785
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2757
2786
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2758
2787
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2759
- </xsl:template><xsl:template name="processMainSectionsDefault">
2788
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2789
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
2790
+ <xsl:sort select="@displayorder" data-type="number"/>
2791
+ <xsl:apply-templates select="."/>
2792
+ </xsl:for-each>
2793
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
2760
2794
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2761
2795
 
2762
2796
  <!-- Normative references -->
@@ -2768,6 +2802,22 @@
2768
2802
  <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2769
2803
  <!-- Bibliography -->
2770
2804
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2805
+ </xsl:template><xsl:template name="processMainSectionsDefault">
2806
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2807
+ <xsl:sort select="@displayorder" data-type="number"/>
2808
+ <xsl:apply-templates select="."/>
2809
+
2810
+ </xsl:for-each>
2811
+
2812
+ <xsl:for-each select="/*/*[local-name()='annex']">
2813
+ <xsl:sort select="@displayorder" data-type="number"/>
2814
+ <xsl:apply-templates select="."/>
2815
+ </xsl:for-each>
2816
+
2817
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
2818
+ <xsl:sort select="@displayorder" data-type="number"/>
2819
+ <xsl:apply-templates select="."/>
2820
+ </xsl:for-each>
2771
2821
  </xsl:template><xsl:template match="text()">
2772
2822
  <xsl:value-of select="."/>
2773
2823
  </xsl:template><xsl:template match="*[local-name()='br']">
@@ -3714,9 +3764,8 @@
3714
3764
 
3715
3765
  <!-- Table's note name (NOTE, for example) -->
3716
3766
 
3717
- <fo:inline padding-right="2mm">
3767
+ <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
3718
3768
 
3719
-
3720
3769
 
3721
3770
 
3722
3771
 
@@ -4351,6 +4400,8 @@
4351
4400
  <xsl:if test="$font-size != ''">
4352
4401
  <xsl:attribute name="font-size">
4353
4402
  <xsl:choose>
4403
+ <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
4404
+ <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
4354
4405
  <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
4355
4406
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
4356
4407
  </xsl:choose>
@@ -5159,6 +5210,7 @@
5159
5210
  <xsl:otherwise>
5160
5211
  <fo:block xsl:use-attribute-sets="image-style">
5161
5212
 
5213
+
5162
5214
  <xsl:variable name="src">
5163
5215
  <xsl:call-template name="image_src"/>
5164
5216
  </xsl:variable>
@@ -5406,6 +5458,13 @@
5406
5458
  </xsl:attribute>
5407
5459
  <xsl:apply-templates mode="svg_update"/>
5408
5460
  </xsl:copy>
5461
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
5462
+ <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
5463
+ <xsl:for-each select="*[local-name() = 'svg']">
5464
+ <xsl:call-template name="image_svg">
5465
+ <xsl:with-param name="name" select="$name"/>
5466
+ </xsl:call-template>
5467
+ </xsl:for-each>
5409
5468
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
5410
5469
  <xsl:variable name="svg_content" select="document(@src)"/>
5411
5470
  <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
@@ -5510,7 +5569,7 @@
5510
5569
  </fo:basic-link>
5511
5570
  </fo:block>
5512
5571
  </fo:block-container>
5513
- </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">
5572
+ </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">
5514
5573
  <xsl:apply-templates mode="contents"/>
5515
5574
  <xsl:text> </xsl:text>
5516
5575
  </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">
@@ -5518,7 +5577,7 @@
5518
5577
  <xsl:text> </xsl:text>
5519
5578
  </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="contents" priority="2">
5520
5579
  <xsl:value-of select="."/>
5521
- </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
5580
+ </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']//text()" mode="bookmarks" priority="2">
5522
5581
  <xsl:value-of select="."/>
5523
5582
  </xsl:template><xsl:template match="node()" mode="contents">
5524
5583
  <xsl:apply-templates mode="contents"/>
@@ -5616,6 +5675,8 @@
5616
5675
 
5617
5676
 
5618
5677
 
5678
+
5679
+
5619
5680
  </fo:bookmark-tree>
5620
5681
  </xsl:if>
5621
5682
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -5809,12 +5870,16 @@
5809
5870
  <xsl:if test="$font-size != ''">
5810
5871
  <xsl:attribute name="font-size">
5811
5872
  <xsl:choose>
5873
+ <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
5874
+ <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
5812
5875
  <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
5813
5876
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
5814
5877
  </xsl:choose>
5815
5878
  </xsl:attribute>
5816
5879
  </xsl:if>
5817
5880
 
5881
+
5882
+
5818
5883
  <xsl:apply-templates/>
5819
5884
  </fo:block>
5820
5885
 
@@ -6167,6 +6232,7 @@
6167
6232
  </xsl:choose>
6168
6233
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
6169
6234
  <fo:block xsl:use-attribute-sets="termsource-style">
6235
+
6170
6236
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
6171
6237
  <xsl:variable name="termsource_text">
6172
6238
  <xsl:apply-templates/>
@@ -6195,19 +6261,21 @@
6195
6261
  </xsl:if>
6196
6262
  </xsl:template><xsl:variable name="localized.source">
6197
6263
  <xsl:call-template name="getLocalizedString">
6198
- <xsl:with-param name="key">source</xsl:with-param>
6199
- </xsl:call-template>
6264
+ <xsl:with-param name="key">source</xsl:with-param>
6265
+ </xsl:call-template>
6200
6266
  </xsl:variable><xsl:template match="*[local-name() = 'origin']">
6201
6267
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
6202
6268
  <xsl:if test="normalize-space(@citeas) = ''">
6203
6269
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
6204
6270
  </xsl:if>
6205
6271
 
6272
+
6206
6273
  <fo:inline>
6207
6274
 
6208
6275
 
6209
6276
 
6210
6277
 
6278
+
6211
6279
  <xsl:value-of select="$localized.source"/>
6212
6280
  <xsl:text>: </xsl:text>
6213
6281
 
@@ -6219,6 +6287,7 @@
6219
6287
  <fo:inline xsl:use-attribute-sets="origin-style">
6220
6288
  <xsl:apply-templates/>
6221
6289
  </fo:inline>
6290
+
6222
6291
  </fo:basic-link>
6223
6292
  </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
6224
6293
  <fo:inline><xsl:apply-templates/></fo:inline>
@@ -6285,6 +6354,9 @@
6285
6354
 
6286
6355
  </xsl:if>
6287
6356
 
6357
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
6358
+ <xsl:variable name="text" select="normalize-space()"/>
6359
+
6288
6360
 
6289
6361
 
6290
6362
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
@@ -6297,7 +6369,9 @@
6297
6369
 
6298
6370
 
6299
6371
  </xsl:if>
6300
-
6372
+
6373
+
6374
+
6301
6375
  <xsl:apply-templates/>
6302
6376
  </fo:basic-link>
6303
6377
 
@@ -6635,6 +6709,7 @@
6635
6709
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
6636
6710
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
6637
6711
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
6712
+
6638
6713
  <xsl:apply-templates/>
6639
6714
  </fo:block>
6640
6715
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
@@ -6829,9 +6904,97 @@
6829
6904
  <fo:block-container border="1pt solid black" width="50%">
6830
6905
  <fo:block> </fo:block>
6831
6906
  </fo:block-container>
6907
+ </xsl:template><xsl:template match="*[local-name() = 'toc']">
6908
+ <xsl:param name="colwidths"/>
6909
+ <xsl:variable name="colwidths_">
6910
+ <xsl:choose>
6911
+ <xsl:when test="not($colwidths)">
6912
+ <xsl:variable name="toc_table_simple">
6913
+ <tbody>
6914
+ <xsl:apply-templates mode="toc_table_width"/>
6915
+ </tbody>
6916
+ </xsl:variable>
6917
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
6918
+ <xsl:call-template name="calculate-column-widths">
6919
+ <xsl:with-param name="cols-count" select="$cols-count"/>
6920
+ <xsl:with-param name="table" select="$toc_table_simple"/>
6921
+ </xsl:call-template>
6922
+ </xsl:when>
6923
+ <xsl:otherwise>
6924
+ <xsl:copy-of select="$colwidths"/>
6925
+ </xsl:otherwise>
6926
+ </xsl:choose>
6927
+ </xsl:variable>
6928
+ <fo:block role="TOCI" space-after="16pt">
6929
+ <fo:table width="100%" table-layout="fixed">
6930
+ <xsl:for-each select="xalan:nodeset($colwidths_)/column">
6931
+ <fo:table-column column-width="proportional-column-width({.})"/>
6932
+ </xsl:for-each>
6933
+ <fo:table-body>
6934
+ <xsl:apply-templates/>
6935
+ </fo:table-body>
6936
+ </fo:table>
6937
+ </fo:block>
6938
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
6939
+ <fo:table-row min-height="5mm">
6940
+ <xsl:apply-templates/>
6941
+ </fo:table-row>
6942
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']/*[local-name() = 'p']">
6943
+ <xsl:apply-templates/>
6944
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'xref']" priority="3">
6945
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
6946
+ <xsl:variable name="target" select="@target"/>
6947
+ <xsl:for-each select="*[local-name() = 'tab']">
6948
+ <xsl:variable name="current_id" select="generate-id()"/>
6949
+ <fo:table-cell>
6950
+ <fo:block>
6951
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
6952
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
6953
+ <xsl:choose>
6954
+ <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
6955
+ <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
6956
+ </xsl:choose>
6957
+ </xsl:for-each>
6958
+ </fo:basic-link>
6959
+ </fo:block>
6960
+ </fo:table-cell>
6961
+ </xsl:for-each>
6962
+ <!-- last column - for page numbers -->
6963
+ <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
6964
+ <fo:block>
6965
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
6966
+ <fo:page-number-citation ref-id="{$target}"/>
6967
+ </fo:basic-link>
6968
+ </fo:block>
6969
+ </fo:table-cell>
6970
+ </xsl:template><xsl:template match="*" mode="toc_table_width">
6971
+ <xsl:apply-templates mode="toc_table_width"/>
6972
+ </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">
6973
+ <tr>
6974
+ <xsl:apply-templates mode="toc_table_width"/>
6975
+ </tr>
6976
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="toc_table_width">
6977
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
6978
+ <xsl:for-each select="*[local-name() = 'tab']">
6979
+ <xsl:variable name="current_id" select="generate-id()"/>
6980
+ <td>
6981
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
6982
+ <xsl:copy-of select="."/>
6983
+ </xsl:for-each>
6984
+ </td>
6985
+ </xsl:for-each>
6986
+ <td>333</td> <!-- page number, just for fill -->
6832
6987
  </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
6833
6988
  <fo:inline padding-right="5mm"> </fo:inline>
6834
6989
  <fo:inline><xsl:apply-templates/></fo:inline>
6990
+ </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
6991
+ <fo:inline padding-right="2.5mm" baseline-shift="5%">
6992
+ <fo:instream-foreign-object content-height="2mm" content-width="2mm" fox:alt-text="Quad">
6993
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 2 2">
6994
+ <rect x="0" y="0" width="2" height="2" fill="black"/>
6995
+ </svg>
6996
+ </fo:instream-foreign-object>
6997
+ </fo:inline>
6835
6998
  </xsl:template><xsl:template name="convertDate">
6836
6999
  <xsl:param name="date"/>
6837
7000
  <xsl:param name="format" select="'short'"/>