metanorma-ieee 1.0.13 → 1.0.14

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: e79924d76aed9a7f73f786e0899bf5504adfa4858d6e030c9ee3528ebdd9e177
4
- data.tar.gz: ddffe3220294b9dddc37e3b0922c0b80067daef37d9c5c8458b975d9ba6ce6ca
3
+ metadata.gz: 746d0f927345a26e2365d376be854e2e2d9da190b03665657f23dc45a23839c5
4
+ data.tar.gz: caae55bb21da36f23b4ee79966897715d0aaa50128d2afc1568305f978c55ace
5
5
  SHA512:
6
- metadata.gz: 7f4b88114b9e51f2fb1aeba481c4e39f0dbf939563aca95f6839d151650ab061a5272c6837776c809370d5584b5d43a1abb9dd83d6a62eed05d496e751749252
7
- data.tar.gz: '08c8924380977b24e81d5ab27dc7b973a9123910ca924747c6811ec1f5141352d7fa3c324c7fa498b3182b65b007b70f15171c063fc336abc65c6bafc112556d'
6
+ metadata.gz: 80f4821205124ac497dee7de5d8390929437853bfdc586e1054469786c72e528ce884e2d5bd2d2c56a7ddce6cce3fdc507f12aba4c04aa557f0bd3ad99f10b90
7
+ data.tar.gz: 5e37ef9a74fed2e23bc31a4460a4ce40aa588e7f6fa4cfc2fe8333026e9b64d2df493f6b7213cdbc6e240f720d4a9e81380f9ecfdfdb2fb6b7b66b9d68c7e515
@@ -4748,6 +4748,7 @@
4748
4748
  </xsl:attribute-set>
4749
4749
 
4750
4750
  <xsl:attribute-set name="figure-block-style">
4751
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4751
4752
 
4752
4753
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4753
4754
 
@@ -4758,6 +4759,7 @@
4758
4759
  </xsl:attribute-set>
4759
4760
 
4760
4761
  <xsl:attribute-set name="figure-name-style">
4762
+ <xsl:attribute name="role">Caption</xsl:attribute>
4761
4763
 
4762
4764
  <xsl:attribute name="font-family">Arial</xsl:attribute>
4763
4765
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4811,6 +4813,7 @@
4811
4813
  </xsl:template>
4812
4814
 
4813
4815
  <xsl:attribute-set name="image-style">
4816
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4814
4817
  <xsl:attribute name="text-align">center</xsl:attribute>
4815
4818
 
4816
4819
  </xsl:attribute-set>
@@ -5088,6 +5091,13 @@
5088
5091
 
5089
5092
  </xsl:attribute-set> <!-- bibitem-non-normative-list-style -->
5090
5093
 
5094
+ <xsl:attribute-set name="bibitem-non-normative-list-item-style">
5095
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
5096
+
5097
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
5098
+
5099
+ </xsl:attribute-set>
5100
+
5091
5101
  <!-- bibitem in bibliography section (references/@normative="false"), list body -->
5092
5102
  <xsl:attribute-set name="bibitem-normative-list-body-style">
5093
5103
 
@@ -5487,14 +5497,14 @@
5487
5497
  <xsl:value-of select="$sep"/><xsl:value-of select="$zero_width_space"/>
5488
5498
  </xsl:when>
5489
5499
  <xsl:otherwise>
5490
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
5500
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
5491
5501
  </xsl:otherwise>
5492
5502
  </xsl:choose>
5493
5503
  </xsl:for-each>
5494
5504
  </xsl:when>
5495
5505
 
5496
5506
  <xsl:otherwise>
5497
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
5507
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
5498
5508
  </xsl:otherwise>
5499
5509
 
5500
5510
  </xsl:choose>
@@ -5504,7 +5514,7 @@
5504
5514
  <!-- Preface boilerplate sections processing -->
5505
5515
  <!-- ================================= -->
5506
5516
  <xsl:template match="*[local-name()='copyright-statement']">
5507
- <fo:block xsl:use-attribute-sets="copyright-statement-style">
5517
+ <fo:block xsl:use-attribute-sets="copyright-statement-style" role="SKIP">
5508
5518
  <xsl:apply-templates/>
5509
5519
  </fo:block>
5510
5520
  </xsl:template> <!-- copyright-statement -->
@@ -5672,7 +5682,7 @@
5672
5682
  </xsl:choose>
5673
5683
  </xsl:variable>
5674
5684
 
5675
- <fo:block-container xsl:use-attribute-sets="table-container-style">
5685
+ <fo:block-container xsl:use-attribute-sets="table-container-style" role="SKIP">
5676
5686
 
5677
5687
  <xsl:call-template name="refine_table-container-style">
5678
5688
  <xsl:with-param name="margin-side" select="$margin-side"/>
@@ -6738,7 +6748,7 @@
6738
6748
  </xsl:choose>
6739
6749
  </xsl:variable>
6740
6750
  <xsl:variable name="footnote_inline">
6741
- <fo:inline>
6751
+ <fo:inline role="Reference">
6742
6752
 
6743
6753
  <xsl:variable name="fn_styles">
6744
6754
  <xsl:choose>
@@ -6761,7 +6771,7 @@
6761
6771
 
6762
6772
  <xsl:call-template name="insert_basic_link">
6763
6773
  <xsl:with-param name="element">
6764
- <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
6774
+ <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}" role="Lbl">
6765
6775
  <xsl:copy-of select="$current_fn_number_text"/>
6766
6776
  </fo:basic-link>
6767
6777
  </xsl:with-param>
@@ -6774,17 +6784,17 @@
6774
6784
  <xsl:copy-of select="$footnote_inline"/>
6775
6785
  </xsl:when>
6776
6786
  <xsl:when test="$p_fn//fn[@gen_id = $gen_id] or normalize-space(@skip_footnote_body) = 'false'">
6777
- <fo:footnote xsl:use-attribute-sets="fn-style">
6787
+ <fo:footnote xsl:use-attribute-sets="fn-style" role="SKIP">
6778
6788
  <xsl:copy-of select="$footnote_inline"/>
6779
- <fo:footnote-body>
6789
+ <fo:footnote-body role="Note">
6780
6790
 
6781
- <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
6791
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style" role="SKIP">
6782
6792
 
6783
- <fo:block xsl:use-attribute-sets="fn-body-style">
6793
+ <fo:block xsl:use-attribute-sets="fn-body-style" role="SKIP">
6784
6794
 
6785
6795
  <xsl:call-template name="refine_fn-body-style"/>
6786
6796
 
6787
- <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
6797
+ <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style" role="Lbl">
6788
6798
 
6789
6799
  <xsl:call-template name="refine_fn-body-num-style"/>
6790
6800
 
@@ -7046,11 +7056,11 @@
7046
7056
  </xsl:template>
7047
7057
 
7048
7058
  <xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
7049
- <fo:inline><xsl:value-of select="."/></fo:inline>
7059
+ <fo:inline role="SKIP"><xsl:value-of select="."/></fo:inline>
7050
7060
  </xsl:template>
7051
7061
 
7052
7062
  <xsl:template match="*[local-name()='fn']//*[local-name()='p']">
7053
- <fo:inline>
7063
+ <fo:inline role="P">
7054
7064
  <xsl:apply-templates/>
7055
7065
  </fo:inline>
7056
7066
  </xsl:template>
@@ -7065,7 +7075,7 @@
7065
7075
  <xsl:variable name="isAdded" select="@added"/>
7066
7076
  <xsl:variable name="isDeleted" select="@deleted"/>
7067
7077
  <!-- <dl><xsl:copy-of select="."/></dl> -->
7068
- <fo:block-container xsl:use-attribute-sets="dl-block-style">
7078
+ <fo:block-container xsl:use-attribute-sets="dl-block-style" role="SKIP">
7069
7079
 
7070
7080
  <xsl:call-template name="setBlockSpanAll"/>
7071
7081
 
@@ -7100,7 +7110,7 @@
7100
7110
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
7101
7111
  </xsl:call-template>
7102
7112
 
7103
- <fo:block-container margin-left="0mm">
7113
+ <fo:block-container margin-left="0mm" role="SKIP">
7104
7114
 
7105
7115
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
7106
7116
 
@@ -7165,7 +7175,7 @@
7165
7175
 
7166
7176
  <!-- a few components -->
7167
7177
  <xsl:if test="$onlyOneComponent = 'false'">
7168
- <fo:block>
7178
+ <fo:block role="SKIP">
7169
7179
 
7170
7180
  <xsl:call-template name="refine_multicomponent_style"/>
7171
7181
 
@@ -7173,7 +7183,7 @@
7173
7183
  <xsl:attribute name="margin-top">0</xsl:attribute>
7174
7184
  </xsl:if>
7175
7185
 
7176
- <fo:block>
7186
+ <fo:block role="SKIP">
7177
7187
 
7178
7188
  <xsl:call-template name="refine_multicomponent_block_style"/>
7179
7189
 
@@ -7768,6 +7778,9 @@
7768
7778
 
7769
7779
  <xsl:template name="refine_strong_style">
7770
7780
 
7781
+ <xsl:if test="ancestor::*['preferred']">
7782
+ <xsl:attribute name="role">SKIP</xsl:attribute>
7783
+ </xsl:if>
7771
7784
  </xsl:template>
7772
7785
 
7773
7786
  <xsl:template match="*[local-name()='padding']">
@@ -8699,6 +8712,18 @@
8699
8712
  </xsl:copy>
8700
8713
  </xsl:template>
8701
8714
 
8715
+ <xsl:variable name="font_main_root_style">
8716
+ <root-style xsl:use-attribute-sets="root-style">
8717
+ </root-style>
8718
+ </xsl:variable>
8719
+ <xsl:variable name="font_main_root_style_font_family" select="xalan:nodeset($font_main_root_style)/root-style/@font-family"/>
8720
+ <xsl:variable name="font_main">
8721
+ <xsl:choose>
8722
+ <xsl:when test="contains($font_main_root_style_font_family, ',')"><xsl:value-of select="substring-before($font_main_root_style_font_family, ',')"/></xsl:when>
8723
+ <xsl:otherwise><xsl:value-of select="$font_main_root_style_font_family"/></xsl:otherwise>
8724
+ </xsl:choose>
8725
+ </xsl:variable>
8726
+
8702
8727
  <xsl:template match="*[local-name()='th' or local-name()='td']" mode="simple-table-id">
8703
8728
  <xsl:param name="id"/>
8704
8729
  <xsl:copy>
@@ -8737,6 +8762,33 @@
8737
8762
 
8738
8763
  <!-- td_text='<xsl:copy-of select="$td_text"/>' -->
8739
8764
 
8765
+ <xsl:variable name="words_with_width">
8766
+ <!-- calculate width for 'word' which contain text only (without formatting tags inside) -->
8767
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][not(*)]">
8768
+ <xsl:copy>
8769
+ <xsl:copy-of select="@*"/>
8770
+ <xsl:attribute name="width">
8771
+ <xsl:value-of select="java:org.metanorma.fop.Util.getStringWidth(., $font_main)"/> <!-- Example: 'Times New Roman' -->
8772
+ </xsl:attribute>
8773
+ <xsl:copy-of select="node()"/>
8774
+ </xsl:copy>
8775
+ </xsl:for-each>
8776
+ </xsl:variable>
8777
+
8778
+ <xsl:variable name="words_with_width_sorted">
8779
+ <xsl:for-each select="xalan:nodeset($words_with_width)//*[local-name() = 'word']">
8780
+ <xsl:sort select="@width" data-type="number" order="descending"/>
8781
+ <!-- select word maximal width only -->
8782
+ <xsl:if test="position() = 1">
8783
+ <xsl:copy-of select="."/>
8784
+ </xsl:if>
8785
+ </xsl:for-each>
8786
+ <!-- add 'word' with formatting tags inside -->
8787
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][*]">
8788
+ <xsl:copy-of select="."/>
8789
+ </xsl:for-each>
8790
+ </xsl:variable>
8791
+
8740
8792
  <xsl:variable name="words">
8741
8793
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
8742
8794
  <word>
@@ -8744,9 +8796,12 @@
8744
8796
  </word>
8745
8797
  </xsl:for-each>
8746
8798
 
8747
- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
8799
+ <xsl:for-each select="xalan:nodeset($words_with_width_sorted)//*[local-name() = 'word'][normalize-space() != '']">
8748
8800
  <xsl:copy-of select="."/>
8749
8801
  </xsl:for-each>
8802
+ <!-- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
8803
+ <xsl:copy-of select="."/>
8804
+ </xsl:for-each> -->
8750
8805
 
8751
8806
  </xsl:variable>
8752
8807
 
@@ -9209,10 +9264,10 @@
9209
9264
  <xsl:copy>
9210
9265
  <xsl:apply-templates select="@*" mode="mathml"/>
9211
9266
  <xsl:if test="not(@lspace)">
9212
- <xsl:attribute name="lspace">0.4em</xsl:attribute>
9267
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9213
9268
  </xsl:if>
9214
- <xsl:if test="not(@rspace)">
9215
- <xsl:attribute name="rspace">0.4em</xsl:attribute>
9269
+ <xsl:if test="not(@rspace) and not(following-sibling::*[1][self::mathml:mo and normalize-space(text()) = '|'])">
9270
+ <xsl:attribute name="rspace">0.2em</xsl:attribute>
9216
9271
  </xsl:if>
9217
9272
  <xsl:apply-templates mode="mathml"/>
9218
9273
  </xsl:copy>
@@ -9229,6 +9284,27 @@
9229
9284
  </xsl:copy>
9230
9285
  </xsl:template>
9231
9286
 
9287
+ <!-- increase space before '(' -->
9288
+ <xsl:template match="mathml:mo[normalize-space(text()) = '(']" mode="mathml">
9289
+ <xsl:copy>
9290
+ <xsl:apply-templates select="@*" mode="mathml"/>
9291
+ <xsl:if test="(preceding-sibling::* and not(preceding-sibling::*[1][self::mathml:mo])) or (../preceding-sibling::* and not(../preceding-sibling::*[1][self::mathml:mo]))">
9292
+ <xsl:if test="not(@lspace)">
9293
+ <xsl:attribute name="lspace">0.4em</xsl:attribute>
9294
+ <xsl:choose>
9295
+ <xsl:when test="preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
9296
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9297
+ </xsl:when>
9298
+ <xsl:when test="../preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
9299
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9300
+ </xsl:when>
9301
+ </xsl:choose>
9302
+ </xsl:if>
9303
+ </xsl:if>
9304
+ <xsl:apply-templates mode="mathml"/>
9305
+ </xsl:copy>
9306
+ </xsl:template>
9307
+
9232
9308
  <!-- Examples:
9233
9309
  <stem type="AsciiMath">x = 1</stem>
9234
9310
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -9388,7 +9464,7 @@
9388
9464
  <!-- formula -->
9389
9465
  <!-- ====== -->
9390
9466
  <xsl:template match="*[local-name() = 'formula']" name="formula">
9391
- <fo:block-container margin-left="0mm">
9467
+ <fo:block-container margin-left="0mm" role="SKIP">
9392
9468
  <xsl:if test="parent::*[local-name() = 'note']">
9393
9469
  <xsl:attribute name="margin-left">
9394
9470
  <xsl:choose>
@@ -9398,7 +9474,7 @@
9398
9474
  </xsl:attribute>
9399
9475
 
9400
9476
  </xsl:if>
9401
- <fo:block-container margin-left="0mm">
9477
+ <fo:block-container margin-left="0mm" role="SKIP">
9402
9478
  <fo:block id="{@id}">
9403
9479
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
9404
9480
  </fo:block>
@@ -9478,13 +9554,13 @@
9478
9554
 
9479
9555
  <xsl:template match="*[local-name() = 'note']" name="note">
9480
9556
 
9481
- <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
9557
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style" role="SKIP">
9482
9558
 
9483
9559
  <xsl:call-template name="setBlockSpanAll"/>
9484
9560
 
9485
9561
  <xsl:call-template name="refine_note-style"/>
9486
9562
 
9487
- <fo:block-container margin-left="0mm" margin-right="0mm">
9563
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9488
9564
 
9489
9565
  <fo:block>
9490
9566
 
@@ -9650,12 +9726,13 @@
9650
9726
 
9651
9727
  <xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
9652
9728
  <xsl:if test="normalize-space() != ''">
9653
- <xsl:variable name="level">
9729
+ <!-- <xsl:variable name="level">
9654
9730
  <xsl:call-template name="getLevelTermName"/>
9655
9731
  </xsl:variable>
9656
9732
  <fo:inline role="H{$level}">
9657
- <xsl:apply-templates/>
9658
- </fo:inline>
9733
+ <xsl:apply-templates />
9734
+ </fo:inline> -->
9735
+ <xsl:apply-templates/>
9659
9736
  </xsl:if>
9660
9737
  </xsl:template>
9661
9738
  <!-- ====== -->
@@ -9679,7 +9756,7 @@
9679
9756
  <!-- Example: Dimensions in millimeters -->
9680
9757
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
9681
9758
 
9682
- <fo:block xsl:use-attribute-sets="figure-style">
9759
+ <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
9683
9760
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
9684
9761
  </fo:block>
9685
9762
  <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
@@ -10812,7 +10889,7 @@
10812
10889
  </xsl:when>
10813
10890
 
10814
10891
  <xsl:otherwise>
10815
- <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
10892
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style" role="SKIP">
10816
10893
 
10817
10894
  <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
10818
10895
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
@@ -10833,7 +10910,7 @@
10833
10910
  </xsl:attribute>
10834
10911
 
10835
10912
  </xsl:if>
10836
- <fo:block-container margin-left="0mm">
10913
+ <fo:block-container margin-left="0mm" role="SKIP">
10837
10914
 
10838
10915
  <fo:block xsl:use-attribute-sets="sourcecode-style">
10839
10916
 
@@ -11379,11 +11456,11 @@
11379
11456
  <!-- requirement, recommendation, permission table -->
11380
11457
  <!-- ========== -->
11381
11458
  <xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11382
- <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
11459
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt" role="SKIP">
11383
11460
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11384
11461
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
11385
11462
  </xsl:if>
11386
- <fo:block-container margin-left="0mm" margin-right="0mm">
11463
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11387
11464
  <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
11388
11465
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11389
11466
  <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
@@ -11549,7 +11626,7 @@
11549
11626
  -->
11550
11627
  <xsl:template match="*[local-name() = 'example']">
11551
11628
 
11552
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
11629
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
11553
11630
 
11554
11631
  <xsl:call-template name="setBlockSpanAll"/>
11555
11632
 
@@ -11560,7 +11637,7 @@
11560
11637
  block
11561
11638
  </xsl:variable>
11562
11639
 
11563
- <fo:block-container margin-left="0mm">
11640
+ <fo:block-container margin-left="0mm" role="SKIP">
11564
11641
 
11565
11642
  <xsl:choose>
11566
11643
 
@@ -11573,8 +11650,8 @@
11573
11650
  </xsl:apply-templates>
11574
11651
  </fo:block>
11575
11652
 
11576
- <fo:block-container xsl:use-attribute-sets="example-body-style">
11577
- <fo:block-container margin-left="0mm" margin-right="0mm">
11653
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11654
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11578
11655
  <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11579
11656
  <xsl:with-param name="fo_element" select="$fo_element"/>
11580
11657
  </xsl:apply-templates>
@@ -11627,8 +11704,8 @@
11627
11704
 
11628
11705
  <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
11629
11706
  <!-- display further elements in blocks -->
11630
- <fo:block-container xsl:use-attribute-sets="example-body-style">
11631
- <fo:block-container margin-left="0mm" margin-right="0mm">
11707
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11708
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11632
11709
  <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
11633
11710
  <xsl:with-param name="fo_element" select="'block'"/>
11634
11711
  </xsl:apply-templates>
@@ -11681,7 +11758,7 @@
11681
11758
  </xsl:variable>
11682
11759
  <xsl:choose>
11683
11760
  <xsl:when test="starts-with(normalize-space($element), 'block')">
11684
- <fo:block-container>
11761
+ <fo:block-container role="SKIP">
11685
11762
  <xsl:if test="ancestor::*[local-name() = 'li'] and contains(normalize-space($fo_element), 'block')">
11686
11763
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
11687
11764
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
@@ -11822,7 +11899,7 @@
11822
11899
  <!-- author -->
11823
11900
  <!-- ====== -->
11824
11901
  <xsl:template match="*[local-name() = 'quote']">
11825
- <fo:block-container margin-left="0mm">
11902
+ <fo:block-container margin-left="0mm" role="SKIP">
11826
11903
 
11827
11904
  <xsl:call-template name="setBlockSpanAll"/>
11828
11905
 
@@ -11832,12 +11909,12 @@
11832
11909
  </xsl:if>
11833
11910
  </xsl:if>
11834
11911
 
11835
- <fo:block-container margin-left="0mm">
11836
- <fo:block-container xsl:use-attribute-sets="quote-style">
11912
+ <fo:block-container margin-left="0mm" role="SKIP">
11913
+ <fo:block-container xsl:use-attribute-sets="quote-style" role="SKIP">
11837
11914
 
11838
11915
  <xsl:call-template name="refine_quote-style"/>
11839
11916
 
11840
- <fo:block-container margin-left="0mm" margin-right="0mm">
11917
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11841
11918
  <fo:block role="BlockQuote">
11842
11919
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
11843
11920
  </fo:block>
@@ -11991,10 +12068,10 @@
11991
12068
 
11992
12069
  <xsl:choose>
11993
12070
  <xsl:when test="$lang = 'zh'">
11994
- <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
12071
+ <fo:inline role="SKIP"><xsl:value-of select="$tab_zh"/></fo:inline>
11995
12072
  </xsl:when>
11996
12073
  <xsl:when test="../../@inline-header = 'true'">
11997
- <fo:inline font-size="90%">
12074
+ <fo:inline font-size="90%" role="SKIP">
11998
12075
  <xsl:call-template name="insertNonBreakSpaces">
11999
12076
  <xsl:with-param name="count" select="$padding-right"/>
12000
12077
  </xsl:call-template>
@@ -12002,7 +12079,7 @@
12002
12079
  </xsl:when>
12003
12080
  <xsl:otherwise>
12004
12081
  <xsl:variable name="direction"><xsl:if test="$lang = 'ar'"><xsl:value-of select="$RLM"/></xsl:if></xsl:variable>
12005
- <fo:inline padding-right="{$padding-right}mm"><xsl:value-of select="$direction"/>​</fo:inline>
12082
+ <fo:inline padding-right="{$padding-right}mm" role="SKIP"><xsl:value-of select="$direction"/>​</fo:inline>
12006
12083
  </xsl:otherwise>
12007
12084
  </xsl:choose>
12008
12085
 
@@ -12032,12 +12109,12 @@
12032
12109
  <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
12033
12110
 
12034
12111
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
12035
- <fo:block xsl:use-attribute-sets="term-name-style">
12112
+ <fo:block xsl:use-attribute-sets="term-name-style" role="SKIP">
12036
12113
  <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
12037
12114
  </fo:block>
12038
12115
  </xsl:if>
12039
12116
 
12040
- <fo:block xsl:use-attribute-sets="preferred-term-style">
12117
+ <fo:block xsl:use-attribute-sets="preferred-term-style" role="SKIP">
12041
12118
  <xsl:call-template name="setStyle_preferred"/>
12042
12119
  <xsl:apply-templates/>
12043
12120
  </fo:block>
@@ -12078,7 +12155,7 @@
12078
12155
  <!-- definition -->
12079
12156
  <!-- ========== -->
12080
12157
  <xsl:template match="*[local-name() = 'definition']">
12081
- <fo:block xsl:use-attribute-sets="definition-style">
12158
+ <fo:block xsl:use-attribute-sets="definition-style" role="SKIP">
12082
12159
  <xsl:apply-templates/>
12083
12160
  </fo:block>
12084
12161
  </xsl:template>
@@ -12121,6 +12198,10 @@
12121
12198
 
12122
12199
  <xsl:template match="*[local-name() = 'clause']">
12123
12200
  <fo:block>
12201
+ <xsl:if test="parent::*[local-name() = 'copyright-statement']">
12202
+ <xsl:attribute name="role">SKIP</xsl:attribute>
12203
+ </xsl:if>
12204
+
12124
12205
  <xsl:call-template name="setId"/>
12125
12206
 
12126
12207
  <xsl:call-template name="setBlockSpanAll"/>
@@ -12368,7 +12449,7 @@
12368
12449
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
12369
12450
  <xsl:choose>
12370
12451
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
12371
- <fo:block-container>
12452
+ <fo:block-container role="SKIP">
12372
12453
  <xsl:attribute name="margin-left">
12373
12454
  <xsl:choose>
12374
12455
  <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
@@ -12378,7 +12459,7 @@
12378
12459
 
12379
12460
  <xsl:call-template name="refine_list_container_style"/>
12380
12461
 
12381
- <fo:block-container margin-left="0mm">
12462
+ <fo:block-container margin-left="0mm" role="SKIP">
12382
12463
  <fo:block>
12383
12464
  <xsl:apply-templates select="." mode="list"/>
12384
12465
  </fo:block>
@@ -12387,7 +12468,7 @@
12387
12468
  </xsl:when>
12388
12469
  <xsl:otherwise>
12389
12470
 
12390
- <fo:block>
12471
+ <fo:block role="SKIP">
12391
12472
  <xsl:apply-templates select="." mode="list"/>
12392
12473
  </fo:block>
12393
12474
 
@@ -12805,7 +12886,10 @@
12805
12886
  <!-- Reference sections (Normative References and Bibliography) -->
12806
12887
  <!-- ========================================================== -->
12807
12888
  <xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/>
12808
- <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/>
12889
+ <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3">
12890
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/>
12891
+
12892
+ </xsl:template>
12809
12893
  <!-- don't display bibitem with @id starts with '_hidden', that was introduced for references integrity -->
12810
12894
  <xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/>
12811
12895
 
@@ -12852,7 +12936,7 @@
12852
12936
 
12853
12937
  <!-- Bibliography (non-normative references) -->
12854
12938
  <xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" name="bibitem_non_normative" priority="2">
12855
-
12939
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/> <!-- current bibiitem is non-first -->
12856
12940
  <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'ieee' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
12857
12941
  $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
12858
12942
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
@@ -12884,6 +12968,35 @@
12884
12968
 
12885
12969
  </xsl:template> <!-- references[not(@normative='true')]/bibitem -->
12886
12970
 
12971
+ <xsl:template name="insertListItem_Bibitem">
12972
+ <xsl:choose>
12973
+ <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
12974
+ <xsl:otherwise>
12975
+ <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
12976
+ <fo:list-item-label end-indent="label-end()">
12977
+ <fo:block role="SKIP">
12978
+ <fo:inline role="SKIP">
12979
+ <xsl:apply-templates select="*[local-name() = 'biblio-tag']">
12980
+ <xsl:with-param name="biblio_tag_part">first</xsl:with-param>
12981
+ </xsl:apply-templates>
12982
+ </fo:inline>
12983
+ </fo:block>
12984
+ </fo:list-item-label>
12985
+ <fo:list-item-body start-indent="body-start()">
12986
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style" role="SKIP">
12987
+ <xsl:call-template name="processBibitem">
12988
+ <xsl:with-param name="biblio_tag_part">last</xsl:with-param>
12989
+ </xsl:call-template>
12990
+ </fo:block>
12991
+ </fo:list-item-body>
12992
+ </fo:list-item>
12993
+ </xsl:otherwise>
12994
+ </xsl:choose>
12995
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'bibitem']">
12996
+ <xsl:with-param name="skip">false</xsl:with-param>
12997
+ </xsl:apply-templates>
12998
+ </xsl:template>
12999
+
12887
13000
  <xsl:template name="processBibitem">
12888
13001
  <xsl:param name="biblio_tag_part">both</xsl:param>
12889
13002
 
@@ -13237,7 +13350,7 @@
13237
13350
  <xsl:attribute name="text-align">left</xsl:attribute>
13238
13351
  </xsl:if>
13239
13352
 
13240
- <fo:block-container xsl:use-attribute-sets="admonition-container-style">
13353
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style" role="SKIP">
13241
13354
 
13242
13355
  <xsl:if test="@type = 'editorial' or not(@type)">
13243
13356
  <xsl:attribute name="padding">0mm</xsl:attribute>
@@ -13247,7 +13360,7 @@
13247
13360
  <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute>
13248
13361
  </xsl:if>
13249
13362
 
13250
- <fo:block-container margin-left="0mm" margin-right="0mm">
13363
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
13251
13364
  <fo:block xsl:use-attribute-sets="admonition-p-style">
13252
13365
  <fo:inline>
13253
13366
  <xsl:call-template name="displayAdmonitionName">
@@ -4748,6 +4748,7 @@
4748
4748
  </xsl:attribute-set>
4749
4749
 
4750
4750
  <xsl:attribute-set name="figure-block-style">
4751
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4751
4752
 
4752
4753
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4753
4754
 
@@ -4758,6 +4759,7 @@
4758
4759
  </xsl:attribute-set>
4759
4760
 
4760
4761
  <xsl:attribute-set name="figure-name-style">
4762
+ <xsl:attribute name="role">Caption</xsl:attribute>
4761
4763
 
4762
4764
  <xsl:attribute name="font-family">Arial</xsl:attribute>
4763
4765
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4811,6 +4813,7 @@
4811
4813
  </xsl:template>
4812
4814
 
4813
4815
  <xsl:attribute-set name="image-style">
4816
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4814
4817
  <xsl:attribute name="text-align">center</xsl:attribute>
4815
4818
 
4816
4819
  </xsl:attribute-set>
@@ -5088,6 +5091,13 @@
5088
5091
 
5089
5092
  </xsl:attribute-set> <!-- bibitem-non-normative-list-style -->
5090
5093
 
5094
+ <xsl:attribute-set name="bibitem-non-normative-list-item-style">
5095
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
5096
+
5097
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
5098
+
5099
+ </xsl:attribute-set>
5100
+
5091
5101
  <!-- bibitem in bibliography section (references/@normative="false"), list body -->
5092
5102
  <xsl:attribute-set name="bibitem-normative-list-body-style">
5093
5103
 
@@ -5487,14 +5497,14 @@
5487
5497
  <xsl:value-of select="$sep"/><xsl:value-of select="$zero_width_space"/>
5488
5498
  </xsl:when>
5489
5499
  <xsl:otherwise>
5490
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
5500
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
5491
5501
  </xsl:otherwise>
5492
5502
  </xsl:choose>
5493
5503
  </xsl:for-each>
5494
5504
  </xsl:when>
5495
5505
 
5496
5506
  <xsl:otherwise>
5497
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
5507
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
5498
5508
  </xsl:otherwise>
5499
5509
 
5500
5510
  </xsl:choose>
@@ -5504,7 +5514,7 @@
5504
5514
  <!-- Preface boilerplate sections processing -->
5505
5515
  <!-- ================================= -->
5506
5516
  <xsl:template match="*[local-name()='copyright-statement']">
5507
- <fo:block xsl:use-attribute-sets="copyright-statement-style">
5517
+ <fo:block xsl:use-attribute-sets="copyright-statement-style" role="SKIP">
5508
5518
  <xsl:apply-templates/>
5509
5519
  </fo:block>
5510
5520
  </xsl:template> <!-- copyright-statement -->
@@ -5672,7 +5682,7 @@
5672
5682
  </xsl:choose>
5673
5683
  </xsl:variable>
5674
5684
 
5675
- <fo:block-container xsl:use-attribute-sets="table-container-style">
5685
+ <fo:block-container xsl:use-attribute-sets="table-container-style" role="SKIP">
5676
5686
 
5677
5687
  <xsl:call-template name="refine_table-container-style">
5678
5688
  <xsl:with-param name="margin-side" select="$margin-side"/>
@@ -6738,7 +6748,7 @@
6738
6748
  </xsl:choose>
6739
6749
  </xsl:variable>
6740
6750
  <xsl:variable name="footnote_inline">
6741
- <fo:inline>
6751
+ <fo:inline role="Reference">
6742
6752
 
6743
6753
  <xsl:variable name="fn_styles">
6744
6754
  <xsl:choose>
@@ -6761,7 +6771,7 @@
6761
6771
 
6762
6772
  <xsl:call-template name="insert_basic_link">
6763
6773
  <xsl:with-param name="element">
6764
- <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
6774
+ <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}" role="Lbl">
6765
6775
  <xsl:copy-of select="$current_fn_number_text"/>
6766
6776
  </fo:basic-link>
6767
6777
  </xsl:with-param>
@@ -6774,17 +6784,17 @@
6774
6784
  <xsl:copy-of select="$footnote_inline"/>
6775
6785
  </xsl:when>
6776
6786
  <xsl:when test="$p_fn//fn[@gen_id = $gen_id] or normalize-space(@skip_footnote_body) = 'false'">
6777
- <fo:footnote xsl:use-attribute-sets="fn-style">
6787
+ <fo:footnote xsl:use-attribute-sets="fn-style" role="SKIP">
6778
6788
  <xsl:copy-of select="$footnote_inline"/>
6779
- <fo:footnote-body>
6789
+ <fo:footnote-body role="Note">
6780
6790
 
6781
- <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
6791
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style" role="SKIP">
6782
6792
 
6783
- <fo:block xsl:use-attribute-sets="fn-body-style">
6793
+ <fo:block xsl:use-attribute-sets="fn-body-style" role="SKIP">
6784
6794
 
6785
6795
  <xsl:call-template name="refine_fn-body-style"/>
6786
6796
 
6787
- <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
6797
+ <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style" role="Lbl">
6788
6798
 
6789
6799
  <xsl:call-template name="refine_fn-body-num-style"/>
6790
6800
 
@@ -7046,11 +7056,11 @@
7046
7056
  </xsl:template>
7047
7057
 
7048
7058
  <xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
7049
- <fo:inline><xsl:value-of select="."/></fo:inline>
7059
+ <fo:inline role="SKIP"><xsl:value-of select="."/></fo:inline>
7050
7060
  </xsl:template>
7051
7061
 
7052
7062
  <xsl:template match="*[local-name()='fn']//*[local-name()='p']">
7053
- <fo:inline>
7063
+ <fo:inline role="P">
7054
7064
  <xsl:apply-templates/>
7055
7065
  </fo:inline>
7056
7066
  </xsl:template>
@@ -7065,7 +7075,7 @@
7065
7075
  <xsl:variable name="isAdded" select="@added"/>
7066
7076
  <xsl:variable name="isDeleted" select="@deleted"/>
7067
7077
  <!-- <dl><xsl:copy-of select="."/></dl> -->
7068
- <fo:block-container xsl:use-attribute-sets="dl-block-style">
7078
+ <fo:block-container xsl:use-attribute-sets="dl-block-style" role="SKIP">
7069
7079
 
7070
7080
  <xsl:call-template name="setBlockSpanAll"/>
7071
7081
 
@@ -7100,7 +7110,7 @@
7100
7110
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
7101
7111
  </xsl:call-template>
7102
7112
 
7103
- <fo:block-container margin-left="0mm">
7113
+ <fo:block-container margin-left="0mm" role="SKIP">
7104
7114
 
7105
7115
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
7106
7116
 
@@ -7165,7 +7175,7 @@
7165
7175
 
7166
7176
  <!-- a few components -->
7167
7177
  <xsl:if test="$onlyOneComponent = 'false'">
7168
- <fo:block>
7178
+ <fo:block role="SKIP">
7169
7179
 
7170
7180
  <xsl:call-template name="refine_multicomponent_style"/>
7171
7181
 
@@ -7173,7 +7183,7 @@
7173
7183
  <xsl:attribute name="margin-top">0</xsl:attribute>
7174
7184
  </xsl:if>
7175
7185
 
7176
- <fo:block>
7186
+ <fo:block role="SKIP">
7177
7187
 
7178
7188
  <xsl:call-template name="refine_multicomponent_block_style"/>
7179
7189
 
@@ -7768,6 +7778,9 @@
7768
7778
 
7769
7779
  <xsl:template name="refine_strong_style">
7770
7780
 
7781
+ <xsl:if test="ancestor::*['preferred']">
7782
+ <xsl:attribute name="role">SKIP</xsl:attribute>
7783
+ </xsl:if>
7771
7784
  </xsl:template>
7772
7785
 
7773
7786
  <xsl:template match="*[local-name()='padding']">
@@ -8699,6 +8712,18 @@
8699
8712
  </xsl:copy>
8700
8713
  </xsl:template>
8701
8714
 
8715
+ <xsl:variable name="font_main_root_style">
8716
+ <root-style xsl:use-attribute-sets="root-style">
8717
+ </root-style>
8718
+ </xsl:variable>
8719
+ <xsl:variable name="font_main_root_style_font_family" select="xalan:nodeset($font_main_root_style)/root-style/@font-family"/>
8720
+ <xsl:variable name="font_main">
8721
+ <xsl:choose>
8722
+ <xsl:when test="contains($font_main_root_style_font_family, ',')"><xsl:value-of select="substring-before($font_main_root_style_font_family, ',')"/></xsl:when>
8723
+ <xsl:otherwise><xsl:value-of select="$font_main_root_style_font_family"/></xsl:otherwise>
8724
+ </xsl:choose>
8725
+ </xsl:variable>
8726
+
8702
8727
  <xsl:template match="*[local-name()='th' or local-name()='td']" mode="simple-table-id">
8703
8728
  <xsl:param name="id"/>
8704
8729
  <xsl:copy>
@@ -8737,6 +8762,33 @@
8737
8762
 
8738
8763
  <!-- td_text='<xsl:copy-of select="$td_text"/>' -->
8739
8764
 
8765
+ <xsl:variable name="words_with_width">
8766
+ <!-- calculate width for 'word' which contain text only (without formatting tags inside) -->
8767
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][not(*)]">
8768
+ <xsl:copy>
8769
+ <xsl:copy-of select="@*"/>
8770
+ <xsl:attribute name="width">
8771
+ <xsl:value-of select="java:org.metanorma.fop.Util.getStringWidth(., $font_main)"/> <!-- Example: 'Times New Roman' -->
8772
+ </xsl:attribute>
8773
+ <xsl:copy-of select="node()"/>
8774
+ </xsl:copy>
8775
+ </xsl:for-each>
8776
+ </xsl:variable>
8777
+
8778
+ <xsl:variable name="words_with_width_sorted">
8779
+ <xsl:for-each select="xalan:nodeset($words_with_width)//*[local-name() = 'word']">
8780
+ <xsl:sort select="@width" data-type="number" order="descending"/>
8781
+ <!-- select word maximal width only -->
8782
+ <xsl:if test="position() = 1">
8783
+ <xsl:copy-of select="."/>
8784
+ </xsl:if>
8785
+ </xsl:for-each>
8786
+ <!-- add 'word' with formatting tags inside -->
8787
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][*]">
8788
+ <xsl:copy-of select="."/>
8789
+ </xsl:for-each>
8790
+ </xsl:variable>
8791
+
8740
8792
  <xsl:variable name="words">
8741
8793
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
8742
8794
  <word>
@@ -8744,9 +8796,12 @@
8744
8796
  </word>
8745
8797
  </xsl:for-each>
8746
8798
 
8747
- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
8799
+ <xsl:for-each select="xalan:nodeset($words_with_width_sorted)//*[local-name() = 'word'][normalize-space() != '']">
8748
8800
  <xsl:copy-of select="."/>
8749
8801
  </xsl:for-each>
8802
+ <!-- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
8803
+ <xsl:copy-of select="."/>
8804
+ </xsl:for-each> -->
8750
8805
 
8751
8806
  </xsl:variable>
8752
8807
 
@@ -9209,10 +9264,10 @@
9209
9264
  <xsl:copy>
9210
9265
  <xsl:apply-templates select="@*" mode="mathml"/>
9211
9266
  <xsl:if test="not(@lspace)">
9212
- <xsl:attribute name="lspace">0.4em</xsl:attribute>
9267
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9213
9268
  </xsl:if>
9214
- <xsl:if test="not(@rspace)">
9215
- <xsl:attribute name="rspace">0.4em</xsl:attribute>
9269
+ <xsl:if test="not(@rspace) and not(following-sibling::*[1][self::mathml:mo and normalize-space(text()) = '|'])">
9270
+ <xsl:attribute name="rspace">0.2em</xsl:attribute>
9216
9271
  </xsl:if>
9217
9272
  <xsl:apply-templates mode="mathml"/>
9218
9273
  </xsl:copy>
@@ -9229,6 +9284,27 @@
9229
9284
  </xsl:copy>
9230
9285
  </xsl:template>
9231
9286
 
9287
+ <!-- increase space before '(' -->
9288
+ <xsl:template match="mathml:mo[normalize-space(text()) = '(']" mode="mathml">
9289
+ <xsl:copy>
9290
+ <xsl:apply-templates select="@*" mode="mathml"/>
9291
+ <xsl:if test="(preceding-sibling::* and not(preceding-sibling::*[1][self::mathml:mo])) or (../preceding-sibling::* and not(../preceding-sibling::*[1][self::mathml:mo]))">
9292
+ <xsl:if test="not(@lspace)">
9293
+ <xsl:attribute name="lspace">0.4em</xsl:attribute>
9294
+ <xsl:choose>
9295
+ <xsl:when test="preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
9296
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9297
+ </xsl:when>
9298
+ <xsl:when test="../preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
9299
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9300
+ </xsl:when>
9301
+ </xsl:choose>
9302
+ </xsl:if>
9303
+ </xsl:if>
9304
+ <xsl:apply-templates mode="mathml"/>
9305
+ </xsl:copy>
9306
+ </xsl:template>
9307
+
9232
9308
  <!-- Examples:
9233
9309
  <stem type="AsciiMath">x = 1</stem>
9234
9310
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -9388,7 +9464,7 @@
9388
9464
  <!-- formula -->
9389
9465
  <!-- ====== -->
9390
9466
  <xsl:template match="*[local-name() = 'formula']" name="formula">
9391
- <fo:block-container margin-left="0mm">
9467
+ <fo:block-container margin-left="0mm" role="SKIP">
9392
9468
  <xsl:if test="parent::*[local-name() = 'note']">
9393
9469
  <xsl:attribute name="margin-left">
9394
9470
  <xsl:choose>
@@ -9398,7 +9474,7 @@
9398
9474
  </xsl:attribute>
9399
9475
 
9400
9476
  </xsl:if>
9401
- <fo:block-container margin-left="0mm">
9477
+ <fo:block-container margin-left="0mm" role="SKIP">
9402
9478
  <fo:block id="{@id}">
9403
9479
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
9404
9480
  </fo:block>
@@ -9478,13 +9554,13 @@
9478
9554
 
9479
9555
  <xsl:template match="*[local-name() = 'note']" name="note">
9480
9556
 
9481
- <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
9557
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style" role="SKIP">
9482
9558
 
9483
9559
  <xsl:call-template name="setBlockSpanAll"/>
9484
9560
 
9485
9561
  <xsl:call-template name="refine_note-style"/>
9486
9562
 
9487
- <fo:block-container margin-left="0mm" margin-right="0mm">
9563
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9488
9564
 
9489
9565
  <fo:block>
9490
9566
 
@@ -9650,12 +9726,13 @@
9650
9726
 
9651
9727
  <xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
9652
9728
  <xsl:if test="normalize-space() != ''">
9653
- <xsl:variable name="level">
9729
+ <!-- <xsl:variable name="level">
9654
9730
  <xsl:call-template name="getLevelTermName"/>
9655
9731
  </xsl:variable>
9656
9732
  <fo:inline role="H{$level}">
9657
- <xsl:apply-templates/>
9658
- </fo:inline>
9733
+ <xsl:apply-templates />
9734
+ </fo:inline> -->
9735
+ <xsl:apply-templates/>
9659
9736
  </xsl:if>
9660
9737
  </xsl:template>
9661
9738
  <!-- ====== -->
@@ -9679,7 +9756,7 @@
9679
9756
  <!-- Example: Dimensions in millimeters -->
9680
9757
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
9681
9758
 
9682
- <fo:block xsl:use-attribute-sets="figure-style">
9759
+ <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
9683
9760
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
9684
9761
  </fo:block>
9685
9762
  <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
@@ -10812,7 +10889,7 @@
10812
10889
  </xsl:when>
10813
10890
 
10814
10891
  <xsl:otherwise>
10815
- <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
10892
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style" role="SKIP">
10816
10893
 
10817
10894
  <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
10818
10895
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
@@ -10833,7 +10910,7 @@
10833
10910
  </xsl:attribute>
10834
10911
 
10835
10912
  </xsl:if>
10836
- <fo:block-container margin-left="0mm">
10913
+ <fo:block-container margin-left="0mm" role="SKIP">
10837
10914
 
10838
10915
  <fo:block xsl:use-attribute-sets="sourcecode-style">
10839
10916
 
@@ -11379,11 +11456,11 @@
11379
11456
  <!-- requirement, recommendation, permission table -->
11380
11457
  <!-- ========== -->
11381
11458
  <xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11382
- <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
11459
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt" role="SKIP">
11383
11460
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11384
11461
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
11385
11462
  </xsl:if>
11386
- <fo:block-container margin-left="0mm" margin-right="0mm">
11463
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11387
11464
  <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
11388
11465
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11389
11466
  <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
@@ -11549,7 +11626,7 @@
11549
11626
  -->
11550
11627
  <xsl:template match="*[local-name() = 'example']">
11551
11628
 
11552
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
11629
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
11553
11630
 
11554
11631
  <xsl:call-template name="setBlockSpanAll"/>
11555
11632
 
@@ -11560,7 +11637,7 @@
11560
11637
  block
11561
11638
  </xsl:variable>
11562
11639
 
11563
- <fo:block-container margin-left="0mm">
11640
+ <fo:block-container margin-left="0mm" role="SKIP">
11564
11641
 
11565
11642
  <xsl:choose>
11566
11643
 
@@ -11573,8 +11650,8 @@
11573
11650
  </xsl:apply-templates>
11574
11651
  </fo:block>
11575
11652
 
11576
- <fo:block-container xsl:use-attribute-sets="example-body-style">
11577
- <fo:block-container margin-left="0mm" margin-right="0mm">
11653
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11654
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11578
11655
  <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11579
11656
  <xsl:with-param name="fo_element" select="$fo_element"/>
11580
11657
  </xsl:apply-templates>
@@ -11627,8 +11704,8 @@
11627
11704
 
11628
11705
  <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
11629
11706
  <!-- display further elements in blocks -->
11630
- <fo:block-container xsl:use-attribute-sets="example-body-style">
11631
- <fo:block-container margin-left="0mm" margin-right="0mm">
11707
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11708
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11632
11709
  <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
11633
11710
  <xsl:with-param name="fo_element" select="'block'"/>
11634
11711
  </xsl:apply-templates>
@@ -11681,7 +11758,7 @@
11681
11758
  </xsl:variable>
11682
11759
  <xsl:choose>
11683
11760
  <xsl:when test="starts-with(normalize-space($element), 'block')">
11684
- <fo:block-container>
11761
+ <fo:block-container role="SKIP">
11685
11762
  <xsl:if test="ancestor::*[local-name() = 'li'] and contains(normalize-space($fo_element), 'block')">
11686
11763
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
11687
11764
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
@@ -11822,7 +11899,7 @@
11822
11899
  <!-- author -->
11823
11900
  <!-- ====== -->
11824
11901
  <xsl:template match="*[local-name() = 'quote']">
11825
- <fo:block-container margin-left="0mm">
11902
+ <fo:block-container margin-left="0mm" role="SKIP">
11826
11903
 
11827
11904
  <xsl:call-template name="setBlockSpanAll"/>
11828
11905
 
@@ -11832,12 +11909,12 @@
11832
11909
  </xsl:if>
11833
11910
  </xsl:if>
11834
11911
 
11835
- <fo:block-container margin-left="0mm">
11836
- <fo:block-container xsl:use-attribute-sets="quote-style">
11912
+ <fo:block-container margin-left="0mm" role="SKIP">
11913
+ <fo:block-container xsl:use-attribute-sets="quote-style" role="SKIP">
11837
11914
 
11838
11915
  <xsl:call-template name="refine_quote-style"/>
11839
11916
 
11840
- <fo:block-container margin-left="0mm" margin-right="0mm">
11917
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11841
11918
  <fo:block role="BlockQuote">
11842
11919
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
11843
11920
  </fo:block>
@@ -11991,10 +12068,10 @@
11991
12068
 
11992
12069
  <xsl:choose>
11993
12070
  <xsl:when test="$lang = 'zh'">
11994
- <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
12071
+ <fo:inline role="SKIP"><xsl:value-of select="$tab_zh"/></fo:inline>
11995
12072
  </xsl:when>
11996
12073
  <xsl:when test="../../@inline-header = 'true'">
11997
- <fo:inline font-size="90%">
12074
+ <fo:inline font-size="90%" role="SKIP">
11998
12075
  <xsl:call-template name="insertNonBreakSpaces">
11999
12076
  <xsl:with-param name="count" select="$padding-right"/>
12000
12077
  </xsl:call-template>
@@ -12002,7 +12079,7 @@
12002
12079
  </xsl:when>
12003
12080
  <xsl:otherwise>
12004
12081
  <xsl:variable name="direction"><xsl:if test="$lang = 'ar'"><xsl:value-of select="$RLM"/></xsl:if></xsl:variable>
12005
- <fo:inline padding-right="{$padding-right}mm"><xsl:value-of select="$direction"/>​</fo:inline>
12082
+ <fo:inline padding-right="{$padding-right}mm" role="SKIP"><xsl:value-of select="$direction"/>​</fo:inline>
12006
12083
  </xsl:otherwise>
12007
12084
  </xsl:choose>
12008
12085
 
@@ -12032,12 +12109,12 @@
12032
12109
  <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
12033
12110
 
12034
12111
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
12035
- <fo:block xsl:use-attribute-sets="term-name-style">
12112
+ <fo:block xsl:use-attribute-sets="term-name-style" role="SKIP">
12036
12113
  <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
12037
12114
  </fo:block>
12038
12115
  </xsl:if>
12039
12116
 
12040
- <fo:block xsl:use-attribute-sets="preferred-term-style">
12117
+ <fo:block xsl:use-attribute-sets="preferred-term-style" role="SKIP">
12041
12118
  <xsl:call-template name="setStyle_preferred"/>
12042
12119
  <xsl:apply-templates/>
12043
12120
  </fo:block>
@@ -12078,7 +12155,7 @@
12078
12155
  <!-- definition -->
12079
12156
  <!-- ========== -->
12080
12157
  <xsl:template match="*[local-name() = 'definition']">
12081
- <fo:block xsl:use-attribute-sets="definition-style">
12158
+ <fo:block xsl:use-attribute-sets="definition-style" role="SKIP">
12082
12159
  <xsl:apply-templates/>
12083
12160
  </fo:block>
12084
12161
  </xsl:template>
@@ -12121,6 +12198,10 @@
12121
12198
 
12122
12199
  <xsl:template match="*[local-name() = 'clause']">
12123
12200
  <fo:block>
12201
+ <xsl:if test="parent::*[local-name() = 'copyright-statement']">
12202
+ <xsl:attribute name="role">SKIP</xsl:attribute>
12203
+ </xsl:if>
12204
+
12124
12205
  <xsl:call-template name="setId"/>
12125
12206
 
12126
12207
  <xsl:call-template name="setBlockSpanAll"/>
@@ -12368,7 +12449,7 @@
12368
12449
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
12369
12450
  <xsl:choose>
12370
12451
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
12371
- <fo:block-container>
12452
+ <fo:block-container role="SKIP">
12372
12453
  <xsl:attribute name="margin-left">
12373
12454
  <xsl:choose>
12374
12455
  <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
@@ -12378,7 +12459,7 @@
12378
12459
 
12379
12460
  <xsl:call-template name="refine_list_container_style"/>
12380
12461
 
12381
- <fo:block-container margin-left="0mm">
12462
+ <fo:block-container margin-left="0mm" role="SKIP">
12382
12463
  <fo:block>
12383
12464
  <xsl:apply-templates select="." mode="list"/>
12384
12465
  </fo:block>
@@ -12387,7 +12468,7 @@
12387
12468
  </xsl:when>
12388
12469
  <xsl:otherwise>
12389
12470
 
12390
- <fo:block>
12471
+ <fo:block role="SKIP">
12391
12472
  <xsl:apply-templates select="." mode="list"/>
12392
12473
  </fo:block>
12393
12474
 
@@ -12805,7 +12886,10 @@
12805
12886
  <!-- Reference sections (Normative References and Bibliography) -->
12806
12887
  <!-- ========================================================== -->
12807
12888
  <xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/>
12808
- <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/>
12889
+ <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3">
12890
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/>
12891
+
12892
+ </xsl:template>
12809
12893
  <!-- don't display bibitem with @id starts with '_hidden', that was introduced for references integrity -->
12810
12894
  <xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/>
12811
12895
 
@@ -12852,7 +12936,7 @@
12852
12936
 
12853
12937
  <!-- Bibliography (non-normative references) -->
12854
12938
  <xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" name="bibitem_non_normative" priority="2">
12855
-
12939
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/> <!-- current bibiitem is non-first -->
12856
12940
  <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'ieee' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
12857
12941
  $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
12858
12942
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
@@ -12884,6 +12968,35 @@
12884
12968
 
12885
12969
  </xsl:template> <!-- references[not(@normative='true')]/bibitem -->
12886
12970
 
12971
+ <xsl:template name="insertListItem_Bibitem">
12972
+ <xsl:choose>
12973
+ <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
12974
+ <xsl:otherwise>
12975
+ <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
12976
+ <fo:list-item-label end-indent="label-end()">
12977
+ <fo:block role="SKIP">
12978
+ <fo:inline role="SKIP">
12979
+ <xsl:apply-templates select="*[local-name() = 'biblio-tag']">
12980
+ <xsl:with-param name="biblio_tag_part">first</xsl:with-param>
12981
+ </xsl:apply-templates>
12982
+ </fo:inline>
12983
+ </fo:block>
12984
+ </fo:list-item-label>
12985
+ <fo:list-item-body start-indent="body-start()">
12986
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style" role="SKIP">
12987
+ <xsl:call-template name="processBibitem">
12988
+ <xsl:with-param name="biblio_tag_part">last</xsl:with-param>
12989
+ </xsl:call-template>
12990
+ </fo:block>
12991
+ </fo:list-item-body>
12992
+ </fo:list-item>
12993
+ </xsl:otherwise>
12994
+ </xsl:choose>
12995
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'bibitem']">
12996
+ <xsl:with-param name="skip">false</xsl:with-param>
12997
+ </xsl:apply-templates>
12998
+ </xsl:template>
12999
+
12887
13000
  <xsl:template name="processBibitem">
12888
13001
  <xsl:param name="biblio_tag_part">both</xsl:param>
12889
13002
 
@@ -13237,7 +13350,7 @@
13237
13350
  <xsl:attribute name="text-align">left</xsl:attribute>
13238
13351
  </xsl:if>
13239
13352
 
13240
- <fo:block-container xsl:use-attribute-sets="admonition-container-style">
13353
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style" role="SKIP">
13241
13354
 
13242
13355
  <xsl:if test="@type = 'editorial' or not(@type)">
13243
13356
  <xsl:attribute name="padding">0mm</xsl:attribute>
@@ -13247,7 +13360,7 @@
13247
13360
  <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute>
13248
13361
  </xsl:if>
13249
13362
 
13250
- <fo:block-container margin-left="0mm" margin-right="0mm">
13363
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
13251
13364
  <fo:block xsl:use-attribute-sets="admonition-p-style">
13252
13365
  <fo:inline>
13253
13366
  <xsl:call-template name="displayAdmonitionName">
@@ -90,7 +90,7 @@ module IsoDoc
90
90
  end
91
91
 
92
92
  def div_cleanup(docxml)
93
- d = docxml.at("//div[@class = 'WordSection2']"\
93
+ d = docxml.at("//div[@class = 'WordSection2']" \
94
94
  "[div[@class = 'WordSection2']]") and
95
95
  d.replace(d.children)
96
96
  i = 0
@@ -69,12 +69,13 @@ module IsoDoc
69
69
  def termnote_anchor_names(docxml)
70
70
  docxml.xpath(ns("//*[termnote]")).each do |t|
71
71
  c = Counter.new
72
+ sequence = UUIDTools::UUID.random_create.to_s
72
73
  notes = t.xpath(ns("./termnote"))
73
74
  notes.noblank.each do |n|
74
75
  @anchors[n["id"]] =
75
76
  anchor_struct("#{@labels['termnote']} #{increment_label(notes, n, c)}",
76
77
  n, @labels["note_xref"], "termnote", false)
77
- .merge(sequence: UUIDTools::UUID.random_create.to_s)
78
+ .merge(sequence: sequence)
78
79
  end
79
80
  end
80
81
  end
@@ -244,7 +244,7 @@ and all applicable laws and regulations.
244
244
 
245
245
  [[boilerplate-participants-wg]]
246
246
  ==== {blank}
247
- At the time this draft {{ doctype }} was completed, the {{ working_group }} Working Group had the following membership:
247
+ At the time this draft {{ doctype }} was completed, the {{ working_group }} had the following membership:
248
248
 
249
249
  ++++
250
250
  <membership>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module IEEE
3
- VERSION = "1.0.13".freeze
3
+ VERSION = "1.0.14".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ieee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-19 00:00:00.000000000 Z
11
+ date: 2023-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc