metanorma-un 0.5.4 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,7 +37,7 @@
37
37
 
38
38
  <xsl:template match="/">
39
39
  <xsl:call-template name="namespaceCheck"/>
40
- <fo:root font-family="Times New Roman, STIX2Math, HanSans" font-size="10pt" xml:lang="{$lang}">
40
+ <fo:root font-family="Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
41
41
  <fo:layout-master-set>
42
42
  <!-- Cover page -->
43
43
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -162,7 +162,40 @@
162
162
  <fo:block margin-left="-20mm">
163
163
  <fo:block font-size="17pt" margin-bottom="16pt">
164
164
  <xsl:value-of select="$title"/>
165
+
166
+ <xsl:for-each select="/un:un-standard/un:bibdata/un:note[@type = 'title-footnote']">
167
+ <xsl:variable name="number" select="position()"/>
168
+ <fo:inline font-size="14pt" baseline-shift="15%" font-weight="normal">
169
+ <xsl:if test="$number = 1">
170
+ <xsl:text> </xsl:text>
171
+ </xsl:if>
172
+ <fo:basic-link internal-destination="title-footnote_{$number}" fox:alt-text="title footnote">
173
+ <xsl:call-template name="repeat">
174
+ <xsl:with-param name="char" select="'*'"/>
175
+ <xsl:with-param name="count" select="$number"/>
176
+ </xsl:call-template>
177
+ </fo:basic-link>
178
+ <xsl:if test="position() != last()"><fo:inline baseline-shift="20%">,</fo:inline></xsl:if>
179
+ </fo:inline>
180
+ </xsl:for-each>
181
+
182
+ <xsl:for-each select="/un:un-standard/un:bibdata/un:note[@type = 'title-footnote']">
183
+ <xsl:variable name="number" select="position()"/>
184
+ <fo:block id="title-footnote_{$number}" font-size="14pt" font-weight="normal">
185
+ <xsl:if test="$number = 1">
186
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
187
+ </xsl:if>
188
+ <xsl:call-template name="repeat">
189
+ <xsl:with-param name="char" select="'*'"/>
190
+ <xsl:with-param name="count" select="$number"/>
191
+ </xsl:call-template>
192
+ <xsl:text> </xsl:text>
193
+ <xsl:apply-templates/>
194
+ </fo:block>
195
+ </xsl:for-each>
196
+
165
197
  </fo:block>
198
+
166
199
  <fo:block font-size="14pt" margin-bottom="16pt">
167
200
  <xsl:value-of select="/un:un-standard/un:bibdata/un:title[@language = 'en' and @type = 'subtitle']"/>
168
201
  </fo:block>
@@ -583,7 +616,7 @@
583
616
  <xsl:when test="ancestor::*[un:annex]">
584
617
  <xsl:choose>
585
618
  <xsl:when test="$level = 1">
586
- <xsl:number format="a)"/>
619
+ <xsl:number format="a)" lang="en"/>
587
620
  </xsl:when>
588
621
  <xsl:when test="$level = 2">
589
622
  <xsl:number format="i)"/>
@@ -1191,7 +1224,10 @@
1191
1224
 
1192
1225
 
1193
1226
  </title-toc>
1194
- <title-toc lang="fr">Sommaire</title-toc>
1227
+ <title-toc lang="fr">
1228
+
1229
+
1230
+ </title-toc>
1195
1231
 
1196
1232
  <title-toc lang="zh">Contents</title-toc>
1197
1233
 
@@ -1211,13 +1247,22 @@
1211
1247
  <title-part lang="en">
1212
1248
 
1213
1249
 
1250
+
1214
1251
  </title-part>
1215
1252
  <title-part lang="fr">
1216
1253
 
1217
1254
 
1255
+
1218
1256
  </title-part>
1219
1257
  <title-part lang="zh">第 # 部分:</title-part>
1220
1258
 
1259
+ <title-subpart lang="en">
1260
+
1261
+ </title-subpart>
1262
+ <title-subpart lang="fr">
1263
+
1264
+ </title-subpart>
1265
+
1221
1266
  <title-modified lang="en">modified</title-modified>
1222
1267
  <title-modified lang="fr">modifiée</title-modified>
1223
1268
 
@@ -1279,10 +1324,19 @@
1279
1324
 
1280
1325
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
1281
1326
  <xsl:param name="name"/>
1282
- <xsl:variable name="lang">
1283
- <xsl:call-template name="getLang"/>
1327
+ <xsl:param name="lang"/>
1328
+ <xsl:variable name="lang_">
1329
+ <xsl:choose>
1330
+ <xsl:when test="$lang != ''">
1331
+ <xsl:value-of select="$lang"/>
1332
+ </xsl:when>
1333
+ <xsl:otherwise>
1334
+ <xsl:call-template name="getLang"/>
1335
+ </xsl:otherwise>
1336
+ </xsl:choose>
1284
1337
  </xsl:variable>
1285
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
1338
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
1339
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
1286
1340
  <xsl:choose>
1287
1341
  <xsl:when test="normalize-space($title_) != ''">
1288
1342
  <xsl:value-of select="$title_"/>
@@ -1427,6 +1481,7 @@
1427
1481
 
1428
1482
 
1429
1483
 
1484
+
1430
1485
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1431
1486
 
1432
1487
 
@@ -1462,6 +1517,7 @@
1462
1517
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1463
1518
 
1464
1519
 
1520
+
1465
1521
  </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
1466
1522
 
1467
1523
 
@@ -1528,6 +1584,7 @@
1528
1584
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1529
1585
 
1530
1586
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1587
+
1531
1588
 
1532
1589
 
1533
1590
 
@@ -1649,6 +1706,10 @@
1649
1706
 
1650
1707
 
1651
1708
 
1709
+ <!-- <xsl:if test="$namespace = 'bipm'">
1710
+ <fo:block>&#xA0;</fo:block>
1711
+ </xsl:if> -->
1712
+
1652
1713
  <!-- $namespace = 'iso' or -->
1653
1714
 
1654
1715
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -1681,11 +1742,14 @@
1681
1742
 
1682
1743
 
1683
1744
  <xsl:variable name="colwidths">
1684
- <xsl:call-template name="calculate-column-widths">
1685
- <xsl:with-param name="cols-count" select="$cols-count"/>
1686
- <xsl:with-param name="table" select="$simple-table"/>
1687
- </xsl:call-template>
1745
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
1746
+ <xsl:call-template name="calculate-column-widths">
1747
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1748
+ <xsl:with-param name="table" select="$simple-table"/>
1749
+ </xsl:call-template>
1750
+ </xsl:if>
1688
1751
  </xsl:variable>
1752
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1689
1753
 
1690
1754
  <!-- <xsl:variable name="colwidths2">
1691
1755
  <xsl:call-template name="calculate-column-widths">
@@ -1707,32 +1771,102 @@
1707
1771
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1708
1772
 
1709
1773
 
1710
-
1774
+
1775
+
1711
1776
 
1712
1777
  <xsl:attribute name="margin-bottom">18pt</xsl:attribute>
1778
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
1779
+
1713
1780
 
1714
1781
 
1715
-
1782
+
1716
1783
 
1717
1784
 
1718
1785
 
1719
- <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
1720
-
1721
-
1786
+
1787
+
1788
+
1789
+
1790
+ <xsl:variable name="table_attributes">
1791
+ <attribute name="table-layout">fixed</attribute>
1792
+ <attribute name="width">100%</attribute>
1793
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1794
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1722
1795
 
1723
1796
 
1724
1797
 
1725
1798
 
1799
+
1800
+
1726
1801
 
1802
+ <attribute name="border-top">0.5pt solid black</attribute>
1803
+
1727
1804
 
1728
- <xsl:attribute name="border-top">0.5pt solid black</xsl:attribute>
1729
- <xsl:attribute name="font-size">8pt</xsl:attribute>
1805
+
1730
1806
 
1807
+ </xsl:variable>
1808
+
1809
+
1810
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
1731
1811
 
1812
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1813
+ <xsl:attribute name="{@name}">
1814
+ <xsl:value-of select="."/>
1815
+ </xsl:attribute>
1816
+ </xsl:for-each>
1732
1817
 
1818
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
1819
+ <xsl:if test="$isNoteOrFnExist = 'true'">
1820
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1821
+ </xsl:if>
1733
1822
 
1823
+ <xsl:choose>
1824
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1825
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
1826
+ <fo:table-column column-width="{@width}"/>
1827
+ </xsl:for-each>
1828
+ </xsl:when>
1829
+ <xsl:otherwise>
1830
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1831
+ <xsl:choose>
1832
+ <xsl:when test=". = 1 or . = 0">
1833
+ <fo:table-column column-width="proportional-column-width(2)"/>
1834
+ </xsl:when>
1835
+ <xsl:otherwise>
1836
+ <fo:table-column column-width="proportional-column-width({.})"/>
1837
+ </xsl:otherwise>
1838
+ </xsl:choose>
1839
+ </xsl:for-each>
1840
+ </xsl:otherwise>
1841
+ </xsl:choose>
1734
1842
 
1843
+ <xsl:choose>
1844
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
1845
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1846
+ </xsl:when>
1847
+ <xsl:otherwise>
1848
+ <xsl:apply-templates/>
1849
+ </xsl:otherwise>
1850
+ </xsl:choose>
1735
1851
 
1852
+ </fo:table>
1853
+
1854
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
1855
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1856
+ <xsl:call-template name="insertTableFooterInSeparateTable">
1857
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
1858
+ <xsl:with-param name="colwidths" select="$colwidths"/>
1859
+ <xsl:with-param name="colgroup" select="$colgroup"/>
1860
+ </xsl:call-template>
1861
+ </xsl:for-each>
1862
+
1863
+ <!-- insert footer as table -->
1864
+ <!-- <fo:table>
1865
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1866
+ <xsl:attribute name="{@name}">
1867
+ <xsl:value-of select="."/>
1868
+ </xsl:attribute>
1869
+ </xsl:for-each>
1736
1870
 
1737
1871
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1738
1872
  <xsl:choose>
@@ -1744,17 +1878,7 @@
1744
1878
  </xsl:otherwise>
1745
1879
  </xsl:choose>
1746
1880
  </xsl:for-each>
1747
-
1748
- <xsl:choose>
1749
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
1750
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1751
- </xsl:when>
1752
- <xsl:otherwise>
1753
- <xsl:apply-templates/>
1754
- </xsl:otherwise>
1755
- </xsl:choose>
1756
-
1757
- </fo:table>
1881
+ </fo:table>-->
1758
1882
 
1759
1883
 
1760
1884
 
@@ -1765,6 +1889,7 @@
1765
1889
  <xsl:if test="normalize-space() != ''">
1766
1890
  <fo:block xsl:use-attribute-sets="table-name-style">
1767
1891
 
1892
+
1768
1893
  <xsl:apply-templates/>
1769
1894
  </fo:block>
1770
1895
  </xsl:if>
@@ -1820,6 +1945,13 @@
1820
1945
  <xsl:for-each select="xalan:nodeset($table)//tr">
1821
1946
  <xsl:variable name="td_text">
1822
1947
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
1948
+
1949
+ <!-- <xsl:if test="$namespace = 'bipm'">
1950
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
1951
+ <word><xsl:value-of select="normalize-space(.)"/></word>
1952
+ </xsl:for-each>
1953
+ </xsl:if> -->
1954
+
1823
1955
  </xsl:variable>
1824
1956
  <xsl:variable name="words">
1825
1957
  <xsl:variable name="string_with_added_zerospaces">
@@ -1879,11 +2011,14 @@
1879
2011
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
1880
2012
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
1881
2013
  <xsl:value-of select="@target"/>
2014
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2015
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
2016
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
1882
2017
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
1883
2018
  <xsl:param name="cols-count"/>
1884
2019
  <!-- font-weight="bold" -->
1885
2020
  <fo:table-header>
1886
-
2021
+
1887
2022
  <xsl:apply-templates/>
1888
2023
  </fo:table-header>
1889
2024
  </xsl:template><xsl:template name="table-header-title">
@@ -1908,6 +2043,13 @@
1908
2043
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
1909
2044
  <xsl:apply-templates/>
1910
2045
  </xsl:template><xsl:template name="insertTableFooter">
2046
+ <xsl:param name="cols-count"/>
2047
+ <xsl:if test="../*[local-name()='tfoot']">
2048
+ <fo:table-footer>
2049
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2050
+ </fo:table-footer>
2051
+ </xsl:if>
2052
+ </xsl:template><xsl:template name="insertTableFooter2">
1911
2053
  <xsl:param name="cols-count"/>
1912
2054
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1913
2055
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -1929,11 +2071,29 @@
1929
2071
  <!-- fn will be processed inside 'note' processing -->
1930
2072
 
1931
2073
 
2074
+
2075
+
2076
+
2077
+
1932
2078
  <!-- except gb -->
1933
2079
 
1934
2080
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1935
2081
 
1936
2082
 
2083
+ <!-- show Note under table in preface (ex. abstract) sections -->
2084
+ <!-- empty, because notes show at page side in main sections -->
2085
+ <!-- <xsl:if test="$namespace = 'bipm'">
2086
+ <xsl:choose>
2087
+ <xsl:when test="ancestor::*[local-name()='preface']">
2088
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2089
+ </xsl:when>
2090
+ <xsl:otherwise>
2091
+ <fo:block/>
2092
+ </xsl:otherwise>
2093
+ </xsl:choose>
2094
+ </xsl:if> -->
2095
+
2096
+
1937
2097
  <!-- horizontal row separator -->
1938
2098
 
1939
2099
 
@@ -1947,6 +2107,107 @@
1947
2107
  </fo:table-footer>
1948
2108
 
1949
2109
  </xsl:if>
2110
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
2111
+ <xsl:param name="table_attributes"/>
2112
+ <xsl:param name="colwidths"/>
2113
+ <xsl:param name="colgroup"/>
2114
+
2115
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2116
+
2117
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2118
+
2119
+ <xsl:variable name="cols-count">
2120
+ <xsl:choose>
2121
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
2122
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
2123
+ </xsl:when>
2124
+ <xsl:otherwise>
2125
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
2126
+ </xsl:otherwise>
2127
+ </xsl:choose>
2128
+ </xsl:variable>
2129
+
2130
+ <fo:table keep-with-previous="always">
2131
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2132
+ <xsl:choose>
2133
+ <xsl:when test="@name = 'border-top'">
2134
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2135
+ </xsl:when>
2136
+ <xsl:when test="@name = 'border'">
2137
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2138
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
2139
+ </xsl:when>
2140
+ <xsl:otherwise>
2141
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2142
+ </xsl:otherwise>
2143
+ </xsl:choose>
2144
+ </xsl:for-each>
2145
+
2146
+ <xsl:choose>
2147
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
2148
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
2149
+ <fo:table-column column-width="{@width}"/>
2150
+ </xsl:for-each>
2151
+ </xsl:when>
2152
+ <xsl:otherwise>
2153
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2154
+ <xsl:choose>
2155
+ <xsl:when test=". = 1 or . = 0">
2156
+ <fo:table-column column-width="proportional-column-width(2)"/>
2157
+ </xsl:when>
2158
+ <xsl:otherwise>
2159
+ <fo:table-column column-width="proportional-column-width({.})"/>
2160
+ </xsl:otherwise>
2161
+ </xsl:choose>
2162
+ </xsl:for-each>
2163
+ </xsl:otherwise>
2164
+ </xsl:choose>
2165
+
2166
+ <fo:table-body>
2167
+ <fo:table-row>
2168
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2169
+
2170
+
2171
+
2172
+ <!-- fn will be processed inside 'note' processing -->
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+ <!-- except gb -->
2181
+
2182
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2183
+
2184
+
2185
+ <!-- <xsl:if test="$namespace = 'bipm'">
2186
+ <xsl:choose>
2187
+ <xsl:when test="ancestor::*[local-name()='preface']">
2188
+ show Note under table in preface (ex. abstract) sections
2189
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2190
+ </xsl:when>
2191
+ <xsl:otherwise>
2192
+ empty, because notes show at page side in main sections
2193
+ <fo:block/>
2194
+ </xsl:otherwise>
2195
+ </xsl:choose>
2196
+ </xsl:if> -->
2197
+
2198
+
2199
+ <!-- horizontal row separator -->
2200
+
2201
+
2202
+ <!-- fn processing -->
2203
+ <xsl:call-template name="fn_display"/>
2204
+
2205
+ </fo:table-cell>
2206
+ </fo:table-row>
2207
+ </fo:table-body>
2208
+
2209
+ </fo:table>
2210
+ </xsl:if>
1950
2211
  </xsl:template><xsl:template match="*[local-name()='tbody']">
1951
2212
 
1952
2213
  <xsl:variable name="cols-count">
@@ -2003,8 +2264,12 @@
2003
2264
  <xsl:if test="not(*[local-name()='th'])">
2004
2265
  <xsl:attribute name="min-height">8mm</xsl:attribute>
2005
2266
  </xsl:if>
2006
-
2007
-
2267
+
2268
+
2269
+
2270
+ <!-- <xsl:if test="$namespace = 'bipm'">
2271
+ <xsl:attribute name="height">8mm</xsl:attribute>
2272
+ </xsl:if> -->
2008
2273
 
2009
2274
  <xsl:apply-templates/>
2010
2275
  </fo:table-row>
@@ -2038,6 +2303,7 @@
2038
2303
  <xsl:attribute name="text-indent">0mm</xsl:attribute>
2039
2304
 
2040
2305
 
2306
+
2041
2307
  <xsl:if test="@colspan">
2042
2308
  <xsl:attribute name="number-columns-spanned">
2043
2309
  <xsl:value-of select="@colspan"/>
@@ -2077,7 +2343,7 @@
2077
2343
 
2078
2344
 
2079
2345
 
2080
-
2346
+
2081
2347
 
2082
2348
 
2083
2349
 
@@ -2092,6 +2358,7 @@
2092
2358
  <xsl:attribute name="text-indent">0mm</xsl:attribute>
2093
2359
 
2094
2360
 
2361
+
2095
2362
  <xsl:if test="@colspan">
2096
2363
  <xsl:attribute name="number-columns-spanned">
2097
2364
  <xsl:value-of select="@colspan"/>
@@ -2103,7 +2370,8 @@
2103
2370
  </xsl:attribute>
2104
2371
  </xsl:if>
2105
2372
  <xsl:call-template name="display-align"/>
2106
- <fo:block>
2373
+ <fo:block>
2374
+
2107
2375
  <xsl:apply-templates/>
2108
2376
  </fo:block>
2109
2377
  </fo:table-cell>
@@ -2115,6 +2383,8 @@
2115
2383
 
2116
2384
 
2117
2385
 
2386
+
2387
+
2118
2388
  <fo:inline padding-right="2mm">
2119
2389
 
2120
2390
 
@@ -2129,10 +2399,11 @@
2129
2399
  </fo:inline> -->
2130
2400
  </xsl:if>
2131
2401
 
2132
-
2402
+
2133
2403
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2134
2404
 
2135
2405
  </fo:inline>
2406
+
2136
2407
  <xsl:apply-templates mode="process"/>
2137
2408
  </fo:block>
2138
2409
 
@@ -2156,6 +2427,7 @@
2156
2427
 
2157
2428
 
2158
2429
 
2430
+
2159
2431
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2160
2432
 
2161
2433
  <xsl:attribute name="vertical-align">super</xsl:attribute>
@@ -2165,12 +2437,15 @@
2165
2437
 
2166
2438
 
2167
2439
 
2440
+
2168
2441
  <xsl:value-of select="@reference"/>
2169
2442
 
2443
+
2170
2444
  </fo:inline>
2171
2445
  <fo:inline>
2172
2446
 
2173
- <xsl:apply-templates/>
2447
+ <!-- <xsl:apply-templates /> -->
2448
+ <xsl:copy-of select="./node()"/>
2174
2449
  </fo:inline>
2175
2450
  </fo:block>
2176
2451
  </xsl:if>
@@ -2207,7 +2482,20 @@
2207
2482
  <xsl:variable name="following_dl_colwidths">
2208
2483
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2209
2484
  <xsl:variable name="html-table">
2210
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2485
+ <xsl:variable name="doc_ns">
2486
+
2487
+ </xsl:variable>
2488
+ <xsl:variable name="ns">
2489
+ <xsl:choose>
2490
+ <xsl:when test="normalize-space($doc_ns) != ''">
2491
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2492
+ </xsl:when>
2493
+ <xsl:otherwise>
2494
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2495
+ </xsl:otherwise>
2496
+ </xsl:choose>
2497
+ </xsl:variable>
2498
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2211
2499
  <xsl:element name="{$ns}:table">
2212
2500
  <xsl:for-each select="*[local-name() = 'dl'][1]">
2213
2501
  <tbody>
@@ -2272,7 +2560,8 @@
2272
2560
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
2273
2561
  </xsl:if>
2274
2562
 
2275
- <xsl:apply-templates/>
2563
+ <!-- <xsl:apply-templates /> -->
2564
+ <xsl:copy-of select="./node()"/>
2276
2565
  </fo:block>
2277
2566
  </fo:table-cell>
2278
2567
  </fo:table-row>
@@ -2291,9 +2580,12 @@
2291
2580
 
2292
2581
 
2293
2582
 
2583
+
2294
2584
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
2295
2585
 
2586
+
2296
2587
  <xsl:value-of select="@reference"/>
2588
+
2297
2589
  </fo:basic-link>
2298
2590
  </fo:inline>
2299
2591
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -2301,7 +2593,11 @@
2301
2593
  <xsl:apply-templates/>
2302
2594
  </fo:inline>
2303
2595
  </xsl:template><xsl:template match="*[local-name()='dl']">
2304
- <fo:block-container margin-left="0mm">
2596
+ <fo:block-container>
2597
+
2598
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2599
+
2600
+
2305
2601
  <xsl:if test="parent::*[local-name() = 'note']">
2306
2602
  <xsl:attribute name="margin-left">
2307
2603
  <xsl:choose>
@@ -2311,8 +2607,11 @@
2311
2607
  </xsl:attribute>
2312
2608
 
2313
2609
  </xsl:if>
2314
- <fo:block-container margin-left="0mm">
2315
-
2610
+ <fo:block-container>
2611
+
2612
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2613
+
2614
+
2316
2615
  <xsl:variable name="parent" select="local-name(..)"/>
2317
2616
 
2318
2617
  <xsl:variable name="key_iso">
@@ -2326,9 +2625,12 @@
2326
2625
  <fo:block margin-bottom="12pt" text-align="left">
2327
2626
 
2328
2627
  <xsl:variable name="title-where">
2329
- <xsl:call-template name="getTitle">
2330
- <xsl:with-param name="name" select="'title-where'"/>
2331
- </xsl:call-template>
2628
+
2629
+
2630
+ <xsl:call-template name="getTitle">
2631
+ <xsl:with-param name="name" select="'title-where'"/>
2632
+ </xsl:call-template>
2633
+
2332
2634
  </xsl:variable>
2333
2635
  <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2334
2636
  <xsl:apply-templates select="*[local-name()='dt']/*"/>
@@ -2344,9 +2646,12 @@
2344
2646
 
2345
2647
 
2346
2648
  <xsl:variable name="title-where">
2347
- <xsl:call-template name="getTitle">
2348
- <xsl:with-param name="name" select="'title-where'"/>
2349
- </xsl:call-template>
2649
+
2650
+
2651
+ <xsl:call-template name="getTitle">
2652
+ <xsl:with-param name="name" select="'title-where'"/>
2653
+ </xsl:call-template>
2654
+
2350
2655
  </xsl:variable>
2351
2656
  <xsl:value-of select="$title-where"/>
2352
2657
  </fo:block>
@@ -2357,9 +2662,12 @@
2357
2662
 
2358
2663
 
2359
2664
  <xsl:variable name="title-key">
2360
- <xsl:call-template name="getTitle">
2361
- <xsl:with-param name="name" select="'title-key'"/>
2362
- </xsl:call-template>
2665
+
2666
+
2667
+ <xsl:call-template name="getTitle">
2668
+ <xsl:with-param name="name" select="'title-key'"/>
2669
+ </xsl:call-template>
2670
+
2363
2671
  </xsl:variable>
2364
2672
  <xsl:value-of select="$title-key"/>
2365
2673
  </fo:block>
@@ -2391,7 +2699,20 @@
2391
2699
  </xsl:choose>
2392
2700
  <!-- create virtual html table for dl/[dt and dd] -->
2393
2701
  <xsl:variable name="html-table">
2394
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2702
+ <xsl:variable name="doc_ns">
2703
+
2704
+ </xsl:variable>
2705
+ <xsl:variable name="ns">
2706
+ <xsl:choose>
2707
+ <xsl:when test="normalize-space($doc_ns) != ''">
2708
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2709
+ </xsl:when>
2710
+ <xsl:otherwise>
2711
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2712
+ </xsl:otherwise>
2713
+ </xsl:choose>
2714
+ </xsl:variable>
2715
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2395
2716
  <xsl:element name="{$ns}:table">
2396
2717
  <tbody>
2397
2718
  <xsl:apply-templates mode="dl"/>
@@ -2535,6 +2856,7 @@
2535
2856
 
2536
2857
 
2537
2858
 
2859
+
2538
2860
  <xsl:apply-templates/>
2539
2861
  <!-- <xsl:if test="$namespace = 'gb'">
2540
2862
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -2588,6 +2910,7 @@
2588
2910
  </fo:inline>
2589
2911
  </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
2590
2912
  <fo:inline font-weight="bold">
2913
+
2591
2914
  <xsl:apply-templates/>
2592
2915
  </fo:inline>
2593
2916
  </xsl:template><xsl:template match="*[local-name()='sup']">
@@ -2601,18 +2924,18 @@
2601
2924
  </xsl:template><xsl:template match="*[local-name()='tt']">
2602
2925
  <fo:inline xsl:use-attribute-sets="tt-style">
2603
2926
  <xsl:variable name="_font-size">
2604
-
2605
-
2606
-
2607
2927
 
2608
2928
 
2609
2929
 
2610
2930
 
2611
2931
 
2612
2932
 
2613
-
2614
2933
 
2615
-
2934
+
2935
+
2936
+
2937
+
2938
+
2616
2939
 
2617
2940
 
2618
2941
  </xsl:variable>
@@ -2916,7 +3239,18 @@
2916
3239
  <xsl:with-param name="previousRow" select="$newRow"/>
2917
3240
  </xsl:apply-templates>
2918
3241
  </xsl:template><xsl:template name="getLang">
2919
- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3242
+ <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3243
+ <xsl:variable name="language">
3244
+ <xsl:choose>
3245
+ <xsl:when test="$language_current != ''">
3246
+ <xsl:value-of select="$language_current"/>
3247
+ </xsl:when>
3248
+ <xsl:otherwise>
3249
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3250
+ </xsl:otherwise>
3251
+ </xsl:choose>
3252
+ </xsl:variable>
3253
+
2920
3254
  <xsl:choose>
2921
3255
  <xsl:when test="$language = 'English'">en</xsl:when>
2922
3256
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
@@ -2950,7 +3284,8 @@
2950
3284
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
2951
3285
  <xsl:value-of select="substring($str, 2)"/>
2952
3286
  </xsl:template><xsl:template match="mathml:math">
2953
- <fo:inline font-family="STIX2Math">
3287
+ <fo:inline font-family="STIX Two Math"> <!-- -->
3288
+
2954
3289
  <xsl:variable name="mathml">
2955
3290
  <xsl:apply-templates select="." mode="mathml"/>
2956
3291
  </xsl:variable>
@@ -2980,6 +3315,7 @@
2980
3315
  </xsl:choose>
2981
3316
  </xsl:variable>
2982
3317
  <fo:inline xsl:use-attribute-sets="link-style">
3318
+
2983
3319
  <xsl:choose>
2984
3320
  <xsl:when test="$target = ''">
2985
3321
  <xsl:apply-templates/>
@@ -3033,10 +3369,14 @@
3033
3369
  </fo:inline>
3034
3370
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
3035
3371
  <xsl:variable name="title-modified">
3036
- <xsl:call-template name="getTitle">
3037
- <xsl:with-param name="name" select="'title-modified'"/>
3038
- </xsl:call-template>
3372
+
3373
+
3374
+ <xsl:call-template name="getTitle">
3375
+ <xsl:with-param name="name" select="'title-modified'"/>
3376
+ </xsl:call-template>
3377
+
3039
3378
  </xsl:variable>
3379
+
3040
3380
  <xsl:choose>
3041
3381
  <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3042
3382
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
@@ -3044,7 +3384,7 @@
3044
3384
  <xsl:apply-templates/>
3045
3385
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3046
3386
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3047
-
3387
+
3048
3388
  <xsl:apply-templates/>
3049
3389
  </fo:basic-link>
3050
3390
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -3106,6 +3446,8 @@
3106
3446
 
3107
3447
 
3108
3448
 
3449
+
3450
+
3109
3451
  <fo:inline xsl:use-attribute-sets="note-name-style">
3110
3452
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3111
3453
  </fo:inline>
@@ -3198,7 +3540,8 @@
3198
3540
  </fo:inline>
3199
3541
  </xsl:if>
3200
3542
  </xsl:template><xsl:template match="*[local-name() = 'figure']">
3201
- <fo:block-container id="{@id}">
3543
+ <fo:block-container id="{@id}">
3544
+
3202
3545
  <fo:block>
3203
3546
  <xsl:apply-templates/>
3204
3547
  </fo:block>
@@ -3249,7 +3592,7 @@
3249
3592
  <xsl:apply-templates mode="bookmarks"/>
3250
3593
  </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
3251
3594
  <xsl:apply-templates select="."/>
3252
- </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3595
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3253
3596
  <xsl:apply-templates mode="bookmarks"/>
3254
3597
  </xsl:template><xsl:template name="addBookmarks">
3255
3598
  <xsl:param name="contents"/>
@@ -3263,18 +3606,9 @@
3263
3606
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
3264
3607
  <fo:bookmark-title>
3265
3608
  <xsl:variable name="bookmark-title_">
3266
- <xsl:choose>
3267
- <xsl:when test="@lang = 'en'">
3268
-
3269
-
3270
- </xsl:when>
3271
- <xsl:when test="@lang = 'fr'">
3272
-
3273
-
3274
- </xsl:when>
3275
- <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
3276
- <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
3277
- </xsl:choose>
3609
+ <xsl:call-template name="getLangVersion">
3610
+ <xsl:with-param name="lang" select="@lang"/>
3611
+ </xsl:call-template>
3278
3612
  </xsl:variable>
3279
3613
  <xsl:choose>
3280
3614
  <xsl:when test="normalize-space($bookmark-title_) != ''">
@@ -3316,6 +3650,20 @@
3316
3650
 
3317
3651
  </fo:bookmark-tree>
3318
3652
  </xsl:if>
3653
+ </xsl:template><xsl:template name="getLangVersion">
3654
+ <xsl:param name="lang"/>
3655
+ <xsl:choose>
3656
+ <xsl:when test="$lang = 'en'">
3657
+
3658
+
3659
+ </xsl:when>
3660
+ <xsl:when test="$lang = 'fr'">
3661
+
3662
+
3663
+ </xsl:when>
3664
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
3665
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
3666
+ </xsl:choose>
3319
3667
  </xsl:template><xsl:template match="item" mode="bookmark">
3320
3668
  <fo:bookmark internal-destination="{@id}" starting-state="hide">
3321
3669
  <fo:bookmark-title>
@@ -3330,7 +3678,7 @@
3330
3678
  </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3331
3679
  <xsl:if test="normalize-space() != ''">
3332
3680
  <fo:block xsl:use-attribute-sets="figure-name-style">
3333
-
3681
+
3334
3682
  <xsl:apply-templates/>
3335
3683
  </fo:block>
3336
3684
  </xsl:if>
@@ -3917,9 +4265,12 @@
3917
4265
  </fo:block>
3918
4266
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
3919
4267
  <xsl:variable name="title-deprecated">
3920
- <xsl:call-template name="getTitle">
3921
- <xsl:with-param name="name" select="'title-deprecated'"/>
3922
- </xsl:call-template>
4268
+
4269
+
4270
+ <xsl:call-template name="getTitle">
4271
+ <xsl:with-param name="name" select="'title-deprecated'"/>
4272
+ </xsl:call-template>
4273
+
3923
4274
  </xsl:variable>
3924
4275
  <fo:block xsl:use-attribute-sets="deprecates-style">
3925
4276
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -3966,13 +4317,14 @@
3966
4317
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
3967
4318
  <fo:block>
3968
4319
  <xsl:call-template name="setId"/>
4320
+
3969
4321
  <xsl:apply-templates/>
3970
4322
  </fo:block>
3971
4323
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
3972
4324
  <fo:block id="{@id}">
3973
4325
  <xsl:apply-templates/>
3974
4326
  </fo:block>
3975
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4327
+ </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']">
3976
4328
 
3977
4329
  <fo:block id="{@id}">
3978
4330
  <xsl:apply-templates/>
@@ -4006,6 +4358,7 @@
4006
4358
  </xsl:choose>
4007
4359
  </xsl:attribute>
4008
4360
 
4361
+
4009
4362
  <fo:block-container margin-left="0mm">
4010
4363
  <fo:block>
4011
4364
  <xsl:apply-templates select="." mode="ul_ol"/>
@@ -4033,7 +4386,8 @@
4033
4386
  <fo:table-column column-width="107mm"/>
4034
4387
  <fo:table-column column-width="15mm"/>
4035
4388
  <fo:table-body>
4036
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
4389
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
4390
+
4037
4391
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
4038
4392
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
4039
4393
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -4051,6 +4405,10 @@
4051
4405
  <fo:block><xsl:apply-templates/></fo:block>
4052
4406
  </fo:table-cell>
4053
4407
  </xsl:template><xsl:template name="processBibitem">
4408
+
4409
+
4410
+ <!-- end BIPM bibitem processing-->
4411
+
4054
4412
 
4055
4413
 
4056
4414
 
@@ -4191,6 +4549,7 @@
4191
4549
 
4192
4550
 
4193
4551
 
4552
+
4194
4553
 
4195
4554
  </xsl:variable>
4196
4555
  <xsl:choose>
@@ -4205,6 +4564,7 @@
4205
4564
  <dc:creator>
4206
4565
 
4207
4566
 
4567
+
4208
4568
  </dc:creator>
4209
4569
  <dc:description>
4210
4570
  <xsl:variable name="abstract">
@@ -4214,6 +4574,7 @@
4214
4574
  <xsl:copy-of select="/*/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
4215
4575
 
4216
4576
 
4577
+
4217
4578
  </xsl:variable>
4218
4579
  <xsl:value-of select="normalize-space($abstract)"/>
4219
4580
  </dc:description>
@@ -4285,13 +4646,22 @@
4285
4646
  </xsl:template><xsl:template name="split">
4286
4647
  <xsl:param name="pText" select="."/>
4287
4648
  <xsl:param name="sep" select="','"/>
4649
+ <xsl:param name="normalize-space" select="'true'"/>
4288
4650
  <xsl:if test="string-length($pText) &gt;0">
4289
4651
  <item>
4290
- <xsl:value-of select="normalize-space(substring-before(concat($pText, ','), $sep))"/>
4652
+ <xsl:choose>
4653
+ <xsl:when test="$normalize-space = 'true'">
4654
+ <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
4655
+ </xsl:when>
4656
+ <xsl:otherwise>
4657
+ <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
4658
+ </xsl:otherwise>
4659
+ </xsl:choose>
4291
4660
  </item>
4292
4661
  <xsl:call-template name="split">
4293
4662
  <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
4294
4663
  <xsl:with-param name="sep" select="$sep"/>
4664
+ <xsl:with-param name="normalize-space" select="$normalize-space"/>
4295
4665
  </xsl:call-template>
4296
4666
  </xsl:if>
4297
4667
  </xsl:template><xsl:template name="getDocumentId">
@@ -4357,4 +4727,23 @@
4357
4727
  <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
4358
4728
  </xsl:call-template>
4359
4729
  </xsl:if>
4730
+ </xsl:template><xsl:template name="repeat">
4731
+ <xsl:param name="char" select="'*'"/>
4732
+ <xsl:param name="count"/>
4733
+ <xsl:if test="$count &gt; 0">
4734
+ <xsl:value-of select="$char"/>
4735
+ <xsl:call-template name="repeat">
4736
+ <xsl:with-param name="char" select="$char"/>
4737
+ <xsl:with-param name="count" select="$count - 1"/>
4738
+ </xsl:call-template>
4739
+ </xsl:if>
4740
+ </xsl:template><xsl:template name="getLocalizedString">
4741
+ <xsl:param name="key"/>
4742
+
4743
+ <xsl:variable name="curr_lang">
4744
+ <xsl:call-template name="getLang"/>
4745
+ </xsl:variable>
4746
+
4747
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
4748
+
4360
4749
  </xsl:template></xsl:stylesheet>