metanorma-un 0.8.3 → 0.8.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -11,13 +11,15 @@
|
|
11
11
|
|
12
12
|
<xsl:variable name="debug">false</xsl:variable>
|
13
13
|
|
14
|
-
<xsl:variable name="
|
14
|
+
<xsl:variable name="contents_">
|
15
15
|
<contents>
|
16
16
|
<xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/>
|
17
17
|
<xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/>
|
18
18
|
<xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/>
|
19
|
+
<xsl:call-template name="processTablesFigures_Contents"/>
|
19
20
|
</contents>
|
20
21
|
</xsl:variable>
|
22
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
21
23
|
|
22
24
|
|
23
25
|
<xsl:variable name="title" select="/un:un-standard/un:bibdata/un:title[@language = 'en' and @type = 'main']"/>
|
@@ -198,7 +200,7 @@
|
|
198
200
|
</xsl:variable>
|
199
201
|
<fo:block font-size="9pt" text-align="right" font-style="italic" margin-bottom="6pt"><xsl:value-of select="$title-page"/></fo:block>
|
200
202
|
<fo:block role="TOC">
|
201
|
-
<xsl:for-each select="
|
203
|
+
<xsl:for-each select="$contents//item[not (@type = 'annex' or @parent = 'annex') and @display = 'true']">
|
202
204
|
|
203
205
|
<fo:block role="TOCI">
|
204
206
|
|
@@ -236,9 +238,9 @@
|
|
236
238
|
|
237
239
|
</xsl:for-each>
|
238
240
|
|
239
|
-
<xsl:if test="
|
240
|
-
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt">ANNEXES</fo:block>
|
241
|
-
<xsl:for-each select="
|
241
|
+
<xsl:if test="$contents//item[@type = 'annex' and @display = 'true']">
|
242
|
+
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt" keep-with-next="always">ANNEXES</fo:block>
|
243
|
+
<xsl:for-each select="$contents//item[@type = 'annex' and @display = 'true']">
|
242
244
|
<fo:block role="TOCI">
|
243
245
|
<fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
|
244
246
|
<fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
|
@@ -268,6 +270,26 @@
|
|
268
270
|
</xsl:for-each>
|
269
271
|
</xsl:if>
|
270
272
|
|
273
|
+
<!-- List of Tables -->
|
274
|
+
<xsl:if test="$contents//tables/table">
|
275
|
+
<xsl:call-template name="insertListOf_Title">
|
276
|
+
<xsl:with-param name="title" select="$title-list-tables"/>
|
277
|
+
</xsl:call-template>
|
278
|
+
<xsl:for-each select="$contents//tables/table">
|
279
|
+
<xsl:call-template name="insertListOf_Item"/>
|
280
|
+
</xsl:for-each>
|
281
|
+
</xsl:if>
|
282
|
+
|
283
|
+
<!-- List of Figures -->
|
284
|
+
<xsl:if test="$contents//figures/figure">
|
285
|
+
<xsl:call-template name="insertListOf_Title">
|
286
|
+
<xsl:with-param name="title" select="$title-list-figures"/>
|
287
|
+
</xsl:call-template>
|
288
|
+
<xsl:for-each select="$contents//figures/figure">
|
289
|
+
<xsl:call-template name="insertListOf_Item"/>
|
290
|
+
</xsl:for-each>
|
291
|
+
</xsl:if>
|
292
|
+
|
271
293
|
</fo:block>
|
272
294
|
</fo:flow>
|
273
295
|
</fo:page-sequence>
|
@@ -289,7 +311,7 @@
|
|
289
311
|
<xsl:if test="$debug = 'true'">
|
290
312
|
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
|
291
313
|
DEBUG
|
292
|
-
contents=<xsl:copy-of select="
|
314
|
+
contents=<xsl:copy-of select="$contents"/>
|
293
315
|
<xsl:text disable-output-escaping="yes">--></xsl:text>
|
294
316
|
</xsl:if>
|
295
317
|
|
@@ -327,6 +349,30 @@
|
|
327
349
|
</fo:page-sequence>
|
328
350
|
</fo:root>
|
329
351
|
</xsl:template>
|
352
|
+
|
353
|
+
<xsl:template name="insertListOf_Title">
|
354
|
+
<xsl:param name="title"/>
|
355
|
+
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt" keep-with-next="always">
|
356
|
+
<xsl:value-of select="$title"/>
|
357
|
+
</fo:block>
|
358
|
+
</xsl:template>
|
359
|
+
|
360
|
+
<xsl:template name="insertListOf_Item">
|
361
|
+
<fo:block role="TOCI">
|
362
|
+
<fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
|
363
|
+
<fo:basic-link internal-destination="{@id}">
|
364
|
+
<xsl:call-template name="setAltText">
|
365
|
+
<xsl:with-param name="value" select="@alt-text"/>
|
366
|
+
</xsl:call-template>
|
367
|
+
<xsl:apply-templates select="." mode="contents"/>
|
368
|
+
<fo:inline keep-together.within-line="always">
|
369
|
+
<fo:leader leader-pattern="dots"/>
|
370
|
+
<fo:page-number-citation ref-id="{@id}"/>
|
371
|
+
</fo:inline>
|
372
|
+
</fo:basic-link>
|
373
|
+
</fo:block>
|
374
|
+
</fo:block>
|
375
|
+
</xsl:template>
|
330
376
|
|
331
377
|
<!-- ============================= -->
|
332
378
|
<!-- CONTENTS -->
|
@@ -876,6 +922,10 @@
|
|
876
922
|
<xsl:text>Édition </xsl:text>
|
877
923
|
</title-edition>
|
878
924
|
|
925
|
+
<title-edition lang="ru">
|
926
|
+
<xsl:text>Издание </xsl:text>
|
927
|
+
</title-edition>
|
928
|
+
|
879
929
|
<!-- These titles of Table of contents renders different than determined in localized-strings -->
|
880
930
|
<title-toc lang="en">
|
881
931
|
|
@@ -892,7 +942,7 @@
|
|
892
942
|
<xsl:text>Contents</xsl:text>
|
893
943
|
|
894
944
|
</title-toc>
|
895
|
-
|
945
|
+
|
896
946
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
897
947
|
|
898
948
|
<title-part lang="en">
|
@@ -904,7 +954,11 @@
|
|
904
954
|
|
905
955
|
|
906
956
|
|
907
|
-
</title-part>
|
957
|
+
</title-part>
|
958
|
+
<title-part lang="ru">
|
959
|
+
|
960
|
+
|
961
|
+
</title-part>
|
908
962
|
<title-part lang="zh">第 # 部分:</title-part>
|
909
963
|
|
910
964
|
<title-subpart lang="en">Sub-part #</title-subpart>
|
@@ -920,10 +974,35 @@
|
|
920
974
|
|
921
975
|
<title-summary lang="en">Summary</title-summary>
|
922
976
|
|
977
|
+
<title-continued lang="ru">(продолжение)</title-continued>
|
923
978
|
<title-continued lang="en">(continued)</title-continued>
|
924
979
|
<title-continued lang="fr">(continué)</title-continued>
|
925
980
|
|
926
|
-
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="
|
981
|
+
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
|
982
|
+
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
983
|
+
<xsl:value-of select="$toc_table_title"/>
|
984
|
+
<xsl:if test="normalize-space($toc_table_title) = ''">
|
985
|
+
<xsl:call-template name="getTitle">
|
986
|
+
<xsl:with-param name="name" select="'title-list-tables'"/>
|
987
|
+
</xsl:call-template>
|
988
|
+
</xsl:if>
|
989
|
+
</xsl:variable><xsl:variable name="title-list-figures">
|
990
|
+
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
991
|
+
<xsl:value-of select="$toc_figure_title"/>
|
992
|
+
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
993
|
+
<xsl:call-template name="getTitle">
|
994
|
+
<xsl:with-param name="name" select="'title-list-figures'"/>
|
995
|
+
</xsl:call-template>
|
996
|
+
</xsl:if>
|
997
|
+
</xsl:variable><xsl:variable name="title-list-recommendations">
|
998
|
+
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
999
|
+
<xsl:value-of select="$toc_requirement_title"/>
|
1000
|
+
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
1001
|
+
<xsl:call-template name="getTitle">
|
1002
|
+
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
1003
|
+
</xsl:call-template>
|
1004
|
+
</xsl:if>
|
1005
|
+
</xsl:variable><xsl:variable name="bibdata">
|
927
1006
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
928
1007
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
929
1008
|
</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">
|
@@ -1631,13 +1710,19 @@
|
|
1631
1710
|
</xsl:attribute-set><xsl:variable name="color-added-text">
|
1632
1711
|
<xsl:text>rgb(0, 255, 0)</xsl:text>
|
1633
1712
|
</xsl:variable><xsl:attribute-set name="add-style">
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1713
|
+
|
1714
|
+
<xsl:attribute name="color">red</xsl:attribute>
|
1715
|
+
<xsl:attribute name="text-decoration">underline</xsl:attribute>
|
1716
|
+
<!-- <xsl:attribute name="color">black</xsl:attribute>
|
1717
|
+
<xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
|
1718
|
+
<xsl:attribute name="padding-top">1mm</xsl:attribute>
|
1719
|
+
<xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
|
1720
|
+
|
1721
|
+
</xsl:attribute-set><xsl:variable name="add-style">
|
1722
|
+
<add-style xsl:use-attribute-sets="add-style"/>
|
1723
|
+
</xsl:variable><xsl:template name="append_add-style">
|
1724
|
+
<xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
|
1725
|
+
</xsl:template><xsl:variable name="color-deleted-text">
|
1641
1726
|
<xsl:text>red</xsl:text>
|
1642
1727
|
</xsl:variable><xsl:attribute-set name="del-style">
|
1643
1728
|
<xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
|
@@ -2069,14 +2154,42 @@
|
|
2069
2154
|
|
2070
2155
|
|
2071
2156
|
</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">
|
2157
|
+
<xsl:variable name="nodes_preface_">
|
2158
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2159
|
+
<node id="{@id}"/>
|
2160
|
+
</xsl:for-each>
|
2161
|
+
</xsl:variable>
|
2162
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
2163
|
+
|
2072
2164
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2073
2165
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2166
|
+
|
2167
|
+
<!-- process Section's title -->
|
2168
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2169
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2170
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2171
|
+
</xsl:if>
|
2172
|
+
|
2074
2173
|
<xsl:apply-templates select="." mode="contents"/>
|
2075
2174
|
</xsl:for-each>
|
2076
2175
|
</xsl:template><xsl:template name="processMainSectionsDefault_Contents">
|
2077
2176
|
|
2177
|
+
<xsl:variable name="nodes_sections_">
|
2178
|
+
<xsl:for-each select="/*/*[local-name()='sections']/*">
|
2179
|
+
<node id="{@id}"/>
|
2180
|
+
</xsl:for-each>
|
2181
|
+
</xsl:variable>
|
2182
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
2183
|
+
|
2078
2184
|
<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']]">
|
2079
2185
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2186
|
+
|
2187
|
+
<!-- process Section's title -->
|
2188
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2189
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2190
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2191
|
+
</xsl:if>
|
2192
|
+
|
2080
2193
|
<xsl:apply-templates select="." mode="contents"/>
|
2081
2194
|
</xsl:for-each>
|
2082
2195
|
|
@@ -2089,6 +2202,30 @@
|
|
2089
2202
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2090
2203
|
<xsl:apply-templates select="." mode="contents"/>
|
2091
2204
|
</xsl:for-each>
|
2205
|
+
</xsl:template><xsl:template name="processTablesFigures_Contents">
|
2206
|
+
<xsl:param name="always"/>
|
2207
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2208
|
+
<xsl:call-template name="processTables_Contents"/>
|
2209
|
+
</xsl:if>
|
2210
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2211
|
+
<xsl:call-template name="processFigures_Contents"/>
|
2212
|
+
</xsl:if>
|
2213
|
+
</xsl:template><xsl:template name="processTables_Contents">
|
2214
|
+
<tables>
|
2215
|
+
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
|
2216
|
+
<table id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2217
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2218
|
+
</table>
|
2219
|
+
</xsl:for-each>
|
2220
|
+
</tables>
|
2221
|
+
</xsl:template><xsl:template name="processFigures_Contents">
|
2222
|
+
<figures>
|
2223
|
+
<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) != '']">
|
2224
|
+
<figure id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2225
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2226
|
+
</figure>
|
2227
|
+
</xsl:for-each>
|
2228
|
+
</figures>
|
2092
2229
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2093
2230
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2094
2231
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2215,7 +2352,7 @@
|
|
2215
2352
|
</xsl:call-template>
|
2216
2353
|
</xsl:if>
|
2217
2354
|
</xsl:variable>
|
2218
|
-
<!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2355
|
+
<!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2219
2356
|
|
2220
2357
|
|
2221
2358
|
<xsl:variable name="margin-side">
|
@@ -2492,7 +2629,7 @@
|
|
2492
2629
|
<!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
|
2493
2630
|
<!-- 2009 thinspace -->
|
2494
2631
|
<!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
|
2495
|
-
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '
|
2632
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2496
2633
|
</xsl:call-template>
|
2497
2634
|
</xsl:variable>
|
2498
2635
|
<xsl:variable name="max_length">
|
@@ -2902,37 +3039,7 @@
|
|
2902
3039
|
|
2903
3040
|
<!-- list of footnotes to calculate actual footnotes number -->
|
2904
3041
|
<xsl:variable name="p_fn_">
|
2905
|
-
<xsl:
|
2906
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
2907
|
-
<fn gen_id="{generate-id(.)}">
|
2908
|
-
<xsl:copy-of select="@*"/>
|
2909
|
-
<xsl:copy-of select="node()"/>
|
2910
|
-
</fn>
|
2911
|
-
</xsl:when>
|
2912
|
-
<xsl:otherwise>
|
2913
|
-
<!-- itetation for:
|
2914
|
-
footnotes in bibdata/title
|
2915
|
-
footnotes in bibliography
|
2916
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
2917
|
-
-->
|
2918
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
2919
|
-
<fn gen_id="{generate-id(.)}">
|
2920
|
-
<xsl:copy-of select="@*"/>
|
2921
|
-
<xsl:copy-of select="node()"/>
|
2922
|
-
</fn>
|
2923
|
-
</xsl:for-each>
|
2924
|
-
<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']/*">
|
2925
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
2926
|
-
<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])]">
|
2927
|
-
<!-- copy unique fn -->
|
2928
|
-
<fn gen_id="{generate-id(.)}">
|
2929
|
-
<xsl:copy-of select="@*"/>
|
2930
|
-
<xsl:copy-of select="node()"/>
|
2931
|
-
</fn>
|
2932
|
-
</xsl:for-each>
|
2933
|
-
</xsl:for-each>
|
2934
|
-
</xsl:otherwise>
|
2935
|
-
</xsl:choose>
|
3042
|
+
<xsl:call-template name="get_fn_list"/>
|
2936
3043
|
</xsl:variable>
|
2937
3044
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
2938
3045
|
|
@@ -2993,6 +3100,38 @@
|
|
2993
3100
|
<xsl:copy-of select="$footnote_inline"/>
|
2994
3101
|
</xsl:otherwise>
|
2995
3102
|
</xsl:choose>
|
3103
|
+
</xsl:template><xsl:template name="get_fn_list">
|
3104
|
+
<xsl:choose>
|
3105
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3106
|
+
<fn gen_id="{generate-id(.)}">
|
3107
|
+
<xsl:copy-of select="@*"/>
|
3108
|
+
<xsl:copy-of select="node()"/>
|
3109
|
+
</fn>
|
3110
|
+
</xsl:when>
|
3111
|
+
<xsl:otherwise>
|
3112
|
+
<!-- itetation for:
|
3113
|
+
footnotes in bibdata/title
|
3114
|
+
footnotes in bibliography
|
3115
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3116
|
+
-->
|
3117
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3118
|
+
<fn gen_id="{generate-id(.)}">
|
3119
|
+
<xsl:copy-of select="@*"/>
|
3120
|
+
<xsl:copy-of select="node()"/>
|
3121
|
+
</fn>
|
3122
|
+
</xsl:for-each>
|
3123
|
+
<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']/*">
|
3124
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3125
|
+
<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])]">
|
3126
|
+
<!-- copy unique fn -->
|
3127
|
+
<fn gen_id="{generate-id(.)}">
|
3128
|
+
<xsl:copy-of select="@*"/>
|
3129
|
+
<xsl:copy-of select="node()"/>
|
3130
|
+
</fn>
|
3131
|
+
</xsl:for-each>
|
3132
|
+
</xsl:for-each>
|
3133
|
+
</xsl:otherwise>
|
3134
|
+
</xsl:choose>
|
2996
3135
|
</xsl:template><xsl:template name="table_fn_display">
|
2997
3136
|
<xsl:variable name="references">
|
2998
3137
|
|
@@ -3164,7 +3303,7 @@
|
|
3164
3303
|
</fo:inline>
|
3165
3304
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3166
3305
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3167
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
3306
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3168
3307
|
<fo:inline>
|
3169
3308
|
<xsl:apply-templates/>
|
3170
3309
|
</fo:inline>
|
@@ -4140,6 +4279,9 @@
|
|
4140
4279
|
</fo:inline>
|
4141
4280
|
</xsl:template><xsl:template match="*[local-name() = 'xref']">
|
4142
4281
|
<fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
|
4282
|
+
<xsl:if test="parent::*[local-name() = 'add']">
|
4283
|
+
<xsl:call-template name="append_add-style"/>
|
4284
|
+
</xsl:if>
|
4143
4285
|
<xsl:apply-templates/>
|
4144
4286
|
</fo:basic-link>
|
4145
4287
|
</xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
|
@@ -4255,6 +4397,13 @@
|
|
4255
4397
|
|
4256
4398
|
|
4257
4399
|
|
4400
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4401
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4402
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4403
|
+
<xsl:call-template name="append_add-style"/>
|
4404
|
+
</xsl:if>
|
4405
|
+
|
4406
|
+
|
4258
4407
|
<!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
|
4259
4408
|
<xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
4260
4409
|
<xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
@@ -4293,6 +4442,12 @@
|
|
4293
4442
|
|
4294
4443
|
|
4295
4444
|
|
4445
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4446
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4447
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4448
|
+
<xsl:call-template name="append_add-style"/>
|
4449
|
+
</xsl:if>
|
4450
|
+
|
4296
4451
|
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
4297
4452
|
|
4298
4453
|
</fo:inline>
|
@@ -4346,6 +4501,7 @@
|
|
4346
4501
|
</fo:block>
|
4347
4502
|
</xsl:template><xsl:template match="*[local-name() = 'term']">
|
4348
4503
|
<fo:block id="{@id}" xsl:use-attribute-sets="term-style">
|
4504
|
+
|
4349
4505
|
|
4350
4506
|
|
4351
4507
|
|
@@ -4787,7 +4943,11 @@
|
|
4787
4943
|
<xsl:value-of select="."/>
|
4788
4944
|
</xsl:template><xsl:template match="node()" mode="contents">
|
4789
4945
|
<xsl:apply-templates mode="contents"/>
|
4790
|
-
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = '
|
4946
|
+
</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">
|
4947
|
+
<xsl:call-template name="contents_section-title"/>
|
4948
|
+
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
|
4949
|
+
<xsl:call-template name="contents_section-title"/>
|
4950
|
+
</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">
|
4791
4951
|
<xsl:variable name="level">
|
4792
4952
|
<xsl:call-template name="getLevel">
|
4793
4953
|
<xsl:with-param name="depth" select="@depth"/>
|
@@ -4856,13 +5016,14 @@
|
|
4856
5016
|
<xsl:apply-templates mode="bookmarks"/>
|
4857
5017
|
</xsl:template><xsl:template name="addBookmarks">
|
4858
5018
|
<xsl:param name="contents"/>
|
4859
|
-
<xsl:
|
5019
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5020
|
+
<xsl:if test="$contents_nodes//item">
|
4860
5021
|
<fo:bookmark-tree>
|
4861
5022
|
<xsl:choose>
|
4862
|
-
<xsl:when test="
|
5023
|
+
<xsl:when test="$contents_nodes/doc">
|
4863
5024
|
<xsl:choose>
|
4864
|
-
<xsl:when test="count(
|
4865
|
-
<xsl:for-each select="
|
5025
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
5026
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4866
5027
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4867
5028
|
<xsl:if test="@bundle = 'true'">
|
4868
5029
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -4913,7 +5074,7 @@
|
|
4913
5074
|
</xsl:for-each>
|
4914
5075
|
</xsl:when>
|
4915
5076
|
<xsl:otherwise>
|
4916
|
-
<xsl:for-each select="
|
5077
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4917
5078
|
|
4918
5079
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4919
5080
|
|
@@ -4931,25 +5092,36 @@
|
|
4931
5092
|
</xsl:choose>
|
4932
5093
|
</xsl:when>
|
4933
5094
|
<xsl:otherwise>
|
4934
|
-
<xsl:apply-templates select="
|
5095
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
5096
|
+
|
5097
|
+
<xsl:call-template name="insertFigureBookmarks">
|
5098
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5099
|
+
</xsl:call-template>
|
5100
|
+
|
5101
|
+
<xsl:call-template name="insertTableBookmarks">
|
5102
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5103
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5104
|
+
</xsl:call-template>
|
5105
|
+
|
4935
5106
|
</xsl:otherwise>
|
4936
5107
|
</xsl:choose>
|
4937
5108
|
|
5109
|
+
|
4938
5110
|
|
4939
5111
|
|
4940
5112
|
|
4941
5113
|
|
4942
|
-
|
4943
|
-
|
5114
|
+
|
4944
5115
|
|
4945
5116
|
</fo:bookmark-tree>
|
4946
5117
|
</xsl:if>
|
4947
5118
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
4948
5119
|
<xsl:param name="contents"/>
|
4949
|
-
<xsl:
|
4950
|
-
|
5120
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5121
|
+
<xsl:if test="$contents_nodes/figure">
|
5122
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
4951
5123
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
4952
|
-
<xsl:for-each select="
|
5124
|
+
<xsl:for-each select="$contents_nodes/figure">
|
4953
5125
|
<fo:bookmark internal-destination="{@id}">
|
4954
5126
|
<fo:bookmark-title>
|
4955
5127
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4958,18 +5130,40 @@
|
|
4958
5130
|
</xsl:for-each>
|
4959
5131
|
</fo:bookmark>
|
4960
5132
|
</xsl:if>
|
5133
|
+
|
5134
|
+
|
5135
|
+
<xsl:if test="$contents_nodes//figures/figure">
|
5136
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5137
|
+
|
5138
|
+
|
5139
|
+
|
5140
|
+
<xsl:variable name="bookmark-title">
|
5141
|
+
|
5142
|
+
<xsl:value-of select="$title-list-figures"/>
|
5143
|
+
|
5144
|
+
</xsl:variable>
|
5145
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
|
5146
|
+
<xsl:for-each select="$contents_nodes//figures/figure">
|
5147
|
+
<fo:bookmark internal-destination="{@id}">
|
5148
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5149
|
+
</fo:bookmark>
|
5150
|
+
</xsl:for-each>
|
5151
|
+
</fo:bookmark>
|
5152
|
+
</xsl:if>
|
5153
|
+
|
4961
5154
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
4962
5155
|
<xsl:param name="contents"/>
|
4963
5156
|
<xsl:param name="lang"/>
|
4964
|
-
<xsl:
|
4965
|
-
|
5157
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5158
|
+
<xsl:if test="$contents_nodes/table">
|
5159
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
4966
5160
|
<fo:bookmark-title>
|
4967
5161
|
<xsl:choose>
|
4968
5162
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
4969
5163
|
<xsl:otherwise>Tables</xsl:otherwise>
|
4970
5164
|
</xsl:choose>
|
4971
5165
|
</fo:bookmark-title>
|
4972
|
-
<xsl:for-each select="
|
5166
|
+
<xsl:for-each select="$contents_nodes/table">
|
4973
5167
|
<fo:bookmark internal-destination="{@id}">
|
4974
5168
|
<fo:bookmark-title>
|
4975
5169
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4978,6 +5172,29 @@
|
|
4978
5172
|
</xsl:for-each>
|
4979
5173
|
</fo:bookmark>
|
4980
5174
|
</xsl:if>
|
5175
|
+
|
5176
|
+
|
5177
|
+
<xsl:if test="$contents_nodes//tables/table">
|
5178
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5179
|
+
|
5180
|
+
|
5181
|
+
|
5182
|
+
<xsl:variable name="bookmark-title">
|
5183
|
+
|
5184
|
+
<xsl:value-of select="$title-list-tables"/>
|
5185
|
+
|
5186
|
+
</xsl:variable>
|
5187
|
+
|
5188
|
+
<fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
|
5189
|
+
|
5190
|
+
<xsl:for-each select="$contents_nodes//tables/table">
|
5191
|
+
<fo:bookmark internal-destination="{@id}">
|
5192
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5193
|
+
</fo:bookmark>
|
5194
|
+
</xsl:for-each>
|
5195
|
+
</fo:bookmark>
|
5196
|
+
</xsl:if>
|
5197
|
+
|
4981
5198
|
</xsl:template><xsl:template name="getLangVersion">
|
4982
5199
|
<xsl:param name="lang"/>
|
4983
5200
|
<xsl:param name="doctype" select="''"/>
|
@@ -5202,7 +5419,51 @@
|
|
5202
5419
|
<xsl:with-param name="text" select="$text_step1"/>
|
5203
5420
|
</xsl:call-template>
|
5204
5421
|
</xsl:variable>
|
5205
|
-
|
5422
|
+
|
5423
|
+
<!-- <xsl:value-of select="$text_step2"/> -->
|
5424
|
+
|
5425
|
+
<!-- add zero-width space after space -->
|
5426
|
+
<xsl:variable name="text_step3" select="java:replaceAll(java:java.lang.String.new($text_step2),' ',' ')"/>
|
5427
|
+
|
5428
|
+
<!-- split text by zero-width space -->
|
5429
|
+
<xsl:variable name="text_step4">
|
5430
|
+
<xsl:call-template name="split">
|
5431
|
+
<xsl:with-param name="pText" select="$text_step3"/>
|
5432
|
+
<xsl:with-param name="sep" select="$zero_width_space"/>
|
5433
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
5434
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
5435
|
+
</xsl:call-template>
|
5436
|
+
</xsl:variable>
|
5437
|
+
|
5438
|
+
<xsl:for-each select="xalan:nodeset($text_step4)/item">
|
5439
|
+
<xsl:choose>
|
5440
|
+
<xsl:when test="string-length() > 30"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
5441
|
+
<xsl:call-template name="interspers">
|
5442
|
+
<xsl:with-param name="str" select="."/>
|
5443
|
+
</xsl:call-template>
|
5444
|
+
</xsl:when>
|
5445
|
+
<xsl:otherwise>
|
5446
|
+
<xsl:value-of select="."/>
|
5447
|
+
</xsl:otherwise>
|
5448
|
+
</xsl:choose>
|
5449
|
+
</xsl:for-each>
|
5450
|
+
|
5451
|
+
</xsl:template><xsl:template name="interspers">
|
5452
|
+
<xsl:param name="str"/>
|
5453
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
5454
|
+
<xsl:if test="$str != ''">
|
5455
|
+
<xsl:value-of select="substring($str, 1, 1)"/>
|
5456
|
+
|
5457
|
+
<xsl:variable name="next_char" select="substring($str, 2, 1)"/>
|
5458
|
+
<xsl:if test="not(contains(concat(' -.:=_— ', $char), $next_char))">
|
5459
|
+
<xsl:value-of select="$char"/>
|
5460
|
+
</xsl:if>
|
5461
|
+
|
5462
|
+
<xsl:call-template name="interspers">
|
5463
|
+
<xsl:with-param name="str" select="substring($str, 2)"/>
|
5464
|
+
<xsl:with-param name="char" select="$char"/>
|
5465
|
+
</xsl:call-template>
|
5466
|
+
</xsl:if>
|
5206
5467
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5207
5468
|
<xsl:apply-templates mode="syntax_highlight"/>
|
5208
5469
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -5638,6 +5899,8 @@
|
|
5638
5899
|
</xsl:otherwise>
|
5639
5900
|
</xsl:choose> -->
|
5640
5901
|
</fo:block>
|
5902
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
5903
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
5641
5904
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
5642
5905
|
<xsl:if test="normalize-space() != ''">
|
5643
5906
|
<xsl:value-of select="."/>
|
@@ -5712,26 +5975,24 @@
|
|
5712
5975
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
5713
5976
|
<xsl:text>— </xsl:text>
|
5714
5977
|
<xsl:apply-templates/>
|
5715
|
-
</xsl:template><xsl:variable name="
|
5978
|
+
</xsl:template><xsl:variable name="bibitems_">
|
5979
|
+
<xsl:for-each select="//*[local-name() = 'bibitem']">
|
5980
|
+
<xsl:copy-of select="."/>
|
5981
|
+
</xsl:for-each>
|
5982
|
+
</xsl:variable><xsl:variable name="bibitems" select="xalan:nodeset($bibitems_)"/><xsl:variable name="bibitems_hidden_">
|
5716
5983
|
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
5717
5984
|
<xsl:copy-of select="."/>
|
5718
5985
|
</xsl:for-each>
|
5719
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']
|
5986
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']">
|
5720
5987
|
<xsl:copy-of select="."/>
|
5721
5988
|
</xsl:for-each>
|
5722
|
-
</xsl:variable><xsl:variable name="
|
5723
|
-
|
5724
|
-
<xsl:variable name="
|
5725
|
-
|
5726
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
5727
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
5728
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
5729
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
5730
|
-
</xsl:choose>
|
5731
|
-
</xsl:variable>
|
5732
|
-
|
5989
|
+
</xsl:variable><xsl:variable name="bibitems_hidden" select="xalan:nodeset($bibitems_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
5990
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
5991
|
+
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
5992
|
+
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
5733
5993
|
<xsl:choose>
|
5734
|
-
<xsl:when test="
|
5994
|
+
<!-- <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) -->
|
5995
|
+
<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) -->
|
5735
5996
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
5736
5997
|
<xsl:if test="@type = 'footnote'">
|
5737
5998
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -5745,8 +6006,8 @@
|
|
5745
6006
|
<xsl:variable name="text" select="normalize-space()"/>
|
5746
6007
|
|
5747
6008
|
|
5748
|
-
|
5749
|
-
<fo:basic-link
|
6009
|
+
|
6010
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
5750
6011
|
<xsl:if test="normalize-space(@citeas) = ''">
|
5751
6012
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
5752
6013
|
</xsl:if>
|
@@ -5756,14 +6017,21 @@
|
|
5756
6017
|
|
5757
6018
|
</xsl:if>
|
5758
6019
|
|
5759
|
-
|
6020
|
+
<xsl:choose>
|
6021
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
6022
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
6023
|
+
</xsl:when>
|
6024
|
+
<xsl:otherwise>
|
6025
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
6026
|
+
</xsl:otherwise>
|
6027
|
+
</xsl:choose>
|
5760
6028
|
|
5761
6029
|
<xsl:apply-templates/>
|
5762
6030
|
</fo:basic-link>
|
5763
|
-
|
6031
|
+
|
5764
6032
|
</fo:inline>
|
5765
6033
|
</xsl:when>
|
5766
|
-
<xsl:otherwise>
|
6034
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
5767
6035
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5768
6036
|
</xsl:otherwise>
|
5769
6037
|
</xsl:choose>
|
@@ -6104,7 +6372,7 @@
|
|
6104
6372
|
|
6105
6373
|
|
6106
6374
|
|
6107
|
-
|
6375
|
+
|
6108
6376
|
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
6109
6377
|
</fo:list-block>
|
6110
6378
|
<!-- <xsl:for-each select="./iho:note">
|
@@ -6122,6 +6390,11 @@
|
|
6122
6390
|
|
6123
6391
|
|
6124
6392
|
|
6393
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
6394
|
+
<xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
6395
|
+
<xsl:call-template name="append_add-style"/>
|
6396
|
+
</xsl:if>
|
6397
|
+
|
6125
6398
|
<xsl:call-template name="getListItemFormat"/>
|
6126
6399
|
</fo:block>
|
6127
6400
|
</fo:list-item-label>
|
@@ -6459,23 +6732,45 @@
|
|
6459
6732
|
<xsl:apply-templates/>
|
6460
6733
|
</fo:inline>
|
6461
6734
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
6735
|
+
|
6736
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
6737
|
+
<xsl:variable name="p_fn_">
|
6738
|
+
<xsl:call-template name="get_fn_list"/>
|
6739
|
+
</xsl:variable>
|
6740
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
6741
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
6742
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
6743
|
+
<!-- fn sequence number in document -->
|
6744
|
+
<xsl:variable name="current_fn_number">
|
6745
|
+
<xsl:choose>
|
6746
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
6747
|
+
<xsl:otherwise>
|
6748
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
6749
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
6750
|
+
</xsl:otherwise>
|
6751
|
+
</xsl:choose>
|
6752
|
+
</xsl:variable>
|
6462
6753
|
<fo:footnote>
|
6463
6754
|
<xsl:variable name="number">
|
6464
6755
|
|
6465
|
-
<xsl:
|
6756
|
+
<xsl:value-of select="$current_fn_number"/>
|
6466
6757
|
|
6467
6758
|
</xsl:variable>
|
6759
|
+
|
6760
|
+
<xsl:variable name="current_fn_number_text">
|
6761
|
+
<xsl:value-of select="$number"/>
|
6762
|
+
|
6763
|
+
</xsl:variable>
|
6764
|
+
|
6468
6765
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
6469
|
-
<fo:basic-link internal-destination="{
|
6470
|
-
<xsl:value-of select="$
|
6471
|
-
|
6766
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
6767
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6472
6768
|
</fo:basic-link>
|
6473
6769
|
</fo:inline>
|
6474
6770
|
<fo:footnote-body>
|
6475
6771
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
6476
|
-
<fo:inline id="{
|
6477
|
-
<xsl:value-of select="$
|
6478
|
-
|
6772
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
6773
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6479
6774
|
</fo:inline>
|
6480
6775
|
<xsl:apply-templates/>
|
6481
6776
|
</fo:block>
|
@@ -6728,6 +7023,78 @@
|
|
6728
7023
|
<xsl:apply-templates/>
|
6729
7024
|
</fo:block>
|
6730
7025
|
|
7026
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
7027
|
+
<xsl:copy>
|
7028
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
7029
|
+
</xsl:copy>
|
7030
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
7031
|
+
<xsl:copy>
|
7032
|
+
<xsl:copy-of select="@*"/>
|
7033
|
+
|
7034
|
+
<xsl:variable name="nodes_preface_">
|
7035
|
+
<xsl:for-each select="*">
|
7036
|
+
<node id="{@id}"/>
|
7037
|
+
</xsl:for-each>
|
7038
|
+
</xsl:variable>
|
7039
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
7040
|
+
|
7041
|
+
<xsl:for-each select="*">
|
7042
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7043
|
+
|
7044
|
+
<!-- process Section's title -->
|
7045
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7046
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7047
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7048
|
+
</xsl:if>
|
7049
|
+
|
7050
|
+
<xsl:choose>
|
7051
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7052
|
+
<xsl:otherwise>
|
7053
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7054
|
+
</xsl:otherwise>
|
7055
|
+
</xsl:choose>
|
7056
|
+
|
7057
|
+
</xsl:for-each>
|
7058
|
+
</xsl:copy>
|
7059
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
7060
|
+
<xsl:copy>
|
7061
|
+
<xsl:copy-of select="@*"/>
|
7062
|
+
|
7063
|
+
<xsl:variable name="nodes_sections_">
|
7064
|
+
<xsl:for-each select="*">
|
7065
|
+
<node id="{@id}"/>
|
7066
|
+
</xsl:for-each>
|
7067
|
+
</xsl:variable>
|
7068
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
7069
|
+
|
7070
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
7071
|
+
<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']]">
|
7072
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7073
|
+
|
7074
|
+
<!-- process Section's title -->
|
7075
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7076
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7077
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7078
|
+
</xsl:if>
|
7079
|
+
|
7080
|
+
<xsl:choose>
|
7081
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7082
|
+
<xsl:otherwise>
|
7083
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7084
|
+
</xsl:otherwise>
|
7085
|
+
</xsl:choose>
|
7086
|
+
|
7087
|
+
</xsl:for-each>
|
7088
|
+
</xsl:copy>
|
7089
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
7090
|
+
<xsl:copy>
|
7091
|
+
<xsl:copy-of select="@*"/>
|
7092
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
7093
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[@normative='true'])]">
|
7094
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7095
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7096
|
+
</xsl:for-each>
|
7097
|
+
</xsl:copy>
|
6731
7098
|
</xsl:template><xsl:template name="convertDate">
|
6732
7099
|
<xsl:param name="date"/>
|
6733
7100
|
<xsl:param name="format" select="'short'"/>
|
@@ -6972,22 +7339,25 @@
|
|
6972
7339
|
<xsl:param name="pText" select="."/>
|
6973
7340
|
<xsl:param name="sep" select="','"/>
|
6974
7341
|
<xsl:param name="normalize-space" select="'true'"/>
|
7342
|
+
<xsl:param name="keep_sep" select="'false'"/>
|
6975
7343
|
<xsl:if test="string-length($pText) >0">
|
6976
|
-
|
6977
|
-
|
6978
|
-
|
6979
|
-
|
6980
|
-
|
6981
|
-
|
6982
|
-
|
6983
|
-
|
6984
|
-
|
6985
|
-
|
6986
|
-
|
6987
|
-
<xsl:
|
6988
|
-
|
6989
|
-
|
6990
|
-
|
7344
|
+
<item>
|
7345
|
+
<xsl:choose>
|
7346
|
+
<xsl:when test="$normalize-space = 'true'">
|
7347
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
7348
|
+
</xsl:when>
|
7349
|
+
<xsl:otherwise>
|
7350
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
7351
|
+
</xsl:otherwise>
|
7352
|
+
</xsl:choose>
|
7353
|
+
</item>
|
7354
|
+
<xsl:if test="$keep_sep = 'true' and contains($pText, $sep)"><item><xsl:value-of select="$sep"/></item></xsl:if>
|
7355
|
+
<xsl:call-template name="split">
|
7356
|
+
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
7357
|
+
<xsl:with-param name="sep" select="$sep"/>
|
7358
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
7359
|
+
<xsl:with-param name="keep_sep" select="$keep_sep"/>
|
7360
|
+
</xsl:call-template>
|
6991
7361
|
</xsl:if>
|
6992
7362
|
</xsl:template><xsl:template name="getDocumentId">
|
6993
7363
|
<xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
|
@@ -7178,53 +7548,153 @@
|
|
7178
7548
|
<xsl:param name="first"/>
|
7179
7549
|
<xsl:if test="$number != ''">
|
7180
7550
|
<xsl:variable name="words">
|
7181
|
-
|
7182
|
-
<
|
7183
|
-
|
7184
|
-
|
7185
|
-
|
7186
|
-
|
7187
|
-
|
7188
|
-
|
7189
|
-
|
7190
|
-
|
7191
|
-
|
7192
|
-
|
7193
|
-
|
7194
|
-
|
7195
|
-
|
7196
|
-
|
7197
|
-
|
7198
|
-
|
7199
|
-
|
7200
|
-
|
7201
|
-
|
7202
|
-
|
7203
|
-
|
7204
|
-
|
7205
|
-
|
7206
|
-
|
7207
|
-
|
7208
|
-
|
7209
|
-
|
7210
|
-
|
7211
|
-
|
7212
|
-
|
7213
|
-
|
7214
|
-
|
7215
|
-
|
7216
|
-
|
7217
|
-
|
7218
|
-
|
7219
|
-
|
7220
|
-
|
7221
|
-
|
7222
|
-
|
7223
|
-
|
7224
|
-
|
7225
|
-
|
7226
|
-
|
7227
|
-
|
7551
|
+
<words>
|
7552
|
+
<xsl:choose>
|
7553
|
+
<xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
|
7554
|
+
<word cardinal="1">Une-</word>
|
7555
|
+
<word ordinal="1">Première </word>
|
7556
|
+
<word cardinal="2">Deux-</word>
|
7557
|
+
<word ordinal="2">Seconde </word>
|
7558
|
+
<word cardinal="3">Trois-</word>
|
7559
|
+
<word ordinal="3">Tierce </word>
|
7560
|
+
<word cardinal="4">Quatre-</word>
|
7561
|
+
<word ordinal="4">Quatrième </word>
|
7562
|
+
<word cardinal="5">Cinq-</word>
|
7563
|
+
<word ordinal="5">Cinquième </word>
|
7564
|
+
<word cardinal="6">Six-</word>
|
7565
|
+
<word ordinal="6">Sixième </word>
|
7566
|
+
<word cardinal="7">Sept-</word>
|
7567
|
+
<word ordinal="7">Septième </word>
|
7568
|
+
<word cardinal="8">Huit-</word>
|
7569
|
+
<word ordinal="8">Huitième </word>
|
7570
|
+
<word cardinal="9">Neuf-</word>
|
7571
|
+
<word ordinal="9">Neuvième </word>
|
7572
|
+
<word ordinal="10">Dixième </word>
|
7573
|
+
<word ordinal="11">Onzième </word>
|
7574
|
+
<word ordinal="12">Douzième </word>
|
7575
|
+
<word ordinal="13">Treizième </word>
|
7576
|
+
<word ordinal="14">Quatorzième </word>
|
7577
|
+
<word ordinal="15">Quinzième </word>
|
7578
|
+
<word ordinal="16">Seizième </word>
|
7579
|
+
<word ordinal="17">Dix-septième </word>
|
7580
|
+
<word ordinal="18">Dix-huitième </word>
|
7581
|
+
<word ordinal="19">Dix-neuvième </word>
|
7582
|
+
<word cardinal="20">Vingt-</word>
|
7583
|
+
<word ordinal="20">Vingtième </word>
|
7584
|
+
<word cardinal="30">Trente-</word>
|
7585
|
+
<word ordinal="30">Trentième </word>
|
7586
|
+
<word cardinal="40">Quarante-</word>
|
7587
|
+
<word ordinal="40">Quarantième </word>
|
7588
|
+
<word cardinal="50">Cinquante-</word>
|
7589
|
+
<word ordinal="50">Cinquantième </word>
|
7590
|
+
<word cardinal="60">Soixante-</word>
|
7591
|
+
<word ordinal="60">Soixantième </word>
|
7592
|
+
<word cardinal="70">Septante-</word>
|
7593
|
+
<word ordinal="70">Septantième </word>
|
7594
|
+
<word cardinal="80">Huitante-</word>
|
7595
|
+
<word ordinal="80">Huitantième </word>
|
7596
|
+
<word cardinal="90">Nonante-</word>
|
7597
|
+
<word ordinal="90">Nonantième </word>
|
7598
|
+
<word cardinal="100">Cent-</word>
|
7599
|
+
<word ordinal="100">Centième </word>
|
7600
|
+
</xsl:when>
|
7601
|
+
<xsl:when test="$lang = 'ru'">
|
7602
|
+
<word cardinal="1">Одна-</word>
|
7603
|
+
<word ordinal="1">Первое </word>
|
7604
|
+
<word cardinal="2">Две-</word>
|
7605
|
+
<word ordinal="2">Второе </word>
|
7606
|
+
<word cardinal="3">Три-</word>
|
7607
|
+
<word ordinal="3">Третье </word>
|
7608
|
+
<word cardinal="4">Четыре-</word>
|
7609
|
+
<word ordinal="4">Четвертое </word>
|
7610
|
+
<word cardinal="5">Пять-</word>
|
7611
|
+
<word ordinal="5">Пятое </word>
|
7612
|
+
<word cardinal="6">Шесть-</word>
|
7613
|
+
<word ordinal="6">Шестое </word>
|
7614
|
+
<word cardinal="7">Семь-</word>
|
7615
|
+
<word ordinal="7">Седьмое </word>
|
7616
|
+
<word cardinal="8">Восемь-</word>
|
7617
|
+
<word ordinal="8">Восьмое </word>
|
7618
|
+
<word cardinal="9">Девять-</word>
|
7619
|
+
<word ordinal="9">Девятое </word>
|
7620
|
+
<word ordinal="10">Десятое </word>
|
7621
|
+
<word ordinal="11">Одиннадцатое </word>
|
7622
|
+
<word ordinal="12">Двенадцатое </word>
|
7623
|
+
<word ordinal="13">Тринадцатое </word>
|
7624
|
+
<word ordinal="14">Четырнадцатое </word>
|
7625
|
+
<word ordinal="15">Пятнадцатое </word>
|
7626
|
+
<word ordinal="16">Шестнадцатое </word>
|
7627
|
+
<word ordinal="17">Семнадцатое </word>
|
7628
|
+
<word ordinal="18">Восемнадцатое </word>
|
7629
|
+
<word ordinal="19">Девятнадцатое </word>
|
7630
|
+
<word cardinal="20">Двадцать-</word>
|
7631
|
+
<word ordinal="20">Двадцатое </word>
|
7632
|
+
<word cardinal="30">Тридцать-</word>
|
7633
|
+
<word ordinal="30">Тридцатое </word>
|
7634
|
+
<word cardinal="40">Сорок-</word>
|
7635
|
+
<word ordinal="40">Сороковое </word>
|
7636
|
+
<word cardinal="50">Пятьдесят-</word>
|
7637
|
+
<word ordinal="50">Пятидесятое </word>
|
7638
|
+
<word cardinal="60">Шестьдесят-</word>
|
7639
|
+
<word ordinal="60">Шестидесятое </word>
|
7640
|
+
<word cardinal="70">Семьдесят-</word>
|
7641
|
+
<word ordinal="70">Семидесятое </word>
|
7642
|
+
<word cardinal="80">Восемьдесят-</word>
|
7643
|
+
<word ordinal="80">Восьмидесятое </word>
|
7644
|
+
<word cardinal="90">Девяносто-</word>
|
7645
|
+
<word ordinal="90">Девяностое </word>
|
7646
|
+
<word cardinal="100">Сто-</word>
|
7647
|
+
<word ordinal="100">Сотое </word>
|
7648
|
+
</xsl:when>
|
7649
|
+
<xsl:otherwise> <!-- default english -->
|
7650
|
+
<word cardinal="1">One-</word>
|
7651
|
+
<word ordinal="1">First </word>
|
7652
|
+
<word cardinal="2">Two-</word>
|
7653
|
+
<word ordinal="2">Second </word>
|
7654
|
+
<word cardinal="3">Three-</word>
|
7655
|
+
<word ordinal="3">Third </word>
|
7656
|
+
<word cardinal="4">Four-</word>
|
7657
|
+
<word ordinal="4">Fourth </word>
|
7658
|
+
<word cardinal="5">Five-</word>
|
7659
|
+
<word ordinal="5">Fifth </word>
|
7660
|
+
<word cardinal="6">Six-</word>
|
7661
|
+
<word ordinal="6">Sixth </word>
|
7662
|
+
<word cardinal="7">Seven-</word>
|
7663
|
+
<word ordinal="7">Seventh </word>
|
7664
|
+
<word cardinal="8">Eight-</word>
|
7665
|
+
<word ordinal="8">Eighth </word>
|
7666
|
+
<word cardinal="9">Nine-</word>
|
7667
|
+
<word ordinal="9">Ninth </word>
|
7668
|
+
<word ordinal="10">Tenth </word>
|
7669
|
+
<word ordinal="11">Eleventh </word>
|
7670
|
+
<word ordinal="12">Twelfth </word>
|
7671
|
+
<word ordinal="13">Thirteenth </word>
|
7672
|
+
<word ordinal="14">Fourteenth </word>
|
7673
|
+
<word ordinal="15">Fifteenth </word>
|
7674
|
+
<word ordinal="16">Sixteenth </word>
|
7675
|
+
<word ordinal="17">Seventeenth </word>
|
7676
|
+
<word ordinal="18">Eighteenth </word>
|
7677
|
+
<word ordinal="19">Nineteenth </word>
|
7678
|
+
<word cardinal="20">Twenty-</word>
|
7679
|
+
<word ordinal="20">Twentieth </word>
|
7680
|
+
<word cardinal="30">Thirty-</word>
|
7681
|
+
<word ordinal="30">Thirtieth </word>
|
7682
|
+
<word cardinal="40">Forty-</word>
|
7683
|
+
<word ordinal="40">Fortieth </word>
|
7684
|
+
<word cardinal="50">Fifty-</word>
|
7685
|
+
<word ordinal="50">Fiftieth </word>
|
7686
|
+
<word cardinal="60">Sixty-</word>
|
7687
|
+
<word ordinal="60">Sixtieth </word>
|
7688
|
+
<word cardinal="70">Seventy-</word>
|
7689
|
+
<word ordinal="70">Seventieth </word>
|
7690
|
+
<word cardinal="80">Eighty-</word>
|
7691
|
+
<word ordinal="80">Eightieth </word>
|
7692
|
+
<word cardinal="90">Ninety-</word>
|
7693
|
+
<word ordinal="90">Ninetieth </word>
|
7694
|
+
<word cardinal="100">Hundred-</word>
|
7695
|
+
<word ordinal="100">Hundredth </word>
|
7696
|
+
</xsl:otherwise>
|
7697
|
+
</xsl:choose>
|
7228
7698
|
</words>
|
7229
7699
|
</xsl:variable>
|
7230
7700
|
|
@@ -7298,4 +7768,18 @@
|
|
7298
7768
|
<xsl:otherwise>_</xsl:otherwise>
|
7299
7769
|
</xsl:choose>
|
7300
7770
|
</xsl:attribute>
|
7771
|
+
</xsl:template><xsl:template name="substring-after-last">
|
7772
|
+
<xsl:param name="value"/>
|
7773
|
+
<xsl:param name="delimiter"/>
|
7774
|
+
<xsl:choose>
|
7775
|
+
<xsl:when test="contains($value, $delimiter)">
|
7776
|
+
<xsl:call-template name="substring-after-last">
|
7777
|
+
<xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
|
7778
|
+
<xsl:with-param name="delimiter" select="$delimiter"/>
|
7779
|
+
</xsl:call-template>
|
7780
|
+
</xsl:when>
|
7781
|
+
<xsl:otherwise>
|
7782
|
+
<xsl:value-of select="$value"/>
|
7783
|
+
</xsl:otherwise>
|
7784
|
+
</xsl:choose>
|
7301
7785
|
</xsl:template></xsl:stylesheet>
|