metanorma-iso 1.5.5 → 1.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/iso/basicdoc.rng +23 -0
  3. data/lib/asciidoctor/iso/front.rb +9 -15
  4. data/lib/asciidoctor/iso/isodoc.rng +121 -15
  5. data/lib/asciidoctor/iso/isostandard.rng +8 -1
  6. data/lib/asciidoctor/iso/section.rb +0 -7
  7. data/lib/isodoc/iso/html/isodoc.css +16 -4
  8. data/lib/isodoc/iso/html/isodoc.scss +18 -4
  9. data/lib/isodoc/iso/html/style-human.css +1 -1
  10. data/lib/isodoc/iso/html/style-iso.css +1 -1
  11. data/lib/isodoc/iso/iso.amendment.xsl +982 -291
  12. data/lib/isodoc/iso/iso.international-standard.xsl +982 -291
  13. data/lib/isodoc/iso/isosts_convert.rb +31 -0
  14. data/lib/isodoc/iso/xref.rb +7 -11
  15. data/lib/metanorma-iso.rb +1 -0
  16. data/lib/metanorma/iso/processor.rb +4 -1
  17. data/lib/metanorma/iso/version.rb +1 -1
  18. data/metanorma-iso.gemspec +2 -2
  19. data/spec/asciidoctor-iso/amd_spec.rb +7 -39
  20. data/spec/asciidoctor-iso/base_spec.rb +122 -6
  21. data/spec/asciidoctor-iso/cleanup_spec.rb +30 -30
  22. data/spec/asciidoctor-iso/table_spec.rb +111 -111
  23. data/spec/asciidoctor-iso/validate_spec.rb +35 -15
  24. data/spec/assets/xref_error.adoc +7 -0
  25. data/spec/isodoc/amd_spec.rb +32 -23
  26. data/spec/isodoc/blocks_spec.rb +1 -1
  27. data/spec/isodoc/i18n_spec.rb +17 -4
  28. data/spec/isodoc/inline_spec.rb +1 -1
  29. data/spec/isodoc/iso_spec.rb +5 -5
  30. data/spec/isodoc/metadata_spec.rb +2 -16
  31. data/spec/isodoc/postproc_spec.rb +4 -1
  32. data/spec/isodoc/ref_spec.rb +5 -2
  33. data/spec/isodoc/section_spec.rb +2 -2
  34. data/spec/isodoc/table_spec.rb +1 -1
  35. data/spec/isodoc/terms_spec.rb +1 -1
  36. data/spec/isodoc/xref_spec.rb +11 -11
  37. data/spec/metanorma/processor_spec.rb +1 -1
  38. data/spec/spec_helper.rb +5 -1
  39. metadata +8 -6
@@ -15,6 +15,8 @@
15
15
  <xsl:variable name="pageWidth" select="'210mm'"/>
16
16
  <xsl:variable name="pageHeight" select="'297mm'"/>
17
17
 
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
+
18
20
  <xsl:variable name="copyrightText" select="concat('© ISO ', iso:iso-standard/iso:bibdata/iso:copyright/iso:from ,' – All rights reserved')"/>
19
21
 
20
22
  <xsl:variable name="lang-1st-letter_tmp" select="substring-before(substring-after(/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso-with-lang'], '('), ')')"/>
@@ -293,6 +295,10 @@
293
295
 
294
296
  <xsl:call-template name="addPDFUAmeta"/>
295
297
 
298
+ <xsl:call-template name="addBookmarks">
299
+ <xsl:with-param name="contents" select="$contents"/>
300
+ </xsl:call-template>
301
+
296
302
  <!-- cover page -->
297
303
  <xsl:choose>
298
304
  <xsl:when test="$stage-abbreviation != ''">
@@ -396,10 +402,18 @@
396
402
  <fo:flow flow-name="xsl-region-body">
397
403
  <fo:block-container>
398
404
  <fo:block margin-top="-1mm" font-size="20pt" text-align="right">
399
- <xsl:value-of select="$stage-fullname-uppercased"/>
405
+ <xsl:value-of select="$stage-fullname-uppercased"/>
406
+ <!-- <xsl:if test="$doctype = 'amendment'">
407
+ <xsl:variable name="title-amendment">
408
+ <xsl:call-template name="getTitle">
409
+ <xsl:with-param name="name" select="'title-amendment'"/>
410
+ </xsl:call-template>
411
+ </xsl:variable>
412
+ <xsl:text> </xsl:text><xsl:value-of select="$title-amendment"/>
413
+ </xsl:if> -->
400
414
  </fo:block>
401
415
  <fo:block font-size="20pt" font-weight="bold" text-align="right">
402
- <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso']"/>
416
+ <xsl:value-of select="$docidentifierISO"/>
403
417
  </fo:block>
404
418
 
405
419
 
@@ -471,16 +485,13 @@
471
485
 
472
486
  <xsl:call-template name="printTitlePartEn"/>
473
487
 
474
- <!-- <xsl:if test="normalize-space($title-part) != ''">
475
- <xsl:if test="$part != ''">
476
- <xsl:text> — </xsl:text>
477
- <fo:block font-weight="normal" margin-top="6pt">
478
- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
479
- <xsl:text>:</xsl:text>
480
- </fo:block>
481
- </xsl:if>
482
- <xsl:value-of select="$title-part"/>
483
- </xsl:if> -->
488
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
489
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
490
+ <fo:block margin-top="12pt">
491
+ <xsl:call-template name="printAmendmentTitle"/>
492
+ </fo:block>
493
+ </xsl:if>
494
+
484
495
  </fo:block>
485
496
 
486
497
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -495,6 +506,15 @@
495
506
 
496
507
  <xsl:call-template name="printTitlePartFr"/>
497
508
 
509
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-amd']"/>
510
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
511
+ <fo:block margin-top="6pt">
512
+ <xsl:call-template name="printAmendmentTitle">
513
+ <xsl:with-param name="lang" select="'fr'"/>
514
+ </xsl:call-template>
515
+ </fo:block>
516
+ </xsl:if>
517
+
498
518
  </fo:block>
499
519
  </fo:block>
500
520
  <fo:block margin-top="10mm">
@@ -539,36 +559,69 @@
539
559
  </fo:table-cell>
540
560
  <fo:table-cell>
541
561
  <fo:block text-align="left">
542
- <xsl:value-of select="$doctype_uppercased"/>
562
+ <xsl:choose>
563
+ <xsl:when test="$doctype = 'amendment'">
564
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(translate(/iso:iso-standard/iso:bibdata/iso:ext/iso:updates-document-type,'-',' ')))"/>
565
+ </xsl:when>
566
+ <xsl:otherwise>
567
+ <xsl:value-of select="$doctype_uppercased"/>
568
+ </xsl:otherwise>
569
+ </xsl:choose>
543
570
  </fo:block>
544
571
  </fo:table-cell>
545
572
  <fo:table-cell>
546
573
  <fo:block text-align="right" font-weight="bold" margin-bottom="13mm">
547
- <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso']"/>
574
+ <xsl:value-of select="$docidentifierISO"/>
548
575
  </fo:block>
549
576
  </fo:table-cell>
550
577
  </fo:table-row>
551
578
  <fo:table-row height="42mm">
552
579
  <fo:table-cell number-columns-spanned="3" font-size="10pt" line-height="1.2">
553
580
  <fo:block text-align="right">
554
- <xsl:if test="$stage-abbreviation = 'PRF' or $stage-abbreviation = 'IS' or $stage-abbreviation = 'published'">
581
+ <xsl:if test="$stage-abbreviation = 'PRF' or $stage-abbreviation = 'IS' or $stage-abbreviation = 'D' or $stage-abbreviation = 'published'">
555
582
  <xsl:call-template name="printEdition"/>
556
583
  </xsl:if>
557
584
  <xsl:choose>
558
- <xsl:when test="$stage-abbreviation = 'IS'">
585
+ <xsl:when test="$stage-abbreviation = 'IS' and /iso:iso-standard/iso:bibdata/iso:date[@type = 'published']">
559
586
  <xsl:value-of select="$linebreak"/>
560
587
  <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'published']"/>
561
588
  </xsl:when>
562
- <xsl:when test="$stage-abbreviation = 'published'">
589
+ <xsl:when test="($stage-abbreviation = 'IS' or $stage-abbreviation = 'D') and /iso:iso-standard/iso:bibdata/iso:date[@type = 'created']">
590
+ <xsl:value-of select="$linebreak"/>
591
+ <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'created']"/>
592
+ </xsl:when>
593
+ <xsl:when test="$stage-abbreviation = 'IS' or $stage-abbreviation = 'published'">
563
594
  <xsl:value-of select="$linebreak"/>
564
595
  <xsl:value-of select="substring(/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date,1, 7)"/>
565
596
  </xsl:when>
566
597
  </xsl:choose>
567
- <!-- <xsl:value-of select="$linebreak"/>
568
- <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/> -->
598
+ </fo:block>
599
+ <!-- <xsl:value-of select="$linebreak"/>
600
+ <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/> -->
601
+ <xsl:if test="$doctype = 'amendment'">
602
+ <fo:block text-align="right" margin-right="0.5mm">
603
+ <fo:block font-weight="bold" margin-top="4pt">
604
+ <xsl:variable name="title-amendment">
605
+ <xsl:call-template name="getTitle">
606
+ <xsl:with-param name="name" select="'title-amendment'"/>
607
+ </xsl:call-template>
608
+ </xsl:variable>
609
+ <xsl:value-of select="$title-amendment"/><xsl:text> </xsl:text>
610
+ <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
611
+ <xsl:if test="normalize-space($amendment-number) != ''">
612
+ <xsl:value-of select="$amendment-number"/><xsl:text> </xsl:text>
613
+ </xsl:if>
614
+ </fo:block>
615
+ <fo:block>
616
+ <xsl:if test="/iso:iso-standard/iso:bibdata/iso:date[@type = 'updated']">
617
+ <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'updated']"/>
618
+ </xsl:if>
619
+ </fo:block>
569
620
  </fo:block>
621
+ </xsl:if>
570
622
  </fo:table-cell>
571
623
  </fo:table-row>
624
+
572
625
  </fo:table-body>
573
626
  </fo:table>
574
627
 
@@ -637,6 +690,12 @@
637
690
  </xsl:if>
638
691
  <xsl:value-of select="$title-part"/>
639
692
  </xsl:if> -->
693
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
694
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
695
+ <fo:block margin-right="-5mm" margin-top="12pt">
696
+ <xsl:call-template name="printAmendmentTitle"/>
697
+ </fo:block>
698
+ </xsl:if>
640
699
  </fo:block>
641
700
 
642
701
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -651,6 +710,15 @@
651
710
 
652
711
  <xsl:call-template name="printTitlePartFr"/>
653
712
 
713
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-amd']"/>
714
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
715
+ <fo:block margin-right="-5mm" margin-top="6pt">
716
+ <xsl:call-template name="printAmendmentTitle">
717
+ <xsl:with-param name="lang" select="'fr'"/>
718
+ </xsl:call-template>
719
+ </fo:block>
720
+ </xsl:if>
721
+
654
722
  </fo:block>
655
723
  </fo:block>
656
724
  </fo:block-container>
@@ -714,7 +782,7 @@
714
782
  </fo:table-cell>
715
783
  <fo:table-cell>
716
784
  <fo:block text-align="right" font-weight="bold" margin-bottom="13mm">
717
- <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso']"/>
785
+ <xsl:value-of select="$docidentifierISO"/>
718
786
  </fo:block>
719
787
  </fo:table-cell>
720
788
  </fo:table-row>
@@ -891,7 +959,7 @@
891
959
  </fo:block-container>
892
960
  <fo:block font-size="11pt" margin-bottom="8pt"><xsl:value-of select="$linebreak"/></fo:block>
893
961
  <fo:block-container font-size="40pt" text-align="center" margin-bottom="12pt" border="0.5pt solid black">
894
- <xsl:variable name="stage-title" select="substring-after(substring-before(/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso'], ' '), '/')"/>
962
+ <xsl:variable name="stage-title" select="substring-after(substring-before($docidentifierISO, ' '), '/')"/>
895
963
  <fo:block padding-top="2mm"><xsl:value-of select="$stage-title"/><xsl:text> stage</xsl:text></fo:block>
896
964
  </fo:block-container>
897
965
  <fo:block><xsl:value-of select="$linebreak"/></fo:block>
@@ -964,7 +1032,7 @@
964
1032
  </xsl:if>
965
1033
 
966
1034
  <xsl:variable name="margin-left">12</xsl:variable>
967
- <xsl:for-each select="xalan:nodeset($contents)//item"><!-- [@display = 'true'][not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
1035
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
968
1036
 
969
1037
  <fo:block>
970
1038
  <xsl:if test="@level = 1">
@@ -994,9 +1062,9 @@
994
1062
  </fo:list-item-label>
995
1063
  <fo:list-item-body start-indent="body-start()">
996
1064
  <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
997
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
1065
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
998
1066
 
999
- <xsl:apply-templates/>
1067
+ <xsl:apply-templates select="title"/>
1000
1068
 
1001
1069
  <fo:inline keep-together.within-line="always">
1002
1070
  <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
@@ -1065,19 +1133,8 @@
1065
1133
 
1066
1134
  <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
1067
1135
  <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1068
- <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1069
- <xsl:variable name="title-amendment">
1070
- <xsl:call-template name="getTitle">
1071
- <xsl:with-param name="name" select="'title-amendment'"/>
1072
- </xsl:call-template>
1073
- </xsl:variable>
1074
- <xsl:value-of select="$title-amendment"/>
1075
- <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1076
- <xsl:if test="normalize-space($amendment-number) != ''">
1077
- <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
1078
- </xsl:if>
1079
- <xsl:text>: </xsl:text>
1080
- <xsl:value-of select="$title-amd"/>
1136
+ <fo:block margin-top="12pt">
1137
+ <xsl:call-template name="printAmendmentTitle"/>
1081
1138
  </fo:block>
1082
1139
  </xsl:if>
1083
1140
 
@@ -1172,6 +1229,27 @@
1172
1229
  <xsl:apply-templates/>
1173
1230
  </xsl:template>
1174
1231
 
1232
+ <xsl:template name="printAmendmentTitle">
1233
+ <xsl:param name="lang" select="'en'"/>
1234
+ <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1235
+ <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1236
+ <fo:block font-weight="normal" line-height="1.1">
1237
+ <xsl:variable name="title-amendment">
1238
+ <xsl:call-template name="getTitle">
1239
+ <xsl:with-param name="name" select="'title-amendment'"/>
1240
+ </xsl:call-template>
1241
+ </xsl:variable>
1242
+ <xsl:value-of select="$title-amendment"/>
1243
+ <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1244
+ <xsl:if test="normalize-space($amendment-number) != ''">
1245
+ <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
1246
+ </xsl:if>
1247
+ <xsl:text>: </xsl:text>
1248
+ <xsl:value-of select="$title-amd"/>
1249
+ </fo:block>
1250
+ </xsl:if>
1251
+ </xsl:template>
1252
+
1175
1253
  <!-- ============================= -->
1176
1254
  <!-- CONTENTS -->
1177
1255
  <!-- ============================= -->
@@ -1196,9 +1274,7 @@
1196
1274
  </xsl:variable>
1197
1275
 
1198
1276
  <xsl:variable name="display">
1199
- <xsl:choose>
1200
- <xsl:when test="ancestor-or-self::iso:bibitem">false</xsl:when>
1201
- <xsl:when test="ancestor-or-self::iso:term">false</xsl:when>
1277
+ <xsl:choose>
1202
1278
  <xsl:when test="ancestor-or-self::iso:annex and $level &gt;= 2">false</xsl:when>
1203
1279
  <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when>
1204
1280
  <xsl:when test="$level &lt;= 3">true</xsl:when>
@@ -1206,8 +1282,16 @@
1206
1282
  </xsl:choose>
1207
1283
  </xsl:variable>
1208
1284
 
1285
+ <xsl:variable name="skip">
1286
+ <xsl:choose>
1287
+ <xsl:when test="ancestor-or-self::iso:bibitem">true</xsl:when>
1288
+ <xsl:when test="ancestor-or-self::iso:term">true</xsl:when>
1289
+ <xsl:otherwise>false</xsl:otherwise>
1290
+ </xsl:choose>
1291
+ </xsl:variable>
1292
+
1209
1293
 
1210
- <xsl:if test="$display = 'true'">
1294
+ <xsl:if test="$skip = 'false'">
1211
1295
 
1212
1296
  <xsl:variable name="title">
1213
1297
  <xsl:call-template name="getName"/>
@@ -1218,12 +1302,13 @@
1218
1302
  <xsl:if test="ancestor-or-self::iso:annex">annex</xsl:if>
1219
1303
  </xsl:variable>
1220
1304
 
1221
- <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}">
1222
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1305
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
1306
+ <title>
1307
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1308
+ </title>
1309
+ <xsl:apply-templates mode="contents"/>
1223
1310
  </item>
1224
- <xsl:apply-templates mode="contents"/>
1225
- </xsl:if>
1226
-
1311
+ </xsl:if>
1227
1312
  </xsl:template>
1228
1313
 
1229
1314
 
@@ -1446,7 +1531,7 @@
1446
1531
  </xsl:element>
1447
1532
  <xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
1448
1533
  <fo:block margin-bottom="12pt">
1449
- <xsl:if test="ancestor::iso:annex">
1534
+ <xsl:if test="ancestor::iso:annex or following-sibling::iso:table">
1450
1535
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
1451
1536
  </xsl:if>
1452
1537
  <xsl:value-of select="$linebreak"/>
@@ -1579,7 +1664,7 @@
1579
1664
 
1580
1665
 
1581
1666
 
1582
- <xsl:template match="iso:ul | iso:ol">
1667
+ <xsl:template match="iso:ul | iso:ol" mode="ul_ol">
1583
1668
  <fo:list-block provisional-distance-between-starts="7mm" margin-top="8pt"> <!-- margin-bottom="8pt" -->
1584
1669
  <xsl:apply-templates/>
1585
1670
  </fo:list-block>
@@ -1606,7 +1691,9 @@
1606
1691
  </fo:list-item>
1607
1692
  </xsl:template>
1608
1693
 
1609
-
1694
+ <xsl:template match="iso:note" mode="process">
1695
+ <xsl:call-template name="note"/>
1696
+ </xsl:template>
1610
1697
 
1611
1698
  <xsl:template match="iso:preferred">
1612
1699
  <fo:block line-height="1.1">
@@ -1688,8 +1775,12 @@
1688
1775
 
1689
1776
  <xsl:template match="mathml:math" priority="2">
1690
1777
  <fo:inline font-family="Cambria Math">
1778
+ <xsl:variable name="mathml">
1779
+ <xsl:apply-templates select="." mode="mathml"/>
1780
+ </xsl:variable>
1691
1781
  <fo:instream-foreign-object fox:alt-text="Math">
1692
- <xsl:copy-of select="."/>
1782
+ <!-- <xsl:copy-of select="."/> -->
1783
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
1693
1784
  </fo:instream-foreign-object>
1694
1785
  </fo:inline>
1695
1786
  </xsl:template>
@@ -1979,6 +2070,12 @@
1979
2070
 
1980
2071
  </title-edition>
1981
2072
 
2073
+ <title-edition lang="fr">
2074
+
2075
+ <xsl:text>Édition </xsl:text>
2076
+
2077
+ </title-edition>
2078
+
1982
2079
 
1983
2080
  <title-toc lang="en">
1984
2081
 
@@ -1987,7 +2084,12 @@
1987
2084
 
1988
2085
 
1989
2086
  </title-toc>
1990
- <title-toc lang="fr">Sommaire</title-toc>
2087
+ <title-toc lang="fr">
2088
+
2089
+ <xsl:text>Sommaire</xsl:text>
2090
+
2091
+
2092
+ </title-toc>
1991
2093
 
1992
2094
  <title-toc lang="zh">Contents</title-toc>
1993
2095
 
@@ -2025,7 +2127,12 @@
2025
2127
 
2026
2128
 
2027
2129
 
2028
- <title-source lang="en">SOURCE</title-source>
2130
+ <title-source lang="en">
2131
+
2132
+ <xsl:text>SOURCE</xsl:text>
2133
+
2134
+
2135
+ </title-source>
2029
2136
 
2030
2137
  <title-keywords lang="en">Keywords</title-keywords>
2031
2138
 
@@ -2068,12 +2175,25 @@
2068
2175
  <title-warning lang="zh">警告</title-warning>
2069
2176
 
2070
2177
  <title-amendment lang="en">AMENDMENT</title-amendment>
2178
+
2179
+ <title-continued lang="en">(continued)</title-continued>
2180
+ <title-continued lang="fr">(continué)</title-continued>
2181
+
2071
2182
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
2072
2183
  <xsl:param name="name"/>
2073
- <xsl:variable name="lang">
2074
- <xsl:call-template name="getLang"/>
2184
+ <xsl:param name="lang"/>
2185
+ <xsl:variable name="lang_">
2186
+ <xsl:choose>
2187
+ <xsl:when test="$lang != ''">
2188
+ <xsl:value-of select="$lang"/>
2189
+ </xsl:when>
2190
+ <xsl:otherwise>
2191
+ <xsl:call-template name="getLang"/>
2192
+ </xsl:otherwise>
2193
+ </xsl:choose>
2075
2194
  </xsl:variable>
2076
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
2195
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
2196
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
2077
2197
  <xsl:choose>
2078
2198
  <xsl:when test="normalize-space($title_) != ''">
2079
2199
  <xsl:value-of select="$title_"/>
@@ -2082,18 +2202,20 @@
2082
2202
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
2083
2203
  </xsl:otherwise>
2084
2204
  </xsl:choose>
2085
- </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">
2205
+ </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">
2206
+
2207
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
2086
2208
 
2087
2209
  <xsl:attribute name="color">blue</xsl:attribute>
2088
2210
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
2089
2211
 
2090
2212
 
2213
+
2091
2214
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
2092
2215
  <xsl:attribute name="white-space">pre</xsl:attribute>
2093
2216
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
2094
2217
 
2095
- <xsl:attribute name="font-family">Courier</xsl:attribute>
2096
- <xsl:attribute name="font-size">9pt</xsl:attribute>
2218
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
2097
2219
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2098
2220
 
2099
2221
 
@@ -2103,6 +2225,7 @@
2103
2225
 
2104
2226
 
2105
2227
 
2228
+
2106
2229
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
2107
2230
 
2108
2231
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -2153,6 +2276,7 @@
2153
2276
 
2154
2277
 
2155
2278
 
2279
+
2156
2280
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
2157
2281
 
2158
2282
 
@@ -2173,6 +2297,7 @@
2173
2297
 
2174
2298
 
2175
2299
 
2300
+
2176
2301
 
2177
2302
 
2178
2303
 
@@ -2209,9 +2334,10 @@
2209
2334
 
2210
2335
 
2211
2336
 
2337
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2212
2338
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2213
2339
  <xsl:attribute name="text-align">center</xsl:attribute>
2214
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2340
+ <!-- <xsl:attribute name="margin-top">12pt</xsl:attribute> -->
2215
2341
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2216
2342
 
2217
2343
 
@@ -2220,6 +2346,7 @@
2220
2346
 
2221
2347
 
2222
2348
 
2349
+
2223
2350
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2224
2351
 
2225
2352
  <xsl:attribute name="font-size">12pt</xsl:attribute>
@@ -2242,11 +2369,13 @@
2242
2369
 
2243
2370
  <xsl:attribute name="color">blue</xsl:attribute>
2244
2371
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
2245
-
2372
+
2373
+
2246
2374
  </xsl:attribute-set><xsl:attribute-set name="eref-style">
2247
2375
 
2248
2376
 
2249
2377
 
2378
+
2250
2379
  </xsl:attribute-set><xsl:attribute-set name="note-style">
2251
2380
 
2252
2381
 
@@ -2266,20 +2395,20 @@
2266
2395
 
2267
2396
 
2268
2397
 
2398
+ </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">
2269
2399
 
2270
2400
 
2271
- </xsl:attribute-set><xsl:attribute-set name="note-name-style">
2272
2401
 
2273
2402
 
2274
2403
 
2275
2404
 
2405
+ <xsl:attribute name="padding-right">6mm</xsl:attribute>
2406
+
2276
2407
 
2277
2408
 
2278
- <xsl:attribute name="padding-right">6mm</xsl:attribute>
2279
2409
 
2280
2410
 
2281
2411
 
2282
-
2283
2412
 
2284
2413
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2285
2414
 
@@ -2309,6 +2438,8 @@
2309
2438
 
2310
2439
 
2311
2440
 
2441
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
2442
+
2312
2443
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
2313
2444
 
2314
2445
 
@@ -2337,6 +2468,7 @@
2337
2468
  </xsl:attribute-set><xsl:attribute-set name="origin-style">
2338
2469
 
2339
2470
 
2471
+
2340
2472
  </xsl:attribute-set><xsl:attribute-set name="term-style">
2341
2473
 
2342
2474
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
@@ -2345,6 +2477,7 @@
2345
2477
 
2346
2478
 
2347
2479
 
2480
+
2348
2481
 
2349
2482
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2350
2483
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -2388,14 +2521,16 @@
2388
2521
  </xsl:attribute-set><xsl:attribute-set name="tt-style">
2389
2522
 
2390
2523
 
2391
- <xsl:attribute name="font-family">Courier</xsl:attribute>
2392
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2524
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
2525
+
2393
2526
 
2394
2527
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
2395
2528
  <xsl:attribute name="font-size">11pt</xsl:attribute>
2396
2529
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2397
2530
  <xsl:attribute name="text-align">center</xsl:attribute>
2398
2531
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2532
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2533
+
2399
2534
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
2400
2535
 
2401
2536
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -2461,11 +2596,11 @@
2461
2596
 
2462
2597
 
2463
2598
 
2464
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2465
2599
 
2466
-
2467
2600
 
2468
- <xsl:call-template name="fn_name_display"/>
2601
+ <!-- $namespace = 'iso' or -->
2602
+
2603
+
2469
2604
 
2470
2605
 
2471
2606
 
@@ -2496,6 +2631,7 @@
2496
2631
  <xsl:with-param name="table" select="$simple-table"/>
2497
2632
  </xsl:call-template>
2498
2633
  </xsl:variable>
2634
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2499
2635
 
2500
2636
  <!-- <xsl:variable name="colwidths2">
2501
2637
  <xsl:call-template name="calculate-column-widths">
@@ -2516,40 +2652,65 @@
2516
2652
 
2517
2653
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2518
2654
 
2655
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2519
2656
 
2520
2657
 
2658
+
2659
+
2660
+
2521
2661
 
2522
2662
 
2663
+
2523
2664
 
2524
2665
 
2666
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2525
2667
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
2526
2668
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
2527
2669
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2528
2670
 
2529
2671
 
2530
2672
 
2531
- <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">
2673
+
2674
+
2675
+
2676
+ <xsl:variable name="table_attributes">
2677
+ <attribute name="table-layout">fixed</attribute>
2678
+ <attribute name="width">100%</attribute>
2679
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2680
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2532
2681
 
2533
- <xsl:attribute name="border">1.5pt solid black</xsl:attribute>
2682
+ <attribute name="border">1.5pt solid black</attribute>
2534
2683
  <xsl:if test="*[local-name()='thead']">
2535
- <xsl:attribute name="border-top">1pt solid black</xsl:attribute>
2684
+ <attribute name="border-top">1pt solid black</attribute>
2536
2685
  </xsl:if>
2537
2686
 
2538
2687
 
2539
2688
 
2540
2689
 
2541
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2542
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2543
-
2544
-
2545
-
2546
-
2690
+ <attribute name="margin-left">0mm</attribute>
2691
+ <attribute name="margin-right">0mm</attribute>
2547
2692
 
2693
+
2694
+
2695
+
2548
2696
 
2549
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2697
+
2550
2698
 
2699
+ </xsl:variable>
2700
+
2701
+
2702
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2551
2703
 
2704
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2705
+ <xsl:attribute name="{@name}">
2706
+ <xsl:value-of select="."/>
2707
+ </xsl:attribute>
2708
+ </xsl:for-each>
2552
2709
 
2710
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2711
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2712
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2713
+ </xsl:if>
2553
2714
 
2554
2715
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2555
2716
  <xsl:choose>
@@ -2573,6 +2734,33 @@
2573
2734
 
2574
2735
  </fo:table>
2575
2736
 
2737
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2738
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2739
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2740
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2741
+ </xsl:call-template>
2742
+ </xsl:for-each>
2743
+
2744
+ <!-- insert footer as table -->
2745
+ <!-- <fo:table>
2746
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2747
+ <xsl:attribute name="{@name}">
2748
+ <xsl:value-of select="."/>
2749
+ </xsl:attribute>
2750
+ </xsl:for-each>
2751
+
2752
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2753
+ <xsl:choose>
2754
+ <xsl:when test=". = 1 or . = 0">
2755
+ <fo:table-column column-width="proportional-column-width(2)"/>
2756
+ </xsl:when>
2757
+ <xsl:otherwise>
2758
+ <fo:table-column column-width="proportional-column-width({.})"/>
2759
+ </xsl:otherwise>
2760
+ </xsl:choose>
2761
+ </xsl:for-each>
2762
+ </fo:table>-->
2763
+
2576
2764
 
2577
2765
 
2578
2766
 
@@ -2581,8 +2769,11 @@
2581
2769
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2582
2770
  <xsl:if test="normalize-space() != ''">
2583
2771
  <fo:block xsl:use-attribute-sets="table-name-style">
2584
- <xsl:apply-templates/>
2585
- </fo:block>
2772
+
2773
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2774
+
2775
+ <xsl:apply-templates/>
2776
+ </fo:block>
2586
2777
  </xsl:if>
2587
2778
  </xsl:template><xsl:template name="calculate-columns-numbers">
2588
2779
  <xsl:param name="table-row"/>
@@ -2636,6 +2827,13 @@
2636
2827
  <xsl:for-each select="xalan:nodeset($table)//tr">
2637
2828
  <xsl:variable name="td_text">
2638
2829
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2830
+
2831
+ <!-- <xsl:if test="$namespace = 'bipm'">
2832
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
2833
+ <word><xsl:value-of select="normalize-space(.)"/></word>
2834
+ </xsl:for-each>
2835
+ </xsl:if> -->
2836
+
2639
2837
  </xsl:variable>
2640
2838
  <xsl:variable name="words">
2641
2839
  <xsl:variable name="string_with_added_zerospaces">
@@ -2695,31 +2893,35 @@
2695
2893
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2696
2894
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2697
2895
  <xsl:value-of select="@target"/>
2896
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2897
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
2898
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2698
2899
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2699
2900
  <xsl:param name="cols-count"/>
2700
2901
  <!-- font-weight="bold" -->
2701
- <fo:table-header>
2702
-
2703
- <fo:table-row>
2704
- <fo:table-cell number-columns-spanned="{$cols-count}"> <!-- border-left="1pt solid white" border-right="1pt solid white" border-top="1pt solid white" -->
2705
- <fo:block text-align="center" font-size="11pt" font-weight="bold">
2706
- <!-- (continued) -->
2707
- <fo:block-container position="absolute" top="-7mm">
2708
- <fo:block>
2709
- <fo:retrieve-table-marker retrieve-class-name="table_continued" retrieve-position-within-table="first-starting" retrieve-boundary-within-table="table-fragment"/>
2710
- </fo:block>
2711
- </fo:block-container>
2902
+ <fo:table-header>
2712
2903
 
2713
- </fo:block>
2714
- <!-- <fo:block>fn_name_display
2715
- <xsl:call-template name="fn_name_display"/>
2716
- </fo:block> -->
2717
-
2718
- </fo:table-cell>
2719
- </fo:table-row>
2904
+ <xsl:call-template name="table-header-title">
2905
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2906
+ </xsl:call-template>
2720
2907
 
2721
2908
  <xsl:apply-templates/>
2722
2909
  </fo:table-header>
2910
+ </xsl:template><xsl:template name="table-header-title">
2911
+ <xsl:param name="cols-count"/>
2912
+ <!-- row for title -->
2913
+ <fo:table-row>
2914
+ <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
2915
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
2916
+ <xsl:for-each select="ancestor::*[local-name()='table'][1]">
2917
+ <xsl:call-template name="fn_name_display"/>
2918
+ </xsl:for-each>
2919
+ <fo:block text-align="right" font-style="italic">
2920
+ <xsl:text> </xsl:text>
2921
+ <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
2922
+ </fo:block>
2923
+ </fo:table-cell>
2924
+ </fo:table-row>
2723
2925
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
2724
2926
  <fo:table-body>
2725
2927
  <xsl:apply-templates/>
@@ -2727,6 +2929,13 @@
2727
2929
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2728
2930
  <xsl:apply-templates/>
2729
2931
  </xsl:template><xsl:template name="insertTableFooter">
2932
+ <xsl:param name="cols-count"/>
2933
+ <xsl:if test="../*[local-name()='tfoot']">
2934
+ <fo:table-footer>
2935
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2936
+ </fo:table-footer>
2937
+ </xsl:if>
2938
+ </xsl:template><xsl:template name="insertTableFooter2">
2730
2939
  <xsl:param name="cols-count"/>
2731
2940
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2732
2941
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -2750,11 +2959,15 @@
2750
2959
  <!-- fn will be processed inside 'note' processing -->
2751
2960
 
2752
2961
 
2753
- <!-- except gb -->
2962
+
2963
+ <!-- except gb and bipm -->
2754
2964
 
2755
2965
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2756
2966
 
2757
2967
 
2968
+
2969
+
2970
+
2758
2971
  <!-- horizontal row separator -->
2759
2972
 
2760
2973
 
@@ -2768,6 +2981,86 @@
2768
2981
  </fo:table-footer>
2769
2982
 
2770
2983
  </xsl:if>
2984
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
2985
+ <xsl:param name="table_attributes"/>
2986
+ <xsl:param name="colwidths"/>
2987
+
2988
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2989
+
2990
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2991
+
2992
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
2993
+
2994
+ <fo:table keep-with-previous="always">
2995
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2996
+ <xsl:choose>
2997
+ <xsl:when test="@name = 'border-top'">
2998
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2999
+ </xsl:when>
3000
+ <xsl:when test="@name = 'border'">
3001
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3002
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3003
+ </xsl:when>
3004
+ <xsl:otherwise>
3005
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3006
+ </xsl:otherwise>
3007
+ </xsl:choose>
3008
+ </xsl:for-each>
3009
+
3010
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3011
+ <xsl:choose>
3012
+ <xsl:when test=". = 1 or . = 0">
3013
+ <fo:table-column column-width="proportional-column-width(2)"/>
3014
+ </xsl:when>
3015
+ <xsl:otherwise>
3016
+ <fo:table-column column-width="proportional-column-width({.})"/>
3017
+ </xsl:otherwise>
3018
+ </xsl:choose>
3019
+ </xsl:for-each>
3020
+
3021
+ <fo:table-body>
3022
+ <fo:table-row>
3023
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3024
+
3025
+ <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3026
+
3027
+
3028
+
3029
+ <!-- fn will be processed inside 'note' processing -->
3030
+
3031
+
3032
+
3033
+ <!-- except gb and bipm -->
3034
+
3035
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3036
+
3037
+
3038
+ <!-- <xsl:if test="$namespace = 'bipm'">
3039
+ <xsl:choose>
3040
+ <xsl:when test="ancestor::*[local-name()='preface']">
3041
+ show Note under table in preface (ex. abstract) sections
3042
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3043
+ </xsl:when>
3044
+ <xsl:otherwise>
3045
+ empty, because notes show at page side in main sections
3046
+ <fo:block/>
3047
+ </xsl:otherwise>
3048
+ </xsl:choose>
3049
+ </xsl:if> -->
3050
+
3051
+
3052
+ <!-- horizontal row separator -->
3053
+
3054
+
3055
+ <!-- fn processing -->
3056
+ <xsl:call-template name="fn_display"/>
3057
+
3058
+ </fo:table-cell>
3059
+ </fo:table-row>
3060
+ </fo:table-body>
3061
+
3062
+ </fo:table>
3063
+ </xsl:if>
2771
3064
  </xsl:template><xsl:template match="*[local-name()='tbody']">
2772
3065
 
2773
3066
  <xsl:variable name="cols-count">
@@ -2785,6 +3078,17 @@
2785
3078
  </xsl:choose>
2786
3079
  </xsl:variable>
2787
3080
 
3081
+
3082
+ <!-- if there isn't 'thead' and there is a table's title -->
3083
+ <xsl:if test="not(ancestor::*[local-name()='table']/*[local-name()='thead']) and ancestor::*[local-name()='table']/*[local-name()='name']">
3084
+ <fo:table-header>
3085
+ <xsl:call-template name="table-header-title">
3086
+ <xsl:with-param name="cols-count" select="$cols-count"/>
3087
+ </xsl:call-template>
3088
+ </fo:table-header>
3089
+ </xsl:if>
3090
+
3091
+
2788
3092
  <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
2789
3093
  <xsl:with-param name="cols-count" select="$cols-count"/>
2790
3094
  </xsl:apply-templates>
@@ -2794,6 +3098,30 @@
2794
3098
  </xsl:call-template>
2795
3099
 
2796
3100
  <fo:table-body>
3101
+
3102
+ <xsl:variable name="title_continued">
3103
+ <xsl:call-template name="getTitle">
3104
+ <xsl:with-param name="name" select="'title-continued'"/>
3105
+ </xsl:call-template>
3106
+ </xsl:variable>
3107
+ <fo:table-row height="0" keep-with-next.within-page="always">
3108
+ <fo:table-cell>
3109
+ <fo:marker marker-class-name="table_continued"/>
3110
+ <fo:block/>
3111
+ </fo:table-cell>
3112
+ </fo:table-row>
3113
+ <fo:table-row height="0" keep-with-next.within-page="always">
3114
+ <fo:table-cell>
3115
+ <fo:marker marker-class-name="table_continued">
3116
+ <!-- <fo:inline font-style="italic" font-weight="normal"> -->
3117
+ <xsl:value-of select="$title_continued"/>
3118
+ <!-- </fo:inline> -->
3119
+ </fo:marker>
3120
+ <fo:block/>
3121
+ </fo:table-cell>
3122
+ </fo:table-row>
3123
+
3124
+
2797
3125
  <xsl:apply-templates/>
2798
3126
  <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2799
3127
 
@@ -2836,6 +3164,8 @@
2836
3164
  </xsl:if>
2837
3165
 
2838
3166
 
3167
+
3168
+
2839
3169
  <xsl:apply-templates/>
2840
3170
  </fo:table-row>
2841
3171
  </xsl:template><xsl:template match="*[local-name()='th']">
@@ -2859,6 +3189,8 @@
2859
3189
 
2860
3190
 
2861
3191
 
3192
+
3193
+
2862
3194
  <xsl:if test="@colspan">
2863
3195
  <xsl:attribute name="number-columns-spanned">
2864
3196
  <xsl:value-of select="@colspan"/>
@@ -2869,10 +3201,22 @@
2869
3201
  <xsl:value-of select="@rowspan"/>
2870
3202
  </xsl:attribute>
2871
3203
  </xsl:if>
3204
+ <xsl:call-template name="display-align"/>
2872
3205
  <fo:block>
2873
3206
  <xsl:apply-templates/>
2874
3207
  </fo:block>
2875
3208
  </fo:table-cell>
3209
+ </xsl:template><xsl:template name="display-align">
3210
+ <xsl:if test="@valign">
3211
+ <xsl:attribute name="display-align">
3212
+ <xsl:choose>
3213
+ <xsl:when test="@valign = 'top'">before</xsl:when>
3214
+ <xsl:when test="@valign = 'middle'">center</xsl:when>
3215
+ <xsl:when test="@valign = 'bottom'">after</xsl:when>
3216
+ <xsl:otherwise>before</xsl:otherwise>
3217
+ </xsl:choose>
3218
+ </xsl:attribute>
3219
+ </xsl:if>
2876
3220
  </xsl:template><xsl:template match="*[local-name()='td']">
2877
3221
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2878
3222
  <xsl:attribute name="text-align">
@@ -2892,7 +3236,9 @@
2892
3236
  <xsl:attribute name="border">solid black 0</xsl:attribute>
2893
3237
  </xsl:if>
2894
3238
 
2895
-
3239
+
3240
+
3241
+
2896
3242
 
2897
3243
 
2898
3244
 
@@ -2908,20 +3254,8 @@
2908
3254
  <xsl:value-of select="@rowspan"/>
2909
3255
  </xsl:attribute>
2910
3256
  </xsl:if>
2911
- <fo:block>
2912
-
2913
- <xsl:variable name="row_number">
2914
- <xsl:number format="1" count="*[local-name() = 'tr'] | *[local-name() = 'th']"/>
2915
- </xsl:variable>
2916
- <fo:marker marker-class-name="table_continued">
2917
- <xsl:if test="$row_number &gt; 1">
2918
- <fo:inline>
2919
- <xsl:apply-templates select="ancestor::*[local-name() = 'table']/*[local-name() = 'name']" mode="contents"/>
2920
- <fo:inline font-style="italic" font-weight="normal">(continued)</fo:inline>
2921
- </fo:inline>
2922
- </xsl:if>
2923
- </fo:marker>
2924
-
3257
+ <xsl:call-template name="display-align"/>
3258
+ <fo:block>
2925
3259
  <xsl:apply-templates/>
2926
3260
  </fo:block>
2927
3261
  </fo:table-cell>
@@ -2936,14 +3270,17 @@
2936
3270
 
2937
3271
 
2938
3272
 
3273
+
3274
+
2939
3275
  <fo:inline padding-right="2mm">
2940
3276
 
2941
3277
 
2942
3278
 
2943
-
3279
+
2944
3280
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2945
3281
 
2946
3282
  </fo:inline>
3283
+
2947
3284
  <xsl:apply-templates mode="process"/>
2948
3285
  </fo:block>
2949
3286
 
@@ -2970,6 +3307,7 @@
2970
3307
 
2971
3308
 
2972
3309
 
3310
+
2973
3311
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2974
3312
 
2975
3313
 
@@ -2979,12 +3317,15 @@
2979
3317
 
2980
3318
 
2981
3319
 
3320
+
2982
3321
  <xsl:value-of select="@reference"/>
2983
3322
 
3323
+
2984
3324
  </fo:inline>
2985
3325
  <fo:inline>
2986
3326
 
2987
- <xsl:apply-templates/>
3327
+ <!-- <xsl:apply-templates /> -->
3328
+ <xsl:copy-of select="./node()"/>
2988
3329
  </fo:inline>
2989
3330
  </fo:block>
2990
3331
  </xsl:if>
@@ -3021,7 +3362,20 @@
3021
3362
  <xsl:variable name="following_dl_colwidths">
3022
3363
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
3023
3364
  <xsl:variable name="html-table">
3024
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3365
+ <xsl:variable name="doc_ns">
3366
+
3367
+ </xsl:variable>
3368
+ <xsl:variable name="ns">
3369
+ <xsl:choose>
3370
+ <xsl:when test="normalize-space($doc_ns) != ''">
3371
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3372
+ </xsl:when>
3373
+ <xsl:otherwise>
3374
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3375
+ </xsl:otherwise>
3376
+ </xsl:choose>
3377
+ </xsl:variable>
3378
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3025
3379
  <xsl:element name="{$ns}:table">
3026
3380
  <xsl:for-each select="*[local-name() = 'dl'][1]">
3027
3381
  <tbody>
@@ -3086,7 +3440,8 @@
3086
3440
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
3087
3441
  </xsl:if>
3088
3442
 
3089
- <xsl:apply-templates/>
3443
+ <!-- <xsl:apply-templates /> -->
3444
+ <xsl:copy-of select="./node()"/>
3090
3445
  </fo:block>
3091
3446
  </fo:table-cell>
3092
3447
  </fo:table-row>
@@ -3110,9 +3465,13 @@
3110
3465
 
3111
3466
 
3112
3467
 
3468
+
3469
+
3113
3470
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3114
3471
 
3472
+
3115
3473
  <xsl:value-of select="@reference"/>
3474
+
3116
3475
  </fo:basic-link>
3117
3476
  </fo:inline>
3118
3477
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -3120,129 +3479,156 @@
3120
3479
  <xsl:apply-templates/>
3121
3480
  </fo:inline>
3122
3481
  </xsl:template><xsl:template match="*[local-name()='dl']">
3123
- <xsl:variable name="parent" select="local-name(..)"/>
3124
-
3125
- <xsl:variable name="key_iso">
3126
-
3127
- <xsl:if test="$parent = 'figure' or $parent = 'formula'">true</xsl:if>
3128
- <!-- and (not(../@class) or ../@class !='pseudocode') -->
3129
- </xsl:variable>
3130
-
3131
- <xsl:choose>
3132
- <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3133
-
3482
+ <fo:block-container margin-left="0mm">
3483
+ <xsl:if test="parent::*[local-name() = 'note']">
3484
+ <xsl:attribute name="margin-left">
3485
+ <xsl:choose>
3486
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3487
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3488
+ </xsl:choose>
3489
+ </xsl:attribute>
3134
3490
 
3135
- <fo:block margin-bottom="12pt" text-align="left">
3136
-
3137
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
3138
-
3139
- <xsl:variable name="title-where">
3140
- <xsl:call-template name="getTitle">
3141
- <xsl:with-param name="name" select="'title-where'"/>
3142
- </xsl:call-template>
3143
- </xsl:variable>
3144
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3145
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
3146
- <xsl:text/>
3147
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3148
- </fo:block>
3491
+ </xsl:if>
3492
+ <fo:block-container margin-left="0mm">
3493
+
3494
+ <xsl:variable name="parent" select="local-name(..)"/>
3149
3495
 
3150
- </xsl:when>
3151
- <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3152
- <fo:block margin-bottom="12pt" text-align="left">
3153
-
3154
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3155
-
3156
-
3496
+ <xsl:variable name="key_iso">
3157
3497
 
3158
-
3159
- <xsl:variable name="title-where">
3160
- <xsl:call-template name="getTitle">
3161
- <xsl:with-param name="name" select="'title-where'"/>
3162
- </xsl:call-template>
3163
- </xsl:variable>
3164
- <xsl:value-of select="$title-where"/>
3165
- </fo:block>
3166
- </xsl:when>
3167
- <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3168
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
3169
-
3170
- <xsl:attribute name="font-size">10pt</xsl:attribute>
3171
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
3172
-
3173
-
3174
-
3175
- <xsl:variable name="title-key">
3176
- <xsl:call-template name="getTitle">
3177
- <xsl:with-param name="name" select="'title-key'"/>
3178
- </xsl:call-template>
3179
- </xsl:variable>
3180
- <xsl:value-of select="$title-key"/>
3181
- </fo:block>
3182
- </xsl:when>
3183
- </xsl:choose>
3184
-
3185
- <!-- a few components -->
3186
- <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3187
- <fo:block>
3188
-
3189
- <xsl:if test="$parent = 'formula'">
3190
- <xsl:attribute name="margin-left">4mm</xsl:attribute>
3191
- </xsl:if>
3192
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
3193
-
3194
-
3195
-
3498
+ <xsl:if test="$parent = 'figure' or $parent = 'formula'">true</xsl:if>
3499
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
3500
+ </xsl:variable>
3196
3501
 
3197
- <fo:block>
3198
-
3199
-
3200
-
3201
-
3202
- <fo:table width="95%" table-layout="fixed">
3502
+ <xsl:choose>
3503
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3203
3504
 
3204
- <xsl:choose>
3205
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3206
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3207
- </xsl:when>
3208
- <xsl:when test="normalize-space($key_iso) = 'true'">
3505
+
3506
+ <fo:block margin-bottom="12pt" text-align="left">
3507
+
3508
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3509
+
3510
+ <xsl:variable name="title-where">
3511
+ <xsl:call-template name="getTitle">
3512
+ <xsl:with-param name="name" select="'title-where'"/>
3513
+ </xsl:call-template>
3514
+ </xsl:variable>
3515
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3516
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3517
+ <xsl:text/>
3518
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3519
+ </fo:block>
3520
+
3521
+ </xsl:when>
3522
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3523
+ <fo:block margin-bottom="12pt" text-align="left">
3524
+
3525
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3526
+
3527
+
3528
+
3529
+
3530
+ <xsl:variable name="title-where">
3531
+ <xsl:call-template name="getTitle">
3532
+ <xsl:with-param name="name" select="'title-where'"/>
3533
+ </xsl:call-template>
3534
+ </xsl:variable>
3535
+ <xsl:value-of select="$title-where"/>
3536
+ </fo:block>
3537
+ </xsl:when>
3538
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3539
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
3540
+
3209
3541
  <xsl:attribute name="font-size">10pt</xsl:attribute>
3542
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3543
+
3544
+
3545
+
3546
+ <xsl:variable name="title-key">
3547
+ <xsl:call-template name="getTitle">
3548
+ <xsl:with-param name="name" select="'title-key'"/>
3549
+ </xsl:call-template>
3550
+ </xsl:variable>
3551
+ <xsl:value-of select="$title-key"/>
3552
+ </fo:block>
3553
+ </xsl:when>
3554
+ </xsl:choose>
3555
+
3556
+ <!-- a few components -->
3557
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3558
+ <fo:block>
3559
+
3560
+ <xsl:if test="$parent = 'formula'">
3561
+ <xsl:attribute name="margin-left">4mm</xsl:attribute>
3562
+ </xsl:if>
3563
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
3564
+
3565
+
3566
+
3567
+
3568
+ <fo:block>
3569
+
3570
+
3571
+
3572
+
3573
+ <fo:table width="95%" table-layout="fixed">
3210
3574
 
3211
- </xsl:when>
3212
- </xsl:choose>
3213
- <!-- create virtual html table for dl/[dt and dd] -->
3214
- <xsl:variable name="html-table">
3215
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3216
- <xsl:element name="{$ns}:table">
3217
- <tbody>
3218
- <xsl:apply-templates mode="dl"/>
3219
- </tbody>
3220
- </xsl:element>
3221
- </xsl:variable>
3222
- <!-- html-table<xsl:copy-of select="$html-table"/> -->
3223
- <xsl:variable name="colwidths">
3224
- <xsl:call-template name="calculate-column-widths">
3225
- <xsl:with-param name="cols-count" select="2"/>
3226
- <xsl:with-param name="table" select="$html-table"/>
3227
- </xsl:call-template>
3228
- </xsl:variable>
3229
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3230
- <xsl:variable name="maxlength_dt">
3231
- <xsl:call-template name="getMaxLength_dt"/>
3232
- </xsl:variable>
3233
- <xsl:call-template name="setColumnWidth_dl">
3234
- <xsl:with-param name="colwidths" select="$colwidths"/>
3235
- <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
3236
- </xsl:call-template>
3237
- <fo:table-body>
3238
- <xsl:apply-templates>
3239
- <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3240
- </xsl:apply-templates>
3241
- </fo:table-body>
3242
- </fo:table>
3243
- </fo:block>
3244
- </fo:block>
3245
- </xsl:if>
3575
+ <xsl:choose>
3576
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3577
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3578
+ </xsl:when>
3579
+ <xsl:when test="normalize-space($key_iso) = 'true'">
3580
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3581
+
3582
+ </xsl:when>
3583
+ </xsl:choose>
3584
+ <!-- create virtual html table for dl/[dt and dd] -->
3585
+ <xsl:variable name="html-table">
3586
+ <xsl:variable name="doc_ns">
3587
+
3588
+ </xsl:variable>
3589
+ <xsl:variable name="ns">
3590
+ <xsl:choose>
3591
+ <xsl:when test="normalize-space($doc_ns) != ''">
3592
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3593
+ </xsl:when>
3594
+ <xsl:otherwise>
3595
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3596
+ </xsl:otherwise>
3597
+ </xsl:choose>
3598
+ </xsl:variable>
3599
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3600
+ <xsl:element name="{$ns}:table">
3601
+ <tbody>
3602
+ <xsl:apply-templates mode="dl"/>
3603
+ </tbody>
3604
+ </xsl:element>
3605
+ </xsl:variable>
3606
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
3607
+ <xsl:variable name="colwidths">
3608
+ <xsl:call-template name="calculate-column-widths">
3609
+ <xsl:with-param name="cols-count" select="2"/>
3610
+ <xsl:with-param name="table" select="$html-table"/>
3611
+ </xsl:call-template>
3612
+ </xsl:variable>
3613
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3614
+ <xsl:variable name="maxlength_dt">
3615
+ <xsl:call-template name="getMaxLength_dt"/>
3616
+ </xsl:variable>
3617
+ <xsl:call-template name="setColumnWidth_dl">
3618
+ <xsl:with-param name="colwidths" select="$colwidths"/>
3619
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
3620
+ </xsl:call-template>
3621
+ <fo:table-body>
3622
+ <xsl:apply-templates>
3623
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3624
+ </xsl:apply-templates>
3625
+ </fo:table-body>
3626
+ </fo:table>
3627
+ </fo:block>
3628
+ </fo:block>
3629
+ </xsl:if>
3630
+ </fo:block-container>
3631
+ </fo:block-container>
3246
3632
  </xsl:template><xsl:template name="setColumnWidth_dl">
3247
3633
  <xsl:param name="colwidths"/>
3248
3634
  <xsl:param name="maxlength_dt"/>
@@ -3339,6 +3725,7 @@
3339
3725
  <xsl:param name="key_iso"/>
3340
3726
 
3341
3727
  <fo:table-row>
3728
+
3342
3729
  <fo:table-cell>
3343
3730
 
3344
3731
  <fo:block margin-top="6pt">
@@ -3355,6 +3742,7 @@
3355
3742
 
3356
3743
 
3357
3744
 
3745
+
3358
3746
  <xsl:apply-templates/>
3359
3747
  <!-- <xsl:if test="$namespace = 'gb'">
3360
3748
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -3420,6 +3808,31 @@
3420
3808
  </fo:inline>
3421
3809
  </xsl:template><xsl:template match="*[local-name()='tt']">
3422
3810
  <fo:inline xsl:use-attribute-sets="tt-style">
3811
+ <xsl:variable name="_font-size">
3812
+
3813
+
3814
+
3815
+
3816
+
3817
+ 10
3818
+
3819
+
3820
+
3821
+
3822
+
3823
+
3824
+
3825
+
3826
+ </xsl:variable>
3827
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
3828
+ <xsl:if test="$font-size != ''">
3829
+ <xsl:attribute name="font-size">
3830
+ <xsl:choose>
3831
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3832
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3833
+ </xsl:choose>
3834
+ </xsl:attribute>
3835
+ </xsl:if>
3423
3836
  <xsl:apply-templates/>
3424
3837
  </fo:inline>
3425
3838
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -3745,11 +4158,24 @@
3745
4158
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
3746
4159
  <xsl:value-of select="substring($str, 2)"/>
3747
4160
  </xsl:template><xsl:template match="mathml:math">
3748
- <fo:inline font-family="STIX2Math">
3749
- <fo:instream-foreign-object fox:alt-text="Math">
3750
- <xsl:copy-of select="."/>
3751
- </fo:instream-foreign-object>
4161
+ <fo:inline font-family="STIX Two Math"> <!-- -->
4162
+ <xsl:variable name="mathml">
4163
+ <xsl:apply-templates select="." mode="mathml"/>
4164
+ </xsl:variable>
4165
+ <fo:instream-foreign-object fox:alt-text="Math">
4166
+ <!-- <xsl:copy-of select="."/> -->
4167
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
4168
+ </fo:instream-foreign-object>
3752
4169
  </fo:inline>
4170
+ </xsl:template><xsl:template match="@*|node()" mode="mathml">
4171
+ <xsl:copy>
4172
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
4173
+ </xsl:copy>
4174
+ </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
4175
+ <xsl:copy>
4176
+ <!-- replace start and end spaces to non-break space -->
4177
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
4178
+ </xsl:copy>
3753
4179
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
3754
4180
  <xsl:variable name="target">
3755
4181
  <xsl:choose>
@@ -3826,13 +4252,26 @@
3826
4252
  <xsl:apply-templates/>
3827
4253
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3828
4254
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3829
-
4255
+
3830
4256
  <xsl:apply-templates/>
3831
4257
  </fo:basic-link>
3832
4258
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
3833
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
3834
- <xsl:apply-templates/>
3835
- </fo:block>
4259
+ <fo:block-container margin-left="0mm">
4260
+ <xsl:if test="parent::*[local-name() = 'note']">
4261
+ <xsl:attribute name="margin-left">
4262
+ <xsl:choose>
4263
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
4264
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
4265
+ </xsl:choose>
4266
+ </xsl:attribute>
4267
+
4268
+ </xsl:if>
4269
+ <fo:block-container margin-left="0mm">
4270
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
4271
+ <xsl:apply-templates/>
4272
+ </fo:block>
4273
+ </fo:block-container>
4274
+ </fo:block-container>
3836
4275
  </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
3837
4276
  <fo:inline>
3838
4277
  <xsl:apply-templates/>
@@ -3892,7 +4331,9 @@
3892
4331
  </xsl:choose>
3893
4332
  </xsl:template><xsl:template match="*[local-name() = 'termnote']">
3894
4333
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
3895
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4334
+ <fo:inline xsl:use-attribute-sets="termnote-name-style">
4335
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4336
+ </fo:inline>
3896
4337
  <xsl:apply-templates/>
3897
4338
  </fo:block>
3898
4339
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] | *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
@@ -3989,15 +4430,109 @@
3989
4430
 
3990
4431
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
3991
4432
  </fo:block>
3992
- </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">
4433
+ </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">
3993
4434
  <xsl:apply-templates mode="contents"/>
3994
4435
  <xsl:text> </xsl:text>
3995
- </xsl:template><xsl:template match="text()" mode="contents">
4436
+ </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">
4437
+ <xsl:apply-templates mode="bookmarks"/>
4438
+ <xsl:text> </xsl:text>
4439
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
4440
+ <xsl:value-of select="."/>
4441
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
3996
4442
  <xsl:value-of select="."/>
3997
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4443
+ </xsl:template><xsl:template match="node()" mode="contents">
4444
+ <xsl:apply-templates mode="contents"/>
4445
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
4446
+ <xsl:apply-templates mode="bookmarks"/>
4447
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
4448
+ <xsl:apply-templates select="."/>
4449
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4450
+ <xsl:apply-templates mode="bookmarks"/>
4451
+ </xsl:template><xsl:template name="addBookmarks">
4452
+ <xsl:param name="contents"/>
4453
+ <xsl:if test="xalan:nodeset($contents)//item">
4454
+ <fo:bookmark-tree>
4455
+ <xsl:choose>
4456
+ <xsl:when test="xalan:nodeset($contents)/doc">
4457
+ <xsl:choose>
4458
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
4459
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
4460
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4461
+ <fo:bookmark-title>
4462
+ <xsl:variable name="bookmark-title_">
4463
+ <xsl:call-template name="getLangVersion">
4464
+ <xsl:with-param name="lang" select="@lang"/>
4465
+ </xsl:call-template>
4466
+ </xsl:variable>
4467
+ <xsl:choose>
4468
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
4469
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
4470
+ </xsl:when>
4471
+ <xsl:otherwise>
4472
+ <xsl:choose>
4473
+ <xsl:when test="@lang = 'en'">English</xsl:when>
4474
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
4475
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
4476
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
4477
+ </xsl:choose>
4478
+ </xsl:otherwise>
4479
+ </xsl:choose>
4480
+ </fo:bookmark-title>
4481
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
4482
+ </fo:bookmark>
4483
+
4484
+ </xsl:for-each>
4485
+ </xsl:when>
4486
+ <xsl:otherwise>
4487
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
4488
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
4489
+ </xsl:for-each>
4490
+ </xsl:otherwise>
4491
+ </xsl:choose>
4492
+ </xsl:when>
4493
+ <xsl:otherwise>
4494
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
4495
+ </xsl:otherwise>
4496
+ </xsl:choose>
4497
+
4498
+
4499
+
4500
+
4501
+
4502
+
4503
+
4504
+
4505
+ </fo:bookmark-tree>
4506
+ </xsl:if>
4507
+ </xsl:template><xsl:template name="getLangVersion">
4508
+ <xsl:param name="lang"/>
4509
+ <xsl:choose>
4510
+ <xsl:when test="$lang = 'en'">
4511
+
4512
+
4513
+ </xsl:when>
4514
+ <xsl:when test="$lang = 'fr'">
4515
+
4516
+
4517
+ </xsl:when>
4518
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
4519
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
4520
+ </xsl:choose>
4521
+ </xsl:template><xsl:template match="item" mode="bookmark">
4522
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
4523
+ <fo:bookmark-title>
4524
+ <xsl:if test="@section != ''">
4525
+ <xsl:value-of select="@section"/>
4526
+ <xsl:text> </xsl:text>
4527
+ </xsl:if>
4528
+ <xsl:value-of select="normalize-space(title)"/>
4529
+ </fo:bookmark-title>
4530
+ <xsl:apply-templates mode="bookmark"/>
4531
+ </fo:bookmark>
4532
+ </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">
3998
4533
  <xsl:if test="normalize-space() != ''">
3999
4534
  <fo:block xsl:use-attribute-sets="figure-name-style">
4000
-
4535
+
4001
4536
  <xsl:apply-templates/>
4002
4537
  </fo:block>
4003
4538
  </xsl:if>
@@ -4052,7 +4587,7 @@
4052
4587
  <xsl:apply-templates/>
4053
4588
  </xsl:otherwise>
4054
4589
  </xsl:choose>
4055
- </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">
4590
+ </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">
4056
4591
  <xsl:text> </xsl:text>
4057
4592
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
4058
4593
  <xsl:copy>
@@ -4061,21 +4596,61 @@
4061
4596
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4062
4597
  <xsl:text> </xsl:text>
4063
4598
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4064
- <fo:block xsl:use-attribute-sets="sourcecode-style">
4065
- <xsl:apply-templates/>
4066
- </fo:block>
4067
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4068
- </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
4599
+
4600
+ <fo:block-container margin-left="0mm">
4601
+ <xsl:if test="parent::*[local-name() = 'note']">
4602
+ <xsl:attribute name="margin-left">
4603
+ <xsl:choose>
4604
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
4605
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
4606
+ </xsl:choose>
4607
+ </xsl:attribute>
4608
+
4609
+ </xsl:if>
4610
+ <fo:block-container margin-left="0mm">
4611
+
4612
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
4613
+ <xsl:variable name="_font-size">
4614
+
4615
+
4616
+
4617
+
4618
+
4619
+ 9
4620
+
4621
+
4622
+
4623
+
4624
+
4625
+
4626
+
4627
+
4628
+ </xsl:variable>
4629
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
4630
+ <xsl:if test="$font-size != ''">
4631
+ <xsl:attribute name="font-size">
4632
+ <xsl:choose>
4633
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
4634
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
4635
+ </xsl:choose>
4636
+ </xsl:attribute>
4637
+ </xsl:if>
4638
+ <xsl:apply-templates/>
4639
+ </fo:block>
4640
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4641
+
4642
+ </fo:block-container>
4643
+ </fo:block-container>
4644
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
4069
4645
  <xsl:variable name="text">
4070
4646
  <xsl:call-template name="add-zero-spaces-equal"/>
4071
4647
  </xsl:variable>
4072
- <xsl:call-template name="add-zero-spaces">
4648
+ <xsl:call-template name="add-zero-spaces-java">
4073
4649
  <xsl:with-param name="text" select="$text"/>
4074
4650
  </xsl:call-template>
4075
4651
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
4076
4652
  <xsl:if test="normalize-space() != ''">
4077
- <fo:block xsl:use-attribute-sets="sourcecode-name-style">
4078
-
4653
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
4079
4654
  <xsl:apply-templates/>
4080
4655
  </fo:block>
4081
4656
  </xsl:if>
@@ -4149,9 +4724,9 @@
4149
4724
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
4150
4725
  </xsl:if>
4151
4726
  <fo:block-container margin-left="0mm" margin-right="0mm">
4152
- <fo:table id="{@id}" table-layout="fixed" width="100%" border="1pt solid black">
4727
+ <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
4153
4728
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4154
- <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
4729
+ <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
4155
4730
  </xsl:if>
4156
4731
  <xsl:variable name="simple-table">
4157
4732
  <xsl:call-template name="getSimpleTable"/>
@@ -4160,8 +4735,8 @@
4160
4735
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
4161
4736
  <!-- <fo:table-column column-width="35mm"/>
4162
4737
  <fo:table-column column-width="115mm"/> -->
4163
- <fo:table-column column-width="25%"/>
4164
- <fo:table-column column-width="75%"/>
4738
+ <fo:table-column column-width="30%"/>
4739
+ <fo:table-column column-width="70%"/>
4165
4740
  </xsl:if>
4166
4741
  <xsl:apply-templates mode="requirement"/>
4167
4742
  </fo:table>
@@ -4184,14 +4759,21 @@
4184
4759
  <xsl:apply-templates mode="requirement"/>
4185
4760
  </fo:table-body>
4186
4761
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
4187
- <fo:table-row height="7mm">
4188
- <xsl:if test="parent::*[local-name()='thead'] and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission'])">
4189
- <xsl:attribute name="border">1pt solid black</xsl:attribute>
4762
+ <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
4763
+ <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
4764
+ <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
4765
+ <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
4766
+ </xsl:if>
4767
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
4768
+ <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
4769
+ </xsl:if>
4770
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
4771
+ <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
4190
4772
  </xsl:if>
4191
4773
  <xsl:apply-templates mode="requirement"/>
4192
4774
  </fo:table-row>
4193
4775
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
4194
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
4776
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
4195
4777
  <xsl:attribute name="text-align">
4196
4778
  <xsl:choose>
4197
4779
  <xsl:when test="@align">
@@ -4210,6 +4792,7 @@
4210
4792
  <xsl:value-of select="@rowspan"/>
4211
4793
  </xsl:attribute>
4212
4794
  </xsl:if>
4795
+ <xsl:call-template name="display-align"/>
4213
4796
 
4214
4797
  <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4215
4798
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
@@ -4225,7 +4808,7 @@
4225
4808
  </fo:block>
4226
4809
  </fo:table-cell>
4227
4810
  </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
4228
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
4811
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
4229
4812
  <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4230
4813
  <xsl:attribute name="padding">0mm</xsl:attribute>
4231
4814
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -4238,6 +4821,9 @@
4238
4821
  <xsl:otherwise>left</xsl:otherwise>
4239
4822
  </xsl:choose>
4240
4823
  </xsl:attribute>
4824
+ <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
4825
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
4826
+ </xsl:if>
4241
4827
  <xsl:if test="@colspan">
4242
4828
  <xsl:attribute name="number-columns-spanned">
4243
4829
  <xsl:value-of select="@colspan"/>
@@ -4248,6 +4834,7 @@
4248
4834
  <xsl:value-of select="@rowspan"/>
4249
4835
  </xsl:attribute>
4250
4836
  </xsl:if>
4837
+ <xsl:call-template name="display-align"/>
4251
4838
 
4252
4839
  <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4253
4840
  <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
@@ -4263,7 +4850,7 @@
4263
4850
  </fo:block>
4264
4851
  </fo:table-cell>
4265
4852
  </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
4266
- <fo:block font-size="11pt" font-weight="bold"> <!-- margin-bottom="4pt" text-align="center" -->
4853
+ <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center" -->
4267
4854
  <xsl:apply-templates/>
4268
4855
  </fo:block>
4269
4856
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
@@ -4289,12 +4876,13 @@
4289
4876
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4290
4877
 
4291
4878
  <xsl:variable name="element">
4292
- block
4879
+ block
4293
4880
 
4881
+ <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
4294
4882
  </xsl:variable>
4295
4883
 
4296
4884
  <xsl:choose>
4297
- <xsl:when test="normalize-space($element) = 'block'">
4885
+ <xsl:when test="contains(normalize-space($element), 'block')">
4298
4886
  <fo:block xsl:use-attribute-sets="example-body-style">
4299
4887
  <xsl:apply-templates/>
4300
4888
  </fo:block>
@@ -4331,25 +4919,44 @@
4331
4919
  </xsl:otherwise>
4332
4920
  </xsl:choose>
4333
4921
 
4334
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
4335
- <fo:block xsl:use-attribute-sets="example-p-style">
4922
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
4923
+
4924
+ <xsl:variable name="element">
4925
+ block
4336
4926
 
4337
- <xsl:apply-templates/>
4338
- </fo:block>
4927
+ </xsl:variable>
4928
+ <xsl:choose>
4929
+ <xsl:when test="normalize-space($element) = 'block'">
4930
+ <fo:block xsl:use-attribute-sets="example-p-style">
4931
+
4932
+ <xsl:apply-templates/>
4933
+ </fo:block>
4934
+ </xsl:when>
4935
+ <xsl:otherwise>
4936
+ <fo:inline xsl:use-attribute-sets="example-p-style">
4937
+ <xsl:apply-templates/>
4938
+ </fo:inline>
4939
+ </xsl:otherwise>
4940
+ </xsl:choose>
4339
4941
  </xsl:template><xsl:template match="*[local-name() = 'termsource']">
4340
4942
  <fo:block xsl:use-attribute-sets="termsource-style">
4341
4943
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
4342
4944
  <xsl:variable name="termsource_text">
4343
4945
  <xsl:apply-templates/>
4344
4946
  </xsl:variable>
4947
+
4345
4948
  <xsl:choose>
4346
4949
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
4347
4950
  <xsl:apply-templates/>
4348
4951
  </xsl:when>
4349
- <xsl:otherwise>
4350
- <xsl:text>[</xsl:text>
4351
- <xsl:apply-templates/>
4352
- <xsl:text>]</xsl:text>
4952
+ <xsl:otherwise>
4953
+
4954
+ <xsl:text>[</xsl:text>
4955
+
4956
+ <xsl:apply-templates/>
4957
+
4958
+ <xsl:text>]</xsl:text>
4959
+
4353
4960
  </xsl:otherwise>
4354
4961
  </xsl:choose>
4355
4962
  </fo:block>
@@ -4360,10 +4967,13 @@
4360
4967
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
4361
4968
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4362
4969
 
4363
- <xsl:call-template name="getTitle">
4364
- <xsl:with-param name="name" select="'title-source'"/>
4365
- </xsl:call-template>
4366
- <xsl:text>: </xsl:text>
4970
+ <fo:inline>
4971
+
4972
+ <xsl:call-template name="getTitle">
4973
+ <xsl:with-param name="name" select="'title-source'"/>
4974
+ </xsl:call-template>
4975
+ <xsl:text>: </xsl:text>
4976
+ </fo:inline>
4367
4977
 
4368
4978
  <fo:inline xsl:use-attribute-sets="origin-style">
4369
4979
  <xsl:apply-templates/>
@@ -4375,18 +4985,29 @@
4375
4985
  <xsl:if test="normalize-space() != ''">
4376
4986
  <xsl:value-of select="."/>
4377
4987
  </xsl:if>
4378
- </xsl:template><xsl:template match="*[local-name() = 'quote']">
4988
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
4989
+ <fo:block-container margin-left="0mm">
4990
+ <xsl:if test="parent::*[local-name() = 'note']">
4991
+ <xsl:if test="not(ancestor::*[local-name() = 'table'])">
4992
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
4993
+ </xsl:if>
4994
+ </xsl:if>
4995
+
4996
+ <fo:block-container margin-left="0mm">
4379
4997
 
4380
- <fo:block xsl:use-attribute-sets="quote-style">
4381
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
4382
- </fo:block>
4383
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
4384
- <fo:block xsl:use-attribute-sets="quote-source-style">
4385
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
4386
- <xsl:apply-templates select="*[local-name() = 'author']"/>
4387
- <xsl:apply-templates select="*[local-name() = 'source']"/>
4388
- </fo:block>
4389
- </xsl:if>
4998
+ <fo:block xsl:use-attribute-sets="quote-style">
4999
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
5000
+ </fo:block>
5001
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
5002
+ <fo:block xsl:use-attribute-sets="quote-source-style">
5003
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
5004
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
5005
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
5006
+ </fo:block>
5007
+ </xsl:if>
5008
+
5009
+ </fo:block-container>
5010
+ </fo:block-container>
4390
5011
  </xsl:template><xsl:template match="*[local-name() = 'source']">
4391
5012
  <xsl:if test="../*[local-name() = 'author']">
4392
5013
  <xsl:text>, </xsl:text>
@@ -4414,6 +5035,7 @@
4414
5035
  <xsl:if test="@type = 'inline'">
4415
5036
 
4416
5037
 
5038
+
4417
5039
  </xsl:if>
4418
5040
 
4419
5041
 
@@ -4451,6 +5073,7 @@
4451
5073
 
4452
5074
 
4453
5075
 
5076
+
4454
5077
  </xsl:variable>
4455
5078
 
4456
5079
  <xsl:variable name="padding-right">
@@ -4546,6 +5169,7 @@
4546
5169
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
4547
5170
  <fo:block>
4548
5171
  <xsl:call-template name="setId"/>
5172
+
4549
5173
  <xsl:apply-templates/>
4550
5174
  </fo:block>
4551
5175
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
@@ -4570,6 +5194,31 @@
4570
5194
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
4571
5195
  <!-- 0xA0 to space replacement -->
4572
5196
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5197
+ </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
5198
+ <xsl:choose>
5199
+ <xsl:when test="parent::*[local-name() = 'note']">
5200
+ <fo:block-container>
5201
+ <xsl:attribute name="margin-left">
5202
+ <xsl:choose>
5203
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
5204
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
5205
+ </xsl:choose>
5206
+ </xsl:attribute>
5207
+
5208
+
5209
+ <fo:block-container margin-left="0mm">
5210
+ <fo:block>
5211
+ <xsl:apply-templates select="." mode="ul_ol"/>
5212
+ </fo:block>
5213
+ </fo:block-container>
5214
+ </fo:block-container>
5215
+ </xsl:when>
5216
+ <xsl:otherwise>
5217
+ <fo:block>
5218
+ <xsl:apply-templates select="." mode="ul_ol"/>
5219
+ </fo:block>
5220
+ </xsl:otherwise>
5221
+ </xsl:choose>
4573
5222
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
4574
5223
  <!-- <row>
4575
5224
  <date>05-07-2013</date>
@@ -4602,7 +5251,28 @@
4602
5251
  <fo:block><xsl:apply-templates/></fo:block>
4603
5252
  </fo:table-cell>
4604
5253
  </xsl:template><xsl:template name="processBibitem">
5254
+
5255
+
4605
5256
 
5257
+
5258
+ </xsl:template><xsl:template name="processBibitemDocId">
5259
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
5260
+ <xsl:choose>
5261
+ <xsl:when test="normalize-space($_doc_ident) != ''">
5262
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
5263
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
5264
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
5265
+ </xsl:if>
5266
+ <xsl:value-of select="$_doc_ident"/>
5267
+ </xsl:when>
5268
+ <xsl:otherwise>
5269
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
5270
+ <xsl:if test="$type != ''">
5271
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
5272
+ </xsl:if>
5273
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
5274
+ </xsl:otherwise>
5275
+ </xsl:choose>
4606
5276
  </xsl:template><xsl:template name="processPersonalAuthor">
4607
5277
  <xsl:choose>
4608
5278
  <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">
@@ -4721,6 +5391,7 @@
4721
5391
 
4722
5392
 
4723
5393
 
5394
+
4724
5395
 
4725
5396
  </xsl:variable>
4726
5397
  <xsl:choose>
@@ -4737,6 +5408,7 @@
4737
5408
  <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'organization']/*[local-name() = 'name']"/>
4738
5409
 
4739
5410
 
5411
+
4740
5412
  </dc:creator>
4741
5413
  <dc:description>
4742
5414
  <xsl:variable name="abstract">
@@ -4746,6 +5418,7 @@
4746
5418
 
4747
5419
 
4748
5420
 
5421
+
4749
5422
  </xsl:variable>
4750
5423
  <xsl:value-of select="normalize-space($abstract)"/>
4751
5424
  </dc:description>
@@ -4846,6 +5519,7 @@
4846
5519
 
4847
5520
 
4848
5521
 
5522
+
4849
5523
  </xsl:variable>
4850
5524
  <xsl:if test="$documentNS != $XSLNS">
4851
5525
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -4871,4 +5545,21 @@
4871
5545
  </xsl:otherwise>
4872
5546
  </xsl:choose>
4873
5547
  </xsl:attribute>
5548
+ </xsl:template><xsl:template name="add-letter-spacing">
5549
+ <xsl:param name="text"/>
5550
+ <xsl:param name="letter-spacing" select="'0.15'"/>
5551
+ <xsl:if test="string-length($text) &gt; 0">
5552
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
5553
+ <fo:inline padding-right="{$letter-spacing}mm">
5554
+ <xsl:if test="$char = '®'">
5555
+ <xsl:attribute name="font-size">58%</xsl:attribute>
5556
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
5557
+ </xsl:if>
5558
+ <xsl:value-of select="$char"/>
5559
+ </fo:inline>
5560
+ <xsl:call-template name="add-letter-spacing">
5561
+ <xsl:with-param name="text" select="substring($text, 2)"/>
5562
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
5563
+ </xsl:call-template>
5564
+ </xsl:if>
4874
5565
  </xsl:template></xsl:stylesheet>