metanorma-iec 1.2.5 → 1.2.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +62 -0
  3. data/README.adoc +3 -4
  4. data/lib/asciidoctor/iec/basicdoc.rng +32 -0
  5. data/lib/asciidoctor/iec/converter.rb +6 -1
  6. data/lib/asciidoctor/iec/front.rb +17 -3
  7. data/lib/asciidoctor/iec/iec.rng +52 -1
  8. data/lib/asciidoctor/iec/iec_intro_en.xml +82 -53
  9. data/lib/asciidoctor/iec/iec_intro_fr.xml +44 -20
  10. data/lib/asciidoctor/iec/isodoc.rng +29 -44
  11. data/lib/asciidoctor/iec/isostandard.rng +11 -0
  12. data/lib/isodoc/iec/html/htmlstyle.css +10 -6
  13. data/lib/isodoc/iec/html/htmlstyle.scss +4 -4
  14. data/lib/isodoc/iec/html/isodoc.css +79 -79
  15. data/lib/isodoc/iec/html/isodoc.scss +79 -79
  16. data/lib/isodoc/iec/html/wordstyle.css +120 -120
  17. data/lib/isodoc/iec/html/wordstyle.scss +120 -120
  18. data/lib/isodoc/iec/html_convert.rb +8 -0
  19. data/lib/isodoc/iec/i18n-en.yaml +17 -0
  20. data/lib/isodoc/iec/i18n-fr.yaml +18 -0
  21. data/lib/isodoc/iec/iec.international-standard.xsl +782 -301
  22. data/lib/isodoc/iec/metadata.rb +33 -0
  23. data/lib/isodoc/iec/presentation_xml_convert.rb +12 -0
  24. data/lib/isodoc/iec/word_convert.rb +10 -0
  25. data/lib/metanorma/iec/fonts_manifest.yaml +5 -0
  26. data/lib/metanorma/iec/processor.rb +0 -8
  27. data/lib/metanorma/iec/version.rb +1 -1
  28. data/metanorma-iec.gemspec +1 -2
  29. data/spec/asciidoctor-iec/base_spec.rb +21 -0
  30. data/spec/asciidoctor-iec/blocks_spec.rb +1 -1
  31. data/spec/asciidoctor-iec/cleanup_spec.rb +0 -84
  32. data/spec/asciidoctor-iec/iev_spec.rb +3 -0
  33. data/spec/asciidoctor-iec/lists_spec.rb +6 -6
  34. data/spec/asciidoctor-iec/validate_spec.rb +36 -1
  35. data/spec/assets/xref_error.adoc +7 -0
  36. data/spec/isodoc/i18n_spec.rb +36 -16
  37. data/spec/isodoc/iev_spec.rb +9 -65
  38. data/spec/isodoc/iso_spec.rb +2 -2
  39. data/spec/isodoc/metadata_spec.rb +59 -24
  40. data/spec/isodoc/ref_spec.rb +4 -7
  41. data/spec/spec_helper.rb +8 -1
  42. metadata +7 -21
  43. data/.github/workflows/macos.yml +0 -38
  44. data/.github/workflows/ubuntu.yml +0 -56
  45. data/.github/workflows/windows.yml +0 -40
@@ -16,6 +16,8 @@ module IsoDoc
16
16
  bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Arial",sans-serif'),
17
17
  headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Arial",sans-serif'),
18
18
  monospacefont: ('"Courier New",monospace'),
19
+ monospacefontsize: "1.0em",
20
+ footnotefontsize: "0.9em",
19
21
  }
20
22
  end
21
23
 
@@ -36,6 +38,12 @@ module IsoDoc
36
38
  docxml
37
39
  end
38
40
 
41
+ def authority_cleanup(docxml)
42
+ auth = docxml.at("//div[@id = 'boilerplate-feedback' or @class = 'boilerplate-feedback']")
43
+ auth&.remove
44
+ super
45
+ end
46
+
39
47
  include BaseConvert
40
48
  include Init
41
49
  end
@@ -5,6 +5,7 @@ IEC: INTERNATIONAL ELECTROTECHNICAL COMMISSION
5
5
  formula: Equation
6
6
  inequality: Inequality
7
7
  section_iev: Section
8
+ price-code: Price Code
8
9
  term_def_boilerplate: |
9
10
  <p>ISO and IEC maintain terminological databases for use in
10
11
  standardization at the following addresses:</p>
@@ -16,3 +17,19 @@ term_def_boilerplate: |
16
17
  <li> <p>ISO Online browsing platform: available at
17
18
  <link target="http://www.iso.org/obp"/></p> </li>
18
19
  </ul>
20
+ doctype_dict:
21
+ international-standard: International Standard
22
+ technical-specification: Technical Specification
23
+ technical-report: Technical Report
24
+ publicly-available-specification: Publicly Available Specification
25
+ international-workshop-agreement: International Workshop Agreement
26
+ guide: Guide
27
+ interpretation-sheet: Interpretation Sheet
28
+ function_dict:
29
+ emc: Basic EMC Publication
30
+ safety: Basic Safety Publication
31
+ environment: Basic Environment Publication
32
+ quality-assurance: Basic Quality Assurance Publication
33
+ horizontal_dict:
34
+ "true": Horizontal Standard
35
+ "false":
@@ -5,6 +5,7 @@ formula: Equation
5
5
  inequality: Inégalité
6
6
  IEC: COMMISSION ELECTROTECHNIQUE INTERNATIONALE
7
7
  section_iev: Section
8
+ price-code: Code prix
8
9
  term_def_boilerplate: |
9
10
  <p>L'ISO et l'IEC tiennent à jour des bases de données terminologiques
10
11
  destinées à être utilisées en normalisation, consultables aux adresses
@@ -16,3 +17,20 @@ term_def_boilerplate: |
16
17
  <li> <p>ISO Online browsing platform: disponible à l'adresse
17
18
  <link target="http://www.iso.org/obp"/></p> </li>
18
19
  </ul>
20
+ doctype_dict:
21
+ international-standard: Norme international
22
+ technical-specification: Spécification technique
23
+ technical-report: Rapport technique
24
+ publicly-available-specification: Spécification disponible publiquement
25
+ international-workshop-agreement: Accord internationale d’atelier
26
+ guide: Guide
27
+ interpretation-sheet: Feuille d’interprétation
28
+ function_dict:
29
+ emc: Publication fondamentale en CEM
30
+ safety: Publication fondamentale de sécurité
31
+ environment: Publication fondamentale sur l’environnement
32
+ quality-assurance: Publication fondamentale sur l’assurance de la qualité
33
+ horizontal_dict:
34
+ "true": Norme horizontale
35
+ "false":
36
+
@@ -32,7 +32,7 @@
32
32
  <xsl:variable name="title-main-fr" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr' and @type = 'title-main']"/>
33
33
  <xsl:variable name="part" select="/iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number/@part"/>
34
34
 
35
- <xsl:variable name="doctype_uppercased" select="java:toUpperCase(java:java.lang.String.new(translate(/iec:iec-standard/iec:bibdata/iec:ext/iec:doctype,'-',' ')))"/>
35
+ <xsl:variable name="doctype_uppercased" select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:doctype[@language = $lang]))"/>
36
36
 
37
37
 
38
38
 
@@ -136,7 +136,7 @@
136
136
  <xsl:call-template name="namespaceCheck"/>
137
137
  <!-- https://stackoverflow.com/questions/25261949/xsl-fo-letter-spacing-with-text-align -->
138
138
  <!-- https://xmlgraphics.apache.org/fop/knownissues.html -->
139
- <fo:root font-family="Arial, Times New Roman, STIX2Math, HanSans" font-size="10pt" xml:lang="{$lang}">
139
+ <fo:root font-family="Arial, Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
140
140
  <fo:layout-master-set>
141
141
  <!-- cover pages -->
142
142
  <fo:simple-page-master master-name="cover" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -146,6 +146,13 @@
146
146
  <fo:region-start region-name="left-region" extent="18mm"/>
147
147
  <fo:region-end region-name="right-region" extent="20.5mm"/>
148
148
  </fo:simple-page-master>
149
+ <fo:simple-page-master master-name="cover_2nd" page-width="{$pageWidth}" page-height="{$pageHeight}">
150
+ <fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="25mm" margin-right="25mm" column-count="2" column-gap="5mm"/>
151
+ <fo:region-before region-name="header" extent="17.5mm"/>
152
+ <fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
153
+ <fo:region-start region-name="left-region" extent="25mm"/>
154
+ <fo:region-end region-name="right-region" extent="25mm"/>
155
+ </fo:simple-page-master>
149
156
 
150
157
  <fo:simple-page-master master-name="cover-FDIS" page-width="{$pageWidth}" page-height="{$pageHeight}">
151
158
  <fo:region-body margin-top="17.5mm" margin-bottom="29mm" margin-left="18mm" margin-right="19mm"/>
@@ -218,222 +225,230 @@
218
225
  </fo:page-sequence>
219
226
 
220
227
  <!-- 2nd Cover Page -->
221
- <fo:page-sequence master-reference="cover" force-page-count="no-force">
228
+ <fo:page-sequence master-reference="cover_2nd" force-page-count="no-force" font-size="8pt">
222
229
  <fo:flow flow-name="xsl-region-body">
223
- <fo:block-container margin-left="7mm" margin-right="4.5mm" border="0.5pt solid black" margin-top="7mm">
224
- <fo:block-container margin-left="2.5mm" margin-right="2.5mm" margin-top="1mm" margin-bottom="1mm">
225
- <fo:block-container margin-left="0mm" margin-right="0mm">
226
- <fo:table table-layout="fixed" width="100%">
227
- <fo:table-column column-width="20mm"/>
228
- <fo:table-column column-width="130mm"/>
229
- <fo:table-body>
230
- <fo:table-row>
231
- <fo:table-cell>
232
- <fo:block>
233
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="17.8mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
234
- </fo:block>
235
- </fo:table-cell>
236
- <fo:table-cell font-size="10pt" font-weight="bold" display-align="after">
237
- <fo:block margin-bottom="3pt">THIS PUBLICATION IS COPYRIGHT PROTECTED</fo:block>
238
- <fo:block margin-bottom="10pt">
239
- <!-- Example: Copyright © 2014 IEC, Geneva, Switzerland -->
240
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-year']"/>
241
- </fo:block>
242
- </fo:table-cell>
243
- </fo:table-row>
244
- </fo:table-body>
245
- </fo:table>
246
- <fo:block font-size="8pt">
247
- <fo:block margin-bottom="8pt" text-align="justify">
248
- <!-- Example: All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
249
- or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
250
- either IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC
251
- copyright or have an enquiry about obtaining additional rights to this publication, please contact the address below or
252
- your local IEC member National Committee for further information. -->
253
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-message']"/>
254
- </fo:block>
255
- <fo:block margin-bottom="8pt" text-align="justify">Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite
256
- ni utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie
257
- et les microfilms, sans l'accord écrit de l'IEC ou du Comité national de l'IEC du pays du demandeur. Si vous avez des
258
- questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
259
- les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence.</fo:block>
260
-
261
- <xsl:variable name="telpos" select="count(/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/text()[contains(., 'Tel.')]/preceding-sibling::node())"/>
230
+ <fo:block span="all">
231
+ <fo:block-container border="0.5pt solid black" margin-top="7mm">
232
+ <fo:block-container margin-left="2.5mm" margin-right="2.5mm" margin-top="1mm" margin-bottom="1mm">
233
+ <fo:block-container margin-left="0mm" margin-right="0mm">
262
234
  <fo:table table-layout="fixed" width="100%">
263
- <fo:table-column column-width="59mm"/>
264
- <fo:table-column column-width="90mm"/>
235
+ <fo:table-column column-width="20mm"/>
236
+ <fo:table-column column-width="130mm"/>
265
237
  <fo:table-body>
266
238
  <fo:table-row>
267
239
  <fo:table-cell>
268
240
  <fo:block>
269
- <!-- Example: IEC Central Office
270
- 3, rue de Varembé
271
- CH-1211 Geneva 20
272
- Switzerland -->
273
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-name']" mode="coverpage"/>
274
- <xsl:choose>
275
- <xsl:when test="$telpos != 0">
276
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &lt; $telpos]" mode="coverpage"/>
277
- </xsl:when>
278
- <xsl:otherwise>
279
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']" mode="coverpage"/>
280
- </xsl:otherwise>
281
- </xsl:choose>
241
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="17.8mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
282
242
  </fo:block>
283
243
  </fo:table-cell>
284
- <fo:table-cell>
285
- <fo:block>
286
- <!-- Example: Tel.: +41 22 919 02 11
287
- Fax: +41 22 919 0
288
- info@iec.ch
289
- www.iec.ch -->
290
- <xsl:choose>
291
- <xsl:when test="$telpos != 0">
292
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &gt; $telpos]" mode="coverpage"/>
293
- </xsl:when>
294
- <xsl:otherwise> </xsl:otherwise>
295
- </xsl:choose>
244
+ <fo:table-cell font-size="10pt" font-weight="bold" display-align="after">
245
+ <fo:block margin-bottom="3pt">THIS PUBLICATION IS COPYRIGHT PROTECTED</fo:block>
246
+ <fo:block margin-bottom="10pt">
247
+ <!-- Example: Copyright © 2014 IEC, Geneva, Switzerland -->
248
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-year']"/>
296
249
  </fo:block>
297
250
  </fo:table-cell>
298
251
  </fo:table-row>
299
252
  </fo:table-body>
300
253
  </fo:table>
301
-
302
- </fo:block>
254
+ <fo:block>
255
+ <fo:block margin-bottom="8pt" text-align="justify">
256
+ <!-- Example: All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
257
+ or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
258
+ either IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC
259
+ copyright or have an enquiry about obtaining additional rights to this publication, please contact the address below or
260
+ your local IEC member National Committee for further information. -->
261
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-message']"/>
262
+ </fo:block>
263
+ <fo:block margin-bottom="8pt" text-align="justify">Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite
264
+ ni utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie
265
+ et les microfilms, sans l'accord écrit de l'IEC ou du Comité national de l'IEC du pays du demandeur. Si vous avez des
266
+ questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
267
+ les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence.</fo:block>
268
+
269
+ <xsl:variable name="telpos" select="count(/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/text()[contains(., 'Tel.')]/preceding-sibling::node())"/>
270
+ <fo:table table-layout="fixed" width="100%">
271
+ <fo:table-column column-width="59mm"/>
272
+ <fo:table-column column-width="90mm"/>
273
+ <fo:table-body>
274
+ <fo:table-row>
275
+ <fo:table-cell>
276
+ <fo:block>
277
+ <!-- Example: IEC Central Office
278
+ 3, rue de Varembé
279
+ CH-1211 Geneva 20
280
+ Switzerland -->
281
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-name']" mode="coverpage"/>
282
+ <xsl:choose>
283
+ <xsl:when test="$telpos != 0">
284
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &lt; $telpos]" mode="coverpage"/>
285
+ </xsl:when>
286
+ <xsl:otherwise>
287
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']" mode="coverpage"/>
288
+ </xsl:otherwise>
289
+ </xsl:choose>
290
+ </fo:block>
291
+ </fo:table-cell>
292
+ <fo:table-cell>
293
+ <fo:block>
294
+ <!-- Example: Tel.: +41 22 919 02 11
295
+ Fax: +41 22 919 0
296
+ info@iec.ch
297
+ www.iec.ch -->
298
+ <xsl:choose>
299
+ <xsl:when test="$telpos != 0">
300
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &gt; $telpos]" mode="coverpage"/>
301
+ </xsl:when>
302
+ <xsl:otherwise> </xsl:otherwise>
303
+ </xsl:choose>
304
+ </fo:block>
305
+ </fo:table-cell>
306
+ </fo:table-row>
307
+ </fo:table-body>
308
+ </fo:table>
309
+
310
+ </fo:block>
311
+ </fo:block-container>
303
312
  </fo:block-container>
304
313
  </fo:block-container>
305
- </fo:block-container>
314
+ </fo:block>
306
315
 
307
- <fo:block-container margin-left="7mm" margin-right="4.5mm" margin-top="6pt">
308
- <fo:block-container font-size="8pt" text-align="justify" margin-left="0mm" margin-right="0mm">
309
-
310
- <fo:block font-weight="bold">About the IEC</fo:block>
311
- <fo:block margin-bottom="6pt">The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
312
- International Standards for all electrical, electronic and related technologies.</fo:block>
313
-
314
- <fo:block font-weight="bold">About IEC publications</fo:block>
315
- <fo:block margin-bottom="6pt">The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
316
- latest edition, a corrigenda or an amendment might have been published.</fo:block>
317
-
318
- <fo:table table-layout="fixed" width="100%" margin-bottom="12pt">
319
- <fo:table-column column-width="82mm"/>
320
- <fo:table-column column-width="78mm"/>
321
- <fo:table-body>
322
- <fo:table-row border-bottom="0.5pt solid black">
323
- <fo:table-cell padding-right="5mm">
324
- <fo:block font-weight="bold">IEC Catalogue - <fo:inline color="blue">webstore.iec.ch/catalogue</fo:inline></fo:block>
325
- <fo:block margin-bottom="6pt">
326
- <xsl:text>The stand-alone application for consulting the entire
327
- bibliographical information on IEC International Standards,
328
- Technical Specifications, Technical Reports and other
329
- documents. Available for PC, Mac OS, Android Tablets and
330
- iPad.</xsl:text>
331
- </fo:block>
332
- <fo:block font-weight="bold">IEC publications search - <fo:inline color="blue">www.iec.ch/searchpub</fo:inline></fo:block>
333
- <fo:block margin-bottom="6pt">
334
- <xsl:text>The advanced search enables to find IEC publications by a
335
- variety of criteria (reference number, text, technical
336
- committee,…). It also gives information on projects, replaced
337
- and withdrawn publications.</xsl:text>
338
- </fo:block>
339
- <fo:block font-weight="bold">IEC Just Published - <fo:inline color="blue">webstore.iec.ch/justpublished</fo:inline></fo:block>
340
- <fo:block margin-bottom="6pt">
341
- <xsl:text>Stay up to date on all new IEC publications. Just Published
342
- details all new publications released. Available online and
343
- also once a month by email.</xsl:text>
344
- </fo:block>
345
- </fo:table-cell>
346
- <fo:table-cell>
347
- <fo:block font-weight="bold">Electropedia - <fo:inline color="blue">www.electropedia.org</fo:inline></fo:block>
348
- <fo:block margin-bottom="6pt">
349
- <xsl:text>The world's leading online dictionary of electronic and
350
- electrical terms containing more than 30 000 terms and
351
- definitions in English and French, with equivalent terms in 14
352
- additional languages. Also known as the International
353
- Electrotechnical Vocabulary (IEV) online.</xsl:text>
354
- </fo:block>
355
- <fo:block font-weight="bold">IEC Glossary - <fo:inline color="blue">std.iec.ch/glossary</fo:inline></fo:block>
356
- <fo:block margin-bottom="6pt">
357
- <xsl:text>More than 55 000 electrotechnical terminology entries in
358
- English and French extracted from the Terms and Definitions
359
- clause of IEC publications issued since 2002. Some entries
360
- have been collected from earlier publications of IEC TC 37,
361
- 77, 86 and CISPR.</xsl:text>
362
- </fo:block>
363
- <fo:block font-weight="bold">IEC Customer Service Centre - <fo:inline color="blue">webstore.iec.ch/csc</fo:inline></fo:block>
364
- <fo:block margin-bottom="6pt">
365
- <xsl:text>If you wish to give us your feedback on this publication or
366
- need further assistance, please contact the Customer Service
367
- Centre: </xsl:text><fo:inline color="blue">csc@iec.ch</fo:inline>.
368
- </fo:block>
369
- </fo:table-cell>
370
- </fo:table-row>
371
- </fo:table-body>
372
- </fo:table>
373
- <fo:block font-weight="bold">A propos de l'IEC</fo:block>
374
- <fo:block margin-bottom="6pt">La Commission Electrotechnique Internationale (IEC) est la première organisation mondiale qui élabore et publie des
375
- Normes internationales pour tout ce qui a trait à l'électricité, à l'électronique et aux technologies apparentées.</fo:block>
316
+ <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:feedback-statement"/>
317
+ <fo:block span="all" border-bottom="0.5pt solid black"/>
318
+
319
+ <!-- <fo:block span="all">
320
+ <fo:block-container margin-top="6pt">
321
+ <fo:block-container text-align="justify" margin-left="0mm" margin-right="0mm">
322
+
323
+ <fo:block font-weight="bold">About the IEC</fo:block>
324
+ <fo:block margin-bottom="6pt">The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
325
+ International Standards for all electrical, electronic and related technologies.</fo:block>
376
326
 
377
- <fo:block font-weight="bold">A propos des publications IEC</fo:block>
378
- <fo:block margin-bottom="6pt">Le contenu technique des publications IEC est constamment revu. Veuillez vous assurer que vous possédez l’édition la
379
- plus récente, un corrigendum ou amendement peut avoir été publié.</fo:block>
327
+ <fo:block font-weight="bold">About IEC publications</fo:block>
328
+ <fo:block margin-bottom="6pt">The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
329
+ latest edition, a corrigenda or an amendment might have been published.</fo:block>
330
+
331
+ <fo:table table-layout="fixed" width="100%" margin-bottom="12pt">
332
+ <fo:table-column column-width="82mm"/>
333
+ <fo:table-column column-width="78mm"/>
334
+ <fo:table-body>
335
+ <fo:table-row border-bottom="0.5pt solid black">
336
+ <fo:table-cell padding-right="5mm">
337
+ <fo:block font-weight="bold">IEC Catalogue - <fo:inline color="blue">webstore.iec.ch/catalogue</fo:inline></fo:block>
338
+ <fo:block margin-bottom="6pt">
339
+ <xsl:text>The stand-alone application for consulting the entire
340
+ bibliographical information on IEC International Standards,
341
+ Technical Specifications, Technical Reports and other
342
+ documents. Available for PC, Mac OS, Android Tablets and
343
+ iPad.</xsl:text>
344
+ </fo:block>
345
+ <fo:block font-weight="bold">IEC publications search - <fo:inline color="blue">www.iec.ch/searchpub</fo:inline></fo:block>
346
+ <fo:block margin-bottom="6pt">
347
+ <xsl:text>The advanced search enables to find IEC publications by a
348
+ variety of criteria (reference number, text, technical
349
+ committee,…). It also gives information on projects, replaced
350
+ and withdrawn publications.</xsl:text>
351
+ </fo:block>
352
+ <fo:block font-weight="bold">IEC Just Published - <fo:inline color="blue">webstore.iec.ch/justpublished</fo:inline></fo:block>
353
+ <fo:block margin-bottom="6pt">
354
+ <xsl:text>Stay up to date on all new IEC publications. Just Published
355
+ details all new publications released. Available online and
356
+ also once a month by email.</xsl:text>
357
+ </fo:block>
358
+ </fo:table-cell>
359
+ <fo:table-cell>
360
+ <fo:block font-weight="bold">Electropedia - <fo:inline color="blue">www.electropedia.org</fo:inline></fo:block>
361
+ <fo:block margin-bottom="6pt">
362
+ <xsl:text>The world's leading online dictionary of electronic and
363
+ electrical terms containing more than 30 000 terms and
364
+ definitions in English and French, with equivalent terms in 14
365
+ additional languages. Also known as the International
366
+ Electrotechnical Vocabulary (IEV) online.</xsl:text>
367
+ </fo:block>
368
+ <fo:block font-weight="bold">IEC Glossary - <fo:inline color="blue">std.iec.ch/glossary</fo:inline></fo:block>
369
+ <fo:block margin-bottom="6pt">
370
+ <xsl:text>More than 55 000 electrotechnical terminology entries in
371
+ English and French extracted from the Terms and Definitions
372
+ clause of IEC publications issued since 2002. Some entries
373
+ have been collected from earlier publications of IEC TC 37,
374
+ 77, 86 and CISPR.</xsl:text>
375
+ </fo:block>
376
+ <fo:block font-weight="bold">IEC Customer Service Centre - <fo:inline color="blue">webstore.iec.ch/csc</fo:inline></fo:block>
377
+ <fo:block margin-bottom="6pt">
378
+ <xsl:text>If you wish to give us your feedback on this publication or
379
+ need further assistance, please contact the Customer Service
380
+ Centre: </xsl:text><fo:inline color="blue">csc@iec.ch</fo:inline>.
381
+ </fo:block>
382
+ </fo:table-cell>
383
+ </fo:table-row>
384
+ </fo:table-body>
385
+ </fo:table>
386
+
387
+ <fo:block font-weight="bold">A propos de l'IEC</fo:block>
388
+ <fo:block margin-bottom="6pt">La Commission Electrotechnique Internationale (IEC) est la première organisation mondiale qui élabore et publie des
389
+ Normes internationales pour tout ce qui a trait à l'électricité, à l'électronique et aux technologies apparentées.</fo:block>
390
+
391
+ <fo:block font-weight="bold">A propos des publications IEC</fo:block>
392
+ <fo:block margin-bottom="6pt">Le contenu technique des publications IEC est constamment revu. Veuillez vous assurer que vous possédez l’édition la
393
+ plus récente, un corrigendum ou amendement peut avoir été publié.</fo:block>
380
394
 
381
- <fo:table table-layout="fixed" width="100%">
382
- <fo:table-column column-width="82mm"/>
383
- <fo:table-column column-width="78mm"/>
384
- <fo:table-body>
385
- <fo:table-row>
386
- <fo:table-cell padding-right="5mm">
387
- <fo:block font-weight="bold">Catalogue IEC - <fo:inline color="blue">webstore.iec.ch/catalogue</fo:inline></fo:block>
388
- <fo:block margin-bottom="6pt">
389
- <xsl:text>Application autonome pour consulter tous les renseignements
390
- bibliographiques sur les Normes internationales,
391
- Spécifications techniques, Rapports techniques et autres
392
- documents de l'IEC. Disponible pour PC, Mac OS, tablettes
393
- Android et iPad.</xsl:text>
394
- </fo:block>
395
- <fo:block font-weight="bold">Recherche de publications IEC - <fo:inline color="blue">www.iec.ch/searchpub</fo:inline></fo:block>
396
- <fo:block margin-bottom="6pt">
397
- <xsl:text>La recherche avancée permet de trouver des publications IEC
398
- en utilisant différents critères (numéro de référence, texte,
399
- comité d’études,…). Elle donne aussi des informations sur les
400
- projets et les publications remplacées ou retirées.</xsl:text>
401
- </fo:block>
402
- <fo:block font-weight="bold">IEC Just Published - <fo:inline color="blue">webstore.iec.ch/justpublished</fo:inline></fo:block>
403
- <fo:block margin-bottom="6pt">
404
- <xsl:text>Restez informé sur les nouvelles publications IEC. Just
405
- Published détaille les nouvelles publications parues.
406
- Disponible en ligne et aussi une fois par mois par email.</xsl:text>
407
- </fo:block>
408
- </fo:table-cell>
409
- <fo:table-cell>
410
- <fo:block font-weight="bold">Electropedia - <fo:inline color="blue">www.electropedia.org</fo:inline></fo:block>
411
- <fo:block margin-bottom="6pt">
412
- <xsl:text>Le premier dictionnaire en ligne de termes électroniques et
413
- électriques. Il contient plus de 30 000 termes et définitions en
414
- anglais et en français, ainsi que les termes équivalents dans
415
- 14 langues additionnelles. Egalement appelé Vocabulaire
416
- Electrotechnique International (IEV) en ligne.</xsl:text>
417
- </fo:block>
418
- <fo:block font-weight="bold">Glossaire IEC - <fo:inline color="blue">std.iec.ch/glossary</fo:inline></fo:block>
419
- <fo:block margin-bottom="6pt">
420
- <xsl:text>Plus de 55 000 entrées terminologiques électrotechniques, en
421
- anglais et en français, extraites des articles Termes et
422
- Définitions des publications IEC parues depuis 2002. Plus
423
- certaines entrées antérieures extraites des publications des
424
- CE 37, 77, 86 et CISPR de l'IEC.</xsl:text>
425
- </fo:block>
426
- <fo:block font-weight="bold">Service Clients - <fo:inline color="blue">webstore.iec.ch/csc</fo:inline></fo:block>
427
- <fo:block margin-bottom="6pt">
428
- <xsl:text>Si vous désirez nous donner des commentaires sur cette
429
- publication ou si vous avez des questions contactez-nous: </xsl:text><fo:inline color="blue">csc@iec.ch</fo:inline>.
430
- </fo:block>
431
- </fo:table-cell>
432
- </fo:table-row>
433
- </fo:table-body>
434
- </fo:table>
395
+ <fo:table table-layout="fixed" width="100%">
396
+ <fo:table-column column-width="82mm"/>
397
+ <fo:table-column column-width="78mm"/>
398
+ <fo:table-body>
399
+ <fo:table-row>
400
+ <fo:table-cell padding-right="5mm">
401
+ <fo:block font-weight="bold">Catalogue IEC - <fo:inline color="blue">webstore.iec.ch/catalogue</fo:inline></fo:block>
402
+ <fo:block margin-bottom="6pt">
403
+ <xsl:text>Application autonome pour consulter tous les renseignements
404
+ bibliographiques sur les Normes internationales,
405
+ Spécifications techniques, Rapports techniques et autres
406
+ documents de l'IEC. Disponible pour PC, Mac OS, tablettes
407
+ Android et iPad.</xsl:text>
408
+ </fo:block>
409
+ <fo:block font-weight="bold">Recherche de publications IEC - <fo:inline color="blue">www.iec.ch/searchpub</fo:inline></fo:block>
410
+ <fo:block margin-bottom="6pt">
411
+ <xsl:text>La recherche avancée permet de trouver des publications IEC
412
+ en utilisant différents critères (numéro de référence, texte,
413
+ comité d’études,…). Elle donne aussi des informations sur les
414
+ projets et les publications remplacées ou retirées.</xsl:text>
415
+ </fo:block>
416
+ <fo:block font-weight="bold">IEC Just Published - <fo:inline color="blue">webstore.iec.ch/justpublished</fo:inline></fo:block>
417
+ <fo:block margin-bottom="6pt">
418
+ <xsl:text>Restez informé sur les nouvelles publications IEC. Just
419
+ Published détaille les nouvelles publications parues.
420
+ Disponible en ligne et aussi une fois par mois par email.</xsl:text>
421
+ </fo:block>
422
+ </fo:table-cell>
423
+ <fo:table-cell>
424
+ <fo:block font-weight="bold">Electropedia - <fo:inline color="blue">www.electropedia.org</fo:inline></fo:block>
425
+ <fo:block margin-bottom="6pt">
426
+ <xsl:text>Le premier dictionnaire en ligne de termes électroniques et
427
+ électriques. Il contient plus de 30 000 termes et définitions en
428
+ anglais et en français, ainsi que les termes équivalents dans
429
+ 14 langues additionnelles. Egalement appelé Vocabulaire
430
+ Electrotechnique International (IEV) en ligne.</xsl:text>
431
+ </fo:block>
432
+ <fo:block font-weight="bold">Glossaire IEC - <fo:inline color="blue">std.iec.ch/glossary</fo:inline></fo:block>
433
+ <fo:block margin-bottom="6pt">
434
+ <xsl:text>Plus de 55 000 entrées terminologiques électrotechniques, en
435
+ anglais et en français, extraites des articles Termes et
436
+ Définitions des publications IEC parues depuis 2002. Plus
437
+ certaines entrées antérieures extraites des publications des
438
+ CE 37, 77, 86 et CISPR de l'IEC.</xsl:text>
439
+ </fo:block>
440
+ <fo:block font-weight="bold">Service Clients - <fo:inline color="blue">webstore.iec.ch/csc</fo:inline></fo:block>
441
+ <fo:block margin-bottom="6pt">
442
+ <xsl:text>Si vous désirez nous donner des commentaires sur cette
443
+ publication ou si vous avez des questions contactez-nous: </xsl:text><fo:inline color="blue">csc@iec.ch</fo:inline>.
444
+ </fo:block>
445
+ </fo:table-cell>
446
+ </fo:table-row>
447
+ </fo:table-body>
448
+ </fo:table>
449
+ </fo:block-container>
435
450
  </fo:block-container>
436
- </fo:block-container>
451
+ </fo:block> -->
437
452
  </fo:flow>
438
453
  </fo:page-sequence>
439
454
  </xsl:if>
@@ -471,12 +486,22 @@
471
486
  <fo:table-row border-bottom="0.5pt solid {$color_gray}" height="16mm">
472
487
  <fo:table-cell font-size="8pt" text-align="right" display-align="center">
473
488
  <fo:block>
474
- <fo:block color="{$color_blue}" margin-bottom="3pt">PRICE CODE</fo:block>
475
- <fo:block>CODE PRIX</fo:block>
489
+ <fo:block color="{$color_blue}" margin-bottom="3pt">
490
+ <!-- PRICE CODE -->
491
+ <xsl:variable name="price_code">
492
+ <xsl:call-template name="getLocalizedString">
493
+ <xsl:with-param name="key">price-code</xsl:with-param>
494
+ </xsl:call-template>
495
+ </xsl:variable>
496
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
497
+ </fo:block>
498
+ <xsl:if test="$lang != 'fr'">
499
+ <fo:block>CODE PRIX</fo:block>
500
+ </xsl:if>
476
501
  </fo:block>
477
502
  </fo:table-cell>
478
503
  <fo:table-cell font-size="25pt" font-weight="bold" color="{$color_gray}" text-align="right" display-align="center">
479
- <fo:block padding-top="1mm">XC</fo:block>
504
+ <fo:block padding-top="1mm"><xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:price-code"/></fo:block>
480
505
  </fo:table-cell>
481
506
  </fo:table-row>
482
507
  </fo:table-body>
@@ -490,8 +515,10 @@
490
515
  <xsl:text> </xsl:text>
491
516
  <fo:inline keep-together.within-line="always"><fo:leader leader-pattern="space"/>
492
517
  <xsl:text> </xsl:text>
493
- <!-- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:isbn"/> -->
494
- <xsl:text>Example: ISBN 978-2-8322-1532-6</xsl:text>
518
+ <xsl:if test="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']">
519
+ <!-- <xsl:text>Example: ISBN 978-2-8322-1532-6</xsl:text> -->
520
+ <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']"/>
521
+ </xsl:if>
495
522
  </fo:inline>
496
523
  </fo:block>
497
524
  <fo:block-container margin-left="1.5mm">
@@ -746,13 +773,28 @@
746
773
  <xsl:with-param name="text" select="'Functions concerned:'"/>
747
774
  </xsl:call-template>
748
775
  </fo:block>
776
+ <!-- function: { emc | safety | environment | quality-assurance } -->
749
777
  <fo:block font-size="6.5pt">
750
- <xsl:call-template name="insertCheckBoxOff"/>
778
+ <xsl:choose>
779
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'emc'">
780
+ <xsl:call-template name="insertCheckBoxOn"/>
781
+ </xsl:when>
782
+ <xsl:otherwise>
783
+ <xsl:call-template name="insertCheckBoxOff"/>
784
+ </xsl:otherwise>
785
+ </xsl:choose>
751
786
  <xsl:call-template name="addLetterSpacingSmallCaps">
752
787
  <xsl:with-param name="text" select="'EMC'"/>
753
788
  </xsl:call-template>
754
789
  <fo:inline padding-right="33mm"> </fo:inline>
755
- <xsl:call-template name="insertCheckBoxOff"/>
790
+ <xsl:choose>
791
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'environment'">
792
+ <xsl:call-template name="insertCheckBoxOn"/>
793
+ </xsl:when>
794
+ <xsl:otherwise>
795
+ <xsl:call-template name="insertCheckBoxOff"/>
796
+ </xsl:otherwise>
797
+ </xsl:choose>
756
798
  <xsl:call-template name="addLetterSpacingSmallCaps">
757
799
  <xsl:with-param name="text" select="'Environment'"/>
758
800
  </xsl:call-template>
@@ -761,12 +803,26 @@
761
803
  <fo:table-cell padding="1.5mm" padding-bottom="0mm">
762
804
  <fo:block font-size="6.5pt" margin-bottom="6pt"> </fo:block>
763
805
  <fo:block font-size="6.5pt">
764
- <xsl:call-template name="insertCheckBoxOff"/>
806
+ <xsl:choose>
807
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'quality-assurance'">
808
+ <xsl:call-template name="insertCheckBoxOn"/>
809
+ </xsl:when>
810
+ <xsl:otherwise>
811
+ <xsl:call-template name="insertCheckBoxOff"/>
812
+ </xsl:otherwise>
813
+ </xsl:choose>
765
814
  <xsl:call-template name="addLetterSpacingSmallCaps">
766
815
  <xsl:with-param name="text" select="'Quality assurance'"/>
767
816
  </xsl:call-template>
768
817
  <fo:inline padding-right="13mm"> </fo:inline>
769
- <xsl:call-template name="insertCheckBoxOn"/>
818
+ <xsl:choose>
819
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'safety'">
820
+ <xsl:call-template name="insertCheckBoxOn"/>
821
+ </xsl:when>
822
+ <xsl:otherwise>
823
+ <xsl:call-template name="insertCheckBoxOff"/>
824
+ </xsl:otherwise>
825
+ </xsl:choose>
770
826
  <xsl:call-template name="addLetterSpacingSmallCaps">
771
827
  <xsl:with-param name="text" select="'Safety'"/>
772
828
  </xsl:call-template>
@@ -1086,14 +1142,15 @@
1086
1142
 
1087
1143
  </fo:block>
1088
1144
  </fo:block-container>
1089
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
1145
+ <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr'] and $lang != 'fr'">
1090
1146
  <fo:block-container height="26mm" margin-top="10pt" display-align="after">
1091
1147
  <xsl:if test="$stage &gt;= 60">
1092
1148
  <xsl:attribute name="width">100mm</xsl:attribute>
1093
1149
  </xsl:if>
1094
1150
  <fo:block color="{$color_gray}">
1095
1151
  <xsl:if test="$stage &gt;= 60">
1096
- <xsl:text>NORME INTERNATIONALE</xsl:text>
1152
+ <!-- <xsl:text>NORME INTERNATIONALE</xsl:text> -->
1153
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:doctype[@language = 'fr']))"/>
1097
1154
  </xsl:if>
1098
1155
  </fo:block>
1099
1156
  </fo:block-container>
@@ -1104,21 +1161,39 @@
1104
1161
  <fo:block-container margin-left="0mm">
1105
1162
  <fo:block-container height="6mm">
1106
1163
  <fo:block text-align="right" margin-top="-4.5mm" margin-right="-1mm">
1107
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Colour-Inside))}" width="19mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo IEC"/>
1164
+ <xsl:if test="/iec:iec-standard/iec:bibdata/iec:ext/iec:accessibility-color-inside = 'true'">
1165
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Colour-Inside))}" width="19mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo IEC"/>
1166
+ </xsl:if>
1108
1167
  </fo:block>
1109
1168
  </fo:block-container>
1110
1169
  <fo:block-container border-bottom="0.5pt solid {$color_gray}" margin-top="4mm" margin-bottom="16pt" height="14mm" display-align="center">
1111
1170
  <fo:block font-size="10pt" color="{$color_blue}" margin-bottom="4pt">
1112
- Example: BASIC EMC PUBLICATION
1171
+ <xsl:choose>
1172
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
1173
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal[@language = $lang]))"/>
1174
+ </xsl:when>
1175
+ <xsl:otherwise><!-- horizontal is false -->
1176
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:function[@language = $lang]))"/>
1177
+ </xsl:otherwise>
1178
+ </xsl:choose>
1179
+ <!-- Example: BASIC EMC PUBLICATION -->
1113
1180
  <!-- HORIZONTAL STANDARD -->
1114
1181
  <!-- Basic EMC Publication
1115
1182
  Basic Safety Publication
1116
1183
  Basic Environment Publication
1117
1184
  Basic Quality Assurance Publication -->
1118
1185
  </fo:block>
1119
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
1186
+ <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr'] and $lang != 'fr'">
1120
1187
  <fo:block font-size="10pt" margin-bottom="10pt">
1121
- Example: PUBLICATION FONDAMENTALE EN CEM
1188
+ <xsl:choose>
1189
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
1190
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal[@language = 'fr']))"/>
1191
+ </xsl:when>
1192
+ <xsl:otherwise><!-- horizontal is false -->
1193
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:function[@language = 'fr']))"/>
1194
+ </xsl:otherwise>
1195
+ </xsl:choose>
1196
+ <!-- Example: PUBLICATION FONDAMENTALE EN CEM -->
1122
1197
  <!-- NORME HORIZONTALE -->
1123
1198
  </fo:block>
1124
1199
  </xsl:if>
@@ -1367,6 +1442,35 @@
1367
1442
  <xsl:apply-templates/>
1368
1443
  </xsl:template>
1369
1444
 
1445
+
1446
+ <xsl:template match="iec:feedback-statement//iec:clause/iec:title" priority="2">
1447
+ <fo:block font-weight="bold" keep-with-next="always"><xsl:apply-templates/></fo:block>
1448
+ </xsl:template>
1449
+
1450
+ <xsl:template match="iec:feedback-statement//iec:clause/iec:p" priority="2">
1451
+ <fo:block margin-bottom="6pt"><xsl:apply-templates/></fo:block>
1452
+ </xsl:template>
1453
+
1454
+ <xsl:template match="iec:feedback-statement/iec:clause[not(iec:clause)]" priority="2">
1455
+ <fo:block span="all" text-align="justify">
1456
+ <xsl:if test="not(preceding-sibling::iec:clause)">
1457
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1458
+ </xsl:if>
1459
+ <xsl:apply-templates/>
1460
+ </fo:block>
1461
+ </xsl:template>
1462
+
1463
+ <xsl:template match="iec:feedback-statement/iec:clause[iec:clause]" priority="2">
1464
+ <fo:block text-align="justify">
1465
+ <xsl:apply-templates/>
1466
+ </fo:block>
1467
+ </xsl:template>
1468
+ <xsl:template match="iec:feedback-statement/iec:clause/iec:clause" priority="3">
1469
+ <fo:block text-align="justify">
1470
+ <xsl:apply-templates/>
1471
+ </fo:block>
1472
+ </xsl:template>
1473
+
1370
1474
  <!-- ============================= -->
1371
1475
  <!-- CONTENTS -->
1372
1476
  <!-- ============================= -->
@@ -1819,10 +1923,10 @@
1819
1923
  <xsl:otherwise> <!-- for ordered lists -->
1820
1924
  <xsl:choose>
1821
1925
  <xsl:when test="../@type = 'arabic'">
1822
- <xsl:number format="a)"/>
1926
+ <xsl:number format="a)" lang="en"/>
1823
1927
  </xsl:when>
1824
1928
  <xsl:when test="../@type = 'alphabet'">
1825
- <xsl:number format="a)"/>
1929
+ <xsl:number format="a)" lang="en"/>
1826
1930
  </xsl:when>
1827
1931
  <xsl:otherwise>
1828
1932
  <xsl:number format="1)"/>
@@ -2163,7 +2267,12 @@
2163
2267
 
2164
2268
 
2165
2269
  </title-toc>
2166
- <title-toc lang="fr">Sommaire</title-toc>
2270
+ <title-toc lang="fr">
2271
+
2272
+ <xsl:text>Sommaire</xsl:text>
2273
+
2274
+
2275
+ </title-toc>
2167
2276
 
2168
2277
  <title-toc lang="zh">Contents</title-toc>
2169
2278
 
@@ -2185,15 +2294,24 @@
2185
2294
 
2186
2295
  <xsl:text>Part #: </xsl:text>
2187
2296
 
2297
+
2188
2298
  </title-part>
2189
2299
  <title-part lang="fr">
2190
2300
 
2191
2301
 
2192
2302
  <xsl:text>Partie #: </xsl:text>
2193
2303
 
2304
+
2194
2305
  </title-part>
2195
2306
  <title-part lang="zh">第 # 部分:</title-part>
2196
2307
 
2308
+ <title-subpart lang="en">
2309
+
2310
+ </title-subpart>
2311
+ <title-subpart lang="fr">
2312
+
2313
+ </title-subpart>
2314
+
2197
2315
  <title-modified lang="en">modified</title-modified>
2198
2316
  <title-modified lang="fr">modifiée</title-modified>
2199
2317
 
@@ -2255,10 +2373,19 @@
2255
2373
 
2256
2374
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
2257
2375
  <xsl:param name="name"/>
2258
- <xsl:variable name="lang">
2259
- <xsl:call-template name="getLang"/>
2376
+ <xsl:param name="lang"/>
2377
+ <xsl:variable name="lang_">
2378
+ <xsl:choose>
2379
+ <xsl:when test="$lang != ''">
2380
+ <xsl:value-of select="$lang"/>
2381
+ </xsl:when>
2382
+ <xsl:otherwise>
2383
+ <xsl:call-template name="getLang"/>
2384
+ </xsl:otherwise>
2385
+ </xsl:choose>
2260
2386
  </xsl:variable>
2261
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
2387
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
2388
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
2262
2389
  <xsl:choose>
2263
2390
  <xsl:when test="normalize-space($title_) != ''">
2264
2391
  <xsl:value-of select="$title_"/>
@@ -2398,6 +2525,7 @@
2398
2525
 
2399
2526
 
2400
2527
 
2528
+
2401
2529
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2402
2530
 
2403
2531
 
@@ -2440,6 +2568,7 @@
2440
2568
 
2441
2569
 
2442
2570
 
2571
+
2443
2572
  </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
2444
2573
 
2445
2574
 
@@ -2520,6 +2649,7 @@
2520
2649
  </xsl:attribute-set><xsl:attribute-set name="term-style">
2521
2650
 
2522
2651
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
2652
+
2523
2653
 
2524
2654
 
2525
2655
 
@@ -2646,6 +2776,10 @@
2646
2776
 
2647
2777
 
2648
2778
 
2779
+ <!-- <xsl:if test="$namespace = 'bipm'">
2780
+ <fo:block>&#xA0;</fo:block>
2781
+ </xsl:if> -->
2782
+
2649
2783
  <!-- $namespace = 'iso' or -->
2650
2784
 
2651
2785
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -2678,11 +2812,14 @@
2678
2812
 
2679
2813
 
2680
2814
  <xsl:variable name="colwidths">
2681
- <xsl:call-template name="calculate-column-widths">
2682
- <xsl:with-param name="cols-count" select="$cols-count"/>
2683
- <xsl:with-param name="table" select="$simple-table"/>
2684
- </xsl:call-template>
2815
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2816
+ <xsl:call-template name="calculate-column-widths">
2817
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2818
+ <xsl:with-param name="table" select="$simple-table"/>
2819
+ </xsl:call-template>
2820
+ </xsl:if>
2685
2821
  </xsl:variable>
2822
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2686
2823
 
2687
2824
  <!-- <xsl:variable name="colwidths2">
2688
2825
  <xsl:call-template name="calculate-column-widths">
@@ -2704,37 +2841,105 @@
2704
2841
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2705
2842
 
2706
2843
 
2844
+
2845
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2707
2846
  <xsl:attribute name="space-after">12pt</xsl:attribute>
2708
2847
  <xsl:if test="ancestor::*[local-name() = 'preface']">
2709
2848
  <xsl:attribute name="space-after">16pt</xsl:attribute>
2710
2849
  </xsl:if>
2850
+
2851
+
2852
+
2711
2853
 
2712
2854
 
2855
+
2713
2856
 
2714
2857
 
2715
-
2716
2858
 
2717
2859
 
2718
2860
 
2719
- <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
2720
-
2721
-
2722
- <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
2723
-
2861
+
2862
+
2863
+ <xsl:variable name="table_attributes">
2864
+ <attribute name="table-layout">fixed</attribute>
2865
+ <attribute name="width">100%</attribute>
2866
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2867
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2724
2868
 
2725
2869
 
2870
+ <attribute name="border">0.5pt solid black</attribute>
2726
2871
 
2727
2872
 
2728
2873
 
2874
+
2875
+
2876
+
2729
2877
 
2878
+
2730
2879
 
2880
+ </xsl:variable>
2881
+
2882
+
2883
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2731
2884
 
2885
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2886
+ <xsl:attribute name="{@name}">
2887
+ <xsl:value-of select="."/>
2888
+ </xsl:attribute>
2889
+ </xsl:for-each>
2732
2890
 
2733
- <!-- <xsl:if test="ancestor::*[local-name()='preface']"> -->
2734
- <xsl:attribute name="font-size">8pt</xsl:attribute>
2891
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2892
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2893
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2894
+ </xsl:if>
2735
2895
 
2896
+ <xsl:choose>
2897
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
2898
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
2899
+ <fo:table-column column-width="{@width}"/>
2900
+ </xsl:for-each>
2901
+ </xsl:when>
2902
+ <xsl:otherwise>
2903
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2904
+ <xsl:choose>
2905
+ <xsl:when test=". = 1 or . = 0">
2906
+ <fo:table-column column-width="proportional-column-width(2)"/>
2907
+ </xsl:when>
2908
+ <xsl:otherwise>
2909
+ <fo:table-column column-width="proportional-column-width({.})"/>
2910
+ </xsl:otherwise>
2911
+ </xsl:choose>
2912
+ </xsl:for-each>
2913
+ </xsl:otherwise>
2914
+ </xsl:choose>
2736
2915
 
2916
+ <xsl:choose>
2917
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2918
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2919
+ </xsl:when>
2920
+ <xsl:otherwise>
2921
+ <xsl:apply-templates/>
2922
+ </xsl:otherwise>
2923
+ </xsl:choose>
2737
2924
 
2925
+ </fo:table>
2926
+
2927
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
2928
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2929
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2930
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2931
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2932
+ <xsl:with-param name="colgroup" select="$colgroup"/>
2933
+ </xsl:call-template>
2934
+ </xsl:for-each>
2935
+
2936
+ <!-- insert footer as table -->
2937
+ <!-- <fo:table>
2938
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2939
+ <xsl:attribute name="{@name}">
2940
+ <xsl:value-of select="."/>
2941
+ </xsl:attribute>
2942
+ </xsl:for-each>
2738
2943
 
2739
2944
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2740
2945
  <xsl:choose>
@@ -2746,17 +2951,7 @@
2746
2951
  </xsl:otherwise>
2747
2952
  </xsl:choose>
2748
2953
  </xsl:for-each>
2749
-
2750
- <xsl:choose>
2751
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2752
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2753
- </xsl:when>
2754
- <xsl:otherwise>
2755
- <xsl:apply-templates/>
2756
- </xsl:otherwise>
2757
- </xsl:choose>
2758
-
2759
- </fo:table>
2954
+ </fo:table>-->
2760
2955
 
2761
2956
 
2762
2957
 
@@ -2767,6 +2962,7 @@
2767
2962
  <xsl:if test="normalize-space() != ''">
2768
2963
  <fo:block xsl:use-attribute-sets="table-name-style">
2769
2964
 
2965
+
2770
2966
  <xsl:apply-templates/>
2771
2967
  </fo:block>
2772
2968
  </xsl:if>
@@ -2822,6 +3018,13 @@
2822
3018
  <xsl:for-each select="xalan:nodeset($table)//tr">
2823
3019
  <xsl:variable name="td_text">
2824
3020
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
3021
+
3022
+ <!-- <xsl:if test="$namespace = 'bipm'">
3023
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
3024
+ <word><xsl:value-of select="normalize-space(.)"/></word>
3025
+ </xsl:for-each>
3026
+ </xsl:if> -->
3027
+
2825
3028
  </xsl:variable>
2826
3029
  <xsl:variable name="words">
2827
3030
  <xsl:variable name="string_with_added_zerospaces">
@@ -2881,11 +3084,14 @@
2881
3084
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2882
3085
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2883
3086
  <xsl:value-of select="@target"/>
3087
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
3088
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
3089
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2884
3090
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2885
3091
  <xsl:param name="cols-count"/>
2886
3092
  <!-- font-weight="bold" -->
2887
3093
  <fo:table-header>
2888
-
3094
+
2889
3095
  <xsl:apply-templates/>
2890
3096
  </fo:table-header>
2891
3097
  </xsl:template><xsl:template name="table-header-title">
@@ -2910,6 +3116,13 @@
2910
3116
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2911
3117
  <xsl:apply-templates/>
2912
3118
  </xsl:template><xsl:template name="insertTableFooter">
3119
+ <xsl:param name="cols-count"/>
3120
+ <xsl:if test="../*[local-name()='tfoot']">
3121
+ <fo:table-footer>
3122
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3123
+ </fo:table-footer>
3124
+ </xsl:if>
3125
+ </xsl:template><xsl:template name="insertTableFooter2">
2913
3126
  <xsl:param name="cols-count"/>
2914
3127
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2915
3128
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -2937,11 +3150,29 @@
2937
3150
  </xsl:if>
2938
3151
 
2939
3152
 
3153
+
3154
+
3155
+
3156
+
2940
3157
  <!-- except gb -->
2941
3158
 
2942
3159
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2943
3160
 
2944
3161
 
3162
+ <!-- show Note under table in preface (ex. abstract) sections -->
3163
+ <!-- empty, because notes show at page side in main sections -->
3164
+ <!-- <xsl:if test="$namespace = 'bipm'">
3165
+ <xsl:choose>
3166
+ <xsl:when test="ancestor::*[local-name()='preface']">
3167
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3168
+ </xsl:when>
3169
+ <xsl:otherwise>
3170
+ <fo:block/>
3171
+ </xsl:otherwise>
3172
+ </xsl:choose>
3173
+ </xsl:if> -->
3174
+
3175
+
2945
3176
  <!-- horizontal row separator -->
2946
3177
 
2947
3178
  <xsl:if test="../*[local-name()='note']">
@@ -2961,6 +3192,119 @@
2961
3192
  </fo:table-footer>
2962
3193
 
2963
3194
  </xsl:if>
3195
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3196
+ <xsl:param name="table_attributes"/>
3197
+ <xsl:param name="colwidths"/>
3198
+ <xsl:param name="colgroup"/>
3199
+
3200
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3201
+
3202
+ <xsl:if test="$isNoteOrFnExist = 'true'">
3203
+
3204
+ <xsl:variable name="cols-count">
3205
+ <xsl:choose>
3206
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
3207
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
3208
+ </xsl:when>
3209
+ <xsl:otherwise>
3210
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
3211
+ </xsl:otherwise>
3212
+ </xsl:choose>
3213
+ </xsl:variable>
3214
+
3215
+ <fo:table keep-with-previous="always">
3216
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3217
+ <xsl:choose>
3218
+ <xsl:when test="@name = 'border-top'">
3219
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
3220
+ </xsl:when>
3221
+ <xsl:when test="@name = 'border'">
3222
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3223
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3224
+ </xsl:when>
3225
+ <xsl:otherwise>
3226
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3227
+ </xsl:otherwise>
3228
+ </xsl:choose>
3229
+ </xsl:for-each>
3230
+
3231
+ <xsl:choose>
3232
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
3233
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
3234
+ <fo:table-column column-width="{@width}"/>
3235
+ </xsl:for-each>
3236
+ </xsl:when>
3237
+ <xsl:otherwise>
3238
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3239
+ <xsl:choose>
3240
+ <xsl:when test=". = 1 or . = 0">
3241
+ <fo:table-column column-width="proportional-column-width(2)"/>
3242
+ </xsl:when>
3243
+ <xsl:otherwise>
3244
+ <fo:table-column column-width="proportional-column-width({.})"/>
3245
+ </xsl:otherwise>
3246
+ </xsl:choose>
3247
+ </xsl:for-each>
3248
+ </xsl:otherwise>
3249
+ </xsl:choose>
3250
+
3251
+ <fo:table-body>
3252
+ <fo:table-row>
3253
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3254
+
3255
+
3256
+ <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3257
+
3258
+
3259
+ <!-- fn will be processed inside 'note' processing -->
3260
+
3261
+ <xsl:if test="../*[local-name()='note']">
3262
+ <fo:block margin-bottom="6pt"> </fo:block>
3263
+ </xsl:if>
3264
+
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+ <!-- except gb -->
3272
+
3273
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3274
+
3275
+
3276
+ <!-- <xsl:if test="$namespace = 'bipm'">
3277
+ <xsl:choose>
3278
+ <xsl:when test="ancestor::*[local-name()='preface']">
3279
+ show Note under table in preface (ex. abstract) sections
3280
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3281
+ </xsl:when>
3282
+ <xsl:otherwise>
3283
+ empty, because notes show at page side in main sections
3284
+ <fo:block/>
3285
+ </xsl:otherwise>
3286
+ </xsl:choose>
3287
+ </xsl:if> -->
3288
+
3289
+
3290
+ <!-- horizontal row separator -->
3291
+
3292
+ <xsl:if test="../*[local-name()='note']">
3293
+ <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3294
+ <fo:block font-size="1pt"> </fo:block>
3295
+ </fo:block-container>
3296
+ </xsl:if>
3297
+
3298
+
3299
+ <!-- fn processing -->
3300
+ <xsl:call-template name="fn_display"/>
3301
+
3302
+ </fo:table-cell>
3303
+ </fo:table-row>
3304
+ </fo:table-body>
3305
+
3306
+ </fo:table>
3307
+ </xsl:if>
2964
3308
  </xsl:template><xsl:template match="*[local-name()='tbody']">
2965
3309
 
2966
3310
  <xsl:variable name="cols-count">
@@ -3019,8 +3363,12 @@
3019
3363
 
3020
3364
  </xsl:if>
3021
3365
 
3022
-
3023
-
3366
+
3367
+
3368
+
3369
+ <!-- <xsl:if test="$namespace = 'bipm'">
3370
+ <xsl:attribute name="height">8mm</xsl:attribute>
3371
+ </xsl:if> -->
3024
3372
 
3025
3373
  <xsl:apply-templates/>
3026
3374
  </fo:table-row>
@@ -3052,6 +3400,7 @@
3052
3400
 
3053
3401
 
3054
3402
 
3403
+
3055
3404
  <xsl:if test="@colspan">
3056
3405
  <xsl:attribute name="number-columns-spanned">
3057
3406
  <xsl:value-of select="@colspan"/>
@@ -3097,7 +3446,7 @@
3097
3446
  <xsl:attribute name="border">solid black 0</xsl:attribute>
3098
3447
  </xsl:if>
3099
3448
 
3100
-
3449
+
3101
3450
 
3102
3451
  <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3103
3452
  <xsl:if test="ancestor::*[local-name()='preface']">
@@ -3109,6 +3458,7 @@
3109
3458
 
3110
3459
 
3111
3460
 
3461
+
3112
3462
  <xsl:if test="@colspan">
3113
3463
  <xsl:attribute name="number-columns-spanned">
3114
3464
  <xsl:value-of select="@colspan"/>
@@ -3120,7 +3470,8 @@
3120
3470
  </xsl:attribute>
3121
3471
  </xsl:if>
3122
3472
  <xsl:call-template name="display-align"/>
3123
- <fo:block>
3473
+ <fo:block>
3474
+
3124
3475
  <xsl:apply-templates/>
3125
3476
  </fo:block>
3126
3477
  </fo:table-cell>
@@ -3135,14 +3486,17 @@
3135
3486
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3136
3487
 
3137
3488
 
3489
+
3490
+
3138
3491
  <fo:inline padding-right="2mm">
3139
3492
 
3140
3493
 
3141
3494
 
3142
-
3495
+
3143
3496
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3144
3497
 
3145
3498
  </fo:inline>
3499
+
3146
3500
  <xsl:apply-templates mode="process"/>
3147
3501
  </fo:block>
3148
3502
 
@@ -3171,6 +3525,7 @@
3171
3525
  <xsl:attribute name="margin-left">6mm</xsl:attribute>
3172
3526
 
3173
3527
 
3528
+
3174
3529
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3175
3530
 
3176
3531
 
@@ -3181,12 +3536,15 @@
3181
3536
 
3182
3537
 
3183
3538
 
3539
+
3184
3540
  <xsl:value-of select="@reference"/>
3185
3541
 
3542
+
3186
3543
  </fo:inline>
3187
3544
  <fo:inline>
3188
3545
 
3189
- <xsl:apply-templates/>
3546
+ <!-- <xsl:apply-templates /> -->
3547
+ <xsl:copy-of select="./node()"/>
3190
3548
  </fo:inline>
3191
3549
  </fo:block>
3192
3550
  </xsl:if>
@@ -3223,7 +3581,20 @@
3223
3581
  <xsl:variable name="following_dl_colwidths">
3224
3582
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
3225
3583
  <xsl:variable name="html-table">
3226
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3584
+ <xsl:variable name="doc_ns">
3585
+
3586
+ </xsl:variable>
3587
+ <xsl:variable name="ns">
3588
+ <xsl:choose>
3589
+ <xsl:when test="normalize-space($doc_ns) != ''">
3590
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3591
+ </xsl:when>
3592
+ <xsl:otherwise>
3593
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3594
+ </xsl:otherwise>
3595
+ </xsl:choose>
3596
+ </xsl:variable>
3597
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3227
3598
  <xsl:element name="{$ns}:table">
3228
3599
  <xsl:for-each select="*[local-name() = 'dl'][1]">
3229
3600
  <tbody>
@@ -3297,7 +3668,8 @@
3297
3668
 
3298
3669
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
3299
3670
 
3300
- <xsl:apply-templates/>
3671
+ <!-- <xsl:apply-templates /> -->
3672
+ <xsl:copy-of select="./node()"/>
3301
3673
  </fo:block>
3302
3674
  </fo:table-cell>
3303
3675
  </fo:table-row>
@@ -3322,9 +3694,12 @@
3322
3694
 
3323
3695
 
3324
3696
 
3697
+
3325
3698
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3326
3699
 
3700
+
3327
3701
  <xsl:value-of select="@reference"/>
3702
+
3328
3703
  </fo:basic-link>
3329
3704
  </fo:inline>
3330
3705
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -3332,7 +3707,11 @@
3332
3707
  <xsl:apply-templates/>
3333
3708
  </fo:inline>
3334
3709
  </xsl:template><xsl:template match="*[local-name()='dl']">
3335
- <fo:block-container margin-left="0mm">
3710
+ <fo:block-container>
3711
+
3712
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3713
+
3714
+
3336
3715
  <xsl:if test="parent::*[local-name() = 'note']">
3337
3716
  <xsl:attribute name="margin-left">
3338
3717
  <xsl:choose>
@@ -3342,8 +3721,11 @@
3342
3721
  </xsl:attribute>
3343
3722
 
3344
3723
  </xsl:if>
3345
- <fo:block-container margin-left="0mm">
3346
-
3724
+ <fo:block-container>
3725
+
3726
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3727
+
3728
+
3347
3729
  <xsl:variable name="parent" select="local-name(..)"/>
3348
3730
 
3349
3731
  <xsl:variable name="key_iso">
@@ -3361,9 +3743,12 @@
3361
3743
 
3362
3744
 
3363
3745
  <xsl:variable name="title-where">
3364
- <xsl:call-template name="getTitle">
3365
- <xsl:with-param name="name" select="'title-where'"/>
3366
- </xsl:call-template>
3746
+
3747
+
3748
+ <xsl:call-template name="getTitle">
3749
+ <xsl:with-param name="name" select="'title-where'"/>
3750
+ </xsl:call-template>
3751
+
3367
3752
  </xsl:variable>
3368
3753
  <xsl:value-of select="$title-where"/>
3369
3754
  </fo:block>
@@ -3386,9 +3771,12 @@
3386
3771
 
3387
3772
 
3388
3773
  <xsl:variable name="title-where">
3389
- <xsl:call-template name="getTitle">
3390
- <xsl:with-param name="name" select="'title-where'"/>
3391
- </xsl:call-template>
3774
+
3775
+
3776
+ <xsl:call-template name="getTitle">
3777
+ <xsl:with-param name="name" select="'title-where'"/>
3778
+ </xsl:call-template>
3779
+
3392
3780
  </xsl:variable>
3393
3781
  <xsl:value-of select="$title-where"/>
3394
3782
  </fo:block>
@@ -3402,9 +3790,12 @@
3402
3790
 
3403
3791
 
3404
3792
  <xsl:variable name="title-key">
3405
- <xsl:call-template name="getTitle">
3406
- <xsl:with-param name="name" select="'title-key'"/>
3407
- </xsl:call-template>
3793
+
3794
+
3795
+ <xsl:call-template name="getTitle">
3796
+ <xsl:with-param name="name" select="'title-key'"/>
3797
+ </xsl:call-template>
3798
+
3408
3799
  </xsl:variable>
3409
3800
  <xsl:value-of select="$title-key"/>
3410
3801
  </fo:block>
@@ -3438,7 +3829,20 @@
3438
3829
  </xsl:choose>
3439
3830
  <!-- create virtual html table for dl/[dt and dd] -->
3440
3831
  <xsl:variable name="html-table">
3441
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3832
+ <xsl:variable name="doc_ns">
3833
+
3834
+ </xsl:variable>
3835
+ <xsl:variable name="ns">
3836
+ <xsl:choose>
3837
+ <xsl:when test="normalize-space($doc_ns) != ''">
3838
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3839
+ </xsl:when>
3840
+ <xsl:otherwise>
3841
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3842
+ </xsl:otherwise>
3843
+ </xsl:choose>
3844
+ </xsl:variable>
3845
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3442
3846
  <xsl:element name="{$ns}:table">
3443
3847
  <tbody>
3444
3848
  <xsl:apply-templates mode="dl"/>
@@ -3586,6 +3990,7 @@
3586
3990
 
3587
3991
 
3588
3992
 
3993
+
3589
3994
  <xsl:apply-templates/>
3590
3995
  <!-- <xsl:if test="$namespace = 'gb'">
3591
3996
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -3639,6 +4044,7 @@
3639
4044
  </fo:inline>
3640
4045
  </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
3641
4046
  <fo:inline font-weight="bold">
4047
+
3642
4048
  <xsl:apply-templates/>
3643
4049
  </fo:inline>
3644
4050
  </xsl:template><xsl:template match="*[local-name()='sup']">
@@ -3652,18 +4058,18 @@
3652
4058
  </xsl:template><xsl:template match="*[local-name()='tt']">
3653
4059
  <fo:inline xsl:use-attribute-sets="tt-style">
3654
4060
  <xsl:variable name="_font-size">
3655
-
3656
-
3657
-
4061
+
4062
+
4063
+
3658
4064
  10
3659
4065
 
3660
4066
 
3661
4067
 
3662
4068
 
3663
4069
 
3664
-
3665
4070
 
3666
-
4071
+
4072
+
3667
4073
 
3668
4074
 
3669
4075
  </xsl:variable>
@@ -3967,7 +4373,18 @@
3967
4373
  <xsl:with-param name="previousRow" select="$newRow"/>
3968
4374
  </xsl:apply-templates>
3969
4375
  </xsl:template><xsl:template name="getLang">
3970
- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
4376
+ <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
4377
+ <xsl:variable name="language">
4378
+ <xsl:choose>
4379
+ <xsl:when test="$language_current != ''">
4380
+ <xsl:value-of select="$language_current"/>
4381
+ </xsl:when>
4382
+ <xsl:otherwise>
4383
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
4384
+ </xsl:otherwise>
4385
+ </xsl:choose>
4386
+ </xsl:variable>
4387
+
3971
4388
  <xsl:choose>
3972
4389
  <xsl:when test="$language = 'English'">en</xsl:when>
3973
4390
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
@@ -4001,7 +4418,8 @@
4001
4418
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
4002
4419
  <xsl:value-of select="substring($str, 2)"/>
4003
4420
  </xsl:template><xsl:template match="mathml:math">
4004
- <fo:inline font-family="STIX2Math">
4421
+ <fo:inline font-family="STIX Two Math"> <!-- -->
4422
+
4005
4423
  <xsl:variable name="mathml">
4006
4424
  <xsl:apply-templates select="." mode="mathml"/>
4007
4425
  </xsl:variable>
@@ -4031,6 +4449,11 @@
4031
4449
  </xsl:choose>
4032
4450
  </xsl:variable>
4033
4451
  <fo:inline xsl:use-attribute-sets="link-style">
4452
+
4453
+ <xsl:if test="ancestor::*[local-name()='feedback-statement']">
4454
+ <xsl:attribute name="color">blue</xsl:attribute>
4455
+ </xsl:if>
4456
+
4034
4457
  <xsl:choose>
4035
4458
  <xsl:when test="$target = ''">
4036
4459
  <xsl:apply-templates/>
@@ -4084,10 +4507,14 @@
4084
4507
  </fo:inline>
4085
4508
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
4086
4509
  <xsl:variable name="title-modified">
4087
- <xsl:call-template name="getTitle">
4088
- <xsl:with-param name="name" select="'title-modified'"/>
4089
- </xsl:call-template>
4510
+
4511
+
4512
+ <xsl:call-template name="getTitle">
4513
+ <xsl:with-param name="name" select="'title-modified'"/>
4514
+ </xsl:call-template>
4515
+
4090
4516
  </xsl:variable>
4517
+
4091
4518
  <xsl:choose>
4092
4519
  <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
4093
4520
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
@@ -4095,7 +4522,7 @@
4095
4522
  <xsl:apply-templates/>
4096
4523
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
4097
4524
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
4098
-
4525
+
4099
4526
  <xsl:apply-templates/>
4100
4527
  </fo:basic-link>
4101
4528
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -4148,6 +4575,8 @@
4148
4575
 
4149
4576
 
4150
4577
 
4578
+
4579
+
4151
4580
  <fo:inline xsl:use-attribute-sets="note-name-style">
4152
4581
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4153
4582
  </fo:inline>
@@ -4238,7 +4667,8 @@
4238
4667
  </fo:inline>
4239
4668
  </xsl:if>
4240
4669
  </xsl:template><xsl:template match="*[local-name() = 'figure']">
4241
- <fo:block-container id="{@id}">
4670
+ <fo:block-container id="{@id}">
4671
+
4242
4672
  <fo:block>
4243
4673
  <xsl:apply-templates/>
4244
4674
  </fo:block>
@@ -4289,7 +4719,7 @@
4289
4719
  <xsl:apply-templates mode="bookmarks"/>
4290
4720
  </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
4291
4721
  <xsl:apply-templates select="."/>
4292
- </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4722
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4293
4723
  <xsl:apply-templates mode="bookmarks"/>
4294
4724
  </xsl:template><xsl:template name="addBookmarks">
4295
4725
  <xsl:param name="contents"/>
@@ -4303,18 +4733,9 @@
4303
4733
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4304
4734
  <fo:bookmark-title>
4305
4735
  <xsl:variable name="bookmark-title_">
4306
- <xsl:choose>
4307
- <xsl:when test="@lang = 'en'">
4308
- English
4309
-
4310
- </xsl:when>
4311
- <xsl:when test="@lang = 'fr'">
4312
- Français
4313
-
4314
- </xsl:when>
4315
- <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
4316
- <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
4317
- </xsl:choose>
4736
+ <xsl:call-template name="getLangVersion">
4737
+ <xsl:with-param name="lang" select="@lang"/>
4738
+ </xsl:call-template>
4318
4739
  </xsl:variable>
4319
4740
  <xsl:choose>
4320
4741
  <xsl:when test="normalize-space($bookmark-title_) != ''">
@@ -4376,13 +4797,27 @@
4376
4797
  </fo:bookmark>
4377
4798
  </xsl:for-each>
4378
4799
  </fo:bookmark>
4379
- </xsl:if>
4800
+ </xsl:if>
4380
4801
 
4381
4802
 
4382
4803
 
4383
4804
 
4384
4805
  </fo:bookmark-tree>
4385
4806
  </xsl:if>
4807
+ </xsl:template><xsl:template name="getLangVersion">
4808
+ <xsl:param name="lang"/>
4809
+ <xsl:choose>
4810
+ <xsl:when test="$lang = 'en'">
4811
+ English
4812
+
4813
+ </xsl:when>
4814
+ <xsl:when test="$lang = 'fr'">
4815
+ Français
4816
+
4817
+ </xsl:when>
4818
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
4819
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
4820
+ </xsl:choose>
4386
4821
  </xsl:template><xsl:template match="item" mode="bookmark">
4387
4822
  <fo:bookmark internal-destination="{@id}" starting-state="hide">
4388
4823
  <fo:bookmark-title>
@@ -4397,7 +4832,7 @@
4397
4832
  </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4398
4833
  <xsl:if test="normalize-space() != ''">
4399
4834
  <fo:block xsl:use-attribute-sets="figure-name-style">
4400
-
4835
+
4401
4836
  <xsl:apply-templates/>
4402
4837
  </fo:block>
4403
4838
  </xsl:if>
@@ -4834,9 +5269,14 @@
4834
5269
 
4835
5270
  <fo:inline>
4836
5271
 
4837
- <xsl:call-template name="getTitle">
4838
- <xsl:with-param name="name" select="'title-source'"/>
4839
- </xsl:call-template>
5272
+
5273
+
5274
+
5275
+ <xsl:call-template name="getTitle">
5276
+ <xsl:with-param name="name" select="'title-source'"/>
5277
+ </xsl:call-template>
5278
+
5279
+
4840
5280
  <xsl:text>: </xsl:text>
4841
5281
  </fo:inline>
4842
5282
 
@@ -4987,9 +5427,12 @@
4987
5427
  </fo:block>
4988
5428
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
4989
5429
  <xsl:variable name="title-deprecated">
4990
- <xsl:call-template name="getTitle">
4991
- <xsl:with-param name="name" select="'title-deprecated'"/>
4992
- </xsl:call-template>
5430
+
5431
+
5432
+ <xsl:call-template name="getTitle">
5433
+ <xsl:with-param name="name" select="'title-deprecated'"/>
5434
+ </xsl:call-template>
5435
+
4993
5436
  </xsl:variable>
4994
5437
  <fo:block xsl:use-attribute-sets="deprecates-style">
4995
5438
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -5031,13 +5474,14 @@
5031
5474
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
5032
5475
  <fo:block>
5033
5476
  <xsl:call-template name="setId"/>
5477
+
5034
5478
  <xsl:apply-templates/>
5035
5479
  </fo:block>
5036
5480
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
5037
5481
  <fo:block id="{@id}">
5038
5482
  <xsl:apply-templates/>
5039
5483
  </fo:block>
5040
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
5484
+ </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']">
5041
5485
 
5042
5486
  <fo:block id="{@id}">
5043
5487
  <xsl:apply-templates/>
@@ -5066,6 +5510,7 @@
5066
5510
  </xsl:choose>
5067
5511
  </xsl:attribute>
5068
5512
 
5513
+
5069
5514
  <fo:block-container margin-left="0mm">
5070
5515
  <fo:block>
5071
5516
  <xsl:apply-templates select="." mode="ul_ol"/>
@@ -5093,7 +5538,8 @@
5093
5538
  <fo:table-column column-width="107mm"/>
5094
5539
  <fo:table-column column-width="15mm"/>
5095
5540
  <fo:table-body>
5096
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
5541
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
5542
+
5097
5543
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
5098
5544
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
5099
5545
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -5111,6 +5557,10 @@
5111
5557
  <fo:block><xsl:apply-templates/></fo:block>
5112
5558
  </fo:table-cell>
5113
5559
  </xsl:template><xsl:template name="processBibitem">
5560
+
5561
+
5562
+ <!-- end BIPM bibitem processing-->
5563
+
5114
5564
 
5115
5565
 
5116
5566
 
@@ -5251,6 +5701,7 @@
5251
5701
 
5252
5702
 
5253
5703
 
5704
+
5254
5705
 
5255
5706
  </xsl:variable>
5256
5707
  <xsl:choose>
@@ -5265,6 +5716,7 @@
5265
5716
  <dc:creator>
5266
5717
 
5267
5718
 
5719
+
5268
5720
  </dc:creator>
5269
5721
  <dc:description>
5270
5722
  <xsl:variable name="abstract">
@@ -5274,6 +5726,7 @@
5274
5726
 
5275
5727
 
5276
5728
 
5729
+
5277
5730
  </xsl:variable>
5278
5731
  <xsl:value-of select="normalize-space($abstract)"/>
5279
5732
  </dc:description>
@@ -5345,13 +5798,22 @@
5345
5798
  </xsl:template><xsl:template name="split">
5346
5799
  <xsl:param name="pText" select="."/>
5347
5800
  <xsl:param name="sep" select="','"/>
5801
+ <xsl:param name="normalize-space" select="'true'"/>
5348
5802
  <xsl:if test="string-length($pText) &gt;0">
5349
5803
  <item>
5350
- <xsl:value-of select="normalize-space(substring-before(concat($pText, ','), $sep))"/>
5804
+ <xsl:choose>
5805
+ <xsl:when test="$normalize-space = 'true'">
5806
+ <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
5807
+ </xsl:when>
5808
+ <xsl:otherwise>
5809
+ <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
5810
+ </xsl:otherwise>
5811
+ </xsl:choose>
5351
5812
  </item>
5352
5813
  <xsl:call-template name="split">
5353
5814
  <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
5354
5815
  <xsl:with-param name="sep" select="$sep"/>
5816
+ <xsl:with-param name="normalize-space" select="$normalize-space"/>
5355
5817
  </xsl:call-template>
5356
5818
  </xsl:if>
5357
5819
  </xsl:template><xsl:template name="getDocumentId">
@@ -5417,4 +5879,23 @@
5417
5879
  <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
5418
5880
  </xsl:call-template>
5419
5881
  </xsl:if>
5882
+ </xsl:template><xsl:template name="repeat">
5883
+ <xsl:param name="char" select="'*'"/>
5884
+ <xsl:param name="count"/>
5885
+ <xsl:if test="$count &gt; 0">
5886
+ <xsl:value-of select="$char"/>
5887
+ <xsl:call-template name="repeat">
5888
+ <xsl:with-param name="char" select="$char"/>
5889
+ <xsl:with-param name="count" select="$count - 1"/>
5890
+ </xsl:call-template>
5891
+ </xsl:if>
5892
+ </xsl:template><xsl:template name="getLocalizedString">
5893
+ <xsl:param name="key"/>
5894
+
5895
+ <xsl:variable name="curr_lang">
5896
+ <xsl:call-template name="getLang"/>
5897
+ </xsl:variable>
5898
+
5899
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
5900
+
5420
5901
  </xsl:template></xsl:stylesheet>