metanorma-un 0.5.6 → 0.5.11

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.
@@ -39,7 +39,7 @@
39
39
 
40
40
  <xsl:template match="/">
41
41
  <xsl:call-template name="namespaceCheck"/>
42
- <fo:root font-family="Times New Roman, STIX Two Math, HanSans" font-size="10pt" xml:lang="{$lang}">
42
+ <fo:root font-family="Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
43
43
  <fo:layout-master-set>
44
44
  <!-- Cover page -->
45
45
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -644,7 +644,7 @@
644
644
  <xsl:otherwise> <!-- for ordered lists -->
645
645
  <xsl:choose>
646
646
  <xsl:when test="../@type = 'arabic'">
647
- <xsl:number format="a)"/>
647
+ <xsl:number format="a)" lang="en"/>
648
648
  </xsl:when>
649
649
  <xsl:when test="../@type = 'alphabet'">
650
650
  <xsl:number format="1)"/>
@@ -652,7 +652,7 @@
652
652
  <xsl:when test="ancestor::*[un:annex]">
653
653
  <xsl:choose>
654
654
  <xsl:when test="$level = 1">
655
- <xsl:number format="a)"/>
655
+ <xsl:number format="a)" lang="en"/>
656
656
  </xsl:when>
657
657
  <xsl:when test="$level = 2">
658
658
  <xsl:number format="i)"/>
@@ -1106,13 +1106,22 @@
1106
1106
  <title-part lang="en">
1107
1107
 
1108
1108
 
1109
+
1109
1110
  </title-part>
1110
1111
  <title-part lang="fr">
1111
1112
 
1112
1113
 
1114
+
1113
1115
  </title-part>
1114
1116
  <title-part lang="zh">第 # 部分:</title-part>
1115
1117
 
1118
+ <title-subpart lang="en">
1119
+
1120
+ </title-subpart>
1121
+ <title-subpart lang="fr">
1122
+
1123
+ </title-subpart>
1124
+
1116
1125
  <title-modified lang="en">modified</title-modified>
1117
1126
  <title-modified lang="fr">modifiée</title-modified>
1118
1127
 
@@ -1411,6 +1420,7 @@
1411
1420
 
1412
1421
  </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1413
1422
 
1423
+
1414
1424
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1415
1425
 
1416
1426
 
@@ -1435,6 +1445,7 @@
1435
1445
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1436
1446
 
1437
1447
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1448
+
1438
1449
 
1439
1450
 
1440
1451
 
@@ -1556,7 +1567,9 @@
1556
1567
 
1557
1568
 
1558
1569
 
1559
-
1570
+ <!-- <xsl:if test="$namespace = 'bipm'">
1571
+ <fo:block>&#xA0;</fo:block>
1572
+ </xsl:if> -->
1560
1573
 
1561
1574
  <!-- $namespace = 'iso' or -->
1562
1575
 
@@ -1590,10 +1603,12 @@
1590
1603
 
1591
1604
 
1592
1605
  <xsl:variable name="colwidths">
1593
- <xsl:call-template name="calculate-column-widths">
1594
- <xsl:with-param name="cols-count" select="$cols-count"/>
1595
- <xsl:with-param name="table" select="$simple-table"/>
1596
- </xsl:call-template>
1606
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
1607
+ <xsl:call-template name="calculate-column-widths">
1608
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1609
+ <xsl:with-param name="table" select="$simple-table"/>
1610
+ </xsl:call-template>
1611
+ </xsl:if>
1597
1612
  </xsl:variable>
1598
1613
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1599
1614
 
@@ -1637,7 +1652,12 @@
1637
1652
 
1638
1653
  <xsl:variable name="table_attributes">
1639
1654
  <attribute name="table-layout">fixed</attribute>
1640
- <attribute name="width">100%</attribute>
1655
+ <attribute name="width">
1656
+ <xsl:choose>
1657
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
1658
+ <xsl:otherwise>100%</xsl:otherwise>
1659
+ </xsl:choose>
1660
+ </attribute>
1641
1661
  <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1642
1662
  <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1643
1663
 
@@ -1671,16 +1691,25 @@
1671
1691
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1672
1692
  </xsl:if>
1673
1693
 
1674
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1675
- <xsl:choose>
1676
- <xsl:when test=". = 1 or . = 0">
1677
- <fo:table-column column-width="proportional-column-width(2)"/>
1678
- </xsl:when>
1679
- <xsl:otherwise>
1680
- <fo:table-column column-width="proportional-column-width({.})"/>
1681
- </xsl:otherwise>
1682
- </xsl:choose>
1683
- </xsl:for-each>
1694
+ <xsl:choose>
1695
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1696
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
1697
+ <fo:table-column column-width="{@width}"/>
1698
+ </xsl:for-each>
1699
+ </xsl:when>
1700
+ <xsl:otherwise>
1701
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1702
+ <xsl:choose>
1703
+ <xsl:when test=". = 1 or . = 0">
1704
+ <fo:table-column column-width="proportional-column-width(2)"/>
1705
+ </xsl:when>
1706
+ <xsl:otherwise>
1707
+ <fo:table-column column-width="proportional-column-width({.})"/>
1708
+ </xsl:otherwise>
1709
+ </xsl:choose>
1710
+ </xsl:for-each>
1711
+ </xsl:otherwise>
1712
+ </xsl:choose>
1684
1713
 
1685
1714
  <xsl:choose>
1686
1715
  <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
@@ -1693,10 +1722,12 @@
1693
1722
 
1694
1723
  </fo:table>
1695
1724
 
1725
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
1696
1726
  <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1697
1727
  <xsl:call-template name="insertTableFooterInSeparateTable">
1698
1728
  <xsl:with-param name="table_attributes" select="$table_attributes"/>
1699
1729
  <xsl:with-param name="colwidths" select="$colwidths"/>
1730
+ <xsl:with-param name="colgroup" select="$colgroup"/>
1700
1731
  </xsl:call-template>
1701
1732
  </xsl:for-each>
1702
1733
 
@@ -1729,6 +1760,7 @@
1729
1760
  <xsl:if test="normalize-space() != ''">
1730
1761
  <fo:block xsl:use-attribute-sets="table-name-style">
1731
1762
 
1763
+
1732
1764
  <xsl:apply-templates/>
1733
1765
  </fo:block>
1734
1766
  </xsl:if>
@@ -1949,12 +1981,22 @@
1949
1981
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
1950
1982
  <xsl:param name="table_attributes"/>
1951
1983
  <xsl:param name="colwidths"/>
1984
+ <xsl:param name="colgroup"/>
1952
1985
 
1953
1986
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1954
1987
 
1955
1988
  <xsl:if test="$isNoteOrFnExist = 'true'">
1956
1989
 
1957
- <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
1990
+ <xsl:variable name="cols-count">
1991
+ <xsl:choose>
1992
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
1993
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
1994
+ </xsl:when>
1995
+ <xsl:otherwise>
1996
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
1997
+ </xsl:otherwise>
1998
+ </xsl:choose>
1999
+ </xsl:variable>
1958
2000
 
1959
2001
  <fo:table keep-with-previous="always">
1960
2002
  <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
@@ -1972,16 +2014,25 @@
1972
2014
  </xsl:choose>
1973
2015
  </xsl:for-each>
1974
2016
 
1975
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1976
- <xsl:choose>
1977
- <xsl:when test=". = 1 or . = 0">
1978
- <fo:table-column column-width="proportional-column-width(2)"/>
1979
- </xsl:when>
1980
- <xsl:otherwise>
1981
- <fo:table-column column-width="proportional-column-width({.})"/>
1982
- </xsl:otherwise>
1983
- </xsl:choose>
1984
- </xsl:for-each>
2017
+ <xsl:choose>
2018
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
2019
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
2020
+ <fo:table-column column-width="{@width}"/>
2021
+ </xsl:for-each>
2022
+ </xsl:when>
2023
+ <xsl:otherwise>
2024
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2025
+ <xsl:choose>
2026
+ <xsl:when test=". = 1 or . = 0">
2027
+ <fo:table-column column-width="proportional-column-width(2)"/>
2028
+ </xsl:when>
2029
+ <xsl:otherwise>
2030
+ <fo:table-column column-width="proportional-column-width({.})"/>
2031
+ </xsl:otherwise>
2032
+ </xsl:choose>
2033
+ </xsl:for-each>
2034
+ </xsl:otherwise>
2035
+ </xsl:choose>
1985
2036
 
1986
2037
  <fo:table-body>
1987
2038
  <fo:table-row>
@@ -2082,6 +2133,7 @@
2082
2133
 
2083
2134
 
2084
2135
 
2136
+
2085
2137
  <!-- <xsl:if test="$namespace = 'bipm'">
2086
2138
  <xsl:attribute name="height">8mm</xsl:attribute>
2087
2139
  </xsl:if> -->
@@ -2189,7 +2241,8 @@
2189
2241
  </xsl:attribute>
2190
2242
  </xsl:if>
2191
2243
  <xsl:call-template name="display-align"/>
2192
- <fo:block>
2244
+ <fo:block>
2245
+
2193
2246
  <xsl:apply-templates/>
2194
2247
  </fo:block>
2195
2248
  </fo:table-cell>
@@ -2411,7 +2464,13 @@
2411
2464
  <xsl:apply-templates/>
2412
2465
  </fo:inline>
2413
2466
  </xsl:template><xsl:template match="*[local-name()='dl']">
2414
- <fo:block-container margin-left="0mm">
2467
+ <fo:block-container>
2468
+
2469
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2470
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2471
+ </xsl:if>
2472
+
2473
+
2415
2474
  <xsl:if test="parent::*[local-name() = 'note']">
2416
2475
  <xsl:attribute name="margin-left">
2417
2476
  <xsl:choose>
@@ -2421,8 +2480,12 @@
2421
2480
  </xsl:attribute>
2422
2481
 
2423
2482
  </xsl:if>
2424
- <fo:block-container margin-left="0mm">
2425
-
2483
+ <fo:block-container>
2484
+
2485
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2486
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2487
+
2488
+
2426
2489
  <xsl:variable name="parent" select="local-name(..)"/>
2427
2490
 
2428
2491
  <xsl:variable name="key_iso">
@@ -2436,9 +2499,12 @@
2436
2499
  <fo:block margin-bottom="12pt" text-align="left">
2437
2500
 
2438
2501
  <xsl:variable name="title-where">
2439
- <xsl:call-template name="getTitle">
2440
- <xsl:with-param name="name" select="'title-where'"/>
2441
- </xsl:call-template>
2502
+
2503
+
2504
+ <xsl:call-template name="getTitle">
2505
+ <xsl:with-param name="name" select="'title-where'"/>
2506
+ </xsl:call-template>
2507
+
2442
2508
  </xsl:variable>
2443
2509
  <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2444
2510
  <xsl:apply-templates select="*[local-name()='dt']/*"/>
@@ -2454,9 +2520,12 @@
2454
2520
 
2455
2521
 
2456
2522
  <xsl:variable name="title-where">
2457
- <xsl:call-template name="getTitle">
2458
- <xsl:with-param name="name" select="'title-where'"/>
2459
- </xsl:call-template>
2523
+
2524
+
2525
+ <xsl:call-template name="getTitle">
2526
+ <xsl:with-param name="name" select="'title-where'"/>
2527
+ </xsl:call-template>
2528
+
2460
2529
  </xsl:variable>
2461
2530
  <xsl:value-of select="$title-where"/>
2462
2531
  </fo:block>
@@ -2467,9 +2536,12 @@
2467
2536
 
2468
2537
 
2469
2538
  <xsl:variable name="title-key">
2470
- <xsl:call-template name="getTitle">
2471
- <xsl:with-param name="name" select="'title-key'"/>
2472
- </xsl:call-template>
2539
+
2540
+
2541
+ <xsl:call-template name="getTitle">
2542
+ <xsl:with-param name="name" select="'title-key'"/>
2543
+ </xsl:call-template>
2544
+
2473
2545
  </xsl:variable>
2474
2546
  <xsl:value-of select="$title-key"/>
2475
2547
  </fo:block>
@@ -2595,12 +2667,32 @@
2595
2667
  </xsl:otherwise>
2596
2668
  </xsl:choose>
2597
2669
  </xsl:template><xsl:template name="getMaxLength_dt">
2598
- <xsl:for-each select="*[local-name()='dt']">
2599
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
2600
- <xsl:if test="position() = 1">
2601
- <xsl:value-of select="string-length(normalize-space(.))"/>
2602
- </xsl:if>
2603
- </xsl:for-each>
2670
+ <xsl:variable name="lengths">
2671
+ <xsl:for-each select="*[local-name()='dt']">
2672
+ <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
2673
+ <xsl:variable name="attributes">
2674
+ <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
2675
+ <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
2676
+ </xsl:variable>
2677
+ <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
2678
+ </xsl:for-each>
2679
+ </xsl:variable>
2680
+ <xsl:variable name="maxLength">
2681
+ <!-- <xsl:for-each select="*[local-name()='dt']">
2682
+ <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
2683
+ <xsl:if test="position() = 1">
2684
+ <xsl:value-of select="string-length(normalize-space(.))"/>
2685
+ </xsl:if>
2686
+ </xsl:for-each> -->
2687
+ <xsl:for-each select="xalan:nodeset($lengths)/length">
2688
+ <xsl:sort select="." data-type="number" order="descending"/>
2689
+ <xsl:if test="position() = 1">
2690
+ <xsl:value-of select="."/>
2691
+ </xsl:if>
2692
+ </xsl:for-each>
2693
+ </xsl:variable>
2694
+ <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
2695
+ <xsl:value-of select="$maxLength"/>
2604
2696
  </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
2605
2697
  <xsl:param name="key_iso"/>
2606
2698
 
@@ -2712,6 +2804,7 @@
2712
2804
  </fo:inline>
2713
2805
  </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
2714
2806
  <fo:inline font-weight="bold">
2807
+
2715
2808
  <xsl:apply-templates/>
2716
2809
  </fo:inline>
2717
2810
  </xsl:template><xsl:template match="*[local-name()='sup']">
@@ -2751,6 +2844,10 @@
2751
2844
  </xsl:if>
2752
2845
  <xsl:apply-templates/>
2753
2846
  </fo:inline>
2847
+ </xsl:template><xsl:template match="*[local-name()='underline']">
2848
+ <fo:inline text-decoration="underline">
2849
+ <xsl:apply-templates/>
2850
+ </fo:inline>
2754
2851
  </xsl:template><xsl:template match="*[local-name()='del']">
2755
2852
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
2756
2853
  <xsl:apply-templates/>
@@ -3040,7 +3137,18 @@
3040
3137
  <xsl:with-param name="previousRow" select="$newRow"/>
3041
3138
  </xsl:apply-templates>
3042
3139
  </xsl:template><xsl:template name="getLang">
3043
- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3140
+ <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3141
+ <xsl:variable name="language">
3142
+ <xsl:choose>
3143
+ <xsl:when test="$language_current != ''">
3144
+ <xsl:value-of select="$language_current"/>
3145
+ </xsl:when>
3146
+ <xsl:otherwise>
3147
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3148
+ </xsl:otherwise>
3149
+ </xsl:choose>
3150
+ </xsl:variable>
3151
+
3044
3152
  <xsl:choose>
3045
3153
  <xsl:when test="$language = 'English'">en</xsl:when>
3046
3154
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
@@ -3075,6 +3183,7 @@
3075
3183
  <xsl:value-of select="substring($str, 2)"/>
3076
3184
  </xsl:template><xsl:template match="mathml:math">
3077
3185
  <fo:inline font-family="STIX Two Math"> <!-- -->
3186
+
3078
3187
  <xsl:variable name="mathml">
3079
3188
  <xsl:apply-templates select="." mode="mathml"/>
3080
3189
  </xsl:variable>
@@ -3104,6 +3213,7 @@
3104
3213
  </xsl:choose>
3105
3214
  </xsl:variable>
3106
3215
  <fo:inline xsl:use-attribute-sets="link-style">
3216
+
3107
3217
  <xsl:choose>
3108
3218
  <xsl:when test="$target = ''">
3109
3219
  <xsl:apply-templates/>
@@ -3157,10 +3267,14 @@
3157
3267
  </fo:inline>
3158
3268
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
3159
3269
  <xsl:variable name="title-modified">
3160
- <xsl:call-template name="getTitle">
3161
- <xsl:with-param name="name" select="'title-modified'"/>
3162
- </xsl:call-template>
3270
+
3271
+
3272
+ <xsl:call-template name="getTitle">
3273
+ <xsl:with-param name="name" select="'title-modified'"/>
3274
+ </xsl:call-template>
3275
+
3163
3276
  </xsl:variable>
3277
+
3164
3278
  <xsl:choose>
3165
3279
  <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3166
3280
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
@@ -3328,7 +3442,8 @@
3328
3442
  </fo:inline>
3329
3443
  </xsl:if>
3330
3444
  </xsl:template><xsl:template match="*[local-name() = 'figure']">
3331
- <fo:block-container id="{@id}">
3445
+ <fo:block-container id="{@id}">
3446
+
3332
3447
  <fo:block>
3333
3448
  <xsl:apply-templates/>
3334
3449
  </fo:block>
@@ -3384,7 +3499,7 @@
3384
3499
  <xsl:apply-templates mode="bookmarks"/>
3385
3500
  </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
3386
3501
  <xsl:apply-templates select="."/>
3387
- </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3502
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3388
3503
  <xsl:apply-templates mode="bookmarks"/>
3389
3504
  </xsl:template><xsl:template name="addBookmarks">
3390
3505
  <xsl:param name="contents"/>
@@ -3400,6 +3515,8 @@
3400
3515
  <xsl:variable name="bookmark-title_">
3401
3516
  <xsl:call-template name="getLangVersion">
3402
3517
  <xsl:with-param name="lang" select="@lang"/>
3518
+ <xsl:with-param name="doctype" select="@doctype"/>
3519
+ <xsl:with-param name="title" select="@title-part"/>
3403
3520
  </xsl:call-template>
3404
3521
  </xsl:variable>
3405
3522
  <xsl:choose>
@@ -3417,13 +3534,34 @@
3417
3534
  </xsl:choose>
3418
3535
  </fo:bookmark-title>
3419
3536
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
3537
+
3538
+ <xsl:call-template name="insertFigureBookmarks">
3539
+ <xsl:with-param name="contents" select="contents"/>
3540
+ </xsl:call-template>
3541
+
3542
+ <xsl:call-template name="insertTableBookmarks">
3543
+ <xsl:with-param name="contents" select="contents"/>
3544
+ <xsl:with-param name="lang" select="@lang"/>
3545
+ </xsl:call-template>
3546
+
3420
3547
  </fo:bookmark>
3421
3548
 
3422
3549
  </xsl:for-each>
3423
3550
  </xsl:when>
3424
3551
  <xsl:otherwise>
3425
3552
  <xsl:for-each select="xalan:nodeset($contents)/doc">
3553
+
3426
3554
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
3555
+
3556
+ <xsl:call-template name="insertFigureBookmarks">
3557
+ <xsl:with-param name="contents" select="contents"/>
3558
+ </xsl:call-template>
3559
+
3560
+ <xsl:call-template name="insertTableBookmarks">
3561
+ <xsl:with-param name="contents" select="contents"/>
3562
+ <xsl:with-param name="lang" select="@lang"/>
3563
+ </xsl:call-template>
3564
+
3427
3565
  </xsl:for-each>
3428
3566
  </xsl:otherwise>
3429
3567
  </xsl:choose>
@@ -3442,8 +3580,44 @@
3442
3580
 
3443
3581
  </fo:bookmark-tree>
3444
3582
  </xsl:if>
3583
+ </xsl:template><xsl:template name="insertFigureBookmarks">
3584
+ <xsl:param name="contents"/>
3585
+ <xsl:if test="xalan:nodeset($contents)/figure">
3586
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
3587
+ <fo:bookmark-title>Figures</fo:bookmark-title>
3588
+ <xsl:for-each select="xalan:nodeset($contents)/figure">
3589
+ <fo:bookmark internal-destination="{@id}">
3590
+ <fo:bookmark-title>
3591
+ <xsl:value-of select="normalize-space(title)"/>
3592
+ </fo:bookmark-title>
3593
+ </fo:bookmark>
3594
+ </xsl:for-each>
3595
+ </fo:bookmark>
3596
+ </xsl:if>
3597
+ </xsl:template><xsl:template name="insertTableBookmarks">
3598
+ <xsl:param name="contents"/>
3599
+ <xsl:param name="lang"/>
3600
+ <xsl:if test="xalan:nodeset($contents)/table">
3601
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
3602
+ <fo:bookmark-title>
3603
+ <xsl:choose>
3604
+ <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
3605
+ <xsl:otherwise>Tables</xsl:otherwise>
3606
+ </xsl:choose>
3607
+ </fo:bookmark-title>
3608
+ <xsl:for-each select="xalan:nodeset($contents)/table">
3609
+ <fo:bookmark internal-destination="{@id}">
3610
+ <fo:bookmark-title>
3611
+ <xsl:value-of select="normalize-space(title)"/>
3612
+ </fo:bookmark-title>
3613
+ </fo:bookmark>
3614
+ </xsl:for-each>
3615
+ </fo:bookmark>
3616
+ </xsl:if>
3445
3617
  </xsl:template><xsl:template name="getLangVersion">
3446
3618
  <xsl:param name="lang"/>
3619
+ <xsl:param name="doctype" select="''"/>
3620
+ <xsl:param name="title" select="''"/>
3447
3621
  <xsl:choose>
3448
3622
  <xsl:when test="$lang = 'en'">
3449
3623
 
@@ -3931,7 +4105,8 @@
3931
4105
  <fo:block-container margin-left="0mm">
3932
4106
 
3933
4107
  <fo:block xsl:use-attribute-sets="quote-style">
3934
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
4108
+ <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
4109
+ <xsl:apply-templates select="./*[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
3935
4110
  </fo:block>
3936
4111
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3937
4112
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -4055,9 +4230,12 @@
4055
4230
  </fo:block>
4056
4231
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
4057
4232
  <xsl:variable name="title-deprecated">
4058
- <xsl:call-template name="getTitle">
4059
- <xsl:with-param name="name" select="'title-deprecated'"/>
4060
- </xsl:call-template>
4233
+
4234
+
4235
+ <xsl:call-template name="getTitle">
4236
+ <xsl:with-param name="name" select="'title-deprecated'"/>
4237
+ </xsl:call-template>
4238
+
4061
4239
  </xsl:variable>
4062
4240
  <fo:block xsl:use-attribute-sets="deprecates-style">
4063
4241
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -4113,7 +4291,7 @@
4113
4291
  <fo:block id="{@id}">
4114
4292
  <xsl:apply-templates/>
4115
4293
  </fo:block>
4116
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4294
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4117
4295
 
4118
4296
  <fo:block id="{@id}">
4119
4297
  <xsl:apply-templates/>
@@ -4175,7 +4353,8 @@
4175
4353
  <fo:table-column column-width="107mm"/>
4176
4354
  <fo:table-column column-width="15mm"/>
4177
4355
  <fo:table-body>
4178
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
4356
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
4357
+
4179
4358
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
4180
4359
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
4181
4360
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -4193,6 +4372,10 @@
4193
4372
  <fo:block><xsl:apply-templates/></fo:block>
4194
4373
  </fo:table-cell>
4195
4374
  </xsl:template><xsl:template name="processBibitem">
4375
+
4376
+
4377
+ <!-- end BIPM bibitem processing-->
4378
+
4196
4379
 
4197
4380
 
4198
4381
 
@@ -4251,6 +4434,8 @@
4251
4434
  <xsl:value-of select="translate(.,'. ','')"/>
4252
4435
  </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
4253
4436
  <xsl:value-of select="substring(.,1,1)"/>
4437
+ </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
4438
+ <fo:inline><xsl:apply-templates/></fo:inline>
4254
4439
  </xsl:template><xsl:template name="convertDate">
4255
4440
  <xsl:param name="date"/>
4256
4441
  <xsl:param name="format" select="'short'"/>
@@ -4430,13 +4615,22 @@
4430
4615
  </xsl:template><xsl:template name="split">
4431
4616
  <xsl:param name="pText" select="."/>
4432
4617
  <xsl:param name="sep" select="','"/>
4618
+ <xsl:param name="normalize-space" select="'true'"/>
4433
4619
  <xsl:if test="string-length($pText) &gt;0">
4434
4620
  <item>
4435
- <xsl:value-of select="normalize-space(substring-before(concat($pText, ','), $sep))"/>
4621
+ <xsl:choose>
4622
+ <xsl:when test="$normalize-space = 'true'">
4623
+ <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
4624
+ </xsl:when>
4625
+ <xsl:otherwise>
4626
+ <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
4627
+ </xsl:otherwise>
4628
+ </xsl:choose>
4436
4629
  </item>
4437
4630
  <xsl:call-template name="split">
4438
4631
  <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
4439
4632
  <xsl:with-param name="sep" select="$sep"/>
4633
+ <xsl:with-param name="normalize-space" select="$normalize-space"/>
4440
4634
  </xsl:call-template>
4441
4635
  </xsl:if>
4442
4636
  </xsl:template><xsl:template name="getDocumentId">
@@ -4502,4 +4696,28 @@
4502
4696
  <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
4503
4697
  </xsl:call-template>
4504
4698
  </xsl:if>
4699
+ </xsl:template><xsl:template name="repeat">
4700
+ <xsl:param name="char" select="'*'"/>
4701
+ <xsl:param name="count"/>
4702
+ <xsl:if test="$count &gt; 0">
4703
+ <xsl:value-of select="$char"/>
4704
+ <xsl:call-template name="repeat">
4705
+ <xsl:with-param name="char" select="$char"/>
4706
+ <xsl:with-param name="count" select="$count - 1"/>
4707
+ </xsl:call-template>
4708
+ </xsl:if>
4709
+ </xsl:template><xsl:template name="getLocalizedString">
4710
+ <xsl:param name="key"/>
4711
+
4712
+ <xsl:variable name="curr_lang">
4713
+ <xsl:call-template name="getLang"/>
4714
+ </xsl:variable>
4715
+
4716
+ <xsl:choose>
4717
+ <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
4718
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
4719
+ </xsl:when>
4720
+ <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
4721
+ </xsl:choose>
4722
+
4505
4723
  </xsl:template></xsl:stylesheet>