metanorma-bipm 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,20 +34,35 @@
34
34
  <xsl:copy-of select="$doc_first_step2"/>
35
35
  </xsl:if>
36
36
  </xsl:variable>
37
- <xsl:variable name="doc_second">
37
+ <xsl:variable name="docs_slave">
38
38
  <xsl:if test="*[local-name()='metanorma-collection']">
39
- <xsl:variable name="doc_first_step1">
40
- <xsl:apply-templates select="(/*[local-name()='metanorma-collection']//*[contains(local-name(), '-standard')])[2]" mode="flatxml_step1">
41
- <xsl:with-param name="num" select="'second'"/>
42
- </xsl:apply-templates>
43
- </xsl:variable>
44
- <xsl:variable name="doc_first_step2">
45
- <xsl:apply-templates select="xalan:nodeset($doc_first_step1)" mode="flatxml_step2"/>
46
- </xsl:variable>
47
- <xsl:copy-of select="$doc_first_step2"/>
39
+ <xsl:for-each select="(/*[local-name()='metanorma-collection']//*[contains(local-name(), '-standard')])[position() &gt; 1]">
40
+ <xsl:variable name="doc_first_step1">
41
+ <xsl:apply-templates select="." mode="flatxml_step1">
42
+ <xsl:with-param name="num" select="'slave'"/>
43
+ </xsl:apply-templates>
44
+ </xsl:variable>
45
+ <xsl:variable name="doc_first_step2">
46
+ <xsl:apply-templates select="xalan:nodeset($doc_first_step1)" mode="flatxml_step2"/>
47
+ </xsl:variable>
48
+ <xsl:copy-of select="$doc_first_step2"/>
49
+ </xsl:for-each>
48
50
  </xsl:if>
49
51
  </xsl:variable>
50
-
52
+
53
+ <xsl:variable name="page_width">172</xsl:variable>
54
+ <xsl:variable name="column_gap">8</xsl:variable>
55
+ <xsl:variable name="docs_count">
56
+ <xsl:choose>
57
+ <xsl:when test="/*[local-name()='metanorma-collection']">
58
+ <xsl:value-of select="count(/*[local-name()='metanorma-collection']//*[contains(local-name(), '-standard')])"/>
59
+ </xsl:when>
60
+ <xsl:otherwise>1</xsl:otherwise>
61
+ </xsl:choose>
62
+ </xsl:variable>
63
+ <!-- (page_width - column_gap)/n_columns = column_width -->
64
+ <!-- example: for two-column layout: 82mm 8mm 82mm -->
65
+ <xsl:variable name="column_width" select="($page_width - $column_gap) div $docs_count"/>
51
66
 
52
67
  <xsl:variable name="debug">false</xsl:variable>
53
68
  <xsl:variable name="pageWidth" select="'210mm'"/>
@@ -444,32 +459,32 @@
444
459
  </xsl:variable> -->
445
460
 
446
461
  <!-- doc_first=<xsl:copy-of select="$doc_first"/>
447
- doc_second=<xsl:copy-of select="$doc_second"/> -->
462
+ docs_slave=<xsl:copy-of select="$docs_slave"/> -->
448
463
 
449
- <!-- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="two_columns"/> -->
450
- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='section_scope']/*" mode="two_columns"/>
464
+ <!-- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="multi_columns"/> -->
465
+ <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='section_scope']/*" mode="multi_columns"/>
451
466
 
452
467
  <!-- Normative references -->
453
- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="two_columns"/>
468
+ <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="multi_columns"/>
454
469
  <!-- Terms and definitions -->
455
- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='section_terms']/*" mode="two_columns"/>
470
+ <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='section_terms']/*" mode="multi_columns"/>
456
471
 
457
472
  <!-- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='terms'] |
458
473
  xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] |
459
474
  xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='definitions'] |
460
- xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="two_columns"/> -->
475
+ xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="multi_columns"/> -->
461
476
 
462
477
  <!-- Another main sections -->
463
478
  <!-- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name() != 'terms' and
464
479
  local-name() != 'definitions' and
465
480
  not(@type='scope') and
466
481
  not(local-name() = 'clause' and .//*[local-name()='terms']) and
467
- not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="two_columns"/> -->
468
- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name() != 'section_terms' and local-name() != 'section_scope']" mode="two_columns"/>
482
+ not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="multi_columns"/> -->
483
+ <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='sections']/*[local-name() != 'section_terms' and local-name() != 'section_scope']" mode="multi_columns"/>
469
484
 
470
- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='annex']" mode="two_columns"/>
485
+ <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='annex']" mode="multi_columns"/>
471
486
  <!-- Bibliography -->
472
- <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="two_columns"/>
487
+ <xsl:apply-templates select="xalan:nodeset($doc_first)/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="multi_columns"/>
473
488
 
474
489
 
475
490
  </xsl:otherwise>
@@ -638,7 +653,7 @@
638
653
  </xsl:choose>
639
654
  </xsl:attribute>
640
655
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
641
- <xsl:if test="ancestor::*[@first or @second]">
656
+ <xsl:if test="ancestor::*[@first or @slave]">
642
657
  <!-- JCGM two column layout -->
643
658
  <xsl:attribute name="widows">1</xsl:attribute>
644
659
  <xsl:attribute name="orphans">1</xsl:attribute>
@@ -729,21 +744,30 @@
729
744
  </xsl:if>
730
745
  </xsl:variable>
731
746
  <xsl:value-of select="$docidentifier"/>
732
- <xsl:apply-templates select="*[local-name()='note']"/>
733
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
734
- <fo:inline font-style="italic">
735
- <xsl:choose>
736
- <xsl:when test="*[local-name()='title'][@type = 'main' and @language = $lang]">
737
- <xsl:value-of select="*[local-name()='title'][@type = 'main' and @language = $lang]"/>
738
- </xsl:when>
739
- <xsl:when test="*[local-name()='title'][@type = 'main' and @language = 'en']">
740
- <xsl:value-of select="*[local-name()='title'][@type = 'main' and @language = 'en']"/>
741
- </xsl:when>
742
- <xsl:otherwise>
743
- <xsl:value-of select="*[local-name()='title']"/>
744
- </xsl:otherwise>
745
- </xsl:choose>
746
- </fo:inline>
747
+
748
+ <xsl:choose>
749
+ <xsl:when test="*[local-name()='formattedref']">
750
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
751
+ <xsl:apply-templates select="*[local-name()='formattedref']"/>
752
+ </xsl:when>
753
+ <xsl:otherwise>
754
+ <xsl:apply-templates select="*[local-name()='note']"/>
755
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
756
+ <fo:inline font-style="italic">
757
+ <xsl:choose>
758
+ <xsl:when test="*[local-name()='title'][@type = 'main' and @language = $lang]">
759
+ <xsl:value-of select="*[local-name()='title'][@type = 'main' and @language = $lang]"/>
760
+ </xsl:when>
761
+ <xsl:when test="*[local-name()='title'][@type = 'main' and @language = 'en']">
762
+ <xsl:value-of select="*[local-name()='title'][@type = 'main' and @language = 'en']"/>
763
+ </xsl:when>
764
+ <xsl:otherwise>
765
+ <xsl:value-of select="*[local-name()='title']"/>
766
+ </xsl:otherwise>
767
+ </xsl:choose>
768
+ </fo:inline>
769
+ </xsl:otherwise>
770
+ </xsl:choose>
747
771
  </fo:block>
748
772
  </xsl:template>
749
773
 
@@ -1504,16 +1528,18 @@
1504
1528
  <!-- Two columns layout -->
1505
1529
  <!-- =================== -->
1506
1530
 
1507
- <!-- <xsl:template match="*[@first]/*[local-name()='sections']//*[not(@cross-align) or not(@cross-align='true')]" mode="two_columns"/> -->
1531
+ <!-- <xsl:template match="*[@first]/*[local-name()='sections']//*[not(@cross-align) or not(@cross-align='true')]" mode="multi_columns"/> -->
1508
1532
 
1509
- <xsl:template match="*[@first]/*[local-name()='sections']//*[local-name() = 'cross-align'] | *[@first]/*[local-name()='annex']//*[local-name() = 'cross-align']" mode="two_columns">
1533
+ <xsl:template match="*[@first]/*[local-name()='sections']//*[local-name() = 'cross-align'] | *[@first]/*[local-name()='annex']//*[local-name() = 'cross-align']" mode="multi_columns">
1510
1534
  <xsl:variable name="element-number" select="@element-number"/>
1511
1535
  <fo:block>
1512
1536
  <xsl:copy-of select="@keep-with-next"/>
1513
1537
  <fo:table table-layout="fixed" width="100%">
1514
- <fo:table-column column-width="82mm"/>
1515
- <fo:table-column column-width="8mm"/>
1516
- <fo:table-column column-width="82mm"/>
1538
+ <fo:table-column column-width="{$column_width}mm"/>
1539
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1540
+ <fo:table-column column-width="{$column_gap}mm"/>
1541
+ <fo:table-column column-width="{$column_width}mm"/>
1542
+ </xsl:for-each>
1517
1543
  <fo:table-body>
1518
1544
  <fo:table-row>
1519
1545
  <fo:table-cell>
@@ -1524,17 +1550,22 @@
1524
1550
  </fo:block>
1525
1551
  <fo:block font-size="1pt"/>
1526
1552
  </fo:table-cell>
1527
- <fo:table-cell>
1528
- <fo:block/>
1529
- </fo:table-cell>
1530
- <fo:table-cell>
1531
- <fo:block font-size="1pt" keep-with-next="always"/>
1532
- <fo:block>
1533
- <xsl:copy-of select="@keep-with-next"/>
1534
- <xsl:apply-templates select="xalan:nodeset($doc_second)//*[local-name() = 'cross-align' and @element-number=$element-number]"/>
1535
- </fo:block>
1536
- <fo:block font-size="1pt"/>
1537
- </fo:table-cell>
1553
+ <xsl:variable name="keep-with-next" select="@keep-with-next"/>
1554
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1555
+ <fo:table-cell>
1556
+ <fo:block/>
1557
+ </fo:table-cell>
1558
+ <fo:table-cell>
1559
+ <fo:block font-size="1pt" keep-with-next="always"/>
1560
+ <fo:block>
1561
+ <xsl:if test="$keep-with-next != ''">
1562
+ <xsl:attribute name="keep-with-next"><xsl:value-of select="$keep-with-next"/></xsl:attribute>
1563
+ </xsl:if>
1564
+ <xsl:apply-templates select=".//*[local-name() = 'cross-align' and @element-number=$element-number]"/>
1565
+ </fo:block>
1566
+ <fo:block font-size="1pt"/>
1567
+ </fo:table-cell>
1568
+ </xsl:for-each>
1538
1569
  </fo:table-row>
1539
1570
  </fo:table-body>
1540
1571
  </fo:table>
@@ -1545,37 +1576,41 @@
1545
1576
  <xsl:apply-templates/>
1546
1577
  </xsl:template>
1547
1578
 
1548
- <!-- no display table/figure from second document if common=true or span=true -->
1549
- <xsl:template match="*[@second]//*[local-name()='table'][@common = 'true']" priority="2"/>
1550
- <xsl:template match="*[@second]//*[local-name()='table'][@span = 'true']" priority="2"/>
1551
- <xsl:template match="*[@second]//*[local-name()='figure'][@common = 'true']" priority="2"/>
1552
- <xsl:template match="*[@second]//*[local-name()='figure'][@span = 'true']" priority="2"/>
1579
+ <!-- no display table/figure from slave documents if common=true or span=true -->
1580
+ <xsl:template match="*[@slave]//*[local-name()='table'][@common = 'true']" priority="2"/>
1581
+ <xsl:template match="*[@slave]//*[local-name()='table'][@span = 'true']" priority="2"/>
1582
+ <xsl:template match="*[@slave]//*[local-name()='figure'][@common = 'true']" priority="2"/>
1583
+ <xsl:template match="*[@slave]//*[local-name()='figure'][@span = 'true']" priority="2"/>
1553
1584
 
1554
1585
  <!-- for table and figure with @common='true' -->
1555
1586
  <!-- display only element from first document -->
1556
- <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@common = 'true']" mode="two_columns">
1587
+ <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@common = 'true']" mode="multi_columns">
1557
1588
  <fo:block>
1558
1589
  <xsl:apply-templates/>
1559
1590
  </fo:block>
1560
1591
  </xsl:template>
1561
1592
 
1562
1593
  <!-- for table and figure with @span='true' -->
1563
- <!-- display element from first document, then (after) from second one -->
1564
- <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@span = 'true']" mode="two_columns">
1594
+ <!-- display element from first document, then (after) from 2nd one, then 3rd, etc. -->
1595
+ <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@span = 'true']" mode="multi_columns">
1565
1596
  <xsl:variable name="element-number" select="@element-number"/>
1566
1597
  <fo:block>
1567
1598
  <xsl:apply-templates/>
1568
1599
  <fo:block> </fo:block>
1569
1600
  <xsl:choose>
1570
1601
  <xsl:when test="local-name(*[@span = 'true']) = 'table'">
1571
- <xsl:for-each select="xalan:nodeset($doc_second)//*[local-name() = 'table' and @element-number=$element-number]">
1602
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1603
+ <xsl:for-each select=".//*[local-name() = 'table' and @element-number=$element-number]">
1572
1604
  <xsl:call-template name="table"/>
1573
1605
  </xsl:for-each>
1606
+ </xsl:for-each>
1574
1607
  </xsl:when>
1575
1608
  <xsl:when test="local-name(*[@span = 'true']) = 'figure'">
1576
- <xsl:for-each select="xalan:nodeset($doc_second)//*[local-name() = 'figure' and @element-number=$element-number]">
1609
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1610
+ <xsl:for-each select=".//*[local-name() = 'figure' and @element-number=$element-number]">
1577
1611
  <xsl:call-template name="figure"/>
1578
1612
  </xsl:for-each>
1613
+ </xsl:for-each>
1579
1614
  </xsl:when>
1580
1615
  </xsl:choose>
1581
1616
  </fo:block>
@@ -1583,19 +1618,26 @@
1583
1618
 
1584
1619
  <!-- =========== -->
1585
1620
  <!-- References -->
1586
- <xsl:template match="*[@first]//*[local-name()='references'][@normative='true']" mode="two_columns">
1587
- <fo:block font-size="1pt" keep-with-next="always"><fo:inline id="{@id}"/> <fo:inline id="{xalan:nodeset($doc_second)//*[local-name()='references'][@normative='true']/@id}"/></fo:block>
1588
- <xsl:apply-templates mode="two_columns"/>
1621
+ <xsl:template match="*[@first]//*[local-name()='references'][@normative='true']" mode="multi_columns">
1622
+ <fo:block font-size="1pt" keep-with-next="always">
1623
+ <fo:inline id="{@id}"/>
1624
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1625
+ <fo:inline id="{.//*[local-name()='references'][@normative='true']/@id}"/>
1626
+ </xsl:for-each>
1627
+ </fo:block>
1628
+ <xsl:apply-templates mode="multi_columns"/>
1589
1629
  </xsl:template>
1590
1630
 
1591
- <xsl:template match="*[@first]//*[local-name()='references'][@normative='true']/*" mode="two_columns">
1631
+ <xsl:template match="*[@first]//*[local-name()='references'][@normative='true']/*" mode="multi_columns">
1592
1632
  <xsl:variable name="number_"><xsl:number count="*"/></xsl:variable>
1593
1633
  <xsl:variable name="number" select="number(normalize-space($number_))"/>
1594
1634
  <fo:block>
1595
1635
  <fo:table table-layout="fixed" width="100%">
1596
- <fo:table-column column-width="82mm"/>
1597
- <fo:table-column column-width="8mm"/>
1598
- <fo:table-column column-width="82mm"/>
1636
+ <fo:table-column column-width="{$column_width}mm"/>
1637
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1638
+ <fo:table-column column-width="{$column_gap}mm"/>
1639
+ <fo:table-column column-width="{$column_width}mm"/>
1640
+ </xsl:for-each>
1599
1641
  <fo:table-body>
1600
1642
  <fo:table-row>
1601
1643
  <fo:table-cell>
@@ -1603,51 +1645,63 @@
1603
1645
  <xsl:apply-templates select="."/>
1604
1646
  <fo:block font-size="1pt"/>
1605
1647
  </fo:table-cell>
1606
- <fo:table-cell>
1607
- <fo:block/>
1608
- </fo:table-cell>
1609
- <fo:table-cell>
1610
- <fo:block>
1611
- <fo:block font-size="1pt"/>
1612
- <xsl:apply-templates select="(xalan:nodeset($doc_second)//*[local-name()='references'][@normative='true']/*)[$number]"/>
1613
- <fo:block font-size="1pt"/>
1614
- </fo:block>
1615
- </fo:table-cell>
1648
+
1649
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1650
+ <fo:table-cell>
1651
+ <fo:block/>
1652
+ </fo:table-cell>
1653
+ <fo:table-cell>
1654
+ <fo:block>
1655
+ <fo:block font-size="1pt"/>
1656
+ <xsl:apply-templates select="(.//*[local-name()='references'][@normative='true']/*)[$number]"/>
1657
+ <fo:block font-size="1pt"/>
1658
+ </fo:block>
1659
+ </fo:table-cell>
1660
+ </xsl:for-each>
1616
1661
  </fo:table-row>
1617
1662
  </fo:table-body>
1618
1663
  </fo:table>
1619
1664
  </fo:block>
1620
1665
  </xsl:template>
1621
1666
 
1622
- <xsl:template match="*[@first]//*[local-name()='references'][not(@normative='true')]" mode="two_columns">
1667
+ <xsl:template match="*[@first]//*[local-name()='references'][not(@normative='true')]" mode="multi_columns">
1623
1668
  <fo:block break-after="page"/>
1624
- <fo:block font-size="1pt"><fo:inline id="{@id}"/><fo:inline id="{xalan:nodeset($doc_second)//*[local-name()='references'][not(@normative='true')]/@id}"/></fo:block>
1625
- <xsl:apply-templates mode="two_columns"/>
1669
+ <fo:block font-size="1pt"><fo:inline id="{@id}"/>
1670
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1671
+ <fo:inline id="{.//*[local-name()='references'][not(@normative='true')]/@id}"/>
1672
+ </xsl:for-each>
1673
+ </fo:block>
1674
+ <xsl:apply-templates mode="multi_columns"/>
1626
1675
  </xsl:template>
1627
1676
 
1628
- <xsl:template match="*[@first]//*[local-name()='references'][not(@normative='true')]/*" mode="two_columns">
1677
+ <xsl:template match="*[@first]//*[local-name()='references'][not(@normative='true')]/*" mode="multi_columns">
1629
1678
  <xsl:variable name="number_"><xsl:number count="*"/></xsl:variable>
1630
1679
  <xsl:variable name="number" select="number(normalize-space($number_))"/>
1631
1680
  <fo:block>
1632
1681
  <fo:table table-layout="fixed" width="100%">
1633
- <fo:table-column column-width="82mm"/>
1634
- <fo:table-column column-width="8mm"/>
1635
- <fo:table-column column-width="82mm"/>
1682
+ <fo:table-column column-width="{$column_width}mm"/>
1683
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1684
+ <fo:table-column column-width="{$column_gap}mm"/>
1685
+ <fo:table-column column-width="{$column_width}mm"/>
1686
+ </xsl:for-each>
1636
1687
  <fo:table-body>
1637
1688
  <fo:table-row>
1638
1689
  <fo:table-cell>
1639
1690
  <xsl:apply-templates select="."/>
1640
1691
  <fo:block font-size="1pt"/>
1641
1692
  </fo:table-cell>
1642
- <fo:table-cell>
1643
- <fo:block/>
1644
- </fo:table-cell>
1645
- <fo:table-cell>
1646
- <fo:block>
1647
- <xsl:apply-templates select="(xalan:nodeset($doc_second)//*[local-name()='references'][not(@normative='true')]/*)[$number]"/>
1648
- <fo:block font-size="1pt"/>
1649
- </fo:block>
1650
- </fo:table-cell>
1693
+
1694
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1695
+ <fo:table-cell>
1696
+ <fo:block/>
1697
+ </fo:table-cell>
1698
+ <fo:table-cell>
1699
+ <fo:block>
1700
+ <xsl:apply-templates select="(.//*[local-name()='references'][not(@normative='true')]/*)[$number]"/>
1701
+ <fo:block font-size="1pt"/>
1702
+ </fo:block>
1703
+ </fo:table-cell>
1704
+ </xsl:for-each>
1651
1705
  </fo:table-row>
1652
1706
  </fo:table-body>
1653
1707
  </fo:table>
@@ -1655,12 +1709,16 @@
1655
1709
  </xsl:template>
1656
1710
  <!-- End of References -->
1657
1711
 
1658
- <xsl:template match="*[@first]//*[local-name()='annex']" mode="two_columns">
1712
+ <xsl:template match="*[@first]//*[local-name()='annex']" mode="multi_columns">
1659
1713
  <xsl:variable name="number_"><xsl:number/></xsl:variable>
1660
1714
  <xsl:variable name="number" select="number(normalize-space($number_))"/>
1661
1715
  <fo:block break-after="page"/>
1662
- <fo:block font-size="1pt"><fo:inline id="{@id}"/><fo:inline id="{(xalan:nodeset($doc_second)//*[local-name()='annex'])[$number]/@id}"/></fo:block>
1663
- <xsl:apply-templates mode="two_columns"/>
1716
+ <fo:block font-size="1pt"><fo:inline id="{@id}"/>
1717
+ <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1718
+ <fo:inline id="{(.//*[local-name()='annex'])[$number]/@id}"/>
1719
+ </xsl:for-each>
1720
+ </fo:block>
1721
+ <xsl:apply-templates mode="multi_columns"/>
1664
1722
  </xsl:template>
1665
1723
 
1666
1724
  <!-- =================== -->
@@ -2384,15 +2442,12 @@
2384
2442
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
2385
2443
 
2386
2444
 
2387
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2388
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
2389
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
2390
-
2391
2445
 
2392
2446
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
2393
2447
  <xsl:attribute name="margin-left">12mm</xsl:attribute>
2394
2448
  <xsl:attribute name="margin-right">12mm</xsl:attribute>
2395
2449
  <xsl:attribute name="font-style">italic</xsl:attribute>
2450
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2396
2451
 
2397
2452
 
2398
2453
 
@@ -2536,204 +2591,238 @@
2536
2591
  <xsl:call-template name="add-zero-spaces-java"/>
2537
2592
  </xsl:template><xsl:template match="*[local-name()='table']" name="table">
2538
2593
 
2539
- <xsl:variable name="simple-table">
2540
- <xsl:call-template name="getSimpleTable"/>
2541
- </xsl:variable>
2594
+ <xsl:variable name="table">
2542
2595
 
2543
-
2544
-
2545
-
2546
-
2547
- <!-- <xsl:if test="$namespace = 'bipm'">
2548
- <fo:block>&#xA0;</fo:block>
2549
- </xsl:if> -->
2550
-
2551
- <!-- $namespace = 'iso' or -->
2552
-
2553
-
2596
+ <xsl:variable name="simple-table">
2597
+ <xsl:call-template name="getSimpleTable"/>
2598
+ </xsl:variable>
2554
2599
 
2555
2600
 
2556
-
2557
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2558
-
2559
- <!-- <xsl:variable name="cols-count">
2560
- <xsl:choose>
2561
- <xsl:when test="*[local-name()='thead']">
2562
- <xsl:call-template name="calculate-columns-numbers">
2563
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2564
- </xsl:call-template>
2565
- </xsl:when>
2566
- <xsl:otherwise>
2567
- <xsl:call-template name="calculate-columns-numbers">
2568
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2569
- </xsl:call-template>
2570
- </xsl:otherwise>
2571
- </xsl:choose>
2572
- </xsl:variable> -->
2573
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2574
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2575
-
2576
-
2577
-
2578
- <xsl:variable name="colwidths">
2579
- <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2580
- <xsl:call-template name="calculate-column-widths">
2581
- <xsl:with-param name="cols-count" select="$cols-count"/>
2582
- <xsl:with-param name="table" select="$simple-table"/>
2583
- </xsl:call-template>
2584
- </xsl:if>
2585
- </xsl:variable>
2586
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2587
-
2588
- <!-- <xsl:variable name="colwidths2">
2589
- <xsl:call-template name="calculate-column-widths">
2590
- <xsl:with-param name="cols-count" select="$cols-count"/>
2591
- </xsl:call-template>
2592
- </xsl:variable> -->
2593
-
2594
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2595
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2596
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2597
-
2598
- <xsl:variable name="margin-left">
2599
- <xsl:choose>
2600
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2601
- <xsl:otherwise>0</xsl:otherwise>
2602
- </xsl:choose>
2603
- </xsl:variable>
2604
-
2605
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2606
2601
 
2607
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2608
2602
 
2609
2603
 
2610
-
2611
-
2612
-
2604
+ <!-- <xsl:if test="$namespace = 'bipm'">
2605
+ <fo:block>&#xA0;</fo:block>
2606
+ </xsl:if> -->
2613
2607
 
2608
+ <!-- $namespace = 'iso' or -->
2614
2609
 
2615
-
2610
+
2616
2611
 
2612
+
2617
2613
 
2618
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2619
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2620
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2621
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2614
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2622
2615
 
2616
+ <!-- <xsl:variable name="cols-count">
2617
+ <xsl:choose>
2618
+ <xsl:when test="*[local-name()='thead']">
2619
+ <xsl:call-template name="calculate-columns-numbers">
2620
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2621
+ </xsl:call-template>
2622
+ </xsl:when>
2623
+ <xsl:otherwise>
2624
+ <xsl:call-template name="calculate-columns-numbers">
2625
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2626
+ </xsl:call-template>
2627
+ </xsl:otherwise>
2628
+ </xsl:choose>
2629
+ </xsl:variable> -->
2630
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2631
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2623
2632
 
2624
2633
 
2625
2634
 
2635
+ <xsl:variable name="colwidths">
2636
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2637
+ <xsl:call-template name="calculate-column-widths">
2638
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2639
+ <xsl:with-param name="table" select="$simple-table"/>
2640
+ </xsl:call-template>
2641
+ </xsl:if>
2642
+ </xsl:variable>
2643
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2644
+
2645
+ <!-- <xsl:variable name="colwidths2">
2646
+ <xsl:call-template name="calculate-column-widths">
2647
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2648
+ </xsl:call-template>
2649
+ </xsl:variable> -->
2626
2650
 
2651
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2652
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2653
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2627
2654
 
2628
- <xsl:variable name="table_attributes">
2629
- <attribute name="table-layout">fixed</attribute>
2630
- <attribute name="width">
2631
- <xsl:choose>
2632
- <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
2633
- <xsl:otherwise>100%</xsl:otherwise>
2634
- </xsl:choose>
2635
- </attribute>
2636
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2637
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2655
+ <xsl:variable name="margin-left">
2656
+ <xsl:choose>
2657
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2658
+ <xsl:otherwise>0</xsl:otherwise>
2659
+ </xsl:choose>
2660
+ </xsl:variable>
2661
+
2662
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2638
2663
 
2639
- <attribute name="border">1.5pt solid black</attribute>
2640
- <xsl:if test="*[local-name()='thead']">
2641
- <attribute name="border-top">1pt solid black</attribute>
2642
- </xsl:if>
2664
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2643
2665
 
2644
2666
 
2667
+
2668
+
2669
+
2645
2670
 
2646
2671
 
2647
- <attribute name="margin-left">0mm</attribute>
2648
- <attribute name="margin-right">0mm</attribute>
2672
+
2649
2673
 
2650
-
2651
-
2652
-
2653
2674
 
2654
-
2675
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2676
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2677
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2678
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2655
2679
 
2656
- </xsl:variable>
2657
-
2658
-
2659
- <fo:table id="{@id}" table-omit-footer-at-break="true">
2660
2680
 
2661
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2662
- <xsl:attribute name="{@name}">
2663
- <xsl:value-of select="."/>
2664
- </xsl:attribute>
2665
- </xsl:for-each>
2666
2681
 
2667
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2668
- <xsl:if test="$isNoteOrFnExist = 'true'">
2669
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2670
- </xsl:if>
2671
2682
 
2672
- <xsl:choose>
2673
- <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
2674
- <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
2675
- <fo:table-column column-width="{@width}"/>
2676
- </xsl:for-each>
2677
- </xsl:when>
2678
- <xsl:otherwise>
2679
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2680
- <xsl:choose>
2681
- <xsl:when test=". = 1 or . = 0">
2682
- <fo:table-column column-width="proportional-column-width(2)"/>
2683
- </xsl:when>
2684
- <xsl:otherwise>
2685
- <fo:table-column column-width="proportional-column-width({.})"/>
2686
- </xsl:otherwise>
2687
- </xsl:choose>
2688
- </xsl:for-each>
2689
- </xsl:otherwise>
2690
- </xsl:choose>
2691
2683
 
2692
- <xsl:choose>
2693
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2694
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2695
- </xsl:when>
2696
- <xsl:otherwise>
2697
- <xsl:apply-templates/>
2698
- </xsl:otherwise>
2699
- </xsl:choose>
2684
+ <xsl:variable name="table_width">
2685
+ <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
2686
+ 100%
2687
+
2688
+
2689
+ </xsl:variable>
2690
+
2691
+ <xsl:variable name="table_attributes">
2692
+ <attribute name="table-layout">fixed</attribute>
2693
+ <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
2694
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2695
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2696
+
2697
+ <attribute name="border">1.5pt solid black</attribute>
2698
+ <xsl:if test="*[local-name()='thead']">
2699
+ <attribute name="border-top">1pt solid black</attribute>
2700
+ </xsl:if>
2701
+
2702
+
2703
+
2704
+
2705
+ <attribute name="margin-left">0mm</attribute>
2706
+ <attribute name="margin-right">0mm</attribute>
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+ </xsl:variable>
2700
2715
 
2701
- </fo:table>
2702
-
2703
- <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
2704
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2705
- <xsl:call-template name="insertTableFooterInSeparateTable">
2706
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
2707
- <xsl:with-param name="colwidths" select="$colwidths"/>
2708
- <xsl:with-param name="colgroup" select="$colgroup"/>
2709
- </xsl:call-template>
2710
- </xsl:for-each>
2711
-
2712
- <!-- insert footer as table -->
2713
- <!-- <fo:table>
2714
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2715
- <xsl:attribute name="{@name}">
2716
- <xsl:value-of select="."/>
2717
- </xsl:attribute>
2718
- </xsl:for-each>
2719
2716
 
2720
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2717
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2718
+
2719
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2720
+ <xsl:attribute name="{@name}">
2721
+ <xsl:value-of select="."/>
2722
+ </xsl:attribute>
2723
+ </xsl:for-each>
2724
+
2725
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2726
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2727
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2728
+ </xsl:if>
2729
+
2721
2730
  <xsl:choose>
2722
- <xsl:when test=". = 1 or . = 0">
2723
- <fo:table-column column-width="proportional-column-width(2)"/>
2731
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
2732
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
2733
+ <fo:table-column column-width="{@width}"/>
2734
+ </xsl:for-each>
2724
2735
  </xsl:when>
2725
2736
  <xsl:otherwise>
2726
- <fo:table-column column-width="proportional-column-width({.})"/>
2737
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2738
+ <xsl:choose>
2739
+ <xsl:when test=". = 1 or . = 0">
2740
+ <fo:table-column column-width="proportional-column-width(2)"/>
2741
+ </xsl:when>
2742
+ <xsl:otherwise>
2743
+ <fo:table-column column-width="proportional-column-width({.})"/>
2744
+ </xsl:otherwise>
2745
+ </xsl:choose>
2746
+ </xsl:for-each>
2727
2747
  </xsl:otherwise>
2728
2748
  </xsl:choose>
2749
+
2750
+ <xsl:choose>
2751
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2752
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2753
+ </xsl:when>
2754
+ <xsl:otherwise>
2755
+ <xsl:apply-templates/>
2756
+ </xsl:otherwise>
2757
+ </xsl:choose>
2758
+
2759
+ </fo:table>
2760
+
2761
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
2762
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2763
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2764
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2765
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2766
+ <xsl:with-param name="colgroup" select="$colgroup"/>
2767
+ </xsl:call-template>
2729
2768
  </xsl:for-each>
2730
- </fo:table>-->
2731
-
2732
-
2733
-
2734
-
2735
-
2736
- </fo:block-container>
2769
+
2770
+ <!-- insert footer as table -->
2771
+ <!-- <fo:table>
2772
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2773
+ <xsl:attribute name="{@name}">
2774
+ <xsl:value-of select="."/>
2775
+ </xsl:attribute>
2776
+ </xsl:for-each>
2777
+
2778
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2779
+ <xsl:choose>
2780
+ <xsl:when test=". = 1 or . = 0">
2781
+ <fo:table-column column-width="proportional-column-width(2)"/>
2782
+ </xsl:when>
2783
+ <xsl:otherwise>
2784
+ <fo:table-column column-width="proportional-column-width({.})"/>
2785
+ </xsl:otherwise>
2786
+ </xsl:choose>
2787
+ </xsl:for-each>
2788
+ </fo:table>-->
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+ </fo:block-container>
2795
+ </xsl:variable>
2796
+
2797
+
2798
+
2799
+ <xsl:choose>
2800
+ <xsl:when test="@width">
2801
+
2802
+ <!-- centered table when table name is centered (see table-name-style) -->
2803
+
2804
+ <fo:table table-layout="fixed" width="100%">
2805
+ <fo:table-column column-width="proportional-column-width(1)"/>
2806
+ <fo:table-column column-width="{@width}"/>
2807
+ <fo:table-column column-width="proportional-column-width(1)"/>
2808
+ <fo:table-body>
2809
+ <fo:table-row>
2810
+ <fo:table-cell column-number="2">
2811
+ <fo:block><xsl:copy-of select="$table"/></fo:block>
2812
+ </fo:table-cell>
2813
+ </fo:table-row>
2814
+ </fo:table-body>
2815
+ </fo:table>
2816
+
2817
+
2818
+
2819
+
2820
+ </xsl:when>
2821
+ <xsl:otherwise>
2822
+ <xsl:copy-of select="$table"/>
2823
+ </xsl:otherwise>
2824
+ </xsl:choose>
2825
+
2737
2826
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2738
2827
  <xsl:if test="normalize-space() != ''">
2739
2828
  <fo:block xsl:use-attribute-sets="table-name-style">
@@ -3640,7 +3729,7 @@
3640
3729
  <xsl:with-param name="table" select="$html-table"/>
3641
3730
  </xsl:call-template>
3642
3731
  </xsl:variable>
3643
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3732
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3644
3733
  <xsl:variable name="maxlength_dt">
3645
3734
  <xsl:call-template name="getMaxLength_dt"/>
3646
3735
  </xsl:variable>
@@ -3669,13 +3758,22 @@
3669
3758
  </xsl:when>
3670
3759
  <xsl:otherwise>
3671
3760
  <xsl:choose>
3761
+ <!-- to set width check most wide chars like `W` -->
3672
3762
  <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
3673
- <fo:table-column column-width="5%"/>
3674
- <fo:table-column column-width="95%"/>
3763
+ <fo:table-column column-width="7%"/>
3764
+ <fo:table-column column-width="93%"/>
3765
+ </xsl:when>
3766
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like ABC, etc -->
3767
+ <fo:table-column column-width="15%"/>
3768
+ <fo:table-column column-width="85%"/>
3769
+ </xsl:when>
3770
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 7"> <!-- if dt contains short text like ABCDEF, etc -->
3771
+ <fo:table-column column-width="20%"/>
3772
+ <fo:table-column column-width="80%"/>
3675
3773
  </xsl:when>
3676
- <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like t90, a, etc -->
3677
- <fo:table-column column-width="10%"/>
3678
- <fo:table-column column-width="90%"/>
3774
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
3775
+ <fo:table-column column-width="25%"/>
3776
+ <fo:table-column column-width="75%"/>
3679
3777
  </xsl:when>
3680
3778
  <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3681
3779
  <fo:table-column column-width="60%"/>
@@ -3984,6 +4082,10 @@
3984
4082
  <xsl:param name="text" select="."/>
3985
4083
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
3986
4084
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
4085
+ </xsl:template><xsl:template name="add-zero-spaces-link-java">
4086
+ <xsl:param name="text" select="."/>
4087
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
4088
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1​')"/>
3987
4089
  </xsl:template><xsl:template name="add-zero-spaces">
3988
4090
  <xsl:param name="text" select="."/>
3989
4091
  <xsl:variable name="zero-space-after-chars">-</xsl:variable>
@@ -4244,6 +4346,11 @@
4244
4346
  <!-- replace start and end spaces to non-break space -->
4245
4347
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
4246
4348
  </xsl:copy>
4349
+ </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
4350
+ <xsl:copy>
4351
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
4352
+ </xsl:copy>
4353
+ <mathml:mspace width="0.5ex"/>
4247
4354
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4248
4355
  <xsl:variable name="target">
4249
4356
  <xsl:choose>
@@ -4265,7 +4372,10 @@
4265
4372
  <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
4266
4373
  <xsl:choose>
4267
4374
  <xsl:when test="normalize-space(.) = ''">
4268
- <xsl:value-of select="$target"/>
4375
+ <!-- <xsl:value-of select="$target"/> -->
4376
+ <xsl:call-template name="add-zero-spaces-link-java">
4377
+ <xsl:with-param name="text" select="$target"/>
4378
+ </xsl:call-template>
4269
4379
  </xsl:when>
4270
4380
  <xsl:otherwise>
4271
4381
  <xsl:apply-templates/>
@@ -4738,6 +4848,8 @@
4738
4848
  <xsl:copy>
4739
4849
  <xsl:apply-templates mode="contents_item"/>
4740
4850
  </xsl:copy>
4851
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
4852
+ <xsl:copy-of select="."/>
4741
4853
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4742
4854
  <xsl:text> </xsl:text>
4743
4855
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
@@ -5144,11 +5256,23 @@
5144
5256
  </xsl:if>
5145
5257
  </xsl:if>
5146
5258
 
5259
+
5260
+ <xsl:if test="not(*)">
5261
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
5262
+ </xsl:if>
5263
+
5147
5264
  <fo:block-container margin-left="0mm">
5148
5265
 
5149
5266
  <fo:block xsl:use-attribute-sets="quote-style">
5150
5267
  <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
5151
- <xsl:apply-templates select="./*[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5268
+
5269
+ <xsl:if test="ancestor::*[local-name() = 'boilerplate']">
5270
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
5271
+ <xsl:attribute name="margin-right">7mm</xsl:attribute>
5272
+ <xsl:attribute name="font-style">normal</xsl:attribute>
5273
+ </xsl:if>
5274
+
5275
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5152
5276
  </fo:block>
5153
5277
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
5154
5278
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -5563,7 +5687,7 @@
5563
5687
  <xsl:param name="charDelim" select="', '"/>
5564
5688
  <xsl:choose>
5565
5689
  <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
5566
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5690
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5567
5691
  <xsl:sort data-type="text" order="ascending"/>
5568
5692
  <xsl:call-template name="insertKeyword">
5569
5693
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
@@ -5572,7 +5696,7 @@
5572
5696
  </xsl:for-each>
5573
5697
  </xsl:when>
5574
5698
  <xsl:otherwise>
5575
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5699
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5576
5700
  <xsl:call-template name="insertKeyword">
5577
5701
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
5578
5702
  <xsl:with-param name="charDelim" select="$charDelim"/>
@@ -5589,6 +5713,9 @@
5589
5713
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
5590
5714
  </xsl:choose>
5591
5715
  </xsl:template><xsl:template name="addPDFUAmeta">
5716
+ <xsl:variable name="lang">
5717
+ <xsl:call-template name="getLang"/>
5718
+ </xsl:variable>
5592
5719
  <fo:declarations>
5593
5720
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5594
5721
  <pdf:dictionary type="normal" key="ViewerPreferences">
@@ -5601,13 +5728,16 @@
5601
5728
  <!-- Dublin Core properties go here -->
5602
5729
  <dc:title>
5603
5730
  <xsl:variable name="title">
5604
-
5605
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = 'en' and @type = 'main']"/>
5606
-
5607
-
5608
-
5609
-
5610
-
5731
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5732
+
5733
+
5734
+
5735
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'part']"/>
5736
+
5737
+
5738
+
5739
+
5740
+ </xsl:for-each>
5611
5741
  </xsl:variable>
5612
5742
  <xsl:choose>
5613
5743
  <xsl:when test="normalize-space($title) != ''">
@@ -5619,20 +5749,19 @@
5619
5749
  </xsl:choose>
5620
5750
  </dc:title>
5621
5751
  <dc:creator>
5622
-
5623
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'organization']/*[local-name() = 'name']"/>
5624
-
5625
-
5626
-
5627
- </dc:creator>
5628
- <dc:description>
5629
- <xsl:variable name="abstract">
5752
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5630
5753
 
5631
- <xsl:copy-of select="/*/*[local-name() = 'bibliography']/*[local-name() = 'references']/*[local-name() = 'bibitem']/*[local-name() = 'abstract']//text()"/>
5632
5754
 
5755
+ <xsl:value-of select="normalize-space(*[local-name() = 'ext']/*[local-name() = 'editorialgroup']/*[local-name() = 'committee'])"/>
5633
5756
 
5634
5757
 
5758
+ </xsl:for-each>
5759
+ </dc:creator>
5760
+ <dc:description>
5761
+ <xsl:variable name="abstract">
5762
+
5635
5763
 
5764
+ <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
5636
5765
 
5637
5766
  </xsl:variable>
5638
5767
  <xsl:value-of select="normalize-space($abstract)"/>