metanorma-itu 1.2.10 → 1.2.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +9 -29
  3. data/.rubocop.yml +0 -4
  4. data/lib/asciidoctor/itu/basicdoc.rng +5 -3
  5. data/lib/asciidoctor/itu/boilerplate.xml +5 -2
  6. data/lib/asciidoctor/itu/cleanup.rb +9 -0
  7. data/lib/asciidoctor/itu/converter.rb +2 -1
  8. data/lib/asciidoctor/itu/front.rb +19 -20
  9. data/lib/asciidoctor/itu/isodoc.rng +134 -5
  10. data/lib/asciidoctor/itu/itu.rng +76 -0
  11. data/lib/asciidoctor/itu/validate.rb +13 -5
  12. data/lib/isodoc/itu/base_convert.rb +70 -52
  13. data/lib/isodoc/itu/cleanup.rb +55 -0
  14. data/lib/isodoc/itu/html/header.html +12 -8
  15. data/lib/isodoc/itu/html/html_itu_intro.html +1 -1
  16. data/lib/isodoc/itu/html/html_itu_titlepage.html +15 -3
  17. data/lib/isodoc/itu/html/htmlstyle.css +59 -12
  18. data/lib/isodoc/itu/html/htmlstyle.scss +26 -5
  19. data/lib/isodoc/itu/html/word_itu_intro.html +8 -2
  20. data/lib/isodoc/itu/html/word_itu_titlepage.html +29 -6
  21. data/lib/isodoc/itu/html/wordstyle.css +34 -0
  22. data/lib/isodoc/itu/html/wordstyle.scss +33 -0
  23. data/lib/isodoc/itu/html_convert.rb +2 -2
  24. data/lib/isodoc/itu/i18n-en.yaml +4 -0
  25. data/lib/isodoc/itu/itu.implementers-guide.xsl +5889 -0
  26. data/lib/isodoc/itu/itu.in-force.xsl +5889 -0
  27. data/lib/isodoc/itu/itu.recommendation-annex.xsl +1059 -438
  28. data/lib/isodoc/itu/itu.recommendation-supplement.xsl +5889 -0
  29. data/lib/isodoc/itu/itu.recommendation.xsl +1059 -438
  30. data/lib/isodoc/itu/itu.resolution.xsl +1059 -438
  31. data/lib/isodoc/itu/itu.technical-paper.xsl +1059 -438
  32. data/lib/isodoc/itu/itu.technical-report.xsl +1059 -438
  33. data/lib/isodoc/itu/metadata.rb +41 -7
  34. data/lib/isodoc/itu/pdf_convert.rb +5 -8
  35. data/lib/isodoc/itu/presentation_xml_convert.rb +49 -3
  36. data/lib/isodoc/itu/word_convert.rb +2 -2
  37. data/lib/isodoc/itu/xref.rb +101 -43
  38. data/lib/metanorma/itu/processor.rb +1 -0
  39. data/lib/metanorma/itu/version.rb +1 -1
  40. data/metanorma-itu.gemspec +3 -3
  41. metadata +13 -9
@@ -3,6 +3,7 @@
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
5
  <xsl:param name="svg_images"/>
6
+ <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
6
7
  <xsl:variable name="images" select="document($svg_images)"/>
7
8
 
8
9
 
@@ -28,20 +29,10 @@
28
29
  <xsl:with-param name="date" select="/itu:itu-standard/itu:bibdata/itu:date[@type = 'published']/itu:on"/>
29
30
  </xsl:call-template>
30
31
  </xsl:variable>
31
- <xsl:variable name="doctype" select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype"/>
32
- <xsl:variable name="doctypeTitle">
33
- <xsl:call-template name="capitalize">
34
- <xsl:with-param name="str" select="$doctype"/>
35
- </xsl:call-template>
36
- </xsl:variable>
37
- <xsl:variable name="doctypeCapitalizedTitle">
38
- <xsl:call-template name="capitalizeWords">
39
- <xsl:with-param name="str" select="$doctype"/>
40
- </xsl:call-template>
41
- </xsl:variable>
32
+ <xsl:variable name="doctype" select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[not(@language) or @language = '']"/>
42
33
 
43
34
  <xsl:variable name="xSTR-ACRONYM">
44
- <xsl:variable name="x" select="substring(/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']/itu:title, 1, 1)"/>
35
+ <xsl:variable name="x" select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']/itu:title[@type = 'abbrev']"/>
45
36
  <xsl:variable name="acronym" select="/itu:itu-standard/itu:bibdata/itu:docnumber"/>
46
37
  <xsl:value-of select="concat($x,'STR-', $acronym)"/>
47
38
  </xsl:variable>
@@ -75,19 +66,50 @@
75
66
  <xsl:call-template name="getLang"/>
76
67
  </xsl:variable>
77
68
 
78
-
79
- <xsl:variable name="footer-TR">
80
- <xsl:variable name="date" select="concat('(',substring(/itu:itu-standard/itu:bibdata/itu:version/itu:revision-date,1,7), ')')"/>
81
- <xsl:value-of select="concat($xSTR-ACRONYM, ' ', $date)"/>
69
+ <xsl:variable name="doctypeTitle">
70
+ <xsl:choose>
71
+ <xsl:when test="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[@language = $lang]">
72
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[@language = $lang]"/>
73
+ </xsl:when>
74
+ <xsl:otherwise>
75
+ <xsl:call-template name="capitalizeWords">
76
+ <xsl:with-param name="str" select="$doctype"/>
77
+ </xsl:call-template>
78
+ </xsl:otherwise>
79
+ </xsl:choose>
82
80
  </xsl:variable>
83
-
84
- <xsl:variable name="footer-IG">
85
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[@language = $lang]"/>
86
- <xsl:text> for </xsl:text>
87
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type='ITU-Recommendation']"/>
88
- <xsl:text> </xsl:text>
89
- <xsl:variable name="date" select="concat('(',substring(/itu:itu-standard/itu:bibdata/itu:date[@type = 'published']/itu:on,1,7), ')')"/>
90
- <xsl:value-of select="$date"/>
81
+
82
+ <xsl:variable name="footer-text">
83
+ <xsl:choose>
84
+ <xsl:when test="$doctype = 'technical-report' or $doctype = 'technical-paper'">
85
+ <xsl:variable name="date" select="concat('(',substring(/itu:itu-standard/itu:bibdata/itu:version/itu:revision-date,1,7), ')')"/>
86
+ <xsl:value-of select="concat($xSTR-ACRONYM, ' ', $date)"/>
87
+ </xsl:when>
88
+ <xsl:when test="$doctype = 'implementers-guide'">
89
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[@language = $lang]"/>
90
+ <xsl:text> for </xsl:text>
91
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type='ITU-Recommendation']"/>
92
+ <xsl:text> </xsl:text>
93
+ <xsl:variable name="date" select="concat('(',substring(/itu:itu-standard/itu:bibdata/itu:date[@type = 'published']/itu:on,1,7), ')')"/>
94
+ <xsl:value-of select="$date"/>
95
+ </xsl:when>
96
+ <xsl:when test="$doctype = 'resolution'">
97
+ <!-- WTSA-16 – Resolution 1 -->
98
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:meeting/@acronym"/>
99
+ <xsl:text> – </xsl:text>
100
+ <xsl:value-of select="$doctypeTitle"/>
101
+ <xsl:text> </xsl:text>
102
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:docnumber"/>
103
+ </xsl:when>
104
+ <xsl:when test="$doctype = 'recommendation-supplement'">
105
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type = 'ITU-Supplement-Short']"/>
106
+ <xsl:text> </xsl:text>
107
+ <xsl:value-of select="$docdate"/>
108
+ </xsl:when>
109
+ <xsl:otherwise>
110
+ <xsl:value-of select="concat($footerprefix, $docname, ' ', $docdate)"/>
111
+ </xsl:otherwise>
112
+ </xsl:choose>
91
113
  </xsl:variable>
92
114
 
93
115
  <xsl:variable name="isAmendment" select="normalize-space(/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:amendment[@language = $lang])"/>
@@ -96,6 +118,9 @@
96
118
  <xsl:template match="/">
97
119
  <xsl:call-template name="namespaceCheck"/>
98
120
  <fo:root font-family="Times New Roman, STIX Two Math" font-size="12pt" xml:lang="{$lang}">
121
+ <xsl:if test="$doctype = 'resolution'">
122
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
123
+ </xsl:if>
99
124
  <fo:layout-master-set>
100
125
 
101
126
 
@@ -163,7 +188,9 @@
163
188
  </fo:page-sequence-master>
164
189
  </fo:layout-master-set>
165
190
 
166
- <xsl:call-template name="addPDFUAmeta"/>
191
+ <fo:declarations>
192
+ <xsl:call-template name="addPDFUAmeta"/>
193
+ </fo:declarations>
167
194
 
168
195
  <xsl:call-template name="addBookmarks">
169
196
  <xsl:with-param name="contents" select="$contents"/>
@@ -295,17 +322,28 @@
295
322
 
296
323
  <!-- cover page -->
297
324
  <fo:page-sequence master-reference="cover-page">
325
+ <xsl:if test="$doctype = 'resolution'">
326
+ <xsl:attribute name="force-page-count">no-force</xsl:attribute>
327
+ </xsl:if>
298
328
  <fo:flow flow-name="xsl-region-body">
299
329
 
300
- <fo:block-container absolute-position="fixed" left="148mm" top="265mm">
301
- <fo:block>
302
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Logo))}" width="42.6mm" content-height="17.7mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
330
+ <fo:block-container absolute-position="fixed" top="265mm">
331
+ <fo:block text-align="right" margin-right="19mm">
332
+ <xsl:choose>
333
+ <xsl:when test="$doctype = 'resolution'">
334
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Logo_resolution))}" content-height="21mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo"/>
335
+ </xsl:when>
336
+ <xsl:otherwise>
337
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Logo))}" content-height="17.7mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo"/>
338
+ </xsl:otherwise>
339
+ </xsl:choose>
340
+
303
341
  </fo:block>
304
342
  </fo:block-container>
305
343
 
306
- <fo:block-container absolute-position="fixed" left="-7mm" top="0">
344
+ <fo:block-container absolute-position="fixed" left="-7mm" top="0" font-size="0">
307
345
  <fo:block>
308
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Fond-Rec))}" width="43.6mm" content-height="299.2mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
346
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Fond-Rec))}" width="43.6mm" content-height="299.2mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image Cover Page"/>
309
347
  </fo:block>
310
348
  </fo:block-container>
311
349
  <fo:block-container font-family="Arial">
@@ -341,13 +379,35 @@
341
379
  <fo:block font-size="30pt" font-weight="bold" text-align="right" margin-top="12pt" padding="0mm">
342
380
  <xsl:choose>
343
381
  <xsl:when test="$doctype = 'technical-report' or $doctype = 'technical-paper'">
344
- <xsl:value-of select="$doctypeCapitalizedTitle"/>
382
+ <xsl:value-of select="$doctypeTitle"/>
345
383
  </xsl:when>
346
384
  <xsl:when test="$doctype = 'implementers-guide'">
347
385
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type='ITU-Recommendation']"/>
348
386
  <xsl:text> </xsl:text>
349
387
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[@language = $lang]"/>
350
388
  </xsl:when>
389
+ <xsl:when test="$doctype = 'resolution'"/>
390
+ <xsl:when test="$doctype = 'recommendation-supplement'">
391
+ <!-- Series L -->
392
+ <xsl:variable name="title-series">
393
+ <xsl:call-template name="getLocalizedString">
394
+ <xsl:with-param name="key">series</xsl:with-param>
395
+ </xsl:call-template>
396
+ </xsl:variable>
397
+ <xsl:call-template name="capitalize">
398
+ <xsl:with-param name="str" select="$title-series"/>
399
+ </xsl:call-template>
400
+ <xsl:text> </xsl:text>
401
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type='main']/itu:title[@type='abbrev']"/>
402
+ <!-- Ex. Supplement 37 -->
403
+ <fo:block font-size="18pt">
404
+ <xsl:call-template name="getLocalizedString">
405
+ <xsl:with-param name="key">doctype_dict.recommendation-supplement</xsl:with-param>
406
+ </xsl:call-template>
407
+ <xsl:text> </xsl:text>
408
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docnumber"/>
409
+ </fo:block>
410
+ </xsl:when>
351
411
  <xsl:otherwise>
352
412
  <xsl:value-of select="substring-after(/itu:itu-standard/itu:bibdata/itu:docidentifier[@type = 'ITU'], ' ')"/>
353
413
  </xsl:otherwise>
@@ -415,24 +475,77 @@
415
475
  </fo:table-cell>
416
476
  <fo:table-cell font-size="16pt" number-columns-spanned="3" border-bottom="0.5mm solid black" padding-right="2mm" display-align="after">
417
477
  <fo:block padding-bottom="7mm">
478
+ <xsl:if test="$doctype = 'resolution'">
479
+ <fo:block><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:meeting"/></fo:block>
480
+ <fo:block>
481
+ <xsl:variable name="meeting-place" select="/itu:itu-standard/itu:bibdata/itu:ext/itu:meeting-place"/>
482
+ <xsl:variable name="meeting-date_from" select="/itu:itu-standard/itu:bibdata/itu:ext/itu:meeting-date/itu:from"/>
483
+ <xsl:variable name="meeting-date_from_year" select="substring($meeting-date_from, 1, 4)"/>
484
+ <xsl:variable name="meeting-date_to" select="/itu:itu-standard/itu:bibdata/itu:ext/itu:meeting-date/itu:to"/>
485
+ <xsl:variable name="meeting-date_to_year" select="substring($meeting-date_to, 1, 4)"/>
486
+
487
+ <xsl:variable name="date_format">
488
+ <xsl:choose>
489
+ <xsl:when test="$meeting-date_from_year = $meeting-date_to_year">ddMM</xsl:when>
490
+ <xsl:otherwise>ddMMyyyy</xsl:otherwise>
491
+ </xsl:choose>
492
+ </xsl:variable>
493
+ <xsl:variable name="meeting-date_from_str">
494
+ <xsl:call-template name="convertDateLocalized">
495
+ <xsl:with-param name="date" select="$meeting-date_from"/>
496
+ <xsl:with-param name="format" select="$date_format"/>
497
+ </xsl:call-template>
498
+ </xsl:variable>
499
+
500
+ <xsl:variable name="meeting-date_to_str">
501
+ <xsl:call-template name="convertDateLocalized">
502
+ <xsl:with-param name="date" select="$meeting-date_to"/>
503
+ <xsl:with-param name="format" select="'ddMMyyyy'"/>
504
+ </xsl:call-template>
505
+ </xsl:variable>
506
+
507
+ <xsl:value-of select="$meeting-place"/>
508
+ <xsl:if test="$meeting-place != '' and (normalize-space($meeting-date_from_str) != '' or normalize-space($meeting-date_to_str != ''))">
509
+ <xsl:text>, </xsl:text>
510
+ <xsl:value-of select="$meeting-date_from_str"/>
511
+ <xsl:if test="normalize-space($meeting-date_from_str) != '' and normalize-space($meeting-date_to_str) != ''">
512
+ <xsl:text> – </xsl:text>
513
+ </xsl:if>
514
+ <xsl:value-of select="$meeting-date_to_str"/>
515
+ </xsl:if>
516
+ </fo:block>
517
+ </xsl:if>
418
518
  <fo:block text-transform="uppercase">
419
- <xsl:if test="normalize-space(/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']) != ''">
519
+ <xsl:variable name="series_title" select="normalize-space(/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']/itu:title[@type = 'full'])"/>
520
+ <xsl:if test="$series_title != ''">
420
521
  <xsl:variable name="title">
421
- <xsl:text>Series </xsl:text>
422
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']"/>
522
+ <xsl:if test="$doctype != 'resolution'">
523
+ <!-- <xsl:text>Series </xsl:text> -->
524
+ <xsl:call-template name="getLocalizedString">
525
+ <xsl:with-param name="key">series</xsl:with-param>
526
+ </xsl:call-template>
527
+ <xsl:text> </xsl:text>
528
+ </xsl:if>
529
+ <xsl:value-of select="$series_title"/>
423
530
  </xsl:variable>
424
531
  <xsl:value-of select="$title"/>
425
532
  </xsl:if>
426
533
  </fo:block>
427
- <xsl:if test="/itu:itu-standard/itu:bibdata/itu:series">
428
- <fo:block margin-top="6pt">
429
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'secondary']"/>
430
- <xsl:if test="normalize-space(/itu:itu-standard/itu:bibdata/itu:series[@type = 'tertiary']) != ''">
431
- <xsl:text> — </xsl:text>
432
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'tertiary']"/>
534
+ <xsl:choose>
535
+ <xsl:when test="$doctype = 'recommendation-supplement'"/>
536
+ <xsl:otherwise>
537
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:series">
538
+ <fo:block margin-top="6pt">
539
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'secondary']"/>
540
+ <xsl:if test="normalize-space(/itu:itu-standard/itu:bibdata/itu:series[@type = 'tertiary']) != ''">
541
+ <xsl:text> — </xsl:text>
542
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'tertiary']"/>
543
+ </xsl:if>
544
+ </fo:block>
433
545
  </xsl:if>
434
- </fo:block>
435
- </xsl:if>
546
+ </xsl:otherwise>
547
+ </xsl:choose>
548
+
436
549
  </fo:block>
437
550
  </fo:table-cell>
438
551
  </fo:table-row>
@@ -454,6 +567,11 @@
454
567
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype[@language = $lang]"/>
455
568
  <xsl:text> for </xsl:text>
456
569
  </xsl:if>
570
+ <xsl:if test="$doctype = 'resolution'">
571
+ <!-- Resolution 1 -->
572
+ <xsl:value-of select="$doctypeTitle"/><xsl:text> </xsl:text><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:docnumber"/>
573
+ <xsl:text> – </xsl:text>
574
+ </xsl:if>
457
575
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
458
576
  </fo:block>
459
577
  <xsl:for-each select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'annex' and @language = 'en']">
@@ -507,6 +625,9 @@
507
625
  <fo:block font-size="16pt" margin-top="3pt">
508
626
  <xsl:if test="/itu:itu-standard/itu:boilerplate/itu:legal-statement/itu:clause[@id='draft-warning']">
509
627
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
628
+ <xsl:if test="$doctype = 'recommendation-supplement'">
629
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
630
+ </xsl:if>
510
631
  </xsl:if>
511
632
 
512
633
  <xsl:choose>
@@ -517,14 +638,19 @@
517
638
  </xsl:call-template>
518
639
  <xsl:text> </xsl:text>
519
640
  </xsl:if>
520
- <xsl:value-of select="$doctypeCapitalizedTitle"/>
641
+ <xsl:value-of select="$doctypeTitle"/>
521
642
  <xsl:text>  </xsl:text>
522
643
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type='ITU']"/>
523
644
  </xsl:when>
524
- <xsl:when test="$doctype = 'implementers-guide'">
645
+ <xsl:when test="$doctype = 'implementers-guide'"/>
646
+ <xsl:when test="$doctype = 'resolution'"/>
647
+ <xsl:when test="$doctype = 'recommendation-supplement'">
648
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:status/itu:stage = 'draft'">Draft </xsl:if>
649
+ <xsl:text>ITU-</xsl:text><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:editorialgroup/itu:bureau"/><xsl:text> </xsl:text>
650
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type = 'ITU-Supplement']"/>
525
651
  </xsl:when>
526
652
  <xsl:otherwise>
527
- <xsl:value-of select="$doctypeCapitalizedTitle"/>
653
+ <xsl:value-of select="$doctypeTitle"/>
528
654
  <xsl:text>  </xsl:text>
529
655
  <xsl:if test="/itu:itu-standard/itu:bibdata/itu:contributor/itu:organization/itu:abbreviation">
530
656
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:contributor/itu:organization/itu:abbreviation"/>
@@ -557,39 +683,53 @@
557
683
  <fo:page-sequence master-reference="document-preface" initial-page-number="1" format="i" force-page-count="no-force">
558
684
  <xsl:call-template name="insertHeaderFooter"/>
559
685
  <fo:flow flow-name="xsl-region-body">
560
- <fo:block-container font-size="14pt" font-weight="bold">
561
- <fo:block>
562
- <xsl:value-of select="$doctypeCapitalizedTitle"/>
563
- <xsl:text> </xsl:text>
564
- <xsl:value-of select="$docname"/>
565
- </fo:block>
566
- <fo:block text-align="center" margin-top="15pt" margin-bottom="15pt">
567
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
568
- </fo:block>
569
- </fo:block-container>
570
- <!-- Summary, History ... -->
571
- <xsl:call-template name="processPrefaceSectionsDefault"/>
572
-
573
- <!-- Keywords -->
574
- <xsl:if test="/itu:itu-standard/itu:bibdata/itu:keyword">
575
- <fo:block font-size="12pt">
576
- <xsl:value-of select="$linebreak"/>
577
- <xsl:value-of select="$linebreak"/>
578
- </fo:block>
579
- <fo:block font-weight="bold" margin-top="18pt" margin-bottom="18pt">
580
- <xsl:variable name="title-keywords">
581
- <xsl:call-template name="getTitle">
582
- <xsl:with-param name="name" select="'title-keywords'"/>
583
- </xsl:call-template>
584
- </xsl:variable>
585
- <xsl:value-of select="$title-keywords"/>
586
- </fo:block>
587
- <fo:block>
588
- <xsl:call-template name="insertKeywords"/>
589
- </fo:block>
686
+
687
+ <xsl:if test="/itu:itu-standard/itu:preface/* or /itu:itu-standard/itu:bibdata/itu:keyword">
688
+ <fo:block-container font-size="14pt" font-weight="bold">
689
+ <xsl:choose>
690
+ <xsl:when test="$doctype = 'implementers-guide'"/>
691
+ <xsl:when test="$doctype = 'recommendation-supplement'">
692
+ <fo:block>
693
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type = 'ITU-Supplement-Internal']"/>
694
+ </fo:block>
695
+ </xsl:when>
696
+ <xsl:otherwise>
697
+ <fo:block>
698
+ <xsl:value-of select="$doctypeTitle"/>
699
+ <xsl:text> </xsl:text>
700
+ <xsl:value-of select="$docname"/>
701
+ </fo:block>
702
+ </xsl:otherwise>
703
+ </xsl:choose>
704
+ <fo:block text-align="center" margin-top="15pt" margin-bottom="15pt">
705
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
706
+ </fo:block>
707
+ </fo:block-container>
708
+ <!-- Summary, History ... -->
709
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
710
+
711
+ <!-- Keywords -->
712
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:keyword">
713
+ <fo:block font-size="12pt">
714
+ <xsl:value-of select="$linebreak"/>
715
+ <xsl:value-of select="$linebreak"/>
716
+ </fo:block>
717
+ <fo:block font-weight="bold" margin-top="18pt" margin-bottom="18pt">
718
+ <xsl:variable name="title-keywords">
719
+ <xsl:call-template name="getTitle">
720
+ <xsl:with-param name="name" select="'title-keywords'"/>
721
+ </xsl:call-template>
722
+ </xsl:variable>
723
+ <xsl:value-of select="$title-keywords"/>
724
+ </fo:block>
725
+ <fo:block>
726
+ <xsl:call-template name="insertKeywords"/>
727
+ </fo:block>
728
+ </xsl:if>
729
+
730
+ <fo:block break-after="page"/>
590
731
  </xsl:if>
591
732
 
592
- <fo:block break-after="page"/>
593
733
 
594
734
  <!-- FOREWORD -->
595
735
  <fo:block font-size="11pt" text-align="justify">
@@ -605,21 +745,19 @@
605
745
  <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
606
746
  </xsl:if>
607
747
 
608
- <xsl:if test="xalan:nodeset($contents)//item[@display = 'true']">
748
+ <xsl:if test="xalan:nodeset($contents)//item[@display = 'true'] and $doctype != 'resolution'">
609
749
  <fo:block break-after="page"/>
610
750
  <fo:block-container>
611
- <xsl:variable name="title-toc">
612
- <xsl:call-template name="getTitle">
613
- <xsl:with-param name="name" select="'title-toc'"/>
751
+ <fo:block margin-top="6pt" text-align="center" font-weight="bold">
752
+ <xsl:call-template name="getLocalizedString">
753
+ <xsl:with-param name="key">table_of_contents</xsl:with-param>
614
754
  </xsl:call-template>
615
- </xsl:variable>
616
- <xsl:variable name="title-page">
617
- <xsl:call-template name="getTitle">
618
- <xsl:with-param name="name" select="'title-page'"/>
755
+ </fo:block>
756
+ <fo:block margin-top="6pt" text-align="right" font-weight="bold">
757
+ <xsl:call-template name="getLocalizedString">
758
+ <xsl:with-param name="key">Page.sg</xsl:with-param>
619
759
  </xsl:call-template>
620
- </xsl:variable>
621
- <fo:block margin-top="6pt" text-align="center" font-weight="bold"><xsl:value-of select="$title-toc"/></fo:block>
622
- <fo:block margin-top="6pt" text-align="right" font-weight="bold"><xsl:value-of select="$title-page"/></fo:block>
760
+ </fo:block>
623
761
 
624
762
  <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
625
763
  <fo:block>
@@ -686,7 +824,11 @@
686
824
  <fo:block space-before="36pt" text-align="center" font-weight="bold" keep-with-next="always">
687
825
  <xsl:value-of select="$title-list-tables"/>
688
826
  </fo:block>
689
- <fo:block margin-top="6pt" text-align="right" font-weight="bold" keep-with-next="always"><xsl:value-of select="$title-page"/></fo:block>
827
+ <fo:block margin-top="6pt" text-align="right" font-weight="bold" keep-with-next="always">
828
+ <xsl:call-template name="getLocalizedString">
829
+ <xsl:with-param name="key">Page.sg</xsl:with-param>
830
+ </xsl:call-template>
831
+ </fo:block>
690
832
 
691
833
  <fo:block-container>
692
834
  <xsl:for-each select="//itu:table[@id and itu:name]">
@@ -714,7 +856,11 @@
714
856
  <fo:block space-before="36pt" text-align="center" font-weight="bold" keep-with-next="always">
715
857
  <xsl:value-of select="$title-list-figures"/>
716
858
  </fo:block>
717
- <fo:block margin-top="6pt" text-align="right" font-weight="bold" keep-with-next="always"><xsl:value-of select="$title-page"/></fo:block>
859
+ <fo:block margin-top="6pt" text-align="right" font-weight="bold" keep-with-next="always">
860
+ <xsl:call-template name="getLocalizedString">
861
+ <xsl:with-param name="key">Page.sg</xsl:with-param>
862
+ </xsl:call-template>
863
+ </fo:block>
718
864
 
719
865
  <fo:block-container>
720
866
  <xsl:for-each select="//itu:figure[@id and itu:name]">
@@ -750,27 +896,51 @@
750
896
 
751
897
  <fo:flow flow-name="xsl-region-body">
752
898
 
753
- <fo:block-container font-size="14pt" font-weight="bold">
754
- <fo:block>
755
- <xsl:value-of select="$doctypeCapitalizedTitle"/>
756
- <xsl:text> </xsl:text>
757
- <xsl:value-of select="$docname"/>
758
- </fo:block>
759
- <fo:block text-align="center" margin-top="15pt" margin-bottom="15pt">
760
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
899
+
900
+ <fo:block-container font-size="14pt">
901
+ <xsl:choose>
902
+ <xsl:when test="$doctype = 'resolution'">
903
+ <fo:block text-align="center">
904
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type='resolution' and @language = $lang]"/>
905
+ </fo:block>
906
+ </xsl:when>
907
+ <xsl:when test="$doctype = 'implementers-guide'"/>
908
+ <xsl:when test="$doctype = 'recommendation-supplement'">
909
+ <fo:block font-weight="bold">
910
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:docidentifier[@type = 'ITU-Supplement-Internal']"/>
911
+ </fo:block>
912
+ </xsl:when>
913
+ <xsl:otherwise>
914
+ <fo:block font-weight="bold">
915
+ <xsl:value-of select="$doctypeTitle"/>
916
+ <xsl:text> </xsl:text>
917
+ <xsl:value-of select="$docname"/>
918
+ </fo:block>
919
+ </xsl:otherwise>
920
+ </xsl:choose>
921
+ <fo:block font-weight="bold" text-align="center" margin-top="15pt" margin-bottom="15pt">
922
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = $lang]"/>
761
923
 
762
- <xsl:if test="/itu:itu-standard/itu:bibdata/itu:title[@type = 'subtitle' and @language = 'en']">
924
+ <xsl:variable name="subtitle" select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'subtitle' and @language = $lang]"/>
925
+ <xsl:if test="$subtitle != ''">
763
926
  <fo:block margin-top="18pt" font-weight="normal" font-style="italic">
764
- <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'subtitle' and @language = 'en']"/>
927
+ <xsl:value-of select="$subtitle"/>
765
928
  </fo:block>
766
929
  </xsl:if>
767
930
 
931
+ <xsl:variable name="resolution-placedate" select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'resolution-placedate' and @language = $lang]"/>
932
+ <xsl:if test="$doctype = 'resolution' and $resolution-placedate != ''">
933
+ <fo:block font-size="11pt" margin-top="6pt" font-weight="normal">
934
+ <fo:inline font-style="italic">
935
+ <xsl:text>(</xsl:text><xsl:value-of select="$resolution-placedate"/><xsl:text>)</xsl:text>
936
+ </fo:inline>
937
+ <xsl:apply-templates select="/itu:itu-standard/itu:bibdata/itu:note[@type = 'title-footnote']" mode="title_footnote"/>
938
+ </fo:block>
939
+ </xsl:if>
768
940
  </fo:block>
769
-
770
-
771
-
772
941
  </fo:block-container>
773
-
942
+
943
+
774
944
 
775
945
  <!-- Clause(s) -->
776
946
  <fo:block>
@@ -815,7 +985,10 @@
815
985
  </xsl:variable>
816
986
 
817
987
  <xsl:variable name="section">
818
- <xsl:call-template name="getSection"/>
988
+ <!-- <xsl:call-template name="getSection"/> -->
989
+ <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
990
+ <xsl:value-of select="."/>
991
+ </xsl:for-each>
819
992
  </xsl:variable>
820
993
 
821
994
  <xsl:variable name="type">
@@ -833,7 +1006,8 @@
833
1006
  <xsl:variable name="skip">
834
1007
  <xsl:choose>
835
1008
  <xsl:when test="ancestor-or-self::itu:bibitem">true</xsl:when>
836
- <xsl:when test="ancestor-or-self::itu:term">true</xsl:when>
1009
+ <xsl:when test="ancestor-or-self::itu:term">true</xsl:when>
1010
+ <xsl:when test="@inline-header = 'true' and not(*[local-name() = 'title']/*[local-name() = 'tab'])">true</xsl:when>
837
1011
  <xsl:otherwise>false</xsl:otherwise>
838
1012
  </xsl:choose>
839
1013
  </xsl:variable>
@@ -959,9 +1133,28 @@
959
1133
  <!-- PARAGRAPHS -->
960
1134
  <!-- ============================= -->
961
1135
  <xsl:template match="itu:p | itu:sections/itu:p">
962
- <fo:block margin-top="6pt">
1136
+ <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
1137
+ <xsl:variable name="element-name">
1138
+ <xsl:choose>
1139
+ <xsl:when test="../@inline-header = 'true' and $previous-element = 'title'">fo:inline</xsl:when> <!-- first paragraph after inline title -->
1140
+ <xsl:otherwise>fo:block</xsl:otherwise>
1141
+ </xsl:choose>
1142
+ </xsl:variable>
1143
+ <xsl:element name="{$element-name}">
1144
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1145
+ <xsl:if test="@keep-with-next = 'true'">
1146
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1147
+ </xsl:if>
1148
+ <xsl:if test="@class='supertitle'">
1149
+ <xsl:attribute name="space-before">36pt</xsl:attribute>
1150
+ <xsl:attribute name="margin-bottom">24pt</xsl:attribute>
1151
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
1152
+ <xsl:attribute name="font-size">14pt</xsl:attribute>
1153
+
1154
+ </xsl:if>
963
1155
  <xsl:attribute name="text-align">
964
1156
  <xsl:choose>
1157
+ <xsl:when test="@class='supertitle'">center</xsl:when>
965
1158
  <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
966
1159
  <xsl:when test="ancestor::*[1][local-name() = 'td']/@align">
967
1160
  <xsl:value-of select="ancestor::*[1][local-name() = 'td']/@align"/>
@@ -972,8 +1165,11 @@
972
1165
  <xsl:otherwise>justify</xsl:otherwise>
973
1166
  </xsl:choose>
974
1167
  </xsl:attribute>
975
- <xsl:apply-templates/>
976
- </fo:block>
1168
+ <xsl:apply-templates/>
1169
+ </xsl:element>
1170
+ <xsl:if test="$element-name = 'fo:inline'">
1171
+ <fo:block><xsl:value-of select="$linebreak"/></fo:block>
1172
+ </xsl:if>
977
1173
  </xsl:template>
978
1174
 
979
1175
  <!-- <xsl:template match="itu:note">
@@ -1004,31 +1200,44 @@
1004
1200
  <!-- Example: [ITU-T A.23] ITU-T A.23, Recommendation ITU-T A.23, Annex A (2014), Guide for ITU-T and ISO/IEC JTC 1 cooperation. -->
1005
1201
  <xsl:template match="itu:bibitem">
1006
1202
  <fo:block id="{@id}" margin-top="6pt" margin-left="14mm" text-indent="-14mm">
1007
-
1008
- <xsl:choose>
1009
- <xsl:when test="itu:docidentifier[@type = 'metanorma']">
1010
- <xsl:value-of select="itu:docidentifier[@type = 'metanorma']"/>
1011
- <xsl:text> </xsl:text>
1012
- <xsl:if test="itu:docidentifier[not(@type) or not(@type = 'metanorma')]">
1013
- <xsl:value-of select="itu:docidentifier[not(@type) or not(@type = 'metanorma')]"/>
1014
- <xsl:text>, </xsl:text>
1015
- </xsl:if>
1016
- </xsl:when>
1017
- <xsl:otherwise>
1018
- <fo:inline padding-right="5mm">
1019
- <xsl:text>[</xsl:text>
1020
- <xsl:value-of select="itu:docidentifier"/>
1021
- <xsl:text>] </xsl:text>
1022
- </fo:inline>
1023
- <xsl:value-of select="itu:docidentifier"/>
1024
- <xsl:if test="itu:title">
1025
- <xsl:text>, </xsl:text>
1026
- </xsl:if>
1027
- </xsl:otherwise>
1028
- </xsl:choose>
1203
+ <xsl:if test="$doctype = 'implementers-guide'">
1204
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1205
+ <xsl:attribute name="text-indent">0mm</xsl:attribute>
1206
+ </xsl:if>
1207
+
1208
+ <xsl:variable name="bibitem_label">
1209
+ <xsl:choose>
1210
+ <xsl:when test="itu:docidentifier[@type = 'metanorma']">
1211
+ <xsl:value-of select="itu:docidentifier[@type = 'metanorma']"/>
1212
+ </xsl:when>
1213
+ <xsl:otherwise>
1214
+ <fo:inline padding-right="5mm">
1215
+ <xsl:text>[</xsl:text>
1216
+ <xsl:value-of select="itu:docidentifier"/>
1217
+ <xsl:text>] </xsl:text>
1218
+ </fo:inline>
1219
+ </xsl:otherwise>
1220
+ </xsl:choose>
1221
+ </xsl:variable>
1029
1222
 
1030
- <xsl:if test="itu:title">
1031
- <fo:inline font-style="italic">
1223
+ <xsl:variable name="bibitem_body">
1224
+ <xsl:text> </xsl:text>
1225
+ <xsl:choose>
1226
+ <xsl:when test="itu:docidentifier[@type = 'metanorma']">
1227
+ <xsl:if test="itu:docidentifier[not(@type) or not(@type = 'metanorma')]">
1228
+ <xsl:value-of select="itu:docidentifier[not(@type) or not(@type = 'metanorma')]"/>
1229
+ <xsl:text>, </xsl:text>
1230
+ </xsl:if>
1231
+ </xsl:when>
1232
+ <xsl:otherwise>
1233
+ <xsl:value-of select="itu:docidentifier"/>
1234
+ <xsl:if test="itu:title">
1235
+ <xsl:text>, </xsl:text>
1236
+ </xsl:if>
1237
+ </xsl:otherwise>
1238
+ </xsl:choose>
1239
+ <xsl:if test="itu:title">
1240
+ <fo:inline font-style="italic">
1032
1241
  <xsl:choose>
1033
1242
  <xsl:when test="itu:title[@type = 'main' and @language = 'en']">
1034
1243
  <xsl:value-of select="itu:title[@type = 'main' and @language = 'en']"/>
@@ -1037,11 +1246,32 @@
1037
1246
  <xsl:value-of select="itu:title"/>
1038
1247
  </xsl:otherwise>
1039
1248
  </xsl:choose>
1040
- </fo:inline>
1249
+ </fo:inline>
1041
1250
  </xsl:if>
1042
1251
  <xsl:if test="itu:formattedref and not(itu:docidentifier[@type = 'metanorma'])">, </xsl:if>
1043
1252
  <xsl:apply-templates select="itu:formattedref"/>
1044
- </fo:block>
1253
+ </xsl:variable>
1254
+
1255
+ <xsl:choose>
1256
+ <xsl:when test="$doctype = 'implementers-guide'">
1257
+ <fo:table width="100%" table-layout="fixed">
1258
+ <fo:table-column column-width="20%"/>
1259
+ <fo:table-column column-width="80%"/>
1260
+ <fo:table-body>
1261
+ <fo:table-row>
1262
+ <fo:table-cell><fo:block><xsl:copy-of select="$bibitem_label"/></fo:block></fo:table-cell>
1263
+ <fo:table-cell><fo:block><xsl:copy-of select="$bibitem_body"/></fo:block></fo:table-cell>
1264
+ </fo:table-row>
1265
+ </fo:table-body>
1266
+ </fo:table>
1267
+ </xsl:when>
1268
+ <xsl:otherwise>
1269
+ <xsl:copy-of select="$bibitem_label"/>
1270
+ <xsl:copy-of select="$bibitem_body"/>
1271
+ </xsl:otherwise>
1272
+ </xsl:choose>
1273
+
1274
+ </fo:block>
1045
1275
  </xsl:template>
1046
1276
  <xsl:template match="itu:bibitem/itu:docidentifier"/>
1047
1277
 
@@ -1075,24 +1305,31 @@
1075
1305
  <xsl:template match="itu:annex/itu:title">
1076
1306
  <fo:block font-size="14pt" font-weight="bold" text-align="center" margin-bottom="18pt">
1077
1307
  <fo:block><xsl:apply-templates/></fo:block>
1078
- <fo:block font-size="12pt" font-weight="normal" margin-top="6pt">
1079
- <xsl:choose>
1080
- <xsl:when test="parent::*[@obligation = 'informative']">
1081
- <xsl:text>(This appendix does not form an integral part of this Recommendation.)</xsl:text>
1082
- </xsl:when>
1083
- <xsl:otherwise>
1084
- <xsl:text>(This annex forms an integral part of this Recommendation.)</xsl:text>
1085
- </xsl:otherwise>
1086
- </xsl:choose>
1087
- </fo:block>
1308
+ <xsl:if test="$doctype != 'resolution'">
1309
+ <fo:block font-size="12pt" font-weight="normal" margin-top="6pt">
1310
+ <xsl:choose>
1311
+ <xsl:when test="parent::*[@obligation = 'informative']">
1312
+ <xsl:text>(This appendix does not form an integral part of this Recommendation.)</xsl:text>
1313
+ </xsl:when>
1314
+ <xsl:otherwise>
1315
+ <xsl:text>(This annex forms an integral part of this Recommendation.)</xsl:text>
1316
+ </xsl:otherwise>
1317
+ </xsl:choose>
1318
+ </fo:block>
1319
+ </xsl:if>
1088
1320
  </fo:block>
1089
1321
  </xsl:template>
1090
1322
 
1091
1323
  <!-- Bibliography -->
1092
1324
  <xsl:template match="itu:references[not(@normative='true')]/itu:title">
1093
1325
  <fo:block font-size="14pt" font-weight="bold" text-align="center" margin-bottom="18pt">
1094
- <xsl:apply-templates/>
1095
- </fo:block>
1326
+ <xsl:if test="$doctype = 'implementers-guide'">
1327
+ <xsl:attribute name="text-align">left</xsl:attribute>
1328
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
1329
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1330
+ </xsl:if>
1331
+ <xsl:apply-templates/>
1332
+ </fo:block>
1096
1333
  </xsl:template>
1097
1334
 
1098
1335
  <xsl:template match="itu:title">
@@ -1103,12 +1340,21 @@
1103
1340
 
1104
1341
  <xsl:variable name="font-size">
1105
1342
  <xsl:choose>
1343
+ <xsl:when test="$level = 1 and $doctype = 'resolution'">14pt</xsl:when>
1344
+ <xsl:when test="$level &gt;= 2 and $doctype = 'resolution' and ../@inline-header = 'true'">11pt</xsl:when>
1106
1345
  <xsl:when test="$level = 2">12pt</xsl:when>
1107
1346
  <xsl:when test="$level &gt;= 3">12pt</xsl:when>
1108
1347
  <xsl:otherwise>12pt</xsl:otherwise>
1109
1348
  </xsl:choose>
1110
1349
  </xsl:variable>
1111
1350
 
1351
+ <xsl:variable name="element-name">
1352
+ <xsl:choose>
1353
+ <xsl:when test="../@inline-header = 'true'">fo:inline</xsl:when>
1354
+ <xsl:otherwise>fo:block</xsl:otherwise>
1355
+ </xsl:choose>
1356
+ </xsl:variable>
1357
+
1112
1358
  <xsl:variable name="space-before">
1113
1359
  <xsl:choose>
1114
1360
  <xsl:when test="$level = '' or $level = 1">18pt</xsl:when>
@@ -1119,15 +1365,42 @@
1119
1365
 
1120
1366
  <xsl:variable name="space-after">
1121
1367
  <xsl:choose>
1368
+ <xsl:when test="$level = 1 and $doctype = 'resolution'">24pt</xsl:when>
1122
1369
  <xsl:when test="$level = 2">6pt</xsl:when>
1123
1370
  <xsl:otherwise>6pt</xsl:otherwise>
1124
1371
  </xsl:choose>
1125
1372
  </xsl:variable>
1126
1373
 
1127
- <fo:block font-size="{$font-size}" font-weight="bold" space-before="{$space-before}" space-after="{$space-after}" keep-with-next="always">
1374
+ <xsl:variable name="text-align">
1375
+ <xsl:choose>
1376
+ <xsl:when test="$level = 1 and $doctype = 'resolution'">center</xsl:when>
1377
+ <xsl:otherwise>left</xsl:otherwise>
1378
+ </xsl:choose>
1379
+ </xsl:variable>
1380
+
1381
+ <xsl:element name="{$element-name}">
1382
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
1383
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1384
+ <xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
1385
+ <xsl:attribute name="space-before"><xsl:value-of select="$space-before"/></xsl:attribute>
1386
+ <xsl:attribute name="space-after"><xsl:value-of select="$space-after"/></xsl:attribute>
1387
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1388
+ <xsl:if test="$element-name = 'fo:inline'">
1389
+ <xsl:attribute name="padding-right">
1390
+ <xsl:choose>
1391
+ <xsl:when test="$level = 2">9mm</xsl:when>
1392
+ <xsl:when test="$level = 3">6.5mm</xsl:when>
1393
+ <xsl:otherwise>4mm</xsl:otherwise>
1394
+ </xsl:choose>
1395
+ </xsl:attribute>
1396
+ </xsl:if>
1128
1397
  <xsl:apply-templates/>
1129
- </fo:block>
1130
-
1398
+ </xsl:element>
1399
+
1400
+ <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::itu:p)">
1401
+ <fo:block margin-bottom="12pt"><xsl:value-of select="$linebreak"/></fo:block>
1402
+ </xsl:if>
1403
+
1131
1404
  </xsl:template>
1132
1405
 
1133
1406
 
@@ -1235,6 +1508,27 @@
1235
1508
  </xsl:choose>
1236
1509
  </xsl:template>
1237
1510
 
1511
+ <!-- footnotes for title -->
1512
+ <xsl:template match="itu:bibdata/itu:note[@type = 'title-footnote']" mode="title_footnote">
1513
+ <xsl:variable name="number" select="position()"/>
1514
+ <fo:footnote>
1515
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
1516
+ <fo:basic-link internal-destination="title_footnote_{$number}" fox:alt-text="titlefootnote {$number}">
1517
+ <xsl:value-of select="$number"/>
1518
+ </fo:basic-link>
1519
+ <xsl:if test="position() != last()">,</xsl:if><!-- <fo:inline baseline-shift="20%">,</fo:inline> -->
1520
+ </fo:inline>
1521
+ <fo:footnote-body>
1522
+ <fo:block font-size="11pt" margin-bottom="12pt" text-align="justify">
1523
+ <fo:inline id="title_footnote_{$number}" font-size="85%" padding-right="2mm" keep-with-next.within-line="always" baseline-shift="30%">
1524
+ <xsl:value-of select="$number"/>
1525
+ </fo:inline>
1526
+ <xsl:apply-templates/>
1527
+ </fo:block>
1528
+ </fo:footnote-body>
1529
+ </fo:footnote>
1530
+ </xsl:template>
1531
+
1238
1532
  <xsl:variable name="p_fn">
1239
1533
  <xsl:for-each select="//itu:p/itu:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]">
1240
1534
  <!-- copy unique fn -->
@@ -1252,19 +1546,21 @@
1252
1546
  <!-- <xsl:number level="any" count="itu:p/itu:fn"/> -->
1253
1547
  <xsl:value-of select="count(xalan:nodeset($p_fn)//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
1254
1548
  </xsl:variable>
1549
+ <xsl:variable name="count_title_footnotes" select="count(/itu:itu-standard/itu:bibdata/itu:note[@type='title-footnote'])"/>
1550
+ <xsl:variable name="count_bibitem_notes" select="count(//itu:bibitem/itu:note)"/>
1551
+ <xsl:variable name="current_fn_number" select="$number + $count_title_footnotes + $count_bibitem_notes"/>
1255
1552
  <xsl:choose>
1256
1553
  <xsl:when test="xalan:nodeset($p_fn)//fn[@gen_id = $gen_id]">
1257
1554
  <fo:footnote>
1258
1555
  <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
1259
1556
  <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
1260
- <!-- <xsl:value-of select="@reference"/> -->
1261
- <xsl:value-of select="$number + count(//itu:bibitem/itu:note)"/>
1557
+ <xsl:value-of select="$current_fn_number"/>
1262
1558
  </fo:basic-link>
1263
1559
  </fo:inline>
1264
1560
  <fo:footnote-body>
1265
- <fo:block font-size="11pt" margin-bottom="12pt">
1561
+ <fo:block font-size="11pt" margin-bottom="12pt" text-align="justify">
1266
1562
  <fo:inline id="footnote_{@reference}_{$number}" font-size="85%" padding-right="2mm" keep-with-next.within-line="always" baseline-shift="30%">
1267
- <xsl:value-of select="$number + count(//itu:bibitem/itu:note)"/>
1563
+ <xsl:value-of select="$current_fn_number"/>
1268
1564
  </fo:inline>
1269
1565
  <xsl:for-each select="itu:p">
1270
1566
  <xsl:apply-templates/>
@@ -1276,7 +1572,7 @@
1276
1572
  <xsl:otherwise>
1277
1573
  <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
1278
1574
  <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
1279
- <xsl:value-of select="$number + count(//itu:bibitem/itu:note)"/>
1575
+ <xsl:value-of select="$current_fn_number"/>
1280
1576
  </fo:basic-link>
1281
1577
  </fo:inline>
1282
1578
  </xsl:otherwise>
@@ -1288,6 +1584,7 @@
1288
1584
  <xsl:variable name="element-name">
1289
1585
  <xsl:choose>
1290
1586
  <xsl:when test="ancestor::itu:dd">fo:inline</xsl:when>
1587
+ <xsl:when test="ancestor::itu:title">fo:inline</xsl:when>
1291
1588
  <xsl:when test="normalize-space(ancestor::itu:p[1]//text()[not(parent::itu:tt)]) != ''">fo:inline</xsl:when>
1292
1589
  <xsl:otherwise>fo:block</xsl:otherwise>
1293
1590
  </xsl:choose>
@@ -1295,9 +1592,12 @@
1295
1592
  <xsl:element name="{$element-name}">
1296
1593
  <xsl:attribute name="font-family">Courier</xsl:attribute>
1297
1594
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1298
- <xsl:if test="local-name(..) != 'dt' and not(ancestor::itu:dd)">
1595
+ <xsl:if test="local-name(..) != 'dt' and not(ancestor::itu:dd) and not(ancestor::itu:title)">
1299
1596
  <xsl:attribute name="text-align">center</xsl:attribute>
1300
1597
  </xsl:if>
1598
+ <xsl:if test="ancestor::itu:title">
1599
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1600
+ </xsl:if>
1301
1601
  <xsl:apply-templates/>
1302
1602
  </xsl:element>
1303
1603
  </xsl:template>
@@ -1332,6 +1632,9 @@
1332
1632
  <xsl:apply-templates/>
1333
1633
  </fo:list-block>
1334
1634
  <xsl:apply-templates select="./itu:note" mode="process"/>
1635
+ <xsl:if test="../@inline-header='true'">
1636
+ <fo:block><xsl:value-of select="$linebreak"/></fo:block>
1637
+ </xsl:if>
1335
1638
  </xsl:template>
1336
1639
 
1337
1640
  <xsl:template match="itu:ul//itu:note | itu:ol//itu:note" priority="2"/>
@@ -1493,19 +1796,7 @@
1493
1796
  <fo:block><fo:page-number/></fo:block>
1494
1797
  </fo:table-cell>
1495
1798
  <fo:table-cell font-weight="bold" text-align="left" padding-bottom="8mm">
1496
- <fo:block>
1497
- <xsl:choose>
1498
- <xsl:when test="$doctype = 'technical-report' or $doctype = 'technical-paper'">
1499
- <xsl:value-of select="$footer-TR"/>
1500
- </xsl:when>
1501
- <xsl:when test="$doctype = 'implementers-guide'">
1502
- <xsl:value-of select="$footer-IG"/>
1503
- </xsl:when>
1504
- <xsl:otherwise>
1505
- <xsl:value-of select="concat($footerprefix, $docname, ' ', $docdate)"/>
1506
- </xsl:otherwise>
1507
- </xsl:choose>
1508
- </fo:block>
1799
+ <fo:block><xsl:value-of select="$footer-text"/></fo:block>
1509
1800
  </fo:table-cell>
1510
1801
  </fo:table-row>
1511
1802
  </fo:table-body>
@@ -1520,19 +1811,7 @@
1520
1811
  <fo:table-body>
1521
1812
  <fo:table-row>
1522
1813
  <fo:table-cell font-weight="bold" text-align="right" padding-bottom="8mm">
1523
- <fo:block>
1524
- <xsl:choose>
1525
- <xsl:when test="$doctype = 'technical-report' or $doctype = 'technical-paper'">
1526
- <xsl:value-of select="$footer-TR"/>
1527
- </xsl:when>
1528
- <xsl:when test="$doctype = 'implementers-guide'">
1529
- <xsl:value-of select="$footer-IG"/>
1530
- </xsl:when>
1531
- <xsl:otherwise>
1532
- <xsl:value-of select="concat($footerprefix, $docname, ' ', $docdate)"/>
1533
- </xsl:otherwise>
1534
- </xsl:choose>
1535
- </fo:block>
1814
+ <fo:block><xsl:value-of select="$footer-text"/></fo:block>
1536
1815
  </fo:table-cell>
1537
1816
  <fo:table-cell text-align="right" padding-bottom="8mm" padding-right="2mm">
1538
1817
  <fo:block><fo:page-number/></fo:block>
@@ -1553,6 +1832,10 @@
1553
1832
  <xsl:text>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</xsl:text>
1554
1833
  </xsl:variable>
1555
1834
 
1835
+ <xsl:variable name="Image-Logo_resolution">
1836
+ <xsl:text>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</xsl:text>
1837
+ </xsl:variable>
1838
+
1556
1839
  <!-- convert YYYY-MM-DD to (MM/YYYY) -->
1557
1840
  <xsl:template name="formatDate">
1558
1841
  <xsl:param name="date"/>
@@ -1853,6 +2136,7 @@
1853
2136
 
1854
2137
 
1855
2138
 
2139
+
1856
2140
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1857
2141
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1858
2142
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
@@ -1977,6 +2261,7 @@
1977
2261
 
1978
2262
 
1979
2263
 
2264
+
1980
2265
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
1981
2266
  <xsl:attribute name="margin-left">12mm</xsl:attribute>
1982
2267
  <xsl:attribute name="margin-right">12mm</xsl:attribute>
@@ -2118,203 +2403,242 @@
2118
2403
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2119
2404
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
2120
2405
  <xsl:call-template name="add-zero-spaces-java"/>
2121
- </xsl:template><xsl:template match="*[local-name()='table']">
2406
+ </xsl:template><xsl:template match="*[local-name()='table']" name="table">
2122
2407
 
2123
- <xsl:variable name="simple-table">
2124
- <xsl:call-template name="getSimpleTable"/>
2125
- </xsl:variable>
2408
+ <xsl:variable name="table">
2126
2409
 
2127
-
2128
- <fo:block space-before="18pt"> </fo:block>
2129
-
2130
-
2131
-
2132
-
2133
- <!-- <xsl:if test="$namespace = 'bipm'">
2134
- <fo:block>&#xA0;</fo:block>
2135
- </xsl:if> -->
2136
-
2137
- <!-- $namespace = 'iso' or -->
2138
-
2139
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2140
-
2141
-
2142
-
2143
- <xsl:call-template name="fn_name_display"/>
2410
+ <xsl:variable name="simple-table">
2411
+ <xsl:call-template name="getSimpleTable"/>
2412
+ </xsl:variable>
2144
2413
 
2145
2414
 
2146
-
2147
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2148
-
2149
- <!-- <xsl:variable name="cols-count">
2150
- <xsl:choose>
2151
- <xsl:when test="*[local-name()='thead']">
2152
- <xsl:call-template name="calculate-columns-numbers">
2153
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2154
- </xsl:call-template>
2155
- </xsl:when>
2156
- <xsl:otherwise>
2157
- <xsl:call-template name="calculate-columns-numbers">
2158
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2159
- </xsl:call-template>
2160
- </xsl:otherwise>
2161
- </xsl:choose>
2162
- </xsl:variable> -->
2163
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2164
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2165
-
2166
-
2167
-
2168
- <xsl:variable name="colwidths">
2169
- <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2170
- <xsl:call-template name="calculate-column-widths">
2171
- <xsl:with-param name="cols-count" select="$cols-count"/>
2172
- <xsl:with-param name="table" select="$simple-table"/>
2173
- </xsl:call-template>
2174
- </xsl:if>
2175
- </xsl:variable>
2176
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2177
-
2178
- <!-- <xsl:variable name="colwidths2">
2179
- <xsl:call-template name="calculate-column-widths">
2180
- <xsl:with-param name="cols-count" select="$cols-count"/>
2181
- </xsl:call-template>
2182
- </xsl:variable> -->
2183
-
2184
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2185
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2186
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2187
-
2188
- <xsl:variable name="margin-left">
2189
- <xsl:choose>
2190
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2191
- <xsl:otherwise>0</xsl:otherwise>
2192
- </xsl:choose>
2193
- </xsl:variable>
2194
-
2195
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2415
+ <fo:block space-before="18pt"> </fo:block>
2196
2416
 
2197
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2198
2417
 
2199
2418
 
2200
- <xsl:attribute name="space-after">6pt</xsl:attribute>
2201
2419
 
2202
-
2203
-
2204
-
2420
+ <!-- <xsl:if test="$namespace = 'bipm'">
2421
+ <fo:block>&#xA0;</fo:block>
2422
+ </xsl:if> -->
2205
2423
 
2206
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2207
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2208
- <xsl:attribute name="space-after">18pt</xsl:attribute>
2424
+ <!-- $namespace = 'iso' or -->
2209
2425
 
2426
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2210
2427
 
2211
-
2428
+
2429
+
2430
+ <xsl:call-template name="fn_name_display"/>
2431
+
2432
+
2433
+
2434
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2435
+
2436
+ <!-- <xsl:variable name="cols-count">
2437
+ <xsl:choose>
2438
+ <xsl:when test="*[local-name()='thead']">
2439
+ <xsl:call-template name="calculate-columns-numbers">
2440
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2441
+ </xsl:call-template>
2442
+ </xsl:when>
2443
+ <xsl:otherwise>
2444
+ <xsl:call-template name="calculate-columns-numbers">
2445
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2446
+ </xsl:call-template>
2447
+ </xsl:otherwise>
2448
+ </xsl:choose>
2449
+ </xsl:variable> -->
2450
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2451
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2212
2452
 
2213
2453
 
2214
2454
 
2455
+ <xsl:variable name="colwidths">
2456
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2457
+ <xsl:call-template name="calculate-column-widths">
2458
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2459
+ <xsl:with-param name="table" select="$simple-table"/>
2460
+ </xsl:call-template>
2461
+ </xsl:if>
2462
+ </xsl:variable>
2463
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2215
2464
 
2465
+ <!-- <xsl:variable name="colwidths2">
2466
+ <xsl:call-template name="calculate-column-widths">
2467
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2468
+ </xsl:call-template>
2469
+ </xsl:variable> -->
2216
2470
 
2471
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2472
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2473
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2217
2474
 
2475
+ <xsl:variable name="margin-left">
2476
+ <xsl:choose>
2477
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2478
+ <xsl:otherwise>0</xsl:otherwise>
2479
+ </xsl:choose>
2480
+ </xsl:variable>
2218
2481
 
2219
- <xsl:variable name="table_attributes">
2220
- <attribute name="table-layout">fixed</attribute>
2221
- <attribute name="width">100%</attribute>
2222
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2223
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2482
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2483
+
2484
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2485
+
2486
+
2487
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2494
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2495
+ <xsl:attribute name="space-after">18pt</xsl:attribute>
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+ <xsl:variable name="table_width">
2506
+ <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
2507
+ 100%
2508
+
2509
+
2510
+ </xsl:variable>
2224
2511
 
2512
+ <xsl:variable name="table_attributes">
2513
+ <attribute name="table-layout">fixed</attribute>
2514
+ <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
2515
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2516
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2517
+
2518
+
2519
+
2520
+ <attribute name="margin-left">0mm</attribute>
2521
+ <attribute name="margin-right">0mm</attribute>
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+ </xsl:variable>
2531
+
2532
+
2533
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2534
+
2535
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2536
+ <xsl:attribute name="{@name}">
2537
+ <xsl:value-of select="."/>
2538
+ </xsl:attribute>
2539
+ </xsl:for-each>
2540
+
2541
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2542
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2543
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2544
+ </xsl:if>
2545
+
2546
+ <xsl:choose>
2547
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
2548
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
2549
+ <fo:table-column column-width="{@width}"/>
2550
+ </xsl:for-each>
2551
+ </xsl:when>
2552
+ <xsl:otherwise>
2553
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2554
+ <xsl:choose>
2555
+ <xsl:when test=". = 1 or . = 0">
2556
+ <fo:table-column column-width="proportional-column-width(2)"/>
2557
+ </xsl:when>
2558
+ <xsl:otherwise>
2559
+ <fo:table-column column-width="proportional-column-width({.})"/>
2560
+ </xsl:otherwise>
2561
+ </xsl:choose>
2562
+ </xsl:for-each>
2563
+ </xsl:otherwise>
2564
+ </xsl:choose>
2565
+
2566
+ <xsl:choose>
2567
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2568
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2569
+ </xsl:when>
2570
+ <xsl:otherwise>
2571
+ <xsl:apply-templates/>
2572
+ </xsl:otherwise>
2573
+ </xsl:choose>
2574
+
2575
+ </fo:table>
2225
2576
 
2577
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
2578
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2579
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2580
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2581
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2582
+ <xsl:with-param name="colgroup" select="$colgroup"/>
2583
+ </xsl:call-template>
2584
+ </xsl:for-each>
2226
2585
 
2227
- <attribute name="margin-left">0mm</attribute>
2228
- <attribute name="margin-right">0mm</attribute>
2586
+ <!-- insert footer as table -->
2587
+ <!-- <fo:table>
2588
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2589
+ <xsl:attribute name="{@name}">
2590
+ <xsl:value-of select="."/>
2591
+ </xsl:attribute>
2592
+ </xsl:for-each>
2593
+
2594
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2595
+ <xsl:choose>
2596
+ <xsl:when test=". = 1 or . = 0">
2597
+ <fo:table-column column-width="proportional-column-width(2)"/>
2598
+ </xsl:when>
2599
+ <xsl:otherwise>
2600
+ <fo:table-column column-width="proportional-column-width({.})"/>
2601
+ </xsl:otherwise>
2602
+ </xsl:choose>
2603
+ </xsl:for-each>
2604
+ </fo:table>-->
2229
2605
 
2230
2606
 
2231
-
2232
-
2233
-
2234
2607
 
2235
-
2236
2608
 
2237
- </xsl:variable>
2238
-
2239
-
2240
- <fo:table id="{@id}" table-omit-footer-at-break="true">
2241
2609
 
2242
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2243
- <xsl:attribute name="{@name}">
2244
- <xsl:value-of select="."/>
2245
- </xsl:attribute>
2246
- </xsl:for-each>
2610
+ </fo:block-container>
2611
+ </xsl:variable>
2612
+
2613
+
2614
+
2615
+ <xsl:choose>
2616
+ <xsl:when test="@width">
2617
+
2618
+ <!-- centered table when table name is centered (see table-name-style) -->
2247
2619
 
2248
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2249
- <xsl:if test="$isNoteOrFnExist = 'true'">
2250
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2251
- </xsl:if>
2620
+ <fo:table table-layout="fixed" width="100%">
2621
+ <fo:table-column column-width="proportional-column-width(1)"/>
2622
+ <fo:table-column column-width="{@width}"/>
2623
+ <fo:table-column column-width="proportional-column-width(1)"/>
2624
+ <fo:table-body>
2625
+ <fo:table-row>
2626
+ <fo:table-cell column-number="2">
2627
+ <fo:block><xsl:copy-of select="$table"/></fo:block>
2628
+ </fo:table-cell>
2629
+ </fo:table-row>
2630
+ </fo:table-body>
2631
+ </fo:table>
2252
2632
 
2253
- <xsl:choose>
2254
- <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
2255
- <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
2256
- <fo:table-column column-width="{@width}"/>
2257
- </xsl:for-each>
2258
- </xsl:when>
2259
- <xsl:otherwise>
2260
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2261
- <xsl:choose>
2262
- <xsl:when test=". = 1 or . = 0">
2263
- <fo:table-column column-width="proportional-column-width(2)"/>
2264
- </xsl:when>
2265
- <xsl:otherwise>
2266
- <fo:table-column column-width="proportional-column-width({.})"/>
2267
- </xsl:otherwise>
2268
- </xsl:choose>
2269
- </xsl:for-each>
2270
- </xsl:otherwise>
2271
- </xsl:choose>
2272
2633
 
2273
- <xsl:choose>
2274
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2275
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2276
- </xsl:when>
2277
- <xsl:otherwise>
2278
- <xsl:apply-templates/>
2279
- </xsl:otherwise>
2280
- </xsl:choose>
2281
2634
 
2282
- </fo:table>
2283
-
2284
- <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
2285
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2286
- <xsl:call-template name="insertTableFooterInSeparateTable">
2287
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
2288
- <xsl:with-param name="colwidths" select="$colwidths"/>
2289
- <xsl:with-param name="colgroup" select="$colgroup"/>
2290
- </xsl:call-template>
2291
- </xsl:for-each>
2292
-
2293
- <!-- insert footer as table -->
2294
- <!-- <fo:table>
2295
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2296
- <xsl:attribute name="{@name}">
2297
- <xsl:value-of select="."/>
2298
- </xsl:attribute>
2299
- </xsl:for-each>
2300
2635
 
2301
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2302
- <xsl:choose>
2303
- <xsl:when test=". = 1 or . = 0">
2304
- <fo:table-column column-width="proportional-column-width(2)"/>
2305
- </xsl:when>
2306
- <xsl:otherwise>
2307
- <fo:table-column column-width="proportional-column-width({.})"/>
2308
- </xsl:otherwise>
2309
- </xsl:choose>
2310
- </xsl:for-each>
2311
- </fo:table>-->
2312
-
2313
-
2314
-
2315
-
2316
-
2317
- </fo:block-container>
2636
+ </xsl:when>
2637
+ <xsl:otherwise>
2638
+ <xsl:copy-of select="$table"/>
2639
+ </xsl:otherwise>
2640
+ </xsl:choose>
2641
+
2318
2642
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2319
2643
  <xsl:if test="normalize-space() != ''">
2320
2644
  <fo:block xsl:use-attribute-sets="table-name-style">
@@ -2442,7 +2766,15 @@
2442
2766
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2443
2767
  <xsl:value-of select="@target"/>
2444
2768
  </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2445
- <xsl:variable name="math_text" select="normalize-space(.)"/>
2769
+ <xsl:variable name="mathml">
2770
+ <xsl:for-each select="*">
2771
+ <xsl:if test="local-name() != 'unit' and local-name() != 'prefix' and local-name() != 'dimension' and local-name() != 'quantity'">
2772
+ <xsl:copy-of select="."/>
2773
+ </xsl:if>
2774
+ </xsl:for-each>
2775
+ </xsl:variable>
2776
+
2777
+ <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
2446
2778
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2447
2779
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2448
2780
  <xsl:param name="cols-count"/>
@@ -3172,7 +3504,7 @@
3172
3504
  <xsl:with-param name="table" select="$html-table"/>
3173
3505
  </xsl:call-template>
3174
3506
  </xsl:variable>
3175
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3507
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3176
3508
  <xsl:variable name="maxlength_dt">
3177
3509
  <xsl:call-template name="getMaxLength_dt"/>
3178
3510
  </xsl:variable>
@@ -3201,13 +3533,22 @@
3201
3533
  </xsl:when>
3202
3534
  <xsl:otherwise>
3203
3535
  <xsl:choose>
3536
+ <!-- to set width check most wide chars like `W` -->
3204
3537
  <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
3205
- <fo:table-column column-width="5%"/>
3206
- <fo:table-column column-width="95%"/>
3538
+ <fo:table-column column-width="7%"/>
3539
+ <fo:table-column column-width="93%"/>
3540
+ </xsl:when>
3541
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like ABC, etc -->
3542
+ <fo:table-column column-width="15%"/>
3543
+ <fo:table-column column-width="85%"/>
3207
3544
  </xsl:when>
3208
- <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like t90, a, etc -->
3209
- <fo:table-column column-width="10%"/>
3210
- <fo:table-column column-width="90%"/>
3545
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 7"> <!-- if dt contains short text like ABCDEF, etc -->
3546
+ <fo:table-column column-width="20%"/>
3547
+ <fo:table-column column-width="80%"/>
3548
+ </xsl:when>
3549
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
3550
+ <fo:table-column column-width="25%"/>
3551
+ <fo:table-column column-width="75%"/>
3211
3552
  </xsl:when>
3212
3553
  <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3213
3554
  <fo:table-column column-width="60%"/>
@@ -3413,6 +3754,7 @@
3413
3754
 
3414
3755
 
3415
3756
 
3757
+
3416
3758
 
3417
3759
  </xsl:variable>
3418
3760
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
@@ -3426,10 +3768,18 @@
3426
3768
  </xsl:if>
3427
3769
  <xsl:apply-templates/>
3428
3770
  </fo:inline>
3771
+ </xsl:template><xsl:template match="*[local-name()='underline']">
3772
+ <fo:inline text-decoration="underline">
3773
+ <xsl:apply-templates/>
3774
+ </fo:inline>
3429
3775
  </xsl:template><xsl:template match="*[local-name()='del']">
3430
3776
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3431
3777
  <xsl:apply-templates/>
3432
3778
  </fo:inline>
3779
+ </xsl:template><xsl:template match="*[local-name()='hi']">
3780
+ <fo:inline background-color="yellow">
3781
+ <xsl:apply-templates/>
3782
+ </fo:inline>
3433
3783
  </xsl:template><xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
3434
3784
  <xsl:variable name="text" select="normalize-space(.)"/>
3435
3785
  <fo:inline font-size="75%">
@@ -3519,6 +3869,10 @@
3519
3869
  <xsl:param name="text" select="."/>
3520
3870
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
3521
3871
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
3872
+ </xsl:template><xsl:template name="add-zero-spaces-link-java">
3873
+ <xsl:param name="text" select="."/>
3874
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
3875
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1​')"/>
3522
3876
  </xsl:template><xsl:template name="add-zero-spaces">
3523
3877
  <xsl:param name="text" select="."/>
3524
3878
  <xsl:variable name="zero-space-after-chars">-</xsl:variable>
@@ -3766,6 +4120,7 @@
3766
4120
  <xsl:apply-templates select="." mode="mathml"/>
3767
4121
  </xsl:variable>
3768
4122
  <fo:instream-foreign-object fox:alt-text="Math">
4123
+
3769
4124
  <!-- <xsl:copy-of select="."/> -->
3770
4125
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3771
4126
  </fo:instream-foreign-object>
@@ -3779,7 +4134,12 @@
3779
4134
  <!-- replace start and end spaces to non-break space -->
3780
4135
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
3781
4136
  </xsl:copy>
3782
- </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4137
+ </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
4138
+ <xsl:copy>
4139
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
4140
+ </xsl:copy>
4141
+ <mathml:mspace width="0.5ex"/>
4142
+ </xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
3783
4143
  <xsl:variable name="target">
3784
4144
  <xsl:choose>
3785
4145
  <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
@@ -3800,7 +4160,10 @@
3800
4160
  <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
3801
4161
  <xsl:choose>
3802
4162
  <xsl:when test="normalize-space(.) = ''">
3803
- <xsl:value-of select="$target"/>
4163
+ <!-- <xsl:value-of select="$target"/> -->
4164
+ <xsl:call-template name="add-zero-spaces-link-java">
4165
+ <xsl:with-param name="text" select="$target"/>
4166
+ </xsl:call-template>
3804
4167
  </xsl:when>
3805
4168
  <xsl:otherwise>
3806
4169
  <xsl:apply-templates/>
@@ -3810,8 +4173,6 @@
3810
4173
  </xsl:otherwise>
3811
4174
  </xsl:choose>
3812
4175
  </fo:inline>
3813
- </xsl:template><xsl:template match="*[local-name()='bookmark']">
3814
- <fo:inline id="{@id}"/>
3815
4176
  </xsl:template><xsl:template match="*[local-name()='appendix']">
3816
4177
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3817
4178
  <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
@@ -4010,7 +4371,7 @@
4010
4371
  </xsl:if> -->
4011
4372
  </fo:inline>
4012
4373
  </xsl:if>
4013
- </xsl:template><xsl:template match="*[local-name() = 'figure']">
4374
+ </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
4014
4375
  <fo:block-container id="{@id}">
4015
4376
 
4016
4377
  <fo:block>
@@ -4026,6 +4387,7 @@
4026
4387
  <fo:block id="{@id}">
4027
4388
  <xsl:apply-templates/>
4028
4389
  </fo:block>
4390
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4029
4391
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
4030
4392
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
4031
4393
  <xsl:apply-templates/>
@@ -4217,6 +4579,12 @@
4217
4579
  <!-- <xsl:text> </xsl:text> -->
4218
4580
  </xsl:template><xsl:template name="getSection">
4219
4581
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4582
+ <!--
4583
+ <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
4584
+ <xsl:value-of select="."/>
4585
+ </xsl:for-each>
4586
+ -->
4587
+
4220
4588
  </xsl:template><xsl:template name="getName">
4221
4589
  <xsl:choose>
4222
4590
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -4269,6 +4637,12 @@
4269
4637
  <xsl:copy>
4270
4638
  <xsl:apply-templates mode="contents_item"/>
4271
4639
  </xsl:copy>
4640
+ </xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
4641
+ <xsl:copy>
4642
+ <xsl:apply-templates mode="contents_item"/>
4643
+ </xsl:copy>
4644
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
4645
+ <xsl:copy-of select="."/>
4272
4646
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4273
4647
  <xsl:text> </xsl:text>
4274
4648
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
@@ -4293,6 +4667,7 @@
4293
4667
 
4294
4668
 
4295
4669
 
4670
+
4296
4671
  10
4297
4672
 
4298
4673
 
@@ -4596,10 +4971,11 @@
4596
4971
  </xsl:choose>
4597
4972
 
4598
4973
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
4599
-
4974
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
4600
4975
  <xsl:variable name="element">
4601
4976
  block
4602
4977
 
4978
+
4603
4979
  </xsl:variable>
4604
4980
  <xsl:choose>
4605
4981
  <xsl:when test="normalize-space($element) = 'block'">
@@ -4661,11 +5037,13 @@
4661
5037
  </xsl:if>
4662
5038
  </xsl:if>
4663
5039
 
5040
+
4664
5041
  <fo:block-container margin-left="0mm">
4665
5042
 
4666
5043
  <fo:block xsl:use-attribute-sets="quote-style">
4667
5044
  <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
4668
- <xsl:apply-templates select="./*[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5045
+
5046
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
4669
5047
  </fo:block>
4670
5048
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
4671
5049
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -4688,29 +5066,47 @@
4688
5066
  <xsl:text>— </xsl:text>
4689
5067
  <xsl:apply-templates/>
4690
5068
  </xsl:template><xsl:template match="*[local-name() = 'eref']">
4691
- <fo:inline xsl:use-attribute-sets="eref-style">
4692
- <xsl:if test="@type = 'footnote'">
4693
-
4694
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
4695
- <xsl:attribute name="font-size">80%</xsl:attribute>
4696
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
4697
- <xsl:attribute name="vertical-align">super</xsl:attribute>
4698
-
4699
-
4700
- </xsl:if>
4701
-
4702
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4703
-
4704
- <xsl:if test="@type = 'inline'">
4705
-
4706
-
4707
-
4708
- </xsl:if>
4709
-
4710
-
4711
- <xsl:apply-templates/>
4712
- </fo:basic-link>
4713
- </fo:inline>
5069
+
5070
+ <xsl:variable name="bibitemid">
5071
+ <xsl:choose>
5072
+ <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"/>
5073
+ <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
5074
+ <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
5075
+ </xsl:choose>
5076
+ </xsl:variable>
5077
+
5078
+ <xsl:choose>
5079
+ <xsl:when test="normalize-space($bibitemid) != ''">
5080
+ <fo:inline xsl:use-attribute-sets="eref-style">
5081
+ <xsl:if test="@type = 'footnote'">
5082
+
5083
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5084
+ <xsl:attribute name="font-size">80%</xsl:attribute>
5085
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5086
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
5087
+
5088
+
5089
+ </xsl:if>
5090
+
5091
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5092
+ <xsl:if test="normalize-space(@citeas) = ''">
5093
+ <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5094
+ </xsl:if>
5095
+ <xsl:if test="@type = 'inline'">
5096
+
5097
+
5098
+
5099
+ </xsl:if>
5100
+
5101
+ <xsl:apply-templates/>
5102
+ </fo:basic-link>
5103
+
5104
+ </fo:inline>
5105
+ </xsl:when>
5106
+ <xsl:otherwise>
5107
+ <fo:inline><xsl:apply-templates/></fo:inline>
5108
+ </xsl:otherwise>
5109
+ </xsl:choose>
4714
5110
  </xsl:template><xsl:template match="*[local-name() = 'tab']">
4715
5111
  <!-- zero-space char -->
4716
5112
  <xsl:variable name="depth">
@@ -4819,6 +5215,14 @@
4819
5215
 
4820
5216
 
4821
5217
 
5218
+
5219
+ <xsl:if test="*[1][@class='supertitle']">
5220
+ <xsl:attribute name="space-before">36pt</xsl:attribute>
5221
+ </xsl:if>
5222
+ <xsl:if test="@inline-header='true'">
5223
+ <xsl:attribute name="text-align">justify</xsl:attribute>
5224
+ </xsl:if>
5225
+
4822
5226
 
4823
5227
 
4824
5228
 
@@ -4830,7 +5234,7 @@
4830
5234
 
4831
5235
 
4832
5236
 
4833
- </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
5237
+ </xsl:template><xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
4834
5238
  <fo:block break-after="page"/>
4835
5239
  <fo:block>
4836
5240
  <xsl:call-template name="setId"/>
@@ -4838,7 +5242,12 @@
4838
5242
  </fo:block>
4839
5243
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
4840
5244
  <fo:block>
4841
- <xsl:call-template name="setId"/>
5245
+ <xsl:call-template name="setId"/>
5246
+
5247
+
5248
+ <xsl:if test="@inline-header='true'">
5249
+ <xsl:attribute name="text-align">justify</xsl:attribute>
5250
+ </xsl:if>
4842
5251
 
4843
5252
  <xsl:apply-templates/>
4844
5253
  </fo:block>
@@ -4889,6 +5298,153 @@
4889
5298
  </fo:block>
4890
5299
  </xsl:otherwise>
4891
5300
  </xsl:choose>
5301
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
5302
+ <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
5303
+ <bookmark><xsl:value-of select="@id"/></bookmark>
5304
+ </xsl:for-each>
5305
+ </xsl:variable><xsl:template match="@*|node()" mode="index_add_id">
5306
+ <xsl:copy>
5307
+ <xsl:apply-templates select="@*|node()" mode="index_add_id"/>
5308
+ </xsl:copy>
5309
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="index_add_id">
5310
+ <xsl:variable name="id">
5311
+ <xsl:call-template name="generateIndexXrefId"/>
5312
+ </xsl:variable>
5313
+ <xsl:copy> <!-- add id to xref -->
5314
+ <xsl:apply-templates select="@*" mode="index_add_id"/>
5315
+ <xsl:attribute name="id">
5316
+ <xsl:value-of select="$id"/>
5317
+ </xsl:attribute>
5318
+ <xsl:apply-templates mode="index_add_id"/>
5319
+ </xsl:copy>
5320
+ <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
5321
+ <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
5322
+ <xsl:if test="@to">
5323
+ <xsl:value-of select="$dash"/>
5324
+ <xsl:copy>
5325
+ <xsl:copy-of select="@*"/>
5326
+ <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
5327
+ <xsl:attribute name="id">
5328
+ <xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
5329
+ </xsl:attribute>
5330
+ <xsl:apply-templates mode="index_add_id"/>
5331
+ </xsl:copy>
5332
+ </xsl:if>
5333
+ </xsl:template><xsl:template match="@*|node()" mode="index_update">
5334
+ <xsl:copy>
5335
+ <xsl:apply-templates select="@*|node()" mode="index_update"/>
5336
+ </xsl:copy>
5337
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" mode="index_update">
5338
+ <xsl:copy>
5339
+ <xsl:apply-templates select="@*" mode="index_update"/>
5340
+ <xsl:apply-templates select="node()[1]" mode="process_li_element"/>
5341
+ </xsl:copy>
5342
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/node()" mode="process_li_element" priority="2">
5343
+ <xsl:param name="element"/>
5344
+ <xsl:param name="remove" select="'false'"/>
5345
+ <xsl:param name="target"/>
5346
+ <!-- <node></node> -->
5347
+ <xsl:choose>
5348
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
5349
+ <!-- skip text (i.e. remove it) and process next element -->
5350
+ <!-- [removed_<xsl:value-of select="."/>] -->
5351
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
5352
+ <xsl:with-param name="target"><xsl:value-of select="$target"/></xsl:with-param>
5353
+ </xsl:apply-templates>
5354
+ </xsl:when>
5355
+ <xsl:when test="self::text()">
5356
+ <xsl:value-of select="."/>
5357
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
5358
+ </xsl:when>
5359
+ <xsl:when test="self::* and local-name(.) = 'xref'">
5360
+ <xsl:variable name="id" select="@id"/>
5361
+ <xsl:variable name="page" select="$index//item[@id = $id]"/>
5362
+ <xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
5363
+ <xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
5364
+
5365
+ <xsl:variable name="id_prev" select="preceding-sibling::*[local-name() = 'xref'][1]/@id"/>
5366
+ <xsl:variable name="page_prev" select="$index//item[@id = $id_prev]"/>
5367
+
5368
+ <xsl:choose>
5369
+ <!-- 2nd pass -->
5370
+ <!-- if page is equal to page for next and page is not the end of range -->
5371
+ <xsl:when test="$page != '' and $page_next != '' and $page = $page_next and not(contains($page, '_to'))"> <!-- case: 12, 12-14 -->
5372
+ <!-- skip element (i.e. remove it) and remove next text ',' -->
5373
+ <!-- [removed_xref] -->
5374
+
5375
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
5376
+ <xsl:with-param name="remove">true</xsl:with-param>
5377
+ <xsl:with-param name="target">
5378
+ <xsl:choose>
5379
+ <xsl:when test="$target != ''"><xsl:value-of select="$target"/></xsl:when>
5380
+ <xsl:otherwise><xsl:value-of select="@target"/></xsl:otherwise>
5381
+ </xsl:choose>
5382
+ </xsl:with-param>
5383
+ </xsl:apply-templates>
5384
+ </xsl:when>
5385
+
5386
+ <xsl:when test="$page != '' and $page_prev != '' and $page = $page_prev and contains($page_prev, '_to')"> <!-- case: 12-14, 14, ... -->
5387
+ <!-- remove xref -->
5388
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
5389
+ <xsl:with-param name="remove">true</xsl:with-param>
5390
+ </xsl:apply-templates>
5391
+ </xsl:when>
5392
+
5393
+ <xsl:otherwise>
5394
+ <xsl:apply-templates select="." mode="xref_copy">
5395
+ <xsl:with-param name="target" select="$target"/>
5396
+ </xsl:apply-templates>
5397
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
5398
+ </xsl:otherwise>
5399
+ </xsl:choose>
5400
+ </xsl:when>
5401
+ <xsl:when test="self::* and local-name(.) = 'ul'">
5402
+ <!-- ul -->
5403
+ <xsl:apply-templates select="." mode="index_update"/>
5404
+ </xsl:when>
5405
+ <xsl:otherwise>
5406
+ <xsl:apply-templates select="." mode="xref_copy">
5407
+ <xsl:with-param name="target" select="$target"/>
5408
+ </xsl:apply-templates>
5409
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
5410
+ </xsl:otherwise>
5411
+ </xsl:choose>
5412
+ </xsl:template><xsl:template match="@*|node()" mode="xref_copy">
5413
+ <xsl:param name="target"/>
5414
+ <xsl:copy>
5415
+ <xsl:apply-templates select="@*" mode="xref_copy"/>
5416
+ <xsl:if test="$target != '' and not(xalan:nodeset($bookmark_in_fn)//bookmark[. = $target])">
5417
+ <xsl:attribute name="target"><xsl:value-of select="$target"/></xsl:attribute>
5418
+ </xsl:if>
5419
+ <xsl:apply-templates select="node()" mode="xref_copy"/>
5420
+ </xsl:copy>
5421
+ </xsl:template><xsl:template name="generateIndexXrefId">
5422
+ <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5423
+
5424
+ <xsl:variable name="docid">
5425
+ <xsl:call-template name="getDocumentId"/>
5426
+ </xsl:variable>
5427
+ <xsl:variable name="item_number">
5428
+ <xsl:number count="*[local-name() = 'li'][ancestor::*[local-name() = 'indexsect']]" level="any"/>
5429
+ </xsl:variable>
5430
+ <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
5431
+ <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
5432
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
5433
+ <xsl:apply-templates/>
5434
+ <fo:block>
5435
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
5436
+ <fo:block> </fo:block>
5437
+ </xsl:if>
5438
+ </fo:block>
5439
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
5440
+ <xsl:apply-templates/>
5441
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
5442
+ <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5443
+ <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5444
+ <xsl:apply-templates/>
5445
+ </fo:block>
5446
+ </xsl:template><xsl:template match="*[local-name() = 'bookmark']">
5447
+ <fo:inline id="{@id}"/>
4892
5448
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
4893
5449
  <!-- <row>
4894
5450
  <date>05-07-2013</date>
@@ -4984,6 +5540,8 @@
4984
5540
  <xsl:value-of select="translate(.,'. ','')"/>
4985
5541
  </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
4986
5542
  <xsl:value-of select="substring(.,1,1)"/>
5543
+ </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
5544
+ <fo:inline><xsl:apply-templates/></fo:inline>
4987
5545
  </xsl:template><xsl:template name="convertDate">
4988
5546
  <xsl:param name="date"/>
4989
5547
  <xsl:param name="format" select="'short'"/>
@@ -5008,6 +5566,57 @@
5008
5566
  </xsl:variable>
5009
5567
  <xsl:variable name="result">
5010
5568
  <xsl:choose>
5569
+ <xsl:when test="$format = 'ddMMyyyy'">
5570
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5571
+ <xsl:text> </xsl:text>
5572
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
5573
+ </xsl:when>
5574
+ <xsl:when test="$format = 'ddMM'">
5575
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5576
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
5577
+ </xsl:when>
5578
+ <xsl:when test="$format = 'short' or $day = ''">
5579
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
5580
+ </xsl:when>
5581
+ <xsl:otherwise>
5582
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
5583
+ </xsl:otherwise>
5584
+ </xsl:choose>
5585
+ </xsl:variable>
5586
+ <xsl:value-of select="$result"/>
5587
+ </xsl:template><xsl:template name="convertDateLocalized">
5588
+ <xsl:param name="date"/>
5589
+ <xsl:param name="format" select="'short'"/>
5590
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
5591
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
5592
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
5593
+ <xsl:variable name="monthStr">
5594
+ <xsl:choose>
5595
+ <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>
5596
+ <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>
5597
+ <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>
5598
+ <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>
5599
+ <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>
5600
+ <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>
5601
+ <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>
5602
+ <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>
5603
+ <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>
5604
+ <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>
5605
+ <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>
5606
+ <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>
5607
+ </xsl:choose>
5608
+ </xsl:variable>
5609
+ <xsl:variable name="result">
5610
+ <xsl:choose>
5611
+ <xsl:when test="$format = 'ddMMyyyy'">
5612
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5613
+ <xsl:text> </xsl:text>
5614
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
5615
+ </xsl:when>
5616
+ <xsl:when test="$format = 'ddMM'">
5617
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5618
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
5619
+ </xsl:when>
5011
5620
  <xsl:when test="$format = 'short' or $day = ''">
5012
5621
  <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
5013
5622
  </xsl:when>
@@ -5023,7 +5632,7 @@
5023
5632
  <xsl:param name="charDelim" select="', '"/>
5024
5633
  <xsl:choose>
5025
5634
  <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
5026
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5635
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5027
5636
  <xsl:sort data-type="text" order="ascending"/>
5028
5637
  <xsl:call-template name="insertKeyword">
5029
5638
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
@@ -5032,7 +5641,7 @@
5032
5641
  </xsl:for-each>
5033
5642
  </xsl:when>
5034
5643
  <xsl:otherwise>
5035
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5644
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5036
5645
  <xsl:call-template name="insertKeyword">
5037
5646
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
5038
5647
  <xsl:with-param name="charDelim" select="$charDelim"/>
@@ -5049,65 +5658,71 @@
5049
5658
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
5050
5659
  </xsl:choose>
5051
5660
  </xsl:template><xsl:template name="addPDFUAmeta">
5052
- <fo:declarations>
5053
- <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5054
- <pdf:dictionary type="normal" key="ViewerPreferences">
5055
- <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
5056
- </pdf:dictionary>
5057
- </pdf:catalog>
5058
- <x:xmpmeta xmlns:x="adobe:ns:meta/">
5059
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
5060
- <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
5061
- <!-- Dublin Core properties go here -->
5062
- <dc:title>
5063
- <xsl:variable name="title">
5661
+ <xsl:variable name="lang">
5662
+ <xsl:call-template name="getLang"/>
5663
+ </xsl:variable>
5664
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5665
+ <pdf:dictionary type="normal" key="ViewerPreferences">
5666
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
5667
+ </pdf:dictionary>
5668
+ </pdf:catalog>
5669
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
5670
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
5671
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
5672
+ <!-- Dublin Core properties go here -->
5673
+ <dc:title>
5674
+ <xsl:variable name="title">
5675
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5064
5676
 
5065
5677
 
5066
5678
 
5067
5679
 
5068
5680
 
5069
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@type='main']"/>
5681
+
5682
+ <xsl:value-of select="*[local-name() = 'title'][@type='main']"/>
5070
5683
 
5071
- </xsl:variable>
5072
- <xsl:choose>
5073
- <xsl:when test="normalize-space($title) != ''">
5074
- <xsl:value-of select="$title"/>
5075
- </xsl:when>
5076
- <xsl:otherwise>
5077
- <xsl:text> </xsl:text>
5078
- </xsl:otherwise>
5079
- </xsl:choose>
5080
- </dc:title>
5081
- <dc:creator>
5684
+ </xsl:for-each>
5685
+ </xsl:variable>
5686
+ <xsl:choose>
5687
+ <xsl:when test="normalize-space($title) != ''">
5688
+ <xsl:value-of select="$title"/>
5689
+ </xsl:when>
5690
+ <xsl:otherwise>
5691
+ <xsl:text> </xsl:text>
5692
+ </xsl:otherwise>
5693
+ </xsl:choose>
5694
+ </dc:title>
5695
+ <dc:creator>
5696
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5082
5697
 
5083
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'organization']/*[local-name() = 'name']"/>
5698
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
5699
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
5700
+ <xsl:if test="position() != last()">; </xsl:if>
5701
+ </xsl:for-each>
5084
5702
 
5085
5703
 
5086
5704
 
5087
- </dc:creator>
5088
- <dc:description>
5089
- <xsl:variable name="abstract">
5090
-
5091
-
5092
-
5093
-
5094
- <xsl:copy-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'abstract']//text()"/>
5095
-
5096
-
5097
- </xsl:variable>
5098
- <xsl:value-of select="normalize-space($abstract)"/>
5099
- </dc:description>
5100
- <pdf:Keywords>
5101
- <xsl:call-template name="insertKeywords"/>
5102
- </pdf:Keywords>
5103
- </rdf:Description>
5104
- <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
5105
- <!-- XMP properties go here -->
5106
- <xmp:CreatorTool/>
5107
- </rdf:Description>
5108
- </rdf:RDF>
5109
- </x:xmpmeta>
5110
- </fo:declarations>
5705
+ </xsl:for-each>
5706
+ </dc:creator>
5707
+ <dc:description>
5708
+ <xsl:variable name="abstract">
5709
+
5710
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
5711
+
5712
+
5713
+ </xsl:variable>
5714
+ <xsl:value-of select="normalize-space($abstract)"/>
5715
+ </dc:description>
5716
+ <pdf:Keywords>
5717
+ <xsl:call-template name="insertKeywords"/>
5718
+ </pdf:Keywords>
5719
+ </rdf:Description>
5720
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
5721
+ <!-- XMP properties go here -->
5722
+ <xmp:CreatorTool/>
5723
+ </rdf:Description>
5724
+ </rdf:RDF>
5725
+ </x:xmpmeta>
5111
5726
  </xsl:template><xsl:template name="getId">
5112
5727
  <xsl:choose>
5113
5728
  <xsl:when test="../@id">
@@ -5204,6 +5819,7 @@
5204
5819
 
5205
5820
 
5206
5821
 
5822
+
5207
5823
  </xsl:variable>
5208
5824
  <xsl:if test="$documentNS != $XSLNS">
5209
5825
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -5263,6 +5879,11 @@
5263
5879
  <xsl:call-template name="getLang"/>
5264
5880
  </xsl:variable>
5265
5881
 
5266
- <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
5882
+ <xsl:choose>
5883
+ <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
5884
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
5885
+ </xsl:when>
5886
+ <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
5887
+ </xsl:choose>
5267
5888
 
5268
5889
  </xsl:template></xsl:stylesheet>