metanorma-bipm 0.0.4 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,13 @@
8
8
  <xsl:param name="initial_page_number"/>
9
9
  <xsl:param name="doc_split_by_language"/>
10
10
 
11
+ <!-- <item id="#">N_page</item> -->
12
+ <!-- param for second pass -->
13
+ <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
14
+ <xsl:variable name="index" select="document($external_index)"/>
15
+
16
+ <xsl:variable name="first_pass" select="count($index//item) = 0"/>
17
+
11
18
  <xsl:variable name="pageWidth" select="'210mm'"/>
12
19
  <xsl:variable name="pageHeight" select="'297mm'"/>
13
20
 
@@ -31,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>