metanorma-ogc 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,17 +2,7 @@
2
2
 
3
3
  <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
- <xsl:param name="svg_images"/>
6
- <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
7
- <xsl:variable name="images" select="document($svg_images)"/>
8
- <xsl:param name="basepath"/>
9
-
10
5
  <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
11
-
12
- <xsl:variable name="marginLeftRight1" select="25.4"/>
13
- <xsl:variable name="marginLeftRight2" select="25.4"/>
14
- <xsl:variable name="marginTop" select="25.4"/>
15
- <xsl:variable name="marginBottom" select="25.4"/>
16
6
 
17
7
 
18
8
 
@@ -117,10 +107,7 @@
117
107
  </contents>
118
108
  </xsl:variable>
119
109
 
120
- <xsl:variable name="lang">
121
- <xsl:call-template name="getLang"/>
122
- </xsl:variable>
123
-
110
+
124
111
  <xsl:template match="/">
125
112
  <xsl:call-template name="namespaceCheck"/>
126
113
  <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}">
@@ -347,22 +334,20 @@
347
334
  </xsl:template>
348
335
 
349
336
 
350
- <xsl:variable name="thinspace" select="' '"/>
351
-
352
337
  <!-- Lato font doesn't contain 'thin space' glyph -->
353
338
  <xsl:template match="text()" priority="1">
354
- <xsl:value-of select="translate(., $thinspace, ' ')"/>
339
+ <xsl:value-of select="translate(., $thin_space, ' ')"/>
355
340
  </xsl:template>
356
341
 
357
342
  <xsl:template match="text()" priority="3" mode="contents">
358
- <xsl:value-of select="translate(., $thinspace, ' ')"/>
343
+ <xsl:value-of select="translate(., $thin_space, ' ')"/>
359
344
  </xsl:template>
360
345
 
361
346
  <xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text()" priority="2">
362
347
  <xsl:variable name="content">
363
348
  <xsl:call-template name="add-zero-spaces"/>
364
349
  </xsl:variable>
365
- <xsl:value-of select="translate($content, $thinspace, ' ')"/>
350
+ <xsl:value-of select="translate($content, $thin_space, ' ')"/>
366
351
  </xsl:template>
367
352
 
368
353
  <xsl:template match="node()">
@@ -606,8 +591,8 @@
606
591
  </xsl:template>
607
592
 
608
593
 
609
- <xsl:template match="ogc:ul | ogc:ol" mode="ul_ol">
610
- <fo:list-block provisional-distance-between-starts="6.5mm" margin-bottom="12pt" line-height="115%">
594
+ <xsl:template match="ogc:ul | ogc:ol" mode="list" priority="2">
595
+ <fo:list-block xsl:use-attribute-sets="list-style">
611
596
  <xsl:if test="ancestor::ogc:ul | ancestor::ogc:ol">
612
597
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
613
598
  </xsl:if>
@@ -618,111 +603,20 @@
618
603
  </fo:list-block>
619
604
  </xsl:template>
620
605
 
621
- <xsl:template match="ogc:li">
622
- <fo:list-item id="{@id}">
623
- <fo:list-item-label end-indent="label-end()">
624
- <fo:block>
625
- <xsl:choose>
626
- <xsl:when test="local-name(..) = 'ul'">
627
- <xsl:call-template name="setULLabel"/>
628
- </xsl:when>
629
- <xsl:otherwise> <!-- for ordered lists -->
630
- <xsl:choose>
631
- <xsl:when test="../@class = 'steps'">
632
- <xsl:number format="1)"/>
633
- </xsl:when>
634
- <xsl:when test="../@type = 'arabic'">
635
- <xsl:number format="a)" lang="en"/>
636
- </xsl:when>
637
- <xsl:when test="../@type = 'alphabet'">
638
- <xsl:number format="1)"/>
639
- </xsl:when>
640
- <xsl:when test="../@type = 'alphabet_upper'">
641
- <xsl:number format="A)" lang="en"/>
642
- </xsl:when>
643
-
644
- <xsl:when test="../@type = 'roman'">
645
- <xsl:number format="i)"/>
646
- </xsl:when>
647
- <xsl:otherwise>
648
- <xsl:number format="1)"/>
649
- </xsl:otherwise>
650
- </xsl:choose>
651
- </xsl:otherwise>
652
- </xsl:choose>
653
- </fo:block>
654
- </fo:list-item-label>
655
- <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
656
- <fo:block>
657
- <xsl:apply-templates/>
658
- </fo:block>
659
- </fo:list-item-body>
660
- </fo:list-item>
661
- </xsl:template>
662
606
 
663
607
  <xsl:template match="ogc:ul/ogc:note | ogc:ol/ogc:note" priority="2">
664
608
  <fo:list-item font-size="10pt">
665
609
  <fo:list-item-label><fo:block/></fo:list-item-label>
666
610
  <fo:list-item-body>
667
611
  <fo:block>
668
- <xsl:apply-templates select="ogc:name"/>
669
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
612
+ <xsl:apply-templates/>
670
613
  </fo:block>
671
614
  </fo:list-item-body>
672
615
  </fo:list-item>
673
616
  </xsl:template>
674
617
 
675
618
 
676
-
677
- <xsl:template match="ogc:preferred">
678
- <xsl:variable name="level">
679
- <xsl:call-template name="getLevel"/>
680
- </xsl:variable>
681
- <xsl:variable name="font-size">
682
- <xsl:choose>
683
- <xsl:when test="$level &gt;= 2">11pt</xsl:when>
684
- <xsl:otherwise>12pt</xsl:otherwise>
685
- </xsl:choose>
686
- </xsl:variable>
687
- <xsl:variable name="levelTerm">
688
- <xsl:call-template name="getLevelTermName"/>
689
- </xsl:variable>
690
- <fo:block font-size="{$font-size}" role="H{$levelTerm}">
691
- <fo:block font-weight="bold" keep-with-next="always">
692
- <xsl:apply-templates select="ancestor::ogc:term[1]/ogc:name"/>
693
- </fo:block>
694
- <fo:block font-weight="bold" keep-with-next="always" line-height="1">
695
- <xsl:call-template name="setStyle_preferred"/>
696
- <xsl:apply-templates/>
697
- </fo:block>
698
- </fo:block>
699
- </xsl:template>
700
-
701
-
702
- <xsl:template match="ogc:formula/ogc:stem">
703
- <fo:block margin-top="6pt" margin-bottom="12pt">
704
- <fo:table table-layout="fixed" width="100%">
705
- <fo:table-column column-width="95%"/>
706
- <fo:table-column column-width="5%"/>
707
- <fo:table-body>
708
- <fo:table-row>
709
- <fo:table-cell display-align="center">
710
- <fo:block text-align="left" margin-left="5mm">
711
- <xsl:apply-templates/>
712
- </fo:block>
713
- </fo:table-cell>
714
- <fo:table-cell display-align="center">
715
- <fo:block text-align="right">
716
- <xsl:apply-templates select="../ogc:name" mode="formula_number"/>
717
- </fo:block>
718
- </fo:table-cell>
719
- </fo:table-row>
720
- </fo:table-body>
721
- </fo:table>
722
- </fo:block>
723
- </xsl:template>
724
-
725
-
619
+
726
620
 
727
621
  <xsl:template name="insertHeaderFooter">
728
622
 
@@ -796,11 +690,21 @@
796
690
  </xsl:choose>
797
691
  </xsl:template>
798
692
 
799
- <xsl:variable name="pageWidth_">
693
+ <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:variable name="lang">
694
+ <xsl:call-template name="getLang"/>
695
+ </xsl:variable><xsl:variable name="pageWidth_">
800
696
  215.9
801
697
  </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
802
698
  279.4
803
- </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="titles_">
699
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
700
+ 25.4
701
+ </xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
702
+ 25.4
703
+ </xsl:variable><xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/><xsl:variable name="marginTop_">
704
+ 25.4
705
+ </xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
706
+ 25.4
707
+ </xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
804
708
 
805
709
  <title-edition lang="en">
806
710
 
@@ -862,7 +766,7 @@
862
766
  </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
863
767
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
864
768
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
865
- </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
769
+ </xsl:variable><xsl:variable name="linebreak">&#8232;</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space">​</xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
866
770
  <xsl:param name="name"/>
867
771
  <xsl:param name="lang"/>
868
772
  <xsl:variable name="lang_">
@@ -885,7 +789,7 @@
885
789
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
886
790
  </xsl:otherwise>
887
791
  </xsl:choose>
888
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
792
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:attribute-set name="root-style">
889
793
 
890
794
 
891
795
 
@@ -1112,7 +1016,7 @@
1112
1016
 
1113
1017
 
1114
1018
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1115
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1019
+
1116
1020
 
1117
1021
 
1118
1022
 
@@ -1511,11 +1415,11 @@
1511
1415
 
1512
1416
 
1513
1417
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1514
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
1418
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
1419
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
1515
1420
 
1516
1421
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1517
1422
  <xsl:attribute name="margin-left">13mm</xsl:attribute>
1518
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
1519
1423
 
1520
1424
 
1521
1425
 
@@ -1524,12 +1428,11 @@
1524
1428
 
1525
1429
 
1526
1430
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1431
+ <xsl:attribute name="text-align">right</xsl:attribute>
1527
1432
 
1528
- <xsl:attribute name="text-align">right</xsl:attribute>
1529
1433
  <xsl:attribute name="margin-right">25mm</xsl:attribute>
1530
1434
 
1531
1435
 
1532
-
1533
1436
  </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1534
1437
 
1535
1438
 
@@ -1554,6 +1457,9 @@
1554
1457
 
1555
1458
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1556
1459
 
1460
+ </xsl:attribute-set><xsl:attribute-set name="term-name-style">
1461
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1462
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1557
1463
  </xsl:attribute-set><xsl:attribute-set name="figure-style">
1558
1464
 
1559
1465
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
@@ -1587,6 +1493,36 @@
1587
1493
 
1588
1494
 
1589
1495
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1496
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1497
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-block-style">
1505
+ <xsl:attribute name="text-align">center</xsl:attribute>
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+ <xsl:attribute name="text-align">left</xsl:attribute>
1517
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
1518
+
1519
+
1520
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
1521
+ <xsl:attribute name="text-align">right</xsl:attribute>
1522
+
1523
+
1524
+
1525
+
1590
1526
 
1591
1527
  </xsl:attribute-set><xsl:attribute-set name="image-style">
1592
1528
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -1625,6 +1561,21 @@
1625
1561
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1626
1562
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1627
1563
 
1564
+ </xsl:attribute-set><xsl:attribute-set name="preferred-block-style">
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+
1572
+ </xsl:attribute-set><xsl:attribute-set name="preferred-term-style">
1573
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1574
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1575
+
1576
+
1577
+ <xsl:attribute name="line-height">1</xsl:attribute>
1578
+
1628
1579
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1629
1580
 
1630
1581
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1662,6 +1613,39 @@
1662
1613
 
1663
1614
  </xsl:attribute-set><xsl:attribute-set name="list-style">
1664
1615
 
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+ <xsl:attribute name="provisional-distance-between-starts">6.5mm</xsl:attribute>
1630
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1631
+ <xsl:attribute name="line-height">115%</xsl:attribute>
1632
+
1633
+
1634
+
1635
+
1636
+ </xsl:attribute-set><xsl:attribute-set name="list-item-style">
1637
+
1638
+
1639
+ </xsl:attribute-set><xsl:attribute-set name="list-item-label-style">
1640
+
1641
+
1642
+
1643
+ </xsl:attribute-set><xsl:attribute-set name="list-item-body-style">
1644
+
1645
+
1646
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
1647
+
1648
+
1665
1649
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
1666
1650
  <xsl:attribute name="line-height">135%</xsl:attribute>
1667
1651
  </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
@@ -1955,6 +1939,111 @@
1955
1939
 
1956
1940
  <xsl:attribute name="line-height">120%</xsl:attribute>
1957
1941
 
1942
+ </xsl:attribute-set><xsl:attribute-set name="hljs-doctag">
1943
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1944
+ </xsl:attribute-set><xsl:attribute-set name="hljs-keyword">
1945
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1946
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-keyword">
1947
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1948
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-tag">
1949
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1950
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-variable">
1951
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1952
+ </xsl:attribute-set><xsl:attribute-set name="hljs-type">
1953
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1954
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable_and_language_">
1955
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1956
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title">
1957
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1958
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class_">
1959
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1960
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class__and_inherited__">
1961
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1962
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_function_">
1963
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1964
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attr">
1965
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1966
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attribute">
1967
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1968
+ </xsl:attribute-set><xsl:attribute-set name="hljs-literal">
1969
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1970
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta">
1971
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1972
+ </xsl:attribute-set><xsl:attribute-set name="hljs-number">
1973
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1974
+ </xsl:attribute-set><xsl:attribute-set name="hljs-operator">
1975
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1976
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable">
1977
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1978
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-attr">
1979
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1980
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-class">
1981
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1982
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-id">
1983
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1984
+ </xsl:attribute-set><xsl:attribute-set name="hljs-regexp">
1985
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1986
+ </xsl:attribute-set><xsl:attribute-set name="hljs-string">
1987
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1988
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-string">
1989
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1990
+ </xsl:attribute-set><xsl:attribute-set name="hljs-built_in">
1991
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1992
+ </xsl:attribute-set><xsl:attribute-set name="hljs-symbol">
1993
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1994
+ </xsl:attribute-set><xsl:attribute-set name="hljs-comment">
1995
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1996
+ </xsl:attribute-set><xsl:attribute-set name="hljs-code">
1997
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1998
+ </xsl:attribute-set><xsl:attribute-set name="hljs-formula">
1999
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
2000
+ </xsl:attribute-set><xsl:attribute-set name="hljs-name">
2001
+ <xsl:attribute name="color">#22863a</xsl:attribute>
2002
+ </xsl:attribute-set><xsl:attribute-set name="hljs-quote">
2003
+ <xsl:attribute name="color">#22863a</xsl:attribute>
2004
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-tag">
2005
+ <xsl:attribute name="color">#22863a</xsl:attribute>
2006
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-pseudo">
2007
+ <xsl:attribute name="color">#22863a</xsl:attribute>
2008
+ </xsl:attribute-set><xsl:attribute-set name="hljs-subst">
2009
+ <xsl:attribute name="color">#24292e</xsl:attribute>
2010
+ </xsl:attribute-set><xsl:attribute-set name="hljs-section">
2011
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
2012
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2013
+ </xsl:attribute-set><xsl:attribute-set name="hljs-bullet">
2014
+ <xsl:attribute name="color">#735c0f</xsl:attribute>
2015
+ </xsl:attribute-set><xsl:attribute-set name="hljs-emphasis">
2016
+ <xsl:attribute name="color">#24292e</xsl:attribute>
2017
+ <xsl:attribute name="font-style">italic</xsl:attribute>
2018
+ </xsl:attribute-set><xsl:attribute-set name="hljs-strong">
2019
+ <xsl:attribute name="color">#24292e</xsl:attribute>
2020
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2021
+ </xsl:attribute-set><xsl:attribute-set name="hljs-addition">
2022
+ <xsl:attribute name="color">#22863a</xsl:attribute>
2023
+ <xsl:attribute name="background-color">#f0fff4</xsl:attribute>
2024
+ </xsl:attribute-set><xsl:attribute-set name="hljs-deletion">
2025
+ <xsl:attribute name="color">#b31d28</xsl:attribute>
2026
+ <xsl:attribute name="background-color">#ffeef0</xsl:attribute>
2027
+ </xsl:attribute-set><xsl:attribute-set name="hljs-char_and_escape_">
2028
+ </xsl:attribute-set><xsl:attribute-set name="hljs-link">
2029
+ </xsl:attribute-set><xsl:attribute-set name="hljs-params">
2030
+ </xsl:attribute-set><xsl:attribute-set name="hljs-property">
2031
+ </xsl:attribute-set><xsl:attribute-set name="hljs-punctuation">
2032
+ </xsl:attribute-set><xsl:attribute-set name="hljs-tag">
2033
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-title-style">
2034
+ <xsl:attribute name="role">H1</xsl:attribute>
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-clause-title-style">
2041
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2042
+
2043
+
2044
+
2045
+
2046
+
1958
2047
  </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
1959
2048
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1960
2049
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2077,6 +2166,7 @@
2077
2166
 
2078
2167
 
2079
2168
  </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
2169
+ <xsl:param name="margin"/>
2080
2170
 
2081
2171
  <!-- csa -->
2082
2172
  <fo:block xsl:use-attribute-sets="legal-statement-p-style">
@@ -2100,9 +2190,12 @@
2100
2190
  <xsl:call-template name="title"/>
2101
2191
 
2102
2192
  </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
2193
+ <xsl:param name="margin"/>
2103
2194
 
2104
2195
  <!-- process in the template 'paragraph' -->
2105
- <xsl:call-template name="paragraph"/>
2196
+ <xsl:call-template name="paragraph">
2197
+ <xsl:with-param name="margin" select="$margin"/>
2198
+ </xsl:call-template>
2106
2199
 
2107
2200
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2108
2201
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
@@ -2444,8 +2537,7 @@
2444
2537
  </xsl:call-template>
2445
2538
  </xsl:if>
2446
2539
  </xsl:template><xsl:template match="text()" mode="td_text">
2447
- <xsl:variable name="zero-space">​</xsl:variable>
2448
- <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
2540
+ <xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
2449
2541
  </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
2450
2542
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2451
2543
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
@@ -3426,20 +3518,44 @@
3426
3518
  <fo:inline text-decoration="underline">
3427
3519
  <xsl:apply-templates/>
3428
3520
  </fo:inline>
3429
- </xsl:template><xsl:template match="*[local-name()='add']">
3521
+ </xsl:template><xsl:template match="*[local-name()='add']" name="tag_add">
3430
3522
  <xsl:param name="skip">true</xsl:param>
3523
+ <xsl:param name="block">false</xsl:param>
3524
+ <xsl:param name="type"/>
3525
+ <xsl:param name="text-align"/>
3431
3526
  <xsl:choose>
3432
3527
  <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
3433
3528
  <xsl:choose>
3434
- <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
3529
+ <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab']) or local-name(..) = 'formattedref' and not(preceding-sibling::node())) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
3435
3530
  <xsl:otherwise>
3436
- <fo:inline>
3531
+ <xsl:variable name="tag">
3437
3532
  <xsl:call-template name="insertTag">
3438
- <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
3533
+ <xsl:with-param name="type">
3534
+ <xsl:choose>
3535
+ <xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
3536
+ <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
3537
+ </xsl:choose>
3538
+ </xsl:with-param>
3439
3539
  <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
3440
3540
  <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
3441
3541
  </xsl:call-template>
3442
- </fo:inline>
3542
+ </xsl:variable>
3543
+ <xsl:choose>
3544
+ <xsl:when test="$block = 'false'">
3545
+ <fo:inline>
3546
+ <xsl:copy-of select="$tag"/>
3547
+ </fo:inline>
3548
+ </xsl:when>
3549
+ <xsl:otherwise>
3550
+ <fo:block> <!-- for around figures -->
3551
+ <xsl:if test="$text-align != ''">
3552
+ <xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
3553
+ </xsl:if>
3554
+ <xsl:copy-of select="$tag"/>
3555
+ </fo:block>
3556
+ </xsl:otherwise>
3557
+ </xsl:choose>
3558
+
3443
3559
  </xsl:otherwise>
3444
3560
  </xsl:choose>
3445
3561
  </xsl:when>
@@ -3798,17 +3914,21 @@
3798
3914
  </xsl:apply-templates>
3799
3915
  </xsl:template><xsl:template name="getLang">
3800
3916
  <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3801
- <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3802
3917
  <xsl:variable name="language">
3803
3918
  <xsl:choose>
3804
3919
  <xsl:when test="$language_current != ''">
3805
3920
  <xsl:value-of select="$language_current"/>
3806
3921
  </xsl:when>
3807
- <xsl:when test="$language_current_2 != ''">
3808
- <xsl:value-of select="$language_current_2"/>
3809
- </xsl:when>
3810
3922
  <xsl:otherwise>
3811
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3923
+ <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3924
+ <xsl:choose>
3925
+ <xsl:when test="$language_current_2 != ''">
3926
+ <xsl:value-of select="$language_current_2"/>
3927
+ </xsl:when>
3928
+ <xsl:otherwise>
3929
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3930
+ </xsl:otherwise>
3931
+ </xsl:choose>
3812
3932
  </xsl:otherwise>
3813
3933
  </xsl:choose>
3814
3934
  </xsl:variable>
@@ -4025,8 +4145,8 @@
4025
4145
 
4026
4146
  </xsl:if>
4027
4147
  <fo:block-container margin-left="0mm">
4028
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
4029
- <xsl:apply-templates/>
4148
+ <fo:block id="{@id}">
4149
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
4030
4150
  </fo:block>
4031
4151
  </fo:block-container>
4032
4152
  </fo:block-container>
@@ -4038,10 +4158,43 @@
4038
4158
  <fo:inline>
4039
4159
  <xsl:apply-templates/>
4040
4160
  </fo:inline>
4041
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="formula_number"> <!-- show by demand -->
4161
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
4042
4162
  <xsl:if test="normalize-space() != ''">
4043
4163
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
4044
4164
  </xsl:if>
4165
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][*[local-name() = 'name']]/*[local-name() = 'stem']">
4166
+ <fo:block xsl:use-attribute-sets="formula-style">
4167
+
4168
+
4169
+
4170
+ <fo:table table-layout="fixed" width="100%">
4171
+ <fo:table-column column-width="95%"/>
4172
+ <fo:table-column column-width="5%"/>
4173
+ <fo:table-body>
4174
+ <fo:table-row>
4175
+ <fo:table-cell display-align="center">
4176
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
4177
+
4178
+
4179
+
4180
+ <xsl:apply-templates/>
4181
+ </fo:block>
4182
+ </fo:table-cell>
4183
+ <fo:table-cell display-align="center">
4184
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style">
4185
+ <xsl:apply-templates select="../*[local-name() = 'name']"/>
4186
+ </fo:block>
4187
+ </fo:table-cell>
4188
+ </fo:table-row>
4189
+ </fo:table-body>
4190
+ </fo:table>
4191
+ </fo:block>
4192
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][not(*[local-name() = 'name'])]/*[local-name() = 'stem']">
4193
+ <fo:block xsl:use-attribute-sets="formula-style">
4194
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
4195
+ <xsl:apply-templates/>
4196
+ </fo:block>
4197
+ </fo:block>
4045
4198
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
4046
4199
 
4047
4200
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
@@ -5023,12 +5176,140 @@
5023
5176
  </fo:block-container>
5024
5177
  </fo:block-container>
5025
5178
  </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
5026
- <xsl:variable name="text">
5179
+ <xsl:choose>
5180
+ <xsl:when test="normalize-space($syntax-highlight) = 'true' and normalize-space(../@lang) != ''"> <!-- condition for turn on of highlighting -->
5181
+ <xsl:variable name="syntax" select="java:org.metanorma.fop.Util.syntaxHighlight(., ../@lang)"/>
5182
+ <xsl:choose>
5183
+ <xsl:when test="normalize-space($syntax) != ''"><!-- if there is highlighted result -->
5184
+ <xsl:apply-templates select="xalan:nodeset($syntax)" mode="syntax_highlight"/> <!-- process span tags -->
5185
+ </xsl:when>
5186
+ <xsl:otherwise> <!-- if case of non-succesfull syntax highlight (for instance, unknown lang), process without highlighting -->
5187
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
5188
+ </xsl:otherwise>
5189
+ </xsl:choose>
5190
+ </xsl:when>
5191
+ <xsl:otherwise>
5192
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
5193
+ </xsl:otherwise>
5194
+ </xsl:choose>
5195
+
5196
+ </xsl:template><xsl:template name="add_spaces_to_sourcecode">
5197
+ <xsl:variable name="text_step1">
5027
5198
  <xsl:call-template name="add-zero-spaces-equal"/>
5028
5199
  </xsl:variable>
5029
- <xsl:call-template name="add-zero-spaces-java">
5030
- <xsl:with-param name="text" select="$text"/>
5031
- </xsl:call-template>
5200
+ <xsl:variable name="text_step2">
5201
+ <xsl:call-template name="add-zero-spaces-java">
5202
+ <xsl:with-param name="text" select="$text_step1"/>
5203
+ </xsl:call-template>
5204
+ </xsl:variable>
5205
+ <xsl:value-of select="$text_step2"/>
5206
+ </xsl:template><xsl:template match="*" mode="syntax_highlight">
5207
+ <xsl:apply-templates mode="syntax_highlight"/>
5208
+ </xsl:template><xsl:variable name="syntax_highlight_styles_">
5209
+ <style class="hljs-addition" xsl:use-attribute-sets="hljs-addition"/>
5210
+ <style class="hljs-attr" xsl:use-attribute-sets="hljs-attr"/>
5211
+ <style class="hljs-attribute" xsl:use-attribute-sets="hljs-attribute"/>
5212
+ <style class="hljs-built_in" xsl:use-attribute-sets="hljs-built_in"/>
5213
+ <style class="hljs-bullet" xsl:use-attribute-sets="hljs-bullet"/>
5214
+ <style class="hljs-char_and_escape_" xsl:use-attribute-sets="hljs-char_and_escape_"/>
5215
+ <style class="hljs-code" xsl:use-attribute-sets="hljs-code"/>
5216
+ <style class="hljs-comment" xsl:use-attribute-sets="hljs-comment"/>
5217
+ <style class="hljs-deletion" xsl:use-attribute-sets="hljs-deletion"/>
5218
+ <style class="hljs-doctag" xsl:use-attribute-sets="hljs-doctag"/>
5219
+ <style class="hljs-emphasis" xsl:use-attribute-sets="hljs-emphasis"/>
5220
+ <style class="hljs-formula" xsl:use-attribute-sets="hljs-formula"/>
5221
+ <style class="hljs-keyword" xsl:use-attribute-sets="hljs-keyword"/>
5222
+ <style class="hljs-link" xsl:use-attribute-sets="hljs-link"/>
5223
+ <style class="hljs-literal" xsl:use-attribute-sets="hljs-literal"/>
5224
+ <style class="hljs-meta" xsl:use-attribute-sets="hljs-meta"/>
5225
+ <style class="hljs-meta_hljs-string" xsl:use-attribute-sets="hljs-meta_hljs-string"/>
5226
+ <style class="hljs-meta_hljs-keyword" xsl:use-attribute-sets="hljs-meta_hljs-keyword"/>
5227
+ <style class="hljs-name" xsl:use-attribute-sets="hljs-name"/>
5228
+ <style class="hljs-number" xsl:use-attribute-sets="hljs-number"/>
5229
+ <style class="hljs-operator" xsl:use-attribute-sets="hljs-operator"/>
5230
+ <style class="hljs-params" xsl:use-attribute-sets="hljs-params"/>
5231
+ <style class="hljs-property" xsl:use-attribute-sets="hljs-property"/>
5232
+ <style class="hljs-punctuation" xsl:use-attribute-sets="hljs-punctuation"/>
5233
+ <style class="hljs-quote" xsl:use-attribute-sets="hljs-quote"/>
5234
+ <style class="hljs-regexp" xsl:use-attribute-sets="hljs-regexp"/>
5235
+ <style class="hljs-section" xsl:use-attribute-sets="hljs-section"/>
5236
+ <style class="hljs-selector-attr" xsl:use-attribute-sets="hljs-selector-attr"/>
5237
+ <style class="hljs-selector-class" xsl:use-attribute-sets="hljs-selector-class"/>
5238
+ <style class="hljs-selector-id" xsl:use-attribute-sets="hljs-selector-id"/>
5239
+ <style class="hljs-selector-pseudo" xsl:use-attribute-sets="hljs-selector-pseudo"/>
5240
+ <style class="hljs-selector-tag" xsl:use-attribute-sets="hljs-selector-tag"/>
5241
+ <style class="hljs-string" xsl:use-attribute-sets="hljs-string"/>
5242
+ <style class="hljs-strong" xsl:use-attribute-sets="hljs-strong"/>
5243
+ <style class="hljs-subst" xsl:use-attribute-sets="hljs-subst"/>
5244
+ <style class="hljs-symbol" xsl:use-attribute-sets="hljs-symbol"/>
5245
+ <style class="hljs-tag" xsl:use-attribute-sets="hljs-tag"/>
5246
+ <!-- <style class="hljs-tag_hljs-attr" xsl:use-attribute-sets="hljs-tag_hljs-attr"></style> -->
5247
+ <!-- <style class="hljs-tag_hljs-name" xsl:use-attribute-sets="hljs-tag_hljs-name"></style> -->
5248
+ <style class="hljs-template-tag" xsl:use-attribute-sets="hljs-template-tag"/>
5249
+ <style class="hljs-template-variable" xsl:use-attribute-sets="hljs-template-variable"/>
5250
+ <style class="hljs-title" xsl:use-attribute-sets="hljs-title"/>
5251
+ <style class="hljs-title_and_class_" xsl:use-attribute-sets="hljs-title_and_class_"/>
5252
+ <style class="hljs-title_and_class__and_inherited__" xsl:use-attribute-sets="hljs-title_and_class__and_inherited__"/>
5253
+ <style class="hljs-title_and_function_" xsl:use-attribute-sets="hljs-title_and_function_"/>
5254
+ <style class="hljs-type" xsl:use-attribute-sets="hljs-type"/>
5255
+ <style class="hljs-variable" xsl:use-attribute-sets="hljs-variable"/>
5256
+ <style class="hljs-variable_and_language_" xsl:use-attribute-sets="hljs-variable_and_language_"/>
5257
+ </xsl:variable><xsl:variable name="syntax_highlight_styles" select="xalan:nodeset($syntax_highlight_styles_)"/><xsl:template match="span" mode="syntax_highlight" priority="2">
5258
+ <!-- <fo:inline color="green" font-style="italic"><xsl:apply-templates mode="syntax_highlight"/></fo:inline> -->
5259
+ <fo:inline>
5260
+ <xsl:variable name="classes_">
5261
+ <xsl:call-template name="split">
5262
+ <xsl:with-param name="pText" select="@class"/>
5263
+ <xsl:with-param name="sep" select="' '"/>
5264
+ </xsl:call-template>
5265
+ <!-- a few classes together (_and_ suffix) -->
5266
+ <xsl:if test="contains(@class, 'hljs-char') and contains(@class, 'escape_')">
5267
+ <item>hljs-char_and_escape_</item>
5268
+ </xsl:if>
5269
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_')">
5270
+ <item>hljs-title_and_class_</item>
5271
+ </xsl:if>
5272
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_') and contains(@class, 'inherited__')">
5273
+ <item>hljs-title_and_class__and_inherited__</item>
5274
+ </xsl:if>
5275
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'function_')">
5276
+ <item>hljs-title_and_function_</item>
5277
+ </xsl:if>
5278
+ <xsl:if test="contains(@class, 'hljs-variable') and contains(@class, 'language_')">
5279
+ <item>hljs-variable_and_language_</item>
5280
+ </xsl:if>
5281
+ <!-- with parent classes (_ suffix) -->
5282
+ <xsl:if test="contains(@class, 'hljs-keyword') and contains(ancestor::*/@class, 'hljs-meta')">
5283
+ <item>hljs-meta_hljs-keyword</item>
5284
+ </xsl:if>
5285
+ <xsl:if test="contains(@class, 'hljs-string') and contains(ancestor::*/@class, 'hljs-meta')">
5286
+ <item>hljs-meta_hljs-string</item>
5287
+ </xsl:if>
5288
+ </xsl:variable>
5289
+ <xsl:variable name="classes" select="xalan:nodeset($classes_)"/>
5290
+
5291
+ <xsl:for-each select="$classes/item">
5292
+ <xsl:variable name="class_name" select="."/>
5293
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
5294
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
5295
+ </xsl:for-each>
5296
+ </xsl:for-each>
5297
+
5298
+ <!-- <xsl:variable name="class_name">
5299
+ <xsl:choose>
5300
+ <xsl:when test="@class = 'hljs-attr' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-attr</xsl:when>
5301
+ <xsl:when test="@class = 'hljs-name' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-name</xsl:when>
5302
+ <xsl:when test="@class = 'hljs-string' and ancestor::*/@class = 'hljs-meta'">hljs-meta_hljs-string</xsl:when>
5303
+ <xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
5304
+ </xsl:choose>
5305
+ </xsl:variable>
5306
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
5307
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
5308
+ </xsl:for-each> -->
5309
+
5310
+ <xsl:apply-templates mode="syntax_highlight"/></fo:inline>
5311
+ </xsl:template><xsl:template match="text()" mode="syntax_highlight" priority="2">
5312
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
5032
5313
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
5033
5314
  <xsl:if test="normalize-space() != ''">
5034
5315
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
@@ -5409,11 +5690,14 @@
5409
5690
 
5410
5691
 
5411
5692
  <fo:block-container margin-left="0mm">
5412
-
5413
- <fo:block xsl:use-attribute-sets="quote-style">
5693
+ <fo:block-container xsl:use-attribute-sets="quote-style">
5414
5694
 
5415
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5416
- </fo:block>
5695
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5696
+ <fo:block role="BlockQuote">
5697
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5698
+ </fo:block>
5699
+ </fo:block-container>
5700
+ </fo:block-container>
5417
5701
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
5418
5702
  <fo:block xsl:use-attribute-sets="quote-source-style">
5419
5703
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
@@ -5565,6 +5849,36 @@
5565
5849
  <xsl:with-param name="count" select="$count - 1"/>
5566
5850
  </xsl:call-template>
5567
5851
  </xsl:if>
5852
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']">
5853
+ <xsl:variable name="level">
5854
+ <xsl:call-template name="getLevel"/>
5855
+ </xsl:variable>
5856
+ <xsl:variable name="font-size">
5857
+
5858
+ <xsl:choose>
5859
+ <xsl:when test="$level &gt;= 2">11pt</xsl:when>
5860
+ <xsl:otherwise>12pt</xsl:otherwise>
5861
+ </xsl:choose>
5862
+
5863
+ </xsl:variable>
5864
+ <xsl:variable name="levelTerm">
5865
+ <xsl:call-template name="getLevelTermName"/>
5866
+ </xsl:variable>
5867
+ <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
5868
+
5869
+
5870
+
5871
+ <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
5872
+ <fo:block xsl:use-attribute-sets="term-name-style">
5873
+ <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
5874
+ </fo:block>
5875
+ </xsl:if>
5876
+
5877
+ <fo:block xsl:use-attribute-sets="preferred-term-style">
5878
+ <xsl:call-template name="setStyle_preferred"/>
5879
+ <xsl:apply-templates/>
5880
+ </fo:block>
5881
+ </fo:block>
5568
5882
  </xsl:template><xsl:template match="*[local-name() = 'domain']">
5569
5883
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
5570
5884
  <xsl:text> </xsl:text>
@@ -5653,24 +5967,8 @@
5653
5967
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5654
5968
  </xsl:template><xsl:variable name="ul_labels_">
5655
5969
 
5656
-
5657
-
5658
-
5659
-
5660
-
5661
-
5662
-
5663
-
5664
-
5665
-
5666
-
5667
-
5668
-
5669
- <label>—</label> <!-- em dash -->
5670
-
5671
-
5672
-
5673
-
5970
+ <label>—</label> <!-- em dash -->
5971
+
5674
5972
  </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
5675
5973
  <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5676
5974
  <xsl:variable name="list_level">
@@ -5696,6 +5994,91 @@
5696
5994
  </xsl:template><xsl:template match="label" mode="ul_labels">
5697
5995
  <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
5698
5996
  <xsl:value-of select="."/>
5997
+ </xsl:template><xsl:template name="getListItemFormat">
5998
+ <!-- Example: for BSI <?list-type loweralpha?> -->
5999
+ <xsl:variable name="processing_instruction_type" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-type'))"/>
6000
+ <xsl:choose>
6001
+ <xsl:when test="local-name(..) = 'ul'">
6002
+ <xsl:choose>
6003
+ <xsl:when test="normalize-space($processing_instruction_type) = 'simple'"/>
6004
+ <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
6005
+ </xsl:choose>
6006
+ </xsl:when>
6007
+ <xsl:otherwise> <!-- for ordered lists 'ol' -->
6008
+
6009
+ <!-- Example: for BSI <?list-start 2?> -->
6010
+ <xsl:variable name="processing_instruction_start" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-start'))"/>
6011
+
6012
+ <xsl:variable name="start_value">
6013
+ <xsl:choose>
6014
+ <xsl:when test="normalize-space($processing_instruction_start) != ''">
6015
+ <xsl:value-of select="number($processing_instruction_start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
6016
+ </xsl:when>
6017
+ <xsl:when test="normalize-space(../@start) != ''">
6018
+ <xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
6019
+ </xsl:when>
6020
+ <xsl:otherwise>0</xsl:otherwise>
6021
+ </xsl:choose>
6022
+ </xsl:variable>
6023
+
6024
+ <xsl:variable name="curr_value"><xsl:number/></xsl:variable>
6025
+
6026
+ <xsl:variable name="type">
6027
+ <xsl:choose>
6028
+ <xsl:when test="normalize-space($processing_instruction_type) != ''"><xsl:value-of select="$processing_instruction_type"/></xsl:when>
6029
+ <xsl:when test="normalize-space(../@type) != ''"><xsl:value-of select="../@type"/></xsl:when>
6030
+
6031
+ <xsl:otherwise> <!-- if no @type or @class = 'steps' -->
6032
+
6033
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
6034
+ <xsl:variable name="list_level">
6035
+ <xsl:choose>
6036
+ <xsl:when test="$list_level_ &lt;= 5"><xsl:value-of select="$list_level_"/></xsl:when>
6037
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 5"/></xsl:otherwise>
6038
+ </xsl:choose>
6039
+ </xsl:variable>
6040
+
6041
+ <xsl:choose>
6042
+ <xsl:when test="$list_level mod 5 = 0">roman_upper</xsl:when> <!-- level 5 -->
6043
+ <xsl:when test="$list_level mod 4 = 0">alphabet_upper</xsl:when> <!-- level 4 -->
6044
+ <xsl:when test="$list_level mod 3 = 0">roman</xsl:when> <!-- level 3 -->
6045
+ <xsl:when test="$list_level mod 2 = 0 and ancestor::*/@class = 'steps'">alphabet</xsl:when> <!-- level 2 and @class = 'steps'-->
6046
+ <xsl:when test="$list_level mod 2 = 0">arabic</xsl:when> <!-- level 2 -->
6047
+ <xsl:otherwise> <!-- level 1 -->
6048
+ <xsl:choose>
6049
+ <xsl:when test="ancestor::*/@class = 'steps'">arabic</xsl:when>
6050
+ <xsl:otherwise>alphabet</xsl:otherwise>
6051
+ </xsl:choose>
6052
+ </xsl:otherwise>
6053
+ </xsl:choose>
6054
+
6055
+ </xsl:otherwise>
6056
+ </xsl:choose>
6057
+ </xsl:variable>
6058
+
6059
+ <xsl:variable name="format">
6060
+ <xsl:choose>
6061
+ <xsl:when test="$type = 'arabic'">
6062
+ 1)
6063
+ </xsl:when>
6064
+ <xsl:when test="$type = 'alphabet'">
6065
+ a)
6066
+ </xsl:when>
6067
+ <xsl:when test="$type = 'alphabet_upper'">
6068
+ A)
6069
+ </xsl:when>
6070
+ <xsl:when test="$type = 'roman'">
6071
+ i)
6072
+ </xsl:when>
6073
+ <xsl:when test="$type = 'roman_upper'">I.</xsl:when>
6074
+ <xsl:otherwise>1.</xsl:otherwise> <!-- for any case, if $type has non-determined value, not using -->
6075
+ </xsl:choose>
6076
+ </xsl:variable>
6077
+
6078
+ <xsl:number value="$start_value + $curr_value" format="{normalize-space($format)}" lang="en"/>
6079
+
6080
+ </xsl:otherwise>
6081
+ </xsl:choose>
5699
6082
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
5700
6083
  <xsl:choose>
5701
6084
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -5711,18 +6094,66 @@
5711
6094
 
5712
6095
  <fo:block-container margin-left="0mm">
5713
6096
  <fo:block>
5714
- <xsl:apply-templates select="." mode="ul_ol"/>
6097
+ <xsl:apply-templates select="." mode="list"/>
5715
6098
  </fo:block>
5716
6099
  </fo:block-container>
5717
6100
  </fo:block-container>
5718
6101
  </xsl:when>
5719
6102
  <xsl:otherwise>
5720
6103
  <fo:block>
5721
- <xsl:apply-templates select="." mode="ul_ol"/>
6104
+ <xsl:apply-templates select="." mode="list"/>
5722
6105
  </fo:block>
5723
6106
  </xsl:otherwise>
5724
6107
  </xsl:choose>
5725
- </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
6108
+ </xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
6109
+ <fo:list-block xsl:use-attribute-sets="list-style">
6110
+
6111
+
6112
+
6113
+
6114
+
6115
+
6116
+
6117
+
6118
+
6119
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
6120
+ </fo:list-block>
6121
+ <!-- <xsl:for-each select="./iho:note">
6122
+ <xsl:call-template name="note"/>
6123
+ </xsl:for-each> -->
6124
+ <xsl:apply-templates select="./*[local-name() = 'note']"/>
6125
+ </xsl:template><xsl:template match="*[local-name()='li']">
6126
+ <fo:list-item xsl:use-attribute-sets="list-item-style">
6127
+ <xsl:copy-of select="@id"/>
6128
+
6129
+
6130
+
6131
+ <fo:list-item-label end-indent="label-end()">
6132
+ <fo:block xsl:use-attribute-sets="list-item-label-style">
6133
+
6134
+
6135
+
6136
+ <xsl:call-template name="getListItemFormat"/>
6137
+ </fo:block>
6138
+ </fo:list-item-label>
6139
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
6140
+ <fo:block>
6141
+
6142
+
6143
+
6144
+
6145
+
6146
+ <xsl:apply-templates/>
6147
+
6148
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
6149
+
6150
+ <xsl:for-each select="./bsi:note">
6151
+ <xsl:call-template name="note"/>
6152
+ </xsl:for-each> -->
6153
+ </fo:block>
6154
+ </fo:list-item-body>
6155
+ </fo:list-item>
6156
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="bookmark_in_fn">
5726
6157
  <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
5727
6158
  <bookmark><xsl:value-of select="@id"/></bookmark>
5728
6159
  </xsl:for-each>
@@ -5744,7 +6175,7 @@
5744
6175
  <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
5745
6176
  <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
5746
6177
  <xsl:if test="@to">
5747
- <xsl:value-of select="$dash"/>
6178
+ <xsl:value-of select="$en_dash"/>
5748
6179
  <xsl:copy>
5749
6180
  <xsl:copy-of select="@*"/>
5750
6181
  <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
@@ -5769,7 +6200,7 @@
5769
6200
  <xsl:param name="target"/>
5770
6201
  <!-- <node></node> -->
5771
6202
  <xsl:choose>
5772
- <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
6203
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $en_dash) and $remove = 'true'">
5773
6204
  <!-- skip text (i.e. remove it) and process next element -->
5774
6205
  <!-- [removed_<xsl:value-of select="."/>] -->
5775
6206
  <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
@@ -5853,12 +6284,22 @@
5853
6284
  </xsl:variable>
5854
6285
  <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
5855
6286
  <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
6287
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
6288
+ <fo:block xsl:use-attribute-sets="indexsect-title-style">
6289
+ <!-- Index -->
6290
+ <xsl:apply-templates/>
6291
+ </fo:block>
6292
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']/*[local-name() = 'title']" priority="4">
6293
+ <!-- Letter A, B, C, ... -->
6294
+ <fo:block xsl:use-attribute-sets="indexsect-clause-title-style">
6295
+ <xsl:apply-templates/>
6296
+ </fo:block>
5856
6297
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
5857
6298
  <xsl:apply-templates/>
5858
6299
  <fo:block>
5859
- <xsl:if test="following-sibling::*[local-name() = 'clause']">
5860
- <fo:block> </fo:block>
5861
- </xsl:if>
6300
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
6301
+ <fo:block> </fo:block>
6302
+ </xsl:if>
5862
6303
  </fo:block>
5863
6304
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
5864
6305
  <xsl:apply-templates/>
@@ -5868,6 +6309,9 @@
5868
6309
 
5869
6310
  <xsl:apply-templates/>
5870
6311
  </fo:block>
6312
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
6313
+ <!-- to split by '_' and other chars -->
6314
+ <xsl:call-template name="add-zero-spaces-java"/>
5871
6315
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
5872
6316
  <fo:inline id="{@id}" font-size="1pt"/>
5873
6317
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
@@ -6323,7 +6767,7 @@
6323
6767
  </fo:table-body>
6324
6768
  </fo:table>
6325
6769
  </fo:block>
6326
- </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
6770
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']" priority="2">
6327
6771
  <fo:table-row min-height="5mm">
6328
6772
  <xsl:apply-templates/>
6329
6773
  </fo:table-row>
@@ -6556,9 +7000,6 @@
6556
7000
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
6557
7001
  </xsl:choose>
6558
7002
  </xsl:template><xsl:template name="addPDFUAmeta">
6559
- <xsl:variable name="lang">
6560
- <xsl:call-template name="getLang"/>
6561
- </xsl:variable>
6562
7003
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
6563
7004
  <pdf:dictionary type="normal" key="ViewerPreferences">
6564
7005
  <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
@@ -6786,10 +7227,12 @@
6786
7227
  <xsl:param name="key"/>
6787
7228
  <xsl:param name="formatted">false</xsl:param>
6788
7229
  <xsl:param name="lang"/>
7230
+ <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
6789
7231
 
6790
7232
  <xsl:variable name="curr_lang">
6791
7233
  <xsl:choose>
6792
7234
  <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
7235
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6793
7236
  <xsl:otherwise>
6794
7237
  <xsl:call-template name="getLang"/>
6795
7238
  </xsl:otherwise>
@@ -6824,6 +7267,7 @@
6824
7267
  </xsl:otherwise>
6825
7268
  </xsl:choose>
6826
7269
  </xsl:when>
7270
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6827
7271
  <xsl:otherwise>
6828
7272
  <xsl:variable name="key_">
6829
7273
  <xsl:call-template name="capitalize">