metanorma-un 0.8.3 → 0.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/isodoc/un/html/wordstyle.css +20 -0
- data/lib/isodoc/un/html/wordstyle.scss +19 -0
- data/lib/isodoc/un/un.plenary-attachment.xsl +592 -152
- data/lib/isodoc/un/un.plenary.xsl +592 -152
- data/lib/isodoc/un/un.recommendation.xsl +639 -155
- data/lib/isodoc/un/xref.rb +39 -25
- data/lib/metanorma/un/isodoc.rng +73 -3
- data/lib/metanorma/un/version.rb +1 -1
- metadata +3 -3
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
<xsl:variable name="debug">false</xsl:variable>
|
12
12
|
|
13
|
-
<xsl:variable name="
|
13
|
+
<xsl:variable name="contents_">
|
14
14
|
<contents>
|
15
15
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
|
16
16
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
|
@@ -20,9 +20,11 @@
|
|
20
20
|
<xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/>
|
21
21
|
<xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/>
|
22
22
|
<xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/>
|
23
|
+
|
24
|
+
<xsl:call-template name="processTablesFigures_Contents"/>
|
23
25
|
</contents>
|
24
26
|
</xsl:variable>
|
25
|
-
|
27
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
26
28
|
|
27
29
|
<xsl:variable name="title" select="/un:un-standard/un:bibdata/un:title[@language = 'en' and @type = 'main']"/>
|
28
30
|
|
@@ -276,7 +278,7 @@
|
|
276
278
|
<xsl:if test="$debug = 'true'">
|
277
279
|
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
|
278
280
|
DEBUG
|
279
|
-
contents=<xsl:copy-of select="
|
281
|
+
contents=<xsl:copy-of select="$contents"/>
|
280
282
|
<xsl:text disable-output-escaping="yes">--></xsl:text>
|
281
283
|
</xsl:if>
|
282
284
|
|
@@ -851,6 +853,10 @@
|
|
851
853
|
<xsl:text>Édition </xsl:text>
|
852
854
|
</title-edition>
|
853
855
|
|
856
|
+
<title-edition lang="ru">
|
857
|
+
<xsl:text>Издание </xsl:text>
|
858
|
+
</title-edition>
|
859
|
+
|
854
860
|
<!-- These titles of Table of contents renders different than determined in localized-strings -->
|
855
861
|
<title-toc lang="en">
|
856
862
|
|
@@ -865,7 +871,7 @@
|
|
865
871
|
<xsl:text>Contents</xsl:text>
|
866
872
|
|
867
873
|
</title-toc>
|
868
|
-
|
874
|
+
|
869
875
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
870
876
|
|
871
877
|
<title-part lang="en">
|
@@ -877,7 +883,11 @@
|
|
877
883
|
|
878
884
|
|
879
885
|
|
880
|
-
</title-part>
|
886
|
+
</title-part>
|
887
|
+
<title-part lang="ru">
|
888
|
+
|
889
|
+
|
890
|
+
</title-part>
|
881
891
|
<title-part lang="zh">第 # 部分:</title-part>
|
882
892
|
|
883
893
|
<title-subpart lang="en">Sub-part #</title-subpart>
|
@@ -893,10 +903,35 @@
|
|
893
903
|
|
894
904
|
<title-summary lang="en">Summary</title-summary>
|
895
905
|
|
906
|
+
<title-continued lang="ru">(продолжение)</title-continued>
|
896
907
|
<title-continued lang="en">(continued)</title-continued>
|
897
908
|
<title-continued lang="fr">(continué)</title-continued>
|
898
909
|
|
899
|
-
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="
|
910
|
+
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
|
911
|
+
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
912
|
+
<xsl:value-of select="$toc_table_title"/>
|
913
|
+
<xsl:if test="normalize-space($toc_table_title) = ''">
|
914
|
+
<xsl:call-template name="getTitle">
|
915
|
+
<xsl:with-param name="name" select="'title-list-tables'"/>
|
916
|
+
</xsl:call-template>
|
917
|
+
</xsl:if>
|
918
|
+
</xsl:variable><xsl:variable name="title-list-figures">
|
919
|
+
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
920
|
+
<xsl:value-of select="$toc_figure_title"/>
|
921
|
+
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
922
|
+
<xsl:call-template name="getTitle">
|
923
|
+
<xsl:with-param name="name" select="'title-list-figures'"/>
|
924
|
+
</xsl:call-template>
|
925
|
+
</xsl:if>
|
926
|
+
</xsl:variable><xsl:variable name="title-list-recommendations">
|
927
|
+
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
928
|
+
<xsl:value-of select="$toc_requirement_title"/>
|
929
|
+
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
930
|
+
<xsl:call-template name="getTitle">
|
931
|
+
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
932
|
+
</xsl:call-template>
|
933
|
+
</xsl:if>
|
934
|
+
</xsl:variable><xsl:variable name="bibdata">
|
900
935
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
901
936
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
902
937
|
</xsl:variable><xsl:variable name="linebreak">
</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space"></xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
|
@@ -1619,13 +1654,19 @@
|
|
1619
1654
|
</xsl:attribute-set><xsl:variable name="color-added-text">
|
1620
1655
|
<xsl:text>rgb(0, 255, 0)</xsl:text>
|
1621
1656
|
</xsl:variable><xsl:attribute-set name="add-style">
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1657
|
+
|
1658
|
+
<xsl:attribute name="color">red</xsl:attribute>
|
1659
|
+
<xsl:attribute name="text-decoration">underline</xsl:attribute>
|
1660
|
+
<!-- <xsl:attribute name="color">black</xsl:attribute>
|
1661
|
+
<xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
|
1662
|
+
<xsl:attribute name="padding-top">1mm</xsl:attribute>
|
1663
|
+
<xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
|
1664
|
+
|
1665
|
+
</xsl:attribute-set><xsl:variable name="add-style">
|
1666
|
+
<add-style xsl:use-attribute-sets="add-style"/>
|
1667
|
+
</xsl:variable><xsl:template name="append_add-style">
|
1668
|
+
<xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
|
1669
|
+
</xsl:template><xsl:variable name="color-deleted-text">
|
1629
1670
|
<xsl:text>red</xsl:text>
|
1630
1671
|
</xsl:variable><xsl:attribute-set name="del-style">
|
1631
1672
|
<xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
|
@@ -2054,14 +2095,42 @@
|
|
2054
2095
|
|
2055
2096
|
|
2056
2097
|
</xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
|
2098
|
+
<xsl:variable name="nodes_preface_">
|
2099
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2100
|
+
<node id="{@id}"/>
|
2101
|
+
</xsl:for-each>
|
2102
|
+
</xsl:variable>
|
2103
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
2104
|
+
|
2057
2105
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2058
2106
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2107
|
+
|
2108
|
+
<!-- process Section's title -->
|
2109
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2110
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2111
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2112
|
+
</xsl:if>
|
2113
|
+
|
2059
2114
|
<xsl:apply-templates select="." mode="contents"/>
|
2060
2115
|
</xsl:for-each>
|
2061
2116
|
</xsl:template><xsl:template name="processMainSectionsDefault_Contents">
|
2062
2117
|
|
2118
|
+
<xsl:variable name="nodes_sections_">
|
2119
|
+
<xsl:for-each select="/*/*[local-name()='sections']/*">
|
2120
|
+
<node id="{@id}"/>
|
2121
|
+
</xsl:for-each>
|
2122
|
+
</xsl:variable>
|
2123
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
2124
|
+
|
2063
2125
|
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
|
2064
2126
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2127
|
+
|
2128
|
+
<!-- process Section's title -->
|
2129
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2130
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2131
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2132
|
+
</xsl:if>
|
2133
|
+
|
2065
2134
|
<xsl:apply-templates select="." mode="contents"/>
|
2066
2135
|
</xsl:for-each>
|
2067
2136
|
|
@@ -2074,6 +2143,30 @@
|
|
2074
2143
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2075
2144
|
<xsl:apply-templates select="." mode="contents"/>
|
2076
2145
|
</xsl:for-each>
|
2146
|
+
</xsl:template><xsl:template name="processTablesFigures_Contents">
|
2147
|
+
<xsl:param name="always"/>
|
2148
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2149
|
+
<xsl:call-template name="processTables_Contents"/>
|
2150
|
+
</xsl:if>
|
2151
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2152
|
+
<xsl:call-template name="processFigures_Contents"/>
|
2153
|
+
</xsl:if>
|
2154
|
+
</xsl:template><xsl:template name="processTables_Contents">
|
2155
|
+
<tables>
|
2156
|
+
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
|
2157
|
+
<table id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2158
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2159
|
+
</table>
|
2160
|
+
</xsl:for-each>
|
2161
|
+
</tables>
|
2162
|
+
</xsl:template><xsl:template name="processFigures_Contents">
|
2163
|
+
<figures>
|
2164
|
+
<xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and not(@unnumbered = 'true') and normalize-space(@id) != ''] | //*[@id and starts-with(*[local-name() = 'name'], 'Figure ') and normalize-space(@id) != '']">
|
2165
|
+
<figure id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2166
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2167
|
+
</figure>
|
2168
|
+
</xsl:for-each>
|
2169
|
+
</figures>
|
2077
2170
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2078
2171
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2079
2172
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2200,7 +2293,7 @@
|
|
2200
2293
|
</xsl:call-template>
|
2201
2294
|
</xsl:if>
|
2202
2295
|
</xsl:variable>
|
2203
|
-
<!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2296
|
+
<!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2204
2297
|
|
2205
2298
|
|
2206
2299
|
<xsl:variable name="margin-side">
|
@@ -2468,7 +2561,7 @@
|
|
2468
2561
|
<!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
|
2469
2562
|
<!-- 2009 thinspace -->
|
2470
2563
|
<!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
|
2471
|
-
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '
|
2564
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2472
2565
|
</xsl:call-template>
|
2473
2566
|
</xsl:variable>
|
2474
2567
|
<xsl:variable name="max_length">
|
@@ -2862,37 +2955,7 @@
|
|
2862
2955
|
|
2863
2956
|
<!-- list of footnotes to calculate actual footnotes number -->
|
2864
2957
|
<xsl:variable name="p_fn_">
|
2865
|
-
<xsl:
|
2866
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
2867
|
-
<fn gen_id="{generate-id(.)}">
|
2868
|
-
<xsl:copy-of select="@*"/>
|
2869
|
-
<xsl:copy-of select="node()"/>
|
2870
|
-
</fn>
|
2871
|
-
</xsl:when>
|
2872
|
-
<xsl:otherwise>
|
2873
|
-
<!-- itetation for:
|
2874
|
-
footnotes in bibdata/title
|
2875
|
-
footnotes in bibliography
|
2876
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
2877
|
-
-->
|
2878
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
2879
|
-
<fn gen_id="{generate-id(.)}">
|
2880
|
-
<xsl:copy-of select="@*"/>
|
2881
|
-
<xsl:copy-of select="node()"/>
|
2882
|
-
</fn>
|
2883
|
-
</xsl:for-each>
|
2884
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
|
2885
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
2886
|
-
<xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
|
2887
|
-
<!-- copy unique fn -->
|
2888
|
-
<fn gen_id="{generate-id(.)}">
|
2889
|
-
<xsl:copy-of select="@*"/>
|
2890
|
-
<xsl:copy-of select="node()"/>
|
2891
|
-
</fn>
|
2892
|
-
</xsl:for-each>
|
2893
|
-
</xsl:for-each>
|
2894
|
-
</xsl:otherwise>
|
2895
|
-
</xsl:choose>
|
2958
|
+
<xsl:call-template name="get_fn_list"/>
|
2896
2959
|
</xsl:variable>
|
2897
2960
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
2898
2961
|
|
@@ -2953,6 +3016,38 @@
|
|
2953
3016
|
<xsl:copy-of select="$footnote_inline"/>
|
2954
3017
|
</xsl:otherwise>
|
2955
3018
|
</xsl:choose>
|
3019
|
+
</xsl:template><xsl:template name="get_fn_list">
|
3020
|
+
<xsl:choose>
|
3021
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3022
|
+
<fn gen_id="{generate-id(.)}">
|
3023
|
+
<xsl:copy-of select="@*"/>
|
3024
|
+
<xsl:copy-of select="node()"/>
|
3025
|
+
</fn>
|
3026
|
+
</xsl:when>
|
3027
|
+
<xsl:otherwise>
|
3028
|
+
<!-- itetation for:
|
3029
|
+
footnotes in bibdata/title
|
3030
|
+
footnotes in bibliography
|
3031
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3032
|
+
-->
|
3033
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3034
|
+
<fn gen_id="{generate-id(.)}">
|
3035
|
+
<xsl:copy-of select="@*"/>
|
3036
|
+
<xsl:copy-of select="node()"/>
|
3037
|
+
</fn>
|
3038
|
+
</xsl:for-each>
|
3039
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
|
3040
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3041
|
+
<xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
|
3042
|
+
<!-- copy unique fn -->
|
3043
|
+
<fn gen_id="{generate-id(.)}">
|
3044
|
+
<xsl:copy-of select="@*"/>
|
3045
|
+
<xsl:copy-of select="node()"/>
|
3046
|
+
</fn>
|
3047
|
+
</xsl:for-each>
|
3048
|
+
</xsl:for-each>
|
3049
|
+
</xsl:otherwise>
|
3050
|
+
</xsl:choose>
|
2956
3051
|
</xsl:template><xsl:template name="table_fn_display">
|
2957
3052
|
<xsl:variable name="references">
|
2958
3053
|
|
@@ -3124,7 +3219,7 @@
|
|
3124
3219
|
</fo:inline>
|
3125
3220
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3126
3221
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3127
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
3222
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3128
3223
|
<fo:inline>
|
3129
3224
|
<xsl:apply-templates/>
|
3130
3225
|
</fo:inline>
|
@@ -4100,6 +4195,9 @@
|
|
4100
4195
|
</fo:inline>
|
4101
4196
|
</xsl:template><xsl:template match="*[local-name() = 'xref']">
|
4102
4197
|
<fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
|
4198
|
+
<xsl:if test="parent::*[local-name() = 'add']">
|
4199
|
+
<xsl:call-template name="append_add-style"/>
|
4200
|
+
</xsl:if>
|
4103
4201
|
<xsl:apply-templates/>
|
4104
4202
|
</fo:basic-link>
|
4105
4203
|
</xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
|
@@ -4211,6 +4309,13 @@
|
|
4211
4309
|
|
4212
4310
|
|
4213
4311
|
|
4312
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4313
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4314
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4315
|
+
<xsl:call-template name="append_add-style"/>
|
4316
|
+
</xsl:if>
|
4317
|
+
|
4318
|
+
|
4214
4319
|
<!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
|
4215
4320
|
<xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
4216
4321
|
<xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
@@ -4249,6 +4354,12 @@
|
|
4249
4354
|
|
4250
4355
|
|
4251
4356
|
|
4357
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4358
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4359
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4360
|
+
<xsl:call-template name="append_add-style"/>
|
4361
|
+
</xsl:if>
|
4362
|
+
|
4252
4363
|
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
4253
4364
|
|
4254
4365
|
</fo:inline>
|
@@ -4302,6 +4413,7 @@
|
|
4302
4413
|
</fo:block>
|
4303
4414
|
</xsl:template><xsl:template match="*[local-name() = 'term']">
|
4304
4415
|
<fo:block id="{@id}" xsl:use-attribute-sets="term-style">
|
4416
|
+
|
4305
4417
|
|
4306
4418
|
|
4307
4419
|
|
@@ -4738,7 +4850,11 @@
|
|
4738
4850
|
<xsl:value-of select="."/>
|
4739
4851
|
</xsl:template><xsl:template match="node()" mode="contents">
|
4740
4852
|
<xsl:apply-templates mode="contents"/>
|
4741
|
-
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = '
|
4853
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface' or local-name() = 'sections']/*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" mode="contents_no_displayorder">
|
4854
|
+
<xsl:call-template name="contents_section-title"/>
|
4855
|
+
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
|
4856
|
+
<xsl:call-template name="contents_section-title"/>
|
4857
|
+
</xsl:template><xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
|
4742
4858
|
<xsl:variable name="level">
|
4743
4859
|
<xsl:call-template name="getLevel">
|
4744
4860
|
<xsl:with-param name="depth" select="@depth"/>
|
@@ -4807,13 +4923,14 @@
|
|
4807
4923
|
<xsl:apply-templates mode="bookmarks"/>
|
4808
4924
|
</xsl:template><xsl:template name="addBookmarks">
|
4809
4925
|
<xsl:param name="contents"/>
|
4810
|
-
<xsl:
|
4926
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
4927
|
+
<xsl:if test="$contents_nodes//item">
|
4811
4928
|
<fo:bookmark-tree>
|
4812
4929
|
<xsl:choose>
|
4813
|
-
<xsl:when test="
|
4930
|
+
<xsl:when test="$contents_nodes/doc">
|
4814
4931
|
<xsl:choose>
|
4815
|
-
<xsl:when test="count(
|
4816
|
-
<xsl:for-each select="
|
4932
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
4933
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4817
4934
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4818
4935
|
<xsl:if test="@bundle = 'true'">
|
4819
4936
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -4864,7 +4981,7 @@
|
|
4864
4981
|
</xsl:for-each>
|
4865
4982
|
</xsl:when>
|
4866
4983
|
<xsl:otherwise>
|
4867
|
-
<xsl:for-each select="
|
4984
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4868
4985
|
|
4869
4986
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4870
4987
|
|
@@ -4882,25 +4999,36 @@
|
|
4882
4999
|
</xsl:choose>
|
4883
5000
|
</xsl:when>
|
4884
5001
|
<xsl:otherwise>
|
4885
|
-
<xsl:apply-templates select="
|
5002
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
5003
|
+
|
5004
|
+
<xsl:call-template name="insertFigureBookmarks">
|
5005
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5006
|
+
</xsl:call-template>
|
5007
|
+
|
5008
|
+
<xsl:call-template name="insertTableBookmarks">
|
5009
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5010
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5011
|
+
</xsl:call-template>
|
5012
|
+
|
4886
5013
|
</xsl:otherwise>
|
4887
5014
|
</xsl:choose>
|
4888
5015
|
|
5016
|
+
|
4889
5017
|
|
4890
5018
|
|
4891
5019
|
|
4892
5020
|
|
4893
|
-
|
4894
|
-
|
5021
|
+
|
4895
5022
|
|
4896
5023
|
</fo:bookmark-tree>
|
4897
5024
|
</xsl:if>
|
4898
5025
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
4899
5026
|
<xsl:param name="contents"/>
|
4900
|
-
<xsl:
|
4901
|
-
|
5027
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5028
|
+
<xsl:if test="$contents_nodes/figure">
|
5029
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
4902
5030
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
4903
|
-
<xsl:for-each select="
|
5031
|
+
<xsl:for-each select="$contents_nodes/figure">
|
4904
5032
|
<fo:bookmark internal-destination="{@id}">
|
4905
5033
|
<fo:bookmark-title>
|
4906
5034
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4909,18 +5037,40 @@
|
|
4909
5037
|
</xsl:for-each>
|
4910
5038
|
</fo:bookmark>
|
4911
5039
|
</xsl:if>
|
5040
|
+
|
5041
|
+
|
5042
|
+
<xsl:if test="$contents_nodes//figures/figure">
|
5043
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5044
|
+
|
5045
|
+
|
5046
|
+
|
5047
|
+
<xsl:variable name="bookmark-title">
|
5048
|
+
|
5049
|
+
<xsl:value-of select="$title-list-figures"/>
|
5050
|
+
|
5051
|
+
</xsl:variable>
|
5052
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
|
5053
|
+
<xsl:for-each select="$contents_nodes//figures/figure">
|
5054
|
+
<fo:bookmark internal-destination="{@id}">
|
5055
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5056
|
+
</fo:bookmark>
|
5057
|
+
</xsl:for-each>
|
5058
|
+
</fo:bookmark>
|
5059
|
+
</xsl:if>
|
5060
|
+
|
4912
5061
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
4913
5062
|
<xsl:param name="contents"/>
|
4914
5063
|
<xsl:param name="lang"/>
|
4915
|
-
<xsl:
|
4916
|
-
|
5064
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5065
|
+
<xsl:if test="$contents_nodes/table">
|
5066
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
4917
5067
|
<fo:bookmark-title>
|
4918
5068
|
<xsl:choose>
|
4919
5069
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
4920
5070
|
<xsl:otherwise>Tables</xsl:otherwise>
|
4921
5071
|
</xsl:choose>
|
4922
5072
|
</fo:bookmark-title>
|
4923
|
-
<xsl:for-each select="
|
5073
|
+
<xsl:for-each select="$contents_nodes/table">
|
4924
5074
|
<fo:bookmark internal-destination="{@id}">
|
4925
5075
|
<fo:bookmark-title>
|
4926
5076
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4929,6 +5079,29 @@
|
|
4929
5079
|
</xsl:for-each>
|
4930
5080
|
</fo:bookmark>
|
4931
5081
|
</xsl:if>
|
5082
|
+
|
5083
|
+
|
5084
|
+
<xsl:if test="$contents_nodes//tables/table">
|
5085
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5086
|
+
|
5087
|
+
|
5088
|
+
|
5089
|
+
<xsl:variable name="bookmark-title">
|
5090
|
+
|
5091
|
+
<xsl:value-of select="$title-list-tables"/>
|
5092
|
+
|
5093
|
+
</xsl:variable>
|
5094
|
+
|
5095
|
+
<fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
|
5096
|
+
|
5097
|
+
<xsl:for-each select="$contents_nodes//tables/table">
|
5098
|
+
<fo:bookmark internal-destination="{@id}">
|
5099
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5100
|
+
</fo:bookmark>
|
5101
|
+
</xsl:for-each>
|
5102
|
+
</fo:bookmark>
|
5103
|
+
</xsl:if>
|
5104
|
+
|
4932
5105
|
</xsl:template><xsl:template name="getLangVersion">
|
4933
5106
|
<xsl:param name="lang"/>
|
4934
5107
|
<xsl:param name="doctype" select="''"/>
|
@@ -5153,7 +5326,51 @@
|
|
5153
5326
|
<xsl:with-param name="text" select="$text_step1"/>
|
5154
5327
|
</xsl:call-template>
|
5155
5328
|
</xsl:variable>
|
5156
|
-
|
5329
|
+
|
5330
|
+
<!-- <xsl:value-of select="$text_step2"/> -->
|
5331
|
+
|
5332
|
+
<!-- add zero-width space after space -->
|
5333
|
+
<xsl:variable name="text_step3" select="java:replaceAll(java:java.lang.String.new($text_step2),' ',' ')"/>
|
5334
|
+
|
5335
|
+
<!-- split text by zero-width space -->
|
5336
|
+
<xsl:variable name="text_step4">
|
5337
|
+
<xsl:call-template name="split">
|
5338
|
+
<xsl:with-param name="pText" select="$text_step3"/>
|
5339
|
+
<xsl:with-param name="sep" select="$zero_width_space"/>
|
5340
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
5341
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
5342
|
+
</xsl:call-template>
|
5343
|
+
</xsl:variable>
|
5344
|
+
|
5345
|
+
<xsl:for-each select="xalan:nodeset($text_step4)/item">
|
5346
|
+
<xsl:choose>
|
5347
|
+
<xsl:when test="string-length() > 30"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
5348
|
+
<xsl:call-template name="interspers">
|
5349
|
+
<xsl:with-param name="str" select="."/>
|
5350
|
+
</xsl:call-template>
|
5351
|
+
</xsl:when>
|
5352
|
+
<xsl:otherwise>
|
5353
|
+
<xsl:value-of select="."/>
|
5354
|
+
</xsl:otherwise>
|
5355
|
+
</xsl:choose>
|
5356
|
+
</xsl:for-each>
|
5357
|
+
|
5358
|
+
</xsl:template><xsl:template name="interspers">
|
5359
|
+
<xsl:param name="str"/>
|
5360
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
5361
|
+
<xsl:if test="$str != ''">
|
5362
|
+
<xsl:value-of select="substring($str, 1, 1)"/>
|
5363
|
+
|
5364
|
+
<xsl:variable name="next_char" select="substring($str, 2, 1)"/>
|
5365
|
+
<xsl:if test="not(contains(concat(' -.:=_— ', $char), $next_char))">
|
5366
|
+
<xsl:value-of select="$char"/>
|
5367
|
+
</xsl:if>
|
5368
|
+
|
5369
|
+
<xsl:call-template name="interspers">
|
5370
|
+
<xsl:with-param name="str" select="substring($str, 2)"/>
|
5371
|
+
<xsl:with-param name="char" select="$char"/>
|
5372
|
+
</xsl:call-template>
|
5373
|
+
</xsl:if>
|
5157
5374
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5158
5375
|
<xsl:apply-templates mode="syntax_highlight"/>
|
5159
5376
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -5589,6 +5806,8 @@
|
|
5589
5806
|
</xsl:otherwise>
|
5590
5807
|
</xsl:choose> -->
|
5591
5808
|
</fo:block>
|
5809
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
5810
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
5592
5811
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
5593
5812
|
<xsl:if test="normalize-space() != ''">
|
5594
5813
|
<xsl:value-of select="."/>
|
@@ -5663,26 +5882,24 @@
|
|
5663
5882
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
5664
5883
|
<xsl:text>— </xsl:text>
|
5665
5884
|
<xsl:apply-templates/>
|
5666
|
-
</xsl:template><xsl:variable name="
|
5885
|
+
</xsl:template><xsl:variable name="bibitems_">
|
5886
|
+
<xsl:for-each select="//*[local-name() = 'bibitem']">
|
5887
|
+
<xsl:copy-of select="."/>
|
5888
|
+
</xsl:for-each>
|
5889
|
+
</xsl:variable><xsl:variable name="bibitems" select="xalan:nodeset($bibitems_)"/><xsl:variable name="bibitems_hidden_">
|
5667
5890
|
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
5668
5891
|
<xsl:copy-of select="."/>
|
5669
5892
|
</xsl:for-each>
|
5670
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']
|
5893
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']">
|
5671
5894
|
<xsl:copy-of select="."/>
|
5672
5895
|
</xsl:for-each>
|
5673
|
-
</xsl:variable><xsl:variable name="
|
5674
|
-
|
5675
|
-
<xsl:variable name="
|
5676
|
-
|
5677
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
5678
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
5679
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
5680
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
5681
|
-
</xsl:choose>
|
5682
|
-
</xsl:variable>
|
5683
|
-
|
5896
|
+
</xsl:variable><xsl:variable name="bibitems_hidden" select="xalan:nodeset($bibitems_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
5897
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
5898
|
+
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
5899
|
+
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
5684
5900
|
<xsl:choose>
|
5685
|
-
<xsl:when test="
|
5901
|
+
<!-- <xsl:when test="$external-destination != '' or not(key('bibitems_hidden', $current_bibitemid))"> --> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
|
5902
|
+
<xsl:when test="$external-destination != '' or not($bibitems_hidden/*[local-name() ='bibitem'][@id = $current_bibitemid])"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
|
5686
5903
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
5687
5904
|
<xsl:if test="@type = 'footnote'">
|
5688
5905
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -5696,8 +5913,8 @@
|
|
5696
5913
|
<xsl:variable name="text" select="normalize-space()"/>
|
5697
5914
|
|
5698
5915
|
|
5699
|
-
|
5700
|
-
<fo:basic-link
|
5916
|
+
|
5917
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
5701
5918
|
<xsl:if test="normalize-space(@citeas) = ''">
|
5702
5919
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
5703
5920
|
</xsl:if>
|
@@ -5709,14 +5926,21 @@
|
|
5709
5926
|
|
5710
5927
|
</xsl:if>
|
5711
5928
|
|
5712
|
-
|
5929
|
+
<xsl:choose>
|
5930
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
5931
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
5932
|
+
</xsl:when>
|
5933
|
+
<xsl:otherwise>
|
5934
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
5935
|
+
</xsl:otherwise>
|
5936
|
+
</xsl:choose>
|
5713
5937
|
|
5714
5938
|
<xsl:apply-templates/>
|
5715
5939
|
</fo:basic-link>
|
5716
|
-
|
5940
|
+
|
5717
5941
|
</fo:inline>
|
5718
5942
|
</xsl:when>
|
5719
|
-
<xsl:otherwise>
|
5943
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
5720
5944
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5721
5945
|
</xsl:otherwise>
|
5722
5946
|
</xsl:choose>
|
@@ -6055,7 +6279,7 @@
|
|
6055
6279
|
|
6056
6280
|
|
6057
6281
|
|
6058
|
-
|
6282
|
+
|
6059
6283
|
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
6060
6284
|
</fo:list-block>
|
6061
6285
|
<!-- <xsl:for-each select="./iho:note">
|
@@ -6073,6 +6297,11 @@
|
|
6073
6297
|
|
6074
6298
|
|
6075
6299
|
|
6300
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
6301
|
+
<xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
6302
|
+
<xsl:call-template name="append_add-style"/>
|
6303
|
+
</xsl:if>
|
6304
|
+
|
6076
6305
|
<xsl:call-template name="getListItemFormat"/>
|
6077
6306
|
</fo:block>
|
6078
6307
|
</fo:list-item-label>
|
@@ -6410,23 +6639,45 @@
|
|
6410
6639
|
<xsl:apply-templates/>
|
6411
6640
|
</fo:inline>
|
6412
6641
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
6642
|
+
|
6643
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
6644
|
+
<xsl:variable name="p_fn_">
|
6645
|
+
<xsl:call-template name="get_fn_list"/>
|
6646
|
+
</xsl:variable>
|
6647
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
6648
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
6649
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
6650
|
+
<!-- fn sequence number in document -->
|
6651
|
+
<xsl:variable name="current_fn_number">
|
6652
|
+
<xsl:choose>
|
6653
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
6654
|
+
<xsl:otherwise>
|
6655
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
6656
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
6657
|
+
</xsl:otherwise>
|
6658
|
+
</xsl:choose>
|
6659
|
+
</xsl:variable>
|
6413
6660
|
<fo:footnote>
|
6414
6661
|
<xsl:variable name="number">
|
6415
6662
|
|
6416
|
-
<xsl:
|
6663
|
+
<xsl:value-of select="$current_fn_number"/>
|
6417
6664
|
|
6418
6665
|
</xsl:variable>
|
6666
|
+
|
6667
|
+
<xsl:variable name="current_fn_number_text">
|
6668
|
+
<xsl:value-of select="$number"/>
|
6669
|
+
|
6670
|
+
</xsl:variable>
|
6671
|
+
|
6419
6672
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
6420
|
-
<fo:basic-link internal-destination="{
|
6421
|
-
<xsl:value-of select="$
|
6422
|
-
|
6673
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
6674
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6423
6675
|
</fo:basic-link>
|
6424
6676
|
</fo:inline>
|
6425
6677
|
<fo:footnote-body>
|
6426
6678
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
6427
|
-
<fo:inline id="{
|
6428
|
-
<xsl:value-of select="$
|
6429
|
-
|
6679
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
6680
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6430
6681
|
</fo:inline>
|
6431
6682
|
<xsl:apply-templates/>
|
6432
6683
|
</fo:block>
|
@@ -6677,6 +6928,78 @@
|
|
6677
6928
|
<xsl:apply-templates/>
|
6678
6929
|
</fo:block>
|
6679
6930
|
|
6931
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
6932
|
+
<xsl:copy>
|
6933
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
6934
|
+
</xsl:copy>
|
6935
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
6936
|
+
<xsl:copy>
|
6937
|
+
<xsl:copy-of select="@*"/>
|
6938
|
+
|
6939
|
+
<xsl:variable name="nodes_preface_">
|
6940
|
+
<xsl:for-each select="*">
|
6941
|
+
<node id="{@id}"/>
|
6942
|
+
</xsl:for-each>
|
6943
|
+
</xsl:variable>
|
6944
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
6945
|
+
|
6946
|
+
<xsl:for-each select="*">
|
6947
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6948
|
+
|
6949
|
+
<!-- process Section's title -->
|
6950
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
6951
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
6952
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
6953
|
+
</xsl:if>
|
6954
|
+
|
6955
|
+
<xsl:choose>
|
6956
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
6957
|
+
<xsl:otherwise>
|
6958
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
6959
|
+
</xsl:otherwise>
|
6960
|
+
</xsl:choose>
|
6961
|
+
|
6962
|
+
</xsl:for-each>
|
6963
|
+
</xsl:copy>
|
6964
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
6965
|
+
<xsl:copy>
|
6966
|
+
<xsl:copy-of select="@*"/>
|
6967
|
+
|
6968
|
+
<xsl:variable name="nodes_sections_">
|
6969
|
+
<xsl:for-each select="*">
|
6970
|
+
<node id="{@id}"/>
|
6971
|
+
</xsl:for-each>
|
6972
|
+
</xsl:variable>
|
6973
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
6974
|
+
|
6975
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
6976
|
+
<xsl:for-each select="* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
|
6977
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6978
|
+
|
6979
|
+
<!-- process Section's title -->
|
6980
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
6981
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
6982
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
6983
|
+
</xsl:if>
|
6984
|
+
|
6985
|
+
<xsl:choose>
|
6986
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
6987
|
+
<xsl:otherwise>
|
6988
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
6989
|
+
</xsl:otherwise>
|
6990
|
+
</xsl:choose>
|
6991
|
+
|
6992
|
+
</xsl:for-each>
|
6993
|
+
</xsl:copy>
|
6994
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
6995
|
+
<xsl:copy>
|
6996
|
+
<xsl:copy-of select="@*"/>
|
6997
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
6998
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[@normative='true'])]">
|
6999
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7000
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7001
|
+
</xsl:for-each>
|
7002
|
+
</xsl:copy>
|
6680
7003
|
</xsl:template><xsl:template name="convertDate">
|
6681
7004
|
<xsl:param name="date"/>
|
6682
7005
|
<xsl:param name="format" select="'short'"/>
|
@@ -6921,22 +7244,25 @@
|
|
6921
7244
|
<xsl:param name="pText" select="."/>
|
6922
7245
|
<xsl:param name="sep" select="','"/>
|
6923
7246
|
<xsl:param name="normalize-space" select="'true'"/>
|
7247
|
+
<xsl:param name="keep_sep" select="'false'"/>
|
6924
7248
|
<xsl:if test="string-length($pText) >0">
|
6925
|
-
|
6926
|
-
|
6927
|
-
|
6928
|
-
|
6929
|
-
|
6930
|
-
|
6931
|
-
|
6932
|
-
|
6933
|
-
|
6934
|
-
|
6935
|
-
|
6936
|
-
<xsl:
|
6937
|
-
|
6938
|
-
|
6939
|
-
|
7249
|
+
<item>
|
7250
|
+
<xsl:choose>
|
7251
|
+
<xsl:when test="$normalize-space = 'true'">
|
7252
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
7253
|
+
</xsl:when>
|
7254
|
+
<xsl:otherwise>
|
7255
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
7256
|
+
</xsl:otherwise>
|
7257
|
+
</xsl:choose>
|
7258
|
+
</item>
|
7259
|
+
<xsl:if test="$keep_sep = 'true' and contains($pText, $sep)"><item><xsl:value-of select="$sep"/></item></xsl:if>
|
7260
|
+
<xsl:call-template name="split">
|
7261
|
+
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
7262
|
+
<xsl:with-param name="sep" select="$sep"/>
|
7263
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
7264
|
+
<xsl:with-param name="keep_sep" select="$keep_sep"/>
|
7265
|
+
</xsl:call-template>
|
6940
7266
|
</xsl:if>
|
6941
7267
|
</xsl:template><xsl:template name="getDocumentId">
|
6942
7268
|
<xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
|
@@ -7127,53 +7453,153 @@
|
|
7127
7453
|
<xsl:param name="first"/>
|
7128
7454
|
<xsl:if test="$number != ''">
|
7129
7455
|
<xsl:variable name="words">
|
7130
|
-
|
7131
|
-
<
|
7132
|
-
|
7133
|
-
|
7134
|
-
|
7135
|
-
|
7136
|
-
|
7137
|
-
|
7138
|
-
|
7139
|
-
|
7140
|
-
|
7141
|
-
|
7142
|
-
|
7143
|
-
|
7144
|
-
|
7145
|
-
|
7146
|
-
|
7147
|
-
|
7148
|
-
|
7149
|
-
|
7150
|
-
|
7151
|
-
|
7152
|
-
|
7153
|
-
|
7154
|
-
|
7155
|
-
|
7156
|
-
|
7157
|
-
|
7158
|
-
|
7159
|
-
|
7160
|
-
|
7161
|
-
|
7162
|
-
|
7163
|
-
|
7164
|
-
|
7165
|
-
|
7166
|
-
|
7167
|
-
|
7168
|
-
|
7169
|
-
|
7170
|
-
|
7171
|
-
|
7172
|
-
|
7173
|
-
|
7174
|
-
|
7175
|
-
|
7176
|
-
|
7456
|
+
<words>
|
7457
|
+
<xsl:choose>
|
7458
|
+
<xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
|
7459
|
+
<word cardinal="1">Une-</word>
|
7460
|
+
<word ordinal="1">Première </word>
|
7461
|
+
<word cardinal="2">Deux-</word>
|
7462
|
+
<word ordinal="2">Seconde </word>
|
7463
|
+
<word cardinal="3">Trois-</word>
|
7464
|
+
<word ordinal="3">Tierce </word>
|
7465
|
+
<word cardinal="4">Quatre-</word>
|
7466
|
+
<word ordinal="4">Quatrième </word>
|
7467
|
+
<word cardinal="5">Cinq-</word>
|
7468
|
+
<word ordinal="5">Cinquième </word>
|
7469
|
+
<word cardinal="6">Six-</word>
|
7470
|
+
<word ordinal="6">Sixième </word>
|
7471
|
+
<word cardinal="7">Sept-</word>
|
7472
|
+
<word ordinal="7">Septième </word>
|
7473
|
+
<word cardinal="8">Huit-</word>
|
7474
|
+
<word ordinal="8">Huitième </word>
|
7475
|
+
<word cardinal="9">Neuf-</word>
|
7476
|
+
<word ordinal="9">Neuvième </word>
|
7477
|
+
<word ordinal="10">Dixième </word>
|
7478
|
+
<word ordinal="11">Onzième </word>
|
7479
|
+
<word ordinal="12">Douzième </word>
|
7480
|
+
<word ordinal="13">Treizième </word>
|
7481
|
+
<word ordinal="14">Quatorzième </word>
|
7482
|
+
<word ordinal="15">Quinzième </word>
|
7483
|
+
<word ordinal="16">Seizième </word>
|
7484
|
+
<word ordinal="17">Dix-septième </word>
|
7485
|
+
<word ordinal="18">Dix-huitième </word>
|
7486
|
+
<word ordinal="19">Dix-neuvième </word>
|
7487
|
+
<word cardinal="20">Vingt-</word>
|
7488
|
+
<word ordinal="20">Vingtième </word>
|
7489
|
+
<word cardinal="30">Trente-</word>
|
7490
|
+
<word ordinal="30">Trentième </word>
|
7491
|
+
<word cardinal="40">Quarante-</word>
|
7492
|
+
<word ordinal="40">Quarantième </word>
|
7493
|
+
<word cardinal="50">Cinquante-</word>
|
7494
|
+
<word ordinal="50">Cinquantième </word>
|
7495
|
+
<word cardinal="60">Soixante-</word>
|
7496
|
+
<word ordinal="60">Soixantième </word>
|
7497
|
+
<word cardinal="70">Septante-</word>
|
7498
|
+
<word ordinal="70">Septantième </word>
|
7499
|
+
<word cardinal="80">Huitante-</word>
|
7500
|
+
<word ordinal="80">Huitantième </word>
|
7501
|
+
<word cardinal="90">Nonante-</word>
|
7502
|
+
<word ordinal="90">Nonantième </word>
|
7503
|
+
<word cardinal="100">Cent-</word>
|
7504
|
+
<word ordinal="100">Centième </word>
|
7505
|
+
</xsl:when>
|
7506
|
+
<xsl:when test="$lang = 'ru'">
|
7507
|
+
<word cardinal="1">Одна-</word>
|
7508
|
+
<word ordinal="1">Первое </word>
|
7509
|
+
<word cardinal="2">Две-</word>
|
7510
|
+
<word ordinal="2">Второе </word>
|
7511
|
+
<word cardinal="3">Три-</word>
|
7512
|
+
<word ordinal="3">Третье </word>
|
7513
|
+
<word cardinal="4">Четыре-</word>
|
7514
|
+
<word ordinal="4">Четвертое </word>
|
7515
|
+
<word cardinal="5">Пять-</word>
|
7516
|
+
<word ordinal="5">Пятое </word>
|
7517
|
+
<word cardinal="6">Шесть-</word>
|
7518
|
+
<word ordinal="6">Шестое </word>
|
7519
|
+
<word cardinal="7">Семь-</word>
|
7520
|
+
<word ordinal="7">Седьмое </word>
|
7521
|
+
<word cardinal="8">Восемь-</word>
|
7522
|
+
<word ordinal="8">Восьмое </word>
|
7523
|
+
<word cardinal="9">Девять-</word>
|
7524
|
+
<word ordinal="9">Девятое </word>
|
7525
|
+
<word ordinal="10">Десятое </word>
|
7526
|
+
<word ordinal="11">Одиннадцатое </word>
|
7527
|
+
<word ordinal="12">Двенадцатое </word>
|
7528
|
+
<word ordinal="13">Тринадцатое </word>
|
7529
|
+
<word ordinal="14">Четырнадцатое </word>
|
7530
|
+
<word ordinal="15">Пятнадцатое </word>
|
7531
|
+
<word ordinal="16">Шестнадцатое </word>
|
7532
|
+
<word ordinal="17">Семнадцатое </word>
|
7533
|
+
<word ordinal="18">Восемнадцатое </word>
|
7534
|
+
<word ordinal="19">Девятнадцатое </word>
|
7535
|
+
<word cardinal="20">Двадцать-</word>
|
7536
|
+
<word ordinal="20">Двадцатое </word>
|
7537
|
+
<word cardinal="30">Тридцать-</word>
|
7538
|
+
<word ordinal="30">Тридцатое </word>
|
7539
|
+
<word cardinal="40">Сорок-</word>
|
7540
|
+
<word ordinal="40">Сороковое </word>
|
7541
|
+
<word cardinal="50">Пятьдесят-</word>
|
7542
|
+
<word ordinal="50">Пятидесятое </word>
|
7543
|
+
<word cardinal="60">Шестьдесят-</word>
|
7544
|
+
<word ordinal="60">Шестидесятое </word>
|
7545
|
+
<word cardinal="70">Семьдесят-</word>
|
7546
|
+
<word ordinal="70">Семидесятое </word>
|
7547
|
+
<word cardinal="80">Восемьдесят-</word>
|
7548
|
+
<word ordinal="80">Восьмидесятое </word>
|
7549
|
+
<word cardinal="90">Девяносто-</word>
|
7550
|
+
<word ordinal="90">Девяностое </word>
|
7551
|
+
<word cardinal="100">Сто-</word>
|
7552
|
+
<word ordinal="100">Сотое </word>
|
7553
|
+
</xsl:when>
|
7554
|
+
<xsl:otherwise> <!-- default english -->
|
7555
|
+
<word cardinal="1">One-</word>
|
7556
|
+
<word ordinal="1">First </word>
|
7557
|
+
<word cardinal="2">Two-</word>
|
7558
|
+
<word ordinal="2">Second </word>
|
7559
|
+
<word cardinal="3">Three-</word>
|
7560
|
+
<word ordinal="3">Third </word>
|
7561
|
+
<word cardinal="4">Four-</word>
|
7562
|
+
<word ordinal="4">Fourth </word>
|
7563
|
+
<word cardinal="5">Five-</word>
|
7564
|
+
<word ordinal="5">Fifth </word>
|
7565
|
+
<word cardinal="6">Six-</word>
|
7566
|
+
<word ordinal="6">Sixth </word>
|
7567
|
+
<word cardinal="7">Seven-</word>
|
7568
|
+
<word ordinal="7">Seventh </word>
|
7569
|
+
<word cardinal="8">Eight-</word>
|
7570
|
+
<word ordinal="8">Eighth </word>
|
7571
|
+
<word cardinal="9">Nine-</word>
|
7572
|
+
<word ordinal="9">Ninth </word>
|
7573
|
+
<word ordinal="10">Tenth </word>
|
7574
|
+
<word ordinal="11">Eleventh </word>
|
7575
|
+
<word ordinal="12">Twelfth </word>
|
7576
|
+
<word ordinal="13">Thirteenth </word>
|
7577
|
+
<word ordinal="14">Fourteenth </word>
|
7578
|
+
<word ordinal="15">Fifteenth </word>
|
7579
|
+
<word ordinal="16">Sixteenth </word>
|
7580
|
+
<word ordinal="17">Seventeenth </word>
|
7581
|
+
<word ordinal="18">Eighteenth </word>
|
7582
|
+
<word ordinal="19">Nineteenth </word>
|
7583
|
+
<word cardinal="20">Twenty-</word>
|
7584
|
+
<word ordinal="20">Twentieth </word>
|
7585
|
+
<word cardinal="30">Thirty-</word>
|
7586
|
+
<word ordinal="30">Thirtieth </word>
|
7587
|
+
<word cardinal="40">Forty-</word>
|
7588
|
+
<word ordinal="40">Fortieth </word>
|
7589
|
+
<word cardinal="50">Fifty-</word>
|
7590
|
+
<word ordinal="50">Fiftieth </word>
|
7591
|
+
<word cardinal="60">Sixty-</word>
|
7592
|
+
<word ordinal="60">Sixtieth </word>
|
7593
|
+
<word cardinal="70">Seventy-</word>
|
7594
|
+
<word ordinal="70">Seventieth </word>
|
7595
|
+
<word cardinal="80">Eighty-</word>
|
7596
|
+
<word ordinal="80">Eightieth </word>
|
7597
|
+
<word cardinal="90">Ninety-</word>
|
7598
|
+
<word ordinal="90">Ninetieth </word>
|
7599
|
+
<word cardinal="100">Hundred-</word>
|
7600
|
+
<word ordinal="100">Hundredth </word>
|
7601
|
+
</xsl:otherwise>
|
7602
|
+
</xsl:choose>
|
7177
7603
|
</words>
|
7178
7604
|
</xsl:variable>
|
7179
7605
|
|
@@ -7247,4 +7673,18 @@
|
|
7247
7673
|
<xsl:otherwise>_</xsl:otherwise>
|
7248
7674
|
</xsl:choose>
|
7249
7675
|
</xsl:attribute>
|
7676
|
+
</xsl:template><xsl:template name="substring-after-last">
|
7677
|
+
<xsl:param name="value"/>
|
7678
|
+
<xsl:param name="delimiter"/>
|
7679
|
+
<xsl:choose>
|
7680
|
+
<xsl:when test="contains($value, $delimiter)">
|
7681
|
+
<xsl:call-template name="substring-after-last">
|
7682
|
+
<xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
|
7683
|
+
<xsl:with-param name="delimiter" select="$delimiter"/>
|
7684
|
+
</xsl:call-template>
|
7685
|
+
</xsl:when>
|
7686
|
+
<xsl:otherwise>
|
7687
|
+
<xsl:value-of select="$value"/>
|
7688
|
+
</xsl:otherwise>
|
7689
|
+
</xsl:choose>
|
7250
7690
|
</xsl:template></xsl:stylesheet>
|