metanorma-ribose 1.6.8 → 1.6.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b8397d03f03da8ff6d015bdd4385f6b1670362bde92ec5a98e5d1b5b34a0f6c
4
- data.tar.gz: d51347bf7b7a494e3f2f0d2f328e5ecc93e7ec34e49d2503ebd0b9219237bfc9
3
+ metadata.gz: 2a362d9e16323023ed5eed26c77862e19e8dd23bb2566fbb4ab3f837ed03413a
4
+ data.tar.gz: 01e2d3d7b50694039ac3e1ab4dccb00817e2f4d431f04b115575ed50db5a7426
5
5
  SHA512:
6
- metadata.gz: efa57a6d0d6abc5107ca8408045259e68c18035e3c01b6b9b4b226b5cbef96fb8f0fba78fcb4da7b367815c3896343b2b7899c319d4dcf565da8c774c873724f
7
- data.tar.gz: 4dbbbb02ba634a2041e20da6cc81976f101b1ba2919708359a791d5e1f7b51413e103cb0511e8dccab2f595fbe3c8043d3945185c97b67d150048004302735b3
6
+ metadata.gz: 697924bc19eafb371b4932ba7e06d7aa288bcbf8a50a4a70676dc23b314e9ab91199f0c095602d9df14a6c39b54b86102b84e4268e2aaa5dfdf8e6293e1c7dab
7
+ data.tar.gz: 9cfdd155e4b15f87d0da8eb64389a2dce0aef3d093a506aa2e8d0bb1f4cec36d59c9e32416c383217ad4569118dfe284a70f9235563e5ff9dc4098bbe347aca3
@@ -36,6 +36,9 @@ jobs:
36
36
  with:
37
37
  ruby-version: ${{ matrix.ruby }}
38
38
 
39
+ - if: matrix.os == 'macos-latest'
40
+ run: brew install autoconf automake libtool
41
+
39
42
  - uses: actions/cache@v2
40
43
  with:
41
44
  path: vendor/bundle
@@ -63,4 +66,21 @@ jobs:
63
66
  - if: matrix.os == 'windows-latest'
64
67
  run: cinst -y plantuml
65
68
 
69
+ - if: matrix.os == 'macos-latest'
70
+ run: brew install autoconf automake libtool
71
+
66
72
  - run: bundle exec rake
73
+
74
+ tests-passed:
75
+ needs: rake
76
+ runs-on: ubuntu-latest
77
+ continue-on-error: true
78
+ steps:
79
+ - name: Trigger tests passed event
80
+ uses: Sibz/github-status-action@v1
81
+ with:
82
+ authToken: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
83
+ context: 'tests-passed-successfully'
84
+ description: 'Tests passed successfully'
85
+ state: 'success'
86
+ sha: ${{ github.event.pull_request.head.sha || github.sha }}
@@ -596,6 +596,7 @@
596
596
  <ref name="bookmark"/>
597
597
  <ref name="image"/>
598
598
  <ref name="index"/>
599
+ <ref name="index-xref"/>
599
600
  </choice>
600
601
  </define>
601
602
  <define name="PureTextElement">
@@ -728,13 +729,61 @@
728
729
  </define>
729
730
  <define name="index">
730
731
  <element name="index">
731
- <attribute name="primary"/>
732
732
  <optional>
733
- <attribute name="secondary"/>
733
+ <attribute name="to">
734
+ <data type="IDREF"/>
735
+ </attribute>
736
+ </optional>
737
+ <element name="primary">
738
+ <oneOrMore>
739
+ <ref name="PureTextElement"/>
740
+ </oneOrMore>
741
+ </element>
742
+ <optional>
743
+ <element name="secondary">
744
+ <oneOrMore>
745
+ <ref name="PureTextElement"/>
746
+ </oneOrMore>
747
+ </element>
748
+ </optional>
749
+ <optional>
750
+ <element name="tertiary">
751
+ <oneOrMore>
752
+ <ref name="PureTextElement"/>
753
+ </oneOrMore>
754
+ </element>
755
+ </optional>
756
+ </element>
757
+ </define>
758
+ <define name="index-xref">
759
+ <element name="index-xref">
760
+ <attribute name="also">
761
+ <data type="boolean"/>
762
+ </attribute>
763
+ <element name="primary">
764
+ <oneOrMore>
765
+ <ref name="PureTextElement"/>
766
+ </oneOrMore>
767
+ </element>
768
+ <optional>
769
+ <element name="secondary">
770
+ <oneOrMore>
771
+ <ref name="PureTextElement"/>
772
+ </oneOrMore>
773
+ </element>
734
774
  </optional>
735
775
  <optional>
736
- <attribute name="tertiary"/>
776
+ <element name="tertiary">
777
+ <oneOrMore>
778
+ <ref name="PureTextElement"/>
779
+ </oneOrMore>
780
+ </element>
737
781
  </optional>
782
+ <element name="target">
783
+ <oneOrMore>
784
+ <ref name="PureTextElement"/>
785
+ </oneOrMore>
786
+ </element>
738
787
  </element>
739
788
  </define>
740
789
  <!-- bare ID element, used for referencing arbitrary spans of text -->
@@ -55,6 +55,13 @@
55
55
  <param name="pattern">\i\c*|\c+#\c+</param>
56
56
  </data>
57
57
  </attribute>
58
+ <optional>
59
+ <attribute name="to">
60
+ <data type="string">
61
+ <param name="pattern">\i\c*|\c+#\c+</param>
62
+ </data>
63
+ </attribute>
64
+ </optional>
58
65
  <optional>
59
66
  <attribute name="type">
60
67
  <ref name="ReferenceFormat"/>
@@ -246,6 +253,12 @@
246
253
  <data type="boolean"/>
247
254
  </attribute>
248
255
  </optional>
256
+ <optional>
257
+ <attribute name="width"/>
258
+ </optional>
259
+ <optional>
260
+ <ref name="colgroup"/>
261
+ </optional>
249
262
  <optional>
250
263
  <ref name="tname"/>
251
264
  </optional>
@@ -764,6 +777,21 @@
764
777
  </define>
765
778
  </include>
766
779
  <!-- end overrides -->
780
+ <define name="colgroup">
781
+ <element name="colgroup">
782
+ <oneOrMore>
783
+ <ref name="col"/>
784
+ </oneOrMore>
785
+ </element>
786
+ </define>
787
+ <define name="col">
788
+ <element name="col">
789
+ <attribute name="width"/>
790
+ </element>
791
+ </define>
792
+ <define name="BibItemType" combine="choice">
793
+ <value>internal</value>
794
+ </define>
767
795
  <define name="TextElement" combine="choice">
768
796
  <ref name="concept"/>
769
797
  </define>
@@ -784,6 +812,8 @@
784
812
  <ref name="requirement"/>
785
813
  <ref name="recommendation"/>
786
814
  <ref name="permission"/>
815
+ <ref name="imagemap"/>
816
+ <ref name="svgmap"/>
787
817
  </choice>
788
818
  </define>
789
819
  <define name="bibliography">
@@ -814,6 +844,9 @@
814
844
  <data type="boolean"/>
815
845
  </attribute>
816
846
  </optional>
847
+ <optional>
848
+ <attribute name="number"/>
849
+ </optional>
817
850
  <optional>
818
851
  <attribute name="obligation">
819
852
  <choice>
@@ -869,9 +902,11 @@
869
902
  <element name="code">
870
903
  <text/>
871
904
  </element>
872
- <element name="text">
873
- <text/>
874
- </element>
905
+ <optional>
906
+ <element name="text">
907
+ <text/>
908
+ </element>
909
+ </optional>
875
910
  </element>
876
911
  </define>
877
912
  <define name="standard-document">
@@ -1041,6 +1076,9 @@
1041
1076
  </choice>
1042
1077
  </attribute>
1043
1078
  </optional>
1079
+ <optional>
1080
+ <attribute name="number"/>
1081
+ </optional>
1044
1082
  <optional>
1045
1083
  <attribute name="type"/>
1046
1084
  </optional>
@@ -1094,6 +1132,9 @@
1094
1132
  <optional>
1095
1133
  <attribute name="type"/>
1096
1134
  </optional>
1135
+ <optional>
1136
+ <attribute name="number"/>
1137
+ </optional>
1097
1138
  <optional>
1098
1139
  <ref name="section-title"/>
1099
1140
  </optional>
@@ -1196,6 +1237,9 @@
1196
1237
  <optional>
1197
1238
  <attribute name="type"/>
1198
1239
  </optional>
1240
+ <optional>
1241
+ <attribute name="number"/>
1242
+ </optional>
1199
1243
  <optional>
1200
1244
  <attribute name="obligation">
1201
1245
  <choice>
@@ -1524,6 +1568,7 @@
1524
1568
  <value>add</value>
1525
1569
  <value>modify</value>
1526
1570
  <value>delete</value>
1571
+ <value>replace</value>
1527
1572
  </choice>
1528
1573
  </attribute>
1529
1574
  <optional>
@@ -1554,6 +1599,11 @@
1554
1599
  </optional>
1555
1600
  <optional>
1556
1601
  <element name="newcontent">
1602
+ <optional>
1603
+ <attribute name="id">
1604
+ <data type="ID"/>
1605
+ </attribute>
1606
+ </optional>
1557
1607
  <zeroOrMore>
1558
1608
  <ref name="BasicBlock"/>
1559
1609
  </zeroOrMore>
@@ -1587,4 +1637,65 @@
1587
1637
  <text/>
1588
1638
  </element>
1589
1639
  </define>
1640
+ <define name="imagemap">
1641
+ <element name="imagemap">
1642
+ <ref name="figure"/>
1643
+ <zeroOrMore>
1644
+ <element name="area">
1645
+ <attribute name="type">
1646
+ <choice>
1647
+ <value>rect</value>
1648
+ <value>circle</value>
1649
+ <value>ellipse</value>
1650
+ <value>poly</value>
1651
+ </choice>
1652
+ </attribute>
1653
+ <choice>
1654
+ <ref name="xref"/>
1655
+ <ref name="hyperlink"/>
1656
+ <ref name="eref"/>
1657
+ </choice>
1658
+ <oneOrMore>
1659
+ <element name="coords">
1660
+ <attribute name="x">
1661
+ <data type="float"/>
1662
+ </attribute>
1663
+ <attribute name="y">
1664
+ <data type="float"/>
1665
+ </attribute>
1666
+ </element>
1667
+ </oneOrMore>
1668
+ <optional>
1669
+ <element name="radius">
1670
+ <attribute name="x">
1671
+ <data type="float"/>
1672
+ </attribute>
1673
+ <optional>
1674
+ <attribute name="y">
1675
+ <data type="float"/>
1676
+ </attribute>
1677
+ </optional>
1678
+ </element>
1679
+ </optional>
1680
+ </element>
1681
+ </zeroOrMore>
1682
+ </element>
1683
+ </define>
1684
+ <define name="svgmap">
1685
+ <element name="svgmap">
1686
+ <ref name="figure"/>
1687
+ <zeroOrMore>
1688
+ <element name="target">
1689
+ <attribute name="href">
1690
+ <data type="anyURI"/>
1691
+ </attribute>
1692
+ <choice>
1693
+ <ref name="xref"/>
1694
+ <ref name="hyperlink"/>
1695
+ <ref name="eref"/>
1696
+ </choice>
1697
+ </element>
1698
+ </zeroOrMore>
1699
+ </element>
1700
+ </define>
1590
1701
  </grammar>
@@ -505,7 +505,7 @@ h3 {
505
505
  mso-list: l1 level3 lfo6;
506
506
  mso-hyphenate: none;
507
507
  tab-stops: list 36.0pt left 44.0pt;
508
- font-size: {{smallerfontsize}};
508
+ font-size: {{normalfontsize}};
509
509
  font-family: {{headerfont}};
510
510
  font-weight: normal;
511
511
  color: #0E1A85;
@@ -533,7 +533,7 @@ h4 {
533
533
  mso-list: l1 level4 lfo6;
534
534
  mso-hyphenate: none;
535
535
  tab-stops: 51.05pt 57.0pt 68.0pt;
536
- font-size: {{smallerfontsize}};
536
+ font-size: {{normalfontsize}};
537
537
  font-family: {{headerfont}};
538
538
  font-weight: normal;
539
539
  color: #0E1A85;
@@ -561,7 +561,7 @@ h5 {
561
561
  mso-list: l1 level5 lfo6;
562
562
  mso-hyphenate: none;
563
563
  tab-stops: 51.05pt list 54.0pt;
564
- font-size: {{smallerfontsize}};
564
+ font-size: {{normalfontsize}};
565
565
  font-family: {{headerfont}};
566
566
  font-weight: normal;
567
567
  mso-fareast-font-family: {{headerfont}};
@@ -589,7 +589,7 @@ h6 {
589
589
  mso-list: l1 level6 lfo6;
590
590
  mso-hyphenate: none;
591
591
  tab-stops: 51.05pt list 72.0pt;
592
- font-size: {{smallerfontsize}};
592
+ font-size: {{normalfontsize}};
593
593
  font-family: {{headerfont}};
594
594
  font-weight: normal;
595
595
  color: #0E1A85;
@@ -471,7 +471,7 @@ h3
471
471
  mso-list:l1 level3 lfo6;
472
472
  mso-hyphenate:none;
473
473
  tab-stops:list 36.0pt left 44.0pt;
474
- font-size:$smallerfontsize;
474
+ font-size:$normalfontsize;
475
475
  font-family:$headerfont;
476
476
  font-weight:normal;
477
477
  color:#0E1A85;
@@ -498,7 +498,7 @@ h4
498
498
  mso-list:l1 level4 lfo6;
499
499
  mso-hyphenate:none;
500
500
  tab-stops:51.05pt 57.0pt 68.0pt;
501
- font-size:$smallerfontsize;
501
+ font-size:$normalfontsize;
502
502
  font-family:$headerfont;
503
503
  font-weight:normal;
504
504
  color:#0E1A85;
@@ -525,7 +525,7 @@ h5
525
525
  mso-list:l1 level5 lfo6;
526
526
  mso-hyphenate:none;
527
527
  tab-stops:51.05pt list 54.0pt;
528
- font-size:$smallerfontsize;
528
+ font-size:$normalfontsize;
529
529
  font-family:$headerfont;
530
530
  font-weight:normal;
531
531
  mso-fareast-font-family:$headerfont;
@@ -552,7 +552,7 @@ h6
552
552
  mso-list:l1 level6 lfo6;
553
553
  mso-hyphenate:none;
554
554
  tab-stops:51.05pt list 72.0pt;
555
- font-size:$smallerfontsize;
555
+ font-size:$normalfontsize;
556
556
  font-family:$headerfont;
557
557
  font-weight:normal;
558
558
  color:#0E1A85;
@@ -674,13 +674,13 @@
674
674
  <xsl:otherwise> <!-- for ordered lists -->
675
675
  <xsl:choose>
676
676
  <xsl:when test="../@type = 'arabic'">
677
- <xsl:number format="a)"/>
677
+ <xsl:number format="a)" lang="en"/>
678
678
  </xsl:when>
679
679
  <xsl:when test="../@type = 'alphabet'">
680
680
  <xsl:number format="1)"/>
681
681
  </xsl:when>
682
682
  <xsl:when test="../@type = 'alphabet_upper'">
683
- <xsl:number format="A)"/>
683
+ <xsl:number format="A)" lang="en"/>
684
684
  </xsl:when>
685
685
 
686
686
  <xsl:when test="../@type = 'roman'">
@@ -1285,6 +1285,7 @@
1285
1285
 
1286
1286
  </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1287
1287
 
1288
+
1288
1289
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1289
1290
 
1290
1291
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -1296,6 +1297,7 @@
1296
1297
 
1297
1298
 
1298
1299
 
1300
+
1299
1301
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1300
1302
 
1301
1303
  <xsl:attribute name="text-align">right</xsl:attribute>
@@ -1439,175 +1441,227 @@
1439
1441
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1440
1442
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
1441
1443
  <xsl:call-template name="add-zero-spaces-java"/>
1442
- </xsl:template><xsl:template match="*[local-name()='table']">
1444
+ </xsl:template><xsl:template match="*[local-name()='table']" name="table">
1443
1445
 
1444
- <xsl:variable name="simple-table">
1445
- <xsl:call-template name="getSimpleTable"/>
1446
- </xsl:variable>
1446
+ <xsl:variable name="table">
1447
1447
 
1448
-
1449
-
1450
-
1451
-
1452
- <!-- <xsl:if test="$namespace = 'bipm'">
1453
- <fo:block>&#xA0;</fo:block>
1454
- </xsl:if> -->
1455
-
1456
- <!-- $namespace = 'iso' or -->
1457
-
1458
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1459
-
1460
-
1448
+ <xsl:variable name="simple-table">
1449
+ <xsl:call-template name="getSimpleTable"/>
1450
+ </xsl:variable>
1461
1451
 
1462
1452
 
1463
-
1464
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
1465
-
1466
- <!-- <xsl:variable name="cols-count">
1467
- <xsl:choose>
1468
- <xsl:when test="*[local-name()='thead']">
1469
- <xsl:call-template name="calculate-columns-numbers">
1470
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1471
- </xsl:call-template>
1472
- </xsl:when>
1473
- <xsl:otherwise>
1474
- <xsl:call-template name="calculate-columns-numbers">
1475
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1476
- </xsl:call-template>
1477
- </xsl:otherwise>
1478
- </xsl:choose>
1479
- </xsl:variable> -->
1480
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1481
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1482
-
1483
-
1484
-
1485
- <xsl:variable name="colwidths">
1486
- <xsl:call-template name="calculate-column-widths">
1487
- <xsl:with-param name="cols-count" select="$cols-count"/>
1488
- <xsl:with-param name="table" select="$simple-table"/>
1489
- </xsl:call-template>
1490
- </xsl:variable>
1491
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1492
-
1493
- <!-- <xsl:variable name="colwidths2">
1494
- <xsl:call-template name="calculate-column-widths">
1495
- <xsl:with-param name="cols-count" select="$cols-count"/>
1496
- </xsl:call-template>
1497
- </xsl:variable> -->
1498
-
1499
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1500
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
1501
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1502
-
1503
- <xsl:variable name="margin-left">
1504
- <xsl:choose>
1505
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1506
- <xsl:otherwise>0</xsl:otherwise>
1507
- </xsl:choose>
1508
- </xsl:variable>
1509
-
1510
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1511
1453
 
1512
1454
 
1513
-
1514
-
1515
-
1516
1455
 
1456
+ <!-- <xsl:if test="$namespace = 'bipm'">
1457
+ <fo:block>&#xA0;</fo:block>
1458
+ </xsl:if> -->
1459
+
1460
+ <!-- $namespace = 'iso' or -->
1517
1461
 
1518
-
1462
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
1469
+
1470
+ <!-- <xsl:variable name="cols-count">
1471
+ <xsl:choose>
1472
+ <xsl:when test="*[local-name()='thead']">
1473
+ <xsl:call-template name="calculate-columns-numbers">
1474
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1475
+ </xsl:call-template>
1476
+ </xsl:when>
1477
+ <xsl:otherwise>
1478
+ <xsl:call-template name="calculate-columns-numbers">
1479
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1480
+ </xsl:call-template>
1481
+ </xsl:otherwise>
1482
+ </xsl:choose>
1483
+ </xsl:variable> -->
1484
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1485
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1519
1486
 
1520
1487
 
1521
1488
 
1489
+ <xsl:variable name="colwidths">
1490
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
1491
+ <xsl:call-template name="calculate-column-widths">
1492
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1493
+ <xsl:with-param name="table" select="$simple-table"/>
1494
+ </xsl:call-template>
1495
+ </xsl:if>
1496
+ </xsl:variable>
1497
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1522
1498
 
1499
+ <!-- <xsl:variable name="colwidths2">
1500
+ <xsl:call-template name="calculate-column-widths">
1501
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1502
+ </xsl:call-template>
1503
+ </xsl:variable> -->
1523
1504
 
1505
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1506
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
1507
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1524
1508
 
1509
+ <xsl:variable name="margin-left">
1510
+ <xsl:choose>
1511
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1512
+ <xsl:otherwise>0</xsl:otherwise>
1513
+ </xsl:choose>
1514
+ </xsl:variable>
1525
1515
 
1526
- <xsl:variable name="table_attributes">
1527
- <attribute name="table-layout">fixed</attribute>
1528
- <attribute name="width">100%</attribute>
1529
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1530
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1516
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1531
1517
 
1532
1518
 
1519
+
1520
+
1521
+
1533
1522
 
1534
1523
 
1535
-
1536
-
1537
-
1524
+
1538
1525
 
1539
-
1540
1526
 
1541
- </xsl:variable>
1542
-
1543
-
1544
- <fo:table id="{@id}" table-omit-footer-at-break="true">
1545
1527
 
1546
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1547
- <xsl:attribute name="{@name}">
1548
- <xsl:value-of select="."/>
1549
- </xsl:attribute>
1550
- </xsl:for-each>
1551
1528
 
1552
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
1553
- <xsl:if test="$isNoteOrFnExist = 'true'">
1554
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1555
- </xsl:if>
1556
1529
 
1557
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1530
+
1531
+ <xsl:variable name="table_width">
1532
+ <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
1533
+ 100%
1534
+
1535
+
1536
+ </xsl:variable>
1537
+
1538
+ <xsl:variable name="table_attributes">
1539
+ <attribute name="table-layout">fixed</attribute>
1540
+ <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
1541
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1542
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+ </xsl:variable>
1554
+
1555
+
1556
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
1557
+
1558
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1559
+ <xsl:attribute name="{@name}">
1560
+ <xsl:value-of select="."/>
1561
+ </xsl:attribute>
1562
+ </xsl:for-each>
1563
+
1564
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
1565
+ <xsl:if test="$isNoteOrFnExist = 'true'">
1566
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1567
+ </xsl:if>
1568
+
1558
1569
  <xsl:choose>
1559
- <xsl:when test=". = 1 or . = 0">
1560
- <fo:table-column column-width="proportional-column-width(2)"/>
1570
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1571
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
1572
+ <fo:table-column column-width="{@width}"/>
1573
+ </xsl:for-each>
1561
1574
  </xsl:when>
1562
1575
  <xsl:otherwise>
1563
- <fo:table-column column-width="proportional-column-width({.})"/>
1576
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1577
+ <xsl:choose>
1578
+ <xsl:when test=". = 1 or . = 0">
1579
+ <fo:table-column column-width="proportional-column-width(2)"/>
1580
+ </xsl:when>
1581
+ <xsl:otherwise>
1582
+ <fo:table-column column-width="proportional-column-width({.})"/>
1583
+ </xsl:otherwise>
1584
+ </xsl:choose>
1585
+ </xsl:for-each>
1564
1586
  </xsl:otherwise>
1565
1587
  </xsl:choose>
1566
- </xsl:for-each>
1567
-
1568
- <xsl:choose>
1569
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
1570
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1571
- </xsl:when>
1572
- <xsl:otherwise>
1573
- <xsl:apply-templates/>
1574
- </xsl:otherwise>
1575
- </xsl:choose>
1576
-
1577
- </fo:table>
1578
-
1579
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1580
- <xsl:call-template name="insertTableFooterInSeparateTable">
1581
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
1582
- <xsl:with-param name="colwidths" select="$colwidths"/>
1583
- </xsl:call-template>
1584
- </xsl:for-each>
1585
-
1586
- <!-- insert footer as table -->
1587
- <!-- <fo:table>
1588
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1589
- <xsl:attribute name="{@name}">
1590
- <xsl:value-of select="."/>
1591
- </xsl:attribute>
1592
- </xsl:for-each>
1593
-
1594
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1588
+
1595
1589
  <xsl:choose>
1596
- <xsl:when test=". = 1 or . = 0">
1597
- <fo:table-column column-width="proportional-column-width(2)"/>
1590
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
1591
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1598
1592
  </xsl:when>
1599
1593
  <xsl:otherwise>
1600
- <fo:table-column column-width="proportional-column-width({.})"/>
1594
+ <xsl:apply-templates/>
1601
1595
  </xsl:otherwise>
1602
1596
  </xsl:choose>
1597
+
1598
+ </fo:table>
1599
+
1600
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
1601
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1602
+ <xsl:call-template name="insertTableFooterInSeparateTable">
1603
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
1604
+ <xsl:with-param name="colwidths" select="$colwidths"/>
1605
+ <xsl:with-param name="colgroup" select="$colgroup"/>
1606
+ </xsl:call-template>
1603
1607
  </xsl:for-each>
1604
- </fo:table>-->
1605
-
1606
-
1607
-
1608
-
1609
-
1610
- </fo:block-container>
1608
+
1609
+ <!-- insert footer as table -->
1610
+ <!-- <fo:table>
1611
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1612
+ <xsl:attribute name="{@name}">
1613
+ <xsl:value-of select="."/>
1614
+ </xsl:attribute>
1615
+ </xsl:for-each>
1616
+
1617
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1618
+ <xsl:choose>
1619
+ <xsl:when test=". = 1 or . = 0">
1620
+ <fo:table-column column-width="proportional-column-width(2)"/>
1621
+ </xsl:when>
1622
+ <xsl:otherwise>
1623
+ <fo:table-column column-width="proportional-column-width({.})"/>
1624
+ </xsl:otherwise>
1625
+ </xsl:choose>
1626
+ </xsl:for-each>
1627
+ </fo:table>-->
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+ </fo:block-container>
1634
+ </xsl:variable>
1635
+
1636
+
1637
+
1638
+ <xsl:choose>
1639
+ <xsl:when test="@width">
1640
+
1641
+ <!-- centered table when table name is centered (see table-name-style) -->
1642
+
1643
+ <fo:table table-layout="fixed" width="100%">
1644
+ <fo:table-column column-width="proportional-column-width(1)"/>
1645
+ <fo:table-column column-width="{@width}"/>
1646
+ <fo:table-column column-width="proportional-column-width(1)"/>
1647
+ <fo:table-body>
1648
+ <fo:table-row>
1649
+ <fo:table-cell column-number="2">
1650
+ <fo:block><xsl:copy-of select="$table"/></fo:block>
1651
+ </fo:table-cell>
1652
+ </fo:table-row>
1653
+ </fo:table-body>
1654
+ </fo:table>
1655
+
1656
+
1657
+
1658
+
1659
+ </xsl:when>
1660
+ <xsl:otherwise>
1661
+ <xsl:copy-of select="$table"/>
1662
+ </xsl:otherwise>
1663
+ </xsl:choose>
1664
+
1611
1665
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1612
1666
  <xsl:if test="normalize-space() != ''">
1613
1667
  <fo:block xsl:use-attribute-sets="table-name-style">
@@ -1833,12 +1887,22 @@
1833
1887
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
1834
1888
  <xsl:param name="table_attributes"/>
1835
1889
  <xsl:param name="colwidths"/>
1890
+ <xsl:param name="colgroup"/>
1836
1891
 
1837
1892
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1838
1893
 
1839
1894
  <xsl:if test="$isNoteOrFnExist = 'true'">
1840
1895
 
1841
- <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
1896
+ <xsl:variable name="cols-count">
1897
+ <xsl:choose>
1898
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
1899
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
1900
+ </xsl:when>
1901
+ <xsl:otherwise>
1902
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
1903
+ </xsl:otherwise>
1904
+ </xsl:choose>
1905
+ </xsl:variable>
1842
1906
 
1843
1907
  <fo:table keep-with-previous="always">
1844
1908
  <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
@@ -1856,16 +1920,25 @@
1856
1920
  </xsl:choose>
1857
1921
  </xsl:for-each>
1858
1922
 
1859
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1860
- <xsl:choose>
1861
- <xsl:when test=". = 1 or . = 0">
1862
- <fo:table-column column-width="proportional-column-width(2)"/>
1863
- </xsl:when>
1864
- <xsl:otherwise>
1865
- <fo:table-column column-width="proportional-column-width({.})"/>
1866
- </xsl:otherwise>
1867
- </xsl:choose>
1868
- </xsl:for-each>
1923
+ <xsl:choose>
1924
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
1925
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
1926
+ <fo:table-column column-width="{@width}"/>
1927
+ </xsl:for-each>
1928
+ </xsl:when>
1929
+ <xsl:otherwise>
1930
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1931
+ <xsl:choose>
1932
+ <xsl:when test=". = 1 or . = 0">
1933
+ <fo:table-column column-width="proportional-column-width(2)"/>
1934
+ </xsl:when>
1935
+ <xsl:otherwise>
1936
+ <fo:table-column column-width="proportional-column-width({.})"/>
1937
+ </xsl:otherwise>
1938
+ </xsl:choose>
1939
+ </xsl:for-each>
1940
+ </xsl:otherwise>
1941
+ </xsl:choose>
1869
1942
 
1870
1943
  <fo:table-body>
1871
1944
  <fo:table-row>
@@ -2265,7 +2338,9 @@
2265
2338
  </xsl:template><xsl:template match="*[local-name()='dl']">
2266
2339
  <fo:block-container>
2267
2340
 
2268
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2341
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2342
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2343
+ </xsl:if>
2269
2344
 
2270
2345
 
2271
2346
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -2280,6 +2355,7 @@
2280
2355
  <fo:block-container>
2281
2356
 
2282
2357
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
2358
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2283
2359
 
2284
2360
 
2285
2361
  <xsl:variable name="parent" select="local-name(..)"/>
@@ -2396,7 +2472,7 @@
2396
2472
  <xsl:with-param name="table" select="$html-table"/>
2397
2473
  </xsl:call-template>
2398
2474
  </xsl:variable>
2399
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2475
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2400
2476
  <xsl:variable name="maxlength_dt">
2401
2477
  <xsl:call-template name="getMaxLength_dt"/>
2402
2478
  </xsl:variable>
@@ -2425,13 +2501,22 @@
2425
2501
  </xsl:when>
2426
2502
  <xsl:otherwise>
2427
2503
  <xsl:choose>
2504
+ <!-- to set width check most wide chars like `W` -->
2428
2505
  <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
2429
- <fo:table-column column-width="5%"/>
2430
- <fo:table-column column-width="95%"/>
2506
+ <fo:table-column column-width="7%"/>
2507
+ <fo:table-column column-width="93%"/>
2431
2508
  </xsl:when>
2432
- <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like t90, a, etc -->
2433
- <fo:table-column column-width="10%"/>
2434
- <fo:table-column column-width="90%"/>
2509
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like ABC, etc -->
2510
+ <fo:table-column column-width="15%"/>
2511
+ <fo:table-column column-width="85%"/>
2512
+ </xsl:when>
2513
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 7"> <!-- if dt contains short text like ABCDEF, etc -->
2514
+ <fo:table-column column-width="20%"/>
2515
+ <fo:table-column column-width="80%"/>
2516
+ </xsl:when>
2517
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
2518
+ <fo:table-column column-width="25%"/>
2519
+ <fo:table-column column-width="75%"/>
2435
2520
  </xsl:when>
2436
2521
  <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
2437
2522
  <fo:table-column column-width="60%"/>
@@ -2463,12 +2548,32 @@
2463
2548
  </xsl:otherwise>
2464
2549
  </xsl:choose>
2465
2550
  </xsl:template><xsl:template name="getMaxLength_dt">
2466
- <xsl:for-each select="*[local-name()='dt']">
2467
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
2468
- <xsl:if test="position() = 1">
2469
- <xsl:value-of select="string-length(normalize-space(.))"/>
2470
- </xsl:if>
2471
- </xsl:for-each>
2551
+ <xsl:variable name="lengths">
2552
+ <xsl:for-each select="*[local-name()='dt']">
2553
+ <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
2554
+ <xsl:variable name="attributes">
2555
+ <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
2556
+ <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
2557
+ </xsl:variable>
2558
+ <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
2559
+ </xsl:for-each>
2560
+ </xsl:variable>
2561
+ <xsl:variable name="maxLength">
2562
+ <!-- <xsl:for-each select="*[local-name()='dt']">
2563
+ <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
2564
+ <xsl:if test="position() = 1">
2565
+ <xsl:value-of select="string-length(normalize-space(.))"/>
2566
+ </xsl:if>
2567
+ </xsl:for-each> -->
2568
+ <xsl:for-each select="xalan:nodeset($lengths)/length">
2569
+ <xsl:sort select="." data-type="number" order="descending"/>
2570
+ <xsl:if test="position() = 1">
2571
+ <xsl:value-of select="."/>
2572
+ </xsl:if>
2573
+ </xsl:for-each>
2574
+ </xsl:variable>
2575
+ <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
2576
+ <xsl:value-of select="$maxLength"/>
2472
2577
  </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
2473
2578
  <xsl:param name="key_iso"/>
2474
2579
 
@@ -2608,6 +2713,7 @@
2608
2713
 
2609
2714
 
2610
2715
 
2716
+
2611
2717
  10
2612
2718
 
2613
2719
  </xsl:variable>
@@ -2622,6 +2728,10 @@
2622
2728
  </xsl:if>
2623
2729
  <xsl:apply-templates/>
2624
2730
  </fo:inline>
2731
+ </xsl:template><xsl:template match="*[local-name()='underline']">
2732
+ <fo:inline text-decoration="underline">
2733
+ <xsl:apply-templates/>
2734
+ </fo:inline>
2625
2735
  </xsl:template><xsl:template match="*[local-name()='del']">
2626
2736
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
2627
2737
  <xsl:apply-templates/>
@@ -2715,6 +2825,10 @@
2715
2825
  <xsl:param name="text" select="."/>
2716
2826
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
2717
2827
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
2828
+ </xsl:template><xsl:template name="add-zero-spaces-link-java">
2829
+ <xsl:param name="text" select="."/>
2830
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
2831
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1​')"/>
2718
2832
  </xsl:template><xsl:template name="add-zero-spaces">
2719
2833
  <xsl:param name="text" select="."/>
2720
2834
  <xsl:variable name="zero-space-after-chars">-</xsl:variable>
@@ -2975,6 +3089,11 @@
2975
3089
  <!-- replace start and end spaces to non-break space -->
2976
3090
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
2977
3091
  </xsl:copy>
3092
+ </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
3093
+ <xsl:copy>
3094
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
3095
+ </xsl:copy>
3096
+ <mathml:mspace width="0.5ex"/>
2978
3097
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2979
3098
  <xsl:variable name="target">
2980
3099
  <xsl:choose>
@@ -2996,7 +3115,10 @@
2996
3115
  <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
2997
3116
  <xsl:choose>
2998
3117
  <xsl:when test="normalize-space(.) = ''">
2999
- <xsl:value-of select="$target"/>
3118
+ <!-- <xsl:value-of select="$target"/> -->
3119
+ <xsl:call-template name="add-zero-spaces-link-java">
3120
+ <xsl:with-param name="text" select="$target"/>
3121
+ </xsl:call-template>
3000
3122
  </xsl:when>
3001
3123
  <xsl:otherwise>
3002
3124
  <xsl:apply-templates/>
@@ -3206,7 +3328,7 @@
3206
3328
  </xsl:if> -->
3207
3329
  </fo:inline>
3208
3330
  </xsl:if>
3209
- </xsl:template><xsl:template match="*[local-name() = 'figure']">
3331
+ </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
3210
3332
  <fo:block-container id="{@id}">
3211
3333
 
3212
3334
  <fo:block>
@@ -3275,6 +3397,8 @@
3275
3397
  <xsl:variable name="bookmark-title_">
3276
3398
  <xsl:call-template name="getLangVersion">
3277
3399
  <xsl:with-param name="lang" select="@lang"/>
3400
+ <xsl:with-param name="doctype" select="@doctype"/>
3401
+ <xsl:with-param name="title" select="@title-part"/>
3278
3402
  </xsl:call-template>
3279
3403
  </xsl:variable>
3280
3404
  <xsl:choose>
@@ -3292,13 +3416,34 @@
3292
3416
  </xsl:choose>
3293
3417
  </fo:bookmark-title>
3294
3418
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
3419
+
3420
+ <xsl:call-template name="insertFigureBookmarks">
3421
+ <xsl:with-param name="contents" select="contents"/>
3422
+ </xsl:call-template>
3423
+
3424
+ <xsl:call-template name="insertTableBookmarks">
3425
+ <xsl:with-param name="contents" select="contents"/>
3426
+ <xsl:with-param name="lang" select="@lang"/>
3427
+ </xsl:call-template>
3428
+
3295
3429
  </fo:bookmark>
3296
3430
 
3297
3431
  </xsl:for-each>
3298
3432
  </xsl:when>
3299
3433
  <xsl:otherwise>
3300
3434
  <xsl:for-each select="xalan:nodeset($contents)/doc">
3435
+
3301
3436
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
3437
+
3438
+ <xsl:call-template name="insertFigureBookmarks">
3439
+ <xsl:with-param name="contents" select="contents"/>
3440
+ </xsl:call-template>
3441
+
3442
+ <xsl:call-template name="insertTableBookmarks">
3443
+ <xsl:with-param name="contents" select="contents"/>
3444
+ <xsl:with-param name="lang" select="@lang"/>
3445
+ </xsl:call-template>
3446
+
3302
3447
  </xsl:for-each>
3303
3448
  </xsl:otherwise>
3304
3449
  </xsl:choose>
@@ -3317,8 +3462,44 @@
3317
3462
 
3318
3463
  </fo:bookmark-tree>
3319
3464
  </xsl:if>
3465
+ </xsl:template><xsl:template name="insertFigureBookmarks">
3466
+ <xsl:param name="contents"/>
3467
+ <xsl:if test="xalan:nodeset($contents)/figure">
3468
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
3469
+ <fo:bookmark-title>Figures</fo:bookmark-title>
3470
+ <xsl:for-each select="xalan:nodeset($contents)/figure">
3471
+ <fo:bookmark internal-destination="{@id}">
3472
+ <fo:bookmark-title>
3473
+ <xsl:value-of select="normalize-space(title)"/>
3474
+ </fo:bookmark-title>
3475
+ </fo:bookmark>
3476
+ </xsl:for-each>
3477
+ </fo:bookmark>
3478
+ </xsl:if>
3479
+ </xsl:template><xsl:template name="insertTableBookmarks">
3480
+ <xsl:param name="contents"/>
3481
+ <xsl:param name="lang"/>
3482
+ <xsl:if test="xalan:nodeset($contents)/table">
3483
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
3484
+ <fo:bookmark-title>
3485
+ <xsl:choose>
3486
+ <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
3487
+ <xsl:otherwise>Tables</xsl:otherwise>
3488
+ </xsl:choose>
3489
+ </fo:bookmark-title>
3490
+ <xsl:for-each select="xalan:nodeset($contents)/table">
3491
+ <fo:bookmark internal-destination="{@id}">
3492
+ <fo:bookmark-title>
3493
+ <xsl:value-of select="normalize-space(title)"/>
3494
+ </fo:bookmark-title>
3495
+ </fo:bookmark>
3496
+ </xsl:for-each>
3497
+ </fo:bookmark>
3498
+ </xsl:if>
3320
3499
  </xsl:template><xsl:template name="getLangVersion">
3321
3500
  <xsl:param name="lang"/>
3501
+ <xsl:param name="doctype" select="''"/>
3502
+ <xsl:param name="title" select="''"/>
3322
3503
  <xsl:choose>
3323
3504
  <xsl:when test="$lang = 'en'">
3324
3505
 
@@ -3354,6 +3535,12 @@
3354
3535
  <!-- <xsl:text> </xsl:text> -->
3355
3536
  </xsl:template><xsl:template name="getSection">
3356
3537
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
3538
+ <!--
3539
+ <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
3540
+ <xsl:value-of select="."/>
3541
+ </xsl:for-each>
3542
+ -->
3543
+
3357
3544
  </xsl:template><xsl:template name="getName">
3358
3545
  <xsl:choose>
3359
3546
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -3406,6 +3593,12 @@
3406
3593
  <xsl:copy>
3407
3594
  <xsl:apply-templates mode="contents_item"/>
3408
3595
  </xsl:copy>
3596
+ </xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
3597
+ <xsl:copy>
3598
+ <xsl:apply-templates mode="contents_item"/>
3599
+ </xsl:copy>
3600
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
3601
+ <xsl:copy-of select="."/>
3409
3602
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
3410
3603
  <xsl:text> </xsl:text>
3411
3604
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
@@ -3431,6 +3624,7 @@
3431
3624
 
3432
3625
 
3433
3626
 
3627
+
3434
3628
 
3435
3629
 
3436
3630
 
@@ -3811,10 +4005,13 @@
3811
4005
  </xsl:if>
3812
4006
  </xsl:if>
3813
4007
 
4008
+
3814
4009
  <fo:block-container margin-left="0mm">
3815
4010
 
3816
4011
  <fo:block xsl:use-attribute-sets="quote-style">
3817
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
4012
+ <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
4013
+
4014
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
3818
4015
  </fo:block>
3819
4016
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3820
4017
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -3960,6 +4157,7 @@
3960
4157
 
3961
4158
 
3962
4159
 
4160
+
3963
4161
 
3964
4162
 
3965
4163
  <xsl:variable name="pos"><xsl:number count="rsd:sections/rsd:clause[not(@type='scope') and not(@type='conformance')]"/></xsl:variable> <!-- | rsd:sections/rsd:terms -->
@@ -3976,7 +4174,7 @@
3976
4174
 
3977
4175
 
3978
4176
 
3979
- </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
4177
+ </xsl:template><xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
3980
4178
  <fo:block break-after="page"/>
3981
4179
  <fo:block>
3982
4180
  <xsl:call-template name="setId"/>
@@ -3984,7 +4182,8 @@
3984
4182
  </fo:block>
3985
4183
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
3986
4184
  <fo:block>
3987
- <xsl:call-template name="setId"/>
4185
+ <xsl:call-template name="setId"/>
4186
+
3988
4187
 
3989
4188
  <xsl:apply-templates/>
3990
4189
  </fo:block>
@@ -4049,7 +4248,8 @@
4049
4248
  <fo:table-column column-width="107mm"/>
4050
4249
  <fo:table-column column-width="15mm"/>
4051
4250
  <fo:table-body>
4052
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
4251
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
4252
+
4053
4253
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
4054
4254
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
4055
4255
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -4067,6 +4267,10 @@
4067
4267
  <fo:block><xsl:apply-templates/></fo:block>
4068
4268
  </fo:table-cell>
4069
4269
  </xsl:template><xsl:template name="processBibitem">
4270
+
4271
+
4272
+ <!-- end BIPM bibitem processing-->
4273
+
4070
4274
 
4071
4275
 
4072
4276
 
@@ -4125,6 +4329,8 @@
4125
4329
  <xsl:value-of select="translate(.,'. ','')"/>
4126
4330
  </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
4127
4331
  <xsl:value-of select="substring(.,1,1)"/>
4332
+ </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
4333
+ <fo:inline><xsl:apply-templates/></fo:inline>
4128
4334
  </xsl:template><xsl:template name="convertDate">
4129
4335
  <xsl:param name="date"/>
4130
4336
  <xsl:param name="format" select="'short'"/>
@@ -4149,6 +4355,57 @@
4149
4355
  </xsl:variable>
4150
4356
  <xsl:variable name="result">
4151
4357
  <xsl:choose>
4358
+ <xsl:when test="$format = 'ddMMyyyy'">
4359
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
4360
+ <xsl:text> </xsl:text>
4361
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
4362
+ </xsl:when>
4363
+ <xsl:when test="$format = 'ddMM'">
4364
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
4365
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
4366
+ </xsl:when>
4367
+ <xsl:when test="$format = 'short' or $day = ''">
4368
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
4369
+ </xsl:when>
4370
+ <xsl:otherwise>
4371
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
4372
+ </xsl:otherwise>
4373
+ </xsl:choose>
4374
+ </xsl:variable>
4375
+ <xsl:value-of select="$result"/>
4376
+ </xsl:template><xsl:template name="convertDateLocalized">
4377
+ <xsl:param name="date"/>
4378
+ <xsl:param name="format" select="'short'"/>
4379
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
4380
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
4381
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
4382
+ <xsl:variable name="monthStr">
4383
+ <xsl:choose>
4384
+ <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
4385
+ <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
4386
+ <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
4387
+ <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
4388
+ <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
4389
+ <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
4390
+ <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
4391
+ <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
4392
+ <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
4393
+ <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
4394
+ <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
4395
+ <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
4396
+ </xsl:choose>
4397
+ </xsl:variable>
4398
+ <xsl:variable name="result">
4399
+ <xsl:choose>
4400
+ <xsl:when test="$format = 'ddMMyyyy'">
4401
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
4402
+ <xsl:text> </xsl:text>
4403
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
4404
+ </xsl:when>
4405
+ <xsl:when test="$format = 'ddMM'">
4406
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
4407
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
4408
+ </xsl:when>
4152
4409
  <xsl:when test="$format = 'short' or $day = ''">
4153
4410
  <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
4154
4411
  </xsl:when>
@@ -4164,7 +4421,7 @@
4164
4421
  <xsl:param name="charDelim" select="', '"/>
4165
4422
  <xsl:choose>
4166
4423
  <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
4167
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
4424
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
4168
4425
  <xsl:sort data-type="text" order="ascending"/>
4169
4426
  <xsl:call-template name="insertKeyword">
4170
4427
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
@@ -4173,7 +4430,7 @@
4173
4430
  </xsl:for-each>
4174
4431
  </xsl:when>
4175
4432
  <xsl:otherwise>
4176
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
4433
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
4177
4434
  <xsl:call-template name="insertKeyword">
4178
4435
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
4179
4436
  <xsl:with-param name="charDelim" select="$charDelim"/>
@@ -4190,6 +4447,9 @@
4190
4447
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
4191
4448
  </xsl:choose>
4192
4449
  </xsl:template><xsl:template name="addPDFUAmeta">
4450
+ <xsl:variable name="lang">
4451
+ <xsl:call-template name="getLang"/>
4452
+ </xsl:variable>
4193
4453
  <fo:declarations>
4194
4454
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
4195
4455
  <pdf:dictionary type="normal" key="ViewerPreferences">
@@ -4202,13 +4462,16 @@
4202
4462
  <!-- Dublin Core properties go here -->
4203
4463
  <dc:title>
4204
4464
  <xsl:variable name="title">
4205
-
4206
-
4207
-
4208
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = 'en']"/>
4209
-
4210
-
4211
-
4465
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
4466
+
4467
+
4468
+
4469
+
4470
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang]"/>
4471
+
4472
+
4473
+
4474
+ </xsl:for-each>
4212
4475
  </xsl:variable>
4213
4476
  <xsl:choose>
4214
4477
  <xsl:when test="normalize-space($title) != ''">
@@ -4220,17 +4483,21 @@
4220
4483
  </xsl:choose>
4221
4484
  </dc:title>
4222
4485
  <dc:creator>
4223
-
4224
-
4225
-
4226
- </dc:creator>
4227
- <dc:description>
4228
- <xsl:variable name="abstract">
4486
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
4487
+
4488
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
4489
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
4490
+ <xsl:if test="position() != last()">; </xsl:if>
4491
+ </xsl:for-each>
4229
4492
 
4230
4493
 
4231
4494
 
4495
+ </xsl:for-each>
4496
+ </dc:creator>
4497
+ <dc:description>
4498
+ <xsl:variable name="abstract">
4232
4499
 
4233
- <xsl:copy-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'abstract']//text()"/>
4500
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
4234
4501
 
4235
4502
 
4236
4503
  </xsl:variable>
@@ -4343,6 +4610,7 @@
4343
4610
 
4344
4611
 
4345
4612
 
4613
+
4346
4614
  </xsl:variable>
4347
4615
  <xsl:if test="$documentNS != $XSLNS">
4348
4616
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -4402,6 +4670,11 @@
4402
4670
  <xsl:call-template name="getLang"/>
4403
4671
  </xsl:variable>
4404
4672
 
4405
- <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
4673
+ <xsl:choose>
4674
+ <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
4675
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
4676
+ </xsl:when>
4677
+ <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
4678
+ </xsl:choose>
4406
4679
 
4407
4680
  </xsl:template></xsl:stylesheet>