metanorma-bipm 0.0.4 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,25 +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
- </xsl:apply-templates>
52
+ <xsl:with-param name="ignoreReferenceFrom" select="'true'"/>
53
+ </xsl:apply-templates> -->
54
+ <xsl:copy-of select="."/>
47
55
  </xsl:variable>
48
56
  <xsl:for-each select="xalan:nodeset($current_document)">
49
57
  <xsl:variable name="docid">
50
58
  <xsl:call-template name="getDocumentId"/>
51
59
  </xsl:variable>
52
- <doc id="{$docid}" lang="{$lang}">
60
+ <doc id="{$docid}" lang="{$lang}" doctype="{$doctype}" title-part="{$title-part}">
53
61
  <xsl:call-template name="generateContents"/>
54
62
  </doc>
55
63
  </xsl:for-each>
@@ -60,9 +68,10 @@
60
68
  <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
61
69
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
62
70
  <xsl:variable name="current_document">
63
- <xsl:apply-templates select="." mode="change_id">
71
+ <!-- <xsl:apply-templates select="." mode="change_id">
64
72
  <xsl:with-param name="lang" select="$lang"/>
65
- </xsl:apply-templates>
73
+ </xsl:apply-templates> -->
74
+ <xsl:copy-of select="."/>
66
75
  </xsl:variable>
67
76
  <xsl:for-each select="xalan:nodeset($current_document)">
68
77
  <xsl:variable name="docid">
@@ -86,18 +95,113 @@
86
95
  </doc>
87
96
  </xsl:otherwise>
88
97
  </xsl:choose>
89
-
90
98
  </xsl:variable>
91
99
 
92
- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
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
+
176
+ <xsl:variable name="ids">
177
+ <xsl:for-each select="//*[@id]">
178
+ <id><xsl:value-of select="@id"/></id>
179
+ </xsl:for-each>
180
+ <xsl:for-each select="//bipm:locality[@type='anchor']/bipm:referenceFrom">
181
+ <referenceFrom><xsl:value-of select="."/></referenceFrom>
182
+ </xsl:for-each>
183
+ </xsl:variable>
184
+
185
+
186
+
187
+ <xsl:variable name="independentAppendix" select="normalize-space((//bipm:bipm-standard)[1]/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
93
188
  <!-- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix'])"/> -->
94
189
 
95
190
  <xsl:variable name="doctype" select="//bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:doctype"/>
96
191
 
97
192
  <xsl:template name="generateContents">
98
193
  <contents>
99
- <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
100
- <xsl:call-template name="processMainSectionsDefault_Contents"/>
194
+
195
+ <xsl:apply-templates select="/*/bipm:preface/*[position() &gt; 1]" mode="contents"/>
196
+
197
+ <xsl:apply-templates select="/*/bipm:sections/*" mode="contents"/>
198
+ <xsl:apply-templates select="/*/bipm:bibliography/bipm:references[@normative='true']" mode="contents"/>
199
+ <xsl:apply-templates select="/*/bipm:annex" mode="contents"/>
200
+ <xsl:apply-templates select="/*/bipm:bibliography/bipm:references[not(@normative='true')]" mode="contents"/>
201
+
202
+ <!-- Index -->
203
+ <xsl:apply-templates select="//bipm:clause[@type = 'index']" mode="contents"/>
204
+
101
205
  </contents>
102
206
  </xsl:template>
103
207
 
@@ -177,15 +281,6 @@
177
281
  </fo:repeatable-page-master-alternatives>
178
282
  </fo:page-sequence-master>
179
283
 
180
- <!-- Independent Appendix pages -->
181
- <!-- <fo:simple-page-master master-name="appendix" page-width="{$pageWidth}" page-height="{$pageHeight}">
182
- <fo:region-body margin-top="25mm" margin-bottom="25mm" margin-left="25mm" margin-right="25mm"/>
183
- <fo:region-before region-name="header-appendix" extent="25mm"/>
184
- <fo:region-after region-name="footer-appendix" extent="25mm"/>
185
- <fo:region-start region-name="left-region" extent="25mm"/>
186
- <fo:region-end region-name="right-region" extent="25mm"/>
187
- </fo:simple-page-master> -->
188
-
189
284
 
190
285
  </fo:layout-master-set>
191
286
 
@@ -227,14 +322,19 @@
227
322
  <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
228
323
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
229
324
  <!-- change id to prevent identical id in different documents in one container -->
230
- <xsl:variable name="current_document">
325
+ <!-- <xsl:variable name="current_document">
231
326
  <xsl:apply-templates select="." mode="change_id">
232
327
  <xsl:with-param name="lang" select="$lang"/>
328
+ <xsl:with-param name="ignoreReferenceFrom" select="'true'"/>
233
329
  </xsl:apply-templates>
234
330
  </xsl:variable>
235
331
 
236
332
  <xsl:variable name="flatxml">
237
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"/>
238
338
  </xsl:variable>
239
339
 
240
340
  <!-- flatxml=<xsl:copy-of select="$flatxml"/> -->
@@ -250,7 +350,7 @@
250
350
  <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
251
351
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
252
352
  <!-- change id to prevent identical id in different documents in one container -->
253
- <xsl:variable name="current_document">
353
+ <!-- <xsl:variable name="current_document">
254
354
  <xsl:apply-templates select="." mode="change_id">
255
355
  <xsl:with-param name="lang" select="$lang"/>
256
356
  </xsl:apply-templates>
@@ -258,6 +358,10 @@
258
358
 
259
359
  <xsl:variable name="flatxml">
260
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"/>
261
365
  </xsl:variable>
262
366
 
263
367
  <xsl:apply-templates select="xalan:nodeset($flatxml)/bipm:bipm-standard" mode="bipm-standard">
@@ -277,6 +381,9 @@
277
381
  </xsl:variable>
278
382
 
279
383
  <!-- flatxml=<xsl:copy-of select="$flatxml"/> -->
384
+
385
+ <!-- indexes=<xsl:copy-of select="$indexes"/> -->
386
+
280
387
 
281
388
  <xsl:apply-templates select="xalan:nodeset($flatxml)/bipm:bipm-standard" mode="bipm-standard">
282
389
  <xsl:with-param name="curr_docnum" select="1"/>
@@ -382,8 +489,34 @@
382
489
  <xsl:apply-templates mode="flatxml"/>
383
490
  </xsl:template>
384
491
 
492
+
493
+ <!-- move note(s) inside element -->
494
+ <!-- but ignore quote, move inside element which before quote -->
495
+ <xsl:template match="bipm:clause/* [not(local-name() = 'quote')] [following-sibling::* [not(local-name()='quote')] [1][local-name() = 'note']]" mode="flatxml"> <!-- find element, which has next 'note' -->
496
+ <xsl:copy>
497
+ <xsl:apply-templates select="@*|node()" mode="flatxml"/>
498
+ <xsl:variable name="element-id" select="generate-id(.)"/>
499
+ <xsl:for-each select="following-sibling::bipm:note[generate-id(preceding-sibling::*[not(local-name()='note') and not(local-name()='quote')][1]) = $element-id]">
500
+ <xsl:call-template name="change_note_kind"/>
501
+ </xsl:for-each>
502
+
503
+ <!-- if current node is title level is 3 with notes, and next level is 4 -->
504
+ <xsl:if test="local-name() = 'title' and @depth = 3 and ../bipm:clause/bipm:title/@depth = 4 and count(following-sibling::*[1][local-name() = 'note']) &gt; 0">
505
+ <!-- then move here footnotes from clause level 4 -->
506
+ <xsl:for-each select="../bipm:clause//bipm:fn[ancestor::bipm:quote or not(ancestor::bipm:table)]">
507
+ <xsl:call-template name="fn_to_note_side"/>
508
+ </xsl:for-each>
509
+ </xsl:if>
510
+
511
+ </xsl:copy>
512
+ </xsl:template>
513
+
514
+ <!-- remove note(s), which was moved into element in previous template -->
515
+ <xsl:template match="bipm:clause/bipm:note" mode="flatxml" priority="2"/>
516
+
517
+
385
518
  <!-- move clause/note inside title, p, ul or ol -->
386
- <xsl:template match="bipm:clause/*[local-name() != 'quote' and local-name() != 'note' and local-name() != 'clause'][last()]" mode="flatxml">
519
+ <xsl:template match="bipm:clause2/*[local-name() != 'quote' and local-name() != 'note' and local-name() != 'clause'][last()]" mode="flatxml">
387
520
  <xsl:copy>
388
521
  <xsl:apply-templates select="@*|node()" mode="flatxml"/>
389
522
  <!-- <xsl:copy-of select="following-sibling::*[local-name() = 'note']"/> -->
@@ -407,7 +540,7 @@
407
540
  </xsl:template> -->
408
541
 
409
542
  <!-- <xsl:template match="bipm:clause/bipm:note[count(following-sibling::*) = 0]" mode="flatxml"/> -->
410
- <xsl:template match="bipm:clause/bipm:note[count(following-sibling::*[local-name() != 'clause' and local-name() != 'note']) = 0]" mode="flatxml" priority="2"/>
543
+ <!-- <xsl:template match="bipm:clause/bipm:note[count(following-sibling::*[local-name() != 'clause' and local-name() != 'note']) = 0]" mode="flatxml" priority="2"/> -->
411
544
 
412
545
 
413
546
  <xsl:template match="bipm:note" name="change_note_kind" mode="flatxml">
@@ -541,7 +674,7 @@
541
674
 
542
675
  <!-- copy 'ol' 'ul' properties to each 'li' -->
543
676
  <!-- OBSOLETE: move note for list (list level note) into latest 'li' -->
544
- <!-- move note for list (list level note) into first 'li' -->
677
+ <!-- NOW: move note for list (list level note) into first 'li' -->
545
678
  <!-- move fn for list-item (list-item level footnote) into first 'li' -->
546
679
  <xsl:template match="bipm:li" mode="flatxml_list">
547
680
  <xsl:copy>
@@ -573,6 +706,15 @@
573
706
  </xsl:otherwise>
574
707
  </xsl:choose>
575
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
+
576
718
 
577
719
  <xsl:if test="ancestor::bipm:quote or not(ancestor::bipm:table)">
578
720
 
@@ -681,7 +823,7 @@
681
823
  </xsl:choose>
682
824
  </xsl:variable>
683
825
 
684
- <xsl:number value="$start_value + $curr_value" format="{$format}"/>
826
+ <xsl:number value="$start_value + $curr_value" format="{$format}" lang="en"/>
685
827
 
686
828
  </xsl:otherwise>
687
829
  </xsl:choose>
@@ -693,6 +835,31 @@
693
835
  </xsl:when>
694
836
  </xsl:choose>
695
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
+
696
863
  <!-- ================================= -->
697
864
  <!-- END: Flattening xml for fit notes at page sides (margins) -->
698
865
  <!-- ================================= -->
@@ -787,43 +954,47 @@
787
954
  <xsl:apply-templates select="bipm:boilerplate/bipm:license-statement"/>
788
955
 
789
956
  <fo:block-container absolute-position="fixed" top="200mm" height="69mm" font-family="Times New Roman" text-align="center" display-align="after">
790
- <xsl:apply-templates select="bipm:boilerplate/bipm:feedback-statement"/>
791
- <xsl:variable name="ISBN" select="normalize-space(bipm:bibdata/bipm:docidentifier[@type='ISBN'])"/>
792
- <xsl:if test="$ISBN != ''">
793
- <fo:block margin-top="15mm">
794
- <xsl:text>ISBN </xsl:text><xsl:value-of select="$ISBN"/>
795
- </fo:block>
796
- </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>
797
966
  </fo:block-container>
798
967
 
799
968
  </fo:flow>
800
969
  </fo:page-sequence>
801
970
 
802
- <fo:page-sequence master-reference="document" force-page-count="no-force">
803
- <xsl:call-template name="insertFootnoteSeparator"/>
804
-
805
- <xsl:variable name="header-title">
806
- <xsl:choose>
807
- <xsl:when test="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab']">
808
- <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
809
- </xsl:when>
810
- <xsl:otherwise>
811
- <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]" mode="header"/>
812
- </xsl:otherwise>
813
- </xsl:choose>
814
- </xsl:variable>
815
- <xsl:call-template name="insertHeaderFooter">
816
- <xsl:with-param name="header-title" select="$header-title"/>
817
- </xsl:call-template>
818
-
819
- <fo:flow flow-name="xsl-region-body">
820
- <fo:block line-height="135%">
821
- <!-- <xsl:apply-templates select="bipm:preface/bipm:abstract" /> -->
822
- <xsl:apply-templates select="bipm:preface/*[1]"/>
823
- </fo:block>
824
- </fo:flow>
825
- </fo:page-sequence>
826
-
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>
827
998
 
828
999
 
829
1000
  <xsl:variable name="docid">
@@ -870,7 +1041,7 @@
870
1041
  <fo:table-column column-width="127mm"/>
871
1042
  <fo:table-column column-width="12mm"/>
872
1043
  <fo:table-body>
873
- <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')]">
874
1045
  <xsl:call-template name="insertContentItem"/>
875
1046
  </xsl:for-each>
876
1047
  <xsl:if test="$doctype ='brochure'">
@@ -884,6 +1055,9 @@
884
1055
  <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and (@type = 'annex')]"> <!-- or (@level = 2 and @parent = 'annex') -->
885
1056
  <xsl:call-template name="insertContentItem"/>
886
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>
887
1061
  </fo:table-body>
888
1062
  </fo:table>
889
1063
  </xsl:if>
@@ -914,6 +1088,9 @@
914
1088
  <!-- Bibliography -->
915
1089
  <xsl:apply-templates select="bipm:bibliography/bipm:references[not(@normative='true')]" mode="sections"/>
916
1090
 
1091
+ <!-- Index -->
1092
+ <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:clause[@type = 'index']" mode="index"/>
1093
+
917
1094
  <!-- End Document Pages -->
918
1095
 
919
1096
 
@@ -924,32 +1101,10 @@
924
1101
  </xsl:when>
925
1102
  <xsl:otherwise> <!-- independentAppendix != '' -->
926
1103
 
927
-
928
- <!-- <fo:page-sequence master-reference="appendix" initial-page-number="1" force-page-count="no-force">
929
- <xsl:call-template name="insertFootnoteSeparator"/>
930
- <xsl:call-template name="insertHeaderFooterAppendix"/>
931
- <fo:flow flow-name="xsl-region-body" font-family="Times New Roman">
932
- <fo:block-container border-bottom="1.5pt solid rgb(79, 129, 189)" margin-bottom="36pt">
933
- <fo:block font-family="Arial" font-size="24pt" font-weight="bold" color="rgb(23, 54, 93)">
934
- <fo:block>
935
- <xsl:choose>
936
- <xsl:when test="$lang = 'fr'">Annexe </xsl:when>
937
- <xsl:otherwise>Appendix </xsl:otherwise>
938
- </xsl:choose>
939
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix"/>
940
- <xsl:text>. </xsl:text>
941
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix' and @language = $lang]"/>
942
- </fo:block>
943
- </fo:block>
944
- </fo:block-container>
945
-
946
- <fo:block line-height="130%">
947
- <xsl:apply-templates select="bipm:sections/*"/>
948
- </fo:block>
949
-
950
- <fo:block id="theLastPage"/>
951
- </fo:flow>
952
- </fo:page-sequence> -->
1104
+
1105
+ <xsl:variable name="docid">
1106
+ <xsl:call-template name="getDocumentId"/>
1107
+ </xsl:variable>
953
1108
 
954
1109
  <fo:page-sequence master-reference="document" force-page-count="no-force">
955
1110
 
@@ -978,18 +1133,22 @@
978
1133
  <fo:block-container font-size="18pt" font-weight="bold" text-align="center">
979
1134
  <fo:block>
980
1135
 
981
- <xsl:variable name="title">
982
- <xsl:choose>
983
- <xsl:when test="$independentAppendix != ''">
984
- <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='appendix']"/>
985
- </xsl:when>
986
- <xsl:otherwise> <!-- doctype = 'guide' -->
987
- <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='main']"/>
988
- </xsl:otherwise>
989
- </xsl:choose>
990
- </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
+
991
1150
 
992
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1151
+ <!-- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
993
1152
 
994
1153
  <xsl:choose>
995
1154
  <xsl:when test="$curr_lang = 'en' and contains($title, $mep_text)">
@@ -1000,7 +1159,7 @@
1000
1159
  <xsl:otherwise>
1001
1160
  <xsl:value-of select="$title"/>
1002
1161
  </xsl:otherwise>
1003
- </xsl:choose>
1162
+ </xsl:choose> -->
1004
1163
 
1005
1164
  </fo:block>
1006
1165
 
@@ -1012,7 +1171,7 @@
1012
1171
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$curr_lang]),'#',$part_num)"/>
1013
1172
  </xsl:if>
1014
1173
  <xsl:text>: </xsl:text>
1015
- <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"/>
1016
1175
  </fo:block>
1017
1176
  </xsl:if>
1018
1177
  <xsl:variable name="subpart_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
@@ -1022,7 +1181,7 @@
1022
1181
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang=$curr_lang]),'#',$subpart_num)"/>
1023
1182
  </xsl:if>
1024
1183
  <xsl:text>: </xsl:text>
1025
- <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"/>
1026
1185
  </fo:block>
1027
1186
  </xsl:if>
1028
1187
 
@@ -1093,6 +1252,8 @@
1093
1252
 
1094
1253
  <xsl:apply-templates select="bipm:bibliography/bipm:references[not(@normative='true')]" mode="sections"/>
1095
1254
 
1255
+ <!-- Index -->
1256
+ <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:clause[@type = 'index']" mode="index"/>
1096
1257
 
1097
1258
  </xsl:otherwise>
1098
1259
  </xsl:choose>
@@ -1111,7 +1272,7 @@
1111
1272
  <xsl:call-template name="insertCoverPageCommon"/>
1112
1273
 
1113
1274
  <fo:block-container height="100%" display-align="center" border="0pt solid black"><!-- -->
1114
- <fo:block font-family="WorkSans" font-size="50pt" line-height="115%">
1275
+ <fo:block font-family="Work Sans" font-size="50pt" line-height="115%">
1115
1276
 
1116
1277
  <xsl:variable name="languages">
1117
1278
  <xsl:call-template name="getLanguages"/>
@@ -1182,7 +1343,7 @@
1182
1343
 
1183
1344
  <fo:page-sequence master-reference="cover-page-appendix" force-page-count="even" initial-page-number="1">
1184
1345
 
1185
- <fo:flow flow-name="xsl-region-body" font-family="WorkSans">
1346
+ <fo:flow flow-name="xsl-region-body" font-family="Work Sans">
1186
1347
 
1187
1348
  <xsl:call-template name="insertCoverPageCommon"/>
1188
1349
 
@@ -1191,8 +1352,8 @@
1191
1352
 
1192
1353
  <fo:block-container absolute-position="fixed" left="12.5mm" top="60mm">
1193
1354
 
1194
- <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>
1195
- <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>
1196
1357
 
1197
1358
  <xsl:variable name="edition_str">édition</xsl:variable>
1198
1359
  <!-- <xsl:choose>
@@ -1200,123 +1361,173 @@
1200
1361
  <xsl:otherwise>edition</xsl:otherwise>
1201
1362
  </xsl:choose>
1202
1363
  </xsl:variable> -->
1203
- <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>
1204
1365
  </fo:block-container>
1205
1366
 
1206
- <fo:block-container height="98%" display-align="center">
1207
-
1208
- <!-- Appendix titles processing -->
1209
- <xsl:variable name="appendix_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
1210
- <xsl:if test="$appendix_num != ''">
1211
- <fo:block font-size="17pt" font-weight="{$weight-normal}">Annexe <xsl:value-of select="$appendix_num"/></fo:block>
1212
- <fo:block font-size="17pt" font-weight="{$weight-bold}">Appendix <xsl:value-of select="$appendix_num"/></fo:block>
1213
- </xsl:if>
1214
-
1215
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix']">
1216
- <fo:block font-size="30.4pt">
1217
- <fo:block> </fo:block>
1218
- <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'appendix']"/></fo:block>
1219
- <fo:block> </fo:block>
1220
- <fo:block font-weight="{$weight-bold}">
1221
- <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'appendix']"/>
1222
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1223
- <xsl:choose>
1224
- <xsl:when test="contains($title_en, $mep_text)">
1225
- <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1226
- <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1227
- <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1228
- </xsl:when>
1229
- <xsl:otherwise>
1230
- <xsl:value-of select="$title_en"/>
1231
- </xsl:otherwise>
1232
- </xsl:choose>
1233
- </fo:block>
1234
- </fo:block>
1235
- </xsl:if>
1236
- <!-- 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>
1237
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>
1238
1420
 
1239
- <!-- Part titles processing -->
1240
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'part']">
1241
- <xsl:variable name="part_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:part)"/>
1242
- <xsl:if test="$part_num != ''">
1243
- <!-- Part -->
1244
- <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>
1245
- <!-- Partie -->
1246
- <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>
1247
1426
  </xsl:if>
1248
-
1249
- <fo:block font-size="30.4pt">
1250
-
1251
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']">
1252
- <fo:block> </fo:block>
1253
- <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']"/></fo:block>
1254
- </xsl:if>
1255
-
1256
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']">
1257
- <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>
1258
1434
  <fo:block font-weight="{$weight-bold}">
1259
- <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']"/>
1260
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1261
- <xsl:choose>
1262
- <xsl:when test="contains($title_en, $mep_text)">
1263
- <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1264
- <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1265
- <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1266
- </xsl:when>
1267
- <xsl:otherwise>
1268
- <xsl:value-of select="$title_en"/>
1269
- </xsl:otherwise>
1270
- </xsl:choose>
1435
+ <xsl:copy-of select="$title_appendix_en"/>
1271
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>
1272
1450
  </xsl:if>
1273
- </fo:block>
1274
- </xsl:if>
1275
- <!-- End Part titles processing -->
1276
-
1277
- <!-- Sub-part titles processing -->
1278
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'subpart']">
1279
- <xsl:variable name="subpart_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
1280
- <xsl:if test="$subpart_num != ''">
1281
- <!-- Sub-part -->
1282
- <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>
1283
- <!-- Partie de sub -->
1284
- <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>
1285
1466
  </xsl:if>
1286
-
1287
- <fo:block font-size="30.4pt">
1288
-
1289
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'subpart']">
1290
- <fo:block> </fo:block>
1291
- <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>
1292
1478
  </xsl:if>
1293
-
1294
- <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']">
1295
- <fo:block> </fo:block>
1296
- <fo:block font-weight="{$weight-bold}">
1297
- <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']"/>
1298
- <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1299
- <xsl:choose>
1300
- <xsl:when test="contains($title_en, $mep_text)">
1301
- <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1302
- <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1303
- <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1304
- </xsl:when>
1305
- <xsl:otherwise>
1306
- <xsl:value-of select="$title_en"/>
1307
- </xsl:otherwise>
1308
- </xsl:choose>
1309
- </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>
1310
1506
  </xsl:if>
1311
- </fo:block>
1312
- </xsl:if>
1313
- <!-- 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 -->
1314
1525
 
1315
-
1526
+ </fo:block>
1316
1527
  </fo:block-container>
1317
1528
 
1318
1529
  <!-- <fo:block-container>
1319
- <fo:block font-family="WorkSans" font-size="16pt" line-height="120%" font-weight="400" margin-top="20mm">
1530
+ <fo:block font-family="Work Sans" font-size="16pt" line-height="120%" font-weight="400" margin-top="20mm">
1320
1531
  <fo:block>
1321
1532
  <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $lang]"/>
1322
1533
  <xsl:text> (</xsl:text>
@@ -1336,26 +1547,26 @@
1336
1547
  <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix"/>
1337
1548
  </fo:block>
1338
1549
  </fo:block>
1339
- <fo:block font-family="WorkSans" font-size="36pt" font-weight="600" margin-top="15mm">
1550
+ <fo:block font-family="Work Sans" font-size="36pt" font-weight="600" margin-top="15mm">
1340
1551
  <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix' and @language = $lang]"/>
1341
1552
  </fo:block>
1342
1553
  </fo:block-container> -->
1343
1554
 
1344
1555
  <fo:block-container absolute-position="fixed" left="12mm" top="242mm" height="42mm" width="140mm" display-align="after">
1345
1556
  <fo:block font-size="12pt">
1346
- <fo:block><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'fr']"/></fo:block>
1347
- <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>
1348
1559
  <fo:block> </fo:block>
1349
1560
  <!-- <fo:block>BIPM SI MEP S1</fo:block> -->
1350
1561
  <fo:block>
1351
1562
  <xsl:call-template name="printRevisionDate">
1352
- <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"/>
1353
1564
  <xsl:with-param name="lang" select="'en'"/>
1354
1565
  </xsl:call-template>
1355
1566
  </fo:block>
1356
1567
  <fo:block>
1357
1568
  <xsl:call-template name="printRevisionDate">
1358
- <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"/>
1359
1570
  <xsl:with-param name="lang" select="'fr'"/>
1360
1571
  </xsl:call-template>
1361
1572
  </fo:block>
@@ -1397,74 +1608,95 @@
1397
1608
  </xsl:template>
1398
1609
 
1399
1610
  <xsl:template name="insertInnerCoverPage">
1400
- <fo:page-sequence master-reference="title-page" format="1" initial-page-number="1" force-page-count="even">
1401
-
1402
- <fo:flow flow-name="xsl-region-body" font-family="Arial">
1403
-
1404
- <xsl:variable name="languages">
1405
- <xsl:call-template name="getLanguages"/>
1406
- </xsl:variable>
1407
-
1408
- <xsl:variable name="titles">
1409
- <xsl:for-each select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:title">
1410
- <xsl:copy-of select="."/>
1411
- </xsl:for-each>
1412
- </xsl:variable>
1413
-
1414
- <xsl:for-each select="xalan:nodeset($languages)/lang">
1415
- <xsl:variable name="curr_lang" select="."/>
1416
- <xsl:variable name="title" select="xalan:nodeset($titles)//bipm:title[@language = $curr_lang and @type='cover']"/>
1417
- <xsl:choose>
1418
- <xsl:when test="position() = 1">
1419
- <fo:block-container font-size="12pt" font-weight="bold" width="55mm">
1420
- <fo:block>
1421
- <xsl:call-template name="add-letter-spacing">
1422
- <xsl:with-param name="text" select="$title"/>
1423
- <xsl:with-param name="letter-spacing" select="0.09"/>
1424
- </xsl:call-template>
1425
- </fo:block>
1426
- <fo:block font-size="10pt">
1427
- <fo:block margin-bottom="6pt"> </fo:block>
1428
- <fo:block margin-bottom="6pt"> </fo:block>
1429
- <fo:block margin-bottom="6pt"> </fo:block>
1430
- <fo:block margin-bottom="6pt" line-height="2.4"> </fo:block>
1431
- </fo:block>
1432
- </fo:block-container>
1433
- </xsl:when>
1434
- <xsl:otherwise>
1435
- <fo:block font-size="10pt" margin-bottom="3pt">
1436
- <xsl:variable name="lang_version">
1437
- <xsl:call-template name="getLangVersion">
1438
- <xsl:with-param name="lang" select="$curr_lang"/>
1439
- </xsl:call-template>
1440
- </xsl:variable>
1441
- <xsl:call-template name="add-letter-spacing">
1442
- <xsl:with-param name="text" select="normalize-space($lang_version)"/>
1443
- <xsl:with-param name="letter-spacing" select="0.09"/>
1444
- </xsl:call-template>
1445
- </fo:block>
1446
- <fo:block-container font-size="12pt" font-weight="bold" border-top="0.5pt solid black" padding-top="2mm" width="45mm">
1447
- <fo:block>
1448
- <xsl:call-template name="add-letter-spacing">
1449
- <xsl:with-param name="text" select="$title"/>
1450
- <xsl:with-param name="letter-spacing" select="0.09"/>
1451
- </xsl:call-template>
1452
- </fo:block>
1453
- </fo:block-container>
1454
- </xsl:otherwise>
1455
-
1456
- </xsl:choose>
1457
- </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">
1458
1615
 
1616
+ <fo:flow flow-name="xsl-region-body" font-family="Arial">
1459
1617
 
1618
+ <xsl:variable name="languages">
1619
+ <xsl:call-template name="getLanguages"/>
1620
+ </xsl:variable>
1460
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>
1461
1627
 
1462
- </fo:flow>
1463
- </fo:page-sequence>
1464
-
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>
1465
1679
  </xsl:template>
1466
1680
  <!-- End Cover Pages -->
1467
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
+
1468
1700
  <xsl:template name="insertSeparatorPage">
1469
1701
  <!-- 3 Pages with BIPM Metro logo -->
1470
1702
  <fo:page-sequence master-reference="document" force-page-count="no-force">
@@ -1561,7 +1793,12 @@
1561
1793
  <xsl:attribute name="margin-left">25mm</xsl:attribute>
1562
1794
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1563
1795
  </xsl:if>
1564
-
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>
1565
1802
  <!-- <xsl:if test="@level = 2 and not(following-sibling::item[@display='true']) and not(item[@display='true'])">
1566
1803
  <xsl:attribute name="space-after">12pt</xsl:attribute>
1567
1804
  </xsl:if>
@@ -1585,6 +1822,7 @@
1585
1822
  <fo:block>
1586
1823
  <xsl:if test="@level = 1 or (@level = 2 and not(@parent = 'annex'))">
1587
1824
  <xsl:value-of select="@section"/>
1825
+ <xsl:if test="normalize-space(@section) != '' and @type = 'annex'">.</xsl:if>
1588
1826
  </xsl:if>
1589
1827
  <!-- <fo:inline font-size="10pt" color="white">Z</fo:inline> --> <!-- for baseline alignment in string -->
1590
1828
  </fo:block>
@@ -1626,7 +1864,9 @@
1626
1864
  <xsl:attribute name="padding-bottom"><xsl:value-of select="normalize-space($space-after)"/></xsl:attribute>
1627
1865
  </xsl:if>
1628
1866
  <fo:block>
1629
- <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1867
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1868
+ <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1869
+ </fo:basic-link>
1630
1870
  </fo:block>
1631
1871
  </fo:table-cell>
1632
1872
  </fo:table-row>
@@ -1677,7 +1917,10 @@
1677
1917
  </xsl:variable>
1678
1918
 
1679
1919
  <xsl:variable name="type">
1680
- <xsl:value-of select="local-name()"/>
1920
+ <xsl:choose>
1921
+ <xsl:when test="@type = 'index'">index</xsl:when>
1922
+ <xsl:otherwise><xsl:value-of select="local-name()"/></xsl:otherwise>
1923
+ </xsl:choose>
1681
1924
  </xsl:variable>
1682
1925
 
1683
1926
  <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" display="{$display}">
@@ -1687,7 +1930,9 @@
1687
1930
  <title>
1688
1931
  <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1689
1932
  </title>
1690
- <xsl:apply-templates mode="contents"/>
1933
+ <xsl:if test="$type != 'index'">
1934
+ <xsl:apply-templates mode="contents"/>
1935
+ </xsl:if>
1691
1936
  </item>
1692
1937
  </xsl:if>
1693
1938
  </xsl:template>
@@ -1836,7 +2081,7 @@
1836
2081
  </fo:block>
1837
2082
  </xsl:template>
1838
2083
 
1839
- <xsl:template match="bipm:license-statement//bipm:link">
2084
+ <!-- <xsl:template match="bipm:license-statement//bipm:link">
1840
2085
  <fo:inline color="blue" text-decoration="underline">
1841
2086
  <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
1842
2087
  <xsl:choose>
@@ -1849,7 +2094,7 @@
1849
2094
  </xsl:choose>
1850
2095
  </fo:basic-link>
1851
2096
  </fo:inline>
1852
- </xsl:template>
2097
+ </xsl:template> -->
1853
2098
 
1854
2099
 
1855
2100
  <xsl:template match="bipm:feedback-statement">
@@ -2806,8 +3051,8 @@
2806
3051
  <xsl:if test=".//bipm:fn">
2807
3052
  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
2808
3053
  </xsl:if>
2809
- <!-- <xsl:call-template name="processBibitem"/> -->
2810
- <xsl:apply-templates/>
3054
+ <xsl:call-template name="processBibitem"/>
3055
+ <!-- <xsl:apply-templates /> -->
2811
3056
  </fo:block>
2812
3057
  </xsl:template>
2813
3058
 
@@ -2859,14 +3104,22 @@
2859
3104
  <fo:list-item-label end-indent="label-end()">
2860
3105
  <fo:block>
2861
3106
  <fo:inline>
2862
- <xsl:number format="1."/>
3107
+ <!-- <xsl:number format="1."/> -->
3108
+ <xsl:choose>
3109
+ <xsl:when test="bipm:docidentifier[@type='metanorma']">
3110
+ <xsl:value-of select="bipm:docidentifier[@type='metanorma']"/>
3111
+ </xsl:when>
3112
+ <xsl:otherwise>
3113
+ <xsl:number format="[1]"/>
3114
+ </xsl:otherwise>
3115
+ </xsl:choose>
2863
3116
  </fo:inline>
2864
3117
  </fo:block>
2865
3118
  </fo:list-item-label>
2866
3119
  <fo:list-item-body start-indent="body-start()">
2867
3120
  <fo:block>
2868
- <!-- <xsl:call-template name="processBibitem"/> -->
2869
- <xsl:apply-templates/>
3121
+ <xsl:call-template name="processBibitem"/>
3122
+ <!-- <xsl:apply-templates /> -->
2870
3123
  </fo:block>
2871
3124
  </fo:list-item-body>
2872
3125
  </fo:list-item>
@@ -2882,6 +3135,9 @@
2882
3135
  </fo:inline>
2883
3136
  </xsl:template>
2884
3137
 
3138
+ <xsl:template match="bipm:references/bipm:bibitem/bipm:docidentifier[@type='metanorma' and ../bipm:formattedref]"/>
3139
+
3140
+
2885
3141
  <xsl:template match="bipm:pagebreak">
2886
3142
  <fo:block break-after="page"/>
2887
3143
  <!-- <fo:block>&#xA0;</fo:block>
@@ -2905,18 +3161,40 @@
2905
3161
  <xsl:template match="bipm:xref" priority="2">
2906
3162
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">
2907
3163
  <xsl:choose>
2908
- <xsl:when test="@pagenumber='true'"><!-- ToC in Appendix -->
2909
- <fo:inline font-weight="bold"><fo:page-number-citation ref-id="{@target}"/></fo:inline>
3164
+ <xsl:when test="@pagenumber='true'"><!-- ToC in Appendix, and page in references like this: « Le BIPM et la Convention du Mètre » (page 5). -->
3165
+ <fo:inline> <!-- font-weight="bold" -->
3166
+ <!-- DEBUG -->
3167
+ <xsl:if test="@id">
3168
+ <!-- <xsl:value-of select="concat('[', @id,']')"/> -->
3169
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
3170
+ </xsl:if>
3171
+ <fo:page-number-citation ref-id="{@target}"/>
3172
+ <!-- <xsl:if test="@to">&#x2013;<fo:page-number-citation ref-id="{@to}"/></xsl:if> -->
3173
+ </fo:inline>
2910
3174
  </xsl:when>
2911
3175
  <xsl:when test="starts-with(normalize-space(following-sibling::node()[1]), ')')">
2912
3176
  <!-- add , see p. N -->
2913
3177
  <!-- add , voir p. N -->
2914
- <xsl:apply-templates/>
2915
- <xsl:text>, </xsl:text>
2916
- <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
2917
- <xsl:value-of select="ancestor::bipm:bipm-standard/bipm:localized-strings/bipm:localized-string[@key='see' and @language=$curr_lang]"/>
2918
- <xsl:text> p. </xsl:text>
2919
- <fo:page-number-citation ref-id="{@target}"/>
3178
+ <xsl:apply-templates/>
3179
+
3180
+ <xsl:variable name="nopage" select="normalize-space(@nopage)"/>
3181
+
3182
+ <xsl:if test="$nopage != 'true'">
3183
+ <xsl:text>, </xsl:text>
3184
+ <xsl:variable name="nosee" select="normalize-space(@nosee)"/>
3185
+ <xsl:if test="$nosee != 'true'">
3186
+ <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
3187
+ <fo:inline>
3188
+ <xsl:if test="ancestor::bipm:note_side">
3189
+ <xsl:attribute name="font-style">italic</xsl:attribute>
3190
+ </xsl:if>
3191
+ <xsl:value-of select="ancestor::bipm:bipm-standard/bipm:localized-strings/bipm:localized-string[@key='see' and @language=$curr_lang]"/>
3192
+ </fo:inline>
3193
+ <xsl:text> </xsl:text>
3194
+ </xsl:if>
3195
+ <xsl:text>p. </xsl:text>
3196
+ <fo:page-number-citation ref-id="{@target}"/>
3197
+ </xsl:if>
2920
3198
  </xsl:when>
2921
3199
  <xsl:otherwise>
2922
3200
  <fo:inline><xsl:apply-templates/></fo:inline>
@@ -2925,6 +3203,16 @@
2925
3203
  </fo:basic-link>
2926
3204
  </xsl:template>
2927
3205
 
3206
+ <xsl:template match="bipm:eref[.//bipm:locality[@type = 'anchor']]" priority="2">
3207
+ <xsl:variable name="target" select=".//bipm:locality[@type = 'anchor']/bipm:referenceFrom"/>
3208
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
3209
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'localityStack')]"/> -->
3210
+ <xsl:if test="xalan:nodeset($ids)//id = $target">
3211
+ <fo:page-number-citation ref-id="{$target}"/>
3212
+ </xsl:if>
3213
+ </fo:basic-link>
3214
+ </xsl:template>
3215
+
2928
3216
  <xsl:template match="bipm:note[not(ancestor::bipm:preface)]/bipm:name" priority="2" mode="presentation">
2929
3217
  <xsl:choose>
2930
3218
  <xsl:when test="not(../preceding-sibling::bipm:note) and not((../following-sibling::bipm:note))">
@@ -2963,6 +3251,9 @@
2963
3251
  </fo:inline>
2964
3252
  </xsl:template>
2965
3253
 
3254
+ <!-- DEBUG -->
3255
+ <!-- <xsl:template match="mathml:math" priority="10"/> -->
3256
+
2966
3257
  <!-- for chemical expressions, when prefix superscripted -->
2967
3258
  <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">
2968
3259
  <mathml:mspace height="1ex"/>
@@ -2978,7 +3269,7 @@
2978
3269
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
2979
3270
  </xsl:copy>
2980
3271
  <!-- <xsl:copy-of select="."/> -->
2981
- <mathml:mspace height="1.4ex"/>
3272
+ <mathml:mspace height="1.47ex"/>
2982
3273
  </xsl:template>
2983
3274
 
2984
3275
  <!-- set script minimal font-size -->
@@ -2991,6 +3282,37 @@
2991
3282
  </xsl:copy>
2992
3283
  </xsl:template>
2993
3284
 
3285
+ <!-- issue 'over bar above equation with sub' fixing -->
3286
+ <xsl:template match="mathml:msub/mathml:mrow[1][mathml:mover and count(following-sibling::*) = 1 and following-sibling::mathml:mrow]" mode="mathml" priority="2">
3287
+ <mathml:mstyle>
3288
+ <xsl:copy-of select="."/>
3289
+ </mathml:mstyle>
3290
+ </xsl:template>
3291
+
3292
+ <!-- Decrease space between ()
3293
+ from:
3294
+ <mfenced open="(" close=")">
3295
+ <mrow>
3296
+ <mtext>Cu</mtext>
3297
+ </mrow>
3298
+ </mfenced>
3299
+ to:
3300
+ <mrow>
3301
+ <mtext>(Cu)</mtext>
3302
+ </mrow> -->
3303
+ <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">
3304
+ <xsl:apply-templates mode="mathml"/>
3305
+ </xsl:template>
3306
+
3307
+ <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::*)] -->
3308
+ <xsl:copy>
3309
+ <xsl:apply-templates select="@*" mode="mathml"/>
3310
+ <xsl:value-of select="ancestor::mathml:mfenced/@open"/>
3311
+ <xsl:value-of select="."/>
3312
+ <xsl:value-of select="ancestor::mathml:mfenced/@close"/>
3313
+ </xsl:copy>
3314
+ </xsl:template>
3315
+
2994
3316
  <xsl:template name="insertHeaderFooter">
2995
3317
  <xsl:param name="header-title"/>
2996
3318
  <fo:static-content flow-name="header-odd">
@@ -3117,46 +3439,291 @@
3117
3439
  <xsl:value-of select="concat($day, ' ', $monthStr, ' ', $year)"/>
3118
3440
  </xsl:when>
3119
3441
  <xsl:otherwise>
3120
- <xsl:value-of select="concat($monthStr, ' ', $day, ', ', $year)"/>
3442
+ <!-- <xsl:value-of select="concat($monthStr, ' ', $day, ', ', $year)"/> -->
3443
+ <xsl:value-of select="$monthStr"/>
3444
+ <xsl:text> </xsl:text>
3445
+ <xsl:value-of select="$day"/>
3446
+ <xsl:if test="$day != '' and $year != ''"><xsl:text>, </xsl:text></xsl:if>
3447
+ <xsl:value-of select="$year"/>
3121
3448
  </xsl:otherwise>
3122
3449
  </xsl:choose>
3123
3450
 
3124
3451
  </xsl:template>
3125
-
3126
-
3127
- <xsl:template name="insertFootnoteSeparator">
3128
- <fo:static-content flow-name="xsl-footnote-separator">
3129
- <fo:block>
3130
- <fo:leader leader-pattern="rule" leader-length="30%"/>
3131
- </fo:block>
3132
- </fo:static-content>
3452
+
3453
+
3454
+ <xsl:template name="insertFootnoteSeparator">
3455
+ <fo:static-content flow-name="xsl-footnote-separator">
3456
+ <fo:block>
3457
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
3458
+ </fo:block>
3459
+ </fo:static-content>
3460
+ </xsl:template>
3461
+
3462
+ <!-- <xsl:template name="insertIndexPages">
3463
+ <fo:page-sequence master-reference="index" force-page-count="no-force">
3464
+ <xsl:call-template name="insertHeaderFooter"/>
3465
+ <fo:flow flow-name="xsl-region-body">
3466
+ <fo:marker marker-class-name="header-title">Index</fo:marker>
3467
+ <fo:block font-size="16pt" font-weight="bold" margin-bottom="84pt" margin-left="-18mm" span="all">Index</fo:block>
3468
+ <xsl:variable name="alphabet" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
3469
+ <xsl:for-each select="(document('')//node())[position() &lt; 26]">
3470
+ <xsl:variable name="letter" select="substring($alphabet, position(), 1)"/>
3471
+ <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always"><xsl:value-of select="$letter"/></fo:block>
3472
+ <fo:block>accélération due à la pesanteur (gn), 33</fo:block>
3473
+ <fo:block>activité d’un radionucléide, 26, 27</fo:block>
3474
+ <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>
3475
+ <fo:block>angle, 25, 26, 33, 37 38, 40, 48, 55, 65</fo:block>
3476
+ <fo:block>atmosphère normale, 52</fo:block>
3477
+ <fo:block>atome gramme, 104</fo:block>
3478
+ <fo:block>atome de césium, niveaux hyperfins, 15, 17, 18, 56, 58, 83, 85, 92, 94, 97, 98, 102</fo:block>
3479
+ <xsl:if test="position() != last()"><fo:block>&#xA0;</fo:block></xsl:if>
3480
+ </xsl:for-each>
3481
+
3482
+ </fo:flow>
3483
+ </fo:page-sequence>
3484
+ </xsl:template>
3485
+ -->
3486
+
3487
+
3488
+ <!-- =================== -->
3489
+ <!-- Index processing -->
3490
+ <!-- =================== -->
3491
+
3492
+ <xsl:template match="@*|node()" mode="index_add_id">
3493
+ <xsl:copy>
3494
+ <xsl:apply-templates select="@*|node()" mode="index_add_id"/>
3495
+ </xsl:copy>
3496
+ </xsl:template>
3497
+
3498
+ <xsl:template match="bipm:xref" mode="index_add_id">
3499
+ <xsl:variable name="id">
3500
+ <xsl:call-template name="generateIndexXrefId"/>
3501
+ </xsl:variable>
3502
+ <xsl:copy> <!-- add id to xref -->
3503
+ <xsl:apply-templates select="@*" mode="index_add_id"/>
3504
+ <xsl:attribute name="id">
3505
+ <xsl:value-of select="$id"/>
3506
+ </xsl:attribute>
3507
+ <xsl:apply-templates mode="index_add_id"/>
3508
+ </xsl:copy>
3509
+ <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
3510
+ <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
3511
+ <xsl:if test="@to">
3512
+ <xsl:value-of select="$dash"/>
3513
+ <xsl:copy>
3514
+ <xsl:copy-of select="@*"/>
3515
+ <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
3516
+ <xsl:attribute name="id">
3517
+ <xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
3518
+ </xsl:attribute>
3519
+ <xsl:apply-templates mode="index_add_id"/>
3520
+ </xsl:copy>
3521
+ </xsl:if>
3522
+ </xsl:template>
3523
+
3524
+ <xsl:template match="@*|node()" mode="index_update">
3525
+ <xsl:copy>
3526
+ <xsl:apply-templates select="@*|node()" mode="index_update"/>
3527
+ </xsl:copy>
3528
+ </xsl:template>
3529
+
3530
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:li" mode="index_update">
3531
+ <xsl:copy>
3532
+ <xsl:apply-templates select="@*" mode="index_update"/>
3533
+ <xsl:apply-templates select="node()[1]" mode="process_li_element"/>
3534
+ </xsl:copy>
3535
+ </xsl:template>
3536
+
3537
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:li/node()" mode="process_li_element" priority="2">
3538
+ <xsl:param name="element"/>
3539
+ <xsl:param name="remove" select="'false'"/>
3540
+ <xsl:param name="target"/>
3541
+ <!-- <node></node> -->
3542
+ <xsl:choose>
3543
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
3544
+ <!-- skip text (i.e. remove it) and process next element -->
3545
+ <!-- [removed_<xsl:value-of select="."/>] -->
3546
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
3547
+ <xsl:with-param name="target"><xsl:value-of select="$target"/></xsl:with-param>
3548
+ </xsl:apply-templates>
3549
+ </xsl:when>
3550
+ <xsl:when test="self::text()">
3551
+ <xsl:value-of select="."/>
3552
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
3553
+ </xsl:when>
3554
+ <xsl:when test="self::* and local-name(.) = 'xref'">
3555
+ <xsl:variable name="id" select="@id"/>
3556
+ <xsl:variable name="page" select="$index//item[@id = $id]"/>
3557
+ <xsl:variable name="id_next" select="following-sibling::bipm:xref[1]/@id"/>
3558
+ <xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
3559
+
3560
+ <xsl:variable name="id_prev" select="preceding-sibling::bipm:xref[1]/@id"/>
3561
+ <xsl:variable name="page_prev" select="$index//item[@id = $id_prev]"/>
3562
+
3563
+ <xsl:choose>
3564
+ <!-- 2nd pass -->
3565
+ <!-- if page is equal to page for next and page is not the end of range -->
3566
+ <xsl:when test="$page != '' and $page_next != '' and $page = $page_next and not(contains($page, '_to'))"> <!-- case: 12, 12-14 -->
3567
+ <!-- skip element (i.e. remove it) and remove next text ',' -->
3568
+ <!-- [removed_xref] -->
3569
+
3570
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
3571
+ <xsl:with-param name="remove">true</xsl:with-param>
3572
+ <xsl:with-param name="target">
3573
+ <xsl:choose>
3574
+ <xsl:when test="$target != ''"><xsl:value-of select="$target"/></xsl:when>
3575
+ <xsl:otherwise><xsl:value-of select="@target"/></xsl:otherwise>
3576
+ </xsl:choose>
3577
+ </xsl:with-param>
3578
+ </xsl:apply-templates>
3579
+ </xsl:when>
3580
+
3581
+ <xsl:when test="$page != '' and $page_prev != '' and $page = $page_prev and contains($page_prev, '_to')"> <!-- case: 12-14, 14, ... -->
3582
+ <!-- remove xref -->
3583
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
3584
+ <xsl:with-param name="remove">true</xsl:with-param>
3585
+ </xsl:apply-templates>
3586
+ </xsl:when>
3587
+
3588
+ <xsl:otherwise>
3589
+ <xsl:apply-templates select="." mode="xref_copy">
3590
+ <xsl:with-param name="target" select="$target"/>
3591
+ </xsl:apply-templates>
3592
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
3593
+ </xsl:otherwise>
3594
+ </xsl:choose>
3595
+ </xsl:when>
3596
+ <xsl:when test="self::* and local-name(.) = 'ul'">
3597
+ <!-- ul -->
3598
+ <xsl:apply-templates select="." mode="index_update"/>
3599
+ </xsl:when>
3600
+ <xsl:otherwise>
3601
+ <xsl:apply-templates select="." mode="xref_copy">
3602
+ <xsl:with-param name="target" select="$target"/>
3603
+ </xsl:apply-templates>
3604
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
3605
+ </xsl:otherwise>
3606
+ </xsl:choose>
3607
+ </xsl:template>
3608
+
3609
+ <xsl:template match="@*|node()" mode="xref_copy">
3610
+ <xsl:param name="target"/>
3611
+ <xsl:copy>
3612
+ <xsl:apply-templates select="@*" mode="xref_copy"/>
3613
+ <xsl:if test="$target != '' and not(xalan:nodeset($bookmark_in_fn)//bookmark[. = $target])">
3614
+ <xsl:attribute name="target"><xsl:value-of select="$target"/></xsl:attribute>
3615
+ </xsl:if>
3616
+ <xsl:apply-templates select="node()" mode="xref_copy"/>
3617
+ </xsl:copy>
3618
+ </xsl:template>
3619
+
3620
+
3621
+ <xsl:template name="generateIndexXrefId">
3622
+ <xsl:variable name="level" select="count(ancestor::bipm:ul)"/>
3623
+ <!-- <xsl:variable name="parent_ul_id" select="generate-id(ancestor::bipm:ul[1])"/>
3624
+ <xsl:variable name="item_number" select="count(ancestor::bipm:li[ancestor::bipm:ul[generate-id() = $parent_ul_id]])"/> -->
3625
+ <xsl:variable name="docid">
3626
+ <xsl:call-template name="getDocumentId"/>
3627
+ </xsl:variable>
3628
+ <xsl:variable name="item_number">
3629
+ <xsl:number count="bipm:li[ancestor::bipm:clause[@type = 'index']]" level="any"/>
3630
+ </xsl:variable>
3631
+ <xsl:variable name="xref_number"><xsl:number count="bipm:xref"/></xsl:variable>
3632
+ <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
3633
+ </xsl:template>
3634
+
3635
+ <xsl:template match="bipm:clause[@type = 'index']"/>
3636
+ <xsl:template match="bipm:clause[@type = 'index']" mode="index">
3637
+
3638
+ <fo:page-sequence master-reference="index" force-page-count="no-force">
3639
+ <xsl:variable name="header-title">
3640
+ <xsl:choose>
3641
+ <xsl:when test="./bipm:title[1]/*[local-name() = 'tab']">
3642
+ <xsl:apply-templates select="./bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
3643
+ </xsl:when>
3644
+ <xsl:otherwise>
3645
+ <xsl:apply-templates select="./bipm:title[1]" mode="header"/>
3646
+ </xsl:otherwise>
3647
+ </xsl:choose>
3648
+ </xsl:variable>
3649
+ <xsl:call-template name="insertHeaderFooter">
3650
+ <xsl:with-param name="header-title" select="$header-title"/>
3651
+ </xsl:call-template>
3652
+
3653
+ <fo:flow flow-name="xsl-region-body">
3654
+ <fo:block id="{@id}" span="all">
3655
+ <xsl:apply-templates select="bipm:title"/>
3656
+ </fo:block>
3657
+ <fo:block>
3658
+ <xsl:apply-templates select="*[not(local-name() = 'title')]"/>
3659
+
3660
+ <!-- TEST <xsl:variable name="alphabet" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
3661
+ <xsl:for-each select="(document('')//node())[position() &lt; 26]">
3662
+ <xsl:variable name="letter" select="substring($alphabet, position(), 1)"/>
3663
+ <xsl:if test="position() &lt;= 3">
3664
+ <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always"><xsl:value-of select="$letter"/>, DEBUG</fo:block>
3665
+
3666
+ <fo:block>accélération due à la pesanteur (gn), 33</fo:block>
3667
+ <fo:block>activité d’un radionucléide, 26, 27</fo:block>
3668
+ <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>
3669
+ <fo:block>angle, 25, 26, 33, 37 38, 40, 48, 55, 65</fo:block>
3670
+ <fo:block>atmosphère normale, 52</fo:block>
3671
+ <fo:block>atome gramme, 104</fo:block>
3672
+ <fo:block>atome de césium, niveaux hyperfins, 15, 17, 18, 56, 58, 83, 85, 92, 94, 97, 98, 102</fo:block>
3673
+ <xsl:if test="position() != last()"><fo:block>&#xA0;</fo:block></xsl:if>
3674
+ </xsl:if>
3675
+ </xsl:for-each> -->
3676
+ </fo:block>
3677
+ </fo:flow>
3678
+ </fo:page-sequence>
3679
+ </xsl:template>
3680
+
3681
+ <xsl:template match="bipm:clause[@type = 'index']/bipm:title" priority="4">
3682
+ <fo:block font-size="16pt" font-weight="bold" margin-bottom="84pt" margin-left="-18mm">
3683
+ <!-- Index -->
3684
+ <xsl:apply-templates/>
3685
+ </fo:block>
3686
+ </xsl:template>
3687
+
3688
+ <xsl:template match="bipm:clause[@type = 'index']/bipm:clause" priority="4">
3689
+ <xsl:apply-templates/>
3690
+ <fo:block>
3691
+ <xsl:if test="following-sibling::bipm:clause">
3692
+ <fo:block> </fo:block>
3693
+ </xsl:if>
3694
+ </fo:block>
3695
+ </xsl:template>
3696
+
3697
+ <xsl:template match="bipm:clause[@type = 'index']/bipm:clause/bipm:title" priority="4">
3698
+ <!-- Letter A, B, C, ... -->
3699
+ <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always">
3700
+ <xsl:apply-templates/>
3701
+ </fo:block>
3702
+ </xsl:template>
3703
+
3704
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:ul" priority="4">
3705
+ <xsl:apply-templates/>
3706
+ </xsl:template>
3707
+
3708
+ <xsl:template match="bipm:clause[@type = 'index']//bipm:li" priority="4">
3709
+ <xsl:variable name="level" select="count(ancestor::bipm:ul)"/>
3710
+ <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
3711
+ <xsl:apply-templates/>
3712
+ </fo:block>
3713
+ </xsl:template>
3714
+
3715
+ <xsl:template match="bipm:bookmark">
3716
+ <fo:inline id="{@id}"/>
3133
3717
  </xsl:template>
3134
3718
 
3135
- <!-- <xsl:template name="insertIndexPages">
3136
- <fo:page-sequence master-reference="index" force-page-count="no-force">
3137
- <xsl:call-template name="insertHeaderFooter"/>
3138
- <fo:flow flow-name="xsl-region-body">
3139
- <fo:marker marker-class-name="header-title">Index</fo:marker>
3140
- <fo:block font-size="16pt" font-weight="bold" margin-bottom="84pt" margin-left="-18mm" span="all">Index</fo:block>
3141
- <xsl:variable name="alphabet" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
3142
- <xsl:for-each select="(document('')//node())[position() &lt; 26]">
3143
- <xsl:variable name="letter" select="substring($alphabet, position(), 1)"/>
3144
- <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always"><xsl:value-of select="$letter"/></fo:block>
3145
- <fo:block>accélération due à la pesanteur (gn), 33</fo:block>
3146
- <fo:block>activité d’un radionucléide, 26, 27</fo:block>
3147
- <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>
3148
- <fo:block>angle, 25, 26, 33, 37 38, 40, 48, 55, 65</fo:block>
3149
- <fo:block>atmosphère normale, 52</fo:block>
3150
- <fo:block>atome gramme, 104</fo:block>
3151
- <fo:block>atome de césium, niveaux hyperfins, 15, 17, 18, 56, 58, 83, 85, 92, 94, 97, 98, 102</fo:block>
3152
- <xsl:if test="position() != last()"><fo:block>&#xA0;</fo:block></xsl:if>
3153
- </xsl:for-each>
3154
-
3155
- </fo:flow>
3156
- </fo:page-sequence>
3719
+ <xsl:template match="*[local-name() = 'stem']/text()">
3720
+ <xsl:value-of select="normalize-space()"/>
3157
3721
  </xsl:template>
3158
- -->
3159
-
3722
+
3723
+ <!-- =================== -->
3724
+ <!-- End of Index processing -->
3725
+ <!-- =================== -->
3726
+
3160
3727
  <xsl:variable name="Image-Logo-BIPM">
3161
3728
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAaIAAADRCAYAAACOyra0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2dpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGOTdGMTE3NDA3MjA2ODExODIyQUJFNEQ3OTI1MkI2OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMTdGMTkxM0YzNEIxMUVBOEZCREQ0ODFDQjY0QzlCNyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMTdGMTkxMkYzNEIxMUVBOEZCREQ0ODFDQjY0QzlCNyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbkRlc2lnbiBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0idXVpZDoyNGQ2ZDM1ZS1kNDc4LTcxNGItYjYwZi1iMDMyYWFmYzM3OTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5pZDoxNjcwQkZBMDExMjA2ODExODIyQUJFNEQ3OTI1MkI2OSIvPiA8L3JkZjpEZXNjcmlw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</xsl:text>
3162
3729
  </xsl:variable>
@@ -3489,32 +4056,61 @@
3489
4056
  </xsl:if>
3490
4057
  </xsl:template>
3491
4058
 
3492
- <xsl:template match="node()" mode="change_id">
4059
+ <!-- <xsl:template match="node()" mode="change_id">
3493
4060
  <xsl:param name="lang"/>
4061
+ <xsl:param name="ignoreReferenceFrom"/>
3494
4062
  <xsl:copy>
3495
4063
  <xsl:apply-templates select="@*|node()" mode="change_id">
3496
4064
  <xsl:with-param name="lang" select="$lang"/>
4065
+ <xsl:with-param name="ignoreReferenceFrom" select="$ignoreReferenceFrom"/>
4066
+ </xsl:apply-templates>
4067
+ </xsl:copy>
4068
+ </xsl:template>
4069
+
4070
+ <xsl:template match="bipm:locality[@type='anchor']/bipm:referenceFrom " mode="change_id">
4071
+ <xsl:param name="lang"/>
4072
+ <xsl:param name="ignoreReferenceFrom"/>
4073
+ <xsl:copy>
4074
+ <xsl:apply-templates select="@*" mode="change_id">
4075
+ <xsl:with-param name="lang" select="$lang"/>
4076
+ <xsl:with-param name="ignoreReferenceFrom" select="$ignoreReferenceFrom"/>
3497
4077
  </xsl:apply-templates>
4078
+ <xsl:choose>
4079
+ <xsl:when test="$ignoreReferenceFrom = 'true'"><xsl:value-of select="."/></xsl:when>
4080
+ <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>
4081
+ </xsl:choose>
3498
4082
  </xsl:copy>
3499
4083
  </xsl:template>
3500
4084
 
3501
4085
  <xsl:template match="@*" mode="change_id">
3502
4086
  <xsl:param name="lang"/>
4087
+ <xsl:param name="ignoreReferenceFrom"/>
3503
4088
  <xsl:choose>
3504
- <xsl:when test="local-name() = 'id' or local-name() = 'bibitemid' or (local-name() = 'target' and local-name(..) = 'xref')">
4089
+ <xsl:when test="$ignoreReferenceFrom = 'true' and local-name() = 'id' and xalan:nodeset($ids)//referenceFrom = .">
3505
4090
  <xsl:attribute name="{local-name()}">
3506
- <xsl:value-of select="."/>_<xsl:value-of select="$lang"/>
4091
+ <xsl:value-of select="."/>
4092
+ </xsl:attribute>
4093
+ </xsl:when>
4094
+ <xsl:when test="local-name() = 'id' or
4095
+ local-name() = 'bibitemid' or
4096
+ (local-name() = 'target' and local-name(..) = 'xref')">
4097
+ <xsl:attribute name="{local-name()}">
4098
+ <xsl:value-of select="."/>_<xsl:value-of select="$lang"/><xsl:if test="$doctype = 'guide'">_<xsl:number count="bipm:bipm-standard" level="any"/></xsl:if>
3507
4099
  </xsl:attribute>
3508
4100
  </xsl:when>
3509
- <xsl:otherwise>
4101
+ <xsl:otherwise>
4102
+ no change
3510
4103
  <xsl:copy>
3511
4104
  <xsl:apply-templates select="@*" mode="change_id">
3512
4105
  <xsl:with-param name="lang" select="$lang"/>
4106
+ <xsl:with-param name="ignoreReferenceFrom" select="$ignoreReferenceFrom"/>
3513
4107
  </xsl:apply-templates>
3514
4108
  </xsl:copy>
3515
4109
  </xsl:otherwise>
3516
4110
  </xsl:choose>
3517
- </xsl:template>
4111
+ </xsl:template> -->
4112
+
4113
+
3518
4114
 
3519
4115
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
3520
4116
 
@@ -3679,11 +4275,14 @@
3679
4275
  </xsl:choose>
3680
4276
  </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
3681
4277
 
3682
- <xsl:attribute name="font-family">Times New Roman, STIX Two Math, HanSans</xsl:attribute>
4278
+ <xsl:attribute name="font-family">Times New Roman, STIX Two Math, Source Han Sans</xsl:attribute>
3683
4279
  <xsl:attribute name="font-size">10.5pt</xsl:attribute>
3684
4280
 
3685
4281
  </xsl:attribute-set><xsl:attribute-set name="link-style">
3686
4282
 
4283
+ <xsl:attribute name="color">blue</xsl:attribute>
4284
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
4285
+
3687
4286
 
3688
4287
 
3689
4288
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
@@ -3879,6 +4478,9 @@
3879
4478
 
3880
4479
  </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
3881
4480
 
4481
+
4482
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
4483
+
3882
4484
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
3883
4485
 
3884
4486
 
@@ -3886,6 +4488,7 @@
3886
4488
 
3887
4489
 
3888
4490
 
4491
+
3889
4492
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
3890
4493
 
3891
4494
 
@@ -3903,6 +4506,13 @@
3903
4506
  </xsl:attribute-set><xsl:attribute-set name="term-style">
3904
4507
 
3905
4508
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
4509
+
4510
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
4511
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
4512
+ <xsl:attribute name="text-align">left</xsl:attribute>
4513
+ <xsl:attribute name="margin-left">19mm</xsl:attribute>
4514
+ <xsl:attribute name="text-indent">-19mm</xsl:attribute>
4515
+
3906
4516
 
3907
4517
 
3908
4518
 
@@ -4005,7 +4615,7 @@
4005
4615
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
4006
4616
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
4007
4617
  <xsl:call-template name="add-zero-spaces-java"/>
4008
- </xsl:template><xsl:template match="*[local-name()='table']">
4618
+ </xsl:template><xsl:template match="*[local-name()='table']" name="table">
4009
4619
 
4010
4620
  <xsl:variable name="simple-table">
4011
4621
  <xsl:call-template name="getSimpleTable"/>
@@ -4051,10 +4661,12 @@
4051
4661
 
4052
4662
 
4053
4663
  <xsl:variable name="colwidths">
4054
- <xsl:call-template name="calculate-column-widths">
4055
- <xsl:with-param name="cols-count" select="$cols-count"/>
4056
- <xsl:with-param name="table" select="$simple-table"/>
4057
- </xsl:call-template>
4664
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
4665
+ <xsl:call-template name="calculate-column-widths">
4666
+ <xsl:with-param name="cols-count" select="$cols-count"/>
4667
+ <xsl:with-param name="table" select="$simple-table"/>
4668
+ </xsl:call-template>
4669
+ </xsl:if>
4058
4670
  </xsl:variable>
4059
4671
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
4060
4672
 
@@ -4105,7 +4717,12 @@
4105
4717
 
4106
4718
  <xsl:variable name="table_attributes">
4107
4719
  <attribute name="table-layout">fixed</attribute>
4108
- <attribute name="width">100%</attribute>
4720
+ <attribute name="width">
4721
+ <xsl:choose>
4722
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
4723
+ <xsl:otherwise>100%</xsl:otherwise>
4724
+ </xsl:choose>
4725
+ </attribute>
4109
4726
  <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
4110
4727
  <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
4111
4728
 
@@ -4141,16 +4758,25 @@
4141
4758
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
4142
4759
  </xsl:if>
4143
4760
 
4144
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
4145
- <xsl:choose>
4146
- <xsl:when test=". = 1 or . = 0">
4147
- <fo:table-column column-width="proportional-column-width(2)"/>
4148
- </xsl:when>
4149
- <xsl:otherwise>
4150
- <fo:table-column column-width="proportional-column-width({.})"/>
4151
- </xsl:otherwise>
4152
- </xsl:choose>
4153
- </xsl:for-each>
4761
+ <xsl:choose>
4762
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
4763
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
4764
+ <fo:table-column column-width="{@width}"/>
4765
+ </xsl:for-each>
4766
+ </xsl:when>
4767
+ <xsl:otherwise>
4768
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
4769
+ <xsl:choose>
4770
+ <xsl:when test=". = 1 or . = 0">
4771
+ <fo:table-column column-width="proportional-column-width(2)"/>
4772
+ </xsl:when>
4773
+ <xsl:otherwise>
4774
+ <fo:table-column column-width="proportional-column-width({.})"/>
4775
+ </xsl:otherwise>
4776
+ </xsl:choose>
4777
+ </xsl:for-each>
4778
+ </xsl:otherwise>
4779
+ </xsl:choose>
4154
4780
 
4155
4781
  <xsl:choose>
4156
4782
  <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
@@ -4163,10 +4789,12 @@
4163
4789
 
4164
4790
  </fo:table>
4165
4791
 
4792
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
4166
4793
  <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
4167
4794
  <xsl:call-template name="insertTableFooterInSeparateTable">
4168
4795
  <xsl:with-param name="table_attributes" select="$table_attributes"/>
4169
4796
  <xsl:with-param name="colwidths" select="$colwidths"/>
4797
+ <xsl:with-param name="colgroup" select="$colgroup"/>
4170
4798
  </xsl:call-template>
4171
4799
  </xsl:for-each>
4172
4800
 
@@ -4426,12 +5054,22 @@
4426
5054
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
4427
5055
  <xsl:param name="table_attributes"/>
4428
5056
  <xsl:param name="colwidths"/>
5057
+ <xsl:param name="colgroup"/>
4429
5058
 
4430
5059
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
4431
5060
 
4432
5061
  <xsl:if test="$isNoteOrFnExist = 'true'">
4433
5062
 
4434
- <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
5063
+ <xsl:variable name="cols-count">
5064
+ <xsl:choose>
5065
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
5066
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
5067
+ </xsl:when>
5068
+ <xsl:otherwise>
5069
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
5070
+ </xsl:otherwise>
5071
+ </xsl:choose>
5072
+ </xsl:variable>
4435
5073
 
4436
5074
  <fo:table keep-with-previous="always">
4437
5075
  <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
@@ -4449,16 +5087,25 @@
4449
5087
  </xsl:choose>
4450
5088
  </xsl:for-each>
4451
5089
 
4452
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
4453
- <xsl:choose>
4454
- <xsl:when test=". = 1 or . = 0">
4455
- <fo:table-column column-width="proportional-column-width(2)"/>
4456
- </xsl:when>
4457
- <xsl:otherwise>
4458
- <fo:table-column column-width="proportional-column-width({.})"/>
4459
- </xsl:otherwise>
4460
- </xsl:choose>
4461
- </xsl:for-each>
5090
+ <xsl:choose>
5091
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
5092
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
5093
+ <fo:table-column column-width="{@width}"/>
5094
+ </xsl:for-each>
5095
+ </xsl:when>
5096
+ <xsl:otherwise>
5097
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
5098
+ <xsl:choose>
5099
+ <xsl:when test=". = 1 or . = 0">
5100
+ <fo:table-column column-width="proportional-column-width(2)"/>
5101
+ </xsl:when>
5102
+ <xsl:otherwise>
5103
+ <fo:table-column column-width="proportional-column-width({.})"/>
5104
+ </xsl:otherwise>
5105
+ </xsl:choose>
5106
+ </xsl:for-each>
5107
+ </xsl:otherwise>
5108
+ </xsl:choose>
4462
5109
 
4463
5110
  <fo:table-body>
4464
5111
  <fo:table-row>
@@ -4608,7 +5255,7 @@
4608
5255
 
4609
5256
  <xsl:attribute name="font-weight">normal</xsl:attribute>
4610
5257
  <xsl:attribute name="border">solid black 0pt</xsl:attribute>
4611
- <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute>
5258
+ <!-- <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute> -->
4612
5259
  <xsl:attribute name="border-bottom">solid black 0.5pt</xsl:attribute>
4613
5260
  <xsl:attribute name="height">8mm</xsl:attribute>
4614
5261
  <xsl:attribute name="padding-top">2mm</xsl:attribute>
@@ -5143,12 +5790,32 @@
5143
5790
  </xsl:otherwise>
5144
5791
  </xsl:choose>
5145
5792
  </xsl:template><xsl:template name="getMaxLength_dt">
5146
- <xsl:for-each select="*[local-name()='dt']">
5147
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
5148
- <xsl:if test="position() = 1">
5149
- <xsl:value-of select="string-length(normalize-space(.))"/>
5150
- </xsl:if>
5151
- </xsl:for-each>
5793
+ <xsl:variable name="lengths">
5794
+ <xsl:for-each select="*[local-name()='dt']">
5795
+ <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
5796
+ <xsl:variable name="attributes">
5797
+ <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
5798
+ <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
5799
+ </xsl:variable>
5800
+ <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
5801
+ </xsl:for-each>
5802
+ </xsl:variable>
5803
+ <xsl:variable name="maxLength">
5804
+ <!-- <xsl:for-each select="*[local-name()='dt']">
5805
+ <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
5806
+ <xsl:if test="position() = 1">
5807
+ <xsl:value-of select="string-length(normalize-space(.))"/>
5808
+ </xsl:if>
5809
+ </xsl:for-each> -->
5810
+ <xsl:for-each select="xalan:nodeset($lengths)/length">
5811
+ <xsl:sort select="." data-type="number" order="descending"/>
5812
+ <xsl:if test="position() = 1">
5813
+ <xsl:value-of select="."/>
5814
+ </xsl:if>
5815
+ </xsl:for-each>
5816
+ </xsl:variable>
5817
+ <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
5818
+ <xsl:value-of select="$maxLength"/>
5152
5819
  </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
5153
5820
  <xsl:param name="key_iso"/>
5154
5821
 
@@ -5263,6 +5930,7 @@
5263
5930
  </fo:inline>
5264
5931
  </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
5265
5932
  <fo:inline font-weight="bold">
5933
+
5266
5934
  <xsl:apply-templates/>
5267
5935
  </fo:inline>
5268
5936
  </xsl:template><xsl:template match="*[local-name()='sup']">
@@ -5289,6 +5957,7 @@
5289
5957
 
5290
5958
 
5291
5959
 
5960
+
5292
5961
 
5293
5962
  </xsl:variable>
5294
5963
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
@@ -5302,6 +5971,10 @@
5302
5971
  </xsl:if>
5303
5972
  <xsl:apply-templates/>
5304
5973
  </fo:inline>
5974
+ </xsl:template><xsl:template match="*[local-name()='underline']">
5975
+ <fo:inline text-decoration="underline">
5976
+ <xsl:apply-templates/>
5977
+ </fo:inline>
5305
5978
  </xsl:template><xsl:template match="*[local-name()='del']">
5306
5979
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
5307
5980
  <xsl:apply-templates/>
@@ -5671,6 +6344,7 @@
5671
6344
  </xsl:choose>
5672
6345
  </xsl:variable>
5673
6346
  <fo:inline xsl:use-attribute-sets="link-style">
6347
+
5674
6348
  <xsl:choose>
5675
6349
  <xsl:when test="$target = ''">
5676
6350
  <xsl:apply-templates/>
@@ -5860,6 +6534,8 @@
5860
6534
  </xsl:when>
5861
6535
  <xsl:otherwise>
5862
6536
 
6537
+ <xsl:text>:</xsl:text>
6538
+
5863
6539
 
5864
6540
  </xsl:otherwise>
5865
6541
  </xsl:choose>
@@ -5890,8 +6566,13 @@
5890
6566
  </xsl:if> -->
5891
6567
  </fo:inline>
5892
6568
  </xsl:if>
5893
- </xsl:template><xsl:template match="*[local-name() = 'figure']">
5894
- <fo:block-container id="{@id}">
6569
+ </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
6570
+ <fo:block-container id="{@id}">
6571
+
6572
+ <xsl:if test="*[local-name() = 'name']">
6573
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
6574
+ </xsl:if>
6575
+
5895
6576
  <fo:block>
5896
6577
  <xsl:apply-templates/>
5897
6578
  </fo:block>
@@ -5942,7 +6623,7 @@
5942
6623
  <xsl:apply-templates mode="bookmarks"/>
5943
6624
  </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
5944
6625
  <xsl:apply-templates select="."/>
5945
- </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
6626
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5946
6627
  <xsl:apply-templates mode="bookmarks"/>
5947
6628
  </xsl:template><xsl:template name="addBookmarks">
5948
6629
  <xsl:param name="contents"/>
@@ -5958,6 +6639,8 @@
5958
6639
  <xsl:variable name="bookmark-title_">
5959
6640
  <xsl:call-template name="getLangVersion">
5960
6641
  <xsl:with-param name="lang" select="@lang"/>
6642
+ <xsl:with-param name="doctype" select="@doctype"/>
6643
+ <xsl:with-param name="title" select="@title-part"/>
5961
6644
  </xsl:call-template>
5962
6645
  </xsl:variable>
5963
6646
  <xsl:choose>
@@ -5975,13 +6658,34 @@
5975
6658
  </xsl:choose>
5976
6659
  </fo:bookmark-title>
5977
6660
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
6661
+
6662
+ <xsl:call-template name="insertFigureBookmarks">
6663
+ <xsl:with-param name="contents" select="contents"/>
6664
+ </xsl:call-template>
6665
+
6666
+ <xsl:call-template name="insertTableBookmarks">
6667
+ <xsl:with-param name="contents" select="contents"/>
6668
+ <xsl:with-param name="lang" select="@lang"/>
6669
+ </xsl:call-template>
6670
+
5978
6671
  </fo:bookmark>
5979
6672
 
5980
6673
  </xsl:for-each>
5981
6674
  </xsl:when>
5982
6675
  <xsl:otherwise>
5983
6676
  <xsl:for-each select="xalan:nodeset($contents)/doc">
6677
+
5984
6678
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
6679
+
6680
+ <xsl:call-template name="insertFigureBookmarks">
6681
+ <xsl:with-param name="contents" select="contents"/>
6682
+ </xsl:call-template>
6683
+
6684
+ <xsl:call-template name="insertTableBookmarks">
6685
+ <xsl:with-param name="contents" select="contents"/>
6686
+ <xsl:with-param name="lang" select="@lang"/>
6687
+ </xsl:call-template>
6688
+
5985
6689
  </xsl:for-each>
5986
6690
  </xsl:otherwise>
5987
6691
  </xsl:choose>
@@ -6000,16 +6704,66 @@
6000
6704
 
6001
6705
  </fo:bookmark-tree>
6002
6706
  </xsl:if>
6707
+ </xsl:template><xsl:template name="insertFigureBookmarks">
6708
+ <xsl:param name="contents"/>
6709
+ <xsl:if test="xalan:nodeset($contents)/figure">
6710
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
6711
+ <fo:bookmark-title>Figures</fo:bookmark-title>
6712
+ <xsl:for-each select="xalan:nodeset($contents)/figure">
6713
+ <fo:bookmark internal-destination="{@id}">
6714
+ <fo:bookmark-title>
6715
+ <xsl:value-of select="normalize-space(title)"/>
6716
+ </fo:bookmark-title>
6717
+ </fo:bookmark>
6718
+ </xsl:for-each>
6719
+ </fo:bookmark>
6720
+ </xsl:if>
6721
+ </xsl:template><xsl:template name="insertTableBookmarks">
6722
+ <xsl:param name="contents"/>
6723
+ <xsl:param name="lang"/>
6724
+ <xsl:if test="xalan:nodeset($contents)/table">
6725
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
6726
+ <fo:bookmark-title>
6727
+ <xsl:choose>
6728
+ <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
6729
+ <xsl:otherwise>Tables</xsl:otherwise>
6730
+ </xsl:choose>
6731
+ </fo:bookmark-title>
6732
+ <xsl:for-each select="xalan:nodeset($contents)/table">
6733
+ <fo:bookmark internal-destination="{@id}">
6734
+ <fo:bookmark-title>
6735
+ <xsl:value-of select="normalize-space(title)"/>
6736
+ </fo:bookmark-title>
6737
+ </fo:bookmark>
6738
+ </xsl:for-each>
6739
+ </fo:bookmark>
6740
+ </xsl:if>
6003
6741
  </xsl:template><xsl:template name="getLangVersion">
6004
6742
  <xsl:param name="lang"/>
6743
+ <xsl:param name="doctype" select="''"/>
6744
+ <xsl:param name="title" select="''"/>
6005
6745
  <xsl:choose>
6006
6746
  <xsl:when test="$lang = 'en'">
6007
6747
 
6008
- English version
6748
+
6749
+ <xsl:choose>
6750
+ <xsl:when test="$doctype = 'guide'">
6751
+ <xsl:value-of select="$title"/>
6752
+ </xsl:when>
6753
+ <xsl:otherwise>English version</xsl:otherwise>
6754
+ </xsl:choose>
6755
+
6009
6756
  </xsl:when>
6010
6757
  <xsl:when test="$lang = 'fr'">
6011
6758
 
6012
- Version française
6759
+
6760
+ <xsl:choose>
6761
+ <xsl:when test="$doctype = 'guide'">
6762
+ <xsl:value-of select="$title"/>
6763
+ </xsl:when>
6764
+ <xsl:otherwise>Version française</xsl:otherwise>
6765
+ </xsl:choose>
6766
+
6013
6767
  </xsl:when>
6014
6768
  <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
6015
6769
  <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
@@ -6037,6 +6791,12 @@
6037
6791
  <!-- <xsl:text> </xsl:text> -->
6038
6792
  </xsl:template><xsl:template name="getSection">
6039
6793
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
6794
+ <!--
6795
+ <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
6796
+ <xsl:value-of select="."/>
6797
+ </xsl:for-each>
6798
+ -->
6799
+
6040
6800
  </xsl:template><xsl:template name="getName">
6041
6801
  <xsl:choose>
6042
6802
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -6089,6 +6849,10 @@
6089
6849
  <xsl:copy>
6090
6850
  <xsl:apply-templates mode="contents_item"/>
6091
6851
  </xsl:copy>
6852
+ </xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
6853
+ <xsl:copy>
6854
+ <xsl:apply-templates mode="contents_item"/>
6855
+ </xsl:copy>
6092
6856
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
6093
6857
  <xsl:text> </xsl:text>
6094
6858
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
@@ -6114,6 +6878,7 @@
6114
6878
 
6115
6879
 
6116
6880
 
6881
+
6117
6882
 
6118
6883
 
6119
6884
 
@@ -6497,7 +7262,8 @@
6497
7262
  <fo:block-container margin-left="0mm">
6498
7263
 
6499
7264
  <fo:block xsl:use-attribute-sets="quote-style">
6500
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
7265
+ <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
7266
+ <xsl:apply-templates select="./*[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
6501
7267
  </fo:block>
6502
7268
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
6503
7269
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -6651,6 +7417,7 @@
6651
7417
 
6652
7418
 
6653
7419
 
7420
+
6654
7421
 
6655
7422
 
6656
7423
 
@@ -6662,7 +7429,7 @@
6662
7429
 
6663
7430
 
6664
7431
 
6665
- </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
7432
+ </xsl:template><xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
6666
7433
  <fo:block break-after="page"/>
6667
7434
  <fo:block>
6668
7435
  <xsl:call-template name="setId"/>
@@ -6670,17 +7437,18 @@
6670
7437
  </fo:block>
6671
7438
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
6672
7439
  <fo:block>
6673
- <xsl:call-template name="setId"/>
7440
+ <xsl:call-template name="setId"/>
6674
7441
 
6675
7442
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
6676
7443
 
7444
+
6677
7445
  <xsl:apply-templates/>
6678
7446
  </fo:block>
6679
7447
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
6680
7448
  <fo:block id="{@id}">
6681
7449
  <xsl:apply-templates/>
6682
7450
  </fo:block>
6683
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
7451
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
6684
7452
 
6685
7453
  <fo:block id="{@id}">
6686
7454
  <xsl:apply-templates/>
@@ -6739,7 +7507,8 @@
6739
7507
  <fo:table-column column-width="107mm"/>
6740
7508
  <fo:table-column column-width="15mm"/>
6741
7509
  <fo:table-body>
6742
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
7510
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
7511
+
6743
7512
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
6744
7513
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
6745
7514
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -6757,6 +7526,38 @@
6757
7526
  <fo:block><xsl:apply-templates/></fo:block>
6758
7527
  </fo:table-cell>
6759
7528
  </xsl:template><xsl:template name="processBibitem">
7529
+
7530
+
7531
+ <!-- start BIPM bibtem processing -->
7532
+ <xsl:choose>
7533
+ <xsl:when test="*[local-name() = 'formattedref']">
7534
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
7535
+ </xsl:when>
7536
+ <xsl:otherwise>
7537
+ <xsl:variable name="docidentifier" select="*[local-name() = 'docidentifier'][not(@type = 'URN' or @type = 'metanorma' or @type = 'BIPM' or @type = 'ISBN' or @type = 'ISSN')]"/>
7538
+
7539
+ <xsl:value-of select="$docidentifier"/>
7540
+ <xsl:if test="$docidentifier != '' and *[local-name() = 'title']">, </xsl:if>
7541
+
7542
+ <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language"/>
7543
+
7544
+ <xsl:choose>
7545
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $curr_lang]">
7546
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $curr_lang]"/>
7547
+ </xsl:when>
7548
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
7549
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
7550
+ </xsl:when>
7551
+ <xsl:otherwise>
7552
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
7553
+ </xsl:otherwise>
7554
+ </xsl:choose>
7555
+
7556
+ </xsl:otherwise>
7557
+ </xsl:choose>
7558
+
7559
+ <!-- end BIPM bibitem processing-->
7560
+
6760
7561
 
6761
7562
 
6762
7563
 
@@ -6815,6 +7616,8 @@
6815
7616
  <xsl:value-of select="translate(.,'. ','')"/>
6816
7617
  </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
6817
7618
  <xsl:value-of select="substring(.,1,1)"/>
7619
+ </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
7620
+ <fo:inline><xsl:apply-templates/></fo:inline>
6818
7621
  </xsl:template><xsl:template name="convertDate">
6819
7622
  <xsl:param name="date"/>
6820
7623
  <xsl:param name="format" select="'short'"/>
@@ -6839,6 +7642,57 @@
6839
7642
  </xsl:variable>
6840
7643
  <xsl:variable name="result">
6841
7644
  <xsl:choose>
7645
+ <xsl:when test="$format = 'ddMMyyyy'">
7646
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7647
+ <xsl:text> </xsl:text>
7648
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7649
+ </xsl:when>
7650
+ <xsl:when test="$format = 'ddMM'">
7651
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7652
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7653
+ </xsl:when>
7654
+ <xsl:when test="$format = 'short' or $day = ''">
7655
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7656
+ </xsl:when>
7657
+ <xsl:otherwise>
7658
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7659
+ </xsl:otherwise>
7660
+ </xsl:choose>
7661
+ </xsl:variable>
7662
+ <xsl:value-of select="$result"/>
7663
+ </xsl:template><xsl:template name="convertDateLocalized">
7664
+ <xsl:param name="date"/>
7665
+ <xsl:param name="format" select="'short'"/>
7666
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
7667
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
7668
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
7669
+ <xsl:variable name="monthStr">
7670
+ <xsl:choose>
7671
+ <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>
7672
+ <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>
7673
+ <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>
7674
+ <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>
7675
+ <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>
7676
+ <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>
7677
+ <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>
7678
+ <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>
7679
+ <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>
7680
+ <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>
7681
+ <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>
7682
+ <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>
7683
+ </xsl:choose>
7684
+ </xsl:variable>
7685
+ <xsl:variable name="result">
7686
+ <xsl:choose>
7687
+ <xsl:when test="$format = 'ddMMyyyy'">
7688
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7689
+ <xsl:text> </xsl:text>
7690
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7691
+ </xsl:when>
7692
+ <xsl:when test="$format = 'ddMM'">
7693
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7694
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7695
+ </xsl:when>
6842
7696
  <xsl:when test="$format = 'short' or $day = ''">
6843
7697
  <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6844
7698
  </xsl:when>
@@ -7035,6 +7889,7 @@
7035
7889
 
7036
7890
  <xsl:value-of select="document('')//*/namespace::bipm"/>
7037
7891
 
7892
+
7038
7893
  </xsl:variable>
7039
7894
  <xsl:if test="$documentNS != $XSLNS">
7040
7895
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -7094,6 +7949,11 @@
7094
7949
  <xsl:call-template name="getLang"/>
7095
7950
  </xsl:variable>
7096
7951
 
7097
- <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
7952
+ <xsl:choose>
7953
+ <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
7954
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
7955
+ </xsl:when>
7956
+ <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
7957
+ </xsl:choose>
7098
7958
 
7099
7959
  </xsl:template></xsl:stylesheet>