metanorma-ogc 1.4.2 → 1.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -414,7 +414,7 @@
414
414
  </fo:block>
415
415
  </fo:block-container>
416
416
 
417
- <xsl:if test="//ogc:table[@id and ogc:name]">
417
+ <xsl:if test="//ogc:table[@id and ogc:name and contains(ogc:name, '—')]">
418
418
  <xsl:variable name="title-list-tables">
419
419
  <xsl:call-template name="getTitle">
420
420
  <xsl:with-param name="name" select="'title-list-tables'"/>
@@ -429,7 +429,7 @@
429
429
  </fo:block-container>
430
430
  </fo:block-container>
431
431
  <fo:block-container line-height="130%">
432
- <xsl:for-each select="//ogc:table[@id and ogc:name]">
432
+ <xsl:for-each select="//ogc:table[@id and ogc:name and contains(ogc:name, '—')]">
433
433
  <fo:block text-align-last="justify" margin-top="2pt" role="TOCI">
434
434
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{ogc:name}">
435
435
  <xsl:apply-templates select="ogc:name" mode="contents"/>
@@ -443,7 +443,7 @@
443
443
  </fo:block-container>
444
444
  </xsl:if>
445
445
 
446
- <xsl:if test="//ogc:figure[@id and ogc:name]">
446
+ <xsl:if test="//ogc:figure[@id and ogc:name and contains(ogc:name, '—')]">
447
447
  <xsl:variable name="title-list-figures">
448
448
  <xsl:call-template name="getTitle">
449
449
  <xsl:with-param name="name" select="'title-list-figures'"/>
@@ -458,7 +458,7 @@
458
458
  </fo:block-container>
459
459
 
460
460
  <fo:block-container line-height="130%">
461
- <xsl:for-each select="//ogc:figure[@id and ogc:name]">
461
+ <xsl:for-each select="//ogc:figure[@id and ogc:name and contains(ogc:name, '—')]">
462
462
  <fo:block text-align-last="justify" margin-top="2pt" role="TOCI">
463
463
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{ogc:name}">
464
464
  <xsl:apply-templates select="ogc:name" mode="contents"/>
@@ -910,6 +910,7 @@
910
910
  <xsl:call-template name="insertSectionTitle">
911
911
  <xsl:with-param name="section" select="$section"/>
912
912
  <xsl:with-param name="title" select="$title"/>
913
+ <xsl:with-param name="level" select="$level"/>
913
914
  </xsl:call-template>
914
915
  </fo:block>
915
916
  </xsl:when>
@@ -1057,10 +1058,13 @@
1057
1058
  <xsl:template match="ogc:ul | ogc:ol" mode="ul_ol">
1058
1059
  <fo:block-container margin-left="13mm">
1059
1060
  <xsl:if test="ancestor::ogc:table">
1060
- <xsl:attribute name="margin-left">1.5mm</xsl:attribute>
1061
+ <xsl:attribute name="margin-left">4mm</xsl:attribute>
1061
1062
  </xsl:if>
1062
1063
  <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol">
1063
1064
  <xsl:attribute name="margin-top">10pt</xsl:attribute>
1065
+ <xsl:if test="ancestor::ogc:table">
1066
+ <xsl:attribute name="margin-top">1mm</xsl:attribute>
1067
+ </xsl:if>
1064
1068
  </xsl:if>
1065
1069
  <fo:block-container margin-left="0mm">
1066
1070
  <fo:list-block provisional-distance-between-starts="12mm" space-after="12pt" line-height="115%">
@@ -1069,6 +1073,9 @@
1069
1073
  </xsl:if>
1070
1074
  <xsl:if test="ancestor::ogc:ul | ancestor::ogc:ol">
1071
1075
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1076
+ <xsl:if test="ancestor::ogc:table[not(@class)]">
1077
+ <xsl:attribute name="space-after">1mm</xsl:attribute>
1078
+ </xsl:if>
1072
1079
  </xsl:if>
1073
1080
  <xsl:if test="following-sibling::*[1][local-name() = 'ul' or local-name() = 'ol']">
1074
1081
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
@@ -1104,17 +1111,14 @@
1104
1111
  <xsl:when test="../@type = 'roman'">
1105
1112
  <xsl:number format="i)"/>
1106
1113
  </xsl:when>
1107
- <xsl:when test="ancestor::ogc:table">
1108
- <xsl:variable name="level" select="count(ancestor-or-self::ogc:li[ancestor::ogc:table])"/>
1114
+ <xsl:otherwise>
1115
+ <xsl:variable name="level" select="count(ancestor-or-self::ogc:li)"/>
1109
1116
  <xsl:choose>
1110
1117
  <xsl:when test="$level = 1"><xsl:number format="a)" lang="en"/></xsl:when>
1111
1118
  <xsl:when test="$level = 2"><xsl:number format="1."/></xsl:when>
1112
1119
  <xsl:when test="$level = 3"><xsl:number format="i)"/></xsl:when>
1113
1120
  <xsl:otherwise><xsl:number format="a)" lang="en"/></xsl:otherwise>
1114
1121
  </xsl:choose>
1115
- </xsl:when>
1116
- <xsl:otherwise>
1117
- <xsl:number format="1."/>
1118
1122
  </xsl:otherwise>
1119
1123
  </xsl:choose>
1120
1124
  </xsl:otherwise>
@@ -1123,6 +1127,9 @@
1123
1127
  </fo:list-item-label>
1124
1128
  <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
1125
1129
  <fo:block margin-bottom="10pt">
1130
+ <xsl:if test="ancestor::ogc:table[not(@class)]">
1131
+ <xsl:attribute name="margin-bottom">1mm</xsl:attribute>
1132
+ </xsl:if>
1126
1133
  <xsl:if test="not(following-sibling::*) and not(../following-sibling::*)">
1127
1134
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1128
1135
  </xsl:if>
@@ -1274,7 +1281,6 @@
1274
1281
 
1275
1282
  <xsl:template match="ogc:figure" priority="2">
1276
1283
  <fo:block-container id="{@id}" margin-top="12pt" margin-bottom="12pt">
1277
- <xsl:apply-templates select="ogc:name" mode="presentation"/>
1278
1284
  <fo:block>
1279
1285
  <xsl:apply-templates/>
1280
1286
  </fo:block>
@@ -1282,6 +1288,7 @@
1282
1288
  <xsl:for-each select="ogc:note">
1283
1289
  <xsl:call-template name="note"/>
1284
1290
  </xsl:for-each>
1291
+ <xsl:apply-templates select="ogc:name" mode="presentation"/>
1285
1292
  </fo:block-container>
1286
1293
  </xsl:template>
1287
1294
 
@@ -1442,6 +1449,7 @@
1442
1449
  <xsl:template name="insertSectionTitle">
1443
1450
  <xsl:param name="section"/>
1444
1451
  <xsl:param name="title"/>
1452
+ <xsl:param name="level">1</xsl:param>
1445
1453
  <fo:block>
1446
1454
  <fo:block font-size="18pt" color="{$color_blue}" keep-with-next="always" line-height="150%">
1447
1455
  <xsl:if test="$section != ''">
@@ -1452,10 +1460,24 @@
1452
1460
  </xsl:call-template>
1453
1461
  </fo:inline>
1454
1462
  </xsl:if>
1455
- <xsl:apply-templates select="xalan:nodeset($title)" mode="titlesmall"/>
1463
+ <xsl:choose>
1464
+ <xsl:when test="$level = 1">
1465
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="titlesmall"/>
1466
+ </xsl:when>
1467
+ <xsl:otherwise>
1468
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="titlesimple"/>
1469
+ </xsl:otherwise>
1470
+ </xsl:choose>
1456
1471
 
1457
1472
  <xsl:variable name="variant-title">
1458
- <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="titlesmall"/>
1473
+ <xsl:choose>
1474
+ <xsl:when test="$level = 1">
1475
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="titlesmall"/>
1476
+ </xsl:when>
1477
+ <xsl:otherwise>
1478
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="titlesimple"/>
1479
+ </xsl:otherwise>
1480
+ </xsl:choose>
1459
1481
  </xsl:variable>
1460
1482
  <xsl:if test="normalize-space($variant-title) != ''">
1461
1483
  <fo:inline padding-right="5mm"> </fo:inline>
@@ -1474,25 +1496,59 @@
1474
1496
  </xsl:call-template>
1475
1497
  </xsl:template>
1476
1498
 
1499
+ <xsl:template match="text()" mode="titlesimple">
1500
+ <xsl:value-of select="."/>
1501
+ </xsl:template>
1502
+
1477
1503
  <xsl:template match="ogc:strong" mode="titlesmall">
1478
1504
  <xsl:apply-templates mode="titlesmall"/>
1479
1505
  </xsl:template>
1506
+ <xsl:template match="ogc:strong" mode="titlesimple">
1507
+ <xsl:apply-templates mode="titlesimple"/>
1508
+ </xsl:template>
1480
1509
 
1481
1510
  <xsl:template match="ogc:em" mode="titlesmall">
1482
1511
  <fo:inline font-style="italic"><xsl:apply-templates mode="titlesmall"/></fo:inline>
1483
1512
  </xsl:template>
1513
+ <xsl:template match="ogc:em" mode="titlesimple">
1514
+ <fo:inline font-style="italic"><xsl:apply-templates mode="titlesimple"/></fo:inline>
1515
+ </xsl:template>
1484
1516
 
1485
1517
  <xsl:template match="ogc:fn" mode="titlesmall">
1486
1518
  <xsl:call-template name="fn"/>
1487
1519
  </xsl:template>
1520
+ <xsl:template match="ogc:fn" mode="titlesimple">
1521
+ <xsl:call-template name="fn"/>
1522
+ </xsl:template>
1488
1523
  <xsl:template match="ogc:tab " mode="titlesmall">
1489
1524
  <xsl:apply-templates select="."/>
1490
1525
  </xsl:template>
1526
+ <xsl:template match="ogc:tab " mode="titlesimple">
1527
+ <xsl:apply-templates select="."/>
1528
+ </xsl:template>
1491
1529
 
1492
1530
  <xsl:template match="ogc:br" mode="titlesmall">
1493
1531
  <xsl:value-of select="$linebreak"/>
1494
1532
  </xsl:template>
1495
-
1533
+ <xsl:template match="ogc:br" mode="titlesimple">
1534
+ <xsl:value-of select="$linebreak"/>
1535
+ </xsl:template>
1536
+
1537
+ <xsl:template match="*[local-name() = 'name']/text()[1]" priority="2">
1538
+ <!-- 0xA0 to space replacement -->
1539
+ <xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
1540
+ <xsl:variable name="separator" select="' — '"/>
1541
+ <xsl:choose>
1542
+ <xsl:when test="contains($text, $separator)">
1543
+ <fo:inline font-weight="bold"><xsl:value-of select="substring-before($text, $separator)"/></fo:inline>
1544
+ <xsl:value-of select="$separator"/>
1545
+ <xsl:value-of select="substring-after($text, $separator)"/>
1546
+ </xsl:when>
1547
+ <xsl:otherwise>
1548
+ <xsl:value-of select="$text"/>
1549
+ </xsl:otherwise>
1550
+ </xsl:choose>
1551
+ </xsl:template>
1496
1552
 
1497
1553
  <xsl:template name="insertOrangeHorizontalLine">
1498
1554
  <fo:block-container width="12.7mm" border-top="1pt solid {$color_orange}" margin-top="3mm">
@@ -1602,6 +1658,8 @@
1602
1658
 
1603
1659
  <title-list-figures lang="en">List of Figures</title-list-figures>
1604
1660
 
1661
+ <title-table-figures lang="en">Table of Figures</title-table-figures>
1662
+
1605
1663
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
1606
1664
 
1607
1665
  <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
@@ -1850,7 +1908,8 @@
1850
1908
 
1851
1909
  <xsl:attribute name="text-align">left</xsl:attribute>
1852
1910
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1853
- <xsl:attribute name="font-weight">bold</xsl:attribute><!-- normal -->
1911
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1912
+ <xsl:attribute name="color"><xsl:value-of select="$color_blue"/></xsl:attribute>
1854
1913
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1855
1914
 
1856
1915
 
@@ -1930,6 +1989,11 @@
1930
1989
 
1931
1990
 
1932
1991
 
1992
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
1993
+
1994
+
1995
+
1996
+
1933
1997
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1934
1998
 
1935
1999
 
@@ -2010,10 +2074,14 @@
2010
2074
 
2011
2075
 
2012
2076
 
2013
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2014
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2015
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2016
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2077
+ <xsl:attribute name="color"><xsl:value-of select="$color_blue"/></xsl:attribute>
2078
+ <!-- <xsl:attribute name="margin-top">12pt</xsl:attribute> -->
2079
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
2080
+ <!-- <xsl:attribute name="margin-bottom">6pt</xsl:attribute> -->
2081
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2082
+ <!-- <xsl:attribute name="keep-with-next">always</xsl:attribute> -->
2083
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2084
+ <xsl:attribute name="text-align">center</xsl:attribute>
2017
2085
 
2018
2086
 
2019
2087
 
@@ -2107,13 +2175,20 @@
2107
2175
 
2108
2176
  </xsl:attribute-set><xsl:attribute-set name="list-style">
2109
2177
 
2110
- </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:template name="processPrefaceSectionsDefault_Contents">
2178
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
2179
+ <xsl:attribute name="line-height">135%</xsl:attribute>
2180
+ </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:template name="OLD_processPrefaceSectionsDefault_Contents">
2111
2181
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2112
2182
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2113
2183
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2114
2184
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2115
2185
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2116
- </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2186
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
2187
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
2188
+ <xsl:sort select="@displayorder" data-type="number"/>
2189
+ <xsl:apply-templates select="." mode="contents"/>
2190
+ </xsl:for-each>
2191
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
2117
2192
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2118
2193
 
2119
2194
  <!-- Normative references -->
@@ -2126,13 +2201,33 @@
2126
2201
  <!-- Bibliography -->
2127
2202
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
2128
2203
 
2129
- </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2204
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2205
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2206
+ <xsl:sort select="@displayorder" data-type="number"/>
2207
+ <xsl:apply-templates select="." mode="contents"/>
2208
+ </xsl:for-each>
2209
+
2210
+ <xsl:for-each select="/*/*[local-name()='annex']">
2211
+ <xsl:sort select="@displayorder" data-type="number"/>
2212
+ <xsl:apply-templates select="." mode="contents"/>
2213
+ </xsl:for-each>
2214
+
2215
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
2216
+ <xsl:sort select="@displayorder" data-type="number"/>
2217
+ <xsl:apply-templates select="." mode="contents"/>
2218
+ </xsl:for-each>
2219
+ </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
2130
2220
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2131
2221
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2132
2222
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2133
2223
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2134
2224
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2135
- </xsl:template><xsl:template name="processMainSectionsDefault">
2225
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2226
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
2227
+ <xsl:sort select="@displayorder" data-type="number"/>
2228
+ <xsl:apply-templates select="."/>
2229
+ </xsl:for-each>
2230
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
2136
2231
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2137
2232
 
2138
2233
  <!-- Normative references -->
@@ -2144,6 +2239,22 @@
2144
2239
  <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2145
2240
  <!-- Bibliography -->
2146
2241
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2242
+ </xsl:template><xsl:template name="processMainSectionsDefault">
2243
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2244
+ <xsl:sort select="@displayorder" data-type="number"/>
2245
+ <xsl:apply-templates select="."/>
2246
+
2247
+ </xsl:for-each>
2248
+
2249
+ <xsl:for-each select="/*/*[local-name()='annex']">
2250
+ <xsl:sort select="@displayorder" data-type="number"/>
2251
+ <xsl:apply-templates select="."/>
2252
+ </xsl:for-each>
2253
+
2254
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
2255
+ <xsl:sort select="@displayorder" data-type="number"/>
2256
+ <xsl:apply-templates select="."/>
2257
+ </xsl:for-each>
2147
2258
  </xsl:template><xsl:template match="text()">
2148
2259
  <xsl:value-of select="."/>
2149
2260
  </xsl:template><xsl:template match="*[local-name()='br']">
@@ -3015,9 +3126,8 @@
3015
3126
 
3016
3127
  <!-- Table's note name (NOTE, for example) -->
3017
3128
 
3018
- <fo:inline padding-right="2mm">
3129
+ <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
3019
3130
 
3020
-
3021
3131
 
3022
3132
 
3023
3133
 
@@ -3645,6 +3755,8 @@
3645
3755
  <xsl:if test="$font-size != ''">
3646
3756
  <xsl:attribute name="font-size">
3647
3757
  <xsl:choose>
3758
+ <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
3759
+ <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
3648
3760
  <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3649
3761
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3650
3762
  </xsl:choose>
@@ -4452,6 +4564,7 @@
4452
4564
  <xsl:otherwise>
4453
4565
  <fo:block xsl:use-attribute-sets="image-style">
4454
4566
 
4567
+
4455
4568
  <xsl:variable name="src">
4456
4569
  <xsl:call-template name="image_src"/>
4457
4570
  </xsl:variable>
@@ -4699,6 +4812,13 @@
4699
4812
  </xsl:attribute>
4700
4813
  <xsl:apply-templates mode="svg_update"/>
4701
4814
  </xsl:copy>
4815
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
4816
+ <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
4817
+ <xsl:for-each select="*[local-name() = 'svg']">
4818
+ <xsl:call-template name="image_svg">
4819
+ <xsl:with-param name="name" select="$name"/>
4820
+ </xsl:call-template>
4821
+ </xsl:for-each>
4702
4822
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
4703
4823
  <xsl:variable name="svg_content" select="document(@src)"/>
4704
4824
  <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
@@ -4803,7 +4923,7 @@
4803
4923
  </fo:basic-link>
4804
4924
  </fo:block>
4805
4925
  </fo:block-container>
4806
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4926
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4807
4927
  <xsl:apply-templates mode="contents"/>
4808
4928
  <xsl:text> </xsl:text>
4809
4929
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
@@ -4811,7 +4931,7 @@
4811
4931
  <xsl:text> </xsl:text>
4812
4932
  </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="contents" priority="2">
4813
4933
  <xsl:value-of select="."/>
4814
- </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
4934
+ </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']//text()" mode="bookmarks" priority="2">
4815
4935
  <xsl:value-of select="."/>
4816
4936
  </xsl:template><xsl:template match="node()" mode="contents">
4817
4937
  <xsl:apply-templates mode="contents"/>
@@ -4904,41 +5024,72 @@
4904
5024
 
4905
5025
 
4906
5026
 
4907
- <xsl:if test="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
4908
- <fo:bookmark internal-destination="{//*[local-name() = 'figure'][@id and *[local-name() = 'name']][1]/@id}" starting-state="hide">
4909
- <fo:bookmark-title>Figures</fo:bookmark-title>
4910
- <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
5027
+
5028
+
5029
+
5030
+
5031
+
5032
+ <xsl:variable name="list_of_tables_">
5033
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and contains(*[local-name() = 'name'], '—')]">
5034
+ <table id="{@id}"><xsl:apply-templates select="*[local-name() = 'name']" mode="bookmarks"/></table>
5035
+ </xsl:for-each>
5036
+ </xsl:variable>
5037
+ <xsl:variable name="list_of_tables" select="xalan:nodeset($list_of_tables_)"/>
5038
+
5039
+ <xsl:variable name="list_of_figures_">
5040
+ <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and contains(*[local-name() = 'name'], '—')]">
5041
+ <figure id="{@id}"><xsl:apply-templates select="*[local-name() = 'name']" mode="bookmarks"/></figure>
5042
+ </xsl:for-each>
5043
+ </xsl:variable>
5044
+ <xsl:variable name="list_of_figures" select="xalan:nodeset($list_of_figures_)"/>
5045
+
5046
+ <xsl:if test="$list_of_tables//table or $list_of_figures/figure or //*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
5047
+ <fo:bookmark internal-destination="empty_bookmark">
5048
+ <fo:bookmark-title>—————</fo:bookmark-title>
5049
+ </fo:bookmark>
5050
+ </xsl:if>
5051
+
5052
+ <xsl:if test="$list_of_tables//table">
5053
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide"> <!-- {$list_of_tables//table[1]/@id} -->
5054
+ <fo:bookmark-title>
5055
+ <xsl:call-template name="getTitle">
5056
+ <xsl:with-param name="name" select="'title-list-tables'"/>
5057
+ </xsl:call-template>
5058
+ </fo:bookmark-title>
5059
+ <xsl:for-each select="$list_of_tables//table">
4911
5060
  <fo:bookmark internal-destination="{@id}">
4912
- <fo:bookmark-title><xsl:apply-templates select="*[local-name() = 'name']/text()" mode="bookmarks"/></fo:bookmark-title>
5061
+ <fo:bookmark-title><xsl:value-of select="."/></fo:bookmark-title>
4913
5062
  </fo:bookmark>
4914
5063
  </xsl:for-each>
4915
- </fo:bookmark>
5064
+ </fo:bookmark>
4916
5065
  </xsl:if>
4917
-
4918
-
4919
-
4920
- <xsl:if test="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
4921
- <fo:bookmark internal-destination="{//*[local-name() = 'table'][@id and *[local-name() = 'name']][1]/@id}" starting-state="hide">
5066
+
5067
+ <xsl:if test="$list_of_figures//figure">
5068
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide"> <!-- {$list_of_figures//figure[1]/@id} -->
4922
5069
  <fo:bookmark-title>
4923
- <xsl:choose>
4924
- <xsl:when test="@lang = 'fr'">Tableaux</xsl:when>
4925
- <xsl:otherwise>Tables</xsl:otherwise>
4926
- </xsl:choose>
5070
+
5071
+ <xsl:call-template name="getTitle">
5072
+ <xsl:with-param name="name" select="'title-list-figures'"/>
5073
+ </xsl:call-template>
5074
+
5075
+
4927
5076
  </fo:bookmark-title>
4928
- <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
5077
+ <xsl:for-each select="$list_of_figures//figure">
4929
5078
  <fo:bookmark internal-destination="{@id}">
4930
- <fo:bookmark-title><xsl:apply-templates select="*[local-name() = 'name']//text()" mode="bookmarks"/></fo:bookmark-title>
5079
+ <fo:bookmark-title><xsl:value-of select="."/></fo:bookmark-title>
4931
5080
  </fo:bookmark>
4932
5081
  </xsl:for-each>
4933
- </fo:bookmark>
5082
+ </fo:bookmark>
4934
5083
  </xsl:if>
4935
-
4936
-
4937
-
4938
-
5084
+
5085
+
4939
5086
  <xsl:if test="//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
4940
- <fo:bookmark internal-destination="{//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']][1]/@id}" starting-state="hide">
4941
- <fo:bookmark-title>Recommendations</fo:bookmark-title>
5087
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide"> <!-- {//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']][1]/@id} -->
5088
+ <fo:bookmark-title>
5089
+ <xsl:call-template name="getTitle">
5090
+ <xsl:with-param name="name" select="'title-list-recommendations'"/>
5091
+ </xsl:call-template>
5092
+ </fo:bookmark-title>
4942
5093
  <xsl:for-each select="//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
4943
5094
  <xsl:variable name="table_id" select="@id"/>
4944
5095
  <fo:bookmark internal-destination="{@id}">
@@ -4946,8 +5097,7 @@
4946
5097
  </fo:bookmark>
4947
5098
  </xsl:for-each>
4948
5099
  </fo:bookmark>
4949
-
4950
- </xsl:if>
5100
+ </xsl:if>
4951
5101
 
4952
5102
 
4953
5103
 
@@ -5145,12 +5295,16 @@
5145
5295
  <xsl:if test="$font-size != ''">
5146
5296
  <xsl:attribute name="font-size">
5147
5297
  <xsl:choose>
5298
+ <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
5299
+ <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
5148
5300
  <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
5149
5301
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
5150
5302
  </xsl:choose>
5151
5303
  </xsl:attribute>
5152
5304
  </xsl:if>
5153
5305
 
5306
+
5307
+
5154
5308
  <xsl:apply-templates/>
5155
5309
  </fo:block>
5156
5310
 
@@ -5530,14 +5684,15 @@
5530
5684
  </xsl:if>
5531
5685
  </xsl:template><xsl:variable name="localized.source">
5532
5686
  <xsl:call-template name="getLocalizedString">
5533
- <xsl:with-param name="key">source</xsl:with-param>
5534
- </xsl:call-template>
5687
+ <xsl:with-param name="key">source</xsl:with-param>
5688
+ </xsl:call-template>
5535
5689
  </xsl:variable><xsl:template match="*[local-name() = 'origin']">
5536
5690
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5537
5691
  <xsl:if test="normalize-space(@citeas) = ''">
5538
5692
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
5539
5693
  </xsl:if>
5540
5694
 
5695
+ <xsl:text>[</xsl:text>
5541
5696
  <fo:inline>
5542
5697
 
5543
5698
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -5547,18 +5702,18 @@
5547
5702
 
5548
5703
 
5549
5704
 
5550
-
5551
- <xsl:call-template name="getTitle">
5552
- <xsl:with-param name="name" select="'title-source'"/>
5553
- </xsl:call-template>
5705
+ <xsl:value-of select="$localized.source"/>
5554
5706
  <xsl:text>: </xsl:text>
5555
5707
 
5556
5708
 
5709
+
5710
+
5557
5711
  </fo:inline>
5558
5712
 
5559
5713
  <fo:inline xsl:use-attribute-sets="origin-style">
5560
5714
  <xsl:apply-templates/>
5561
5715
  </fo:inline>
5716
+ <xsl:text>]</xsl:text>
5562
5717
  </fo:basic-link>
5563
5718
  </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
5564
5719
  <fo:inline><xsl:apply-templates/></fo:inline>
@@ -5625,6 +5780,9 @@
5625
5780
 
5626
5781
  </xsl:if>
5627
5782
 
5783
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
5784
+ <xsl:variable name="text" select="normalize-space()"/>
5785
+
5628
5786
 
5629
5787
 
5630
5788
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
@@ -5638,7 +5796,9 @@
5638
5796
 
5639
5797
 
5640
5798
  </xsl:if>
5641
-
5799
+
5800
+
5801
+
5642
5802
  <xsl:apply-templates/>
5643
5803
  </fo:basic-link>
5644
5804
 
@@ -6287,9 +6447,97 @@
6287
6447
  <fo:block-container border="1pt solid black" width="50%">
6288
6448
  <fo:block> </fo:block>
6289
6449
  </fo:block-container>
6450
+ </xsl:template><xsl:template match="*[local-name() = 'toc']">
6451
+ <xsl:param name="colwidths"/>
6452
+ <xsl:variable name="colwidths_">
6453
+ <xsl:choose>
6454
+ <xsl:when test="not($colwidths)">
6455
+ <xsl:variable name="toc_table_simple">
6456
+ <tbody>
6457
+ <xsl:apply-templates mode="toc_table_width"/>
6458
+ </tbody>
6459
+ </xsl:variable>
6460
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
6461
+ <xsl:call-template name="calculate-column-widths">
6462
+ <xsl:with-param name="cols-count" select="$cols-count"/>
6463
+ <xsl:with-param name="table" select="$toc_table_simple"/>
6464
+ </xsl:call-template>
6465
+ </xsl:when>
6466
+ <xsl:otherwise>
6467
+ <xsl:copy-of select="$colwidths"/>
6468
+ </xsl:otherwise>
6469
+ </xsl:choose>
6470
+ </xsl:variable>
6471
+ <fo:block role="TOCI" space-after="16pt">
6472
+ <fo:table width="100%" table-layout="fixed">
6473
+ <xsl:for-each select="xalan:nodeset($colwidths_)/column">
6474
+ <fo:table-column column-width="proportional-column-width({.})"/>
6475
+ </xsl:for-each>
6476
+ <fo:table-body>
6477
+ <xsl:apply-templates/>
6478
+ </fo:table-body>
6479
+ </fo:table>
6480
+ </fo:block>
6481
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
6482
+ <fo:table-row min-height="5mm">
6483
+ <xsl:apply-templates/>
6484
+ </fo:table-row>
6485
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']/*[local-name() = 'p']">
6486
+ <xsl:apply-templates/>
6487
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'xref']" priority="3">
6488
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
6489
+ <xsl:variable name="target" select="@target"/>
6490
+ <xsl:for-each select="*[local-name() = 'tab']">
6491
+ <xsl:variable name="current_id" select="generate-id()"/>
6492
+ <fo:table-cell>
6493
+ <fo:block>
6494
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
6495
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
6496
+ <xsl:choose>
6497
+ <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
6498
+ <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
6499
+ </xsl:choose>
6500
+ </xsl:for-each>
6501
+ </fo:basic-link>
6502
+ </fo:block>
6503
+ </fo:table-cell>
6504
+ </xsl:for-each>
6505
+ <!-- last column - for page numbers -->
6506
+ <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
6507
+ <fo:block>
6508
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
6509
+ <fo:page-number-citation ref-id="{$target}"/>
6510
+ </fo:basic-link>
6511
+ </fo:block>
6512
+ </fo:table-cell>
6513
+ </xsl:template><xsl:template match="*" mode="toc_table_width">
6514
+ <xsl:apply-templates mode="toc_table_width"/>
6515
+ </xsl:template><xsl:template match="*[local-name() = 'clause'][@type = 'toc']/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'clause'][not(@type = 'toc')]/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'li']" mode="toc_table_width">
6516
+ <tr>
6517
+ <xsl:apply-templates mode="toc_table_width"/>
6518
+ </tr>
6519
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="toc_table_width">
6520
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
6521
+ <xsl:for-each select="*[local-name() = 'tab']">
6522
+ <xsl:variable name="current_id" select="generate-id()"/>
6523
+ <td>
6524
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
6525
+ <xsl:copy-of select="."/>
6526
+ </xsl:for-each>
6527
+ </td>
6528
+ </xsl:for-each>
6529
+ <td>333</td> <!-- page number, just for fill -->
6290
6530
  </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
6291
6531
  <fo:inline padding-right="5mm"> </fo:inline>
6292
6532
  <fo:inline><xsl:apply-templates/></fo:inline>
6533
+ </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
6534
+ <fo:inline padding-right="2.5mm" baseline-shift="5%">
6535
+ <fo:instream-foreign-object content-height="2mm" content-width="2mm" fox:alt-text="Quad">
6536
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="0 0 2 2">
6537
+ <rect x="0" y="0" width="2" height="2" fill="black"/>
6538
+ </svg>
6539
+ </fo:instream-foreign-object>
6540
+ </fo:inline>
6293
6541
  </xsl:template><xsl:template name="convertDate">
6294
6542
  <xsl:param name="date"/>
6295
6543
  <xsl:param name="format" select="'short'"/>