metanorma-iec 2.1.12 → 2.1.13

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: bfa8c3f25aec456954c3d70a6c1b35c887e60e99383c7f119f3ecfb1c5d6c545
4
- data.tar.gz: 787ad1b610bec9f60e5559f3cd721a3eadde25d327b5d2848d0905caaf5e0e7e
3
+ metadata.gz: 103451df9208dd5c73f9405284df2fd6f2d92a32904b167840e0458b4766f401
4
+ data.tar.gz: e2ee999fd2718b01d4362ac00ad1f3428287de9ea28ad320bd67a7f3e6938bb3
5
5
  SHA512:
6
- metadata.gz: a4b3de46192f7fea611f9a091fdf9d40e6075270ba1422938e3ce60038f33a0828693ae95f98c0eb30b50142c5ed2baad982e5347c41f5722e10b155057fe75e
7
- data.tar.gz: 9308306c16d237d36d56ded5719f880df58564f74230e0f57c77d4a49acb8edf349bea24ca7303972a394f7c05e8a75d82ba368d266e8f8e346a6bde0b960e84
6
+ metadata.gz: 7bd2c177ac2a318a847b8ed88703fc9d20d70a597e47d82db7d3fc8c8eb56ef7e3d11b60fc8602af07bdc301990fc20c93fc60d83037806d34a7e1b9493f18e9
7
+ data.tar.gz: 6578b3a9bd37d56fdb81ff2e59467fc0ffe451e134366927e3e95f81c3bf043837cce1cfee8e5cd4594bcb3dffd31a5ca46d633c8d6566f97c304ebcd0ba7106
@@ -446,6 +446,12 @@ p.TermNum {
446
446
  padding-left: 30px; }
447
447
  #toc .h3, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) .h3 {
448
448
  padding-left: 50px; }
449
+ #toc .h4, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) .h4 {
450
+ padding-left: 70px; }
451
+ #toc .h5, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) .h5 {
452
+ padding-left: 90px; }
453
+ #toc .h6, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) .h6 {
454
+ padding-left: 110px; }
449
455
  #toc .toc-active, #toc li:hover, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) .toc-active, #toc > ul :is(.h1, .h2, .h3, .h4, .h5, .h6) li:hover {
450
456
  background: black;
451
457
  box-shadow: inset -5px 0px 10px -5px black !important; }
@@ -1972,6 +1972,8 @@
1972
1972
  </xsl:copy>
1973
1973
  </xsl:template> -->
1974
1974
 
1975
+ <xsl:strip-space elements="iec:xref"/>
1976
+
1975
1977
  <!-- external parameters -->
1976
1978
 
1977
1979
  <xsl:param name="svg_images"/> <!-- svg images array -->
@@ -3406,17 +3408,22 @@
3406
3408
  </xsl:for-each>
3407
3409
  </xsl:template>
3408
3410
 
3411
+ <xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
3409
3412
  <xsl:variable name="tag_fo_inline_keep-together_within-line_open">###fo:inline keep-together_within-line###</xsl:variable>
3410
3413
  <xsl:variable name="tag_fo_inline_keep-together_within-line_close">###/fo:inline keep-together_within-line###</xsl:variable>
3411
3414
  <xsl:template match="text()" name="text">
3412
3415
 
3413
- <xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
3414
- <xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_fo_inline_keep-together_within-line_open,'$1',$tag_fo_inline_keep-together_within-line_close))"/>
3415
- <xsl:call-template name="replace_fo_inline_tags">
3416
- <xsl:with-param name="tag_open" select="$tag_fo_inline_keep-together_within-line_open"/>
3417
- <xsl:with-param name="tag_close" select="$tag_fo_inline_keep-together_within-line_close"/>
3418
- <xsl:with-param name="text" select="$text"/>
3419
- </xsl:call-template>
3416
+ <xsl:choose>
3417
+ <xsl:when test="ancestor::*[local-name() = 'table']"><xsl:value-of select="."/></xsl:when>
3418
+ <xsl:otherwise>
3419
+ <xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_fo_inline_keep-together_within-line_open,'$1',$tag_fo_inline_keep-together_within-line_close))"/>
3420
+ <xsl:call-template name="replace_fo_inline_tags">
3421
+ <xsl:with-param name="tag_open" select="$tag_fo_inline_keep-together_within-line_open"/>
3422
+ <xsl:with-param name="tag_close" select="$tag_fo_inline_keep-together_within-line_close"/>
3423
+ <xsl:with-param name="text" select="$text"/>
3424
+ </xsl:call-template>
3425
+ </xsl:otherwise>
3426
+ </xsl:choose>
3420
3427
 
3421
3428
  </xsl:template>
3422
3429
 
@@ -3796,7 +3803,7 @@
3796
3803
 
3797
3804
  <!-- centered table when table name is centered (see table-name-style) -->
3798
3805
 
3799
- <fo:table table-layout="fixed" width="100%">
3806
+ <fo:table table-layout="fixed" width="100%" xsl:use-attribute-sets="table-container-style">
3800
3807
  <fo:table-column column-width="proportional-column-width(1)"/>
3801
3808
  <fo:table-column column-width="{@width}"/>
3802
3809
  <fo:table-column column-width="proportional-column-width(1)"/>
@@ -4459,7 +4466,7 @@
4459
4466
  <xsl:template match="*[local-name()='tr']">
4460
4467
  <fo:table-row xsl:use-attribute-sets="table-body-row-style">
4461
4468
 
4462
- <xsl:if test="*[local-name() = 'th']">
4469
+ <xsl:if test="count(*) = count(*[local-name() = 'th'])"> <!-- row contains 'th' only -->
4463
4470
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
4464
4471
  </xsl:if>
4465
4472
 
@@ -5447,7 +5454,8 @@
5447
5454
  <xsl:copy-of select="node()"/>
5448
5455
  </td>
5449
5456
  <td>
5450
- <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
5457
+ <!-- <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/> -->
5458
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]" mode="dl_if"/>
5451
5459
  <!-- get paragraphs from nested 'dl' -->
5452
5460
  <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
5453
5461
  </td>
@@ -5455,6 +5463,53 @@
5455
5463
  </xsl:template>
5456
5464
  <xsl:template match="*[local-name()='dd']" mode="dl_if"/>
5457
5465
 
5466
+ <xsl:template match="*" mode="dl_if">
5467
+ <xsl:copy-of select="."/>
5468
+ </xsl:template>
5469
+
5470
+ <xsl:template match="*[local-name() = 'p']" mode="dl_if">
5471
+ <xsl:param name="indent"/>
5472
+ <p>
5473
+ <xsl:copy-of select="@*"/>
5474
+ <xsl:value-of select="$indent"/>
5475
+ <xsl:copy-of select="node()"/>
5476
+ </p>
5477
+
5478
+ </xsl:template>
5479
+
5480
+ <xsl:template match="*[local-name() = 'ul' or local-name() = 'ol']" mode="dl_if">
5481
+ <xsl:variable name="list_rendered_">
5482
+ <xsl:apply-templates select="."/>
5483
+ </xsl:variable>
5484
+ <xsl:variable name="list_rendered" select="xalan:nodeset($list_rendered_)"/>
5485
+
5486
+ <xsl:variable name="indent">
5487
+ <xsl:for-each select="($list_rendered//fo:block[not(.//fo:block)])[1]">
5488
+ <xsl:apply-templates select="ancestor::*[@provisional-distance-between-starts]/@provisional-distance-between-starts" mode="dl_if"/>
5489
+ </xsl:for-each>
5490
+ </xsl:variable>
5491
+
5492
+ <xsl:apply-templates mode="dl_if">
5493
+ <xsl:with-param name="indent" select="$indent"/>
5494
+ </xsl:apply-templates>
5495
+ </xsl:template>
5496
+
5497
+ <xsl:template match="*[local-name() = 'li']" mode="dl_if">
5498
+ <xsl:param name="indent"/>
5499
+ <xsl:apply-templates mode="dl_if">
5500
+ <xsl:with-param name="indent" select="$indent"/>
5501
+ </xsl:apply-templates>
5502
+ </xsl:template>
5503
+
5504
+ <xsl:template match="@provisional-distance-between-starts" mode="dl_if">
5505
+ <xsl:variable name="value" select="round(substring-before(.,'mm'))"/>
5506
+ <!-- emulate left indent for list item -->
5507
+ <xsl:call-template name="repeat">
5508
+ <xsl:with-param name="char" select="'x'"/>
5509
+ <xsl:with-param name="count" select="$value"/>
5510
+ </xsl:call-template>
5511
+ </xsl:template>
5512
+
5458
5513
  <xsl:template match="*[local-name()='dl']" mode="dl_if_nested">
5459
5514
  <xsl:for-each select="*[local-name() = 'dt']">
5460
5515
  <p>
@@ -5850,6 +5905,7 @@
5850
5905
  </word>
5851
5906
  <xsl:call-template name="tokenize_with_tags">
5852
5907
  <xsl:with-param name="text" select="substring-after($text, $separator)"/>
5908
+ <xsl:with-param name="tags" select="$tags"/>
5853
5909
  </xsl:call-template>
5854
5910
  </xsl:otherwise>
5855
5911
  </xsl:choose>
@@ -5889,8 +5945,18 @@
5889
5945
 
5890
5946
  <xsl:template name="add-zero-spaces-java">
5891
5947
  <xsl:param name="text" select="."/>
5892
- <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
5893
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
5948
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, arrow right -->
5949
+ <xsl:variable name="text1" select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |→)','$1​')"/>
5950
+ <!-- add zero-width space (#x200B) after characters: 'great than' -->
5951
+ <xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1), '(\u003e)(?!\u003e)', '$1​')"/><!-- negative lookahead: 'great than' not followed by 'great than' -->
5952
+ <!-- add zero-width space (#x200B) before characters: 'less than' -->
5953
+ <xsl:variable name="text3" select="java:replaceAll(java:java.lang.String.new($text2), '(?&lt;!\u003c)(\u003c)', '​$1')"/> <!-- (?<!\u003c)(\u003c) --> <!-- negative lookbehind: 'less than' not preceeded by 'less than' -->
5954
+ <!-- add zero-width space (#x200B) before character: { -->
5955
+ <xsl:variable name="text4" select="java:replaceAll(java:java.lang.String.new($text3), '(?&lt;!\W)(\{)', '​$1')"/> <!-- negative lookbehind: '{' not preceeded by 'punctuation char' -->
5956
+ <!-- add zero-width space (#x200B) after character: , -->
5957
+ <xsl:variable name="text5" select="java:replaceAll(java:java.lang.String.new($text4), '(\,)(?!\d)', '$1​')"/> <!-- negative lookahead: ',' not followed by digit -->
5958
+
5959
+ <xsl:value-of select="$text5"/>
5894
5960
  </xsl:template>
5895
5961
 
5896
5962
  <xsl:template name="add-zero-spaces-link-java">
@@ -6036,7 +6102,7 @@
6036
6102
  </xsl:copy>
6037
6103
  </xsl:template>
6038
6104
 
6039
- <xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p'])]" mode="table-without-br">
6105
+ <xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p']) and not(*[local-name()='sourcecode'])]" mode="table-without-br">
6040
6106
  <xsl:copy>
6041
6107
  <xsl:copy-of select="@*"/>
6042
6108
  <p>
@@ -6084,6 +6150,28 @@
6084
6150
  </xsl:for-each>
6085
6151
  </xsl:template>
6086
6152
 
6153
+ <xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'sourcecode']" mode="table-without-br">
6154
+ <xsl:apply-templates mode="table-without-br"/>
6155
+ </xsl:template>
6156
+
6157
+ <xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'sourcecode']/text()[contains(., '&#13;') or contains(., '&#10;')]" mode="table-without-br">
6158
+
6159
+ <xsl:variable name="sep">###SOURCECODE_NEWLINE###</xsl:variable>
6160
+ <xsl:variable name="sourcecode_text" select="java:replaceAll(java:java.lang.String.new(.),'(&#13;&#10;|&#13;|&#10;)', $sep)"/>
6161
+ <xsl:variable name="items">
6162
+ <xsl:call-template name="split">
6163
+ <xsl:with-param name="pText" select="$sourcecode_text"/>
6164
+ <xsl:with-param name="sep" select="$sep"/>
6165
+ <xsl:with-param name="normalize-space">false</xsl:with-param>
6166
+ </xsl:call-template>
6167
+ </xsl:variable>
6168
+ <xsl:for-each select="xalan:nodeset($items)/*">
6169
+ <p>
6170
+ <sourcecode><xsl:copy-of select="node()"/></sourcecode>
6171
+ </p>
6172
+ </xsl:for-each>
6173
+ </xsl:template>
6174
+
6087
6175
  <!-- remove redundant white spaces -->
6088
6176
  <xsl:template match="text()[not(ancestor::*[local-name() = 'sourcecode'])]" mode="table-without-br">
6089
6177
  <xsl:variable name="text" select="translate(.,'&#9;&#10;&#13;','')"/>
@@ -6394,6 +6482,7 @@
6394
6482
  <xsl:if test="ancestor::*[local-name() = 'sub']"><tag>sub</tag></xsl:if>
6395
6483
  <xsl:if test="ancestor::*[local-name() = 'sup']"><tag>sup</tag></xsl:if>
6396
6484
  <xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
6485
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode']"><tag>sourcecode</tag></xsl:if>
6397
6486
  <xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
6398
6487
  </tags>
6399
6488
  </xsl:template>
@@ -6881,6 +6970,12 @@
6881
6970
 
6882
6971
  <fo:block-container margin-left="0mm">
6883
6972
 
6973
+ <!-- <xsl:if test="$namespace = 'iho'">
6974
+ <xsl:if test="ancestor::iho:td">
6975
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
6976
+ </xsl:if>
6977
+ </xsl:if> -->
6978
+
6884
6979
  <fo:block>
6885
6980
 
6886
6981
  <fo:inline xsl:use-attribute-sets="note-name-style">
@@ -8033,39 +8128,17 @@
8033
8128
  <!-- =============== -->
8034
8129
  <xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
8035
8130
 
8036
- <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
8037
-
8038
- <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
8039
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
8040
- </xsl:if>
8041
-
8042
- <xsl:if test="ancestor::*[local-name() = 'example']">
8043
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
8044
- </xsl:if>
8045
-
8046
- <xsl:copy-of select="@id"/>
8047
-
8048
- <xsl:if test="parent::*[local-name() = 'note']">
8049
- <xsl:attribute name="margin-left">
8050
- <xsl:choose>
8051
- <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
8052
- <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
8053
- </xsl:choose>
8054
- </xsl:attribute>
8055
-
8056
- </xsl:if>
8057
- <fo:block-container margin-left="0mm">
8131
+ <xsl:variable name="sourcecode_attributes">
8132
+ <xsl:element name="sourcecode_attributes" use-attribute-sets="sourcecode-style">
8133
+ <xsl:variable name="_font-size">
8058
8134
 
8059
- <fo:block xsl:use-attribute-sets="sourcecode-style">
8060
- <xsl:variable name="_font-size">
8135
+ 9
8061
8136
 
8062
- 9
8137
+ <!-- 9 -->
8063
8138
 
8064
- <!-- 9 -->
8065
-
8066
- <!-- <xsl:if test="$namespace = 'ieee'">
8067
- <xsl:if test="$current_template = 'standard'">8</xsl:if>
8068
- </xsl:if> -->
8139
+ <!-- <xsl:if test="$namespace = 'ieee'">
8140
+ <xsl:if test="$current_template = 'standard'">8</xsl:if>
8141
+ </xsl:if> -->
8069
8142
 
8070
8143
  </xsl:variable>
8071
8144
 
@@ -8080,14 +8153,60 @@
8080
8153
  </xsl:choose>
8081
8154
  </xsl:attribute>
8082
8155
  </xsl:if>
8156
+ </xsl:element>
8157
+ </xsl:variable>
8083
8158
 
8159
+ <xsl:choose>
8160
+ <xsl:when test="$isGenerateTableIF = 'true' and (ancestor::*[local-name() = 'td'] or ancestor::*[local-name() = 'th'])">
8161
+ <xsl:for-each select="xalan:nodeset($sourcecode_attributes)/sourcecode_attributes/@*">
8162
+ <xsl:attribute name="{local-name()}">
8163
+ <xsl:value-of select="."/>
8164
+ </xsl:attribute>
8165
+ </xsl:for-each>
8084
8166
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
8085
- </fo:block>
8167
+ </xsl:when>
8086
8168
 
8087
- <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
8169
+ <xsl:otherwise>
8170
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
8088
8171
 
8089
- </fo:block-container>
8090
- </fo:block-container>
8172
+ <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
8173
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
8174
+ </xsl:if>
8175
+
8176
+ <xsl:if test="ancestor::*[local-name() = 'example']">
8177
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
8178
+ </xsl:if>
8179
+
8180
+ <xsl:copy-of select="@id"/>
8181
+
8182
+ <xsl:if test="parent::*[local-name() = 'note']">
8183
+ <xsl:attribute name="margin-left">
8184
+ <xsl:choose>
8185
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
8186
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
8187
+ </xsl:choose>
8188
+ </xsl:attribute>
8189
+
8190
+ </xsl:if>
8191
+ <fo:block-container margin-left="0mm">
8192
+
8193
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
8194
+
8195
+ <xsl:for-each select="xalan:nodeset($sourcecode_attributes)/sourcecode_attributes/@*">
8196
+ <xsl:attribute name="{local-name()}">
8197
+ <xsl:value-of select="."/>
8198
+ </xsl:attribute>
8199
+ </xsl:for-each>
8200
+
8201
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
8202
+ </fo:block>
8203
+
8204
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
8205
+
8206
+ </fo:block-container>
8207
+ </fo:block-container>
8208
+ </xsl:otherwise>
8209
+ </xsl:choose>
8091
8210
  </xsl:template>
8092
8211
 
8093
8212
  <xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
@@ -10320,7 +10439,9 @@
10320
10439
  <!-- ===================================== -->
10321
10440
  <!-- Update xml -->
10322
10441
  <!-- ===================================== -->
10442
+ <!-- =========================================================================== -->
10323
10443
  <!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
10444
+ <!-- =========================================================================== -->
10324
10445
  <xsl:template match="@*|node()" mode="update_xml_step1">
10325
10446
  <xsl:copy>
10326
10447
  <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
@@ -10412,10 +10533,15 @@
10412
10533
  <xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
10413
10534
  <xsl:apply-templates mode="update_xml_step1"/>
10414
10535
  </xsl:template>
10415
-
10536
+ <!-- =========================================================================== -->
10416
10537
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
10538
+ <!-- =========================================================================== -->
10417
10539
 
10540
+ <!-- =========================================================================== -->
10418
10541
  <!-- XML UPDATE STEP: enclose standard's name into tag 'keep-together_within-line' -->
10542
+ <!-- keep-together_within-line for: a/b, aaa/b, a/bbb, /b -->
10543
+ <!-- keep-together_within-line for: a.b, aaa.b, a.bbb, .b in table's cell ONLY -->
10544
+ <!-- =========================================================================== -->
10419
10545
  <!-- Example: <keep-together_within-line>ISO 10303-51</keep-together_within-line> -->
10420
10546
  <xsl:template match="@*|node()" mode="update_xml_enclose_keep-together_within-line">
10421
10547
  <xsl:copy>
@@ -10431,10 +10557,15 @@
10431
10557
  <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 starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
10432
10558
 
10433
10559
  <!-- enclose standard's number into tag 'keep-together_within-line' -->
10434
- <xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
10435
10560
  <xsl:variable name="tag_keep-together_within-line_open">###<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
10436
10561
  <xsl:variable name="tag_keep-together_within-line_close">###/<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
10437
- <xsl:variable name="text_" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_keep-together_within-line_open,'$1',$tag_keep-together_within-line_close))"/>
10562
+ <xsl:variable name="text__" select="java:replaceAll(java:java.lang.String.new(.), $regex_standard_reference, concat($tag_keep-together_within-line_open,'$1',$tag_keep-together_within-line_close))"/>
10563
+ <xsl:variable name="text_">
10564
+ <xsl:choose>
10565
+ <xsl:when test="ancestor::*[local-name() = 'table']"><xsl:value-of select="."/></xsl:when> <!-- no need enclose standard's number into tag 'keep-together_within-line' in table cells -->
10566
+ <xsl:otherwise><xsl:value-of select="$text__"/></xsl:otherwise>
10567
+ </xsl:choose>
10568
+ </xsl:variable>
10438
10569
  <xsl:variable name="text"><text><xsl:call-template name="replace_text_tags">
10439
10570
  <xsl:with-param name="tag_open" select="$tag_keep-together_within-line_open"/>
10440
10571
  <xsl:with-param name="tag_close" select="$tag_keep-together_within-line_close"/>
@@ -10450,7 +10581,11 @@
10450
10581
  </xsl:variable>
10451
10582
 
10452
10583
  <!-- keep-together_within-line for: a/b, aaa/b, a/bbb, /b -->
10453
- <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable>
10584
+ <!-- \S matches any non-whitespace character (equivalent to [^\r\n\t\f\v ]) -->
10585
+ <!-- <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable> -->
10586
+ <!-- add &lt; and &gt; to \S -->
10587
+ <xsl:variable name="regex_S">[^\r\n\t\f\v \&lt;&gt;]</xsl:variable>
10588
+ <xsl:variable name="regex_solidus_units">((\b((<xsl:value-of select="$regex_S"/>{1,3}\/<xsl:value-of select="$regex_S"/>+)|(<xsl:value-of select="$regex_S"/>+\/<xsl:value-of select="$regex_S"/>{1,3}))\b)|(\/<xsl:value-of select="$regex_S"/>{1,3})\b)</xsl:variable>
10454
10589
  <xsl:variable name="text3">
10455
10590
  <text><xsl:for-each select="xalan:nodeset($text2)/text/node()">
10456
10591
  <xsl:choose>
@@ -10514,9 +10649,8 @@
10514
10649
  <xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
10515
10650
  </xsl:choose>
10516
10651
  </xsl:template>
10517
-
10518
10652
  <!-- ===================================== -->
10519
- <!-- End Update xml -->
10653
+ <!-- END XML UPDATE STEP: enclose standard's name into tag 'keep-together_within-line' -->
10520
10654
  <!-- ===================================== -->
10521
10655
 
10522
10656
  <!-- for correct rendering combining chars -->
@@ -42,50 +42,24 @@ module IsoDoc
42
42
  }
43
43
  end
44
44
 
45
- def insert_toc(intro, docxml, level)
45
+ def make_table_word_toc(docxml)
46
+ docxml.at(table_toc_xpath) or return ""
46
47
  toc = ""
47
- toc += make_WordToC(docxml, level)
48
- if docxml.at("//p[@class = 'TableTitle']")
49
- toc += make_TableWordToC(docxml)
50
- end
51
- if docxml.at("//p[@class = 'FigureTitle']")
52
- toc += make_FigureWordToC(docxml)
53
- end
54
- intro.sub(/WORDTOC/, toc)
55
- end
56
-
57
- WORD_TOC_TABLE_PREFACE1 = <<~TOC.freeze
58
- <span lang="EN-GB"><span
59
- style='mso-element:field-begin'></span><span
60
- style='mso-spacerun:yes'>&#xA0;</span>TOC
61
- \\h \\z \\t "TableTitle,tabletitle" <span
62
- style='mso-element:field-separator'></span></span>
63
- TOC
64
-
65
- WORD_TOC_FIGURE_PREFACE1 = <<~TOC.freeze
66
- <span lang="EN-GB"><span
67
- style='mso-element:field-begin'></span><span
68
- style='mso-spacerun:yes'>&#xA0;</span>TOC
69
- \\h \\z \\t "FigureTitle,figuretitle" <span
70
- style='mso-element:field-separator'></span></span>
71
- TOC
72
-
73
- def make_TableWordToC(docxml)
74
- toc = ""
75
- docxml.xpath("//p[@class = 'TableTitle']").each do |h|
48
+ docxml.xpath(table_toc_xpath).each do |h|
76
49
  toc += word_toc_entry(1, header_strip(h))
77
50
  end
78
51
  toc.sub(/(<p class="MsoToc1">)/,
79
- %{\\1#{WORD_TOC_TABLE_PREFACE1}}) + WORD_TOC_SUFFIX1
52
+ %{\\1#{word_toc_table_preface1}}) + WORD_TOC_SUFFIX1
80
53
  end
81
54
 
82
- def make_FigureWordToC(docxml)
55
+ def make_figure_word_toc(docxml)
56
+ docxml.at(figure_toc_xpath) or return ""
83
57
  toc = ""
84
- docxml.xpath("//p[@class = 'FigureTitle']").each do |h|
58
+ docxml.xpath(figure_toc_xpath).each do |h|
85
59
  toc += word_toc_entry(1, header_strip(h))
86
60
  end
87
61
  toc.sub(/(<p class="MsoToc1">)/,
88
- %{\\1#{WORD_TOC_FIGURE_PREFACE1}}) + WORD_TOC_SUFFIX1
62
+ %{\\1#{word_toc_figure_preface1}}) + WORD_TOC_SUFFIX1
89
63
  end
90
64
 
91
65
  def word_toc_preface(level)
@@ -185,7 +159,7 @@ module IsoDoc
185
159
  end
186
160
 
187
161
  def authority_cleanup(docxml)
188
- auth = docxml.at("//div[@id = 'boilerplate-feedback' or "\
162
+ auth = docxml.at("//div[@id = 'boilerplate-feedback' or " \
189
163
  "@class = 'boilerplate-feedback']")
190
164
  auth&.remove
191
165
  super
@@ -1152,7 +1152,7 @@
1152
1152
  <data type="boolean"/>
1153
1153
  </attribute>
1154
1154
  </optional>
1155
- <ref name="BibliographicItem"/>
1155
+ <ref name="ReducedBibliographicItem"/>
1156
1156
  </element>
1157
1157
  </define>
1158
1158
  <define name="image" combine="choice">
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module Iec
3
- VERSION = "2.1.12".freeze
3
+ VERSION = "2.1.13".freeze
4
4
  end
5
5
  end
6
6
 
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.1.12
4
+ version: 2.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-07 00:00:00.000000000 Z
11
+ date: 2022-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-iso