metanorma-csa 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4938f9ff49a51e7776a53a92b4c333e07c43619fa1159820289ba8414aafe4fd
4
- data.tar.gz: 4d88c0de0b204b6cb1e5e3af35cc27fc69f23f05ee98b905de4e0f2e01720f6e
3
+ metadata.gz: 629614e2092ff73961a043e4e8b388b86fb2dffdc30321ee0331258f3ca5cf32
4
+ data.tar.gz: 92d823ca132010efc4432f9b59ad3e31f3ade7ec003c2dd649ac7bab409a750c
5
5
  SHA512:
6
- metadata.gz: dc59b516a63ec9800fa0b3d037c061f6141cda591d43983e4ceef645195cae8d62874df3d1c2da87ac555e8a96559189ad8c739c4e27b7dfef972dacde6f39e0
7
- data.tar.gz: 58594ff341c9f989f0c501360ece53f765b19d65d2374d60db216acf01de8367dbc4a49cfa65ea159a8e9559e1ca5d2ef42d58af233b4e0734ebbb3029f20bfe
6
+ metadata.gz: '09c86d97cf7cb7c89a7d169bbf5989585bfe1f84df7743f8d55b85a09d69ccb5a79f66e144598877347a8c3fc69950a4796fb1b6f55f00c1fbbc5b10ef1603f8'
7
+ data.tar.gz: 38f4f047cbecc9e3ad83fea065ba203f7b2f3d25fb4927d80f9fe93ae27e201289ca2675a857f9c0b646f5729a6c369c5309062b1620c4c201bb4635f85889d3
@@ -16,12 +16,14 @@
16
16
 
17
17
  <xsl:variable name="color-header-document">rgb(79, 201, 204)</xsl:variable>
18
18
 
19
- <xsl:variable name="contents">
19
+ <xsl:variable name="contents_">
20
20
  <contents>
21
21
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
22
22
  <xsl:call-template name="processMainSectionsDefault_Contents"/>
23
+ <xsl:call-template name="processTablesFigures_Contents"/>
23
24
  </contents>
24
25
  </xsl:variable>
26
+ <xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
25
27
 
26
28
  <xsl:template match="/">
27
29
  <xsl:call-template name="namespaceCheck"/>
@@ -104,7 +106,7 @@
104
106
  <xsl:if test="$debug = 'true'">
105
107
  <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
106
108
  DEBUG
107
- contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
109
+ contents=<xsl:copy-of select="$contents"/>
108
110
  <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
109
111
  </xsl:if>
110
112
 
@@ -193,7 +195,7 @@
193
195
  <fo:block font-size="26pt" color="black" margin-top="2pt" margin-bottom="30pt" role="H1"><xsl:value-of select="$title-toc"/></fo:block>
194
196
 
195
197
  <fo:block margin-left="-3mm" role="TOC">
196
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
198
+ <xsl:for-each select="$contents//item[@display = 'true']">
197
199
  <fo:block role="TOCI">
198
200
  <fo:list-block>
199
201
  <xsl:attribute name="provisional-distance-between-starts">
@@ -222,6 +224,27 @@
222
224
  </fo:list-block>
223
225
  </fo:block>
224
226
  </xsl:for-each>
227
+
228
+ <!-- List of Tables -->
229
+ <xsl:if test="$contents//tables/table">
230
+ <xsl:call-template name="insertListOf_Title">
231
+ <xsl:with-param name="title" select="$title-list-tables"/>
232
+ </xsl:call-template>
233
+ <xsl:for-each select="$contents//tables/table">
234
+ <xsl:call-template name="insertListOf_Item"/>
235
+ </xsl:for-each>
236
+ </xsl:if>
237
+
238
+ <!-- List of Figures -->
239
+ <xsl:if test="$contents//figures/figure">
240
+ <xsl:call-template name="insertListOf_Title">
241
+ <xsl:with-param name="title" select="$title-list-figures"/>
242
+ </xsl:call-template>
243
+ <xsl:for-each select="$contents//figures/figure">
244
+ <xsl:call-template name="insertListOf_Item"/>
245
+ </xsl:for-each>
246
+ </xsl:if>
247
+
225
248
  </fo:block>
226
249
  </fo:block-container>
227
250
 
@@ -240,6 +263,51 @@
240
263
  </fo:root>
241
264
  </xsl:template>
242
265
 
266
+ <xsl:template name="insertListOf_Title">
267
+ <xsl:param name="title"/>
268
+ <fo:block role="TOCI" keep-with-next="always">
269
+ <fo:list-block provisional-distance-between-starts="3mm">
270
+ <fo:list-item>
271
+ <fo:list-item-label end-indent="label-end()">
272
+ <fo:block font-size="1pt"> </fo:block>
273
+ </fo:list-item-label>
274
+ <fo:list-item-body start-indent="body-start()">
275
+ <fo:block>
276
+ <xsl:value-of select="$title"/>
277
+ </fo:block>
278
+ </fo:list-item-body>
279
+ </fo:list-item>
280
+ </fo:list-block>
281
+ </fo:block>
282
+ </xsl:template>
283
+
284
+ <xsl:template name="insertListOf_Item">
285
+ <fo:block role="TOCI">
286
+ <fo:list-block provisional-distance-between-starts="10mm">
287
+ <fo:list-item>
288
+ <fo:list-item-label end-indent="label-end()">
289
+ <fo:block font-size="1pt"> </fo:block>
290
+ </fo:list-item-label>
291
+ <fo:list-item-body start-indent="body-start()">
292
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
293
+ <fo:basic-link internal-destination="{@id}">
294
+ <xsl:call-template name="setAltText">
295
+ <xsl:with-param name="value" select="@alt-text"/>
296
+ </xsl:call-template>
297
+ <xsl:apply-templates select="." mode="contents"/>
298
+ <fo:inline keep-together.within-line="always">
299
+ <fo:leader leader-pattern="dots"/>
300
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
301
+ </fo:inline>
302
+ </fo:basic-link>
303
+ </fo:block>
304
+ </fo:list-item-body>
305
+ </fo:list-item>
306
+ </fo:list-block>
307
+ </fo:block>
308
+ </xsl:template>
309
+
310
+
243
311
  <xsl:template match="node()">
244
312
  <xsl:apply-templates/>
245
313
  </xsl:template>
@@ -497,7 +565,7 @@
497
565
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAASEAAAEhCAYAAAAwHRYbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYWRhN2RlNC04YzAyLTQ1N2UtYjUwNy0zNGYzY2RjNWE2ZGQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDUyNzBENDc3NjVCMTFFQTlDMDhGMEI2ODhENjUxQkIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDUyNzBENDY3NjVCMTFFQTlDMDhGMEI2ODhENjUxQkIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgSW5EZXNpZ24gMTQuMCAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOmZiZjFiODZmLTIzMjMtM2U0OS1hMDMzLTVlOGQxYThlNmI1YiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmlkOjFlMzVjZTE3LWU5NzAtNDQ1OS05ZjI0LTM1NzcwZWYzMjNjMiIvPiA8L3Jk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</xsl:text>
498
566
  </xsl:variable>
499
567
 
500
- <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:variable name="lang">
568
+ <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:key name="bibitems" match="*[local-name() = 'bibitem']" use="@id"/><xsl:key name="bibitems_hidden" match="*[local-name() = 'bibitem'][@hidden='true'] | *[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']" use="@id"/><xsl:variable name="lang">
501
569
  <xsl:call-template name="getLang"/>
502
570
  </xsl:variable><xsl:variable name="pageWidth_">
503
571
  215.9
@@ -543,7 +611,7 @@
543
611
  <xsl:text>Contents</xsl:text>
544
612
 
545
613
  </title-toc>
546
-
614
+
547
615
  <title-descriptors lang="en">Descriptors</title-descriptors>
548
616
 
549
617
  <title-part lang="en">
@@ -579,7 +647,31 @@
579
647
  <title-continued lang="en">(continued)</title-continued>
580
648
  <title-continued lang="fr">(continué)</title-continued>
581
649
 
582
- </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
650
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
651
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
652
+ <xsl:value-of select="$toc_table_title"/>
653
+ <xsl:if test="normalize-space($toc_table_title) = ''">
654
+ <xsl:call-template name="getTitle">
655
+ <xsl:with-param name="name" select="'title-list-tables'"/>
656
+ </xsl:call-template>
657
+ </xsl:if>
658
+ </xsl:variable><xsl:variable name="title-list-figures">
659
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
660
+ <xsl:value-of select="$toc_figure_title"/>
661
+ <xsl:if test="normalize-space($toc_figure_title) = ''">
662
+ <xsl:call-template name="getTitle">
663
+ <xsl:with-param name="name" select="'title-list-figures'"/>
664
+ </xsl:call-template>
665
+ </xsl:if>
666
+ </xsl:variable><xsl:variable name="title-list-recommendations">
667
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
668
+ <xsl:value-of select="$toc_requirement_title"/>
669
+ <xsl:if test="normalize-space($toc_requirement_title) = ''">
670
+ <xsl:call-template name="getTitle">
671
+ <xsl:with-param name="name" select="'title-list-recommendations'"/>
672
+ </xsl:call-template>
673
+ </xsl:if>
674
+ </xsl:variable><xsl:variable name="bibdata">
583
675
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
584
676
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
585
677
  </xsl:variable><xsl:variable name="linebreak">&#8232;</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space">​</xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
@@ -1809,6 +1901,30 @@
1809
1901
  <xsl:sort select="@displayorder" data-type="number"/>
1810
1902
  <xsl:apply-templates select="." mode="contents"/>
1811
1903
  </xsl:for-each>
1904
+ </xsl:template><xsl:template name="processTablesFigures_Contents">
1905
+ <xsl:param name="always"/>
1906
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
1907
+ <xsl:call-template name="processTables_Contents"/>
1908
+ </xsl:if>
1909
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
1910
+ <xsl:call-template name="processFigures_Contents"/>
1911
+ </xsl:if>
1912
+ </xsl:template><xsl:template name="processTables_Contents">
1913
+ <tables>
1914
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
1915
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
1916
+ <xsl:copy-of select="*[local-name() = 'name']"/>
1917
+ </table>
1918
+ </xsl:for-each>
1919
+ </tables>
1920
+ </xsl:template><xsl:template name="processFigures_Contents">
1921
+ <figures>
1922
+ <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and not(@unnumbered = 'true') and normalize-space(@id) != ''] | //*[@id and starts-with(*[local-name() = 'name'], 'Figure ') and normalize-space(@id) != '']">
1923
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
1924
+ <xsl:copy-of select="*[local-name() = 'name']"/>
1925
+ </figure>
1926
+ </xsl:for-each>
1927
+ </figures>
1812
1928
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1813
1929
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1814
1930
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2585,37 +2701,7 @@
2585
2701
 
2586
2702
  <!-- list of footnotes to calculate actual footnotes number -->
2587
2703
  <xsl:variable name="p_fn_">
2588
- <xsl:choose>
2589
- <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
2590
- <fn gen_id="{generate-id(.)}">
2591
- <xsl:copy-of select="@*"/>
2592
- <xsl:copy-of select="node()"/>
2593
- </fn>
2594
- </xsl:when>
2595
- <xsl:otherwise>
2596
- <!-- itetation for:
2597
- footnotes in bibdata/title
2598
- footnotes in bibliography
2599
- footnotes in document's body (except table's head/body/foot and figure text)
2600
- -->
2601
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
2602
- <fn gen_id="{generate-id(.)}">
2603
- <xsl:copy-of select="@*"/>
2604
- <xsl:copy-of select="node()"/>
2605
- </fn>
2606
- </xsl:for-each>
2607
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
2608
- <xsl:sort select="@displayorder" data-type="number"/>
2609
- <xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
2610
- <!-- copy unique fn -->
2611
- <fn gen_id="{generate-id(.)}">
2612
- <xsl:copy-of select="@*"/>
2613
- <xsl:copy-of select="node()"/>
2614
- </fn>
2615
- </xsl:for-each>
2616
- </xsl:for-each>
2617
- </xsl:otherwise>
2618
- </xsl:choose>
2704
+ <xsl:call-template name="get_fn_list"/>
2619
2705
  </xsl:variable>
2620
2706
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
2621
2707
 
@@ -2676,6 +2762,38 @@
2676
2762
  <xsl:copy-of select="$footnote_inline"/>
2677
2763
  </xsl:otherwise>
2678
2764
  </xsl:choose>
2765
+ </xsl:template><xsl:template name="get_fn_list">
2766
+ <xsl:choose>
2767
+ <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
2768
+ <fn gen_id="{generate-id(.)}">
2769
+ <xsl:copy-of select="@*"/>
2770
+ <xsl:copy-of select="node()"/>
2771
+ </fn>
2772
+ </xsl:when>
2773
+ <xsl:otherwise>
2774
+ <!-- itetation for:
2775
+ footnotes in bibdata/title
2776
+ footnotes in bibliography
2777
+ footnotes in document's body (except table's head/body/foot and figure text)
2778
+ -->
2779
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
2780
+ <fn gen_id="{generate-id(.)}">
2781
+ <xsl:copy-of select="@*"/>
2782
+ <xsl:copy-of select="node()"/>
2783
+ </fn>
2784
+ </xsl:for-each>
2785
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
2786
+ <xsl:sort select="@displayorder" data-type="number"/>
2787
+ <xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
2788
+ <!-- copy unique fn -->
2789
+ <fn gen_id="{generate-id(.)}">
2790
+ <xsl:copy-of select="@*"/>
2791
+ <xsl:copy-of select="node()"/>
2792
+ </fn>
2793
+ </xsl:for-each>
2794
+ </xsl:for-each>
2795
+ </xsl:otherwise>
2796
+ </xsl:choose>
2679
2797
  </xsl:template><xsl:template name="table_fn_display">
2680
2798
  <xsl:variable name="references">
2681
2799
 
@@ -2847,7 +2965,7 @@
2847
2965
  </fo:inline>
2848
2966
  </xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
2849
2967
  <fo:inline><xsl:value-of select="."/></fo:inline>
2850
- </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
2968
+ </xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
2851
2969
  <fo:inline>
2852
2970
  <xsl:apply-templates/>
2853
2971
  </fo:inline>
@@ -4537,13 +4655,14 @@
4537
4655
  <xsl:apply-templates mode="bookmarks"/>
4538
4656
  </xsl:template><xsl:template name="addBookmarks">
4539
4657
  <xsl:param name="contents"/>
4540
- <xsl:if test="xalan:nodeset($contents)//item">
4658
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4659
+ <xsl:if test="$contents_nodes//item">
4541
4660
  <fo:bookmark-tree>
4542
4661
  <xsl:choose>
4543
- <xsl:when test="xalan:nodeset($contents)/doc">
4662
+ <xsl:when test="$contents_nodes/doc">
4544
4663
  <xsl:choose>
4545
- <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
4546
- <xsl:for-each select="xalan:nodeset($contents)/doc">
4664
+ <xsl:when test="count($contents_nodes/doc) &gt; 1">
4665
+ <xsl:for-each select="$contents_nodes/doc">
4547
4666
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4548
4667
  <xsl:if test="@bundle = 'true'">
4549
4668
  <xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
@@ -4594,7 +4713,7 @@
4594
4713
  </xsl:for-each>
4595
4714
  </xsl:when>
4596
4715
  <xsl:otherwise>
4597
- <xsl:for-each select="xalan:nodeset($contents)/doc">
4716
+ <xsl:for-each select="$contents_nodes/doc">
4598
4717
 
4599
4718
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
4600
4719
 
@@ -4612,25 +4731,36 @@
4612
4731
  </xsl:choose>
4613
4732
  </xsl:when>
4614
4733
  <xsl:otherwise>
4615
- <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
4734
+ <xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
4735
+
4736
+ <xsl:call-template name="insertFigureBookmarks">
4737
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
4738
+ </xsl:call-template>
4739
+
4740
+ <xsl:call-template name="insertTableBookmarks">
4741
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
4742
+ <xsl:with-param name="lang" select="@lang"/>
4743
+ </xsl:call-template>
4744
+
4616
4745
  </xsl:otherwise>
4617
4746
  </xsl:choose>
4618
4747
 
4748
+
4619
4749
 
4620
4750
 
4621
4751
 
4622
4752
 
4623
-
4624
-
4753
+
4625
4754
 
4626
4755
  </fo:bookmark-tree>
4627
4756
  </xsl:if>
4628
4757
  </xsl:template><xsl:template name="insertFigureBookmarks">
4629
4758
  <xsl:param name="contents"/>
4630
- <xsl:if test="xalan:nodeset($contents)/figure">
4631
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
4759
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4760
+ <xsl:if test="$contents_nodes/figure">
4761
+ <fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
4632
4762
  <fo:bookmark-title>Figures</fo:bookmark-title>
4633
- <xsl:for-each select="xalan:nodeset($contents)/figure">
4763
+ <xsl:for-each select="$contents_nodes/figure">
4634
4764
  <fo:bookmark internal-destination="{@id}">
4635
4765
  <fo:bookmark-title>
4636
4766
  <xsl:value-of select="normalize-space(title)"/>
@@ -4639,18 +4769,40 @@
4639
4769
  </xsl:for-each>
4640
4770
  </fo:bookmark>
4641
4771
  </xsl:if>
4772
+
4773
+
4774
+ <xsl:if test="$contents_nodes//figures/figure">
4775
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
4776
+
4777
+
4778
+
4779
+ <xsl:variable name="bookmark-title">
4780
+
4781
+ <xsl:value-of select="$title-list-figures"/>
4782
+
4783
+ </xsl:variable>
4784
+ <fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
4785
+ <xsl:for-each select="$contents_nodes//figures/figure">
4786
+ <fo:bookmark internal-destination="{@id}">
4787
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
4788
+ </fo:bookmark>
4789
+ </xsl:for-each>
4790
+ </fo:bookmark>
4791
+ </xsl:if>
4792
+
4642
4793
  </xsl:template><xsl:template name="insertTableBookmarks">
4643
4794
  <xsl:param name="contents"/>
4644
4795
  <xsl:param name="lang"/>
4645
- <xsl:if test="xalan:nodeset($contents)/table">
4646
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
4796
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4797
+ <xsl:if test="$contents_nodes/table">
4798
+ <fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
4647
4799
  <fo:bookmark-title>
4648
4800
  <xsl:choose>
4649
4801
  <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
4650
4802
  <xsl:otherwise>Tables</xsl:otherwise>
4651
4803
  </xsl:choose>
4652
4804
  </fo:bookmark-title>
4653
- <xsl:for-each select="xalan:nodeset($contents)/table">
4805
+ <xsl:for-each select="$contents_nodes/table">
4654
4806
  <fo:bookmark internal-destination="{@id}">
4655
4807
  <fo:bookmark-title>
4656
4808
  <xsl:value-of select="normalize-space(title)"/>
@@ -4659,6 +4811,29 @@
4659
4811
  </xsl:for-each>
4660
4812
  </fo:bookmark>
4661
4813
  </xsl:if>
4814
+
4815
+
4816
+ <xsl:if test="$contents_nodes//tables/table">
4817
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
4818
+
4819
+
4820
+
4821
+ <xsl:variable name="bookmark-title">
4822
+
4823
+ <xsl:value-of select="$title-list-tables"/>
4824
+
4825
+ </xsl:variable>
4826
+
4827
+ <fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
4828
+
4829
+ <xsl:for-each select="$contents_nodes//tables/table">
4830
+ <fo:bookmark internal-destination="{@id}">
4831
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
4832
+ </fo:bookmark>
4833
+ </xsl:for-each>
4834
+ </fo:bookmark>
4835
+ </xsl:if>
4836
+
4662
4837
  </xsl:template><xsl:template name="getLangVersion">
4663
4838
  <xsl:param name="lang"/>
4664
4839
  <xsl:param name="doctype" select="''"/>
@@ -5315,6 +5490,8 @@
5315
5490
  </xsl:otherwise>
5316
5491
  </xsl:choose> -->
5317
5492
  </fo:block>
5493
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
5494
+ <xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
5318
5495
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
5319
5496
  <xsl:if test="normalize-space() != ''">
5320
5497
  <xsl:value-of select="."/>
@@ -5389,26 +5566,11 @@
5389
5566
  </xsl:template><xsl:template match="*[local-name() = 'author']">
5390
5567
  <xsl:text>— </xsl:text>
5391
5568
  <xsl:apply-templates/>
5392
- </xsl:template><xsl:variable name="bibitem_hidden_">
5393
- <xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
5394
- <xsl:copy-of select="."/>
5395
- </xsl:for-each>
5396
- <xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
5397
- <xsl:copy-of select="."/>
5398
- </xsl:for-each>
5399
- </xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
5400
-
5401
- <xsl:variable name="bibitemid">
5402
- <xsl:choose>
5403
- <!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
5404
- <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
5405
- <xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
5406
- <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
5407
- </xsl:choose>
5408
- </xsl:variable>
5409
-
5569
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
5570
+ <xsl:variable name="current_bibitemid" select="@bibitemid"/>
5571
+ <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/>
5410
5572
  <xsl:choose>
5411
- <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
5573
+ <xsl:when test="$external-destination != '' or not(key('bibitems_hidden', $current_bibitemid))"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
5412
5574
  <fo:inline xsl:use-attribute-sets="eref-style">
5413
5575
  <xsl:if test="@type = 'footnote'">
5414
5576
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
@@ -5422,8 +5584,8 @@
5422
5584
  <xsl:variable name="text" select="normalize-space()"/>
5423
5585
 
5424
5586
 
5425
-
5426
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5587
+
5588
+ <fo:basic-link fox:alt-text="{@citeas}">
5427
5589
  <xsl:if test="normalize-space(@citeas) = ''">
5428
5590
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5429
5591
  </xsl:if>
@@ -5433,14 +5595,21 @@
5433
5595
 
5434
5596
  </xsl:if>
5435
5597
 
5436
-
5598
+ <xsl:choose>
5599
+ <xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
5600
+ <xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
5601
+ </xsl:when>
5602
+ <xsl:otherwise>
5603
+ <xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
5604
+ </xsl:otherwise>
5605
+ </xsl:choose>
5437
5606
 
5438
5607
  <xsl:apply-templates/>
5439
5608
  </fo:basic-link>
5440
-
5609
+
5441
5610
  </fo:inline>
5442
5611
  </xsl:when>
5443
- <xsl:otherwise>
5612
+ <xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
5444
5613
  <fo:inline><xsl:apply-templates/></fo:inline>
5445
5614
  </xsl:otherwise>
5446
5615
  </xsl:choose>
@@ -6216,6 +6385,24 @@
6216
6385
  <xsl:apply-templates/>
6217
6386
  </fo:inline>
6218
6387
  </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
6388
+
6389
+ <!-- list of footnotes to calculate actual footnotes number -->
6390
+ <xsl:variable name="p_fn_">
6391
+ <xsl:call-template name="get_fn_list"/>
6392
+ </xsl:variable>
6393
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
6394
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
6395
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
6396
+ <!-- fn sequence number in document -->
6397
+ <xsl:variable name="current_fn_number">
6398
+ <xsl:choose>
6399
+ <xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
6400
+ <xsl:otherwise>
6401
+ <!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
6402
+ <xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
6403
+ </xsl:otherwise>
6404
+ </xsl:choose>
6405
+ </xsl:variable>
6219
6406
  <fo:footnote>
6220
6407
  <xsl:variable name="number">
6221
6408
 
@@ -6224,22 +6411,26 @@
6224
6411
  <xsl:number level="any" count="*[local-name() = 'references'][preceding-sibling::*[local-name() = 'references']]//*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6225
6412
  </xsl:when>
6226
6413
  <xsl:otherwise>
6227
- <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6414
+ <xsl:value-of select="$current_fn_number"/>
6228
6415
  </xsl:otherwise>
6229
6416
  </xsl:choose>
6230
6417
 
6231
6418
  </xsl:variable>
6419
+
6420
+ <xsl:variable name="current_fn_number_text">
6421
+ <xsl:value-of select="$number"/>
6422
+
6423
+ </xsl:variable>
6424
+
6232
6425
  <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6233
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
6234
- <xsl:value-of select="$number"/>
6235
-
6426
+ <fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
6427
+ <xsl:value-of select="$current_fn_number_text"/>
6236
6428
  </fo:basic-link>
6237
6429
  </fo:inline>
6238
6430
  <fo:footnote-body>
6239
6431
  <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
6240
- <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6241
- <xsl:value-of select="$number"/>
6242
-
6432
+ <fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6433
+ <xsl:value-of select="$current_fn_number_text"/>
6243
6434
  </fo:inline>
6244
6435
  <xsl:apply-templates/>
6245
6436
  </fo:block>
@@ -6479,6 +6670,78 @@
6479
6670
  <!-- processing for admonition/p found in the template for 'p' -->
6480
6671
  <xsl:call-template name="paragraph"/>
6481
6672
 
6673
+ </xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
6674
+ <xsl:copy>
6675
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
6676
+ </xsl:copy>
6677
+ </xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
6678
+ <xsl:copy>
6679
+ <xsl:copy-of select="@*"/>
6680
+
6681
+ <xsl:variable name="nodes_preface_">
6682
+ <xsl:for-each select="*">
6683
+ <node id="{@id}"/>
6684
+ </xsl:for-each>
6685
+ </xsl:variable>
6686
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
6687
+
6688
+ <xsl:for-each select="*">
6689
+ <xsl:sort select="@displayorder" data-type="number"/>
6690
+
6691
+ <!-- process Section's title -->
6692
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
6693
+ <xsl:if test="$preceding-sibling_id != ''">
6694
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
6695
+ </xsl:if>
6696
+
6697
+ <xsl:choose>
6698
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
6699
+ <xsl:otherwise>
6700
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6701
+ </xsl:otherwise>
6702
+ </xsl:choose>
6703
+
6704
+ </xsl:for-each>
6705
+ </xsl:copy>
6706
+ </xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
6707
+ <xsl:copy>
6708
+ <xsl:copy-of select="@*"/>
6709
+
6710
+ <xsl:variable name="nodes_sections_">
6711
+ <xsl:for-each select="*">
6712
+ <node id="{@id}"/>
6713
+ </xsl:for-each>
6714
+ </xsl:variable>
6715
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
6716
+
6717
+ <!-- move section 'Normative references' inside 'sections' -->
6718
+ <xsl:for-each select="* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
6719
+ <xsl:sort select="@displayorder" data-type="number"/>
6720
+
6721
+ <!-- process Section's title -->
6722
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
6723
+ <xsl:if test="$preceding-sibling_id != ''">
6724
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
6725
+ </xsl:if>
6726
+
6727
+ <xsl:choose>
6728
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
6729
+ <xsl:otherwise>
6730
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6731
+ </xsl:otherwise>
6732
+ </xsl:choose>
6733
+
6734
+ </xsl:for-each>
6735
+ </xsl:copy>
6736
+ </xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
6737
+ <xsl:copy>
6738
+ <xsl:copy-of select="@*"/>
6739
+ <!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
6740
+ <xsl:for-each select="*[not(@normative='true') and not(*[*[@normative='true']])]">
6741
+ <xsl:sort select="@displayorder" data-type="number"/>
6742
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6743
+ </xsl:for-each>
6744
+ </xsl:copy>
6482
6745
  </xsl:template><xsl:template name="convertDate">
6483
6746
  <xsl:param name="date"/>
6484
6747
  <xsl:param name="format" select="'short'"/>
@@ -844,6 +844,26 @@ p.Tablebody, li.Tablebody, div.Tablebody {
844
844
  mso-bidi-font-family: {{bodyfont}};
845
845
  mso-ansi-language: EN-GB; }
846
846
 
847
+ p.TOCTitle, li.TOCTitle, div.TOCTitle {
848
+ mso-style-name: "TOC Title";
849
+ mso-style-unhide: no;
850
+ margin-top: 0in;
851
+ margin-right: 0in;
852
+ margin-bottom: {{normalfontsize}};
853
+ margin-left: 0in;
854
+ text-align: left;
855
+ page-break-after: avoid;
856
+ mso-pagination: none;
857
+ mso-hyphenate: none;
858
+ mso-layout-grid-align: none;
859
+ font-size: {{normalfontsize}};
860
+ mso-bidi-font-size: 10.0pt;
861
+ font-weight: bold;
862
+ font-family: {{headerfont}};
863
+ mso-fareast-font-family: {{headerfont}};
864
+ mso-bidi-font-family: {{headerfont}};
865
+ mso-fareast-language: EN-US; }
866
+
847
867
  /* Page Definitions */
848
868
  @page {
849
869
  size: 612.0pt 792.0pt;
@@ -793,6 +793,25 @@ p.Tablebody, li.Tablebody, div.Tablebody
793
793
  mso-fareast-font-family:$bodyfont;
794
794
  mso-bidi-font-family:$bodyfont;
795
795
  mso-ansi-language:EN-GB;}
796
+ p.TOCTitle, li.TOCTitle, div.TOCTitle
797
+ {mso-style-name:"TOC Title";
798
+ mso-style-unhide:no;
799
+ margin-top:0in;
800
+ margin-right:0in;
801
+ margin-bottom:$normalfontsize;
802
+ margin-left:0in;
803
+ text-align:left;
804
+ page-break-after:avoid;
805
+ mso-pagination:none;
806
+ mso-hyphenate:none;
807
+ mso-layout-grid-align:none;
808
+ font-size:$normalfontsize;
809
+ mso-bidi-font-size:10.0pt;
810
+ font-weight:bold;
811
+ font-family:$headerfont;
812
+ mso-fareast-font-family:$headerfont;
813
+ mso-bidi-font-family:$headerfont;
814
+ mso-fareast-language:EN-US;}
796
815
 
797
816
 
798
817
  /* Page Definitions */
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Csa
3
- VERSION = "2.0.4".freeze
3
+ VERSION = "2.0.5".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-csa
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-21 00:00:00.000000000 Z
11
+ date: 2022-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-generic