metanorma-iso 1.5.8 → 1.5.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +66 -0
  3. data/README.adoc +5 -6
  4. data/lib/asciidoctor/iso/base.rb +5 -0
  5. data/lib/asciidoctor/iso/basicdoc.rng +4 -11
  6. data/lib/asciidoctor/iso/boilerplate-fr.xml +40 -0
  7. data/lib/asciidoctor/iso/boilerplate.xml +1 -0
  8. data/lib/asciidoctor/iso/cleanup.rb +38 -0
  9. data/lib/asciidoctor/iso/front.rb +14 -15
  10. data/lib/asciidoctor/iso/isodoc.rng +27 -50
  11. data/lib/asciidoctor/iso/isostandard.rng +16 -1
  12. data/lib/asciidoctor/iso/validate.rb +1 -1
  13. data/lib/asciidoctor/iso/validate_section.rb +9 -0
  14. data/lib/isodoc/iso/base_convert.rb +2 -1
  15. data/lib/isodoc/iso/html/header.html +12 -24
  16. data/lib/isodoc/iso/html/htmlstyle.css +1 -1
  17. data/lib/isodoc/iso/html/htmlstyle.scss +1 -1
  18. data/lib/isodoc/iso/html/isodoc.css +42 -42
  19. data/lib/isodoc/iso/html/isodoc.scss +42 -42
  20. data/lib/isodoc/iso/html/style-human.css +14 -10
  21. data/lib/isodoc/iso/html/style-human.scss +7 -7
  22. data/lib/isodoc/iso/html/style-iso.css +12 -8
  23. data/lib/isodoc/iso/html/style-iso.scss +5 -5
  24. data/lib/isodoc/iso/html/wordstyle.css +67 -67
  25. data/lib/isodoc/iso/html/wordstyle.scss +67 -67
  26. data/lib/isodoc/iso/html_convert.rb +4 -0
  27. data/lib/isodoc/iso/i18n-en.yaml +4 -0
  28. data/lib/isodoc/iso/i18n-fr.yaml +5 -0
  29. data/lib/isodoc/iso/i18n-zh-Hans.yaml +5 -0
  30. data/lib/isodoc/iso/i18n.rb +10 -11
  31. data/lib/isodoc/iso/iso.amendment.xsl +739 -141
  32. data/lib/isodoc/iso/iso.international-standard.xsl +739 -141
  33. data/lib/isodoc/iso/metadata.rb +20 -19
  34. data/lib/isodoc/iso/word_convert.rb +4 -0
  35. data/lib/isodoc/iso/xref.rb +10 -0
  36. data/lib/metanorma/iso/fonts_manifest.yaml +6 -0
  37. data/lib/metanorma/iso/processor.rb +0 -9
  38. data/lib/metanorma/iso/version.rb +1 -1
  39. data/metanorma-iso.gemspec +2 -2
  40. data/spec/asciidoctor-iso/amd_spec.rb +7 -7
  41. data/spec/asciidoctor-iso/base_spec.rb +146 -18
  42. data/spec/asciidoctor-iso/blocks_spec.rb +1 -1
  43. data/spec/asciidoctor-iso/cleanup_spec.rb +4 -4
  44. data/spec/asciidoctor-iso/lists_spec.rb +6 -6
  45. data/spec/asciidoctor-iso/refs_spec.rb +174 -143
  46. data/spec/asciidoctor-iso/section_spec.rb +5 -0
  47. data/spec/asciidoctor-iso/validate_spec.rb +52 -15
  48. data/spec/assets/xref_error.adoc +7 -0
  49. data/spec/isodoc/amd_spec.rb +191 -17
  50. data/spec/isodoc/blocks_spec.rb +2 -1
  51. data/spec/isodoc/i18n_spec.rb +13 -13
  52. data/spec/isodoc/inline_spec.rb +2 -2
  53. data/spec/isodoc/iso_spec.rb +2 -2
  54. data/spec/isodoc/metadata_spec.rb +172 -19
  55. data/spec/isodoc/postproc_spec.rb +3 -3
  56. data/spec/isodoc/ref_spec.rb +5 -5
  57. data/spec/isodoc/section_spec.rb +22 -2
  58. data/spec/isodoc/table_spec.rb +1 -1
  59. data/spec/isodoc/terms_spec.rb +1 -1
  60. data/spec/isodoc/xref_spec.rb +23 -11
  61. data/spec/metanorma/processor_spec.rb +1 -1
  62. data/spec/spec_helper.rb +22 -2
  63. metadata +10 -9
  64. data/.github/workflows/macos.yml +0 -41
  65. data/.github/workflows/ubuntu.yml +0 -45
  66. data/.github/workflows/windows.yml +0 -43
@@ -17,7 +17,12 @@
17
17
 
18
18
  <xsl:variable name="docidentifierISO" select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso'] | /iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'ISO']"/>
19
19
 
20
- <xsl:variable name="copyrightText" select="concat('© ISO ', iso:iso-standard/iso:bibdata/iso:copyright/iso:from ,' – All rights reserved')"/>
20
+ <xsl:variable name="all_rights_reserved">
21
+ <xsl:call-template name="getLocalizedString">
22
+ <xsl:with-param name="key">all_rights_reserved</xsl:with-param>
23
+ </xsl:call-template>
24
+ </xsl:variable>
25
+ <xsl:variable name="copyrightText" select="concat('© ISO ', /iso:iso-standard/iso:bibdata/iso:copyright/iso:from ,' – ', $all_rights_reserved)"/>
21
26
 
22
27
  <xsl:variable name="lang-1st-letter_tmp" select="substring-before(substring-after(/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso-with-lang'], '('), ')')"/>
23
28
  <xsl:variable name="lang-1st-letter" select="concat('(', $lang-1st-letter_tmp , ')')"/>
@@ -161,7 +166,10 @@
161
166
 
162
167
  <xsl:template match="/">
163
168
  <xsl:call-template name="namespaceCheck"/>
164
- <fo:root font-family="Cambria, Times New Roman, Cambria Math, HanSans" font-size="11pt" xml:lang="{$lang}"> <!-- -->
169
+ <fo:root font-family="Cambria, Times New Roman, Cambria Math, Source Han Sans" font-size="11pt" xml:lang="{$lang}"> <!-- -->
170
+ <xsl:if test="$lang = 'zh'">
171
+ <xsl:attribute name="font-family">Source Han Sans, Times New Roman, Cambria Math</xsl:attribute>
172
+ </xsl:if>
165
173
  <fo:layout-master-set>
166
174
 
167
175
  <!-- cover page -->
@@ -295,6 +303,10 @@
295
303
 
296
304
  <xsl:call-template name="addPDFUAmeta"/>
297
305
 
306
+ <xsl:call-template name="addBookmarks">
307
+ <xsl:with-param name="contents" select="$contents"/>
308
+ </xsl:call-template>
309
+
298
310
  <!-- cover page -->
299
311
  <xsl:choose>
300
312
  <xsl:when test="$stage-abbreviation != ''">
@@ -372,8 +384,13 @@
372
384
  </fo:block>
373
385
  </fo:table-cell>
374
386
  <fo:table-cell display-align="center">
375
- <fo:block text-align="right">
376
- <fo:block>Reference number</fo:block>
387
+ <fo:block text-align="right">
388
+ <!-- Reference number -->
389
+ <fo:block>
390
+ <xsl:call-template name="getLocalizedString">
391
+ <xsl:with-param name="key">reference_number</xsl:with-param>
392
+ </xsl:call-template>
393
+ </fo:block>
377
394
  <fo:block>
378
395
  <xsl:value-of select="$ISOname"/>
379
396
  </fo:block>
@@ -398,7 +415,15 @@
398
415
  <fo:flow flow-name="xsl-region-body">
399
416
  <fo:block-container>
400
417
  <fo:block margin-top="-1mm" font-size="20pt" text-align="right">
401
- <xsl:value-of select="$stage-fullname-uppercased"/>
418
+ <xsl:value-of select="$stage-fullname-uppercased"/>
419
+ <!-- <xsl:if test="$doctype = 'amendment'">
420
+ <xsl:variable name="title-amendment">
421
+ <xsl:call-template name="getTitle">
422
+ <xsl:with-param name="name" select="'title-amendment'"/>
423
+ </xsl:call-template>
424
+ </xsl:variable>
425
+ <xsl:text> </xsl:text><xsl:value-of select="$title-amendment"/>
426
+ </xsl:if> -->
402
427
  </fo:block>
403
428
  <fo:block font-size="20pt" font-weight="bold" text-align="right">
404
429
  <xsl:value-of select="$docidentifierISO"/>
@@ -473,16 +498,13 @@
473
498
 
474
499
  <xsl:call-template name="printTitlePartEn"/>
475
500
 
476
- <!-- <xsl:if test="normalize-space($title-part) != ''">
477
- <xsl:if test="$part != ''">
478
- <xsl:text> — </xsl:text>
479
- <fo:block font-weight="normal" margin-top="6pt">
480
- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
481
- <xsl:text>:</xsl:text>
482
- </fo:block>
483
- </xsl:if>
484
- <xsl:value-of select="$title-part"/>
485
- </xsl:if> -->
501
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
502
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
503
+ <fo:block margin-top="12pt">
504
+ <xsl:call-template name="printAmendmentTitle"/>
505
+ </fo:block>
506
+ </xsl:if>
507
+
486
508
  </fo:block>
487
509
 
488
510
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -497,6 +519,15 @@
497
519
 
498
520
  <xsl:call-template name="printTitlePartFr"/>
499
521
 
522
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-amd']"/>
523
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
524
+ <fo:block margin-top="6pt">
525
+ <xsl:call-template name="printAmendmentTitle">
526
+ <xsl:with-param name="lang" select="'fr'"/>
527
+ </xsl:call-template>
528
+ </fo:block>
529
+ </xsl:if>
530
+
500
531
  </fo:block>
501
532
  </fo:block>
502
533
  <fo:block margin-top="10mm">
@@ -541,7 +572,14 @@
541
572
  </fo:table-cell>
542
573
  <fo:table-cell>
543
574
  <fo:block text-align="left">
544
- <xsl:value-of select="$doctype_uppercased"/>
575
+ <xsl:choose>
576
+ <xsl:when test="$doctype = 'amendment'">
577
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(translate(/iso:iso-standard/iso:bibdata/iso:ext/iso:updates-document-type,'-',' ')))"/>
578
+ </xsl:when>
579
+ <xsl:otherwise>
580
+ <xsl:value-of select="$doctype_uppercased"/>
581
+ </xsl:otherwise>
582
+ </xsl:choose>
545
583
  </fo:block>
546
584
  </fo:table-cell>
547
585
  <fo:table-cell>
@@ -553,24 +591,50 @@
553
591
  <fo:table-row height="42mm">
554
592
  <fo:table-cell number-columns-spanned="3" font-size="10pt" line-height="1.2">
555
593
  <fo:block text-align="right">
556
- <xsl:if test="$stage-abbreviation = 'PRF' or $stage-abbreviation = 'IS' or $stage-abbreviation = 'published'">
594
+ <xsl:if test="$stage-abbreviation = 'PRF' or $stage-abbreviation = 'IS' or $stage-abbreviation = 'D' or $stage-abbreviation = 'published'">
557
595
  <xsl:call-template name="printEdition"/>
558
596
  </xsl:if>
559
597
  <xsl:choose>
560
598
  <xsl:when test="$stage-abbreviation = 'IS' and /iso:iso-standard/iso:bibdata/iso:date[@type = 'published']">
561
599
  <xsl:value-of select="$linebreak"/>
562
600
  <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'published']"/>
563
- </xsl:when>
601
+ </xsl:when>
602
+ <xsl:when test="($stage-abbreviation = 'IS' or $stage-abbreviation = 'D') and /iso:iso-standard/iso:bibdata/iso:date[@type = 'created']">
603
+ <xsl:value-of select="$linebreak"/>
604
+ <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'created']"/>
605
+ </xsl:when>
564
606
  <xsl:when test="$stage-abbreviation = 'IS' or $stage-abbreviation = 'published'">
565
607
  <xsl:value-of select="$linebreak"/>
566
608
  <xsl:value-of select="substring(/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date,1, 7)"/>
567
609
  </xsl:when>
568
610
  </xsl:choose>
569
- <!-- <xsl:value-of select="$linebreak"/>
570
- <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/> -->
611
+ </fo:block>
612
+ <!-- <xsl:value-of select="$linebreak"/>
613
+ <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/> -->
614
+ <xsl:if test="$doctype = 'amendment'">
615
+ <fo:block text-align="right" margin-right="0.5mm">
616
+ <fo:block font-weight="bold" margin-top="4pt">
617
+ <xsl:variable name="title-amendment">
618
+ <xsl:call-template name="getTitle">
619
+ <xsl:with-param name="name" select="'title-amendment'"/>
620
+ </xsl:call-template>
621
+ </xsl:variable>
622
+ <xsl:value-of select="$title-amendment"/><xsl:text> </xsl:text>
623
+ <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
624
+ <xsl:if test="normalize-space($amendment-number) != ''">
625
+ <xsl:value-of select="$amendment-number"/><xsl:text> </xsl:text>
626
+ </xsl:if>
627
+ </fo:block>
628
+ <fo:block>
629
+ <xsl:if test="/iso:iso-standard/iso:bibdata/iso:date[@type = 'updated']">
630
+ <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'updated']"/>
631
+ </xsl:if>
632
+ </fo:block>
571
633
  </fo:block>
634
+ </xsl:if>
572
635
  </fo:table-cell>
573
636
  </fo:table-row>
637
+
574
638
  </fo:table-body>
575
639
  </fo:table>
576
640
 
@@ -639,6 +703,12 @@
639
703
  </xsl:if>
640
704
  <xsl:value-of select="$title-part"/>
641
705
  </xsl:if> -->
706
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
707
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
708
+ <fo:block margin-right="-5mm" margin-top="12pt">
709
+ <xsl:call-template name="printAmendmentTitle"/>
710
+ </fo:block>
711
+ </xsl:if>
642
712
  </fo:block>
643
713
 
644
714
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -653,6 +723,15 @@
653
723
 
654
724
  <xsl:call-template name="printTitlePartFr"/>
655
725
 
726
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-amd']"/>
727
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
728
+ <fo:block margin-right="-5mm" margin-top="6pt">
729
+ <xsl:call-template name="printAmendmentTitle">
730
+ <xsl:with-param name="lang" select="'fr'"/>
731
+ </xsl:call-template>
732
+ </fo:block>
733
+ </xsl:if>
734
+
656
735
  </fo:block>
657
736
  </fo:block>
658
737
  </fo:block-container>
@@ -690,8 +769,12 @@
690
769
  </fo:block>
691
770
  </fo:table-cell>
692
771
  <fo:table-cell display-align="center">
693
- <fo:block text-align="right">
694
- <fo:block>Reference number</fo:block>
772
+ <fo:block text-align="right">
773
+ <fo:block>
774
+ <xsl:call-template name="getLocalizedString">
775
+ <xsl:with-param name="key">reference_number</xsl:with-param>
776
+ </xsl:call-template>
777
+ </fo:block>
695
778
  <fo:block><xsl:value-of select="$ISOname"/></fo:block>
696
779
  <fo:block> </fo:block>
697
780
  <fo:block> </fo:block>
@@ -918,10 +1001,10 @@
918
1001
  <xsl:if test="/iso:iso-standard/iso:boilerplate/iso:copyright-statement">
919
1002
 
920
1003
  <fo:block-container height="252mm" display-align="after">
921
- <fo:block margin-bottom="3mm">
922
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
923
- <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold">COPYRIGHT PROTECTED DOCUMENT</fo:inline>
924
- </fo:block>
1004
+ <!-- <fo:block margin-bottom="3mm">
1005
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
1006
+ <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold"></fo:inline>
1007
+ </fo:block> -->
925
1008
  <fo:block line-height="90%">
926
1009
  <fo:block font-size="9pt" text-align="justify">
927
1010
  <xsl:apply-templates select="/iso:iso-standard/iso:boilerplate/iso:copyright-statement"/>
@@ -966,7 +1049,7 @@
966
1049
  </xsl:if>
967
1050
 
968
1051
  <xsl:variable name="margin-left">12</xsl:variable>
969
- <xsl:for-each select="xalan:nodeset($contents)//item"><!-- [@display = 'true'][not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
1052
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
970
1053
 
971
1054
  <fo:block>
972
1055
  <xsl:if test="@level = 1">
@@ -996,9 +1079,9 @@
996
1079
  </fo:list-item-label>
997
1080
  <fo:list-item-body start-indent="body-start()">
998
1081
  <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
999
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
1082
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1000
1083
 
1001
- <xsl:apply-templates/>
1084
+ <xsl:apply-templates select="title"/>
1002
1085
 
1003
1086
  <fo:inline keep-together.within-line="always">
1004
1087
  <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
@@ -1040,20 +1123,26 @@
1040
1123
  </fo:block>
1041
1124
  -->
1042
1125
  <fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1">
1043
- <xsl:variable name="part-en" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-part']"/>
1126
+
1127
+ <xsl:variable name="title-part-doc-lang" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']"/>
1128
+
1129
+ <xsl:variable name="title-intro-doc-lang" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
1130
+
1044
1131
  <fo:block>
1045
- <xsl:if test="normalize-space($title-intro) != ''">
1046
- <xsl:value-of select="$title-intro"/>
1132
+ <xsl:if test="normalize-space($title-intro-doc-lang) != ''">
1133
+ <xsl:value-of select="$title-intro-doc-lang"/>
1047
1134
  <xsl:text> — </xsl:text>
1048
1135
  </xsl:if>
1049
1136
 
1050
- <xsl:value-of select="$title-main"/>
1137
+ <xsl:variable name="title-main-doc-lang" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
1138
+
1139
+ <xsl:value-of select="$title-main-doc-lang"/>
1051
1140
 
1052
- <xsl:if test="normalize-space($part-en) != ''">
1141
+ <xsl:if test="normalize-space($title-part-doc-lang) != ''">
1053
1142
  <xsl:if test="$part != ''">
1054
1143
  <xsl:text> — </xsl:text>
1055
- <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1056
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part)"/>
1144
+ <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1145
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$lang]),'#',$part)"/>
1057
1146
  <!-- <xsl:value-of select="$title-part-en"/>
1058
1147
  <xsl:value-of select="$part"/>
1059
1148
  <xsl:text>:</xsl:text> -->
@@ -1062,24 +1151,13 @@
1062
1151
  </xsl:if>
1063
1152
  </fo:block>
1064
1153
  <fo:block>
1065
- <xsl:value-of select="$part-en"/>
1154
+ <xsl:value-of select="$title-part-doc-lang"/>
1066
1155
  </fo:block>
1067
1156
 
1068
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
1157
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1069
1158
  <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1070
- <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1071
- <xsl:variable name="title-amendment">
1072
- <xsl:call-template name="getTitle">
1073
- <xsl:with-param name="name" select="'title-amendment'"/>
1074
- </xsl:call-template>
1075
- </xsl:variable>
1076
- <xsl:value-of select="$title-amendment"/>
1077
- <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1078
- <xsl:if test="normalize-space($amendment-number) != ''">
1079
- <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
1080
- </xsl:if>
1081
- <xsl:text>: </xsl:text>
1082
- <xsl:value-of select="$title-amd"/>
1159
+ <fo:block margin-top="12pt">
1160
+ <xsl:call-template name="printAmendmentTitle"/>
1083
1161
  </fo:block>
1084
1162
  </xsl:if>
1085
1163
 
@@ -1160,7 +1238,28 @@
1160
1238
  </xsl:call-template>
1161
1239
  </fo:block>
1162
1240
  </xsl:if>
1163
- <fo:block font-size="9pt">Price based on <fo:page-number-citation ref-id="lastBlock"/> pages</fo:block>
1241
+ <xsl:variable name="countPages"/>
1242
+ <xsl:variable name="price_based_on">
1243
+ <xsl:call-template name="getLocalizedString">
1244
+ <xsl:with-param name="key">price_based_on</xsl:with-param>
1245
+ </xsl:call-template>
1246
+ </xsl:variable>
1247
+ <xsl:variable name="price_based_on_items">
1248
+ <xsl:call-template name="split">
1249
+ <xsl:with-param name="pText" select="$price_based_on"/>
1250
+ <xsl:with-param name="sep" select="'%'"/>
1251
+ <xsl:with-param name="normalize-space">false</xsl:with-param>
1252
+ </xsl:call-template>
1253
+ </xsl:variable>
1254
+ <!-- Price based on ... pages -->
1255
+ <fo:block font-size="9pt">
1256
+ <xsl:for-each select="xalan:nodeset($price_based_on_items)/item">
1257
+ <xsl:value-of select="."/>
1258
+ <xsl:if test="position() != last()">
1259
+ <fo:page-number-citation ref-id="lastBlock"/>
1260
+ </xsl:if>
1261
+ </xsl:for-each>
1262
+ </fo:block>
1164
1263
  </fo:block-container>
1165
1264
  </fo:block-container>
1166
1265
  </fo:flow>
@@ -1174,6 +1273,27 @@
1174
1273
  <xsl:apply-templates/>
1175
1274
  </xsl:template>
1176
1275
 
1276
+ <xsl:template name="printAmendmentTitle">
1277
+ <xsl:param name="lang" select="'en'"/>
1278
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1279
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1280
+ <fo:block font-weight="normal" line-height="1.1">
1281
+ <xsl:variable name="title-amendment">
1282
+ <xsl:call-template name="getTitle">
1283
+ <xsl:with-param name="name" select="'title-amendment'"/>
1284
+ </xsl:call-template>
1285
+ </xsl:variable>
1286
+ <xsl:value-of select="$title-amendment"/>
1287
+ <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1288
+ <xsl:if test="normalize-space($amendment-number) != ''">
1289
+ <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
1290
+ </xsl:if>
1291
+ <xsl:text>: </xsl:text>
1292
+ <xsl:value-of select="$title-amd"/>
1293
+ </fo:block>
1294
+ </xsl:if>
1295
+ </xsl:template>
1296
+
1177
1297
  <!-- ============================= -->
1178
1298
  <!-- CONTENTS -->
1179
1299
  <!-- ============================= -->
@@ -1198,9 +1318,7 @@
1198
1318
  </xsl:variable>
1199
1319
 
1200
1320
  <xsl:variable name="display">
1201
- <xsl:choose>
1202
- <xsl:when test="ancestor-or-self::iso:bibitem">false</xsl:when>
1203
- <xsl:when test="ancestor-or-self::iso:term">false</xsl:when>
1321
+ <xsl:choose>
1204
1322
  <xsl:when test="ancestor-or-self::iso:annex and $level &gt;= 2">false</xsl:when>
1205
1323
  <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when>
1206
1324
  <xsl:when test="$level &lt;= 3">true</xsl:when>
@@ -1208,8 +1326,16 @@
1208
1326
  </xsl:choose>
1209
1327
  </xsl:variable>
1210
1328
 
1329
+ <xsl:variable name="skip">
1330
+ <xsl:choose>
1331
+ <xsl:when test="ancestor-or-self::iso:bibitem">true</xsl:when>
1332
+ <xsl:when test="ancestor-or-self::iso:term">true</xsl:when>
1333
+ <xsl:otherwise>false</xsl:otherwise>
1334
+ </xsl:choose>
1335
+ </xsl:variable>
1211
1336
 
1212
- <xsl:if test="$display = 'true'">
1337
+
1338
+ <xsl:if test="$skip = 'false'">
1213
1339
 
1214
1340
  <xsl:variable name="title">
1215
1341
  <xsl:call-template name="getName"/>
@@ -1220,12 +1346,13 @@
1220
1346
  <xsl:if test="ancestor-or-self::iso:annex">annex</xsl:if>
1221
1347
  </xsl:variable>
1222
1348
 
1223
- <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}">
1224
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1349
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
1350
+ <title>
1351
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1352
+ </title>
1353
+ <xsl:apply-templates mode="contents"/>
1225
1354
  </item>
1226
- <xsl:apply-templates mode="contents"/>
1227
- </xsl:if>
1228
-
1355
+ </xsl:if>
1229
1356
  </xsl:template>
1230
1357
 
1231
1358
 
@@ -1282,6 +1409,14 @@
1282
1409
  <fo:block>www.iso.org</fo:block>
1283
1410
  </fo:block> -->
1284
1411
 
1412
+ <xsl:template match="iso:copyright-statement/iso:clause[1]/iso:title">
1413
+ <fo:block margin-bottom="3mm">
1414
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
1415
+ <!-- <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold">COPYRIGHT PROTECTED DOCUMENT</fo:inline> -->
1416
+ <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold"><xsl:apply-templates/></fo:inline>
1417
+ </fo:block>
1418
+ </xsl:template>
1419
+
1285
1420
  <xsl:template match="iso:copyright-statement//iso:p">
1286
1421
  <fo:block>
1287
1422
  <xsl:if test="preceding-sibling::iso:p">
@@ -1546,6 +1681,9 @@
1546
1681
  <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
1547
1682
  <fo:inline font-style="italic">
1548
1683
  <xsl:choose>
1684
+ <xsl:when test="iso:title[@type = 'main' and @language = $lang]">
1685
+ <xsl:value-of select="iso:title[@type = 'main' and @language = $lang]"/>
1686
+ </xsl:when>
1549
1687
  <xsl:when test="iso:title[@type = 'main' and @language = 'en']">
1550
1688
  <xsl:value-of select="iso:title[@type = 'main' and @language = 'en']"/>
1551
1689
  </xsl:when>
@@ -1665,6 +1803,9 @@
1665
1803
  <xsl:apply-templates select="iso:note"/>
1666
1804
  <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
1667
1805
  <xsl:choose>
1806
+ <xsl:when test="iso:title[@type = 'main' and @language = $lang]">
1807
+ <xsl:apply-templates select="iso:title[@type = 'main' and @language = $lang]"/>
1808
+ </xsl:when>
1668
1809
  <xsl:when test="iso:title[@type = 'main' and @language = 'en']">
1669
1810
  <xsl:apply-templates select="iso:title[@type = 'main' and @language = 'en']"/>
1670
1811
  </xsl:when>
@@ -1706,7 +1847,12 @@
1706
1847
 
1707
1848
  <xsl:template match="iso:admonition">
1708
1849
  <fo:block margin-bottom="12pt" font-weight="bold"> <!-- text-align="center" -->
1709
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@type))"/>
1850
+ <xsl:variable name="type">
1851
+ <xsl:call-template name="getLocalizedString">
1852
+ <xsl:with-param name="key">admonition.<xsl:value-of select="@type"/></xsl:with-param>
1853
+ </xsl:call-template>
1854
+ </xsl:variable>
1855
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($type))"/>
1710
1856
  <xsl:text> — </xsl:text>
1711
1857
  <xsl:apply-templates/>
1712
1858
  </fo:block>
@@ -1987,6 +2133,12 @@
1987
2133
 
1988
2134
  </title-edition>
1989
2135
 
2136
+ <title-edition lang="fr">
2137
+
2138
+ <xsl:text>Édition </xsl:text>
2139
+
2140
+ </title-edition>
2141
+
1990
2142
 
1991
2143
  <title-toc lang="en">
1992
2144
 
@@ -1995,7 +2147,12 @@
1995
2147
 
1996
2148
 
1997
2149
  </title-toc>
1998
- <title-toc lang="fr">Sommaire</title-toc>
2150
+ <title-toc lang="fr">
2151
+
2152
+ <xsl:text>Sommaire</xsl:text>
2153
+
2154
+
2155
+ </title-toc>
1999
2156
 
2000
2157
  <title-toc lang="zh">Contents</title-toc>
2001
2158
 
@@ -2017,15 +2174,24 @@
2017
2174
  <xsl:text>Part #:</xsl:text>
2018
2175
 
2019
2176
 
2177
+
2020
2178
  </title-part>
2021
2179
  <title-part lang="fr">
2022
2180
 
2023
2181
  <xsl:text>Partie #:</xsl:text>
2024
2182
 
2025
2183
 
2184
+
2026
2185
  </title-part>
2027
2186
  <title-part lang="zh">第 # 部分:</title-part>
2028
2187
 
2188
+ <title-subpart lang="en">
2189
+
2190
+ </title-subpart>
2191
+ <title-subpart lang="fr">
2192
+
2193
+ </title-subpart>
2194
+
2029
2195
  <title-modified lang="en">modified</title-modified>
2030
2196
  <title-modified lang="fr">modifiée</title-modified>
2031
2197
 
@@ -2087,10 +2253,19 @@
2087
2253
 
2088
2254
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
2089
2255
  <xsl:param name="name"/>
2090
- <xsl:variable name="lang">
2091
- <xsl:call-template name="getLang"/>
2256
+ <xsl:param name="lang"/>
2257
+ <xsl:variable name="lang_">
2258
+ <xsl:choose>
2259
+ <xsl:when test="$lang != ''">
2260
+ <xsl:value-of select="$lang"/>
2261
+ </xsl:when>
2262
+ <xsl:otherwise>
2263
+ <xsl:call-template name="getLang"/>
2264
+ </xsl:otherwise>
2265
+ </xsl:choose>
2092
2266
  </xsl:variable>
2093
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
2267
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
2268
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
2094
2269
  <xsl:choose>
2095
2270
  <xsl:when test="normalize-space($title_) != ''">
2096
2271
  <xsl:value-of select="$title_"/>
@@ -2099,7 +2274,9 @@
2099
2274
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
2100
2275
  </xsl:otherwise>
2101
2276
  </xsl:choose>
2102
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="link-style">
2277
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
2278
+
2279
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
2103
2280
 
2104
2281
  <xsl:attribute name="color">blue</xsl:attribute>
2105
2282
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
@@ -2241,6 +2418,7 @@
2241
2418
 
2242
2419
 
2243
2420
 
2421
+
2244
2422
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2245
2423
 
2246
2424
  <xsl:attribute name="font-size">12pt</xsl:attribute>
@@ -2289,6 +2467,7 @@
2289
2467
 
2290
2468
 
2291
2469
 
2470
+
2292
2471
  </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
2293
2472
 
2294
2473
 
@@ -2368,6 +2547,7 @@
2368
2547
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2369
2548
 
2370
2549
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
2550
+
2371
2551
 
2372
2552
 
2373
2553
 
@@ -2490,6 +2670,10 @@
2490
2670
 
2491
2671
 
2492
2672
 
2673
+ <!-- <xsl:if test="$namespace = 'bipm'">
2674
+ <fo:block>&#xA0;</fo:block>
2675
+ </xsl:if> -->
2676
+
2493
2677
  <!-- $namespace = 'iso' or -->
2494
2678
 
2495
2679
 
@@ -2523,6 +2707,7 @@
2523
2707
  <xsl:with-param name="table" select="$simple-table"/>
2524
2708
  </xsl:call-template>
2525
2709
  </xsl:variable>
2710
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2526
2711
 
2527
2712
  <!-- <xsl:variable name="colwidths2">
2528
2713
  <xsl:call-template name="calculate-column-widths">
@@ -2543,11 +2728,16 @@
2543
2728
 
2544
2729
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2545
2730
 
2731
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2546
2732
 
2547
2733
 
2734
+
2735
+
2736
+
2548
2737
 
2549
2738
 
2550
-
2739
+
2740
+
2551
2741
 
2552
2742
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
2553
2743
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
@@ -2556,30 +2746,47 @@
2556
2746
 
2557
2747
 
2558
2748
 
2559
- <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
2749
+
2750
+
2751
+
2752
+ <xsl:variable name="table_attributes">
2753
+ <attribute name="table-layout">fixed</attribute>
2754
+ <attribute name="width">100%</attribute>
2755
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2756
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2560
2757
 
2561
- <xsl:attribute name="border">1.5pt solid black</xsl:attribute>
2758
+ <attribute name="border">1.5pt solid black</attribute>
2562
2759
  <xsl:if test="*[local-name()='thead']">
2563
- <xsl:attribute name="border-top">1pt solid black</xsl:attribute>
2760
+ <attribute name="border-top">1pt solid black</attribute>
2564
2761
  </xsl:if>
2565
2762
 
2566
2763
 
2567
2764
 
2568
2765
 
2569
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2570
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2571
-
2572
-
2573
-
2574
-
2575
-
2576
-
2577
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2766
+ <attribute name="margin-left">0mm</attribute>
2767
+ <attribute name="margin-right">0mm</attribute>
2578
2768
 
2769
+
2770
+
2771
+
2579
2772
 
2773
+
2580
2774
 
2775
+ </xsl:variable>
2776
+
2777
+
2778
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2581
2779
 
2780
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2781
+ <xsl:attribute name="{@name}">
2782
+ <xsl:value-of select="."/>
2783
+ </xsl:attribute>
2784
+ </xsl:for-each>
2582
2785
 
2786
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2787
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2788
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2789
+ </xsl:if>
2583
2790
 
2584
2791
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2585
2792
  <xsl:choose>
@@ -2603,6 +2810,33 @@
2603
2810
 
2604
2811
  </fo:table>
2605
2812
 
2813
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2814
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2815
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2816
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2817
+ </xsl:call-template>
2818
+ </xsl:for-each>
2819
+
2820
+ <!-- insert footer as table -->
2821
+ <!-- <fo:table>
2822
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2823
+ <xsl:attribute name="{@name}">
2824
+ <xsl:value-of select="."/>
2825
+ </xsl:attribute>
2826
+ </xsl:for-each>
2827
+
2828
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2829
+ <xsl:choose>
2830
+ <xsl:when test=". = 1 or . = 0">
2831
+ <fo:table-column column-width="proportional-column-width(2)"/>
2832
+ </xsl:when>
2833
+ <xsl:otherwise>
2834
+ <fo:table-column column-width="proportional-column-width({.})"/>
2835
+ </xsl:otherwise>
2836
+ </xsl:choose>
2837
+ </xsl:for-each>
2838
+ </fo:table>-->
2839
+
2606
2840
 
2607
2841
 
2608
2842
 
@@ -2614,6 +2848,7 @@
2614
2848
 
2615
2849
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2616
2850
 
2851
+
2617
2852
  <xsl:apply-templates/>
2618
2853
  </fo:block>
2619
2854
  </xsl:if>
@@ -2669,6 +2904,13 @@
2669
2904
  <xsl:for-each select="xalan:nodeset($table)//tr">
2670
2905
  <xsl:variable name="td_text">
2671
2906
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2907
+
2908
+ <!-- <xsl:if test="$namespace = 'bipm'">
2909
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
2910
+ <word><xsl:value-of select="normalize-space(.)"/></word>
2911
+ </xsl:for-each>
2912
+ </xsl:if> -->
2913
+
2672
2914
  </xsl:variable>
2673
2915
  <xsl:variable name="words">
2674
2916
  <xsl:variable name="string_with_added_zerospaces">
@@ -2728,6 +2970,9 @@
2728
2970
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2729
2971
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2730
2972
  <xsl:value-of select="@target"/>
2973
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2974
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
2975
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2731
2976
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2732
2977
  <xsl:param name="cols-count"/>
2733
2978
  <!-- font-weight="bold" -->
@@ -2736,7 +2981,7 @@
2736
2981
  <xsl:call-template name="table-header-title">
2737
2982
  <xsl:with-param name="cols-count" select="$cols-count"/>
2738
2983
  </xsl:call-template>
2739
-
2984
+
2740
2985
  <xsl:apply-templates/>
2741
2986
  </fo:table-header>
2742
2987
  </xsl:template><xsl:template name="table-header-title">
@@ -2761,6 +3006,13 @@
2761
3006
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2762
3007
  <xsl:apply-templates/>
2763
3008
  </xsl:template><xsl:template name="insertTableFooter">
3009
+ <xsl:param name="cols-count"/>
3010
+ <xsl:if test="../*[local-name()='tfoot']">
3011
+ <fo:table-footer>
3012
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3013
+ </fo:table-footer>
3014
+ </xsl:if>
3015
+ </xsl:template><xsl:template name="insertTableFooter2">
2764
3016
  <xsl:param name="cols-count"/>
2765
3017
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2766
3018
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -2784,11 +3036,29 @@
2784
3036
  <!-- fn will be processed inside 'note' processing -->
2785
3037
 
2786
3038
 
3039
+
3040
+
3041
+
3042
+
2787
3043
  <!-- except gb -->
2788
3044
 
2789
3045
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2790
3046
 
2791
3047
 
3048
+ <!-- show Note under table in preface (ex. abstract) sections -->
3049
+ <!-- empty, because notes show at page side in main sections -->
3050
+ <!-- <xsl:if test="$namespace = 'bipm'">
3051
+ <xsl:choose>
3052
+ <xsl:when test="ancestor::*[local-name()='preface']">
3053
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3054
+ </xsl:when>
3055
+ <xsl:otherwise>
3056
+ <fo:block/>
3057
+ </xsl:otherwise>
3058
+ </xsl:choose>
3059
+ </xsl:if> -->
3060
+
3061
+
2792
3062
  <!-- horizontal row separator -->
2793
3063
 
2794
3064
 
@@ -2802,6 +3072,90 @@
2802
3072
  </fo:table-footer>
2803
3073
 
2804
3074
  </xsl:if>
3075
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3076
+ <xsl:param name="table_attributes"/>
3077
+ <xsl:param name="colwidths"/>
3078
+
3079
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3080
+
3081
+ <xsl:if test="$isNoteOrFnExist = 'true'">
3082
+
3083
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
3084
+
3085
+ <fo:table keep-with-previous="always">
3086
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3087
+ <xsl:choose>
3088
+ <xsl:when test="@name = 'border-top'">
3089
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
3090
+ </xsl:when>
3091
+ <xsl:when test="@name = 'border'">
3092
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3093
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3094
+ </xsl:when>
3095
+ <xsl:otherwise>
3096
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3097
+ </xsl:otherwise>
3098
+ </xsl:choose>
3099
+ </xsl:for-each>
3100
+
3101
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3102
+ <xsl:choose>
3103
+ <xsl:when test=". = 1 or . = 0">
3104
+ <fo:table-column column-width="proportional-column-width(2)"/>
3105
+ </xsl:when>
3106
+ <xsl:otherwise>
3107
+ <fo:table-column column-width="proportional-column-width({.})"/>
3108
+ </xsl:otherwise>
3109
+ </xsl:choose>
3110
+ </xsl:for-each>
3111
+
3112
+ <fo:table-body>
3113
+ <fo:table-row>
3114
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3115
+
3116
+ <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3117
+
3118
+
3119
+
3120
+ <!-- fn will be processed inside 'note' processing -->
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+ <!-- except gb -->
3129
+
3130
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3131
+
3132
+
3133
+ <!-- <xsl:if test="$namespace = 'bipm'">
3134
+ <xsl:choose>
3135
+ <xsl:when test="ancestor::*[local-name()='preface']">
3136
+ show Note under table in preface (ex. abstract) sections
3137
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3138
+ </xsl:when>
3139
+ <xsl:otherwise>
3140
+ empty, because notes show at page side in main sections
3141
+ <fo:block/>
3142
+ </xsl:otherwise>
3143
+ </xsl:choose>
3144
+ </xsl:if> -->
3145
+
3146
+
3147
+ <!-- horizontal row separator -->
3148
+
3149
+
3150
+ <!-- fn processing -->
3151
+ <xsl:call-template name="fn_display"/>
3152
+
3153
+ </fo:table-cell>
3154
+ </fo:table-row>
3155
+ </fo:table-body>
3156
+
3157
+ </fo:table>
3158
+ </xsl:if>
2805
3159
  </xsl:template><xsl:template match="*[local-name()='tbody']">
2806
3160
 
2807
3161
  <xsl:variable name="cols-count">
@@ -2904,8 +3258,12 @@
2904
3258
 
2905
3259
  </xsl:if>
2906
3260
 
2907
-
2908
-
3261
+
3262
+
3263
+
3264
+ <!-- <xsl:if test="$namespace = 'bipm'">
3265
+ <xsl:attribute name="height">8mm</xsl:attribute>
3266
+ </xsl:if> -->
2909
3267
 
2910
3268
  <xsl:apply-templates/>
2911
3269
  </fo:table-row>
@@ -2931,6 +3289,7 @@
2931
3289
 
2932
3290
 
2933
3291
 
3292
+
2934
3293
  <xsl:if test="@colspan">
2935
3294
  <xsl:attribute name="number-columns-spanned">
2936
3295
  <xsl:value-of select="@colspan"/>
@@ -2976,7 +3335,8 @@
2976
3335
  <xsl:attribute name="border">solid black 0</xsl:attribute>
2977
3336
  </xsl:if>
2978
3337
 
2979
-
3338
+
3339
+
2980
3340
 
2981
3341
 
2982
3342
 
@@ -2994,7 +3354,8 @@
2994
3354
  </xsl:attribute>
2995
3355
  </xsl:if>
2996
3356
  <xsl:call-template name="display-align"/>
2997
- <fo:block>
3357
+ <fo:block>
3358
+
2998
3359
  <xsl:apply-templates/>
2999
3360
  </fo:block>
3000
3361
  </fo:table-cell>
@@ -3009,14 +3370,17 @@
3009
3370
 
3010
3371
 
3011
3372
 
3373
+
3374
+
3012
3375
  <fo:inline padding-right="2mm">
3013
3376
 
3014
3377
 
3015
3378
 
3016
-
3379
+
3017
3380
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3018
3381
 
3019
3382
  </fo:inline>
3383
+
3020
3384
  <xsl:apply-templates mode="process"/>
3021
3385
  </fo:block>
3022
3386
 
@@ -3043,6 +3407,7 @@
3043
3407
 
3044
3408
 
3045
3409
 
3410
+
3046
3411
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3047
3412
 
3048
3413
 
@@ -3052,12 +3417,15 @@
3052
3417
 
3053
3418
 
3054
3419
 
3420
+
3055
3421
  <xsl:value-of select="@reference"/>
3056
3422
 
3423
+
3057
3424
  </fo:inline>
3058
3425
  <fo:inline>
3059
3426
 
3060
- <xsl:apply-templates/>
3427
+ <!-- <xsl:apply-templates /> -->
3428
+ <xsl:copy-of select="./node()"/>
3061
3429
  </fo:inline>
3062
3430
  </fo:block>
3063
3431
  </xsl:if>
@@ -3094,7 +3462,20 @@
3094
3462
  <xsl:variable name="following_dl_colwidths">
3095
3463
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
3096
3464
  <xsl:variable name="html-table">
3097
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3465
+ <xsl:variable name="doc_ns">
3466
+
3467
+ </xsl:variable>
3468
+ <xsl:variable name="ns">
3469
+ <xsl:choose>
3470
+ <xsl:when test="normalize-space($doc_ns) != ''">
3471
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3472
+ </xsl:when>
3473
+ <xsl:otherwise>
3474
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3475
+ </xsl:otherwise>
3476
+ </xsl:choose>
3477
+ </xsl:variable>
3478
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3098
3479
  <xsl:element name="{$ns}:table">
3099
3480
  <xsl:for-each select="*[local-name() = 'dl'][1]">
3100
3481
  <tbody>
@@ -3159,7 +3540,8 @@
3159
3540
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
3160
3541
  </xsl:if>
3161
3542
 
3162
- <xsl:apply-templates/>
3543
+ <!-- <xsl:apply-templates /> -->
3544
+ <xsl:copy-of select="./node()"/>
3163
3545
  </fo:block>
3164
3546
  </fo:table-cell>
3165
3547
  </fo:table-row>
@@ -3184,9 +3566,12 @@
3184
3566
 
3185
3567
 
3186
3568
 
3569
+
3187
3570
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3188
3571
 
3572
+
3189
3573
  <xsl:value-of select="@reference"/>
3574
+
3190
3575
  </fo:basic-link>
3191
3576
  </fo:inline>
3192
3577
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -3194,7 +3579,11 @@
3194
3579
  <xsl:apply-templates/>
3195
3580
  </fo:inline>
3196
3581
  </xsl:template><xsl:template match="*[local-name()='dl']">
3197
- <fo:block-container margin-left="0mm">
3582
+ <fo:block-container>
3583
+
3584
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3585
+
3586
+
3198
3587
  <xsl:if test="parent::*[local-name() = 'note']">
3199
3588
  <xsl:attribute name="margin-left">
3200
3589
  <xsl:choose>
@@ -3204,8 +3593,11 @@
3204
3593
  </xsl:attribute>
3205
3594
 
3206
3595
  </xsl:if>
3207
- <fo:block-container margin-left="0mm">
3208
-
3596
+ <fo:block-container>
3597
+
3598
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3599
+
3600
+
3209
3601
  <xsl:variable name="parent" select="local-name(..)"/>
3210
3602
 
3211
3603
  <xsl:variable name="key_iso">
@@ -3223,9 +3615,12 @@
3223
3615
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
3224
3616
 
3225
3617
  <xsl:variable name="title-where">
3226
- <xsl:call-template name="getTitle">
3227
- <xsl:with-param name="name" select="'title-where'"/>
3228
- </xsl:call-template>
3618
+
3619
+ <xsl:call-template name="getLocalizedString">
3620
+ <xsl:with-param name="key">where</xsl:with-param>
3621
+ </xsl:call-template>
3622
+
3623
+
3229
3624
  </xsl:variable>
3230
3625
  <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3231
3626
  <xsl:apply-templates select="*[local-name()='dt']/*"/>
@@ -3243,9 +3638,12 @@
3243
3638
 
3244
3639
 
3245
3640
  <xsl:variable name="title-where">
3246
- <xsl:call-template name="getTitle">
3247
- <xsl:with-param name="name" select="'title-where'"/>
3248
- </xsl:call-template>
3641
+
3642
+ <xsl:call-template name="getLocalizedString">
3643
+ <xsl:with-param name="key">where</xsl:with-param>
3644
+ </xsl:call-template>
3645
+
3646
+
3249
3647
  </xsl:variable>
3250
3648
  <xsl:value-of select="$title-where"/>
3251
3649
  </fo:block>
@@ -3259,9 +3657,12 @@
3259
3657
 
3260
3658
 
3261
3659
  <xsl:variable name="title-key">
3262
- <xsl:call-template name="getTitle">
3263
- <xsl:with-param name="name" select="'title-key'"/>
3264
- </xsl:call-template>
3660
+
3661
+ <xsl:call-template name="getLocalizedString">
3662
+ <xsl:with-param name="key">key</xsl:with-param>
3663
+ </xsl:call-template>
3664
+
3665
+
3265
3666
  </xsl:variable>
3266
3667
  <xsl:value-of select="$title-key"/>
3267
3668
  </fo:block>
@@ -3298,7 +3699,20 @@
3298
3699
  </xsl:choose>
3299
3700
  <!-- create virtual html table for dl/[dt and dd] -->
3300
3701
  <xsl:variable name="html-table">
3301
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3702
+ <xsl:variable name="doc_ns">
3703
+
3704
+ </xsl:variable>
3705
+ <xsl:variable name="ns">
3706
+ <xsl:choose>
3707
+ <xsl:when test="normalize-space($doc_ns) != ''">
3708
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3709
+ </xsl:when>
3710
+ <xsl:otherwise>
3711
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3712
+ </xsl:otherwise>
3713
+ </xsl:choose>
3714
+ </xsl:variable>
3715
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3302
3716
  <xsl:element name="{$ns}:table">
3303
3717
  <tbody>
3304
3718
  <xsl:apply-templates mode="dl"/>
@@ -3444,6 +3858,7 @@
3444
3858
 
3445
3859
 
3446
3860
 
3861
+
3447
3862
  <xsl:apply-templates/>
3448
3863
  <!-- <xsl:if test="$namespace = 'gb'">
3449
3864
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -3497,6 +3912,7 @@
3497
3912
  </fo:inline>
3498
3913
  </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
3499
3914
  <fo:inline font-weight="bold">
3915
+
3500
3916
  <xsl:apply-templates/>
3501
3917
  </fo:inline>
3502
3918
  </xsl:template><xsl:template match="*[local-name()='sup']">
@@ -3510,18 +3926,18 @@
3510
3926
  </xsl:template><xsl:template match="*[local-name()='tt']">
3511
3927
  <fo:inline xsl:use-attribute-sets="tt-style">
3512
3928
  <xsl:variable name="_font-size">
3513
-
3514
-
3515
-
3929
+
3930
+
3931
+
3516
3932
 
3517
3933
 
3518
3934
  10
3519
3935
 
3520
3936
 
3521
3937
 
3522
-
3523
3938
 
3524
-
3939
+
3940
+
3525
3941
 
3526
3942
 
3527
3943
  </xsl:variable>
@@ -3825,7 +4241,18 @@
3825
4241
  <xsl:with-param name="previousRow" select="$newRow"/>
3826
4242
  </xsl:apply-templates>
3827
4243
  </xsl:template><xsl:template name="getLang">
3828
- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
4244
+ <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
4245
+ <xsl:variable name="language">
4246
+ <xsl:choose>
4247
+ <xsl:when test="$language_current != ''">
4248
+ <xsl:value-of select="$language_current"/>
4249
+ </xsl:when>
4250
+ <xsl:otherwise>
4251
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
4252
+ </xsl:otherwise>
4253
+ </xsl:choose>
4254
+ </xsl:variable>
4255
+
3829
4256
  <xsl:choose>
3830
4257
  <xsl:when test="$language = 'English'">en</xsl:when>
3831
4258
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
@@ -3859,7 +4286,8 @@
3859
4286
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
3860
4287
  <xsl:value-of select="substring($str, 2)"/>
3861
4288
  </xsl:template><xsl:template match="mathml:math">
3862
- <fo:inline font-family="STIX2Math">
4289
+ <fo:inline font-family="STIX Two Math"> <!-- -->
4290
+
3863
4291
  <xsl:variable name="mathml">
3864
4292
  <xsl:apply-templates select="." mode="mathml"/>
3865
4293
  </xsl:variable>
@@ -3889,6 +4317,7 @@
3889
4317
  </xsl:choose>
3890
4318
  </xsl:variable>
3891
4319
  <fo:inline xsl:use-attribute-sets="link-style">
4320
+
3892
4321
  <xsl:choose>
3893
4322
  <xsl:when test="$target = ''">
3894
4323
  <xsl:apply-templates/>
@@ -3942,10 +4371,14 @@
3942
4371
  </fo:inline>
3943
4372
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
3944
4373
  <xsl:variable name="title-modified">
3945
- <xsl:call-template name="getTitle">
3946
- <xsl:with-param name="name" select="'title-modified'"/>
3947
- </xsl:call-template>
4374
+
4375
+ <xsl:call-template name="getLocalizedString">
4376
+ <xsl:with-param name="key">modified</xsl:with-param>
4377
+ </xsl:call-template>
4378
+
4379
+
3948
4380
  </xsl:variable>
4381
+
3949
4382
  <xsl:choose>
3950
4383
  <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3951
4384
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
@@ -3953,7 +4386,7 @@
3953
4386
  <xsl:apply-templates/>
3954
4387
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3955
4388
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3956
-
4389
+
3957
4390
  <xsl:apply-templates/>
3958
4391
  </fo:basic-link>
3959
4392
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -4006,6 +4439,8 @@
4006
4439
 
4007
4440
 
4008
4441
 
4442
+
4443
+
4009
4444
  <fo:inline xsl:use-attribute-sets="note-name-style">
4010
4445
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4011
4446
  </fo:inline>
@@ -4096,7 +4531,8 @@
4096
4531
  </fo:inline>
4097
4532
  </xsl:if>
4098
4533
  </xsl:template><xsl:template match="*[local-name() = 'figure']">
4099
- <fo:block-container id="{@id}">
4534
+ <fo:block-container id="{@id}">
4535
+
4100
4536
  <fo:block>
4101
4537
  <xsl:apply-templates/>
4102
4538
  </fo:block>
@@ -4131,15 +4567,109 @@
4131
4567
 
4132
4568
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
4133
4569
  </fo:block>
4134
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4570
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4135
4571
  <xsl:apply-templates mode="contents"/>
4136
4572
  <xsl:text> </xsl:text>
4137
- </xsl:template><xsl:template match="text()" mode="contents">
4573
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
4574
+ <xsl:apply-templates mode="bookmarks"/>
4575
+ <xsl:text> </xsl:text>
4576
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
4577
+ <xsl:value-of select="."/>
4578
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
4138
4579
  <xsl:value-of select="."/>
4139
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4580
+ </xsl:template><xsl:template match="node()" mode="contents">
4581
+ <xsl:apply-templates mode="contents"/>
4582
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
4583
+ <xsl:apply-templates mode="bookmarks"/>
4584
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
4585
+ <xsl:apply-templates select="."/>
4586
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4587
+ <xsl:apply-templates mode="bookmarks"/>
4588
+ </xsl:template><xsl:template name="addBookmarks">
4589
+ <xsl:param name="contents"/>
4590
+ <xsl:if test="xalan:nodeset($contents)//item">
4591
+ <fo:bookmark-tree>
4592
+ <xsl:choose>
4593
+ <xsl:when test="xalan:nodeset($contents)/doc">
4594
+ <xsl:choose>
4595
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
4596
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
4597
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4598
+ <fo:bookmark-title>
4599
+ <xsl:variable name="bookmark-title_">
4600
+ <xsl:call-template name="getLangVersion">
4601
+ <xsl:with-param name="lang" select="@lang"/>
4602
+ </xsl:call-template>
4603
+ </xsl:variable>
4604
+ <xsl:choose>
4605
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
4606
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
4607
+ </xsl:when>
4608
+ <xsl:otherwise>
4609
+ <xsl:choose>
4610
+ <xsl:when test="@lang = 'en'">English</xsl:when>
4611
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
4612
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
4613
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
4614
+ </xsl:choose>
4615
+ </xsl:otherwise>
4616
+ </xsl:choose>
4617
+ </fo:bookmark-title>
4618
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
4619
+ </fo:bookmark>
4620
+
4621
+ </xsl:for-each>
4622
+ </xsl:when>
4623
+ <xsl:otherwise>
4624
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
4625
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
4626
+ </xsl:for-each>
4627
+ </xsl:otherwise>
4628
+ </xsl:choose>
4629
+ </xsl:when>
4630
+ <xsl:otherwise>
4631
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
4632
+ </xsl:otherwise>
4633
+ </xsl:choose>
4634
+
4635
+
4636
+
4637
+
4638
+
4639
+
4640
+
4641
+
4642
+ </fo:bookmark-tree>
4643
+ </xsl:if>
4644
+ </xsl:template><xsl:template name="getLangVersion">
4645
+ <xsl:param name="lang"/>
4646
+ <xsl:choose>
4647
+ <xsl:when test="$lang = 'en'">
4648
+
4649
+
4650
+ </xsl:when>
4651
+ <xsl:when test="$lang = 'fr'">
4652
+
4653
+
4654
+ </xsl:when>
4655
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
4656
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
4657
+ </xsl:choose>
4658
+ </xsl:template><xsl:template match="item" mode="bookmark">
4659
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
4660
+ <fo:bookmark-title>
4661
+ <xsl:if test="@section != ''">
4662
+ <xsl:value-of select="@section"/>
4663
+ <xsl:text> </xsl:text>
4664
+ </xsl:if>
4665
+ <xsl:value-of select="normalize-space(title)"/>
4666
+ </fo:bookmark-title>
4667
+ <xsl:apply-templates mode="bookmark"/>
4668
+ </fo:bookmark>
4669
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4140
4670
  <xsl:if test="normalize-space() != ''">
4141
4671
  <fo:block xsl:use-attribute-sets="figure-name-style">
4142
-
4672
+
4143
4673
  <xsl:apply-templates/>
4144
4674
  </fo:block>
4145
4675
  </xsl:if>
@@ -4194,7 +4724,7 @@
4194
4724
  <xsl:apply-templates/>
4195
4725
  </xsl:otherwise>
4196
4726
  </xsl:choose>
4197
- </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
4727
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
4198
4728
  <xsl:text> </xsl:text>
4199
4729
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
4200
4730
  <xsl:copy>
@@ -4576,9 +5106,14 @@
4576
5106
 
4577
5107
  <fo:inline>
4578
5108
 
4579
- <xsl:call-template name="getTitle">
4580
- <xsl:with-param name="name" select="'title-source'"/>
4581
- </xsl:call-template>
5109
+
5110
+
5111
+ <xsl:call-template name="getLocalizedString">
5112
+ <xsl:with-param name="key">source</xsl:with-param>
5113
+ </xsl:call-template>
5114
+
5115
+
5116
+
4582
5117
  <xsl:text>: </xsl:text>
4583
5118
  </fo:inline>
4584
5119
 
@@ -4727,9 +5262,12 @@
4727
5262
  </fo:block>
4728
5263
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
4729
5264
  <xsl:variable name="title-deprecated">
4730
- <xsl:call-template name="getTitle">
4731
- <xsl:with-param name="name" select="'title-deprecated'"/>
4732
- </xsl:call-template>
5265
+
5266
+ <xsl:call-template name="getLocalizedString">
5267
+ <xsl:with-param name="key">deprecated</xsl:with-param>
5268
+ </xsl:call-template>
5269
+
5270
+
4733
5271
  </xsl:variable>
4734
5272
  <fo:block xsl:use-attribute-sets="deprecates-style">
4735
5273
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -4776,13 +5314,14 @@
4776
5314
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
4777
5315
  <fo:block>
4778
5316
  <xsl:call-template name="setId"/>
5317
+
4779
5318
  <xsl:apply-templates/>
4780
5319
  </fo:block>
4781
5320
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
4782
5321
  <fo:block id="{@id}">
4783
5322
  <xsl:apply-templates/>
4784
5323
  </fo:block>
4785
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
5324
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4786
5325
 
4787
5326
  <fo:block id="{@id}">
4788
5327
  <xsl:apply-templates/>
@@ -4801,20 +5340,30 @@
4801
5340
  <!-- 0xA0 to space replacement -->
4802
5341
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
4803
5342
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
4804
- <fo:block-container margin-left="0mm">
4805
- <xsl:if test="parent::*[local-name() = 'note']">
4806
- <xsl:attribute name="margin-left">
4807
- <xsl:choose>
4808
- <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
4809
- <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
4810
- </xsl:choose>
4811
- </xsl:attribute>
4812
-
4813
- </xsl:if>
4814
- <fo:block-container margin-left="0mm">
4815
- <xsl:apply-templates select="." mode="ul_ol"/>
4816
- </fo:block-container>
4817
- </fo:block-container>
5343
+ <xsl:choose>
5344
+ <xsl:when test="parent::*[local-name() = 'note']">
5345
+ <fo:block-container>
5346
+ <xsl:attribute name="margin-left">
5347
+ <xsl:choose>
5348
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
5349
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
5350
+ </xsl:choose>
5351
+ </xsl:attribute>
5352
+
5353
+
5354
+ <fo:block-container margin-left="0mm">
5355
+ <fo:block>
5356
+ <xsl:apply-templates select="." mode="ul_ol"/>
5357
+ </fo:block>
5358
+ </fo:block-container>
5359
+ </fo:block-container>
5360
+ </xsl:when>
5361
+ <xsl:otherwise>
5362
+ <fo:block>
5363
+ <xsl:apply-templates select="." mode="ul_ol"/>
5364
+ </fo:block>
5365
+ </xsl:otherwise>
5366
+ </xsl:choose>
4818
5367
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
4819
5368
  <!-- <row>
4820
5369
  <date>05-07-2013</date>
@@ -4987,6 +5536,7 @@
4987
5536
 
4988
5537
 
4989
5538
 
5539
+
4990
5540
 
4991
5541
  </xsl:variable>
4992
5542
  <xsl:choose>
@@ -5003,6 +5553,7 @@
5003
5553
  <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'organization']/*[local-name() = 'name']"/>
5004
5554
 
5005
5555
 
5556
+
5006
5557
  </dc:creator>
5007
5558
  <dc:description>
5008
5559
  <xsl:variable name="abstract">
@@ -5012,6 +5563,7 @@
5012
5563
 
5013
5564
 
5014
5565
 
5566
+
5015
5567
  </xsl:variable>
5016
5568
  <xsl:value-of select="normalize-space($abstract)"/>
5017
5569
  </dc:description>
@@ -5083,13 +5635,22 @@
5083
5635
  </xsl:template><xsl:template name="split">
5084
5636
  <xsl:param name="pText" select="."/>
5085
5637
  <xsl:param name="sep" select="','"/>
5638
+ <xsl:param name="normalize-space" select="'true'"/>
5086
5639
  <xsl:if test="string-length($pText) &gt;0">
5087
5640
  <item>
5088
- <xsl:value-of select="normalize-space(substring-before(concat($pText, ','), $sep))"/>
5641
+ <xsl:choose>
5642
+ <xsl:when test="$normalize-space = 'true'">
5643
+ <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
5644
+ </xsl:when>
5645
+ <xsl:otherwise>
5646
+ <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
5647
+ </xsl:otherwise>
5648
+ </xsl:choose>
5089
5649
  </item>
5090
5650
  <xsl:call-template name="split">
5091
5651
  <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
5092
5652
  <xsl:with-param name="sep" select="$sep"/>
5653
+ <xsl:with-param name="normalize-space" select="$normalize-space"/>
5093
5654
  </xsl:call-template>
5094
5655
  </xsl:if>
5095
5656
  </xsl:template><xsl:template name="getDocumentId">
@@ -5112,6 +5673,7 @@
5112
5673
 
5113
5674
 
5114
5675
 
5676
+
5115
5677
  </xsl:variable>
5116
5678
  <xsl:if test="$documentNS != $XSLNS">
5117
5679
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -5137,4 +5699,40 @@
5137
5699
  </xsl:otherwise>
5138
5700
  </xsl:choose>
5139
5701
  </xsl:attribute>
5702
+ </xsl:template><xsl:template name="add-letter-spacing">
5703
+ <xsl:param name="text"/>
5704
+ <xsl:param name="letter-spacing" select="'0.15'"/>
5705
+ <xsl:if test="string-length($text) &gt; 0">
5706
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
5707
+ <fo:inline padding-right="{$letter-spacing}mm">
5708
+ <xsl:if test="$char = '®'">
5709
+ <xsl:attribute name="font-size">58%</xsl:attribute>
5710
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
5711
+ </xsl:if>
5712
+ <xsl:value-of select="$char"/>
5713
+ </fo:inline>
5714
+ <xsl:call-template name="add-letter-spacing">
5715
+ <xsl:with-param name="text" select="substring($text, 2)"/>
5716
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
5717
+ </xsl:call-template>
5718
+ </xsl:if>
5719
+ </xsl:template><xsl:template name="repeat">
5720
+ <xsl:param name="char" select="'*'"/>
5721
+ <xsl:param name="count"/>
5722
+ <xsl:if test="$count &gt; 0">
5723
+ <xsl:value-of select="$char"/>
5724
+ <xsl:call-template name="repeat">
5725
+ <xsl:with-param name="char" select="$char"/>
5726
+ <xsl:with-param name="count" select="$count - 1"/>
5727
+ </xsl:call-template>
5728
+ </xsl:if>
5729
+ </xsl:template><xsl:template name="getLocalizedString">
5730
+ <xsl:param name="key"/>
5731
+
5732
+ <xsl:variable name="curr_lang">
5733
+ <xsl:call-template name="getLang"/>
5734
+ </xsl:variable>
5735
+
5736
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
5737
+
5140
5738
  </xsl:template></xsl:stylesheet>