metanorma-un 0.10.10 → 0.10.12

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.
@@ -1797,6 +1797,7 @@
1797
1797
  </xsl:attribute-set>
1798
1798
 
1799
1799
  <xsl:attribute-set name="figure-block-style">
1800
+ <xsl:attribute name="role">SKIP</xsl:attribute>
1800
1801
 
1801
1802
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1802
1803
 
@@ -1807,6 +1808,7 @@
1807
1808
  </xsl:attribute-set>
1808
1809
 
1809
1810
  <xsl:attribute-set name="figure-name-style">
1811
+ <xsl:attribute name="role">Caption</xsl:attribute>
1810
1812
 
1811
1813
  <xsl:attribute name="text-align">center</xsl:attribute>
1812
1814
  <xsl:attribute name="font-size">9pt</xsl:attribute>
@@ -1851,7 +1853,12 @@
1851
1853
  </xsl:attribute-set> <!-- formula-stem-number-style -->
1852
1854
  <!-- End Formula's styles -->
1853
1855
 
1856
+ <xsl:template name="refine_formula-stem-number-style">
1857
+
1858
+ </xsl:template>
1859
+
1854
1860
  <xsl:attribute-set name="image-style">
1861
+ <xsl:attribute name="role">SKIP</xsl:attribute>
1855
1862
  <xsl:attribute name="text-align">center</xsl:attribute>
1856
1863
 
1857
1864
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
@@ -2130,6 +2137,11 @@
2130
2137
 
2131
2138
  </xsl:attribute-set> <!-- bibitem-non-normative-list-style -->
2132
2139
 
2140
+ <xsl:attribute-set name="bibitem-non-normative-list-item-style">
2141
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2142
+
2143
+ </xsl:attribute-set>
2144
+
2133
2145
  <!-- bibitem in bibliography section (references/@normative="false"), list body -->
2134
2146
  <xsl:attribute-set name="bibitem-normative-list-body-style">
2135
2147
 
@@ -2346,13 +2358,13 @@
2346
2358
 
2347
2359
  <xsl:template name="processPrefaceSectionsDefault_Contents">
2348
2360
  <xsl:variable name="nodes_preface_">
2349
- <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
2361
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition' or @type = 'toc')]">
2350
2362
  <node id="{@id}"/>
2351
2363
  </xsl:for-each>
2352
2364
  </xsl:variable>
2353
2365
  <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
2354
2366
 
2355
- <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
2367
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition' or @type = 'toc')]">
2356
2368
  <xsl:sort select="@displayorder" data-type="number"/>
2357
2369
 
2358
2370
  <!-- process Section's title -->
@@ -2386,12 +2398,12 @@
2386
2398
  <xsl:apply-templates select="." mode="contents"/>
2387
2399
  </xsl:for-each>
2388
2400
 
2389
- <xsl:for-each select="/*/*[local-name()='annex']">
2401
+ <!-- <xsl:for-each select="/*/*[local-name()='annex']">
2390
2402
  <xsl:sort select="@displayorder" data-type="number"/>
2391
2403
  <xsl:apply-templates select="." mode="contents"/>
2392
- </xsl:for-each>
2404
+ </xsl:for-each> -->
2393
2405
 
2394
- <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0]">
2406
+ <xsl:for-each select="/*/*[local-name()='annex'] | /*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0]">
2395
2407
  <xsl:sort select="@displayorder" data-type="number"/>
2396
2408
  <xsl:apply-templates select="." mode="contents"/>
2397
2409
  </xsl:for-each>
@@ -2521,14 +2533,14 @@
2521
2533
  <xsl:value-of select="$sep"/><xsl:value-of select="$zero_width_space"/>
2522
2534
  </xsl:when>
2523
2535
  <xsl:otherwise>
2524
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
2536
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
2525
2537
  </xsl:otherwise>
2526
2538
  </xsl:choose>
2527
2539
  </xsl:for-each>
2528
2540
  </xsl:when>
2529
2541
 
2530
2542
  <xsl:otherwise>
2531
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
2543
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
2532
2544
  </xsl:otherwise>
2533
2545
 
2534
2546
  </xsl:choose>
@@ -2538,7 +2550,7 @@
2538
2550
  <!-- Preface boilerplate sections processing -->
2539
2551
  <!-- ================================= -->
2540
2552
  <xsl:template match="*[local-name()='copyright-statement']">
2541
- <fo:block xsl:use-attribute-sets="copyright-statement-style">
2553
+ <fo:block xsl:use-attribute-sets="copyright-statement-style" role="SKIP">
2542
2554
  <xsl:apply-templates/>
2543
2555
  </fo:block>
2544
2556
  </xsl:template> <!-- copyright-statement -->
@@ -2708,7 +2720,7 @@
2708
2720
  </xsl:choose>
2709
2721
  </xsl:variable>
2710
2722
 
2711
- <fo:block-container xsl:use-attribute-sets="table-container-style">
2723
+ <fo:block-container xsl:use-attribute-sets="table-container-style" role="SKIP">
2712
2724
 
2713
2725
  <xsl:call-template name="refine_table-container-style">
2714
2726
  <xsl:with-param name="margin-side" select="$margin-side"/>
@@ -2892,7 +2904,7 @@
2892
2904
  <xsl:param name="continued"/>
2893
2905
  <xsl:if test="normalize-space() != ''">
2894
2906
 
2895
- <fo:block xsl:use-attribute-sets="table-name-style">
2907
+ <fo:block xsl:use-attribute-sets="table-name-style" role="SKIP">
2896
2908
 
2897
2909
  <xsl:call-template name="refine_table-name-style">
2898
2910
  <xsl:with-param name="continued" select="$continued"/>
@@ -3277,8 +3289,8 @@
3277
3289
  <xsl:template name="table-header-title">
3278
3290
  <xsl:param name="cols-count"/>
3279
3291
  <!-- row for title -->
3280
- <fo:table-row>
3281
- <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
3292
+ <fo:table-row role="SKIP">
3293
+ <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black" role="SKIP">
3282
3294
 
3283
3295
  <xsl:call-template name="refine_table-header-title-style"/>
3284
3296
 
@@ -3287,7 +3299,7 @@
3287
3299
  </xsl:apply-templates>
3288
3300
 
3289
3301
  <xsl:if test="not(ancestor::*[local-name()='table']/*[local-name()='name'])"> <!-- to prevent empty fo:table-cell in case of missing table's name -->
3290
- <fo:block/>
3302
+ <fo:block role="SKIP"/>
3291
3303
  </xsl:if>
3292
3304
 
3293
3305
  </fo:table-cell>
@@ -3598,7 +3610,7 @@
3598
3610
 
3599
3611
  <xsl:call-template name="refine_table-header-cell-style"/>
3600
3612
 
3601
- <fo:block>
3613
+ <fo:block role="SKIP">
3602
3614
  <xsl:apply-templates/>
3603
3615
  </fo:block>
3604
3616
  </fo:table-cell>
@@ -3651,7 +3663,7 @@
3651
3663
  <xsl:attribute name="text-align">left</xsl:attribute>
3652
3664
  </xsl:if>
3653
3665
 
3654
- <fo:block>
3666
+ <fo:block role="SKIP">
3655
3667
 
3656
3668
  <xsl:if test="$isGenerateTableIF = 'true'">
3657
3669
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
@@ -3744,7 +3756,7 @@
3744
3756
  </xsl:choose>
3745
3757
  </xsl:variable>
3746
3758
  <xsl:variable name="footnote_inline">
3747
- <fo:inline>
3759
+ <fo:inline role="Reference">
3748
3760
 
3749
3761
  <xsl:variable name="fn_styles">
3750
3762
  <xsl:choose>
@@ -3767,7 +3779,7 @@
3767
3779
 
3768
3780
  <xsl:call-template name="insert_basic_link">
3769
3781
  <xsl:with-param name="element">
3770
- <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3782
+ <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}" role="Lbl">
3771
3783
  <xsl:copy-of select="$current_fn_number_text"/>
3772
3784
  </fo:basic-link>
3773
3785
  </xsl:with-param>
@@ -3780,17 +3792,17 @@
3780
3792
  <xsl:copy-of select="$footnote_inline"/>
3781
3793
  </xsl:when>
3782
3794
  <xsl:when test="$p_fn//fn[@gen_id = $gen_id] or normalize-space(@skip_footnote_body) = 'false'">
3783
- <fo:footnote xsl:use-attribute-sets="fn-style">
3795
+ <fo:footnote xsl:use-attribute-sets="fn-style" role="SKIP">
3784
3796
  <xsl:copy-of select="$footnote_inline"/>
3785
- <fo:footnote-body>
3797
+ <fo:footnote-body role="Note">
3786
3798
 
3787
- <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
3799
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style" role="SKIP">
3788
3800
 
3789
- <fo:block xsl:use-attribute-sets="fn-body-style">
3801
+ <fo:block xsl:use-attribute-sets="fn-body-style" role="SKIP">
3790
3802
 
3791
3803
  <xsl:call-template name="refine_fn-body-style"/>
3792
3804
 
3793
- <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
3805
+ <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style" role="Lbl">
3794
3806
 
3795
3807
  <xsl:call-template name="refine_fn-body-num-style"/>
3796
3808
 
@@ -4052,11 +4064,11 @@
4052
4064
  </xsl:template>
4053
4065
 
4054
4066
  <xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
4055
- <fo:inline><xsl:value-of select="."/></fo:inline>
4067
+ <fo:inline role="SKIP"><xsl:value-of select="."/></fo:inline>
4056
4068
  </xsl:template>
4057
4069
 
4058
4070
  <xsl:template match="*[local-name()='fn']//*[local-name()='p']">
4059
- <fo:inline>
4071
+ <fo:inline role="P">
4060
4072
  <xsl:apply-templates/>
4061
4073
  </fo:inline>
4062
4074
  </xsl:template>
@@ -4071,7 +4083,7 @@
4071
4083
  <xsl:variable name="isAdded" select="@added"/>
4072
4084
  <xsl:variable name="isDeleted" select="@deleted"/>
4073
4085
  <!-- <dl><xsl:copy-of select="."/></dl> -->
4074
- <fo:block-container xsl:use-attribute-sets="dl-block-style">
4086
+ <fo:block-container xsl:use-attribute-sets="dl-block-style" role="SKIP">
4075
4087
 
4076
4088
  <xsl:call-template name="setBlockSpanAll"/>
4077
4089
 
@@ -4106,7 +4118,7 @@
4106
4118
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
4107
4119
  </xsl:call-template>
4108
4120
 
4109
- <fo:block-container margin-left="0mm">
4121
+ <fo:block-container margin-left="0mm" role="SKIP">
4110
4122
 
4111
4123
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
4112
4124
 
@@ -4171,7 +4183,7 @@
4171
4183
 
4172
4184
  <!-- a few components -->
4173
4185
  <xsl:if test="$onlyOneComponent = 'false'">
4174
- <fo:block>
4186
+ <fo:block role="SKIP">
4175
4187
 
4176
4188
  <xsl:call-template name="refine_multicomponent_style"/>
4177
4189
 
@@ -4179,7 +4191,7 @@
4179
4191
  <xsl:attribute name="margin-top">0</xsl:attribute>
4180
4192
  </xsl:if>
4181
4193
 
4182
- <fo:block>
4194
+ <fo:block role="SKIP">
4183
4195
 
4184
4196
  <xsl:call-template name="refine_multicomponent_block_style"/>
4185
4197
 
@@ -4514,7 +4526,7 @@
4514
4526
  -->
4515
4527
  <fo:table-row>
4516
4528
  <fo:table-cell number-columns-spanned="2">
4517
- <fo:block>
4529
+ <fo:block role="SKIP">
4518
4530
  <xsl:call-template name="note"/>
4519
4531
  </fo:block>
4520
4532
  </fo:table-cell>
@@ -4579,7 +4591,7 @@
4579
4591
 
4580
4592
  <xsl:call-template name="refine_dt-cell-style"/>
4581
4593
 
4582
- <fo:block xsl:use-attribute-sets="dt-block-style">
4594
+ <fo:block xsl:use-attribute-sets="dt-block-style" role="SKIP">
4583
4595
  <xsl:copy-of select="@id"/>
4584
4596
 
4585
4597
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -4609,7 +4621,7 @@
4609
4621
 
4610
4622
  <xsl:call-template name="refine_dd-cell-style"/>
4611
4623
 
4612
- <fo:block>
4624
+ <fo:block role="SKIP">
4613
4625
 
4614
4626
  <xsl:if test="$isGenerateTableIF = 'true'">
4615
4627
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
@@ -4774,6 +4786,9 @@
4774
4786
 
4775
4787
  <xsl:template name="refine_strong_style">
4776
4788
 
4789
+ <xsl:if test="ancestor::*['preferred']">
4790
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4791
+ </xsl:if>
4777
4792
  </xsl:template>
4778
4793
 
4779
4794
  <xsl:template match="*[local-name()='padding']">
@@ -4982,11 +4997,41 @@
4982
4997
 
4983
4998
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
4984
4999
  <xsl:variable name="text" select="normalize-space(.)"/>
4985
- <fo:inline font-size="75%">
5000
+ <fo:inline font-size="75%" role="SKIP">
4986
5001
  <xsl:if test="string-length($text) &gt; 0">
4987
- <xsl:call-template name="recursiveSmallCaps">
4988
- <xsl:with-param name="text" select="$text"/>
4989
- </xsl:call-template>
5002
+ <xsl:variable name="smallCapsText">
5003
+ <xsl:call-template name="recursiveSmallCaps">
5004
+ <xsl:with-param name="text" select="$text"/>
5005
+ </xsl:call-template>
5006
+ </xsl:variable>
5007
+ <!-- merge neighboring fo:inline -->
5008
+ <xsl:for-each select="xalan:nodeset($smallCapsText)/node()">
5009
+ <xsl:choose>
5010
+ <xsl:when test="self::fo:inline and preceding-sibling::node()[1][self::fo:inline]"><!-- <xsl:copy-of select="."/> --></xsl:when>
5011
+ <xsl:when test="self::fo:inline and @font-size">
5012
+ <xsl:variable name="curr_pos" select="count(preceding-sibling::node()) + 1"/>
5013
+ <!-- <curr_pos><xsl:value-of select="$curr_pos"/></curr_pos> -->
5014
+ <xsl:variable name="next_text_" select="count(following-sibling::node()[not(local-name() = 'inline')][1]/preceding-sibling::node())"/>
5015
+ <xsl:variable name="next_text">
5016
+ <xsl:choose>
5017
+ <xsl:when test="$next_text_ = 0">99999999</xsl:when>
5018
+ <xsl:otherwise><xsl:value-of select="$next_text_ + 1"/></xsl:otherwise>
5019
+ </xsl:choose>
5020
+ </xsl:variable>
5021
+ <!-- <next_text><xsl:value-of select="$next_text"/></next_text> -->
5022
+ <fo:inline>
5023
+ <xsl:copy-of select="@*"/>
5024
+ <xsl:copy-of select="./node()"/>
5025
+ <xsl:for-each select="following-sibling::node()[position() &lt; $next_text - $curr_pos]"> <!-- [self::fo:inline] -->
5026
+ <xsl:copy-of select="./node()"/>
5027
+ </xsl:for-each>
5028
+ </fo:inline>
5029
+ </xsl:when>
5030
+ <xsl:otherwise>
5031
+ <xsl:copy-of select="."/>
5032
+ </xsl:otherwise>
5033
+ </xsl:choose>
5034
+ </xsl:for-each>
4990
5035
  </xsl:if>
4991
5036
  </fo:inline>
4992
5037
  </xsl:template>
@@ -4998,7 +5043,7 @@
4998
5043
  <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
4999
5044
  <xsl:choose>
5000
5045
  <xsl:when test="$char=$upperCase">
5001
- <fo:inline font-size="{100 div 0.75}%">
5046
+ <fo:inline font-size="{100 div 0.75}%" role="SKIP">
5002
5047
  <xsl:value-of select="$upperCase"/>
5003
5048
  </fo:inline>
5004
5049
  </xsl:when>
@@ -5160,6 +5205,10 @@
5160
5205
 
5161
5206
  <xsl:when test="not(contains($text, $separator))">
5162
5207
  <word>
5208
+ <xsl:if test="ancestor::*[local-name() = 'p'][@from_dl = 'true']">
5209
+ <xsl:text>
5210
+  </xsl:text> <!-- to add distance between dt and dd -->
5211
+ </xsl:if>
5163
5212
  <xsl:call-template name="enclose_text_in_tags">
5164
5213
  <xsl:with-param name="text" select="normalize-space($text)"/>
5165
5214
  <xsl:with-param name="tags" select="$tags"/>
@@ -5168,6 +5217,10 @@
5168
5217
  </xsl:when>
5169
5218
  <xsl:otherwise>
5170
5219
  <word>
5220
+ <xsl:if test="ancestor::*[local-name() = 'p'][@from_dl = 'true']">
5221
+ <xsl:text>
5222
+  </xsl:text> <!-- to add distance between dt and dd -->
5223
+ </xsl:if>
5171
5224
  <xsl:call-template name="enclose_text_in_tags">
5172
5225
  <xsl:with-param name="text" select="normalize-space(substring-before($text, $separator))"/>
5173
5226
  <xsl:with-param name="tags" select="$tags"/>
@@ -5351,6 +5404,10 @@
5351
5404
  <xsl:template name="getSimpleTable">
5352
5405
  <xsl:param name="id"/>
5353
5406
 
5407
+ <!-- <test0>
5408
+ <xsl:copy-of select="."/>
5409
+ </test0> -->
5410
+
5354
5411
  <xsl:variable name="simple-table">
5355
5412
 
5356
5413
  <!-- Step 0. replace <br/> to <p>...</p> -->
@@ -5663,6 +5720,18 @@
5663
5720
  </xsl:copy>
5664
5721
  </xsl:template>
5665
5722
 
5723
+ <xsl:variable name="font_main_root_style">
5724
+ <root-style xsl:use-attribute-sets="root-style">
5725
+ </root-style>
5726
+ </xsl:variable>
5727
+ <xsl:variable name="font_main_root_style_font_family" select="xalan:nodeset($font_main_root_style)/root-style/@font-family"/>
5728
+ <xsl:variable name="font_main">
5729
+ <xsl:choose>
5730
+ <xsl:when test="contains($font_main_root_style_font_family, ',')"><xsl:value-of select="substring-before($font_main_root_style_font_family, ',')"/></xsl:when>
5731
+ <xsl:otherwise><xsl:value-of select="$font_main_root_style_font_family"/></xsl:otherwise>
5732
+ </xsl:choose>
5733
+ </xsl:variable>
5734
+
5666
5735
  <xsl:template match="*[local-name()='th' or local-name()='td']" mode="simple-table-id">
5667
5736
  <xsl:param name="id"/>
5668
5737
  <xsl:copy>
@@ -5701,6 +5770,33 @@
5701
5770
 
5702
5771
  <!-- td_text='<xsl:copy-of select="$td_text"/>' -->
5703
5772
 
5773
+ <xsl:variable name="words_with_width">
5774
+ <!-- calculate width for 'word' which contain text only (without formatting tags inside) -->
5775
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][not(*)]">
5776
+ <xsl:copy>
5777
+ <xsl:copy-of select="@*"/>
5778
+ <xsl:attribute name="width">
5779
+ <xsl:value-of select="java:org.metanorma.fop.Util.getStringWidth(., $font_main)"/> <!-- Example: 'Times New Roman' -->
5780
+ </xsl:attribute>
5781
+ <xsl:copy-of select="node()"/>
5782
+ </xsl:copy>
5783
+ </xsl:for-each>
5784
+ </xsl:variable>
5785
+
5786
+ <xsl:variable name="words_with_width_sorted">
5787
+ <xsl:for-each select="xalan:nodeset($words_with_width)//*[local-name() = 'word']">
5788
+ <xsl:sort select="@width" data-type="number" order="descending"/>
5789
+ <!-- select word maximal width only -->
5790
+ <xsl:if test="position() = 1">
5791
+ <xsl:copy-of select="."/>
5792
+ </xsl:if>
5793
+ </xsl:for-each>
5794
+ <!-- add 'word' with formatting tags inside -->
5795
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][*]">
5796
+ <xsl:copy-of select="."/>
5797
+ </xsl:for-each>
5798
+ </xsl:variable>
5799
+
5704
5800
  <xsl:variable name="words">
5705
5801
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
5706
5802
  <word>
@@ -5708,9 +5804,12 @@
5708
5804
  </word>
5709
5805
  </xsl:for-each>
5710
5806
 
5711
- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
5807
+ <xsl:for-each select="xalan:nodeset($words_with_width_sorted)//*[local-name() = 'word'][normalize-space() != '']">
5712
5808
  <xsl:copy-of select="."/>
5713
5809
  </xsl:for-each>
5810
+ <!-- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
5811
+ <xsl:copy-of select="."/>
5812
+ </xsl:for-each> -->
5714
5813
 
5715
5814
  </xsl:variable>
5716
5815
 
@@ -6171,10 +6270,10 @@
6171
6270
  <xsl:copy>
6172
6271
  <xsl:apply-templates select="@*" mode="mathml"/>
6173
6272
  <xsl:if test="not(@lspace)">
6174
- <xsl:attribute name="lspace">0.4em</xsl:attribute>
6273
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
6175
6274
  </xsl:if>
6176
- <xsl:if test="not(@rspace)">
6177
- <xsl:attribute name="rspace">0.4em</xsl:attribute>
6275
+ <xsl:if test="not(@rspace) and not(following-sibling::*[1][self::mathml:mo and normalize-space(text()) = '|'])">
6276
+ <xsl:attribute name="rspace">0.2em</xsl:attribute>
6178
6277
  </xsl:if>
6179
6278
  <xsl:apply-templates mode="mathml"/>
6180
6279
  </xsl:copy>
@@ -6191,6 +6290,27 @@
6191
6290
  </xsl:copy>
6192
6291
  </xsl:template>
6193
6292
 
6293
+ <!-- increase space before '(' -->
6294
+ <xsl:template match="mathml:mo[normalize-space(text()) = '(']" mode="mathml">
6295
+ <xsl:copy>
6296
+ <xsl:apply-templates select="@*" mode="mathml"/>
6297
+ <xsl:if test="(preceding-sibling::* and not(preceding-sibling::*[1][self::mathml:mo])) or (../preceding-sibling::* and not(../preceding-sibling::*[1][self::mathml:mo]))">
6298
+ <xsl:if test="not(@lspace)">
6299
+ <xsl:attribute name="lspace">0.4em</xsl:attribute>
6300
+ <xsl:choose>
6301
+ <xsl:when test="preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
6302
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
6303
+ </xsl:when>
6304
+ <xsl:when test="../preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
6305
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
6306
+ </xsl:when>
6307
+ </xsl:choose>
6308
+ </xsl:if>
6309
+ </xsl:if>
6310
+ <xsl:apply-templates mode="mathml"/>
6311
+ </xsl:copy>
6312
+ </xsl:template>
6313
+
6194
6314
  <!-- Examples:
6195
6315
  <stem type="AsciiMath">x = 1</stem>
6196
6316
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -6350,7 +6470,7 @@
6350
6470
  <!-- formula -->
6351
6471
  <!-- ====== -->
6352
6472
  <xsl:template match="*[local-name() = 'formula']" name="formula">
6353
- <fo:block-container margin-left="0mm">
6473
+ <fo:block-container margin-left="0mm" role="SKIP">
6354
6474
  <xsl:if test="parent::*[local-name() = 'note']">
6355
6475
  <xsl:attribute name="margin-left">
6356
6476
  <xsl:choose>
@@ -6360,7 +6480,7 @@
6360
6480
  </xsl:attribute>
6361
6481
 
6362
6482
  </xsl:if>
6363
- <fo:block-container margin-left="0mm">
6483
+ <fo:block-container margin-left="0mm" role="SKIP">
6364
6484
  <fo:block id="{@id}">
6365
6485
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
6366
6486
  </fo:block>
@@ -6396,7 +6516,7 @@
6396
6516
  <fo:table-body>
6397
6517
  <fo:table-row>
6398
6518
  <fo:table-cell display-align="center">
6399
- <fo:block xsl:use-attribute-sets="formula-stem-block-style">
6519
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style" role="SKIP">
6400
6520
 
6401
6521
  <xsl:call-template name="refine_formula-stem-block-style"/>
6402
6522
 
@@ -6404,7 +6524,10 @@
6404
6524
  </fo:block>
6405
6525
  </fo:table-cell>
6406
6526
  <fo:table-cell display-align="center">
6407
- <fo:block xsl:use-attribute-sets="formula-stem-number-style">
6527
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style" role="SKIP">
6528
+
6529
+ <xsl:call-template name="refine_formula-stem-number-style"/>
6530
+
6408
6531
  <xsl:apply-templates select="../*[local-name() = 'name']"/>
6409
6532
  </fo:block>
6410
6533
  </fo:table-cell>
@@ -6437,13 +6560,13 @@
6437
6560
 
6438
6561
  <xsl:template match="*[local-name() = 'note']" name="note">
6439
6562
 
6440
- <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
6563
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style" role="SKIP">
6441
6564
 
6442
6565
  <xsl:call-template name="setBlockSpanAll"/>
6443
6566
 
6444
6567
  <xsl:call-template name="refine_note-style"/>
6445
6568
 
6446
- <fo:block-container margin-left="0mm" margin-right="0mm">
6569
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
6447
6570
 
6448
6571
  <fo:block>
6449
6572
 
@@ -6618,12 +6741,13 @@
6618
6741
 
6619
6742
  <xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
6620
6743
  <xsl:if test="normalize-space() != ''">
6621
- <xsl:variable name="level">
6744
+ <!-- <xsl:variable name="level">
6622
6745
  <xsl:call-template name="getLevelTermName"/>
6623
6746
  </xsl:variable>
6624
6747
  <fo:inline role="H{$level}">
6625
- <xsl:apply-templates/>
6626
- </fo:inline>
6748
+ <xsl:apply-templates />
6749
+ </fo:inline> -->
6750
+ <xsl:apply-templates/>
6627
6751
  </xsl:if>
6628
6752
  </xsl:template>
6629
6753
  <!-- ====== -->
@@ -6647,7 +6771,7 @@
6647
6771
  <!-- Example: Dimensions in millimeters -->
6648
6772
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
6649
6773
 
6650
- <fo:block xsl:use-attribute-sets="figure-style">
6774
+ <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
6651
6775
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
6652
6776
  </fo:block>
6653
6777
  <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
@@ -7781,7 +7905,7 @@
7781
7905
  </xsl:when>
7782
7906
 
7783
7907
  <xsl:otherwise>
7784
- <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
7908
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style" role="SKIP">
7785
7909
 
7786
7910
  <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
7787
7911
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
@@ -7802,7 +7926,7 @@
7802
7926
  </xsl:attribute>
7803
7927
 
7804
7928
  </xsl:if>
7805
- <fo:block-container margin-left="0mm">
7929
+ <fo:block-container margin-left="0mm" role="SKIP">
7806
7930
 
7807
7931
  <fo:block xsl:use-attribute-sets="sourcecode-style">
7808
7932
 
@@ -7926,7 +8050,7 @@
7926
8050
  <!-- second td with sourcecode -->
7927
8051
  <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
7928
8052
  <fo:table-cell>
7929
- <fo:block>
8053
+ <fo:block role="SKIP">
7930
8054
  <xsl:apply-templates/>
7931
8055
  </fo:block>
7932
8056
  </fo:table-cell>
@@ -8348,11 +8472,11 @@
8348
8472
  <!-- requirement, recommendation, permission table -->
8349
8473
  <!-- ========== -->
8350
8474
  <xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
8351
- <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
8475
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt" role="SKIP">
8352
8476
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
8353
8477
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
8354
8478
  </xsl:if>
8355
- <fo:block-container margin-left="0mm" margin-right="0mm">
8479
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
8356
8480
  <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
8357
8481
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
8358
8482
  <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
@@ -8413,7 +8537,7 @@
8413
8537
 
8414
8538
  <xsl:call-template name="setTableCellAttributes"/>
8415
8539
 
8416
- <fo:block>
8540
+ <fo:block role="SKIP">
8417
8541
  <xsl:apply-templates/>
8418
8542
  </fo:block>
8419
8543
  </fo:table-cell>
@@ -8435,7 +8559,7 @@
8435
8559
 
8436
8560
  <xsl:call-template name="setTableCellAttributes"/>
8437
8561
 
8438
- <fo:block>
8562
+ <fo:block role="SKIP">
8439
8563
  <xsl:apply-templates/>
8440
8564
  </fo:block>
8441
8565
  </fo:table-cell>
@@ -8514,7 +8638,7 @@
8514
8638
  -->
8515
8639
  <xsl:template match="*[local-name() = 'example']">
8516
8640
 
8517
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
8641
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
8518
8642
 
8519
8643
  <xsl:call-template name="setBlockSpanAll"/>
8520
8644
 
@@ -8525,7 +8649,7 @@
8525
8649
  block
8526
8650
  </xsl:variable>
8527
8651
 
8528
- <fo:block-container margin-left="0mm">
8652
+ <fo:block-container margin-left="0mm" role="SKIP">
8529
8653
 
8530
8654
  <xsl:choose>
8531
8655
 
@@ -8538,8 +8662,8 @@
8538
8662
  </xsl:apply-templates>
8539
8663
  </fo:block>
8540
8664
 
8541
- <fo:block-container xsl:use-attribute-sets="example-body-style">
8542
- <fo:block-container margin-left="0mm" margin-right="0mm">
8665
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
8666
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
8543
8667
  <xsl:apply-templates select="node()[not(local-name() = 'name')]">
8544
8668
  <xsl:with-param name="fo_element" select="$fo_element"/>
8545
8669
  </xsl:apply-templates>
@@ -8592,8 +8716,8 @@
8592
8716
 
8593
8717
  <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
8594
8718
  <!-- display further elements in blocks -->
8595
- <fo:block-container xsl:use-attribute-sets="example-body-style">
8596
- <fo:block-container margin-left="0mm" margin-right="0mm">
8719
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
8720
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
8597
8721
  <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
8598
8722
  <xsl:with-param name="fo_element" select="'block'"/>
8599
8723
  </xsl:apply-templates>
@@ -8646,7 +8770,7 @@
8646
8770
  </xsl:variable>
8647
8771
  <xsl:choose>
8648
8772
  <xsl:when test="starts-with(normalize-space($element), 'block')">
8649
- <fo:block-container>
8773
+ <fo:block-container role="SKIP">
8650
8774
  <xsl:if test="ancestor::*[local-name() = 'li'] and contains(normalize-space($fo_element), 'block')">
8651
8775
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
8652
8776
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
@@ -8787,7 +8911,7 @@
8787
8911
  <!-- author -->
8788
8912
  <!-- ====== -->
8789
8913
  <xsl:template match="*[local-name() = 'quote']">
8790
- <fo:block-container margin-left="0mm">
8914
+ <fo:block-container margin-left="0mm" role="SKIP">
8791
8915
 
8792
8916
  <xsl:call-template name="setBlockSpanAll"/>
8793
8917
 
@@ -8797,12 +8921,12 @@
8797
8921
  </xsl:if>
8798
8922
  </xsl:if>
8799
8923
 
8800
- <fo:block-container margin-left="0mm">
8801
- <fo:block-container xsl:use-attribute-sets="quote-style">
8924
+ <fo:block-container margin-left="0mm" role="SKIP">
8925
+ <fo:block-container xsl:use-attribute-sets="quote-style" role="SKIP">
8802
8926
 
8803
8927
  <xsl:call-template name="refine_quote-style"/>
8804
8928
 
8805
- <fo:block-container margin-left="0mm" margin-right="0mm">
8929
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
8806
8930
  <fo:block role="BlockQuote">
8807
8931
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
8808
8932
  </fo:block>
@@ -8958,10 +9082,10 @@
8958
9082
 
8959
9083
  <xsl:choose>
8960
9084
  <xsl:when test="$lang = 'zh'">
8961
- <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
9085
+ <fo:inline role="SKIP"><xsl:value-of select="$tab_zh"/></fo:inline>
8962
9086
  </xsl:when>
8963
9087
  <xsl:when test="../../@inline-header = 'true'">
8964
- <fo:inline font-size="90%">
9088
+ <fo:inline font-size="90%" role="SKIP">
8965
9089
  <xsl:call-template name="insertNonBreakSpaces">
8966
9090
  <xsl:with-param name="count" select="$padding-right"/>
8967
9091
  </xsl:call-template>
@@ -8969,7 +9093,7 @@
8969
9093
  </xsl:when>
8970
9094
  <xsl:otherwise>
8971
9095
  <xsl:variable name="direction"><xsl:if test="$lang = 'ar'"><xsl:value-of select="$RLM"/></xsl:if></xsl:variable>
8972
- <fo:inline padding-right="{$padding-right}mm"><xsl:value-of select="$direction"/>​</fo:inline>
9096
+ <fo:inline padding-right="{$padding-right}mm" role="SKIP"><xsl:value-of select="$direction"/>​</fo:inline>
8973
9097
  </xsl:otherwise>
8974
9098
  </xsl:choose>
8975
9099
 
@@ -8999,12 +9123,12 @@
8999
9123
  <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
9000
9124
 
9001
9125
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
9002
- <fo:block xsl:use-attribute-sets="term-name-style">
9126
+ <fo:block xsl:use-attribute-sets="term-name-style" role="SKIP">
9003
9127
  <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
9004
9128
  </fo:block>
9005
9129
  </xsl:if>
9006
9130
 
9007
- <fo:block xsl:use-attribute-sets="preferred-term-style">
9131
+ <fo:block xsl:use-attribute-sets="preferred-term-style" role="SKIP">
9008
9132
  <xsl:call-template name="setStyle_preferred"/>
9009
9133
  <xsl:apply-templates/>
9010
9134
  </fo:block>
@@ -9045,7 +9169,7 @@
9045
9169
  <!-- definition -->
9046
9170
  <!-- ========== -->
9047
9171
  <xsl:template match="*[local-name() = 'definition']">
9048
- <fo:block xsl:use-attribute-sets="definition-style">
9172
+ <fo:block xsl:use-attribute-sets="definition-style" role="SKIP">
9049
9173
  <xsl:apply-templates/>
9050
9174
  </fo:block>
9051
9175
  </xsl:template>
@@ -9095,6 +9219,10 @@
9095
9219
 
9096
9220
  <xsl:template match="*[local-name() = 'clause']">
9097
9221
  <fo:block>
9222
+ <xsl:if test="parent::*[local-name() = 'copyright-statement']">
9223
+ <xsl:attribute name="role">SKIP</xsl:attribute>
9224
+ </xsl:if>
9225
+
9098
9226
  <xsl:call-template name="setId"/>
9099
9227
 
9100
9228
  <xsl:call-template name="setBlockSpanAll"/>
@@ -9213,7 +9341,48 @@
9213
9341
  </xsl:choose>
9214
9342
  </xsl:when>
9215
9343
  <xsl:when test="local-name(..) = 'ol' and @label"> <!-- for ordered lists 'ol', and if there is @label, for instance label="1.1.2" -->
9216
- <xsl:value-of select="@label"/>
9344
+
9345
+ <xsl:variable name="label">
9346
+
9347
+ <xsl:variable name="type" select="../@type"/>
9348
+
9349
+ <xsl:variable name="style_prefix_">
9350
+ <xsl:if test="$type = 'roman'">
9351
+ <!-- Example: (i) -->
9352
+ </xsl:if>
9353
+ </xsl:variable>
9354
+ <xsl:variable name="style_prefix" select="normalize-space($style_prefix_)"/>
9355
+
9356
+ <xsl:variable name="style_suffix_">
9357
+ <xsl:choose>
9358
+ <xsl:when test="$type = 'arabic'">
9359
+ )
9360
+ </xsl:when>
9361
+ <xsl:when test="$type = 'alphabet' or $type = 'alphabetic'">
9362
+ )
9363
+ </xsl:when>
9364
+ <xsl:when test="$type = 'alphabet_upper' or $type = 'alphabetic_upper'">
9365
+ .
9366
+ </xsl:when>
9367
+ <xsl:when test="$type = 'roman'">
9368
+ )
9369
+ </xsl:when>
9370
+ <xsl:when test="$type = 'roman_upper'">.</xsl:when> <!-- Example: I. -->
9371
+ </xsl:choose>
9372
+ </xsl:variable>
9373
+ <xsl:variable name="style_suffix" select="normalize-space($style_suffix_)"/>
9374
+
9375
+ <xsl:if test="$style_prefix != '' and not(starts-with(@label, $style_prefix))">
9376
+ <xsl:value-of select="$style_prefix"/>
9377
+ </xsl:if>
9378
+ <xsl:value-of select="@label"/>
9379
+ <xsl:if test="not(java:endsWith(java:java.lang.String.new(@label),$style_suffix))">
9380
+ <xsl:value-of select="$style_suffix"/>
9381
+ </xsl:if>
9382
+ </xsl:variable>
9383
+
9384
+ <xsl:value-of select="normalize-space($label)"/>
9385
+
9217
9386
  </xsl:when>
9218
9387
  <xsl:otherwise> <!-- for ordered lists 'ol' -->
9219
9388
 
@@ -9295,7 +9464,7 @@
9295
9464
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
9296
9465
  <xsl:choose>
9297
9466
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
9298
- <fo:block-container>
9467
+ <fo:block-container role="SKIP">
9299
9468
  <xsl:attribute name="margin-left">
9300
9469
  <xsl:choose>
9301
9470
  <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
@@ -9305,7 +9474,7 @@
9305
9474
 
9306
9475
  <xsl:call-template name="refine_list_container_style"/>
9307
9476
 
9308
- <fo:block-container margin-left="0mm">
9477
+ <fo:block-container margin-left="0mm" role="SKIP">
9309
9478
  <fo:block>
9310
9479
  <xsl:apply-templates select="." mode="list"/>
9311
9480
  </fo:block>
@@ -9314,7 +9483,7 @@
9314
9483
  </xsl:when>
9315
9484
  <xsl:otherwise>
9316
9485
 
9317
- <fo:block>
9486
+ <fo:block role="SKIP">
9318
9487
  <xsl:apply-templates select="." mode="list"/>
9319
9488
  </fo:block>
9320
9489
 
@@ -9410,7 +9579,7 @@
9410
9579
  <xsl:call-template name="refine_list-item-style"/>
9411
9580
 
9412
9581
  <fo:list-item-label end-indent="label-end()">
9413
- <fo:block xsl:use-attribute-sets="list-item-label-style">
9582
+ <fo:block xsl:use-attribute-sets="list-item-label-style" role="SKIP">
9414
9583
 
9415
9584
  <xsl:call-template name="refine_list-item-label-style"/>
9416
9585
 
@@ -9424,7 +9593,7 @@
9424
9593
  </fo:block>
9425
9594
  </fo:list-item-label>
9426
9595
  <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
9427
- <fo:block>
9596
+ <fo:block role="SKIP">
9428
9597
 
9429
9598
  <xsl:call-template name="refine_list-item-body-style"/>
9430
9599
 
@@ -9703,10 +9872,10 @@
9703
9872
  <fo:table-body>
9704
9873
  <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
9705
9874
 
9706
- <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
9707
- <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
9708
- <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
9709
- <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
9875
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Date</fo:block></fo:table-cell>
9876
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Type</fo:block></fo:table-cell>
9877
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Change</fo:block></fo:table-cell>
9878
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Pages</fo:block></fo:table-cell>
9710
9879
  </fo:table-row>
9711
9880
  <xsl:apply-templates/>
9712
9881
  </fo:table-body>
@@ -9721,7 +9890,7 @@
9721
9890
 
9722
9891
  <xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
9723
9892
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
9724
- <fo:block><xsl:apply-templates/></fo:block>
9893
+ <fo:block role="SKIP"><xsl:apply-templates/></fo:block>
9725
9894
  </fo:table-cell>
9726
9895
  </xsl:template>
9727
9896
  <!-- ============ -->
@@ -9736,7 +9905,10 @@
9736
9905
  <!-- Reference sections (Normative References and Bibliography) -->
9737
9906
  <!-- ========================================================== -->
9738
9907
  <xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/>
9739
- <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/>
9908
+ <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3">
9909
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/>
9910
+
9911
+ </xsl:template>
9740
9912
  <!-- don't display bibitem with @id starts with '_hidden', that was introduced for references integrity -->
9741
9913
  <xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/>
9742
9914
 
@@ -9783,6 +9955,7 @@
9783
9955
 
9784
9956
  <!-- Bibliography (non-normative references) -->
9785
9957
  <xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" name="bibitem_non_normative" priority="2">
9958
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/> <!-- current bibiitem is non-first -->
9786
9959
 
9787
9960
  <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-style">
9788
9961
  <xsl:call-template name="processBibitem"/>
@@ -9790,6 +9963,35 @@
9790
9963
 
9791
9964
  </xsl:template> <!-- references[not(@normative='true')]/bibitem -->
9792
9965
 
9966
+ <xsl:template name="insertListItem_Bibitem">
9967
+ <xsl:choose>
9968
+ <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
9969
+ <xsl:otherwise>
9970
+ <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
9971
+ <fo:list-item-label end-indent="label-end()">
9972
+ <fo:block role="SKIP">
9973
+ <fo:inline role="SKIP">
9974
+ <xsl:apply-templates select="*[local-name() = 'biblio-tag']">
9975
+ <xsl:with-param name="biblio_tag_part">first</xsl:with-param>
9976
+ </xsl:apply-templates>
9977
+ </fo:inline>
9978
+ </fo:block>
9979
+ </fo:list-item-label>
9980
+ <fo:list-item-body start-indent="body-start()">
9981
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style" role="SKIP">
9982
+ <xsl:call-template name="processBibitem">
9983
+ <xsl:with-param name="biblio_tag_part">last</xsl:with-param>
9984
+ </xsl:call-template>
9985
+ </fo:block>
9986
+ </fo:list-item-body>
9987
+ </fo:list-item>
9988
+ </xsl:otherwise>
9989
+ </xsl:choose>
9990
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'bibitem']">
9991
+ <xsl:with-param name="skip">false</xsl:with-param>
9992
+ </xsl:apply-templates>
9993
+ </xsl:template>
9994
+
9793
9995
  <xsl:template name="processBibitem">
9794
9996
  <xsl:param name="biblio_tag_part">both</xsl:param>
9795
9997
 
@@ -10003,7 +10205,7 @@
10003
10205
  <xsl:for-each select="*[local-name() = 'tab']">
10004
10206
  <xsl:variable name="current_id" select="generate-id()"/>
10005
10207
  <fo:table-cell>
10006
- <fo:block line-height-shift-adjustment="disregard-shifts">
10208
+ <fo:block line-height-shift-adjustment="disregard-shifts" role="SKIP">
10007
10209
  <xsl:call-template name="insert_basic_link">
10008
10210
  <xsl:with-param name="element">
10009
10211
  <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
@@ -10021,7 +10223,7 @@
10021
10223
  </xsl:for-each>
10022
10224
  <!-- last column - for page numbers -->
10023
10225
  <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
10024
- <fo:block>
10226
+ <fo:block role="SKIP">
10025
10227
  <xsl:call-template name="insert_basic_link">
10026
10228
  <xsl:with-param name="element">
10027
10229
  <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
@@ -10131,9 +10333,9 @@
10131
10333
  <xsl:call-template name="displayAdmonitionName"/>
10132
10334
  </fo:block>
10133
10335
 
10134
- <fo:block-container xsl:use-attribute-sets="admonition-container-style">
10336
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style" role="SKIP">
10135
10337
 
10136
- <fo:block-container margin-left="0mm" margin-right="0mm">
10338
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
10137
10339
  <fo:block>
10138
10340
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
10139
10341
  </fo:block>