metanorma-bipm 0.0.5 → 1.0.4

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.
@@ -8,6 +8,13 @@
8
8
  <xsl:param name="initial_page_number"/>
9
9
  <xsl:param name="doc_split_by_language"/>
10
10
 
11
+ <!-- <item id="#">N_page</item> -->
12
+ <!-- param for second pass -->
13
+ <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
14
+ <xsl:variable name="index" select="document($external_index)"/>
15
+
16
+ <xsl:variable name="first_pass" select="count($index//item) = 0"/>
17
+
11
18
  <xsl:variable name="pageWidth" select="'210mm'"/>
12
19
  <xsl:variable name="pageHeight" select="'297mm'"/>
13
20
 
@@ -31,26 +38,26 @@
31
38
  <xsl:variable name="root-element" select="local-name(/*)"/>
32
39
 
33
40
  <xsl:variable name="contents">
34
-
35
41
  <xsl:choose>
36
42
  <xsl:when test="$root-element = 'metanorma-collection'">
37
-
38
43
  <xsl:choose>
39
44
  <xsl:when test="$doc_split_by_language = ''"><!-- all documents -->
40
45
  <xsl:for-each select="//bipm:bipm-standard">
41
46
  <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
42
47
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
48
+ <xsl:variable name="title-part"><xsl:value-of select="bipm:bibdata/bipm:title[@type = 'part']"/></xsl:variable>
43
49
  <xsl:variable name="current_document">
44
- <xsl:apply-templates select="." mode="change_id">
50
+ <!-- <xsl:apply-templates select="." mode="change_id">
45
51
  <xsl:with-param name="lang" select="$lang"/>
46
52
  <xsl:with-param name="ignoreReferenceFrom" select="'true'"/>
47
- </xsl:apply-templates>
53
+ </xsl:apply-templates> -->
54
+ <xsl:copy-of select="."/>
48
55
  </xsl:variable>
49
56
  <xsl:for-each select="xalan:nodeset($current_document)">
50
57
  <xsl:variable name="docid">
51
58
  <xsl:call-template name="getDocumentId"/>
52
59
  </xsl:variable>
53
- <doc id="{$docid}" lang="{$lang}">
60
+ <doc id="{$docid}" lang="{$lang}" doctype="{$doctype}" title-part="{$title-part}">
54
61
  <xsl:call-template name="generateContents"/>
55
62
  </doc>
56
63
  </xsl:for-each>
@@ -61,9 +68,10 @@
61
68
  <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
62
69
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
63
70
  <xsl:variable name="current_document">
64
- <xsl:apply-templates select="." mode="change_id">
71
+ <!-- <xsl:apply-templates select="." mode="change_id">
65
72
  <xsl:with-param name="lang" select="$lang"/>
66
- </xsl:apply-templates>
73
+ </xsl:apply-templates> -->
74
+ <xsl:copy-of select="."/>
67
75
  </xsl:variable>
68
76
  <xsl:for-each select="xalan:nodeset($current_document)">
69
77
  <xsl:variable name="docid">
@@ -87,9 +95,84 @@
87
95
  </doc>
88
96
  </xsl:otherwise>
89
97
  </xsl:choose>
90
-
91
98
  </xsl:variable>
92
99
 
100
+ <xsl:variable name="indexes">
101
+ <xsl:choose>
102
+ <xsl:when test="$doc_split_by_language = ''"><!-- all documents -->
103
+ <xsl:for-each select="//bipm:bipm-standard">
104
+
105
+ <xsl:variable name="current_document">
106
+ <xsl:copy-of select="."/>
107
+ </xsl:variable>
108
+
109
+ <xsl:for-each select="xalan:nodeset($current_document)">
110
+
111
+ <xsl:variable name="docid">
112
+ <xsl:call-template name="getDocumentId"/>
113
+ </xsl:variable>
114
+
115
+ <!-- add id to xref and split xref with @to into two xref -->
116
+ <xsl:variable name="current_document_index_id">
117
+ <xsl:apply-templates select=".//bipm:clause[@type = 'index']" mode="index_add_id"/>
118
+ </xsl:variable>
119
+
120
+ <xsl:variable name="current_document_index">
121
+ <xsl:apply-templates select="xalan:nodeset($current_document_index_id)" mode="index_update"/>
122
+ </xsl:variable>
123
+
124
+ <xsl:for-each select="xalan:nodeset($current_document_index)">
125
+ <doc id="{$docid}">
126
+ <xsl:copy-of select="."/>
127
+ </doc>
128
+ </xsl:for-each>
129
+
130
+ </xsl:for-each>
131
+
132
+ </xsl:for-each>
133
+ </xsl:when>
134
+ <xsl:otherwise>
135
+ <xsl:for-each select="(//bipm:bipm-standard)[*[local-name()='bibdata']/*[local-name()='language'][@current = 'true'] = $doc_split_by_language]">
136
+
137
+ <xsl:variable name="current_document">
138
+ <xsl:copy-of select="."/>
139
+ </xsl:variable>
140
+
141
+ <xsl:for-each select="xalan:nodeset($current_document)">
142
+
143
+ <xsl:variable name="docid">
144
+ <xsl:call-template name="getDocumentId"/>
145
+ </xsl:variable>
146
+
147
+ <xsl:variable name="current_document_index_id">
148
+ <xsl:apply-templates select=".//bipm:clause[@type = 'index']" mode="index_add_id"/>
149
+ </xsl:variable>
150
+
151
+ <xsl:variable name="current_document_index">
152
+ <xsl:apply-templates select="xalan:nodeset($current_document_index_id)" mode="index_update"/>
153
+ </xsl:variable>
154
+
155
+ <xsl:for-each select="xalan:nodeset($current_document_index)">
156
+ <doc id="{$docid}">
157
+ <xsl:copy-of select="."/>
158
+ </doc>
159
+ </xsl:for-each>
160
+
161
+ </xsl:for-each>
162
+
163
+ </xsl:for-each>
164
+ </xsl:otherwise>
165
+ </xsl:choose>
166
+ </xsl:variable>
167
+
168
+ <xsl:variable name="bookmark_in_fn">
169
+ <xsl:for-each select="//bipm:bookmark[ancestor::bipm:fn]">
170
+ <bookmark><xsl:value-of select="@id"/></bookmark>
171
+ </xsl:for-each>
172
+ </xsl:variable>
173
+
174
+ <xsl:variable name="dash" select="'–'"/>
175
+
93
176
  <xsl:variable name="ids">
94
177
  <xsl:for-each select="//*[@id]">
95
178
  <id><xsl:value-of select="@id"/></id>
@@ -101,7 +184,7 @@
101
184
 
102
185
 
103
186
 
104
- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
187
+ <xsl:variable name="independentAppendix" select="normalize-space((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
105
188
  <!-- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix'])"/> -->
106
189
 
107
190
  <xsl:variable name="doctype" select="//bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:doctype"/>
@@ -116,6 +199,9 @@
116
199
  <xsl:apply-templates select="/*/bipm:annex" mode="contents"/>
117
200
  <xsl:apply-templates select="/*/bipm:bibliography/bipm:references[not(@normative='true')]" mode="contents"/>
118
201
 
202
+ <!-- Index -->
203
+ <xsl:apply-templates select="//bipm:clause[@type = 'index']" mode="contents"/>
204
+
119
205
  </contents>
120
206
  </xsl:template>
121
207
 
@@ -195,15 +281,6 @@
195
281
  </fo:repeatable-page-master-alternatives>
196
282
  </fo:page-sequence-master>
197
283
 
198
- <!-- Independent Appendix pages -->
199
- <!-- <fo:simple-page-master master-name="appendix" page-width="{$pageWidth}" page-height="{$pageHeight}">
200
- <fo:region-body margin-top="25mm" margin-bottom="25mm" margin-left="25mm" margin-right="25mm"/>
201
- <fo:region-before region-name="header-appendix" extent="25mm"/>
202
- <fo:region-after region-name="footer-appendix" extent="25mm"/>
203
- <fo:region-start region-name="left-region" extent="25mm"/>
204
- <fo:region-end region-name="right-region" extent="25mm"/>
205
- </fo:simple-page-master> -->
206
-
207
284
 
208
285
  </fo:layout-master-set>
209
286
 
@@ -245,7 +322,7 @@
245
322
  <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
246
323
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
247
324
  <!-- change id to prevent identical id in different documents in one container -->
248
- <xsl:variable name="current_document">
325
+ <!-- <xsl:variable name="current_document">
249
326
  <xsl:apply-templates select="." mode="change_id">
250
327
  <xsl:with-param name="lang" select="$lang"/>
251
328
  <xsl:with-param name="ignoreReferenceFrom" select="'true'"/>
@@ -254,6 +331,10 @@
254
331
 
255
332
  <xsl:variable name="flatxml">
256
333
  <xsl:apply-templates select="xalan:nodeset($current_document)" mode="flatxml"/>
334
+ </xsl:variable> -->
335
+
336
+ <xsl:variable name="flatxml">
337
+ <xsl:apply-templates select="." mode="flatxml"/>
257
338
  </xsl:variable>
258
339
 
259
340
  <!-- flatxml=<xsl:copy-of select="$flatxml"/> -->
@@ -269,7 +350,7 @@
269
350
  <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
270
351
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
271
352
  <!-- change id to prevent identical id in different documents in one container -->
272
- <xsl:variable name="current_document">
353
+ <!-- <xsl:variable name="current_document">
273
354
  <xsl:apply-templates select="." mode="change_id">
274
355
  <xsl:with-param name="lang" select="$lang"/>
275
356
  </xsl:apply-templates>
@@ -277,6 +358,10 @@
277
358
 
278
359
  <xsl:variable name="flatxml">
279
360
  <xsl:apply-templates select="xalan:nodeset($current_document)" mode="flatxml"/>
361
+ </xsl:variable> -->
362
+
363
+ <xsl:variable name="flatxml">
364
+ <xsl:apply-templates select="." mode="flatxml"/>
280
365
  </xsl:variable>
281
366
 
282
367
  <xsl:apply-templates select="xalan:nodeset($flatxml)/bipm:bipm-standard" mode="bipm-standard">
@@ -296,6 +381,9 @@
296
381
  </xsl:variable>
297
382
 
298
383
  <!-- flatxml=<xsl:copy-of select="$flatxml"/> -->
384
+
385
+ <!-- indexes=<xsl:copy-of select="$indexes"/> -->
386
+
299
387
 
300
388
  <xsl:apply-templates select="xalan:nodeset($flatxml)/bipm:bipm-standard" mode="bipm-standard">
301
389
  <xsl:with-param name="curr_docnum" select="1"/>
@@ -586,7 +674,7 @@
586
674
 
587
675
  <!-- copy 'ol' 'ul' properties to each 'li' -->
588
676
  <!-- OBSOLETE: move note for list (list level note) into latest 'li' -->
589
- <!-- move note for list (list level note) into first 'li' -->
677
+ <!-- NOW: move note for list (list level note) into first 'li' -->
590
678
  <!-- move fn for list-item (list-item level footnote) into first 'li' -->
591
679
  <xsl:template match="bipm:li" mode="flatxml_list">
592
680
  <xsl:copy>
@@ -618,6 +706,15 @@
618
706
  </xsl:otherwise>
619
707
  </xsl:choose>
620
708
  </xsl:for-each>
709
+
710
+ <!-- move note(s) after ul/ol into first 'li' -->
711
+ <xsl:if test="not(ancestor::bipm:quote)">
712
+ <xsl:variable name="list_id" select="generate-id(..)"/>
713
+ <xsl:for-each select="../following-sibling::bipm:note[generate-id(preceding-sibling::*[not(local-name()='note') and not(local-name()='quote')][1]) = $list_id]">
714
+ <xsl:call-template name="change_note_kind"/>
715
+ </xsl:for-each>
716
+ </xsl:if>
717
+
621
718
 
622
719
  <xsl:if test="ancestor::bipm:quote or not(ancestor::bipm:table)">
623
720
 
@@ -726,7 +823,7 @@
726
823
  </xsl:choose>
727
824
  </xsl:variable>
728
825
 
729
- <xsl:number value="$start_value + $curr_value" format="{$format}"/>
826
+ <xsl:number value="$start_value + $curr_value" format="{$format}" lang="en"/>
730
827
 
731
828
  </xsl:otherwise>
732
829
  </xsl:choose>
@@ -738,6 +835,31 @@
738
835
  </xsl:when>
739
836
  </xsl:choose>
740
837
  </xsl:template>
838
+
839
+ <xsl:template match="bipm:clause[@type = 'index']" mode="flatxml"/>
840
+ <!-- <xsl:template match="bipm:clause[@type = 'index']" mode="flatxml">
841
+ <xsl:copy>
842
+ <xsl:apply-templates select="@*" mode="flatxml_index"/>
843
+ <xsl:apply-templates mode="flatxml_index"/>
844
+ </xsl:copy>
845
+ </xsl:template>
846
+
847
+ <xsl:template match="@*|node()" mode="flatxml_index">
848
+ <xsl:copy>
849
+ <xsl:apply-templates select="@*|node()" mode="flatxml_index"/>
850
+ </xsl:copy>
851
+ </xsl:template>
852
+
853
+ <xsl:template match="bipm:xref" mode="flatxml_index">
854
+ <xsl:copy>
855
+ <xsl:apply-templates select="@*" mode="flatxml_index"/>
856
+ <xsl:attribute name="id">
857
+ <xsl:value-of select="generate-id(.)"/>
858
+ </xsl:attribute>
859
+ <xsl:apply-templates mode="flatxml_index"/>
860
+ </xsl:copy>
861
+ </xsl:template> -->
862
+
741
863
  <!-- ================================= -->
742
864
  <!-- END: Flattening xml for fit notes at page sides (margins) -->
743
865
  <!-- ================================= -->
@@ -832,43 +954,47 @@
832
954
  <xsl:apply-templates select="bipm:boilerplate/bipm:license-statement"/>
833
955
 
834
956
  <fo:block-container absolute-position="fixed" top="200mm" height="69mm" font-family="Times New Roman" text-align="center" display-align="after">
835
- <xsl:apply-templates select="bipm:boilerplate/bipm:feedback-statement"/>
836
- <xsl:variable name="ISBN" select="normalize-space(bipm:bibdata/bipm:docidentifier[@type='ISBN'])"/>
837
- <xsl:if test="$ISBN != ''">
838
- <fo:block margin-top="15mm">
839
- <xsl:text>ISBN </xsl:text><xsl:value-of select="$ISBN"/>
840
- </fo:block>
841
- </xsl:if>
957
+ <fo:block>
958
+ <xsl:apply-templates select="bipm:boilerplate/bipm:feedback-statement"/>
959
+ <xsl:variable name="ISBN" select="normalize-space(bipm:bibdata/bipm:docidentifier[@type='ISBN'])"/>
960
+ <xsl:if test="$ISBN != ''">
961
+ <fo:block margin-top="15mm">
962
+ <xsl:text>ISBN </xsl:text><xsl:value-of select="$ISBN"/>
963
+ </fo:block>
964
+ </xsl:if>
965
+ </fo:block>
842
966
  </fo:block-container>
843
967
 
844
968
  </fo:flow>
845
969
  </fo:page-sequence>
846
970
 
847
- <fo:page-sequence master-reference="document" force-page-count="no-force">
848
- <xsl:call-template name="insertFootnoteSeparator"/>
849
-
850
- <xsl:variable name="header-title">
851
- <xsl:choose>
852
- <xsl:when test="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab']">
853
- <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
854
- </xsl:when>
855
- <xsl:otherwise>
856
- <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]" mode="header"/>
857
- </xsl:otherwise>
858
- </xsl:choose>
859
- </xsl:variable>
860
- <xsl:call-template name="insertHeaderFooter">
861
- <xsl:with-param name="header-title" select="$header-title"/>
862
- </xsl:call-template>
863
-
864
- <fo:flow flow-name="xsl-region-body">
865
- <fo:block line-height="135%">
866
- <!-- <xsl:apply-templates select="bipm:preface/bipm:abstract" /> -->
867
- <xsl:apply-templates select="bipm:preface/*[1]"/>
868
- </fo:block>
869
- </fo:flow>
870
- </fo:page-sequence>
871
-
971
+
972
+ <xsl:if test="bipm:preface/*">
973
+ <fo:page-sequence master-reference="document" force-page-count="no-force">
974
+ <xsl:call-template name="insertFootnoteSeparator"/>
975
+
976
+ <xsl:variable name="header-title">
977
+ <xsl:choose>
978
+ <xsl:when test="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab']">
979
+ <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
980
+ </xsl:when>
981
+ <xsl:otherwise>
982
+ <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]" mode="header"/>
983
+ </xsl:otherwise>
984
+ </xsl:choose>
985
+ </xsl:variable>
986
+ <xsl:call-template name="insertHeaderFooter">
987
+ <xsl:with-param name="header-title" select="$header-title"/>
988
+ </xsl:call-template>
989
+
990
+ <fo:flow flow-name="xsl-region-body">
991
+ <fo:block line-height="135%">
992
+ <!-- <xsl:apply-templates select="bipm:preface/bipm:abstract" /> -->
993
+ <xsl:apply-templates select="bipm:preface/*[1]"/>
994
+ </fo:block>
995
+ </fo:flow>
996
+ </fo:page-sequence>
997
+ </xsl:if>
872
998
 
873
999
 
874
1000
  <xsl:variable name="docid">
@@ -915,7 +1041,7 @@
915
1041
  <fo:table-column column-width="127mm"/>
916
1042
  <fo:table-column column-width="12mm"/>
917
1043
  <fo:table-body>
918
- <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and not(@type = 'annex') and not(@parent = 'annex')]">
1044
+ <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and not(@type = 'annex') and not(@type = 'index') and not(@parent = 'annex')]">
919
1045
  <xsl:call-template name="insertContentItem"/>
920
1046
  </xsl:for-each>
921
1047
  <xsl:if test="$doctype ='brochure'">
@@ -929,6 +1055,9 @@
929
1055
  <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and (@type = 'annex')]"> <!-- or (@level = 2 and @parent = 'annex') -->
930
1056
  <xsl:call-template name="insertContentItem"/>
931
1057
  </xsl:for-each>
1058
+ <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and (@type = 'index')]">
1059
+ <xsl:call-template name="insertContentItem"/>
1060
+ </xsl:for-each>
932
1061
  </fo:table-body>
933
1062
  </fo:table>
934
1063
  </xsl:if>
@@ -959,6 +1088,9 @@
959
1088
  <!-- Bibliography -->
960
1089
  <xsl:apply-templates select="bipm:bibliography/bipm:references[not(@normative='true')]" mode="sections"/>
961
1090
 
1091
+ <!-- Index -->
1092
+ <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:clause[@type = 'index']" mode="index"/>
1093
+
962
1094
  <!-- End Document Pages -->
963
1095
 
964
1096
 
@@ -969,32 +1101,10 @@
969
1101
  </xsl:when>
970
1102
  <xsl:otherwise> <!-- independentAppendix != '' -->
971
1103
 
972
-
973
- <!-- <fo:page-sequence master-reference="appendix" initial-page-number="1" force-page-count="no-force">
974
- <xsl:call-template name="insertFootnoteSeparator"/>
975
- <xsl:call-template name="insertHeaderFooterAppendix"/>
976
- <fo:flow flow-name="xsl-region-body" font-family="Times New Roman">
977
- <fo:block-container border-bottom="1.5pt solid rgb(79, 129, 189)" margin-bottom="36pt">
978
- <fo:block font-family="Arial" font-size="24pt" font-weight="bold" color="rgb(23, 54, 93)">
979
- <fo:block>
980
- <xsl:choose>
981
- <xsl:when test="$lang = 'fr'">Annexe </xsl:when>
982
- <xsl:otherwise>Appendix </xsl:otherwise>
983
- </xsl:choose>
984
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix"/>
985
- <xsl:text>. </xsl:text>
986
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix' and @language = $lang]"/>
987
- </fo:block>
988
- </fo:block>
989
- </fo:block-container>
990
-
991
- <fo:block line-height="130%">
992
- <xsl:apply-templates select="bipm:sections/*"/>
993
- </fo:block>
994
-
995
- <fo:block id="theLastPage"/>
996
- </fo:flow>
997
- </fo:page-sequence> -->
1104
+
1105
+ <xsl:variable name="docid">
1106
+ <xsl:call-template name="getDocumentId"/>
1107
+ </xsl:variable>
998
1108
 
999
1109
  <fo:page-sequence master-reference="document" force-page-count="no-force">
1000
1110
 
@@ -1023,18 +1133,22 @@
1023
1133
  <fo:block-container font-size="18pt" font-weight="bold" text-align="center">
1024
1134
  <fo:block>
1025
1135
 
1026
- <xsl:variable name="title">
1027
- <xsl:choose>
1028
- <xsl:when test="$independentAppendix != ''">
1029
- <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='appendix']"/>
1030
- </xsl:when>
1031
- <xsl:otherwise> <!-- doctype = 'guide' -->
1032
- <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='main']"/>
1033
- </xsl:otherwise>
1034
- </xsl:choose>
1035
- </xsl:variable>
1136
+ <!-- <xsl:variable name="title"> -->
1137
+ <xsl:choose>
1138
+ <xsl:when test="$independentAppendix != ''">
1139
+ <xsl:apply-templates select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='appendix']" mode="title"/>
1140
+ <fo:block>
1141
+ <xsl:apply-templates select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='annex']" mode="title"/>
1142
+ </fo:block>
1143
+ </xsl:when>
1144
+ <xsl:otherwise> <!-- doctype = 'guide' -->
1145
+ <xsl:apply-templates select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='main']" mode="title"/>
1146
+ </xsl:otherwise>
1147
+ </xsl:choose>
1148
+ <!-- </xsl:variable> -->
1149
+
1036
1150
 
1037
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1151
+ <!-- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1038
1152
 
1039
1153
  <xsl:choose>
1040
1154
  <xsl:when test="$curr_lang = 'en' and contains($title, $mep_text)">
@@ -1045,7 +1159,7 @@
1045
1159
  <xsl:otherwise>
1046
1160
  <xsl:value-of select="$title"/>
1047
1161
  </xsl:otherwise>
1048
- </xsl:choose>
1162
+ </xsl:choose> -->
1049
1163
 
1050
1164
  </fo:block>
1051
1165
 
@@ -1057,7 +1171,7 @@
1057
1171
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$curr_lang]),'#',$part_num)"/>
1058
1172
  </xsl:if>
1059
1173
  <xsl:text>: </xsl:text>
1060
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'part']"/>
1174
+ <xsl:apply-templates select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'part']" mode="title"/>
1061
1175
  </fo:block>
1062
1176
  </xsl:if>
1063
1177
  <xsl:variable name="subpart_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
@@ -1067,7 +1181,7 @@
1067
1181
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang=$curr_lang]),'#',$subpart_num)"/>
1068
1182
  </xsl:if>
1069
1183
  <xsl:text>: </xsl:text>
1070
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'subpart']"/>
1184
+ <xsl:apply-templates select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'subpart']" mode="title"/>
1071
1185
  </fo:block>
1072
1186
  </xsl:if>
1073
1187
 
@@ -1138,6 +1252,8 @@
1138
1252
 
1139
1253
  <xsl:apply-templates select="bipm:bibliography/bipm:references[not(@normative='true')]" mode="sections"/>
1140
1254
 
1255
+ <!-- Index -->
1256
+ <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:clause[@type = 'index']" mode="index"/>
1141
1257
 
1142
1258
  </xsl:otherwise>
1143
1259
  </xsl:choose>
@@ -1236,8 +1352,8 @@
1236
1352
 
1237
1353
  <fo:block-container absolute-position="fixed" left="12.5mm" top="60mm">
1238
1354
 
1239
- <fo:block font-size="22.2pt" font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'main']"/></fo:block>
1240
- <fo:block font-size="22.2pt" font-weight="{$weight-bold}" margin-top="1mm"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'main']"/></fo:block>
1355
+ <fo:block font-size="22.2pt" font-weight="{$weight-normal}"><xsl:value-of select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'main']"/></fo:block>
1356
+ <fo:block font-size="22.2pt" font-weight="{$weight-bold}" margin-top="1mm"><xsl:value-of select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'en' and @type = 'main']"/></fo:block>
1241
1357
 
1242
1358
  <xsl:variable name="edition_str">édition</xsl:variable>
1243
1359
  <!-- <xsl:choose>
@@ -1245,119 +1361,169 @@
1245
1361
  <xsl:otherwise>edition</xsl:otherwise>
1246
1362
  </xsl:choose>
1247
1363
  </xsl:variable> -->
1248
- <fo:block font-size="14pt" font-weight="{$weight-bold}" margin-top="4mm"><xsl:value-of select="concat(/bipm:bipm-standard/bipm:bibdata/bipm:edition, ' ', $edition_str, ' ', $copyrightYear)"/></fo:block>
1364
+ <fo:block font-size="14pt" font-weight="{$weight-bold}" margin-top="4mm"><xsl:value-of select="concat((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:edition, ' ', $edition_str, ' ', $copyrightYear)"/></fo:block>
1249
1365
  </fo:block-container>
1250
1366
 
1251
- <fo:block-container height="98%" display-align="center">
1252
-
1253
- <!-- Appendix titles processing -->
1254
- <xsl:variable name="appendix_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
1255
- <xsl:if test="$appendix_num != ''">
1256
- <fo:block font-size="17pt" font-weight="{$weight-normal}">Annexe <xsl:value-of select="$appendix_num"/></fo:block>
1257
- <fo:block font-size="17pt" font-weight="{$weight-bold}">Appendix <xsl:value-of select="$appendix_num"/></fo:block>
1258
- </xsl:if>
1259
-
1260
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix']">
1261
- <fo:block font-size="30.4pt">
1262
- <fo:block> </fo:block>
1263
- <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'appendix']"/></fo:block>
1264
- <fo:block> </fo:block>
1265
- <fo:block font-weight="{$weight-bold}">
1266
- <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'appendix']"/>
1267
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1268
- <xsl:choose>
1269
- <xsl:when test="contains($title_en, $mep_text)">
1270
- <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1271
- <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1272
- <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1273
- </xsl:when>
1274
- <xsl:otherwise>
1275
- <xsl:value-of select="$title_en"/>
1276
- </xsl:otherwise>
1277
- </xsl:choose>
1278
- </fo:block>
1279
- </fo:block>
1280
- </xsl:if>
1281
- <!-- End Appendix titles processing -->
1367
+ <!-- <fo:block-container height="98%" display-align="center"> -->
1368
+ <fo:block-container absolute-position="fixed" left="12.5mm" top="92mm" height="170mm" width="144mm" display-align="center">
1369
+ <fo:block>
1282
1370
 
1371
+ <xsl:variable name="title_appendix_fr">
1372
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'appendix']" mode="title"/>
1373
+ </xsl:variable>
1374
+ <xsl:variable name="title_appendix_en">
1375
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'en' and @type = 'appendix']" mode="title"/>
1376
+ </xsl:variable>
1377
+ <xsl:variable name="title_annex_fr">
1378
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'annex']" mode="title"/>
1379
+ </xsl:variable>
1380
+ <xsl:variable name="title_annex_en">
1381
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'en' and @type = 'annex']" mode="title"/>
1382
+ </xsl:variable>
1383
+ <xsl:variable name="title_part_fr">
1384
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']" mode="title"/>
1385
+ </xsl:variable>
1386
+ <xsl:variable name="title_part_en">
1387
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']" mode="title"/>
1388
+ </xsl:variable>
1389
+ <xsl:variable name="title_subpart_fr">
1390
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'subpart']" mode="title"/>
1391
+ </xsl:variable>
1392
+ <xsl:variable name="title_subpart_en">
1393
+ <xsl:apply-templates select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']" mode="title"/>
1394
+ </xsl:variable>
1395
+
1396
+ <xsl:variable name="titles_length" select="string-length($title_appendix_fr) + string-length($title_appendix_en) + string-length($title_annex_fr) + string-length($title_annex_en) + string-length($title_part_fr) + string-length($title_part_en) + string-length($title_subpart_fr) + string-length($title_subpart_fr)"/>
1397
+
1398
+ <xsl:variable name="font-size-number-factor">
1399
+ <xsl:choose>
1400
+ <xsl:when test="$titles_length &gt; 350">0.7</xsl:when>
1401
+ <xsl:when test="$titles_length &gt; 250">0.85</xsl:when>
1402
+ <xsl:otherwise>1</xsl:otherwise>
1403
+ </xsl:choose>
1404
+ </xsl:variable>
1405
+
1406
+ <xsl:variable name="space-factor">
1407
+ <xsl:choose>
1408
+ <xsl:when test="$titles_length &gt; 250">0.3</xsl:when>
1409
+ <xsl:otherwise>1</xsl:otherwise>
1410
+ </xsl:choose>
1411
+ </xsl:variable>
1412
+
1413
+ <xsl:variable name="font-size-factor">
1414
+ <xsl:choose>
1415
+ <xsl:when test="$titles_length &gt; 350">0.5</xsl:when>
1416
+ <xsl:when test="$titles_length &gt; 250">0.65</xsl:when>
1417
+ <xsl:otherwise>1</xsl:otherwise>
1418
+ </xsl:choose>
1419
+ </xsl:variable>
1283
1420
 
1284
- <!-- Part titles processing -->
1285
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'part']">
1286
- <xsl:variable name="part_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:part)"/>
1287
- <xsl:if test="$part_num != ''">
1288
- <!-- Part -->
1289
- <fo:block font-size="17pt" font-weight="{$weight-normal}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='fr']),'#',$part_num)"/></fo:block>
1290
- <!-- Partie -->
1291
- <fo:block font-size="17pt" font-weight="{$weight-bold}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part_num)"/></fo:block>
1421
+ <!-- Appendix titles processing -->
1422
+ <xsl:variable name="appendix_num" select="normalize-space((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
1423
+ <xsl:if test="$appendix_num != ''">
1424
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-normal}">Annexe <xsl:value-of select="$appendix_num"/></fo:block>
1425
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-bold}">Appendix <xsl:value-of select="$appendix_num"/></fo:block>
1292
1426
  </xsl:if>
1293
-
1294
- <fo:block font-size="30.4pt">
1295
-
1296
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']">
1297
- <fo:block> </fo:block>
1298
- <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']"/></fo:block>
1299
- </xsl:if>
1300
-
1301
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']">
1302
- <fo:block> </fo:block>
1427
+
1428
+
1429
+ <xsl:if test="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@type = 'appendix']">
1430
+ <fo:block font-size="{$font-size-factor * 30.4}pt">
1431
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1432
+ <fo:block font-weight="{$weight-normal}"><xsl:copy-of select="$title_appendix_fr"/></fo:block>
1433
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1303
1434
  <fo:block font-weight="{$weight-bold}">
1304
- <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']"/>
1305
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1306
- <xsl:choose>
1307
- <xsl:when test="contains($title_en, $mep_text)">
1308
- <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1309
- <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1310
- <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1311
- </xsl:when>
1312
- <xsl:otherwise>
1313
- <xsl:value-of select="$title_en"/>
1314
- </xsl:otherwise>
1315
- </xsl:choose>
1435
+ <xsl:copy-of select="$title_appendix_en"/>
1316
1436
  </fo:block>
1437
+ </fo:block>
1438
+ </xsl:if>
1439
+ <!-- End Appendix titles processing -->
1440
+
1441
+ <!-- Annex title processing -->
1442
+ <xsl:if test="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@type = 'annex']">
1443
+ <xsl:variable name="annex_num" select="normalize-space((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:annexid)"/>
1444
+ <xsl:if test="$annex_num != ''">
1445
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1446
+ <!-- Annexe -->
1447
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-normal}">Annexe <xsl:value-of select="$annex_num"/></fo:block>
1448
+ <!-- Annex -->
1449
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-bold}">Annex <xsl:value-of select="$annex_num"/></fo:block>
1317
1450
  </xsl:if>
1318
- </fo:block>
1319
- </xsl:if>
1320
- <!-- End Part titles processing -->
1321
-
1322
- <!-- Sub-part titles processing -->
1323
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'subpart']">
1324
- <xsl:variable name="subpart_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
1325
- <xsl:if test="$subpart_num != ''">
1326
- <!-- Sub-part -->
1327
- <fo:block font-size="17pt" font-weight="{$weight-normal}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang='fr']),'#',$subpart_num)"/> <xsl:value-of select="$subpart_num"/></fo:block>
1328
- <!-- Partie de sub -->
1329
- <fo:block font-size="17pt" font-weight="{$weight-bold}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang='en']),'#',$subpart_num)"/> <xsl:value-of select="$subpart_num"/></fo:block>
1451
+
1452
+ <fo:block font-size="{$font-size-factor * 30.4}pt">
1453
+
1454
+ <xsl:if test="normalize-space($title_annex_fr) != ''">
1455
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1456
+ <fo:block font-weight="{$weight-normal}"><xsl:copy-of select="$title_annex_fr"/></fo:block>
1457
+ </xsl:if>
1458
+
1459
+ <xsl:if test="normalize-space($title_annex_en) != ''">
1460
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1461
+ <fo:block font-weight="{$weight-bold}">
1462
+ <xsl:copy-of select="$title_annex_en"/>
1463
+ </fo:block>
1464
+ </xsl:if>
1465
+ </fo:block>
1330
1466
  </xsl:if>
1331
-
1332
- <fo:block font-size="30.4pt">
1333
-
1334
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'subpart']">
1335
- <fo:block> </fo:block>
1336
- <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'subpart']"/></fo:block>
1467
+ <!-- End Annex titles processing -->
1468
+
1469
+ <!-- Part titles processing -->
1470
+ <xsl:if test="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@type = 'part']">
1471
+ <xsl:variable name="part_num" select="normalize-space((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:part)"/>
1472
+ <xsl:if test="$part_num != ''">
1473
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1474
+ <!-- Part -->
1475
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-normal}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='fr']),'#',$part_num)"/></fo:block>
1476
+ <!-- Partie -->
1477
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-bold}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part_num)"/></fo:block>
1337
1478
  </xsl:if>
1338
-
1339
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']">
1340
- <fo:block> </fo:block>
1341
- <fo:block font-weight="{$weight-bold}">
1342
- <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']"/>
1343
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1344
- <xsl:choose>
1345
- <xsl:when test="contains($title_en, $mep_text)">
1346
- <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1347
- <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1348
- <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1349
- </xsl:when>
1350
- <xsl:otherwise>
1351
- <xsl:value-of select="$title_en"/>
1352
- </xsl:otherwise>
1353
- </xsl:choose>
1354
- </fo:block>
1479
+
1480
+ <fo:block font-size="{$font-size-factor * 30.4}pt">
1481
+
1482
+ <xsl:if test="normalize-space($title_part_fr) != ''">
1483
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1484
+ <fo:block font-weight="{$weight-normal}"><xsl:copy-of select="$title_part_fr"/></fo:block>
1485
+ </xsl:if>
1486
+
1487
+ <xsl:if test="normalize-space($title_part_en) != ''">
1488
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1489
+ <fo:block font-weight="{$weight-bold}">
1490
+ <xsl:copy-of select="$title_part_en"/>
1491
+ </fo:block>
1492
+ </xsl:if>
1493
+ </fo:block>
1494
+ </xsl:if>
1495
+ <!-- End Part titles processing -->
1496
+
1497
+ <!-- Sub-part titles processing -->
1498
+ <xsl:if test="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@type = 'subpart']">
1499
+ <xsl:variable name="subpart_num" select="normalize-space((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
1500
+ <xsl:if test="$subpart_num != ''">
1501
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1502
+ <!-- Sub-part -->
1503
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-normal}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang='fr']),'#',$subpart_num)"/> <xsl:value-of select="$subpart_num"/></fo:block>
1504
+ <!-- Partie de sub -->
1505
+ <fo:block font-size="{$font-size-number-factor * 17}pt" font-weight="{$weight-bold}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang='en']),'#',$subpart_num)"/> <xsl:value-of select="$subpart_num"/></fo:block>
1355
1506
  </xsl:if>
1356
- </fo:block>
1357
- </xsl:if>
1358
- <!-- End Sub-part titles processing -->
1507
+
1508
+ <fo:block font-size="{$font-size-factor * 30.4}pt">
1509
+
1510
+ <xsl:if test="normalize-space($title_subpart_fr) != ''">
1511
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1512
+ <fo:block font-weight="{$weight-normal}"><xsl:copy-of select="$title_subpart_fr"/></fo:block>
1513
+ </xsl:if>
1514
+
1515
+ <xsl:if test="normalize-space($title_subpart_en) != ''">
1516
+ <fo:block font-size="{$space-factor * 30.4}pt"> </fo:block>
1517
+ <fo:block font-weight="{$weight-bold}">
1518
+ <xsl:copy-of select="$title_subpart_en"/>
1519
+
1520
+ </fo:block>
1521
+ </xsl:if>
1522
+ </fo:block>
1523
+ </xsl:if>
1524
+ <!-- End Sub-part titles processing -->
1359
1525
 
1360
-
1526
+ </fo:block>
1361
1527
  </fo:block-container>
1362
1528
 
1363
1529
  <!-- <fo:block-container>
@@ -1388,19 +1554,19 @@
1388
1554
 
1389
1555
  <fo:block-container absolute-position="fixed" left="12mm" top="242mm" height="42mm" width="140mm" display-align="after">
1390
1556
  <fo:block font-size="12pt">
1391
- <fo:block><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'fr']"/></fo:block>
1392
- <fo:block><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'en']"/></fo:block>
1557
+ <fo:block><xsl:value-of select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'fr']"/></fo:block>
1558
+ <fo:block><xsl:value-of select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'en']"/></fo:block>
1393
1559
  <fo:block> </fo:block>
1394
1560
  <!-- <fo:block>BIPM SI MEP S1</fo:block> -->
1395
1561
  <fo:block>
1396
1562
  <xsl:call-template name="printRevisionDate">
1397
- <xsl:with-param name="date" select="/bipm:bipm-standard/bipm:bibdata/bipm:version/bipm:revision-date"/>
1563
+ <xsl:with-param name="date" select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:version/bipm:revision-date"/>
1398
1564
  <xsl:with-param name="lang" select="'en'"/>
1399
1565
  </xsl:call-template>
1400
1566
  </fo:block>
1401
1567
  <fo:block>
1402
1568
  <xsl:call-template name="printRevisionDate">
1403
- <xsl:with-param name="date" select="/bipm:bipm-standard/bipm:bibdata/bipm:version/bipm:revision-date"/>
1569
+ <xsl:with-param name="date" select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:version/bipm:revision-date"/>
1404
1570
  <xsl:with-param name="lang" select="'fr'"/>
1405
1571
  </xsl:call-template>
1406
1572
  </fo:block>
@@ -1442,74 +1608,95 @@
1442
1608
  </xsl:template>
1443
1609
 
1444
1610
  <xsl:template name="insertInnerCoverPage">
1445
- <fo:page-sequence master-reference="title-page" format="1" initial-page-number="1" force-page-count="even">
1446
-
1447
- <fo:flow flow-name="xsl-region-body" font-family="Arial">
1448
-
1449
- <xsl:variable name="languages">
1450
- <xsl:call-template name="getLanguages"/>
1451
- </xsl:variable>
1452
-
1453
- <xsl:variable name="titles">
1454
- <xsl:for-each select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title">
1455
- <xsl:copy-of select="."/>
1456
- </xsl:for-each>
1457
- </xsl:variable>
1458
-
1459
- <xsl:for-each select="xalan:nodeset($languages)/lang">
1460
- <xsl:variable name="curr_lang" select="."/>
1461
- <xsl:variable name="title" select="xalan:nodeset($titles)//bipm:title[@language = $curr_lang and @type='cover']"/>
1462
- <xsl:choose>
1463
- <xsl:when test="position() = 1">
1464
- <fo:block-container font-size="12pt" font-weight="bold" width="55mm">
1465
- <fo:block>
1466
- <xsl:call-template name="add-letter-spacing">
1467
- <xsl:with-param name="text" select="$title"/>
1468
- <xsl:with-param name="letter-spacing" select="0.09"/>
1469
- </xsl:call-template>
1470
- </fo:block>
1471
- <fo:block font-size="10pt">
1472
- <fo:block margin-bottom="6pt"> </fo:block>
1473
- <fo:block margin-bottom="6pt"> </fo:block>
1474
- <fo:block margin-bottom="6pt"> </fo:block>
1475
- <fo:block margin-bottom="6pt" line-height="2.4"> </fo:block>
1476
- </fo:block>
1477
- </fo:block-container>
1478
- </xsl:when>
1479
- <xsl:otherwise>
1480
- <fo:block font-size="10pt" margin-bottom="3pt">
1481
- <xsl:variable name="lang_version">
1482
- <xsl:call-template name="getLangVersion">
1483
- <xsl:with-param name="lang" select="$curr_lang"/>
1484
- </xsl:call-template>
1485
- </xsl:variable>
1486
- <xsl:call-template name="add-letter-spacing">
1487
- <xsl:with-param name="text" select="normalize-space($lang_version)"/>
1488
- <xsl:with-param name="letter-spacing" select="0.09"/>
1489
- </xsl:call-template>
1490
- </fo:block>
1491
- <fo:block-container font-size="12pt" font-weight="bold" border-top="0.5pt solid black" padding-top="2mm" width="45mm">
1492
- <fo:block>
1493
- <xsl:call-template name="add-letter-spacing">
1494
- <xsl:with-param name="text" select="$title"/>
1495
- <xsl:with-param name="letter-spacing" select="0.09"/>
1496
- </xsl:call-template>
1497
- </fo:block>
1498
- </fo:block-container>
1499
- </xsl:otherwise>
1500
-
1501
- </xsl:choose>
1502
- </xsl:for-each>
1611
+
1612
+ <xsl:if test="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title[@type='cover']">
1613
+
1614
+ <fo:page-sequence master-reference="title-page" format="1" initial-page-number="1" force-page-count="even">
1503
1615
 
1616
+ <fo:flow flow-name="xsl-region-body" font-family="Arial">
1504
1617
 
1618
+ <xsl:variable name="languages">
1619
+ <xsl:call-template name="getLanguages"/>
1620
+ </xsl:variable>
1505
1621
 
1622
+ <xsl:variable name="titles">
1623
+ <xsl:for-each select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title">
1624
+ <xsl:copy-of select="."/>
1625
+ </xsl:for-each>
1626
+ </xsl:variable>
1506
1627
 
1507
- </fo:flow>
1508
- </fo:page-sequence>
1509
-
1628
+ <xsl:for-each select="xalan:nodeset($languages)/lang">
1629
+ <xsl:variable name="curr_lang" select="."/>
1630
+ <xsl:variable name="title" select="xalan:nodeset($titles)//bipm:title[@language = $curr_lang and @type='cover']"/>
1631
+ <xsl:choose>
1632
+ <xsl:when test="position() = 1">
1633
+ <fo:block-container font-size="12pt" font-weight="bold" width="55mm">
1634
+ <fo:block>
1635
+ <xsl:call-template name="add-letter-spacing">
1636
+ <xsl:with-param name="text" select="$title"/>
1637
+ <xsl:with-param name="letter-spacing" select="0.09"/>
1638
+ </xsl:call-template>
1639
+ </fo:block>
1640
+ <fo:block font-size="10pt">
1641
+ <fo:block margin-bottom="6pt"> </fo:block>
1642
+ <fo:block margin-bottom="6pt"> </fo:block>
1643
+ <fo:block margin-bottom="6pt"> </fo:block>
1644
+ <fo:block margin-bottom="6pt" line-height="2.4"> </fo:block>
1645
+ </fo:block>
1646
+ </fo:block-container>
1647
+ </xsl:when>
1648
+ <xsl:otherwise>
1649
+ <fo:block font-size="10pt" margin-bottom="3pt">
1650
+ <xsl:variable name="lang_version">
1651
+ <xsl:call-template name="getLangVersion">
1652
+ <xsl:with-param name="lang" select="$curr_lang"/>
1653
+ </xsl:call-template>
1654
+ </xsl:variable>
1655
+ <xsl:call-template name="add-letter-spacing">
1656
+ <xsl:with-param name="text" select="normalize-space($lang_version)"/>
1657
+ <xsl:with-param name="letter-spacing" select="0.09"/>
1658
+ </xsl:call-template>
1659
+ </fo:block>
1660
+ <fo:block-container font-size="12pt" font-weight="bold" border-top="0.5pt solid black" padding-top="2mm" width="45mm">
1661
+ <fo:block>
1662
+ <xsl:call-template name="add-letter-spacing">
1663
+ <xsl:with-param name="text" select="$title"/>
1664
+ <xsl:with-param name="letter-spacing" select="0.09"/>
1665
+ </xsl:call-template>
1666
+ </fo:block>
1667
+ </fo:block-container>
1668
+ </xsl:otherwise>
1669
+
1670
+ </xsl:choose>
1671
+ </xsl:for-each>
1672
+
1673
+
1674
+
1675
+
1676
+ </fo:flow>
1677
+ </fo:page-sequence>
1678
+ </xsl:if>
1510
1679
  </xsl:template>
1511
1680
  <!-- End Cover Pages -->
1512
1681
 
1682
+
1683
+ <xsl:template match="bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en']/text()" priority="3">
1684
+ <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1685
+ <xsl:choose>
1686
+ <xsl:when test="contains(., $mep_text)">
1687
+ <xsl:value-of select="substring-before(., $mep_text)"/>
1688
+ <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1689
+ <xsl:value-of select="substring-after(., $mep_text)"/>
1690
+ </xsl:when>
1691
+ <xsl:otherwise>
1692
+ <xsl:value-of select="."/>
1693
+ </xsl:otherwise>
1694
+ </xsl:choose>
1695
+ </xsl:template>
1696
+
1697
+
1698
+
1699
+
1513
1700
  <xsl:template name="insertSeparatorPage">
1514
1701
  <!-- 3 Pages with BIPM Metro logo -->
1515
1702
  <fo:page-sequence master-reference="document" force-page-count="no-force">
@@ -1606,7 +1793,12 @@
1606
1793
  <xsl:attribute name="margin-left">25mm</xsl:attribute>
1607
1794
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1608
1795
  </xsl:if>
1609
-
1796
+ <xsl:if test="@type = 'index'">
1797
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
1798
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1799
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1800
+ <xsl:attribute name="space-before">14pt</xsl:attribute>
1801
+ </xsl:if>
1610
1802
  <!-- <xsl:if test="@level = 2 and not(following-sibling::item[@display='true']) and not(item[@display='true'])">
1611
1803
  <xsl:attribute name="space-after">12pt</xsl:attribute>
1612
1804
  </xsl:if>
@@ -1645,11 +1837,12 @@
1645
1837
  <xsl:if test="@level &gt;= 3">
1646
1838
  <fo:inline padding-right="2mm"><xsl:value-of select="@section"/></fo:inline>
1647
1839
  </xsl:if>
1648
- <xsl:variable name="sectionTitle">
1840
+ <!-- <xsl:variable name="sectionTitle">
1649
1841
  <xsl:apply-templates select="title"/>
1650
- </xsl:variable>
1842
+ </xsl:variable> -->
1651
1843
  <fo:inline>
1652
- <xsl:value-of select="$sectionTitle"/>
1844
+ <!-- <xsl:value-of select="$sectionTitle"/> -->
1845
+ <xsl:apply-templates select="title"/>
1653
1846
  </fo:inline>
1654
1847
  <!-- <xsl:text> </xsl:text> -->
1655
1848
  <!-- keep-together.within-line="always" -->
@@ -1672,7 +1865,9 @@
1672
1865
  <xsl:attribute name="padding-bottom"><xsl:value-of select="normalize-space($space-after)"/></xsl:attribute>
1673
1866
  </xsl:if>
1674
1867
  <fo:block>
1675
- <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1868
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1869
+ <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1870
+ </fo:basic-link>
1676
1871
  </fo:block>
1677
1872
  </fo:table-cell>
1678
1873
  </fo:table-row>
@@ -1723,7 +1918,10 @@
1723
1918
  </xsl:variable>
1724
1919
 
1725
1920
  <xsl:variable name="type">
1726
- <xsl:value-of select="local-name()"/>
1921
+ <xsl:choose>
1922
+ <xsl:when test="@type = 'index'">index</xsl:when>
1923
+ <xsl:otherwise><xsl:value-of select="local-name()"/></xsl:otherwise>
1924
+ </xsl:choose>
1727
1925
  </xsl:variable>
1728
1926
 
1729
1927
  <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" display="{$display}">
@@ -1733,11 +1931,19 @@
1733
1931
  <title>
1734
1932
  <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1735
1933
  </title>
1736
- <xsl:apply-templates mode="contents"/>
1934
+ <xsl:if test="$type != 'index'">
1935
+ <xsl:apply-templates mode="contents"/>
1936
+ </xsl:if>
1737
1937
  </item>
1738
1938
  </xsl:if>
1739
1939
  </xsl:template>
1740
1940
 
1941
+ <xsl:template match="*[local-name() = 'strong']" mode="contents_item" priority="2">
1942
+ <!-- <xsl:copy> -->
1943
+ <xsl:apply-templates mode="contents_item"/>
1944
+ <!-- </xsl:copy> -->
1945
+ </xsl:template>
1946
+
1741
1947
  <!-- ============================= -->
1742
1948
  <!-- ============================= -->
1743
1949
 
@@ -2852,8 +3058,8 @@
2852
3058
  <xsl:if test=".//bipm:fn">
2853
3059
  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
2854
3060
  </xsl:if>
2855
- <!-- <xsl:call-template name="processBibitem"/> -->
2856
- <xsl:apply-templates/>
3061
+ <xsl:call-template name="processBibitem"/>
3062
+ <!-- <xsl:apply-templates /> -->
2857
3063
  </fo:block>
2858
3064
  </xsl:template>
2859
3065
 
@@ -2905,14 +3111,22 @@
2905
3111
  <fo:list-item-label end-indent="label-end()">
2906
3112
  <fo:block>
2907
3113
  <fo:inline>
2908
- <xsl:number format="1."/>
3114
+ <!-- <xsl:number format="1."/> -->
3115
+ <xsl:choose>
3116
+ <xsl:when test="bipm:docidentifier[@type='metanorma']">
3117
+ <xsl:value-of select="bipm:docidentifier[@type='metanorma']"/>
3118
+ </xsl:when>
3119
+ <xsl:otherwise>
3120
+ <xsl:number format="[1]"/>
3121
+ </xsl:otherwise>
3122
+ </xsl:choose>
2909
3123
  </fo:inline>
2910
3124
  </fo:block>
2911
3125
  </fo:list-item-label>
2912
3126
  <fo:list-item-body start-indent="body-start()">
2913
3127
  <fo:block>
2914
- <!-- <xsl:call-template name="processBibitem"/> -->
2915
- <xsl:apply-templates/>
3128
+ <xsl:call-template name="processBibitem"/>
3129
+ <!-- <xsl:apply-templates /> -->
2916
3130
  </fo:block>
2917
3131
  </fo:list-item-body>
2918
3132
  </fo:list-item>
@@ -2928,6 +3142,9 @@
2928
3142
  </fo:inline>
2929
3143
  </xsl:template>
2930
3144
 
3145
+ <xsl:template match="bipm:references/bipm:bibitem/bipm:docidentifier[@type='metanorma' and ../bipm:formattedref]"/>
3146
+
3147
+
2931
3148
  <xsl:template match="bipm:pagebreak">
2932
3149
  <fo:block break-after="page"/>
2933
3150
  <!-- <fo:block>&#xA0;</fo:block>
@@ -2953,29 +3170,38 @@
2953
3170
  <xsl:choose>
2954
3171
  <xsl:when test="@pagenumber='true'"><!-- ToC in Appendix, and page in references like this: « Le BIPM et la Convention du Mètre » (page 5). -->
2955
3172
  <fo:inline> <!-- font-weight="bold" -->
3173
+ <!-- DEBUG -->
3174
+ <xsl:if test="@id">
3175
+ <!-- <xsl:value-of select="concat('[', @id,']')"/> -->
3176
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
3177
+ </xsl:if>
2956
3178
  <fo:page-number-citation ref-id="{@target}"/>
3179
+ <!-- <xsl:if test="@to">&#x2013;<fo:page-number-citation ref-id="{@to}"/></xsl:if> -->
2957
3180
  </fo:inline>
2958
3181
  </xsl:when>
2959
3182
  <xsl:when test="starts-with(normalize-space(following-sibling::node()[1]), ')')">
2960
3183
  <!-- add , see p. N -->
2961
3184
  <!-- add , voir p. N -->
2962
- <xsl:apply-templates/>
2963
- <xsl:text>, </xsl:text>
3185
+ <xsl:apply-templates/>
2964
3186
 
2965
- <xsl:variable name="nosee" select="normalize-space(@nosee)"/>
2966
- <xsl:if test="$nosee != 'true'">
2967
- <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
2968
- <fo:inline>
2969
- <xsl:if test="ancestor::bipm:note_side">
2970
- <xsl:attribute name="font-style">italic</xsl:attribute>
2971
- </xsl:if>
2972
- <xsl:value-of select="ancestor::bipm:bipm-standard/bipm:localized-strings/bipm:localized-string[@key='see' and @language=$curr_lang]"/>
2973
- </fo:inline>
2974
- <xsl:text> </xsl:text>
2975
- </xsl:if>
3187
+ <xsl:variable name="nopage" select="normalize-space(@nopage)"/>
2976
3188
 
2977
- <xsl:text>p. </xsl:text>
2978
- <fo:page-number-citation ref-id="{@target}"/>
3189
+ <xsl:if test="$nopage != 'true'">
3190
+ <xsl:text>, </xsl:text>
3191
+ <xsl:variable name="nosee" select="normalize-space(@nosee)"/>
3192
+ <xsl:if test="$nosee != 'true'">
3193
+ <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
3194
+ <fo:inline>
3195
+ <xsl:if test="ancestor::bipm:note_side">
3196
+ <xsl:attribute name="font-style">italic</xsl:attribute>
3197
+ </xsl:if>
3198
+ <xsl:value-of select="ancestor::bipm:bipm-standard/bipm:localized-strings/bipm:localized-string[@key='see' and @language=$curr_lang]"/>
3199
+ </fo:inline>
3200
+ <xsl:text> </xsl:text>
3201
+ </xsl:if>
3202
+ <xsl:text>p. </xsl:text>
3203
+ <fo:page-number-citation ref-id="{@target}"/>
3204
+ </xsl:if>
2979
3205
  </xsl:when>
2980
3206
  <xsl:otherwise>
2981
3207
  <fo:inline><xsl:apply-templates/></fo:inline>
@@ -3032,6 +3258,9 @@
3032
3258
  </fo:inline>
3033
3259
  </xsl:template>
3034
3260
 
3261
+ <!-- DEBUG -->
3262
+ <!-- <xsl:template match="mathml:math" priority="10"/> -->
3263
+
3035
3264
  <!-- for chemical expressions, when prefix superscripted -->
3036
3265
  <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() = '' or not(mathml:mtext/text()))]/mathml:mtext" mode="mathml" priority="2">
3037
3266
  <mathml:mspace height="1ex"/>
@@ -3047,7 +3276,7 @@
3047
3276
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
3048
3277
  </xsl:copy>
3049
3278
  <!-- <xsl:copy-of select="."/> -->
3050
- <mathml:mspace height="1.4ex"/>
3279
+ <mathml:mspace height="1.47ex"/>
3051
3280
  </xsl:template>
3052
3281
 
3053
3282
  <!-- set script minimal font-size -->
@@ -3060,6 +3289,48 @@
3060
3289
  </xsl:copy>
3061
3290
  </xsl:template>
3062
3291
 
3292
+ <!-- issue 'over bar above equation with sub' fixing -->
3293
+ <xsl:template match="mathml:msub/mathml:mrow[1][mathml:mover and count(following-sibling::*) = 1 and following-sibling::mathml:mrow]" mode="mathml" priority="2">
3294
+ <mathml:mstyle>
3295
+ <xsl:copy-of select="."/>
3296
+ </mathml:mstyle>
3297
+ </xsl:template>
3298
+
3299
+ <!-- Decrease space between ()
3300
+ from:
3301
+ <mfenced open="(" close=")">
3302
+ <mrow>
3303
+ <mtext>Cu</mtext>
3304
+ </mrow>
3305
+ </mfenced>
3306
+ to:
3307
+ <mrow>
3308
+ <mtext>(Cu)</mtext>
3309
+ </mrow> -->
3310
+ <xsl:template match="mathml:mfenced[count(*) = 1 and *[count(*) = 1] and */*[count(*) = 0]] | mathml:mfenced[count(*) = 1 and *[count(*) = 1] and */*[count(*) = 1] and */*/*[count(*) = 0]]" mode="mathml" priority="2">
3311
+ <xsl:apply-templates mode="mathml"/>
3312
+ </xsl:template>
3313
+
3314
+ <xsl:template match="mathml:mfenced[count(*) = 1]/*[count(*) = 1]/*[count(*) = 0] | mathml:mfenced[count(*) = 1]/*[count(*) = 1]/*[count(*) = 1]/*[count(*) = 0]" mode="mathml" priority="2"> <!-- [not(following-sibling::*) and not(preceding-sibling::*)] -->
3315
+ <xsl:copy>
3316
+ <xsl:apply-templates select="@*" mode="mathml"/>
3317
+ <xsl:value-of select="ancestor::mathml:mfenced/@open"/>
3318
+ <xsl:value-of select="."/>
3319
+ <xsl:value-of select="ancestor::mathml:mfenced/@close"/>
3320
+ </xsl:copy>
3321
+ </xsl:template>
3322
+
3323
+ <!-- Decrease height of / and | -->
3324
+ <xsl:template match="mathml:mo[normalize-space(text()) = '/' or normalize-space(text()) = '|']" mode="mathml">
3325
+ <xsl:copy>
3326
+ <xsl:apply-templates select="@*" mode="mathml"/>
3327
+ <xsl:if test="not(@stretchy)">
3328
+ <xsl:attribute name="stretchy">false</xsl:attribute>
3329
+ </xsl:if>
3330
+ <xsl:apply-templates mode="mathml"/>
3331
+ </xsl:copy>
3332
+ </xsl:template>
3333
+
3063
3334
  <xsl:template name="insertHeaderFooter">
3064
3335
  <xsl:param name="header-title"/>
3065
3336
  <fo:static-content flow-name="header-odd">
@@ -3186,7 +3457,12 @@
3186
3457
  <xsl:value-of select="concat($day, ' ', $monthStr, ' ', $year)"/>
3187
3458
  </xsl:when>
3188
3459
  <xsl:otherwise>
3189
- <xsl:value-of select="concat($monthStr, ' ', $day, ', ', $year)"/>
3460
+ <!-- <xsl:value-of select="concat($monthStr, ' ', $day, ', ', $year)"/> -->
3461
+ <xsl:value-of select="$monthStr"/>
3462
+ <xsl:text> </xsl:text>
3463
+ <xsl:value-of select="$day"/>
3464
+ <xsl:if test="$day != '' and $year != ''"><xsl:text>, </xsl:text></xsl:if>
3465
+ <xsl:value-of select="$year"/>
3190
3466
  </xsl:otherwise>
3191
3467
  </xsl:choose>
3192
3468
 
@@ -3225,7 +3501,247 @@
3225
3501
  </fo:page-sequence>
3226
3502
  </xsl:template>
3227
3503
  -->
3228
-
3504
+
3505
+
3506
+ <!-- =================== -->
3507
+ <!-- Index processing -->
3508
+ <!-- =================== -->
3509
+
3510
+ <xsl:template match="@*|node()" mode="index_add_id">
3511
+ <xsl:copy>
3512
+ <xsl:apply-templates select="@*|node()" mode="index_add_id"/>
3513
+ </xsl:copy>
3514
+ </xsl:template>
3515
+
3516
+ <xsl:template match="bipm:xref" mode="index_add_id">
3517
+ <xsl:variable name="id">
3518
+ <xsl:call-template name="generateIndexXrefId"/>
3519
+ </xsl:variable>
3520
+ <xsl:copy> <!-- add id to xref -->
3521
+ <xsl:apply-templates select="@*" mode="index_add_id"/>
3522
+ <xsl:attribute name="id">
3523
+ <xsl:value-of select="$id"/>
3524
+ </xsl:attribute>
3525
+ <xsl:apply-templates mode="index_add_id"/>
3526
+ </xsl:copy>
3527
+ <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
3528
+ <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
3529
+ <xsl:if test="@to">
3530
+ <xsl:value-of select="$dash"/>
3531
+ <xsl:copy>
3532
+ <xsl:copy-of select="@*"/>
3533
+ <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
3534
+ <xsl:attribute name="id">
3535
+ <xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
3536
+ </xsl:attribute>
3537
+ <xsl:apply-templates mode="index_add_id"/>
3538
+ </xsl:copy>
3539
+ </xsl:if>
3540
+ </xsl:template>
3541
+
3542
+ <xsl:template match="@*|node()" mode="index_update">
3543
+ <xsl:copy>
3544
+ <xsl:apply-templates select="@*|node()" mode="index_update"/>
3545
+ </xsl:copy>
3546
+ </xsl:template>
3547
+
3548
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:li" mode="index_update">
3549
+ <xsl:copy>
3550
+ <xsl:apply-templates select="@*" mode="index_update"/>
3551
+ <xsl:apply-templates select="node()[1]" mode="process_li_element"/>
3552
+ </xsl:copy>
3553
+ </xsl:template>
3554
+
3555
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:li/node()" mode="process_li_element" priority="2">
3556
+ <xsl:param name="element"/>
3557
+ <xsl:param name="remove" select="'false'"/>
3558
+ <xsl:param name="target"/>
3559
+ <!-- <node></node> -->
3560
+ <xsl:choose>
3561
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
3562
+ <!-- skip text (i.e. remove it) and process next element -->
3563
+ <!-- [removed_<xsl:value-of select="."/>] -->
3564
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
3565
+ <xsl:with-param name="target"><xsl:value-of select="$target"/></xsl:with-param>
3566
+ </xsl:apply-templates>
3567
+ </xsl:when>
3568
+ <xsl:when test="self::text()">
3569
+ <xsl:value-of select="."/>
3570
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
3571
+ </xsl:when>
3572
+ <xsl:when test="self::* and local-name(.) = 'xref'">
3573
+ <xsl:variable name="id" select="@id"/>
3574
+ <xsl:variable name="page" select="$index//item[@id = $id]"/>
3575
+ <xsl:variable name="id_next" select="following-sibling::bipm:xref[1]/@id"/>
3576
+ <xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
3577
+
3578
+ <xsl:variable name="id_prev" select="preceding-sibling::bipm:xref[1]/@id"/>
3579
+ <xsl:variable name="page_prev" select="$index//item[@id = $id_prev]"/>
3580
+
3581
+ <xsl:choose>
3582
+ <!-- 2nd pass -->
3583
+ <!-- if page is equal to page for next and page is not the end of range -->
3584
+ <xsl:when test="$page != '' and $page_next != '' and $page = $page_next and not(contains($page, '_to'))"> <!-- case: 12, 12-14 -->
3585
+ <!-- skip element (i.e. remove it) and remove next text ',' -->
3586
+ <!-- [removed_xref] -->
3587
+
3588
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
3589
+ <xsl:with-param name="remove">true</xsl:with-param>
3590
+ <xsl:with-param name="target">
3591
+ <xsl:choose>
3592
+ <xsl:when test="$target != ''"><xsl:value-of select="$target"/></xsl:when>
3593
+ <xsl:otherwise><xsl:value-of select="@target"/></xsl:otherwise>
3594
+ </xsl:choose>
3595
+ </xsl:with-param>
3596
+ </xsl:apply-templates>
3597
+ </xsl:when>
3598
+
3599
+ <xsl:when test="$page != '' and $page_prev != '' and $page = $page_prev and contains($page_prev, '_to')"> <!-- case: 12-14, 14, ... -->
3600
+ <!-- remove xref -->
3601
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
3602
+ <xsl:with-param name="remove">true</xsl:with-param>
3603
+ </xsl:apply-templates>
3604
+ </xsl:when>
3605
+
3606
+ <xsl:otherwise>
3607
+ <xsl:apply-templates select="." mode="xref_copy">
3608
+ <xsl:with-param name="target" select="$target"/>
3609
+ </xsl:apply-templates>
3610
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
3611
+ </xsl:otherwise>
3612
+ </xsl:choose>
3613
+ </xsl:when>
3614
+ <xsl:when test="self::* and local-name(.) = 'ul'">
3615
+ <!-- ul -->
3616
+ <xsl:apply-templates select="." mode="index_update"/>
3617
+ </xsl:when>
3618
+ <xsl:otherwise>
3619
+ <xsl:apply-templates select="." mode="xref_copy">
3620
+ <xsl:with-param name="target" select="$target"/>
3621
+ </xsl:apply-templates>
3622
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
3623
+ </xsl:otherwise>
3624
+ </xsl:choose>
3625
+ </xsl:template>
3626
+
3627
+ <xsl:template match="@*|node()" mode="xref_copy">
3628
+ <xsl:param name="target"/>
3629
+ <xsl:copy>
3630
+ <xsl:apply-templates select="@*" mode="xref_copy"/>
3631
+ <xsl:if test="$target != '' and not(xalan:nodeset($bookmark_in_fn)//bookmark[. = $target])">
3632
+ <xsl:attribute name="target"><xsl:value-of select="$target"/></xsl:attribute>
3633
+ </xsl:if>
3634
+ <xsl:apply-templates select="node()" mode="xref_copy"/>
3635
+ </xsl:copy>
3636
+ </xsl:template>
3637
+
3638
+
3639
+ <xsl:template name="generateIndexXrefId">
3640
+ <xsl:variable name="level" select="count(ancestor::bipm:ul)"/>
3641
+ <!-- <xsl:variable name="parent_ul_id" select="generate-id(ancestor::bipm:ul[1])"/>
3642
+ <xsl:variable name="item_number" select="count(ancestor::bipm:li[ancestor::bipm:ul[generate-id() = $parent_ul_id]])"/> -->
3643
+ <xsl:variable name="docid">
3644
+ <xsl:call-template name="getDocumentId"/>
3645
+ </xsl:variable>
3646
+ <xsl:variable name="item_number">
3647
+ <xsl:number count="bipm:li[ancestor::bipm:clause[@type = 'index']]" level="any"/>
3648
+ </xsl:variable>
3649
+ <xsl:variable name="xref_number"><xsl:number count="bipm:xref"/></xsl:variable>
3650
+ <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
3651
+ </xsl:template>
3652
+
3653
+ <xsl:template match="bipm:clause[@type = 'index']"/>
3654
+ <xsl:template match="bipm:clause[@type = 'index']" mode="index">
3655
+
3656
+ <fo:page-sequence master-reference="index" force-page-count="no-force">
3657
+ <xsl:variable name="header-title">
3658
+ <xsl:choose>
3659
+ <xsl:when test="./bipm:title[1]/*[local-name() = 'tab']">
3660
+ <xsl:apply-templates select="./bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
3661
+ </xsl:when>
3662
+ <xsl:otherwise>
3663
+ <xsl:apply-templates select="./bipm:title[1]" mode="header"/>
3664
+ </xsl:otherwise>
3665
+ </xsl:choose>
3666
+ </xsl:variable>
3667
+ <xsl:call-template name="insertHeaderFooter">
3668
+ <xsl:with-param name="header-title" select="$header-title"/>
3669
+ </xsl:call-template>
3670
+
3671
+ <fo:flow flow-name="xsl-region-body">
3672
+ <fo:block id="{@id}" span="all">
3673
+ <xsl:apply-templates select="bipm:title"/>
3674
+ </fo:block>
3675
+ <fo:block>
3676
+ <xsl:apply-templates select="*[not(local-name() = 'title')]"/>
3677
+
3678
+ <!-- TEST <xsl:variable name="alphabet" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
3679
+ <xsl:for-each select="(document('')//node())[position() &lt; 26]">
3680
+ <xsl:variable name="letter" select="substring($alphabet, position(), 1)"/>
3681
+ <xsl:if test="position() &lt;= 3">
3682
+ <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always"><xsl:value-of select="$letter"/>, DEBUG</fo:block>
3683
+
3684
+ <fo:block>accélération due à la pesanteur (gn), 33</fo:block>
3685
+ <fo:block>activité d’un radionucléide, 26, 27</fo:block>
3686
+ <fo:block>ampère (A), 13, 16, 18, 20, 28, 44, 49, 51, 52, 54, 55, 71, 81, 83-86, 89, 91-94, 97, 99, 100, 101, 103-104</fo:block>
3687
+ <fo:block>angle, 25, 26, 33, 37 38, 40, 48, 55, 65</fo:block>
3688
+ <fo:block>atmosphère normale, 52</fo:block>
3689
+ <fo:block>atome gramme, 104</fo:block>
3690
+ <fo:block>atome de césium, niveaux hyperfins, 15, 17, 18, 56, 58, 83, 85, 92, 94, 97, 98, 102</fo:block>
3691
+ <xsl:if test="position() != last()"><fo:block>&#xA0;</fo:block></xsl:if>
3692
+ </xsl:if>
3693
+ </xsl:for-each> -->
3694
+ </fo:block>
3695
+ </fo:flow>
3696
+ </fo:page-sequence>
3697
+ </xsl:template>
3698
+
3699
+ <xsl:template match="bipm:clause[@type = 'index']/bipm:title" priority="4">
3700
+ <fo:block font-size="16pt" font-weight="bold" margin-bottom="84pt" margin-left="-18mm">
3701
+ <!-- Index -->
3702
+ <xsl:apply-templates/>
3703
+ </fo:block>
3704
+ </xsl:template>
3705
+
3706
+ <xsl:template match="bipm:clause[@type = 'index']/bipm:clause" priority="4">
3707
+ <xsl:apply-templates/>
3708
+ <fo:block>
3709
+ <xsl:if test="following-sibling::bipm:clause">
3710
+ <fo:block> </fo:block>
3711
+ </xsl:if>
3712
+ </fo:block>
3713
+ </xsl:template>
3714
+
3715
+ <xsl:template match="bipm:clause[@type = 'index']/bipm:clause/bipm:title" priority="4">
3716
+ <!-- Letter A, B, C, ... -->
3717
+ <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always">
3718
+ <xsl:apply-templates/>
3719
+ </fo:block>
3720
+ </xsl:template>
3721
+
3722
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:ul" priority="4">
3723
+ <xsl:apply-templates/>
3724
+ </xsl:template>
3725
+
3726
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:li" priority="4">
3727
+ <xsl:variable name="level" select="count(ancestor::bipm:ul)"/>
3728
+ <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
3729
+ <xsl:apply-templates/>
3730
+ </fo:block>
3731
+ </xsl:template>
3732
+
3733
+ <xsl:template match="bipm:bookmark">
3734
+ <fo:inline id="{@id}"/>
3735
+ </xsl:template>
3736
+
3737
+ <xsl:template match="*[local-name() = 'stem']/text()">
3738
+ <xsl:value-of select="normalize-space()"/>
3739
+ </xsl:template>
3740
+
3741
+ <!-- =================== -->
3742
+ <!-- End of Index processing -->
3743
+ <!-- =================== -->
3744
+
3229
3745
  <xsl:variable name="Image-Logo-BIPM">
3230
3746
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAaIAAADRCAYAAACOyra0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2dpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGOTdGMTE3NDA3MjA2ODExODIyQUJFNEQ3OTI1MkI2OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMTdGMTkxM0YzNEIxMUVBOEZCREQ0ODFDQjY0QzlCNyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMTdGMTkxMkYzNEIxMUVBOEZCREQ0ODFDQjY0QzlCNyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbkRlc2lnbiBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0idXVpZDoyNGQ2ZDM1ZS1kNDc4LTcxNGItYjYwZi1iMDMyYWFmYzM3OTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5pZDoxNjcwQkZBMDExMjA2ODExODIyQUJFNEQ3OTI1MkI2OSIvPiA8L3JkZjpEZXNjcmlw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</xsl:text>
3231
3747
  </xsl:variable>
@@ -3558,7 +4074,7 @@
3558
4074
  </xsl:if>
3559
4075
  </xsl:template>
3560
4076
 
3561
- <xsl:template match="node()" mode="change_id">
4077
+ <!-- <xsl:template match="node()" mode="change_id">
3562
4078
  <xsl:param name="lang"/>
3563
4079
  <xsl:param name="ignoreReferenceFrom"/>
3564
4080
  <xsl:copy>
@@ -3579,7 +4095,7 @@
3579
4095
  </xsl:apply-templates>
3580
4096
  <xsl:choose>
3581
4097
  <xsl:when test="$ignoreReferenceFrom = 'true'"><xsl:value-of select="."/></xsl:when>
3582
- <xsl:otherwise><xsl:value-of select="."/>_<xsl:value-of select="$lang"/></xsl:otherwise>
4098
+ <xsl:otherwise><xsl:value-of select="."/>_<xsl:value-of select="$lang"/><xsl:if test="$doctype = 'guide'">_<xsl:number count="bipm:bipm-standard" level="any"/></xsl:if></xsl:otherwise>
3583
4099
  </xsl:choose>
3584
4100
  </xsl:copy>
3585
4101
  </xsl:template>
@@ -3593,13 +4109,15 @@
3593
4109
  <xsl:value-of select="."/>
3594
4110
  </xsl:attribute>
3595
4111
  </xsl:when>
3596
- <xsl:when test="local-name() = 'id' or local-name() = 'bibitemid' or (local-name() = 'target' and local-name(..) = 'xref')">
4112
+ <xsl:when test="local-name() = 'id' or
4113
+ local-name() = 'bibitemid' or
4114
+ (local-name() = 'target' and local-name(..) = 'xref')">
3597
4115
  <xsl:attribute name="{local-name()}">
3598
- <xsl:value-of select="."/>_<xsl:value-of select="$lang"/>
4116
+ <xsl:value-of select="."/>_<xsl:value-of select="$lang"/><xsl:if test="$doctype = 'guide'">_<xsl:number count="bipm:bipm-standard" level="any"/></xsl:if>
3599
4117
  </xsl:attribute>
3600
4118
  </xsl:when>
3601
4119
  <xsl:otherwise>
3602
- <!-- no change -->
4120
+ no change
3603
4121
  <xsl:copy>
3604
4122
  <xsl:apply-templates select="@*" mode="change_id">
3605
4123
  <xsl:with-param name="lang" select="$lang"/>
@@ -3608,7 +4126,7 @@
3608
4126
  </xsl:copy>
3609
4127
  </xsl:otherwise>
3610
4128
  </xsl:choose>
3611
- </xsl:template>
4129
+ </xsl:template> -->
3612
4130
 
3613
4131
 
3614
4132
 
@@ -3978,6 +4496,9 @@
3978
4496
 
3979
4497
  </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
3980
4498
 
4499
+
4500
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
4501
+
3981
4502
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
3982
4503
 
3983
4504
 
@@ -3985,6 +4506,7 @@
3985
4506
 
3986
4507
 
3987
4508
 
4509
+
3988
4510
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
3989
4511
 
3990
4512
 
@@ -4111,196 +4633,242 @@
4111
4633
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
4112
4634
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
4113
4635
  <xsl:call-template name="add-zero-spaces-java"/>
4114
- </xsl:template><xsl:template match="*[local-name()='table']">
4636
+ </xsl:template><xsl:template match="*[local-name()='table']" name="table">
4115
4637
 
4116
- <xsl:variable name="simple-table">
4117
- <xsl:call-template name="getSimpleTable"/>
4118
- </xsl:variable>
4638
+ <xsl:variable name="table">
4119
4639
 
4120
-
4121
-
4122
-
4123
-
4124
- <!-- <xsl:if test="$namespace = 'bipm'">
4125
- <fo:block>&#xA0;</fo:block>
4126
- </xsl:if> -->
4127
-
4128
- <!-- $namespace = 'iso' or -->
4129
-
4130
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4131
-
4132
-
4133
-
4134
- <xsl:call-template name="fn_name_display"/>
4640
+ <xsl:variable name="simple-table">
4641
+ <xsl:call-template name="getSimpleTable"/>
4642
+ </xsl:variable>
4135
4643
 
4136
4644
 
4137
-
4138
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4139
-
4140
- <!-- <xsl:variable name="cols-count">
4141
- <xsl:choose>
4142
- <xsl:when test="*[local-name()='thead']">
4143
- <xsl:call-template name="calculate-columns-numbers">
4144
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
4145
- </xsl:call-template>
4146
- </xsl:when>
4147
- <xsl:otherwise>
4148
- <xsl:call-template name="calculate-columns-numbers">
4149
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
4150
- </xsl:call-template>
4151
- </xsl:otherwise>
4152
- </xsl:choose>
4153
- </xsl:variable> -->
4154
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
4155
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
4156
-
4157
-
4158
-
4159
- <xsl:variable name="colwidths">
4160
- <xsl:call-template name="calculate-column-widths">
4161
- <xsl:with-param name="cols-count" select="$cols-count"/>
4162
- <xsl:with-param name="table" select="$simple-table"/>
4163
- </xsl:call-template>
4164
- </xsl:variable>
4165
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
4166
-
4167
- <!-- <xsl:variable name="colwidths2">
4168
- <xsl:call-template name="calculate-column-widths">
4169
- <xsl:with-param name="cols-count" select="$cols-count"/>
4170
- </xsl:call-template>
4171
- </xsl:variable> -->
4172
-
4173
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
4174
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
4175
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
4176
-
4177
- <xsl:variable name="margin-left">
4178
- <xsl:choose>
4179
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
4180
- <xsl:otherwise>0</xsl:otherwise>
4181
- </xsl:choose>
4182
- </xsl:variable>
4183
-
4184
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
4185
4645
 
4186
4646
 
4187
-
4188
-
4189
-
4190
4647
 
4648
+ <!-- <xsl:if test="$namespace = 'bipm'">
4649
+ <fo:block>&#xA0;</fo:block>
4650
+ </xsl:if> -->
4191
4651
 
4192
-
4652
+ <!-- $namespace = 'iso' or -->
4193
4653
 
4654
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4655
+
4656
+
4194
4657
 
4658
+ <xsl:call-template name="fn_name_display"/>
4195
4659
 
4660
+
4196
4661
 
4662
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4197
4663
 
4198
- <xsl:attribute name="space-after">12pt</xsl:attribute>
4199
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4200
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
4201
- <xsl:if test="not(ancestor::*[local-name()='note_side'])">
4202
- <xsl:attribute name="font-size">10pt</xsl:attribute>
4203
- </xsl:if>
4204
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
4205
- <xsl:if test="@parent-type = 'quote'">
4206
- <xsl:attribute name="font-family">Arial</xsl:attribute>
4207
- <xsl:attribute name="font-size">9pt</xsl:attribute>
4664
+ <!-- <xsl:variable name="cols-count">
4665
+ <xsl:choose>
4666
+ <xsl:when test="*[local-name()='thead']">
4667
+ <xsl:call-template name="calculate-columns-numbers">
4668
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
4669
+ </xsl:call-template>
4670
+ </xsl:when>
4671
+ <xsl:otherwise>
4672
+ <xsl:call-template name="calculate-columns-numbers">
4673
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
4674
+ </xsl:call-template>
4675
+ </xsl:otherwise>
4676
+ </xsl:choose>
4677
+ </xsl:variable> -->
4678
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
4679
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
4680
+
4681
+
4682
+
4683
+ <xsl:variable name="colwidths">
4684
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
4685
+ <xsl:call-template name="calculate-column-widths">
4686
+ <xsl:with-param name="cols-count" select="$cols-count"/>
4687
+ <xsl:with-param name="table" select="$simple-table"/>
4688
+ </xsl:call-template>
4208
4689
  </xsl:if>
4690
+ </xsl:variable>
4691
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
4209
4692
 
4693
+ <!-- <xsl:variable name="colwidths2">
4694
+ <xsl:call-template name="calculate-column-widths">
4695
+ <xsl:with-param name="cols-count" select="$cols-count"/>
4696
+ </xsl:call-template>
4697
+ </xsl:variable> -->
4698
+
4699
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
4700
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
4701
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
4210
4702
 
4703
+ <xsl:variable name="margin-left">
4704
+ <xsl:choose>
4705
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
4706
+ <xsl:otherwise>0</xsl:otherwise>
4707
+ </xsl:choose>
4708
+ </xsl:variable>
4211
4709
 
4212
- <xsl:variable name="table_attributes">
4213
- <attribute name="table-layout">fixed</attribute>
4214
- <attribute name="width">100%</attribute>
4215
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
4216
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
4710
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
4711
+
4712
+
4713
+
4714
+
4715
+
4716
+
4717
+
4718
+
4719
+
4720
+
4721
+
4722
+
4723
+
4724
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
4725
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
4726
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
4727
+ <xsl:if test="not(ancestor::*[local-name()='note_side'])">
4728
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
4729
+ </xsl:if>
4730
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
4731
+ <xsl:if test="@parent-type = 'quote'">
4732
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
4733
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
4734
+ </xsl:if>
4735
+
4736
+
4737
+ <xsl:variable name="table_width">
4738
+ <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
4739
+
4740
+
4741
+
4742
+ <xsl:choose>
4743
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
4744
+ <xsl:otherwise>100%</xsl:otherwise>
4745
+ </xsl:choose>
4746
+
4747
+ </xsl:variable>
4748
+
4749
+ <xsl:variable name="table_attributes">
4750
+ <attribute name="table-layout">fixed</attribute>
4751
+ <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
4752
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
4753
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
4754
+
4755
+
4756
+
4757
+
4758
+
4759
+
4760
+
4761
+
4762
+
4763
+
4764
+ <xsl:if test="not(ancestor::*[local-name()='preface']) and not(ancestor::*[local-name()='note_side']) and not(ancestor::*[local-name() = 'annex'] and .//*[local-name() = 'xref'][@pagenumber])">
4765
+ <attribute name="border-top">0.5pt solid black</attribute>
4766
+ <attribute name="border-bottom">0.5pt solid black</attribute>
4767
+ </xsl:if>
4768
+ <attribute name="margin-left">0mm</attribute>
4769
+ <attribute name="margin-right">0mm</attribute>
4770
+
4771
+ </xsl:variable>
4772
+
4773
+
4774
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
4775
+
4776
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
4777
+ <xsl:attribute name="{@name}">
4778
+ <xsl:value-of select="."/>
4779
+ </xsl:attribute>
4780
+ </xsl:for-each>
4781
+
4782
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
4783
+ <xsl:if test="$isNoteOrFnExist = 'true'">
4784
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
4785
+ </xsl:if>
4786
+
4787
+ <xsl:choose>
4788
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
4789
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
4790
+ <fo:table-column column-width="{@width}"/>
4791
+ </xsl:for-each>
4792
+ </xsl:when>
4793
+ <xsl:otherwise>
4794
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
4795
+ <xsl:choose>
4796
+ <xsl:when test=". = 1 or . = 0">
4797
+ <fo:table-column column-width="proportional-column-width(2)"/>
4798
+ </xsl:when>
4799
+ <xsl:otherwise>
4800
+ <fo:table-column column-width="proportional-column-width({.})"/>
4801
+ </xsl:otherwise>
4802
+ </xsl:choose>
4803
+ </xsl:for-each>
4804
+ </xsl:otherwise>
4805
+ </xsl:choose>
4806
+
4807
+ <xsl:choose>
4808
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
4809
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
4810
+ </xsl:when>
4811
+ <xsl:otherwise>
4812
+ <xsl:apply-templates/>
4813
+ </xsl:otherwise>
4814
+ </xsl:choose>
4815
+
4816
+ </fo:table>
4217
4817
 
4818
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
4819
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
4820
+ <xsl:call-template name="insertTableFooterInSeparateTable">
4821
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
4822
+ <xsl:with-param name="colwidths" select="$colwidths"/>
4823
+ <xsl:with-param name="colgroup" select="$colgroup"/>
4824
+ </xsl:call-template>
4825
+ </xsl:for-each>
4218
4826
 
4827
+ <!-- insert footer as table -->
4828
+ <!-- <fo:table>
4829
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
4830
+ <xsl:attribute name="{@name}">
4831
+ <xsl:value-of select="."/>
4832
+ </xsl:attribute>
4833
+ </xsl:for-each>
4834
+
4835
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
4836
+ <xsl:choose>
4837
+ <xsl:when test=". = 1 or . = 0">
4838
+ <fo:table-column column-width="proportional-column-width(2)"/>
4839
+ </xsl:when>
4840
+ <xsl:otherwise>
4841
+ <fo:table-column column-width="proportional-column-width({.})"/>
4842
+ </xsl:otherwise>
4843
+ </xsl:choose>
4844
+ </xsl:for-each>
4845
+ </fo:table>-->
4219
4846
 
4220
4847
 
4221
-
4222
-
4223
-
4224
4848
 
4225
-
4226
-
4227
- <xsl:if test="not(ancestor::*[local-name()='preface']) and not(ancestor::*[local-name()='note_side']) and not(ancestor::*[local-name() = 'annex'] and .//*[local-name() = 'xref'][@pagenumber])">
4228
- <attribute name="border-top">0.5pt solid black</attribute>
4229
- <attribute name="border-bottom">0.5pt solid black</attribute>
4230
- </xsl:if>
4231
- <attribute name="margin-left">0mm</attribute>
4232
- <attribute name="margin-right">0mm</attribute>
4233
4849
 
4234
- </xsl:variable>
4235
-
4236
-
4237
- <fo:table id="{@id}" table-omit-footer-at-break="true">
4238
4850
 
4239
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
4240
- <xsl:attribute name="{@name}">
4241
- <xsl:value-of select="."/>
4242
- </xsl:attribute>
4243
- </xsl:for-each>
4851
+ </fo:block-container>
4852
+ </xsl:variable>
4853
+
4854
+
4855
+
4856
+ <xsl:choose>
4857
+ <xsl:when test="@width">
4858
+
4859
+ <!-- centered table when table name is centered (see table-name-style) -->
4244
4860
 
4245
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
4246
- <xsl:if test="$isNoteOrFnExist = 'true'">
4247
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
4248
- </xsl:if>
4249
4861
 
4250
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
4251
- <xsl:choose>
4252
- <xsl:when test=". = 1 or . = 0">
4253
- <fo:table-column column-width="proportional-column-width(2)"/>
4254
- </xsl:when>
4255
- <xsl:otherwise>
4256
- <fo:table-column column-width="proportional-column-width({.})"/>
4257
- </xsl:otherwise>
4258
- </xsl:choose>
4259
- </xsl:for-each>
4260
4862
 
4261
- <xsl:choose>
4262
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
4263
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
4264
- </xsl:when>
4265
- <xsl:otherwise>
4266
- <xsl:apply-templates/>
4267
- </xsl:otherwise>
4268
- </xsl:choose>
4863
+ <xsl:copy-of select="$table"/>
4269
4864
 
4270
- </fo:table>
4271
-
4272
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
4273
- <xsl:call-template name="insertTableFooterInSeparateTable">
4274
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
4275
- <xsl:with-param name="colwidths" select="$colwidths"/>
4276
- </xsl:call-template>
4277
- </xsl:for-each>
4278
-
4279
- <!-- insert footer as table -->
4280
- <!-- <fo:table>
4281
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
4282
- <xsl:attribute name="{@name}">
4283
- <xsl:value-of select="."/>
4284
- </xsl:attribute>
4285
- </xsl:for-each>
4286
4865
 
4287
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
4288
- <xsl:choose>
4289
- <xsl:when test=". = 1 or . = 0">
4290
- <fo:table-column column-width="proportional-column-width(2)"/>
4291
- </xsl:when>
4292
- <xsl:otherwise>
4293
- <fo:table-column column-width="proportional-column-width({.})"/>
4294
- </xsl:otherwise>
4295
- </xsl:choose>
4296
- </xsl:for-each>
4297
- </fo:table>-->
4298
-
4299
-
4300
-
4301
-
4302
-
4303
- </fo:block-container>
4866
+ </xsl:when>
4867
+ <xsl:otherwise>
4868
+ <xsl:copy-of select="$table"/>
4869
+ </xsl:otherwise>
4870
+ </xsl:choose>
4871
+
4304
4872
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
4305
4873
  <xsl:if test="normalize-space() != ''">
4306
4874
  <fo:block xsl:use-attribute-sets="table-name-style">
@@ -4532,12 +5100,22 @@
4532
5100
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
4533
5101
  <xsl:param name="table_attributes"/>
4534
5102
  <xsl:param name="colwidths"/>
5103
+ <xsl:param name="colgroup"/>
4535
5104
 
4536
5105
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
4537
5106
 
4538
5107
  <xsl:if test="$isNoteOrFnExist = 'true'">
4539
5108
 
4540
- <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
5109
+ <xsl:variable name="cols-count">
5110
+ <xsl:choose>
5111
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
5112
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
5113
+ </xsl:when>
5114
+ <xsl:otherwise>
5115
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
5116
+ </xsl:otherwise>
5117
+ </xsl:choose>
5118
+ </xsl:variable>
4541
5119
 
4542
5120
  <fo:table keep-with-previous="always">
4543
5121
  <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
@@ -4555,16 +5133,25 @@
4555
5133
  </xsl:choose>
4556
5134
  </xsl:for-each>
4557
5135
 
4558
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
4559
- <xsl:choose>
4560
- <xsl:when test=". = 1 or . = 0">
4561
- <fo:table-column column-width="proportional-column-width(2)"/>
4562
- </xsl:when>
4563
- <xsl:otherwise>
4564
- <fo:table-column column-width="proportional-column-width({.})"/>
4565
- </xsl:otherwise>
4566
- </xsl:choose>
4567
- </xsl:for-each>
5136
+ <xsl:choose>
5137
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
5138
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
5139
+ <fo:table-column column-width="{@width}"/>
5140
+ </xsl:for-each>
5141
+ </xsl:when>
5142
+ <xsl:otherwise>
5143
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
5144
+ <xsl:choose>
5145
+ <xsl:when test=". = 1 or . = 0">
5146
+ <fo:table-column column-width="proportional-column-width(2)"/>
5147
+ </xsl:when>
5148
+ <xsl:otherwise>
5149
+ <fo:table-column column-width="proportional-column-width({.})"/>
5150
+ </xsl:otherwise>
5151
+ </xsl:choose>
5152
+ </xsl:for-each>
5153
+ </xsl:otherwise>
5154
+ </xsl:choose>
4568
5155
 
4569
5156
  <fo:table-body>
4570
5157
  <fo:table-row>
@@ -4714,7 +5301,7 @@
4714
5301
 
4715
5302
  <xsl:attribute name="font-weight">normal</xsl:attribute>
4716
5303
  <xsl:attribute name="border">solid black 0pt</xsl:attribute>
4717
- <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute>
5304
+ <!-- <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute> -->
4718
5305
  <xsl:attribute name="border-bottom">solid black 0.5pt</xsl:attribute>
4719
5306
  <xsl:attribute name="height">8mm</xsl:attribute>
4720
5307
  <xsl:attribute name="padding-top">2mm</xsl:attribute>
@@ -5182,7 +5769,7 @@
5182
5769
  <xsl:with-param name="table" select="$html-table"/>
5183
5770
  </xsl:call-template>
5184
5771
  </xsl:variable>
5185
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
5772
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
5186
5773
  <xsl:variable name="maxlength_dt">
5187
5774
  <xsl:call-template name="getMaxLength_dt"/>
5188
5775
  </xsl:variable>
@@ -5211,13 +5798,22 @@
5211
5798
  </xsl:when>
5212
5799
  <xsl:otherwise>
5213
5800
  <xsl:choose>
5801
+ <!-- to set width check most wide chars like `W` -->
5214
5802
  <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
5215
- <fo:table-column column-width="5%"/>
5216
- <fo:table-column column-width="95%"/>
5803
+ <fo:table-column column-width="7%"/>
5804
+ <fo:table-column column-width="93%"/>
5805
+ </xsl:when>
5806
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like ABC, etc -->
5807
+ <fo:table-column column-width="15%"/>
5808
+ <fo:table-column column-width="85%"/>
5809
+ </xsl:when>
5810
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 7"> <!-- if dt contains short text like ABCDEF, etc -->
5811
+ <fo:table-column column-width="20%"/>
5812
+ <fo:table-column column-width="80%"/>
5217
5813
  </xsl:when>
5218
- <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like t90, a, etc -->
5219
- <fo:table-column column-width="10%"/>
5220
- <fo:table-column column-width="90%"/>
5814
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
5815
+ <fo:table-column column-width="25%"/>
5816
+ <fo:table-column column-width="75%"/>
5221
5817
  </xsl:when>
5222
5818
  <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
5223
5819
  <fo:table-column column-width="60%"/>
@@ -5249,12 +5845,32 @@
5249
5845
  </xsl:otherwise>
5250
5846
  </xsl:choose>
5251
5847
  </xsl:template><xsl:template name="getMaxLength_dt">
5252
- <xsl:for-each select="*[local-name()='dt']">
5253
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
5254
- <xsl:if test="position() = 1">
5255
- <xsl:value-of select="string-length(normalize-space(.))"/>
5256
- </xsl:if>
5257
- </xsl:for-each>
5848
+ <xsl:variable name="lengths">
5849
+ <xsl:for-each select="*[local-name()='dt']">
5850
+ <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
5851
+ <xsl:variable name="attributes">
5852
+ <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
5853
+ <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
5854
+ </xsl:variable>
5855
+ <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
5856
+ </xsl:for-each>
5857
+ </xsl:variable>
5858
+ <xsl:variable name="maxLength">
5859
+ <!-- <xsl:for-each select="*[local-name()='dt']">
5860
+ <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
5861
+ <xsl:if test="position() = 1">
5862
+ <xsl:value-of select="string-length(normalize-space(.))"/>
5863
+ </xsl:if>
5864
+ </xsl:for-each> -->
5865
+ <xsl:for-each select="xalan:nodeset($lengths)/length">
5866
+ <xsl:sort select="." data-type="number" order="descending"/>
5867
+ <xsl:if test="position() = 1">
5868
+ <xsl:value-of select="."/>
5869
+ </xsl:if>
5870
+ </xsl:for-each>
5871
+ </xsl:variable>
5872
+ <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
5873
+ <xsl:value-of select="$maxLength"/>
5258
5874
  </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
5259
5875
  <xsl:param name="key_iso"/>
5260
5876
 
@@ -5396,6 +6012,7 @@
5396
6012
 
5397
6013
 
5398
6014
 
6015
+
5399
6016
 
5400
6017
  </xsl:variable>
5401
6018
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
@@ -5409,6 +6026,10 @@
5409
6026
  </xsl:if>
5410
6027
  <xsl:apply-templates/>
5411
6028
  </fo:inline>
6029
+ </xsl:template><xsl:template match="*[local-name()='underline']">
6030
+ <fo:inline text-decoration="underline">
6031
+ <xsl:apply-templates/>
6032
+ </fo:inline>
5412
6033
  </xsl:template><xsl:template match="*[local-name()='del']">
5413
6034
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
5414
6035
  <xsl:apply-templates/>
@@ -5502,6 +6123,10 @@
5502
6123
  <xsl:param name="text" select="."/>
5503
6124
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
5504
6125
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
6126
+ </xsl:template><xsl:template name="add-zero-spaces-link-java">
6127
+ <xsl:param name="text" select="."/>
6128
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
6129
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1​')"/>
5505
6130
  </xsl:template><xsl:template name="add-zero-spaces">
5506
6131
  <xsl:param name="text" select="."/>
5507
6132
  <xsl:variable name="zero-space-after-chars">-</xsl:variable>
@@ -5766,6 +6391,11 @@
5766
6391
  <!-- replace start and end spaces to non-break space -->
5767
6392
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
5768
6393
  </xsl:copy>
6394
+ </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
6395
+ <xsl:copy>
6396
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
6397
+ </xsl:copy>
6398
+ <mathml:mspace width="0.5ex"/>
5769
6399
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
5770
6400
  <xsl:variable name="target">
5771
6401
  <xsl:choose>
@@ -5787,7 +6417,10 @@
5787
6417
  <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
5788
6418
  <xsl:choose>
5789
6419
  <xsl:when test="normalize-space(.) = ''">
5790
- <xsl:value-of select="$target"/>
6420
+ <!-- <xsl:value-of select="$target"/> -->
6421
+ <xsl:call-template name="add-zero-spaces-link-java">
6422
+ <xsl:with-param name="text" select="$target"/>
6423
+ </xsl:call-template>
5791
6424
  </xsl:when>
5792
6425
  <xsl:otherwise>
5793
6426
  <xsl:apply-templates/>
@@ -5968,6 +6601,8 @@
5968
6601
  </xsl:when>
5969
6602
  <xsl:otherwise>
5970
6603
 
6604
+ <xsl:text>:</xsl:text>
6605
+
5971
6606
 
5972
6607
  </xsl:otherwise>
5973
6608
  </xsl:choose>
@@ -5998,7 +6633,7 @@
5998
6633
  </xsl:if> -->
5999
6634
  </fo:inline>
6000
6635
  </xsl:if>
6001
- </xsl:template><xsl:template match="*[local-name() = 'figure']">
6636
+ </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
6002
6637
  <fo:block-container id="{@id}">
6003
6638
 
6004
6639
  <xsl:if test="*[local-name() = 'name']">
@@ -6071,6 +6706,8 @@
6071
6706
  <xsl:variable name="bookmark-title_">
6072
6707
  <xsl:call-template name="getLangVersion">
6073
6708
  <xsl:with-param name="lang" select="@lang"/>
6709
+ <xsl:with-param name="doctype" select="@doctype"/>
6710
+ <xsl:with-param name="title" select="@title-part"/>
6074
6711
  </xsl:call-template>
6075
6712
  </xsl:variable>
6076
6713
  <xsl:choose>
@@ -6088,13 +6725,34 @@
6088
6725
  </xsl:choose>
6089
6726
  </fo:bookmark-title>
6090
6727
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
6728
+
6729
+ <xsl:call-template name="insertFigureBookmarks">
6730
+ <xsl:with-param name="contents" select="contents"/>
6731
+ </xsl:call-template>
6732
+
6733
+ <xsl:call-template name="insertTableBookmarks">
6734
+ <xsl:with-param name="contents" select="contents"/>
6735
+ <xsl:with-param name="lang" select="@lang"/>
6736
+ </xsl:call-template>
6737
+
6091
6738
  </fo:bookmark>
6092
6739
 
6093
6740
  </xsl:for-each>
6094
6741
  </xsl:when>
6095
6742
  <xsl:otherwise>
6096
6743
  <xsl:for-each select="xalan:nodeset($contents)/doc">
6744
+
6097
6745
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
6746
+
6747
+ <xsl:call-template name="insertFigureBookmarks">
6748
+ <xsl:with-param name="contents" select="contents"/>
6749
+ </xsl:call-template>
6750
+
6751
+ <xsl:call-template name="insertTableBookmarks">
6752
+ <xsl:with-param name="contents" select="contents"/>
6753
+ <xsl:with-param name="lang" select="@lang"/>
6754
+ </xsl:call-template>
6755
+
6098
6756
  </xsl:for-each>
6099
6757
  </xsl:otherwise>
6100
6758
  </xsl:choose>
@@ -6113,16 +6771,66 @@
6113
6771
 
6114
6772
  </fo:bookmark-tree>
6115
6773
  </xsl:if>
6774
+ </xsl:template><xsl:template name="insertFigureBookmarks">
6775
+ <xsl:param name="contents"/>
6776
+ <xsl:if test="xalan:nodeset($contents)/figure">
6777
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
6778
+ <fo:bookmark-title>Figures</fo:bookmark-title>
6779
+ <xsl:for-each select="xalan:nodeset($contents)/figure">
6780
+ <fo:bookmark internal-destination="{@id}">
6781
+ <fo:bookmark-title>
6782
+ <xsl:value-of select="normalize-space(title)"/>
6783
+ </fo:bookmark-title>
6784
+ </fo:bookmark>
6785
+ </xsl:for-each>
6786
+ </fo:bookmark>
6787
+ </xsl:if>
6788
+ </xsl:template><xsl:template name="insertTableBookmarks">
6789
+ <xsl:param name="contents"/>
6790
+ <xsl:param name="lang"/>
6791
+ <xsl:if test="xalan:nodeset($contents)/table">
6792
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
6793
+ <fo:bookmark-title>
6794
+ <xsl:choose>
6795
+ <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
6796
+ <xsl:otherwise>Tables</xsl:otherwise>
6797
+ </xsl:choose>
6798
+ </fo:bookmark-title>
6799
+ <xsl:for-each select="xalan:nodeset($contents)/table">
6800
+ <fo:bookmark internal-destination="{@id}">
6801
+ <fo:bookmark-title>
6802
+ <xsl:value-of select="normalize-space(title)"/>
6803
+ </fo:bookmark-title>
6804
+ </fo:bookmark>
6805
+ </xsl:for-each>
6806
+ </fo:bookmark>
6807
+ </xsl:if>
6116
6808
  </xsl:template><xsl:template name="getLangVersion">
6117
6809
  <xsl:param name="lang"/>
6810
+ <xsl:param name="doctype" select="''"/>
6811
+ <xsl:param name="title" select="''"/>
6118
6812
  <xsl:choose>
6119
6813
  <xsl:when test="$lang = 'en'">
6120
6814
 
6121
- English version
6815
+
6816
+ <xsl:choose>
6817
+ <xsl:when test="$doctype = 'guide'">
6818
+ <xsl:value-of select="$title"/>
6819
+ </xsl:when>
6820
+ <xsl:otherwise>English version</xsl:otherwise>
6821
+ </xsl:choose>
6822
+
6122
6823
  </xsl:when>
6123
6824
  <xsl:when test="$lang = 'fr'">
6124
6825
 
6125
- Version française
6826
+
6827
+ <xsl:choose>
6828
+ <xsl:when test="$doctype = 'guide'">
6829
+ <xsl:value-of select="$title"/>
6830
+ </xsl:when>
6831
+ <xsl:otherwise>Version française</xsl:otherwise>
6832
+ </xsl:choose>
6833
+
6126
6834
  </xsl:when>
6127
6835
  <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
6128
6836
  <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
@@ -6150,6 +6858,12 @@
6150
6858
  <!-- <xsl:text> </xsl:text> -->
6151
6859
  </xsl:template><xsl:template name="getSection">
6152
6860
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
6861
+ <!--
6862
+ <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
6863
+ <xsl:value-of select="."/>
6864
+ </xsl:for-each>
6865
+ -->
6866
+
6153
6867
  </xsl:template><xsl:template name="getName">
6154
6868
  <xsl:choose>
6155
6869
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -6202,6 +6916,12 @@
6202
6916
  <xsl:copy>
6203
6917
  <xsl:apply-templates mode="contents_item"/>
6204
6918
  </xsl:copy>
6919
+ </xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
6920
+ <xsl:copy>
6921
+ <xsl:apply-templates mode="contents_item"/>
6922
+ </xsl:copy>
6923
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
6924
+ <xsl:copy-of select="."/>
6205
6925
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
6206
6926
  <xsl:text> </xsl:text>
6207
6927
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
@@ -6227,6 +6947,7 @@
6227
6947
 
6228
6948
 
6229
6949
 
6950
+
6230
6951
 
6231
6952
 
6232
6953
 
@@ -6607,10 +7328,13 @@
6607
7328
  </xsl:if>
6608
7329
  </xsl:if>
6609
7330
 
7331
+
6610
7332
  <fo:block-container margin-left="0mm">
6611
7333
 
6612
7334
  <fo:block xsl:use-attribute-sets="quote-style">
6613
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
7335
+ <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
7336
+
7337
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
6614
7338
  </fo:block>
6615
7339
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
6616
7340
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -6764,6 +7488,7 @@
6764
7488
 
6765
7489
 
6766
7490
 
7491
+
6767
7492
 
6768
7493
 
6769
7494
 
@@ -6775,7 +7500,7 @@
6775
7500
 
6776
7501
 
6777
7502
 
6778
- </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
7503
+ </xsl:template><xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
6779
7504
  <fo:block break-after="page"/>
6780
7505
  <fo:block>
6781
7506
  <xsl:call-template name="setId"/>
@@ -6783,10 +7508,11 @@
6783
7508
  </fo:block>
6784
7509
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
6785
7510
  <fo:block>
6786
- <xsl:call-template name="setId"/>
7511
+ <xsl:call-template name="setId"/>
6787
7512
 
6788
7513
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
6789
7514
 
7515
+
6790
7516
  <xsl:apply-templates/>
6791
7517
  </fo:block>
6792
7518
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
@@ -6852,7 +7578,8 @@
6852
7578
  <fo:table-column column-width="107mm"/>
6853
7579
  <fo:table-column column-width="15mm"/>
6854
7580
  <fo:table-body>
6855
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
7581
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
7582
+
6856
7583
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
6857
7584
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
6858
7585
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -6870,6 +7597,38 @@
6870
7597
  <fo:block><xsl:apply-templates/></fo:block>
6871
7598
  </fo:table-cell>
6872
7599
  </xsl:template><xsl:template name="processBibitem">
7600
+
7601
+
7602
+ <!-- start BIPM bibtem processing -->
7603
+ <xsl:choose>
7604
+ <xsl:when test="*[local-name() = 'formattedref']">
7605
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
7606
+ </xsl:when>
7607
+ <xsl:otherwise>
7608
+ <xsl:variable name="docidentifier" select="*[local-name() = 'docidentifier'][not(@type = 'URN' or @type = 'metanorma' or @type = 'BIPM' or @type = 'ISBN' or @type = 'ISSN')]"/>
7609
+
7610
+ <xsl:value-of select="$docidentifier"/>
7611
+ <xsl:if test="$docidentifier != '' and *[local-name() = 'title']">, </xsl:if>
7612
+
7613
+ <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language"/>
7614
+
7615
+ <xsl:choose>
7616
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $curr_lang]">
7617
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $curr_lang]"/>
7618
+ </xsl:when>
7619
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
7620
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
7621
+ </xsl:when>
7622
+ <xsl:otherwise>
7623
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
7624
+ </xsl:otherwise>
7625
+ </xsl:choose>
7626
+
7627
+ </xsl:otherwise>
7628
+ </xsl:choose>
7629
+
7630
+ <!-- end BIPM bibitem processing-->
7631
+
6873
7632
 
6874
7633
 
6875
7634
 
@@ -6928,6 +7687,8 @@
6928
7687
  <xsl:value-of select="translate(.,'. ','')"/>
6929
7688
  </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
6930
7689
  <xsl:value-of select="substring(.,1,1)"/>
7690
+ </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
7691
+ <fo:inline><xsl:apply-templates/></fo:inline>
6931
7692
  </xsl:template><xsl:template name="convertDate">
6932
7693
  <xsl:param name="date"/>
6933
7694
  <xsl:param name="format" select="'short'"/>
@@ -6952,6 +7713,57 @@
6952
7713
  </xsl:variable>
6953
7714
  <xsl:variable name="result">
6954
7715
  <xsl:choose>
7716
+ <xsl:when test="$format = 'ddMMyyyy'">
7717
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7718
+ <xsl:text> </xsl:text>
7719
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7720
+ </xsl:when>
7721
+ <xsl:when test="$format = 'ddMM'">
7722
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7723
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7724
+ </xsl:when>
7725
+ <xsl:when test="$format = 'short' or $day = ''">
7726
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7727
+ </xsl:when>
7728
+ <xsl:otherwise>
7729
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7730
+ </xsl:otherwise>
7731
+ </xsl:choose>
7732
+ </xsl:variable>
7733
+ <xsl:value-of select="$result"/>
7734
+ </xsl:template><xsl:template name="convertDateLocalized">
7735
+ <xsl:param name="date"/>
7736
+ <xsl:param name="format" select="'short'"/>
7737
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
7738
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
7739
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
7740
+ <xsl:variable name="monthStr">
7741
+ <xsl:choose>
7742
+ <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
7743
+ <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
7744
+ <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
7745
+ <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
7746
+ <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
7747
+ <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
7748
+ <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
7749
+ <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
7750
+ <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
7751
+ <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
7752
+ <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
7753
+ <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
7754
+ </xsl:choose>
7755
+ </xsl:variable>
7756
+ <xsl:variable name="result">
7757
+ <xsl:choose>
7758
+ <xsl:when test="$format = 'ddMMyyyy'">
7759
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7760
+ <xsl:text> </xsl:text>
7761
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7762
+ </xsl:when>
7763
+ <xsl:when test="$format = 'ddMM'">
7764
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7765
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7766
+ </xsl:when>
6955
7767
  <xsl:when test="$format = 'short' or $day = ''">
6956
7768
  <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6957
7769
  </xsl:when>
@@ -6967,7 +7779,7 @@
6967
7779
  <xsl:param name="charDelim" select="', '"/>
6968
7780
  <xsl:choose>
6969
7781
  <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
6970
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
7782
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
6971
7783
  <xsl:sort data-type="text" order="ascending"/>
6972
7784
  <xsl:call-template name="insertKeyword">
6973
7785
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
@@ -6976,7 +7788,7 @@
6976
7788
  </xsl:for-each>
6977
7789
  </xsl:when>
6978
7790
  <xsl:otherwise>
6979
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
7791
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
6980
7792
  <xsl:call-template name="insertKeyword">
6981
7793
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
6982
7794
  <xsl:with-param name="charDelim" select="$charDelim"/>
@@ -6993,6 +7805,9 @@
6993
7805
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
6994
7806
  </xsl:choose>
6995
7807
  </xsl:template><xsl:template name="addPDFUAmeta">
7808
+ <xsl:variable name="lang">
7809
+ <xsl:call-template name="getLang"/>
7810
+ </xsl:variable>
6996
7811
  <fo:declarations>
6997
7812
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
6998
7813
  <pdf:dictionary type="normal" key="ViewerPreferences">
@@ -7005,13 +7820,16 @@
7005
7820
  <!-- Dublin Core properties go here -->
7006
7821
  <dc:title>
7007
7822
  <xsl:variable name="title">
7008
-
7009
-
7010
- <xsl:value-of select="//*[local-name() = 'bibdata'][@type='standard']/*[local-name() = 'title'][@language = 'en' and @type = 'main']"/>
7011
-
7012
-
7013
-
7014
-
7823
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7824
+
7825
+
7826
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7827
+
7828
+
7829
+
7830
+
7831
+
7832
+ </xsl:for-each>
7015
7833
  </xsl:variable>
7016
7834
  <xsl:choose>
7017
7835
  <xsl:when test="normalize-space($title) != ''">
@@ -7023,20 +7841,22 @@
7023
7841
  </xsl:choose>
7024
7842
  </dc:title>
7025
7843
  <dc:creator>
7026
-
7027
-
7028
- <xsl:value-of select="//*[local-name() = 'bibdata'][@type='standard']/*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'organization']/*[local-name() = 'name']"/>
7029
-
7030
-
7031
- </dc:creator>
7032
- <dc:description>
7033
- <xsl:variable name="abstract">
7844
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7845
+
7846
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7847
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7848
+ <xsl:if test="position() != last()">; </xsl:if>
7849
+ </xsl:for-each>
7034
7850
 
7035
7851
 
7036
7852
 
7853
+ </xsl:for-each>
7854
+ </dc:creator>
7855
+ <dc:description>
7856
+ <xsl:variable name="abstract">
7037
7857
 
7858
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7038
7859
 
7039
- <xsl:copy-of select="//*[local-name() = 'bibdata'][@type='standard']/*[local-name() = 'abstract']//text()"/>
7040
7860
 
7041
7861
  </xsl:variable>
7042
7862
  <xsl:value-of select="normalize-space($abstract)"/>
@@ -7148,6 +7968,7 @@
7148
7968
 
7149
7969
  <xsl:value-of select="document('')//*/namespace::bipm"/>
7150
7970
 
7971
+
7151
7972
  </xsl:variable>
7152
7973
  <xsl:if test="$documentNS != $XSLNS">
7153
7974
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -7207,6 +8028,11 @@
7207
8028
  <xsl:call-template name="getLang"/>
7208
8029
  </xsl:variable>
7209
8030
 
7210
- <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
8031
+ <xsl:choose>
8032
+ <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
8033
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
8034
+ </xsl:when>
8035
+ <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
8036
+ </xsl:choose>
7211
8037
 
7212
8038
  </xsl:template></xsl:stylesheet>