metanorma-iho 0.6.2 → 0.6.5

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.
@@ -928,7 +928,7 @@
928
928
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
929
929
  </xsl:otherwise>
930
930
  </xsl:choose>
931
- </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">
931
+ </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="font_noto_sans">Noto Sans, Noto Sans HK, Noto Sans JP, Noto Sans KR, Noto Sans SC, Noto Sans TC</xsl:variable><xsl:variable name="font_noto_sans_mono">Noto Sans Mono, Noto Sans Mono CJK HK, Noto Sans Mono CJK JP, Noto Sans Mono CJK KR, Noto Sans Mono CJK SC, Noto Sans Mono CJK TC</xsl:variable><xsl:variable name="font_noto_serif">Noto Serif, Noto Serif HK, Noto Serif JP, Noto Serif KR, Noto Serif SC, Noto Serif TC</xsl:variable><xsl:attribute-set name="root-style">
932
932
 
933
933
 
934
934
 
@@ -936,7 +936,9 @@
936
936
 
937
937
 
938
938
 
939
- <xsl:attribute name="font-family">Arial, Cambria Math</xsl:attribute>
939
+
940
+ <xsl:attribute name="font-family">Arial, Cambria Math, <xsl:value-of select="$font_noto_sans"/></xsl:attribute>
941
+ <xsl:attribute name="font-family-generic">Sans</xsl:attribute>
940
942
  <xsl:attribute name="font-size">12pt</xsl:attribute>
941
943
 
942
944
 
@@ -959,17 +961,60 @@
959
961
  </xsl:variable>
960
962
  <xsl:variable name="additional_fonts" select="normalize-space($additional_fonts_)"/>
961
963
 
964
+ <xsl:variable name="font_family_generic" select="$root-style_/root-style/@font-family-generic"/>
965
+
962
966
  <xsl:for-each select="$root-style_/root-style/@*">
967
+
963
968
  <xsl:choose>
964
- <xsl:when test="local-name() = 'font-family' and $additional_fonts != ''">
969
+ <xsl:when test="local-name() = 'font-family-generic'"><!-- skip, it's using for determine 'sans' or 'serif' --></xsl:when>
970
+ <xsl:when test="local-name() = 'font-family'">
971
+
972
+ <xsl:variable name="font_regional_prefix">
973
+ <xsl:choose>
974
+ <xsl:when test="$font_family_generic = 'Sans'">Noto Sans</xsl:when>
975
+ <xsl:otherwise>Noto Serif</xsl:otherwise>
976
+ </xsl:choose>
977
+ </xsl:variable>
978
+
965
979
  <xsl:attribute name="{local-name()}">
966
- <xsl:value-of select="."/>, <xsl:value-of select="$additional_fonts"/>
980
+
981
+ <xsl:variable name="font_extended">
982
+ <xsl:choose>
983
+ <xsl:when test="$lang = 'zh'"><xsl:value-of select="$font_regional_prefix"/> SC</xsl:when>
984
+ <xsl:when test="$lang = 'hk'"><xsl:value-of select="$font_regional_prefix"/> HK</xsl:when>
985
+ <xsl:when test="$lang = 'jp'"><xsl:value-of select="$font_regional_prefix"/> JP</xsl:when>
986
+ <xsl:when test="$lang = 'kr'"><xsl:value-of select="$font_regional_prefix"/> KR</xsl:when>
987
+ <xsl:when test="$lang = 'sc'"><xsl:value-of select="$font_regional_prefix"/> SC</xsl:when>
988
+ <xsl:when test="$lang = 'tc'"><xsl:value-of select="$font_regional_prefix"/> TC</xsl:when>
989
+ </xsl:choose>
990
+ </xsl:variable>
991
+ <xsl:if test="normalize-space($font_extended) != ''">
992
+ <xsl:value-of select="$font_regional_prefix"/><xsl:text>, </xsl:text>
993
+ <xsl:value-of select="$font_extended"/><xsl:text>, </xsl:text>
994
+ </xsl:if>
995
+
996
+ <xsl:value-of select="."/>
997
+
998
+ <xsl:if test="$additional_fonts != ''">
999
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1000
+ </xsl:if>
967
1001
  </xsl:attribute>
968
1002
  </xsl:when>
969
1003
  <xsl:otherwise>
970
1004
  <xsl:copy-of select="."/>
971
1005
  </xsl:otherwise>
972
1006
  </xsl:choose>
1007
+
1008
+ <!-- <xsl:choose>
1009
+ <xsl:when test="local-name() = 'font-family'">
1010
+ <xsl:attribute name="{local-name()}">
1011
+ <xsl:value-of select="."/>, <xsl:value-of select="$additional_fonts"/>
1012
+ </xsl:attribute>
1013
+ </xsl:when>
1014
+ <xsl:otherwise>
1015
+ <xsl:copy-of select="."/>
1016
+ </xsl:otherwise>
1017
+ </xsl:choose> -->
973
1018
  </xsl:for-each>
974
1019
  </xsl:template><xsl:attribute-set name="copyright-statement-style">
975
1020
 
@@ -1040,7 +1085,8 @@
1040
1085
 
1041
1086
 
1042
1087
 
1043
- <xsl:attribute name="font-family">Fira Code</xsl:attribute>
1088
+
1089
+ <xsl:attribute name="font-family">Fira Code, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
1044
1090
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1045
1091
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1046
1092
  <xsl:attribute name="line-height">113%</xsl:attribute>
@@ -1062,7 +1108,10 @@
1062
1108
 
1063
1109
  </xsl:attribute-set><xsl:attribute-set name="requirement-style">
1064
1110
 
1111
+
1065
1112
  </xsl:attribute-set><xsl:attribute-set name="requirement-name-style">
1113
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1114
+
1066
1115
 
1067
1116
  </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
1068
1117
 
@@ -1086,6 +1135,7 @@
1086
1135
 
1087
1136
 
1088
1137
 
1138
+
1089
1139
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1090
1140
  <xsl:attribute name="margin-top">8pt</xsl:attribute>
1091
1141
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
@@ -1100,6 +1150,7 @@
1100
1150
 
1101
1151
 
1102
1152
 
1153
+
1103
1154
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1104
1155
  <xsl:attribute name="margin-top">8pt</xsl:attribute>
1105
1156
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
@@ -1125,6 +1176,7 @@
1125
1176
 
1126
1177
 
1127
1178
 
1179
+
1128
1180
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1129
1181
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1130
1182
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -1166,10 +1218,12 @@
1166
1218
 
1167
1219
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
1168
1220
 
1221
+
1169
1222
 
1170
1223
 
1171
1224
  </xsl:attribute-set><xsl:variable name="table-border_">
1172
1225
 
1226
+
1173
1227
  </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
1174
1228
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
1175
1229
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
@@ -1181,6 +1235,7 @@
1181
1235
 
1182
1236
 
1183
1237
 
1238
+
1184
1239
  <xsl:attribute name="space-after">18pt</xsl:attribute>
1185
1240
 
1186
1241
 
@@ -1209,6 +1264,7 @@
1209
1264
 
1210
1265
 
1211
1266
 
1267
+
1212
1268
 
1213
1269
 
1214
1270
 
@@ -1229,6 +1285,7 @@
1229
1285
 
1230
1286
 
1231
1287
 
1288
+
1232
1289
 
1233
1290
  <xsl:attribute name="text-align">center</xsl:attribute>
1234
1291
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -1297,6 +1354,7 @@
1297
1354
 
1298
1355
 
1299
1356
 
1357
+
1300
1358
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
1301
1359
 
1302
1360
 
@@ -1318,7 +1376,7 @@
1318
1376
 
1319
1377
 
1320
1378
 
1321
-
1379
+
1322
1380
 
1323
1381
 
1324
1382
 
@@ -1331,6 +1389,7 @@
1331
1389
 
1332
1390
 
1333
1391
 
1392
+
1334
1393
  <xsl:attribute name="font-size">12pt</xsl:attribute>
1335
1394
 
1336
1395
 
@@ -1343,6 +1402,8 @@
1343
1402
 
1344
1403
 
1345
1404
 
1405
+
1406
+
1346
1407
  </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
1347
1408
  <xsl:attribute name="font-size">80%</xsl:attribute>
1348
1409
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
@@ -1353,6 +1414,7 @@
1353
1414
 
1354
1415
 
1355
1416
 
1417
+
1356
1418
  <xsl:attribute name="vertical-align">super</xsl:attribute>
1357
1419
 
1358
1420
 
@@ -1387,6 +1449,7 @@
1387
1449
 
1388
1450
 
1389
1451
 
1452
+
1390
1453
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
1391
1454
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1392
1455
 
@@ -1403,6 +1466,7 @@
1403
1466
 
1404
1467
 
1405
1468
 
1469
+
1406
1470
  <xsl:attribute name="font-weight">normal</xsl:attribute>
1407
1471
 
1408
1472
 
@@ -1446,6 +1510,7 @@
1446
1510
 
1447
1511
 
1448
1512
 
1513
+
1449
1514
 
1450
1515
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1451
1516
  <xsl:attribute name="margin-top">8pt</xsl:attribute>
@@ -1491,7 +1556,8 @@
1491
1556
 
1492
1557
 
1493
1558
 
1494
-
1559
+
1560
+
1495
1561
 
1496
1562
  <xsl:attribute name="margin-top">8pt</xsl:attribute>
1497
1563
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
@@ -1507,6 +1573,7 @@
1507
1573
  </xsl:attribute-set><xsl:attribute-set name="termnote-style">
1508
1574
 
1509
1575
 
1576
+
1510
1577
 
1511
1578
 
1512
1579
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -1522,6 +1589,8 @@
1522
1589
 
1523
1590
 
1524
1591
 
1592
+ </xsl:attribute-set><xsl:attribute-set name="termnote-p-style">
1593
+
1525
1594
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1526
1595
  <xsl:attribute name="margin-left">12mm</xsl:attribute>
1527
1596
  <xsl:attribute name="margin-right">12mm</xsl:attribute>
@@ -1572,6 +1641,7 @@
1572
1641
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1573
1642
 
1574
1643
 
1644
+
1575
1645
 
1576
1646
 
1577
1647
 
@@ -1619,6 +1689,7 @@
1619
1689
 
1620
1690
 
1621
1691
 
1692
+
1622
1693
  </xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
1623
1694
  <xsl:attribute name="text-align">right</xsl:attribute>
1624
1695
 
@@ -1637,20 +1708,20 @@
1637
1708
  </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
1638
1709
 
1639
1710
  </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
1711
+ <xsl:attribute name="width">100%</xsl:attribute>
1712
+ <xsl:attribute name="content-height">100%</xsl:attribute>
1713
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
1640
1714
 
1641
1715
 
1642
- <xsl:attribute name="width">100%</xsl:attribute>
1643
1716
  <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
1644
- <xsl:attribute name="scaling">uniform</xsl:attribute>
1645
1717
 
1646
1718
 
1647
1719
 
1648
-
1649
-
1720
+
1650
1721
  </xsl:attribute-set><xsl:attribute-set name="tt-style">
1651
1722
 
1652
1723
 
1653
- <xsl:attribute name="font-family">Courier New</xsl:attribute>
1724
+ <xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
1654
1725
 
1655
1726
 
1656
1727
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
@@ -1720,6 +1791,7 @@
1720
1791
 
1721
1792
 
1722
1793
 
1794
+
1723
1795
  <xsl:attribute name="provisional-distance-between-starts">6mm</xsl:attribute>
1724
1796
 
1725
1797
 
@@ -1790,6 +1862,7 @@
1790
1862
 
1791
1863
 
1792
1864
 
1865
+
1793
1866
  <xsl:attribute name="font-size">70%</xsl:attribute>
1794
1867
  <xsl:attribute name="vertical-align">super</xsl:attribute>
1795
1868
 
@@ -1814,6 +1887,7 @@
1814
1887
 
1815
1888
 
1816
1889
 
1890
+
1817
1891
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1818
1892
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1819
1893
 
@@ -1837,6 +1911,7 @@
1837
1911
 
1838
1912
 
1839
1913
 
1914
+
1840
1915
  <xsl:attribute name="font-size">60%</xsl:attribute>
1841
1916
  <xsl:attribute name="vertical-align">super</xsl:attribute>
1842
1917
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
@@ -1858,6 +1933,7 @@
1858
1933
 
1859
1934
 
1860
1935
 
1936
+
1861
1937
  <xsl:attribute name="border">0.5pt solid rgb(79, 129, 189)</xsl:attribute>
1862
1938
  <xsl:attribute name="color">rgb(79, 129, 189)</xsl:attribute>
1863
1939
  <xsl:attribute name="margin-left">16mm</xsl:attribute>
@@ -1873,12 +1949,13 @@
1873
1949
 
1874
1950
 
1875
1951
  </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
1952
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1953
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1954
+
1876
1955
 
1877
1956
 
1878
1957
 
1879
1958
 
1880
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
1881
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
1882
1959
  <xsl:attribute name="padding">2mm</xsl:attribute>
1883
1960
  <xsl:attribute name="padding-top">3mm</xsl:attribute>
1884
1961
 
@@ -1914,6 +1991,7 @@
1914
1991
 
1915
1992
 
1916
1993
 
1994
+
1917
1995
  <xsl:attribute name="font-style">italic</xsl:attribute>
1918
1996
 
1919
1997
 
@@ -1949,6 +2027,10 @@
1949
2027
 
1950
2028
 
1951
2029
 
2030
+ <!-- <xsl:if test="$namespace = 'ieee'">
2031
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2032
+ <xsl:attribute name="provisional-distance-between-starts">9.5mm</xsl:attribute>
2033
+ </xsl:if> -->
1952
2034
 
1953
2035
  <xsl:attribute name="line-height">115%</xsl:attribute>
1954
2036
 
@@ -1971,6 +2053,7 @@
1971
2053
 
1972
2054
 
1973
2055
 
2056
+
1974
2057
  <xsl:attribute name="line-height">115%</xsl:attribute>
1975
2058
 
1976
2059
 
@@ -1982,10 +2065,12 @@
1982
2065
  </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
1983
2066
 
1984
2067
 
2068
+
1985
2069
  </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
1986
2070
 
1987
2071
 
1988
2072
 
2073
+
1989
2074
  </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
1990
2075
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1991
2076
  <xsl:attribute name="font-size">65%</xsl:attribute>
@@ -1996,6 +2081,7 @@
1996
2081
 
1997
2082
 
1998
2083
 
2084
+
1999
2085
  <xsl:attribute name="font-size">8pt</xsl:attribute>
2000
2086
  <xsl:attribute name="baseline-shift">30%</xsl:attribute>
2001
2087
 
@@ -2017,6 +2103,7 @@
2017
2103
 
2018
2104
 
2019
2105
 
2106
+
2020
2107
  <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
2021
2108
  <xsl:attribute name="padding-right">3mm</xsl:attribute>
2022
2109
 
@@ -2038,6 +2125,7 @@
2038
2125
 
2039
2126
 
2040
2127
 
2128
+
2041
2129
  <xsl:attribute name="margin-bottom">4pt</xsl:attribute>
2042
2130
 
2043
2131
 
@@ -2474,6 +2562,8 @@
2474
2562
 
2475
2563
 
2476
2564
 
2565
+
2566
+
2477
2567
 
2478
2568
 
2479
2569
 
@@ -2510,6 +2600,8 @@
2510
2600
 
2511
2601
 
2512
2602
 
2603
+
2604
+
2513
2605
  </xsl:element>
2514
2606
  </xsl:variable>
2515
2607
 
@@ -2597,6 +2689,14 @@
2597
2689
 
2598
2690
 
2599
2691
 
2692
+ <xsl:if test="*[local-name()='bookmark']"> <!-- special case: table/bookmark -->
2693
+ <fo:block keep-with-previous="always" line-height="0.1">
2694
+ <xsl:for-each select="*[local-name()='bookmark']">
2695
+ <xsl:call-template name="bookmark"/>
2696
+ </xsl:for-each>
2697
+ </fo:block>
2698
+ </xsl:if>
2699
+
2600
2700
  </fo:block-container>
2601
2701
  </xsl:variable>
2602
2702
 
@@ -2655,23 +2755,29 @@
2655
2755
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
2656
2756
  <xsl:param name="continued"/>
2657
2757
  <xsl:if test="normalize-space() != ''">
2658
- <fo:block xsl:use-attribute-sets="table-name-style">
2659
-
2660
-
2661
-
2662
-
2758
+
2759
+
2663
2760
 
2664
- <xsl:choose>
2665
- <xsl:when test="$continued = 'true'">
2761
+ <fo:block xsl:use-attribute-sets="table-name-style">
2762
+
2666
2763
 
2667
- </xsl:when>
2668
- <xsl:otherwise>
2669
- <xsl:apply-templates/>
2670
- </xsl:otherwise>
2671
- </xsl:choose>
2672
-
2764
+
2765
+
2766
+
2767
+ <xsl:choose>
2768
+ <xsl:when test="$continued = 'true'">
2769
+
2770
+ </xsl:when>
2771
+ <xsl:otherwise>
2772
+ <xsl:apply-templates/>
2773
+ </xsl:otherwise>
2774
+ </xsl:choose>
2775
+
2776
+
2777
+ </fo:block>
2778
+
2673
2779
 
2674
- </fo:block>
2780
+
2675
2781
  </xsl:if>
2676
2782
  </xsl:template><xsl:template name="calculate-columns-numbers">
2677
2783
  <xsl:param name="table-row"/>
@@ -3069,12 +3175,18 @@
3069
3175
  <fo:table-row>
3070
3176
  <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
3071
3177
 
3072
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3073
- <xsl:with-param name="continued">true</xsl:with-param>
3074
- </xsl:apply-templates>
3075
3178
 
3076
3179
 
3077
3180
 
3181
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3182
+ <xsl:with-param name="continued">true</xsl:with-param>
3183
+ </xsl:apply-templates>
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3078
3190
  </fo:table-cell>
3079
3191
  </fo:table-row>
3080
3192
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
@@ -3114,77 +3226,91 @@
3114
3226
  </xsl:choose>
3115
3227
  </xsl:variable>
3116
3228
 
3117
- <fo:table keep-with-previous="always">
3118
- <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3119
- <xsl:variable name="name" select="local-name()"/>
3229
+
3230
+ <xsl:variable name="tableWithNotesAndFootnotes">
3231
+
3232
+ <fo:table keep-with-previous="always">
3233
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3234
+ <xsl:variable name="name" select="local-name()"/>
3235
+ <xsl:choose>
3236
+ <xsl:when test="$name = 'border-top'">
3237
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
3238
+ </xsl:when>
3239
+ <xsl:when test="$name = 'border'">
3240
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3241
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3242
+ </xsl:when>
3243
+ <xsl:otherwise>
3244
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3245
+ </xsl:otherwise>
3246
+ </xsl:choose>
3247
+ </xsl:for-each>
3248
+
3249
+
3250
+
3120
3251
  <xsl:choose>
3121
- <xsl:when test="$name = 'border-top'">
3122
- <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
3123
- </xsl:when>
3124
- <xsl:when test="$name = 'border'">
3125
- <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3126
- <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3252
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
3253
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
3254
+ <fo:table-column column-width="{@width}"/>
3255
+ </xsl:for-each>
3127
3256
  </xsl:when>
3128
3257
  <xsl:otherwise>
3129
- <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3258
+ <!-- $colwidths=<xsl:copy-of select="$colwidths"/> -->
3259
+ <xsl:call-template name="insertTableColumnWidth">
3260
+ <xsl:with-param name="colwidths" select="$colwidths"/>
3261
+ </xsl:call-template>
3130
3262
  </xsl:otherwise>
3131
3263
  </xsl:choose>
3132
- </xsl:for-each>
3133
-
3134
-
3135
-
3136
- <xsl:choose>
3137
- <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
3138
- <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
3139
- <fo:table-column column-width="{@width}"/>
3140
- </xsl:for-each>
3141
- </xsl:when>
3142
- <xsl:otherwise>
3143
- <!-- $colwidths=<xsl:copy-of select="$colwidths"/> -->
3144
- <xsl:call-template name="insertTableColumnWidth">
3145
- <xsl:with-param name="colwidths" select="$colwidths"/>
3146
- </xsl:call-template>
3147
- </xsl:otherwise>
3148
- </xsl:choose>
3149
-
3150
- <fo:table-body>
3151
- <fo:table-row>
3152
- <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3153
-
3154
-
3264
+
3265
+ <fo:table-body>
3266
+ <fo:table-row>
3267
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3268
+
3269
+
3155
3270
 
3156
-
3157
-
3158
- <!-- fn will be processed inside 'note' processing -->
3159
-
3160
-
3161
-
3162
-
3163
-
3164
-
3165
- <!-- for BSI (not PAS) display Notes before footnotes -->
3166
-
3167
-
3168
- <!-- except gb and bsi -->
3169
-
3170
- <xsl:apply-templates select="../*[local-name()='note']"/>
3171
3271
 
3172
-
3173
-
3174
- <!-- horizontal row separator -->
3175
-
3176
-
3177
- <!-- fn processing -->
3178
- <xsl:call-template name="table_fn_display"/>
3179
-
3180
- <!-- for PAS display Notes after footnotes -->
3181
-
3182
-
3183
- </fo:table-cell>
3184
- </fo:table-row>
3185
- </fo:table-body>
3186
-
3187
- </fo:table>
3272
+
3273
+ <!-- fn will be processed inside 'note' processing -->
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+ <!-- for BSI (not PAS) display Notes before footnotes -->
3281
+
3282
+
3283
+ <!-- except gb and bsi -->
3284
+
3285
+ <xsl:apply-templates select="../*[local-name()='note']"/>
3286
+
3287
+
3288
+
3289
+ <!-- horizontal row separator -->
3290
+
3291
+
3292
+ <!-- fn processing -->
3293
+
3294
+ <xsl:call-template name="table_fn_display"/>
3295
+
3296
+
3297
+
3298
+ <!-- for PAS display Notes after footnotes -->
3299
+
3300
+
3301
+ </fo:table-cell>
3302
+ </fo:table-row>
3303
+ </fo:table-body>
3304
+
3305
+ </fo:table>
3306
+ </xsl:variable>
3307
+
3308
+ <xsl:if test="normalize-space($tableWithNotesAndFootnotes) != ''">
3309
+ <xsl:copy-of select="$tableWithNotesAndFootnotes"/>
3310
+ </xsl:if>
3311
+
3312
+
3313
+
3188
3314
  </xsl:if>
3189
3315
  </xsl:template><xsl:template match="*[local-name()='tbody']">
3190
3316
 
@@ -3273,6 +3399,9 @@
3273
3399
 
3274
3400
 
3275
3401
 
3402
+
3403
+
3404
+
3276
3405
 
3277
3406
 
3278
3407
  <xsl:call-template name="setTableRowAttributes"/>
@@ -3292,6 +3421,8 @@
3292
3421
 
3293
3422
 
3294
3423
 
3424
+
3425
+
3295
3426
  <xsl:call-template name="setTableRowAttributes"/>
3296
3427
  <xsl:apply-templates/>
3297
3428
  </fo:table-row>
@@ -3373,6 +3504,8 @@
3373
3504
 
3374
3505
 
3375
3506
 
3507
+
3508
+
3376
3509
 
3377
3510
 
3378
3511
 
@@ -3444,7 +3577,11 @@
3444
3577
 
3445
3578
  <xsl:variable name="gen_id" select="generate-id(.)"/>
3446
3579
  <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
3447
- <xsl:variable name="reference" select="@reference"/>
3580
+ <xsl:variable name="reference_">
3581
+ <xsl:value-of select="@reference"/>
3582
+ <xsl:if test="normalize-space(@reference) = ''"><xsl:value-of select="$gen_id"/></xsl:if>
3583
+ </xsl:variable>
3584
+ <xsl:variable name="reference" select="normalize-space($reference_)"/>
3448
3585
  <!-- fn sequence number in document -->
3449
3586
  <xsl:variable name="current_fn_number">
3450
3587
  <xsl:choose>
@@ -3464,6 +3601,7 @@
3464
3601
  <xsl:variable name="footnote_inline">
3465
3602
  <fo:inline xsl:use-attribute-sets="fn-num-style">
3466
3603
 
3604
+
3467
3605
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3468
3606
  <xsl:value-of select="$current_fn_number_text"/>
3469
3607
  </fo:basic-link>
@@ -3485,8 +3623,12 @@
3485
3623
  <fo:block xsl:use-attribute-sets="fn-body-style">
3486
3624
 
3487
3625
 
3626
+
3488
3627
  <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
3489
3628
 
3629
+
3630
+
3631
+
3490
3632
  <xsl:value-of select="$current_fn_number_text"/>
3491
3633
  </fo:inline>
3492
3634
  <xsl:apply-templates/>
@@ -3519,7 +3661,7 @@
3519
3661
  <xsl:copy-of select="node()"/>
3520
3662
  </fn>
3521
3663
  </xsl:for-each>
3522
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
3664
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='boilerplate']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
3523
3665
  <xsl:sort select="@displayorder" data-type="number"/>
3524
3666
  <xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
3525
3667
  <!-- copy unique fn -->
@@ -5164,6 +5306,13 @@
5164
5306
  </xsl:variable>
5165
5307
  <fo:inline xsl:use-attribute-sets="link-style">
5166
5308
 
5309
+ <xsl:if test="starts-with(normalize-space(@target), 'mailto:')">
5310
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5311
+ </xsl:if>
5312
+
5313
+
5314
+
5315
+
5167
5316
 
5168
5317
 
5169
5318
 
@@ -5381,6 +5530,7 @@
5381
5530
 
5382
5531
 
5383
5532
 
5533
+
5384
5534
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
5385
5535
  <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
5386
5536
  <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
@@ -5403,6 +5553,7 @@
5403
5553
  <xsl:otherwise>
5404
5554
 
5405
5555
 
5556
+
5406
5557
  </xsl:otherwise>
5407
5558
  </xsl:choose>
5408
5559
  </xsl:variable>
@@ -5420,6 +5571,7 @@
5420
5571
  <xsl:otherwise>
5421
5572
 
5422
5573
 
5574
+
5423
5575
  </xsl:otherwise>
5424
5576
  </xsl:choose>
5425
5577
  </xsl:variable>
@@ -5428,7 +5580,19 @@
5428
5580
  <xsl:value-of select="$suffix"/>
5429
5581
  </xsl:if>
5430
5582
  </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
5431
- <fo:inline><xsl:apply-templates/></fo:inline>
5583
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
5584
+ <xsl:choose>
5585
+ <xsl:when test="$num = 1"> <!-- first paragraph renders in the same line as titlenote name -->
5586
+ <fo:inline xsl:use-attribute-sets="termnote-p-style">
5587
+ <xsl:apply-templates/>
5588
+ </fo:inline>
5589
+ </xsl:when>
5590
+ <xsl:otherwise>
5591
+ <fo:block xsl:use-attribute-sets="termnote-p-style">
5592
+ <xsl:apply-templates/>
5593
+ </fo:block>
5594
+ </xsl:otherwise>
5595
+ </xsl:choose>
5432
5596
  </xsl:template><xsl:template match="*[local-name() = 'terms']">
5433
5597
  <!-- <xsl:message>'terms' <xsl:number/> processing...</xsl:message> -->
5434
5598
  <fo:block id="{@id}">
@@ -6183,6 +6347,9 @@
6183
6347
  <fo:block xsl:use-attribute-sets="figure-name-style">
6184
6348
 
6185
6349
 
6350
+
6351
+
6352
+
6186
6353
  <xsl:apply-templates/>
6187
6354
  </fo:block>
6188
6355
  </xsl:if>
@@ -6243,9 +6410,9 @@
6243
6410
  <xsl:apply-templates/>
6244
6411
  </xsl:otherwise>
6245
6412
  </xsl:choose>
6246
- </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'xref']" mode="contents">
6413
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'xref'] | *[local-name() = 'eref']" mode="contents">
6247
6414
  <xsl:value-of select="."/>
6248
- </xsl:template><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
6415
+ </xsl:template><xsl:template match="*[local-name() = 'review']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
6249
6416
  <xsl:text> </xsl:text>
6250
6417
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
6251
6418
  <xsl:copy>
@@ -6319,6 +6486,9 @@
6319
6486
  <!-- 9 -->
6320
6487
 
6321
6488
 
6489
+ <!-- <xsl:if test="$namespace = 'ieee'">
6490
+ <xsl:if test="$current_template = 'standard'">8</xsl:if>
6491
+ </xsl:if> -->
6322
6492
 
6323
6493
 
6324
6494
 
@@ -6763,10 +6933,14 @@
6763
6933
  </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
6764
6934
  <xsl:variable name="element">inline
6765
6935
 
6936
+
6766
6937
  </xsl:variable>
6767
6938
  <xsl:choose>
6768
6939
  <xsl:when test="contains($element, 'block')">
6769
6940
  <fo:block xsl:use-attribute-sets="example-p-style">
6941
+
6942
+
6943
+
6770
6944
  <xsl:apply-templates/>
6771
6945
  </fo:block>
6772
6946
  </xsl:when>
@@ -6874,6 +7048,7 @@
6874
7048
  </xsl:if>
6875
7049
  <fo:block xsl:use-attribute-sets="example-p-style">
6876
7050
 
7051
+
6877
7052
  <xsl:apply-templates/>
6878
7053
  </fo:block>
6879
7054
  </fo:block-container>
@@ -7030,6 +7205,8 @@
7030
7205
 
7031
7206
 
7032
7207
 
7208
+
7209
+
7033
7210
  <fo:basic-link fox:alt-text="{@citeas}">
7034
7211
  <xsl:if test="normalize-space(@citeas) = ''">
7035
7212
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
@@ -7104,6 +7281,7 @@
7104
7281
 
7105
7282
 
7106
7283
 
7284
+
7107
7285
  </xsl:variable>
7108
7286
 
7109
7287
  <xsl:variable name="padding-right">
@@ -7444,6 +7622,8 @@
7444
7622
 
7445
7623
 
7446
7624
 
7625
+
7626
+
7447
7627
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
7448
7628
  <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
7449
7629
  <xsl:call-template name="append_add-style"/>
@@ -7628,7 +7808,7 @@
7628
7808
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
7629
7809
  <!-- to split by '_' and other chars -->
7630
7810
  <xsl:call-template name="add-zero-spaces-java"/>
7631
- </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
7811
+ </xsl:template><xsl:template match="*[local-name() = 'table']/*[local-name() = 'bookmark']" priority="2"/><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
7632
7812
  <!-- <fo:inline id="{@id}" font-size="1pt"/> -->
7633
7813
  <fo:inline id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:inline>
7634
7814
  <!-- we need to add zero-width space, otherwise this fo:inline is missing in IF xml -->
@@ -7695,6 +7875,7 @@
7695
7875
  </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
7696
7876
 
7697
7877
  <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-normative-list-style">
7878
+
7698
7879
  <fo:list-item>
7699
7880
  <fo:list-item-label end-indent="label-end()">
7700
7881
  <fo:block>
@@ -7702,7 +7883,7 @@
7702
7883
 
7703
7884
  <xsl:value-of select="*[local-name() = 'docidentifier'][@type = 'metanorma-ordinal']"/>
7704
7885
  <xsl:if test="not(*[local-name() = 'docidentifier'][@type = 'metanorma-ordinal'])">
7705
- <xsl:number format="[1]"/>
7886
+ <xsl:number format="[1]" count="*[local-name()='bibitem'][not(@hidden = 'true')]"/>
7706
7887
  </xsl:if>
7707
7888
 
7708
7889
  </fo:inline>
@@ -7717,7 +7898,7 @@
7717
7898
  </fo:list-block>
7718
7899
 
7719
7900
 
7720
- </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
7901
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" name="bibitem_non_normative" priority="2">
7721
7902
 
7722
7903
 
7723
7904
  <xsl:call-template name="bibitem"/>
@@ -8032,12 +8213,16 @@
8032
8213
  <fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
8033
8214
 
8034
8215
 
8216
+
8217
+
8035
8218
 
8036
8219
 
8037
8220
 
8038
8221
  <fo:block-container xsl:use-attribute-sets="admonition-container-style">
8039
8222
 
8040
8223
 
8224
+
8225
+
8041
8226
  <fo:block xsl:use-attribute-sets="admonition-name-style">
8042
8227
  <xsl:call-template name="displayAdmonitionName"/>
8043
8228
  </fo:block>
@@ -8241,6 +8426,8 @@
8241
8426
  </xsl:when>
8242
8427
  <xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
8243
8428
  </xsl:choose>
8429
+ </xsl:template><xsl:template match="*[local-name() = 'lang_none']">
8430
+ <fo:inline xml:lang="none"><xsl:value-of select="."/></fo:inline>
8244
8431
  </xsl:template><xsl:template name="printEdition">
8245
8432
  <xsl:variable name="edition_i18n" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) != ''])"/>
8246
8433
  <xsl:text> </xsl:text>
@@ -8347,8 +8534,30 @@
8347
8534
  </xsl:when>
8348
8535
  <xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
8349
8536
  </xsl:choose>
8537
+ </xsl:template><xsl:template name="getMonthLocalizedByNum">
8538
+ <xsl:param name="num"/>
8539
+ <xsl:variable name="monthStr">
8540
+ <xsl:choose>
8541
+ <xsl:when test="$num = '01'">january</xsl:when>
8542
+ <xsl:when test="$num = '02'">february</xsl:when>
8543
+ <xsl:when test="$num = '03'">march</xsl:when>
8544
+ <xsl:when test="$num = '04'">april</xsl:when>
8545
+ <xsl:when test="$num = '05'">may</xsl:when>
8546
+ <xsl:when test="$num = '06'">june</xsl:when>
8547
+ <xsl:when test="$num = '07'">july</xsl:when>
8548
+ <xsl:when test="$num = '08'">august</xsl:when>
8549
+ <xsl:when test="$num = '09'">september</xsl:when>
8550
+ <xsl:when test="$num = '10'">october</xsl:when>
8551
+ <xsl:when test="$num = '11'">november</xsl:when>
8552
+ <xsl:when test="$num = '12'">december</xsl:when>
8553
+ </xsl:choose>
8554
+ </xsl:variable>
8555
+ <xsl:call-template name="getLocalizedString">
8556
+ <xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param>
8557
+ </xsl:call-template>
8350
8558
  </xsl:template><xsl:template name="insertKeywords">
8351
8559
  <xsl:param name="sorting" select="'true'"/>
8560
+ <xsl:param name="meta" select="'false'"/>
8352
8561
  <xsl:param name="charAtEnd" select="'.'"/>
8353
8562
  <xsl:param name="charDelim" select="', '"/>
8354
8563
  <xsl:choose>
@@ -8356,6 +8565,7 @@
8356
8565
  <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
8357
8566
  <xsl:sort data-type="text" order="ascending"/>
8358
8567
  <xsl:call-template name="insertKeyword">
8568
+ <xsl:with-param name="meta" select="$meta"/>
8359
8569
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
8360
8570
  <xsl:with-param name="charDelim" select="$charDelim"/>
8361
8571
  </xsl:call-template>
@@ -8364,6 +8574,7 @@
8364
8574
  <xsl:otherwise>
8365
8575
  <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
8366
8576
  <xsl:call-template name="insertKeyword">
8577
+ <xsl:with-param name="meta" select="$meta"/>
8367
8578
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
8368
8579
  <xsl:with-param name="charDelim" select="$charDelim"/>
8369
8580
  </xsl:call-template>
@@ -8373,7 +8584,15 @@
8373
8584
  </xsl:template><xsl:template name="insertKeyword">
8374
8585
  <xsl:param name="charAtEnd"/>
8375
8586
  <xsl:param name="charDelim"/>
8376
- <xsl:apply-templates/>
8587
+ <xsl:param name="meta"/>
8588
+ <xsl:choose>
8589
+ <xsl:when test="$meta = 'true'">
8590
+ <xsl:value-of select="."/>
8591
+ </xsl:when>
8592
+ <xsl:otherwise>
8593
+ <xsl:apply-templates/>
8594
+ </xsl:otherwise>
8595
+ </xsl:choose>
8377
8596
  <xsl:choose>
8378
8597
  <xsl:when test="position() != last()"><xsl:value-of select="$charDelim"/></xsl:when>
8379
8598
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
@@ -8418,13 +8637,15 @@
8418
8637
  <dc:description>
8419
8638
  <xsl:variable name="abstract">
8420
8639
 
8421
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
8640
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'title'])]"/>
8422
8641
 
8423
8642
  </xsl:variable>
8424
8643
  <xsl:value-of select="normalize-space($abstract)"/>
8425
8644
  </dc:description>
8426
8645
  <pdf:Keywords>
8427
- <xsl:call-template name="insertKeywords"/>
8646
+ <xsl:call-template name="insertKeywords">
8647
+ <xsl:with-param name="meta">true</xsl:with-param>
8648
+ </xsl:call-template>
8428
8649
  </pdf:Keywords>
8429
8650
  </rdf:Description>
8430
8651
  <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
@@ -8547,6 +8768,7 @@
8547
8768
 
8548
8769
 
8549
8770
 
8771
+
8550
8772
  <xsl:value-of select="document('')//*/namespace::iho"/>
8551
8773
 
8552
8774