metanorma-iso 1.5.5 → 1.5.10

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -16,7 +16,7 @@ fieldset, form, label, legend,
16
16
  table, caption, tbody, tfoot, thead, tr, th, td,
17
17
  article, aside, canvas, details, embed,
18
18
  figure, figcaption, footer, header, hgroup,
19
- menu, nav, output, ruby, section, summary,
19
+ menu, output, ruby, section, summary,
20
20
  time, mark, audio, video {
21
21
  margin: 0;
22
22
  padding: 0; }
@@ -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>