metanorma-iec 2.5.7 → 2.5.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2943a0d27f9b2a3dfc6f3075e9f09a5e98e2e3bff208fedecf134a79d8e62d77
4
- data.tar.gz: c4d3c17e2d976295a1c43a099db21131d7234c08365145dc653e2d9483a8cee5
3
+ metadata.gz: 66fba3763fe9014def32480c7a7a3b48b13359ee0d0aa68e32e6fec0895d997c
4
+ data.tar.gz: a611decb5788c0f8d5cef6a565887f87fad598709b733c709f83b7b4e7edb369
5
5
  SHA512:
6
- metadata.gz: fdf68ccbd39985b4d01465b82e03a4c3e877ed2287f7b918e4003216d8985f65a0ac1225a453de0b9c28e99e129a4dbb5366c5c2c07d4e639556e6e324fcc440
7
- data.tar.gz: 2bad112331aabedd8c60fce2052dd73edcacb707d1c84778d41ba1a735930a825795d77a4aaca9f6721ed8d7723659de3160bae06af4efb9084079f628b2b870
6
+ metadata.gz: 888379d6efae9178b3b159223d6a7d3d6168784d9e3f3acc9b28b3a9b4f322d79c944df4980b977a91650db96aa7c09a15db8a02d31d8e12908fac61eb852976
7
+ data.tar.gz: bdcc2276baa7c810f149b3f7e8c6b3df3cdcd41279f5b4adcc2931c43707fd81500b92c650209d919e894f9177ec7ef8aa320b892c698a8057d8c36ae33f5842
@@ -10,9 +10,9 @@ module IsoDoc
10
10
 
11
11
  def foreword(clause, out)
12
12
  out.div **attr_code(id: clause["id"]) do |s|
13
- clause_name(nil, clause.at(ns("./title")), s,
13
+ clause_name(nil, clause.at(ns("./fmt-title")), s,
14
14
  { class: "ForewordTitle" })
15
- clause.elements.each { |e| parse(e, s) unless e.name == "title" }
15
+ clause.elements.each { |e| parse(e, s) unless e.name == "fmt-title" }
16
16
  end
17
17
  end
18
18
 
@@ -23,7 +23,7 @@ module IsoDoc
23
23
  def biblio_list(elem, div, biblio)
24
24
  @is_iev or return super
25
25
  elem.children.each do |b|
26
- parse(b, div) unless %w(title bibitem).include? b.name
26
+ parse(b, div) unless %w(fmt-title bibitem).include? b.name
27
27
  end
28
28
  end
29
29
 
@@ -34,10 +34,10 @@ module IsoDoc
34
34
  depth = clause_title_depth(node, nil)
35
35
  out.send "h#{depth}", class: "zzSTDTitle2" do |p|
36
36
  p.b do |b|
37
- node&.at(ns("./title"))&.children&.each { |c2| parse(c2, b) }
37
+ node&.at(ns("./fmt-title"))&.children&.each { |c2| parse(c2, b) }
38
38
  end
39
39
  end
40
- node.children.reject { |c1| c1.name == "title" }.each do |c1|
40
+ node.children.reject { |c1| c1.name == "fmt-title" }.each do |c1|
41
41
  parse(c1, div)
42
42
  end
43
43
  end
@@ -221,6 +221,12 @@
221
221
  <xsl:with-param name="contents" select="$contents"/>
222
222
  </xsl:call-template>
223
223
 
224
+ <xsl:if test="$debug = 'true'">
225
+ <redirect:write file="contents_.xml"> <!-- {java:getTime(java:java.util.Date.new())} -->
226
+ <xsl:copy-of select="$contents"/>
227
+ </redirect:write>
228
+ </xsl:if>
229
+
224
230
  <!-- For 'Published' documents insert two cover pages -->
225
231
  <xsl:if test="$stage &gt;= 60">
226
232
 
@@ -868,12 +874,6 @@
868
874
  </fo:page-sequence> <!-- END: cover-FDIS -->
869
875
  </xsl:if>
870
876
 
871
- <!-- <xsl:if test="$debug = 'true'">
872
- <redirect:write file="contents_{java:getTime(java:java.util.Date.new())}.xml">
873
- <xsl:copy-of select="$contents"/>
874
- </redirect:write>
875
- </xsl:if> -->
876
-
877
877
  <xsl:for-each select="//iec:iec-standard">
878
878
  <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
879
879
  <xsl:variable name="current_document">
@@ -1591,10 +1591,10 @@
1591
1591
  <!-- ============================= -->
1592
1592
 
1593
1593
  <!-- element with title -->
1594
- <xsl:template match="*[iec:title]" mode="contents">
1594
+ <xsl:template match="*[iec:title or iec:fmt-title]" mode="contents">
1595
1595
  <xsl:variable name="level">
1596
1596
  <xsl:call-template name="getLevel">
1597
- <xsl:with-param name="depth" select="iec:title/@depth"/>
1597
+ <xsl:with-param name="depth" select="iec:fmt-title/@depth | iec:title/@depth"/>
1598
1598
  </xsl:call-template>
1599
1599
  </xsl:variable>
1600
1600
 
@@ -1649,7 +1649,14 @@
1649
1649
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($title))"/>
1650
1650
  </xsl:when>
1651
1651
  <xsl:when test="$type = 'appendix'">
1652
- <xsl:apply-templates select="iec:title" mode="contents_item"/>
1652
+ <xsl:choose>
1653
+ <xsl:when test="iec:fmt-title">
1654
+ <xsl:apply-templates select="iec:fmt-title" mode="contents_item"/>
1655
+ </xsl:when>
1656
+ <xsl:otherwise>
1657
+ <xsl:apply-templates select="iec:title" mode="contents_item"/>
1658
+ </xsl:otherwise>
1659
+ </xsl:choose>
1653
1660
  </xsl:when>
1654
1661
  <xsl:otherwise>
1655
1662
  <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
@@ -2163,7 +2170,7 @@
2163
2170
  </xsl:copy>
2164
2171
  </xsl:template> -->
2165
2172
 
2166
- <xsl:strip-space elements="iec:xref"/>
2173
+ <!-- <xsl:strip-space elements="iec:xref"/> -->
2167
2174
 
2168
2175
  <xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
2169
2176
  <xsl:variable name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
@@ -3183,6 +3190,10 @@
3183
3190
 
3184
3191
  <xsl:template name="refine_termnote-name-style">
3185
3192
 
3193
+ <!-- <xsl:if test="$namespace = 'ieee'">
3194
+ <xsl:attribute name="padding-right">0mm</xsl:attribute>
3195
+ </xsl:if> -->
3196
+
3186
3197
  </xsl:template>
3187
3198
 
3188
3199
  <xsl:attribute-set name="termnote-p-style">
@@ -3895,9 +3906,21 @@
3895
3906
  <xsl:template name="processTables_Contents">
3896
3907
  <tables>
3897
3908
  <xsl:for-each select="//*[local-name() = 'table'][not(ancestor::*[local-name() = 'metanorma-extension'])][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
3898
- <table id="{@id}" alt-text="{*[local-name() = 'name']}">
3899
- <xsl:copy-of select="*[local-name() = 'name']"/>
3900
- </table>
3909
+ <xsl:choose>
3910
+ <xsl:when test="*[local-name() = 'fmt-name']">
3911
+ <xsl:variable name="fmt_name">
3912
+ <xsl:apply-templates select="*[local-name() = 'fmt-name']" mode="update_xml_step1"/>
3913
+ </xsl:variable>
3914
+ <table id="{@id}" alt-text="{normalize-space($fmt_name)}">
3915
+ <xsl:copy-of select="$fmt_name"/>
3916
+ </table>
3917
+ </xsl:when>
3918
+ <xsl:otherwise>
3919
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
3920
+ <xsl:copy-of select="*[local-name() = 'name']"/>
3921
+ </table>
3922
+ </xsl:otherwise>
3923
+ </xsl:choose>
3901
3924
  </xsl:for-each>
3902
3925
  </tables>
3903
3926
  </xsl:template>
@@ -3905,9 +3928,21 @@
3905
3928
  <xsl:template name="processFigures_Contents">
3906
3929
  <figures>
3907
3930
  <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) != '']">
3908
- <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
3909
- <xsl:copy-of select="*[local-name() = 'name']"/>
3910
- </figure>
3931
+ <xsl:choose>
3932
+ <xsl:when test="*[local-name() = 'fmt-name']">
3933
+ <xsl:variable name="fmt_name">
3934
+ <xsl:apply-templates select="*[local-name() = 'fmt-name']" mode="update_xml_step1"/>
3935
+ </xsl:variable>
3936
+ <figure id="{@id}" alt-text="{normalize-space($fmt_name)}">
3937
+ <xsl:copy-of select="$fmt_name"/>
3938
+ </figure>
3939
+ </xsl:when>
3940
+ <xsl:otherwise>
3941
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
3942
+ <xsl:copy-of select="*[local-name() = 'name']"/>
3943
+ </figure>
3944
+ </xsl:otherwise>
3945
+ </xsl:choose>
3911
3946
  </xsl:for-each>
3912
3947
  </figures>
3913
3948
  </xsl:template>
@@ -8814,6 +8849,8 @@
8814
8849
 
8815
8850
  <fo:inline xsl:use-attribute-sets="note-name-style" role="SKIP">
8816
8851
 
8852
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'tab']" mode="tab"/>
8853
+
8817
8854
  <xsl:call-template name="refine_note-name-style"/>
8818
8855
 
8819
8856
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
@@ -8870,10 +8907,6 @@
8870
8907
 
8871
8908
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
8872
8909
 
8873
- <xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
8874
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
8875
- </xsl:if>
8876
-
8877
8910
  <xsl:call-template name="refine_termnote-name-style"/>
8878
8911
 
8879
8912
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
@@ -9020,17 +9053,29 @@
9020
9053
  <!-- Example: Dimensions in millimeters -->
9021
9054
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
9022
9055
 
9056
+ <xsl:variable name="show_figure_key_in_block_container">
9057
+ true
9058
+ </xsl:variable>
9059
+
9023
9060
  <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
9024
9061
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
9025
9062
  </fo:block>
9026
- <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
9027
- <xsl:call-template name="note"/>
9028
- </xsl:for-each>
9029
- <xsl:call-template name="fn_display_figure"/>
9063
+
9064
+ <xsl:if test="normalize-space($show_figure_key_in_block_container) = 'true'">
9065
+ <xsl:call-template name="showFigureKey"/>
9066
+ </xsl:if>
9030
9067
 
9031
9068
  <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
9032
9069
 
9033
9070
  </fo:block-container>
9071
+
9072
+ </xsl:template>
9073
+
9074
+ <xsl:template name="showFigureKey">
9075
+ <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
9076
+ <xsl:call-template name="note"/>
9077
+ </xsl:for-each>
9078
+ <xsl:call-template name="fn_display_figure"/>
9034
9079
  </xsl:template>
9035
9080
 
9036
9081
  <xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
@@ -9228,6 +9273,22 @@
9228
9273
  </xsl:if>
9229
9274
  </xsl:template>
9230
9275
 
9276
+ <xsl:template name="getImageSrc">
9277
+ <xsl:choose>
9278
+ <xsl:when test="not(starts-with(@src, 'data:'))">
9279
+ <xsl:choose>
9280
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
9281
+ <xsl:value-of select="@src"/>
9282
+ </xsl:when>
9283
+ <xsl:otherwise>
9284
+ <xsl:value-of select="concat($basepath, @src)"/>
9285
+ </xsl:otherwise>
9286
+ </xsl:choose>
9287
+ </xsl:when>
9288
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
9289
+ </xsl:choose>
9290
+ </xsl:template>
9291
+
9231
9292
  <xsl:template name="getImageScale">
9232
9293
  <xsl:param name="indent"/>
9233
9294
  <xsl:variable name="indent_left">
@@ -9237,19 +9298,7 @@
9237
9298
  </xsl:choose>
9238
9299
  </xsl:variable>
9239
9300
  <xsl:variable name="img_src">
9240
- <xsl:choose>
9241
- <xsl:when test="not(starts-with(@src, 'data:'))">
9242
- <xsl:choose>
9243
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
9244
- <xsl:value-of select="@src"/>
9245
- </xsl:when>
9246
- <xsl:otherwise>
9247
- <xsl:value-of select="concat($basepath, @src)"/>
9248
- </xsl:otherwise>
9249
- </xsl:choose>
9250
- </xsl:when>
9251
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
9252
- </xsl:choose>
9301
+ <xsl:call-template name="getImageSrc"/>
9253
9302
  </xsl:variable>
9254
9303
 
9255
9304
  <xsl:variable name="image_width_effective">
@@ -9257,10 +9306,15 @@
9257
9306
  <xsl:value-of select="$width_effective - number($indent_left)"/>
9258
9307
 
9259
9308
  </xsl:variable>
9309
+ <xsl:variable name="image_height_effective" select="$height_effective - number($indent_left)"/>
9260
9310
  <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
9261
9311
  <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
9262
9312
  <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
9263
- <xsl:variable name="scale" select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
9313
+ <xsl:variable name="scale">
9314
+
9315
+ <xsl:value-of select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
9316
+
9317
+ </xsl:variable>
9264
9318
  <xsl:value-of select="$scale"/>
9265
9319
  </xsl:template>
9266
9320
 
@@ -9813,20 +9867,48 @@
9813
9867
  <xsl:template match="*[local-name() = 'emf']"/>
9814
9868
 
9815
9869
  <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">
9870
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
9871
+ <xsl:apply-templates mode="contents"/>
9872
+ <xsl:text> </xsl:text>
9873
+ </xsl:if>
9874
+ </xsl:template>
9875
+
9876
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="contents"/>
9877
+
9878
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fmt-name'] | *[local-name() = 'table']/*[local-name() = 'fmt-name'] | *[local-name() = 'permission']/*[local-name() = 'fmt-name'] | *[local-name() = 'recommendation']/*[local-name() = 'fmt-name'] | *[local-name() = 'requirement']/*[local-name() = 'fmt-name']" mode="contents">
9816
9879
  <xsl:apply-templates mode="contents"/>
9817
9880
  <xsl:text> </xsl:text>
9818
9881
  </xsl:template>
9819
9882
 
9820
9883
  <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'] | *[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="bookmarks">
9884
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
9885
+ <xsl:apply-templates mode="bookmarks"/>
9886
+ <xsl:text> </xsl:text>
9887
+ </xsl:if>
9888
+ </xsl:template>
9889
+
9890
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fmt-name'] | *[local-name() = 'table']/*[local-name() = 'fmt-name'] | *[local-name() = 'permission']/*[local-name() = 'fmt-name'] | *[local-name() = 'recommendation']/*[local-name() = 'fmt-name'] | *[local-name() = 'requirement']/*[local-name() = 'fmt-name'] | *[local-name() = 'sourcecode']/*[local-name() = 'fmt-name']" mode="bookmarks">
9821
9891
  <xsl:apply-templates mode="bookmarks"/>
9822
9892
  <xsl:text> </xsl:text>
9823
9893
  </xsl:template>
9824
9894
 
9825
9895
  <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">
9896
+ <xsl:if test="not(../following-sibling::*[1][local-name() = 'fmt-name'])">
9897
+ <xsl:value-of select="."/>
9898
+ </xsl:if>
9899
+ </xsl:template>
9900
+
9901
+ <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'fmt-name']/text()" mode="contents" priority="2">
9826
9902
  <xsl:value-of select="."/>
9827
9903
  </xsl:template>
9828
9904
 
9829
9905
  <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement' or local-name() = 'sourcecode']/*[local-name() = 'name']//text()" mode="bookmarks" priority="2">
9906
+ <xsl:if test="not(../following-sibling::*[1][local-name() = 'fmt-name'])">
9907
+ <xsl:value-of select="."/>
9908
+ </xsl:if>
9909
+ </xsl:template>
9910
+
9911
+ <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement' or local-name() = 'sourcecode']/*[local-name() = 'fmt-name']//text()" mode="bookmarks" priority="2">
9830
9912
  <xsl:value-of select="."/>
9831
9913
  </xsl:template>
9832
9914
 
@@ -9847,7 +9929,7 @@
9847
9929
  </xsl:template>
9848
9930
 
9849
9931
  <!-- special case: ignore section-title if @depth different than @depth of parent clause, or @depth of parent clause = 1 -->
9850
- <xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/>
9932
+ <xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title' or local-name() = 'fmt-title']/@depth or ../*[local-name() = 'title' or local-name() = 'fmt-title']/@depth = 1)]" priority="3" mode="contents"/>
9851
9933
 
9852
9934
  <xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
9853
9935
  <xsl:variable name="level">
@@ -9859,6 +9941,9 @@
9859
9941
  <xsl:variable name="section">
9860
9942
  <xsl:choose>
9861
9943
  <xsl:when test="@type = 'section-title'"/>
9944
+ <xsl:when test="*[local-name() = 'span'][@class = 'fmt-caption-delim']">
9945
+ <xsl:value-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/preceding-sibling::node()"/>
9946
+ </xsl:when>
9862
9947
  <xsl:otherwise>
9863
9948
  <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
9864
9949
  </xsl:otherwise>
@@ -9881,6 +9966,19 @@
9881
9966
 
9882
9967
  <xsl:variable name="title">
9883
9968
  <xsl:choose>
9969
+ <!-- https://github.com/metanorma/mn-native-pdf/issues/770 -->
9970
+ <xsl:when test="*[local-name() = 'span'][@class = 'fmt-caption-delim']">
9971
+ <xsl:choose>
9972
+ <xsl:when test="@type = 'section-title'">
9973
+ <xsl:value-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/preceding-sibling::node()"/>
9974
+ <xsl:text>: </xsl:text>
9975
+ <xsl:copy-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/following-sibling::node()[not(local-name = 'fmt-xref-label')]"/>
9976
+ </xsl:when>
9977
+ <xsl:otherwise>
9978
+ <xsl:copy-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/following-sibling::node()[not(local-name = 'fmt-xref-label')]"/>
9979
+ </xsl:otherwise>
9980
+ </xsl:choose>
9981
+ </xsl:when>
9884
9982
  <xsl:when test="*[local-name() = 'tab']">
9885
9983
  <xsl:choose>
9886
9984
  <xsl:when test="@type = 'section-title'">
@@ -9916,7 +10014,7 @@
9916
10014
  <xsl:apply-templates mode="bookmarks"/>
9917
10015
  </xsl:template>
9918
10016
 
9919
- <xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
10017
+ <xsl:template match="*[local-name() = 'title' or local-name() = 'name' or local-name() = 'fmt-title' or local-name() = 'fmt-name']//*[local-name() = 'stem']" mode="contents">
9920
10018
  <xsl:apply-templates select="."/>
9921
10019
  </xsl:template>
9922
10020
 
@@ -9929,6 +10027,10 @@
9929
10027
  <xsl:apply-templates mode="contents"/>
9930
10028
  </xsl:template>
9931
10029
 
10030
+ <xsl:template match="*[local-name() = 'semx']" mode="contents">
10031
+ <xsl:apply-templates mode="contents"/>
10032
+ </xsl:template>
10033
+
9932
10034
  <xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
9933
10035
  <xsl:apply-templates mode="bookmarks"/>
9934
10036
  </xsl:template>
@@ -9938,9 +10040,14 @@
9938
10040
  <xsl:apply-templates mode="bookmarks"/>
9939
10041
  </xsl:template>
9940
10042
 
10043
+ <xsl:template match="*[local-name() = 'semx']" mode="bookmarks">
10044
+ <xsl:apply-templates mode="bookmarks"/>
10045
+ </xsl:template>
10046
+
9941
10047
  <!-- Bookmarks -->
9942
10048
  <xsl:template name="addBookmarks">
9943
10049
  <xsl:param name="contents"/>
10050
+ <xsl:param name="contents_addon"/>
9944
10051
  <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
9945
10052
  <xsl:if test="$contents_nodes//item">
9946
10053
  <fo:bookmark-tree>
@@ -10038,6 +10145,9 @@
10038
10145
  </xsl:otherwise>
10039
10146
  </xsl:choose>
10040
10147
 
10148
+ <!-- for $namespace = 'nist-sp' $namespace = 'ogc' $namespace = 'ogc-white-paper' -->
10149
+ <xsl:copy-of select="$contents_addon"/>
10150
+
10041
10151
  </fo:bookmark-tree>
10042
10152
  </xsl:if>
10043
10153
  </xsl:template>
@@ -10202,6 +10312,16 @@
10202
10312
  <!-- ====== -->
10203
10313
  <!-- ====== -->
10204
10314
  <xsl:template match="*[local-name() = 'title']" mode="contents_item">
10315
+ <xsl:param name="mode">bookmarks</xsl:param>
10316
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-title'])">
10317
+ <xsl:apply-templates mode="contents_item">
10318
+ <xsl:with-param name="mode" select="$mode"/>
10319
+ </xsl:apply-templates>
10320
+ <!-- <xsl:text> </xsl:text> -->
10321
+ </xsl:if>
10322
+ </xsl:template>
10323
+
10324
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="contents_item">
10205
10325
  <xsl:param name="mode">bookmarks</xsl:param>
10206
10326
  <xsl:apply-templates mode="contents_item">
10207
10327
  <xsl:with-param name="mode" select="$mode"/>
@@ -10209,12 +10329,38 @@
10209
10329
  <!-- <xsl:text> </xsl:text> -->
10210
10330
  </xsl:template>
10211
10331
 
10332
+ <xsl:template match="*[local-name() = 'span'][ @class = 'fmt-caption-label' or @class = 'fmt-element-name' or @class = 'fmt-caption-delim']" mode="contents_item" priority="3">
10333
+ <xsl:apply-templates mode="contents_item"/>
10334
+ </xsl:template>
10335
+
10336
+ <xsl:template match="*[local-name() = 'semx']" mode="contents_item">
10337
+ <xsl:apply-templates mode="contents_item"/>
10338
+ </xsl:template>
10339
+
10340
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="contents_item"/>
10341
+
10212
10342
  <xsl:template name="getSection">
10213
- <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
10343
+ <xsl:choose>
10344
+ <xsl:when test="*[local-name() = 'fmt-title']">
10345
+ <xsl:variable name="fmt_title_section">
10346
+ <xsl:copy-of select="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']][1]/preceding-sibling::node()[not(local-name() = 'review')]"/>
10347
+ </xsl:variable>
10348
+ <xsl:value-of select="normalize-space($fmt_title_section)"/>
10349
+ </xsl:when>
10350
+ <xsl:otherwise>
10351
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
10352
+ </xsl:otherwise>
10353
+ </xsl:choose>
10214
10354
  </xsl:template>
10215
10355
 
10216
10356
  <xsl:template name="getName">
10217
10357
  <xsl:choose>
10358
+ <xsl:when test="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']]">
10359
+ <xsl:copy-of select="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']][1]/following-sibling::node()"/>
10360
+ </xsl:when>
10361
+ <xsl:when test="*[local-name() = 'fmt-title']">
10362
+ <xsl:copy-of select="*[local-name() = 'fmt-title']/node()"/>
10363
+ </xsl:when>
10218
10364
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
10219
10365
  <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
10220
10366
  </xsl:when>
@@ -10321,6 +10467,15 @@
10321
10467
  </xsl:template>
10322
10468
 
10323
10469
  <xsl:template match="*[local-name() = 'name']" mode="contents_item">
10470
+ <xsl:param name="mode">bookmarks</xsl:param>
10471
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
10472
+ <xsl:apply-templates mode="contents_item">
10473
+ <xsl:with-param name="mode" select="$mode"/>
10474
+ </xsl:apply-templates>
10475
+ </xsl:if>
10476
+ </xsl:template>
10477
+
10478
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="contents_item">
10324
10479
  <xsl:param name="mode">bookmarks</xsl:param>
10325
10480
  <xsl:apply-templates mode="contents_item">
10326
10481
  <xsl:with-param name="mode" select="$mode"/>
@@ -11159,113 +11314,114 @@
11159
11314
  -->
11160
11315
  <xsl:template match="*[local-name() = 'example']">
11161
11316
 
11162
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
11317
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
11163
11318
 
11164
- <xsl:call-template name="setBlockSpanAll"/>
11165
-
11166
- <xsl:call-template name="refine_example-style"/>
11319
+ <xsl:call-template name="setBlockSpanAll"/>
11167
11320
 
11168
- <xsl:variable name="fo_element">
11169
- <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
11321
+ <xsl:call-template name="refine_example-style"/>
11170
11322
 
11171
- <xsl:choose>
11172
- <!-- if example contains only one (except 'name') element (paragraph for example), then display it on the same line as EXAMPLE title -->
11173
- <xsl:when test="count(*[not(local-name() = 'name')]) = 1">inline</xsl:when>
11174
- <xsl:otherwise>block</xsl:otherwise>
11175
- </xsl:choose>
11323
+ <xsl:variable name="fo_element">
11324
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
11176
11325
 
11177
- </xsl:variable>
11326
+ <xsl:choose>
11327
+ <!-- if example contains only one (except 'name') element (paragraph for example), then display it on the same line as EXAMPLE title -->
11328
+ <xsl:when test="count(*[not(local-name() = 'name')]) = 1">inline</xsl:when>
11329
+ <xsl:otherwise>block</xsl:otherwise>
11330
+ </xsl:choose>
11178
11331
 
11179
- <fo:block-container margin-left="0mm" role="SKIP">
11332
+ </xsl:variable>
11180
11333
 
11181
- <xsl:choose>
11334
+ <fo:block-container margin-left="0mm" role="SKIP">
11182
11335
 
11183
- <xsl:when test="contains(normalize-space($fo_element), 'block')">
11336
+ <xsl:choose>
11184
11337
 
11185
- <!-- display name 'EXAMPLE' in a separate block -->
11186
- <fo:block>
11187
- <xsl:apply-templates select="*[local-name()='name']">
11188
- <xsl:with-param name="fo_element" select="$fo_element"/>
11189
- </xsl:apply-templates>
11190
- </fo:block>
11338
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
11191
11339
 
11192
- <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11193
- <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11194
- <xsl:variable name="example_body">
11195
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11340
+ <!-- display name 'EXAMPLE' in a separate block -->
11341
+ <fo:block>
11342
+ <xsl:apply-templates select="*[local-name()='name']">
11196
11343
  <xsl:with-param name="fo_element" select="$fo_element"/>
11197
11344
  </xsl:apply-templates>
11345
+ </fo:block>
11346
+
11347
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11348
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11349
+ <xsl:variable name="example_body">
11350
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11351
+ <xsl:with-param name="fo_element" select="$fo_element"/>
11352
+ </xsl:apply-templates>
11353
+ </xsl:variable>
11354
+ <xsl:choose>
11355
+ <xsl:when test="xalan:nodeset($example_body)/*">
11356
+ <xsl:copy-of select="$example_body"/>
11357
+ </xsl:when>
11358
+ <xsl:otherwise><fo:block/><!-- prevent empty block-container --></xsl:otherwise>
11359
+ </xsl:choose>
11360
+ </fo:block-container>
11361
+ </fo:block-container>
11362
+ </xsl:when> <!-- end block -->
11363
+
11364
+ <xsl:when test="contains(normalize-space($fo_element), 'list')">
11365
+
11366
+ <xsl:variable name="provisional_distance_between_starts_">
11367
+ 7
11198
11368
  </xsl:variable>
11199
- <xsl:choose>
11200
- <xsl:when test="xalan:nodeset($example_body)/*">
11201
- <xsl:copy-of select="$example_body"/>
11202
- </xsl:when>
11203
- <xsl:otherwise><fo:block/><!-- prevent empty block-container --></xsl:otherwise>
11204
- </xsl:choose>
11205
- </fo:block-container>
11206
- </fo:block-container>
11207
- </xsl:when> <!-- end block -->
11369
+ <xsl:variable name="provisional_distance_between_starts" select="normalize-space($provisional_distance_between_starts_)"/>
11370
+ <xsl:variable name="indent_">
11371
+ 0
11372
+ </xsl:variable>
11373
+ <xsl:variable name="indent" select="normalize-space($indent_)"/>
11208
11374
 
11209
- <xsl:when test="contains(normalize-space($fo_element), 'list')">
11375
+ <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
11376
+ <fo:list-item>
11377
+ <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
11378
+ <fo:block>
11379
+ <xsl:apply-templates select="*[local-name()='name']">
11380
+ <xsl:with-param name="fo_element">block</xsl:with-param>
11381
+ </xsl:apply-templates>
11382
+ </fo:block>
11383
+ </fo:list-item-label>
11384
+ <fo:list-item-body start-indent="body-start()">
11385
+ <fo:block>
11386
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11387
+ <xsl:with-param name="fo_element" select="$fo_element"/>
11388
+ </xsl:apply-templates>
11389
+ </fo:block>
11390
+ </fo:list-item-body>
11391
+ </fo:list-item>
11392
+ </fo:list-block>
11393
+ </xsl:when> <!-- end list -->
11210
11394
 
11211
- <xsl:variable name="provisional_distance_between_starts_">
11212
- 7
11213
- </xsl:variable>
11214
- <xsl:variable name="provisional_distance_between_starts" select="normalize-space($provisional_distance_between_starts_)"/>
11215
- <xsl:variable name="indent_">
11216
- 0
11217
- </xsl:variable>
11218
- <xsl:variable name="indent" select="normalize-space($indent_)"/>
11395
+ <xsl:otherwise> <!-- inline -->
11219
11396
 
11220
- <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
11221
- <fo:list-item>
11222
- <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
11223
- <fo:block>
11224
- <xsl:apply-templates select="*[local-name()='name']">
11225
- <xsl:with-param name="fo_element">block</xsl:with-param>
11226
- </xsl:apply-templates>
11227
- </fo:block>
11228
- </fo:list-item-label>
11229
- <fo:list-item-body start-indent="body-start()">
11230
- <fo:block>
11231
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11397
+ <!-- display 'EXAMPLE' and first element in the same line -->
11398
+ <fo:block>
11399
+ <xsl:apply-templates select="*[local-name()='name']">
11400
+ <xsl:with-param name="fo_element" select="$fo_element"/>
11401
+ </xsl:apply-templates>
11402
+ <fo:inline>
11403
+ <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
11232
11404
  <xsl:with-param name="fo_element" select="$fo_element"/>
11233
11405
  </xsl:apply-templates>
11234
- </fo:block>
11235
- </fo:list-item-body>
11236
- </fo:list-item>
11237
- </fo:list-block>
11238
- </xsl:when> <!-- end list -->
11239
-
11240
- <xsl:otherwise> <!-- inline -->
11406
+ </fo:inline>
11407
+ </fo:block>
11241
11408
 
11242
- <!-- display 'EXAMPLE' and first element in the same line -->
11243
- <fo:block>
11244
- <xsl:apply-templates select="*[local-name()='name']">
11245
- <xsl:with-param name="fo_element" select="$fo_element"/>
11246
- </xsl:apply-templates>
11247
- <fo:inline>
11248
- <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
11249
- <xsl:with-param name="fo_element" select="$fo_element"/>
11250
- </xsl:apply-templates>
11251
- </fo:inline>
11252
- </fo:block>
11409
+ <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
11410
+ <!-- display further elements in blocks -->
11411
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11412
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11413
+ <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
11414
+ <xsl:with-param name="fo_element" select="'block'"/>
11415
+ </xsl:apply-templates>
11416
+ </fo:block-container>
11417
+ </fo:block-container>
11418
+ </xsl:if>
11419
+ </xsl:otherwise> <!-- end inline -->
11253
11420
 
11254
- <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
11255
- <!-- display further elements in blocks -->
11256
- <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11257
- <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11258
- <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
11259
- <xsl:with-param name="fo_element" select="'block'"/>
11260
- </xsl:apply-templates>
11261
- </fo:block-container>
11262
- </fo:block-container>
11263
- </xsl:if>
11264
- </xsl:otherwise> <!-- end inline -->
11421
+ </xsl:choose>
11422
+ </fo:block-container>
11423
+ </fo:block-container>
11265
11424
 
11266
- </xsl:choose>
11267
- </fo:block-container>
11268
- </fo:block-container>
11269
11425
  </xsl:template>
11270
11426
 
11271
11427
  <xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
@@ -11647,6 +11803,15 @@
11647
11803
 
11648
11804
  </xsl:template> <!-- tab -->
11649
11805
 
11806
+ <xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']/*[local-name() = 'tab']" priority="2"/>
11807
+ <xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']/*[local-name() = 'tab']" priority="2"/>
11808
+
11809
+ <xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']/*[local-name() = 'tab']" mode="tab">
11810
+
11811
+ <xsl:attribute name="padding-right">6mm</xsl:attribute>
11812
+
11813
+ </xsl:template>
11814
+
11650
11815
  <xsl:template name="insertNonBreakSpaces">
11651
11816
  <xsl:param name="count"/>
11652
11817
  <xsl:if test="$count &gt; 0">
@@ -13193,6 +13358,10 @@
13193
13358
  <!-- - Remove semantic xml part -->
13194
13359
  <!-- - Remove image/emf (EMF vector image for Word) -->
13195
13360
  <!-- - add @id, redundant for table auto-layout algorithm -->
13361
+ <!-- - process 'passthrough' element -->
13362
+ <!-- - split math by element with @linebreak into maths -->
13363
+ <!-- - rename fmt-title to title, fmt-name to name and another changes to convert new presentation XML to -->
13364
+ <!-- - old XML without significant changes in XSLT -->
13196
13365
  <!-- =========================================================================== -->
13197
13366
  <xsl:template match="@*|node()" mode="update_xml_step1">
13198
13367
  <xsl:copy>
@@ -13200,6 +13369,12 @@
13200
13369
  </xsl:copy>
13201
13370
  </xsl:template>
13202
13371
 
13372
+ <xsl:template match="@*|node()" mode="update_xml_pres">
13373
+ <xsl:copy>
13374
+ <xsl:apply-templates select="@*|node()" mode="update_xml_pres"/>
13375
+ </xsl:copy>
13376
+ </xsl:template>
13377
+
13203
13378
  <!-- change section's order based on @displayorder value -->
13204
13379
  <xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
13205
13380
  <xsl:copy>
@@ -13276,7 +13451,7 @@
13276
13451
  </xsl:template>
13277
13452
 
13278
13453
  <!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
13279
- <xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
13454
+ <xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear' or @class = 'horizontal' or @class = 'norotate' or @class = 'halffontsize']" mode="update_xml_step1" priority="2">
13280
13455
  <xsl:copy>
13281
13456
  <xsl:copy-of select="@*"/>
13282
13457
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -13295,14 +13470,17 @@
13295
13470
 
13296
13471
  <!-- remove semantic xml -->
13297
13472
  <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_step1"/>
13473
+ <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_pres"/>
13298
13474
 
13299
13475
  <!-- remove image/emf -->
13300
13476
  <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_step1"/>
13477
+ <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_pres"/>
13301
13478
 
13302
13479
  <!-- remove preprocess-xslt -->
13303
13480
  <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
13481
+ <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_pres"/>
13304
13482
 
13305
- <xsl:template match="*[local-name() = 'stem'][not(.//*[local-name() = 'passthrough']) and not(.//*[@linebreak])] | *[local-name() = 'image'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'sourcecode'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'bibdata'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
13483
+ <xsl:template match="*[local-name() = 'stem'][not(.//*[local-name() = 'passthrough']) and not(.//*[@linebreak])] | *[local-name() = 'image'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'sourcecode'][not(.//*[local-name() = 'passthrough']) and not(.//*[local-name() = 'fmt-name'])] | *[local-name() = 'bibdata'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
13306
13484
  <xsl:copy-of select="."/>
13307
13485
  </xsl:template>
13308
13486
 
@@ -13384,6 +13562,77 @@
13384
13562
  <xsl:copy-of select="$maths"/>
13385
13563
  </xsl:template>
13386
13564
 
13565
+ <!-- update new Presentation XML -->
13566
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="update_xml_step1"/>
13567
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="update_xml_pres"/>
13568
+ <xsl:template match="*[local-name() = 'name'][following-sibling::*[1][local-name() = 'fmt-name']]" mode="update_xml_step1"/>
13569
+ <xsl:template match="*[local-name() = 'name'][following-sibling::*[1][local-name() = 'fmt-name']]" mode="update_xml_pres"/>
13570
+ <xsl:template match="*[local-name() = 'section-title'][following-sibling::*[1][local-name() = 'p'][@type = 'section-title' or @type = 'floating-title']]" mode="update_xml_step1"/>
13571
+ <xsl:template match="*[local-name() = 'section-title'][following-sibling::*[1][local-name() = 'p'][@type = 'section-title' or @type = 'floating-title']]" mode="update_xml_pres"/>
13572
+
13573
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title' or @type = 'floating-title'][preceding-sibling::*[1][local-name() = 'section-title']]" mode="update_xml_step1">
13574
+ <xsl:copy>
13575
+ <xsl:apply-templates select="@*" mode="update_xml_step1"/>
13576
+ <xsl:copy-of select="preceding-sibling::*[1][local-name() = 'section-title']/@depth"/>
13577
+ <xsl:apply-templates select="node()" mode="update_xml_step1"/>
13578
+ </xsl:copy>
13579
+ </xsl:template>
13580
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title' or @type = 'floating-title'][preceding-sibling::*[1][local-name() = 'section-title']]" mode="update_xml_pres">
13581
+ <xsl:copy>
13582
+ <xsl:apply-templates select="@*" mode="update_xml_pres"/>
13583
+ <xsl:copy-of select="preceding-sibling::*[1][local-name() = 'section-title']/@depth"/>
13584
+ <xsl:apply-templates select="node()" mode="update_xml_pres"/>
13585
+ </xsl:copy>
13586
+ </xsl:template>
13587
+
13588
+ <xsl:template match="*[local-name() = 'fmt-title']"/>
13589
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="update_xml_step1">
13590
+ <xsl:element name="title" namespace="{$namespace_full}">
13591
+ <xsl:copy-of select="@*"/>
13592
+ <xsl:apply-templates mode="update_xml_step1"/>
13593
+ </xsl:element>
13594
+ </xsl:template>
13595
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="update_xml_pres">
13596
+ <xsl:element name="title" namespace="{$namespace_full}">
13597
+ <xsl:copy-of select="@*"/>
13598
+ <xsl:apply-templates mode="update_xml_pres"/>
13599
+ </xsl:element>
13600
+ </xsl:template>
13601
+
13602
+ <xsl:template match="*[local-name() = 'fmt-name']"/>
13603
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="update_xml_step1">
13604
+ <xsl:element name="name" namespace="{$namespace_full}">
13605
+ <xsl:copy-of select="@*"/>
13606
+ <xsl:apply-templates mode="update_xml_step1"/>
13607
+ </xsl:element>
13608
+ </xsl:template>
13609
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="update_xml_pres">
13610
+ <xsl:element name="name" namespace="{$namespace_full}">
13611
+ <xsl:copy-of select="@*"/>
13612
+ <xsl:apply-templates mode="update_xml_pres"/>
13613
+ </xsl:element>
13614
+ </xsl:template>
13615
+
13616
+ <xsl:template match="*[local-name() = 'span'][ @class = 'fmt-caption-label' or @class = 'fmt-element-name' or @class = 'fmt-caption-delim' or @class = 'fmt-autonum-delim']" mode="update_xml_step1" priority="3">
13617
+ <xsl:apply-templates mode="update_xml_step1"/>
13618
+ </xsl:template>
13619
+ <xsl:template match="*[local-name() = 'span'][ @class = 'fmt-caption-label' or @class = 'fmt-element-name' or @class = 'fmt-caption-delim' or @class = 'fmt-autonum-delim']" mode="update_xml_pres" priority="3">
13620
+ <xsl:apply-templates mode="update_xml_pres"/>
13621
+ </xsl:template>
13622
+
13623
+ <xsl:template match="*[local-name() = 'semx']" mode="update_xml_step1">
13624
+ <xsl:apply-templates mode="update_xml_step1"/>
13625
+ </xsl:template>
13626
+ <xsl:template match="*[local-name() = 'semx']" mode="update_xml_pres">
13627
+ <xsl:apply-templates mode="update_xml_pres"/>
13628
+ </xsl:template>
13629
+
13630
+ <xsl:template match="*[local-name() = 'fmt-xref-label']"/>
13631
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="update_xml_step1"/>
13632
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="update_xml_pres"/>
13633
+
13634
+ <!-- END: update new Presentation XML -->
13635
+
13387
13636
  <!-- =========================================================================== -->
13388
13637
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
13389
13638
  <!-- =========================================================================== -->
@@ -13576,7 +13825,7 @@
13576
13825
  <xsl:variable name="non_white_space">[^\s\u3000-\u9FFF]</xsl:variable>
13577
13826
  <xsl:variable name="regex_dots_units">((\b((<xsl:value-of select="$non_white_space"/>{1,3}\.<xsl:value-of select="$non_white_space"/>+)|(<xsl:value-of select="$non_white_space"/>+\.<xsl:value-of select="$non_white_space"/>{1,3}))\b)|(\.<xsl:value-of select="$non_white_space"/>{1,3})\b)</xsl:variable>
13578
13827
 
13579
- <xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or ancestor::*[local-name() = 'svg'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') or normalize-space() = '' )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
13828
+ <xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or ancestor::*[local-name() = 'svg'] or ancestor::*[local-name() = 'name'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') or normalize-space() = '' )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
13580
13829
 
13581
13830
  <xsl:variable name="parent" select="local-name(..)"/>
13582
13831
 
@@ -14155,6 +14404,7 @@
14155
14404
  </pdf:catalog>
14156
14405
  <x:xmpmeta xmlns:x="adobe:ns:meta/">
14157
14406
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
14407
+ <!-- Commented after upgrade to Apache FOP 2.10
14158
14408
  <rdf:Description xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/" xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#" xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#" rdf:about="">
14159
14409
  <pdfaExtension:schemas>
14160
14410
  <rdf:Bag>
@@ -14187,7 +14437,7 @@
14187
14437
  </rdf:li>
14188
14438
  </rdf:Bag>
14189
14439
  </pdfaExtension:schemas>
14190
- </rdf:Description>
14440
+ </rdf:Description> -->
14191
14441
  <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
14192
14442
  <!-- Dublin Core properties go here -->
14193
14443
  <dc:title>
@@ -14234,7 +14484,7 @@
14234
14484
  <xsl:variable name="dc_description">
14235
14485
  <xsl:variable name="abstract">
14236
14486
 
14237
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'title'])]"/>
14487
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'fmt-title']) and not(ancestor::*[local-name() = 'title']) and not(ancestor::*[local-name() = 'fmt-xref-label'])]"/>
14238
14488
 
14239
14489
  </xsl:variable>
14240
14490
  <rdf:Alt>
@@ -14779,31 +15029,123 @@
14779
15029
 
14780
15030
  <!-- END: insert cover page image -->
14781
15031
 
14782
- <xsl:variable name="regex_ja_spec">[\uFF08\uFF09]</xsl:variable>
15032
+ <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
15033
+ <xsl:variable name="regex_ja_spec_">[
15034
+ <!-- Rotate 90° clockwise -->
15035
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
15036
+ \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
15037
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
15038
+ \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
15039
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
15040
+ \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
15041
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
15042
+ \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
15043
+ \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
15044
+ \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
15045
+ \u3010 <!-- U+3010 LEFT BLACK LENTICULAR BRACKET (【) -->
15046
+ \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
15047
+ \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
15048
+ \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
15049
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
15050
+ \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
15051
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
15052
+ \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
15053
+ \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
15054
+ \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
15055
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
15056
+ \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
15057
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
15058
+ \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
15059
+ \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
15060
+ \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
15061
+ \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
15062
+ \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
15063
+
15064
+ \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
15065
+ \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
15066
+ \u301C <!-- U+301C WAVE DASH (〜) -->
15067
+ \u3030 <!-- U+3030 WAVY DASH (〰 )-->
15068
+ \u30FC <!-- U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (ー) -->
15069
+ \u2329 <!-- U+2329 LEFT-POINTING ANGLE BRACKET (〈) -->
15070
+ \u232A <!-- U+232A RIGHT-POINTING ANGLE BRACKET (〉) -->
15071
+ \u3018 <!-- U+3018 LEFT WHITE TORTOISE SHELL BRACKET (〘) -->
15072
+ \u3019 <!-- U+3019 RIGHT WHITE TORTOISE SHELL BRACKET (〙) -->
15073
+ \u30A0 <!-- U+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (゠) -->
15074
+ \uFE59 <!-- U+FE59 SMALL LEFT PARENTHESIS (﹙) -->
15075
+ \uFE5A <!-- U+FE5A SMALL RIGHT PARENTHESIS (﹚) -->
15076
+ \uFE5B <!-- U+FE5B SMALL LEFT CURLY BRACKET (﹛) -->
15077
+ \uFE5C <!-- U+FE5C SMALL RIGHT CURLY BRACKET (﹜) -->
15078
+ \uFE5D <!-- U+FE5D SMALL LEFT TORTOISE SHELL BRACKET (﹝) -->
15079
+ \uFE5E <!-- U+FE5E SMALL RIGHT TORTOISE SHELL BRACKET (﹞) -->
15080
+ \uFF5C <!-- U+FF5C FULLWIDTH VERTICAL LINE (|) -->
15081
+ \uFF5F <!-- U+FF5F FULLWIDTH LEFT WHITE PARENTHESIS (⦅) -->
15082
+ \uFF60 <!-- U+FF60 FULLWIDTH RIGHT WHITE PARENTHESIS (⦆) -->
15083
+ \uFFE3 <!-- U+FFE3 FULLWIDTH MACRON ( ̄) -->
15084
+ \uFF3F <!-- U+FF3F FULLWIDTH LOW LINE (_) -->
15085
+ \uFF5E <!-- U+FF5E FULLWIDTH TILDE (~) -->
15086
+ <!-- Rotate 180° -->
15087
+ \u309C <!-- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜) -->
15088
+ \u3002 <!-- U+3002 IDEOGRAPHIC FULL STOP (。) -->
15089
+ \uFE52 <!-- U+FE52 SMALL FULL STOP (﹒) -->
15090
+ \uFF0E <!-- U+FF0E FULLWIDTH FULL STOP (.) -->
15091
+ ]</xsl:variable>
15092
+ <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
14783
15093
  <xsl:template name="insertVerticalChar">
14784
15094
  <xsl:param name="str"/>
14785
15095
  <xsl:param name="writing-mode">lr-tb</xsl:param>
14786
15096
  <xsl:param name="reference-orientation">90</xsl:param>
14787
- <xsl:if test="string-length($str) &gt; 0">
14788
- <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
14789
- <xsl:if test="normalize-space($writing-mode) != ''">
14790
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14791
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
14792
- </xsl:if>
14793
- <xsl:variable name="char" select="substring($str,1,1)"/>
14794
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14795
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
15097
+ <xsl:param name="add_zero_width_space">false</xsl:param>
15098
+ <xsl:choose>
15099
+ <xsl:when test="ancestor::*[local-name() = 'span'][@class = 'norotate']">
15100
+ <xsl:value-of select="$str"/>
15101
+ </xsl:when>
15102
+ <xsl:otherwise>
15103
+ <xsl:if test="string-length($str) &gt; 0">
15104
+ <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
15105
+ <xsl:variable name="char" select="substring($str,1,1)"/>
15106
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
15107
+ <xsl:if test="normalize-space($writing-mode) != ''">
15108
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
15109
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
15110
+ </xsl:if>
15111
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
15112
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
15113
+ </xsl:if>
15114
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
15115
+ <!-- Rotate 180°:
15116
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
15117
+ U+3002 IDEOGRAPHIC FULL STOP (。)
15118
+ U+FE52 SMALL FULL STOP (﹒)
15119
+ U+FF0E FULLWIDTH FULL STOP (.)
15120
+ -->
15121
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
15122
+ </xsl:if>
15123
+ <fo:block-container width="1em">
15124
+ <fo:block line-height="1em">
15125
+ <xsl:choose>
15126
+ <xsl:when test="$horizontal_mode = 'true'">
15127
+ <xsl:value-of select="$str"/>
15128
+ </xsl:when>
15129
+ <xsl:otherwise>
15130
+ <xsl:value-of select="$char"/>
15131
+ </xsl:otherwise>
15132
+ </xsl:choose>
15133
+ </fo:block>
15134
+ </fo:block-container>
15135
+ </fo:inline-container>
15136
+ <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}')"><xsl:value-of select="$zero_width_space"/></xsl:if>
15137
+
15138
+ <xsl:if test="$horizontal_mode = 'false'">
15139
+ <xsl:call-template name="insertVerticalChar">
15140
+ <xsl:with-param name="str" select="substring($str, 2)"/>
15141
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
15142
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
15143
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
15144
+ </xsl:call-template>
15145
+ </xsl:if>
14796
15146
  </xsl:if>
14797
- <fo:block-container width="1em">
14798
- <fo:block line-height="1em"><xsl:value-of select="$char"/></fo:block>
14799
- </fo:block-container>
14800
- </fo:inline-container>
14801
- <xsl:call-template name="insertVerticalChar">
14802
- <xsl:with-param name="str" select="substring($str, 2)"/>
14803
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
14804
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14805
- </xsl:call-template>
14806
- </xsl:if>
15147
+ </xsl:otherwise>
15148
+ </xsl:choose>
14807
15149
  </xsl:template>
14808
15150
 
14809
15151
  <xsl:template name="number-to-words">
@@ -3,9 +3,13 @@ module IsoDoc
3
3
  class PresentationXMLConvert < IsoDoc::Iso::PresentationXMLConvert
4
4
  def termclause1(elem)
5
5
  @is_iev or return clause1(elem)
6
- @suppressheadingnumbers || elem["unnumbered"] and return
7
- lbl = @xrefs.anchor(elem["id"], :label, true) or return
8
- prefix_name(elem, " ", "#{lbl}#{clausedelim}", "title")
6
+ @suppressheadingnumbers || elem["unnumbered"] or
7
+ lbl = @xrefs.anchor(elem["id"], :label, true)
8
+ if lbl
9
+ prefix_name(elem, { caption: " " }, "#{lbl}#{clausedelim}", "title")
10
+ else
11
+ prefix_name(elem, {}, nil, "title")
12
+ end
9
13
  end
10
14
 
11
15
  def concept(docxml)
@@ -15,9 +19,9 @@ module IsoDoc
15
19
 
16
20
  def concept_iev(docxml)
17
21
  labels = @xrefs.get_anchors.each_with_object({}) do |(k, v), m|
18
- m[v[:label]] = k
22
+ v[:label] and m[v[:label].gsub(%r{</?[^>]+>}, "")] = k
19
23
  end
20
- docpart = docxml&.at(ns("//bibdata/ext/structuredidentifier/" \
24
+ docpart = docxml.at(ns("//bibdata/ext/structuredidentifier/" \
21
25
  "project-number/@part"))&.text or return
22
26
  docxml.xpath(ns("//termref[@base = 'IEV']")).each do |t|
23
27
  concept_iev1(t, docpart, labels)
@@ -51,10 +55,12 @@ module IsoDoc
51
55
  docxml.xpath(ns("//term[@language = 'en'][@tag]")).each do |en|
52
56
  fr = docxml.at(ns("//term[@language = 'fr'][@tag = '#{en['tag']}']"))
53
57
  merge_fr_into_en_term1(en, fr) if fr
58
+ en.xpath(ns("./fmt-name | ./fmt-xref-label")).each(&:remove)
59
+ term1(en)
54
60
  end
55
61
  @xrefs.parse_inclusions(clauses: true).parse docxml
56
- docxml.xpath(ns("//term/name")).each(&:remove)
57
- term(docxml)
62
+ #docxml.xpath(ns("//term/fmt-name | //term/fmt-xref")).each(&:remove)
63
+ #term(docxml)
58
64
  end
59
65
 
60
66
  def merge_fr_into_en_term1(en_term, fr_term)
@@ -77,8 +83,7 @@ module IsoDoc
77
83
  .each_with_object([]) do |d, m|
78
84
  lg = d["language"]
79
85
  d.delete("language")
80
- next if lgs.include?(lg)
81
-
86
+ lgs.include?(lg) and next
82
87
  p = d.parent
83
88
  designation_annotate(p, d.at(ns("./name")))
84
89
  m << { lang: lg, script: Metanorma::Utils.default_script(lg),
@@ -174,6 +179,7 @@ module IsoDoc
174
179
 
175
180
  def termexample1(elem)
176
181
  lg = elem&.at("./ancestor::xmlns:term/@language")&.text
182
+ #require "debug"; binding.b
177
183
  @i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
178
184
  example1(elem)
179
185
  @i18n = @i18n_lg["default"]
@@ -185,10 +191,15 @@ module IsoDoc
185
191
 
186
192
  val = @xrefs.anchor(elem["id"], :value) || "???"
187
193
  lbl = @i18n.termnote.gsub("%", val)
188
- ret = @i18n.l10n "#{lbl}#{termnote_delim(elem)}"
194
+ ret = @i18n.l10n lbl
189
195
  @i18n = @i18n_lg["default"]
190
196
  ret
191
197
  end
198
+
199
+ def term1(elem)
200
+ #require 'debug'; binding.b
201
+ super
202
+ end
192
203
  end
193
204
  end
194
205
  end
@@ -15,17 +15,15 @@ module IsoDoc
15
15
  end
16
16
 
17
17
  def clause(docxml)
18
- docxml.xpath(ns("//clause[not(ancestor::annex)] | " \
19
- "//definitions | //references | " \
20
- "//preface/introduction[clause]"))
18
+ docxml.xpath(ns("//clause | //definitions | //references | //appendix | " \
19
+ "//introduction | //foreword | //preface/abstract | " \
20
+ "//acknowledgements | //colophon | //indexsect "))
21
21
  .each do |f|
22
22
  f.parent.name == "annex" &&
23
23
  @xrefs.klass.single_term_clause?(f.parent) and next
24
24
  clause1(f)
25
25
  end
26
- docxml.xpath(ns("//terms")).each do |f|
27
- termclause1(f)
28
- end
26
+ docxml.xpath(ns("//terms")).each { |f| termclause1(f) }
29
27
  end
30
28
 
31
29
  def clause1(elem)
@@ -65,10 +63,15 @@ module IsoDoc
65
63
  <foreword id='_#{UUIDTools::UUID.random_create}'> </foreword>
66
64
  CLAUSE
67
65
  end
68
- f.children.empty? and f.children = " "
69
- ins = f.at(ns("./title")) || f.children.first.before(" ").previous
70
- ins.next =
71
- "<clause type='boilerplate_legal'>#{to_xml(b.children)}</clause>"
66
+ insert_foreword_boilerplate(f, b)
67
+ end
68
+
69
+ def insert_foreword_boilerplate(elem, boilerplate)
70
+ elem.children.empty? and elem.children = " "
71
+ ins = elem.at(ns("./title")) || elem.children.first.before(" ").previous
72
+ ins.next = <<~CLAUSE
73
+ <clause type='boilerplate_legal'>#{to_xml(boilerplate.children)}</clause>
74
+ CLAUSE
72
75
  end
73
76
 
74
77
  def insert_middle_title(docxml)
@@ -203,8 +203,7 @@ module IsoDoc
203
203
  end
204
204
 
205
205
  def annex_name(_annex, name, div)
206
- return if name.nil?
207
-
206
+ name.nil? and return
208
207
  div.h1 class: "Annex" do |t|
209
208
  name.children.each { |c2| parse(c2, t) }
210
209
  clause_parse_subtitle(name, t)
@@ -216,7 +215,7 @@ module IsoDoc
216
215
  div.p **attr_code(class: "formula") do |_p|
217
216
  insert_tab(div, 1)
218
217
  parse(node.at(ns("./stem")), div)
219
- if lbl = node&.at(ns("./name"))&.text
218
+ if lbl = node&.at(ns("./fmt-name"))&.text
220
219
  insert_tab(div, 1)
221
220
  div << lbl
222
221
  end
@@ -18,28 +18,41 @@ module IsoDoc
18
18
  return unless @is_iev
19
19
 
20
20
  if @parse_settings.empty? || @parse_settings[:clauses]
21
+ @terms_iev_names = true
21
22
  terms_iev_names(docxml)
23
+ @terms_iev_names = false
22
24
  end
23
25
  end
24
26
 
25
27
  def terms_iev_names(docxml)
26
28
  docxml.xpath(ns("//sections/clause/terms")).each_with_index do |t, i|
27
- num = "#{@iev_part}-%02d" % [i + 1]
29
+ num = semx(t, "#{@iev_part}-%02d" % [i + 1])
28
30
  @anchors[t["id"]] =
29
- { label: num, xref: l10n("#{@labels['section_iev']} #{num}"),
31
+ { label: num,
32
+ #xref: l10n("#{@labels['section_iev']} #{num}"),
33
+ xref: labelled_autonum(@labels['section_iev'], num),
30
34
  level: 2, type: "clause", elem: @labels["section_iev"] }
31
35
  t.xpath(ns("./term")).each_with_index do |c, j|
32
- num2 = "%02d" % [j + 1]
33
- section_names1(c, "#{num}-#{num2}", 3)
36
+ num2 = semx(c, "%02d" % [j + 1])
37
+ #section_names1(c, "#{num}#{delim_wrap("-")}#{num2}", 3)
38
+ section_names1(c, num, num2, 3)
34
39
  end
35
40
  end
36
41
  end
37
42
 
43
+ def clausesep
44
+ if @terms_iev_names then "-"
45
+ else super
46
+ end
47
+ end
48
+
38
49
  def annex_name_lbl(clause, num)
39
50
  obl = l10n("(#{@labels['inform_annex']})")
40
51
  clause["obligation"] == "normative" and
41
52
  obl = l10n("(#{@labels['norm_annex']})")
42
- l10n("<strong>#{@labels['annex']} #{num}</strong><br/>#{obl}")
53
+ obl = "<span class='fmt-obligation'>#{l10n obl}</fmt>"
54
+ s = labelled_autonum(@labels['annex'], num)
55
+ l10n("<strong><span class='fmt-caption-label'>#{s}</span></strong><br/>#{obl}")
43
56
  end
44
57
  end
45
58
  end
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.4.0 -->
20
+ <!-- VERSION v1.4.1 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module Iec
3
- VERSION = "2.5.7".freeze
3
+ VERSION = "2.5.8".freeze
4
4
  end
5
5
  end
6
6
 
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
31
31
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
32
32
 
33
- spec.add_dependency "metanorma-iso", "~> 2.9.0"
33
+ spec.add_dependency "metanorma-iso", "~> 2.9.1"
34
34
  spec.add_dependency "pubid"
35
35
 
36
36
  spec.add_development_dependency "debug"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.7
4
+ version: 2.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-11 00:00:00.000000000 Z
11
+ date: 2024-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-iso
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.9.0
19
+ version: 2.9.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.9.0
26
+ version: 2.9.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pubid
29
29
  requirement: !ruby/object:Gem::Requirement