metanorma-bipm 1.0.5 → 1.0.6

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.
@@ -8,7 +8,6 @@
8
8
  <!-- <item id="#">N_page</item> -->
9
9
  <!-- param for second pass -->
10
10
  <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
11
- <xsl:variable name="index" select="document($external_index)"/>
12
11
 
13
12
 
14
13
 
@@ -16,7 +15,18 @@
16
15
 
17
16
 
18
17
 
19
- <xsl:variable name="align_cross_elements_">clause note title terms term termsource</xsl:variable>
18
+ <xsl:variable name="align_cross_elements_default">clause</xsl:variable>
19
+ <xsl:variable name="align_cross_elements_doc" select="normalize-space((//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:ext/jcgm:parallel-align-element)"/>
20
+ <xsl:variable name="align_cross_elements_">
21
+ <xsl:choose>
22
+ <xsl:when test="$align_cross_elements_doc != ''">
23
+ <xsl:value-of select="$align_cross_elements_doc"/>
24
+ </xsl:when>
25
+ <xsl:otherwise>
26
+ <xsl:value-of select="$align_cross_elements_default"/>
27
+ </xsl:otherwise>
28
+ </xsl:choose>
29
+ </xsl:variable>
20
30
  <xsl:variable name="align_cross_elements">
21
31
  <xsl:text>#</xsl:text><xsl:value-of select="translate(normalize-space($align_cross_elements_), ' ', '#')"/><xsl:text>#</xsl:text>
22
32
  </xsl:variable>
@@ -97,7 +107,8 @@
97
107
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
98
108
  <xsl:call-template name="processMainSectionsDefault_Contents"/>
99
109
  <!-- Index -->
100
- <xsl:apply-templates select="//jcgm:clause[@type = 'index']" mode="contents"/>
110
+ <!-- <xsl:apply-templates select="//jcgm:clause[@type = 'index']" mode="contents"/> -->
111
+ <xsl:apply-templates select="//jcgm:indexsect" mode="contents"/>
101
112
  </contents>
102
113
  </doc>
103
114
  </xsl:for-each>
@@ -120,7 +131,8 @@
120
131
 
121
132
  <!-- add id to xref and split xref with @to into two xref -->
122
133
  <xsl:variable name="current_document_index_id">
123
- <xsl:apply-templates select=".//jcgm:clause[@type = 'index']" mode="index_add_id"/>
134
+ <!-- <xsl:apply-templates select=".//jcgm:clause[@type = 'index']" mode="index_add_id"/> -->
135
+ <xsl:apply-templates select=".//jcgm:indexsect" mode="index_add_id"/>
124
136
  </xsl:variable>
125
137
 
126
138
  <xsl:variable name="current_document_index">
@@ -138,8 +150,6 @@
138
150
  </xsl:for-each>
139
151
 
140
152
  </xsl:variable>
141
-
142
- <xsl:variable name="dash" select="'–'"/>
143
153
 
144
154
 
145
155
  <xsl:variable name="lang">
@@ -188,7 +198,9 @@
188
198
  </fo:page-sequence-master>
189
199
  </fo:layout-master-set>
190
200
 
191
- <xsl:call-template name="addPDFUAmeta"/>
201
+ <fo:declarations>
202
+ <xsl:call-template name="addPDFUAmeta"/>
203
+ </fo:declarations>
192
204
 
193
205
  <xsl:call-template name="addBookmarks">
194
206
  <xsl:with-param name="contents" select="$contents"/>
@@ -499,7 +511,8 @@
499
511
 
500
512
  <!-- indexes=<xsl:copy-of select="$indexes"/> -->
501
513
  <!-- Index -->
502
- <xsl:apply-templates select="xalan:nodeset($indexes)/doc//jcgm:clause[@type = 'index']" mode="index"/>
514
+ <!-- <xsl:apply-templates select="xalan:nodeset($indexes)/doc//jcgm:clause[@type = 'index']" mode="index" /> -->
515
+ <xsl:apply-templates select="xalan:nodeset($indexes)/doc//jcgm:indexsect" mode="index"/>
503
516
 
504
517
  </fo:root>
505
518
  </xsl:template>
@@ -532,6 +545,7 @@
532
545
  <xsl:variable name="type">
533
546
  <xsl:choose>
534
547
  <xsl:when test="@type = 'index'">index</xsl:when>
548
+ <xsl:when test="local-name() = 'indexsect'">index</xsl:when>
535
549
  <xsl:otherwise><xsl:value-of select="local-name()"/></xsl:otherwise>
536
550
  </xsl:choose>
537
551
  </xsl:variable>
@@ -974,7 +988,85 @@
974
988
  </fo:inline>
975
989
  </xsl:template>
976
990
 
991
+ <!-- for chemical expressions, when prefix superscripted -->
992
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() = '' or not(mathml:mtext/text()))]/mathml:mtext" mode="mathml" priority="2">
993
+ <mathml:mspace height="1ex"/>
994
+ </xsl:template>
995
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() = ' ' or mathml:mtext/text() = ' ')]/mathml:mtext" mode="mathml" priority="2">
996
+ <mathml:mspace width="1ex" height="1ex"/>
997
+ </xsl:template>
998
+
999
+ <!-- set height for sup -->
1000
+ <!-- <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() != '' and mathml:mtext/text() != ' ' and mathml:mtext/text() != '&#xa0;')]/mathml:mtext" mode="mtext"> -->
1001
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1]/*" mode="mathml" priority="2">
1002
+ <xsl:copy>
1003
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
1004
+ </xsl:copy>
1005
+ <!-- <xsl:copy-of select="."/> -->
1006
+ <mathml:mspace height="1.47ex"/>
1007
+ </xsl:template>
1008
+
1009
+ <!-- set script minimal font-size -->
1010
+ <xsl:template match="mathml:math" mode="mathml" priority="2">
1011
+ <xsl:copy>
1012
+ <xsl:apply-templates select="@*" mode="mathml"/>
1013
+ <mathml:mstyle scriptminsize="6pt">
1014
+ <xsl:apply-templates select="node()" mode="mathml"/>
1015
+ </mathml:mstyle>
1016
+ </xsl:copy>
1017
+ </xsl:template>
1018
+
1019
+ <!-- issue 'over bar above equation with sub' fixing -->
1020
+ <xsl:template match="mathml:msub/mathml:mrow[1][mathml:mover and count(following-sibling::*) = 1 and following-sibling::mathml:mrow]" mode="mathml" priority="2">
1021
+ <mathml:mstyle>
1022
+ <xsl:copy-of select="."/>
1023
+ </mathml:mstyle>
1024
+ </xsl:template>
1025
+
1026
+ <!-- Decrease space between ()
1027
+ from:
1028
+ <mfenced open="(" close=")">
1029
+ <mrow>
1030
+ <mtext>Cu</mtext>
1031
+ </mrow>
1032
+ </mfenced>
1033
+ to:
1034
+ <mrow>
1035
+ <mtext>(Cu)</mtext>
1036
+ </mrow> -->
1037
+ <xsl:template match="mathml:mfenced[count(*) = 1 and *[count(*) = 1] and */*[count(*) = 0]] | mathml:mfenced[count(*) = 1 and *[count(*) = 1] and */*[count(*) = 1] and */*/*[count(*) = 0]]" mode="mathml" priority="2">
1038
+ <xsl:apply-templates mode="mathml"/>
1039
+ </xsl:template>
1040
+
1041
+ <xsl:template match="mathml:mfenced[count(*) = 1]/*[count(*) = 1]/*[count(*) = 0] | mathml:mfenced[count(*) = 1]/*[count(*) = 1]/*[count(*) = 1]/*[count(*) = 0]" mode="mathml" priority="2"> <!-- [not(following-sibling::*) and not(preceding-sibling::*)] -->
1042
+ <xsl:copy>
1043
+ <xsl:apply-templates select="@*" mode="mathml"/>
1044
+ <xsl:value-of select="ancestor::mathml:mfenced/@open"/>
1045
+ <xsl:value-of select="."/>
1046
+ <xsl:value-of select="ancestor::mathml:mfenced/@close"/>
1047
+ </xsl:copy>
1048
+ </xsl:template>
977
1049
 
1050
+ <!-- Decrease height of / and | -->
1051
+ <xsl:template match="mathml:mo[normalize-space(text()) = '/' or normalize-space(text()) = '|']" mode="mathml" priority="2">
1052
+ <xsl:copy>
1053
+ <xsl:apply-templates select="@*" mode="mathml"/>
1054
+ <xsl:if test="not(@stretchy)">
1055
+ <xsl:attribute name="stretchy">false</xsl:attribute>
1056
+ </xsl:if>
1057
+ <xsl:apply-templates mode="mathml"/>
1058
+ </xsl:copy>
1059
+ </xsl:template>
1060
+
1061
+ <xsl:template match="mathml:mi[string-length(normalize-space()) &gt; 1]" mode="mathml" priority="2">
1062
+ <xsl:if test="preceding-sibling::* and preceding-sibling::*[1][not(local-name() = 'mfenced' or local-name() = 'mo')]">
1063
+ <mathml:mspace width="0.3em"/>
1064
+ </xsl:if>
1065
+ <xsl:copy-of select="."/>
1066
+ <xsl:if test="following-sibling::* and following-sibling::*[1][not(local-name() = 'mfenced' or local-name() = 'mo')]">
1067
+ <mathml:mspace width="0.3em"/>
1068
+ </xsl:if>
1069
+ </xsl:template>
978
1070
 
979
1071
  <xsl:template match="*[local-name()='admonition']">
980
1072
  <fo:block margin-bottom="12pt" font-weight="bold"> <!-- text-align="center" -->
@@ -1330,177 +1422,58 @@
1330
1422
  <!-- Index processing -->
1331
1423
  <!-- =================== -->
1332
1424
 
1333
- <xsl:template match="@*|node()" mode="index_add_id">
1334
- <xsl:copy>
1335
- <xsl:apply-templates select="@*|node()" mode="index_add_id"/>
1336
- </xsl:copy>
1337
- </xsl:template>
1338
-
1339
- <xsl:template match="jcgm:xref" mode="index_add_id">
1340
- <xsl:variable name="id">
1341
- <xsl:call-template name="generateIndexXrefId"/>
1342
- </xsl:variable>
1343
- <xsl:copy> <!-- add id to xref -->
1344
- <xsl:apply-templates select="@*" mode="index_add_id"/>
1345
- <xsl:attribute name="id">
1346
- <xsl:value-of select="$id"/>
1347
- </xsl:attribute>
1348
- <xsl:apply-templates mode="index_add_id"/>
1349
- </xsl:copy>
1350
- <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
1351
- <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
1352
- <xsl:if test="@to">
1353
- <xsl:value-of select="$dash"/>
1354
- <xsl:copy>
1355
- <xsl:copy-of select="@*"/>
1356
- <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
1357
- <xsl:attribute name="id">
1358
- <xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
1359
- </xsl:attribute>
1360
- <xsl:apply-templates mode="index_add_id"/>
1361
- </xsl:copy>
1362
- </xsl:if>
1363
- </xsl:template>
1364
-
1365
- <xsl:template match="@*|node()" mode="index_update">
1366
- <xsl:copy>
1367
- <xsl:apply-templates select="@*|node()" mode="index_update"/>
1368
- </xsl:copy>
1369
- </xsl:template>
1370
-
1371
- <xsl:template match="jcgm:clause[@type = 'index']//jcgm:li" mode="index_update">
1372
- <xsl:copy>
1373
- <xsl:apply-templates select="@*" mode="index_update"/>
1374
- <xsl:apply-templates select="node()[1]" mode="process_li_element"/>
1375
- </xsl:copy>
1376
- </xsl:template>
1425
+ <!-- <xsl:template match="jcgm:clause[@type = 'index']" />
1426
+ <xsl:template match="jcgm:clause[@type = 'index']" mode="index"> -->
1427
+ <xsl:template match="jcgm:indexsect"/>
1428
+ <xsl:template match="jcgm:indexsect" mode="index">
1377
1429
 
1378
- <xsl:template match="jcgm:clause[@type = 'index']//jcgm:li/node()" mode="process_li_element" priority="2">
1379
- <xsl:param name="element"/>
1380
- <xsl:param name="remove" select="'false'"/>
1381
- <!-- <node></node> -->
1382
- <xsl:choose>
1383
- <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
1384
- <!-- skip text (i.e. remove it) and process next element -->
1385
- <!-- [removed_<xsl:value-of select="."/>] -->
1386
- <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
1387
- </xsl:when>
1388
- <xsl:when test="self::text()">
1389
- <xsl:value-of select="."/>
1390
- <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
1391
- </xsl:when>
1392
- <xsl:when test="self::* and local-name(.) = 'xref'">
1393
- <xsl:variable name="id" select="@id"/>
1394
- <xsl:variable name="page" select="$index//item[@id = $id]"/>
1395
- <xsl:variable name="id_next" select="following-sibling::jcgm:xref[1]/@id"/>
1396
- <xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
1397
-
1398
- <xsl:variable name="id_prev" select="preceding-sibling::jcgm:xref[1]/@id"/>
1399
- <xsl:variable name="page_prev" select="$index//item[@id = $id_prev]"/>
1400
-
1430
+ <fo:page-sequence master-reference="document-jcgm" force-page-count="no-force">
1431
+ <xsl:variable name="header-title">
1401
1432
  <xsl:choose>
1402
- <!-- 2nd pass -->
1403
- <!-- if page is equal to page for next and page is not the end of range -->
1404
- <xsl:when test="$page != '' and $page_next != '' and $page = $page_next and not(contains($page, '_to'))"> <!-- case: 12, 12-14 -->
1405
- <!-- skip element (i.e. remove it) and remove next text ',' -->
1406
- <!-- [removed_xref] -->
1407
-
1408
- <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
1409
- <xsl:with-param name="remove">true</xsl:with-param>
1410
- </xsl:apply-templates>
1411
- </xsl:when>
1412
-
1413
- <xsl:when test="$page != '' and $page_prev != '' and $page = $page_prev and contains($page_prev, '_to')"> <!-- case: 12-14, 14, ... -->
1414
- <!-- remove xref -->
1415
- <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
1416
- <xsl:with-param name="remove">true</xsl:with-param>
1417
- </xsl:apply-templates>
1433
+ <xsl:when test="./jcgm:title[1]/*[local-name() = 'tab']">
1434
+ <xsl:apply-templates select="./jcgm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
1418
1435
  </xsl:when>
1419
-
1420
1436
  <xsl:otherwise>
1421
- <xsl:copy-of select="."/>
1422
- <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
1437
+ <xsl:apply-templates select="./jcgm:title[1]" mode="header"/>
1423
1438
  </xsl:otherwise>
1424
1439
  </xsl:choose>
1425
- </xsl:when>
1426
- <xsl:when test="self::* and local-name(.) = 'ul'">
1427
- <!-- ul -->
1428
- <xsl:apply-templates select="." mode="index_update"/>
1429
- </xsl:when>
1430
- <xsl:otherwise>
1431
- <xsl:copy-of select="."/>
1432
- <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
1433
- </xsl:otherwise>
1434
- </xsl:choose>
1435
- </xsl:template>
1436
-
1437
-
1438
- <xsl:template name="generateIndexXrefId">
1439
- <xsl:variable name="level" select="count(ancestor::jcgm:ul)"/>
1440
- <!-- <xsl:variable name="parent_ul_id" select="generate-id(ancestor::jcgm:ul[1])"/>
1441
- <xsl:variable name="item_number" select="count(ancestor::jcgm:li[ancestor::jcgm:ul[generate-id() = $parent_ul_id]])"/> -->
1442
- <xsl:variable name="docid">
1443
- <xsl:call-template name="getDocumentId"/>
1444
- </xsl:variable>
1445
- <xsl:variable name="item_number">
1446
- <xsl:number count="jcgm:li[ancestor::jcgm:clause[@type = 'index']]" level="any"/>
1447
- </xsl:variable>
1448
- <xsl:variable name="xref_number"><xsl:number count="jcgm:xref"/></xsl:variable>
1449
- <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
1450
- </xsl:template>
1451
-
1452
- <xsl:template match="jcgm:clause[@type = 'index']"/>
1453
- <xsl:template match="jcgm:clause[@type = 'index']" mode="index">
1454
-
1455
- <fo:page-sequence master-reference="document-jcgm" force-page-count="no-force">
1440
+ </xsl:variable>
1456
1441
 
1457
1442
  <xsl:call-template name="insertHeaderFooter"/>
1458
1443
 
1459
1444
  <fo:flow flow-name="xsl-region-body">
1460
- <fo:block id="{@id}">
1461
- <xsl:apply-templates/>
1445
+ <fo:block id="{@id}" span="all">
1446
+ <xsl:apply-templates select="bipm:title"/>
1447
+ </fo:block>
1448
+ <fo:block>
1449
+ <xsl:apply-templates select="*[not(local-name() = 'title')]"/>
1462
1450
  </fo:block>
1463
1451
  </fo:flow>
1464
1452
  </fo:page-sequence>
1465
1453
  </xsl:template>
1466
1454
 
1467
- <xsl:template match="jcgm:clause[@type = 'index']/jcgm:title" priority="4">
1455
+ <!-- <xsl:template match="jcgm:clause[@type = 'index']/jcgm:title" priority="4"> -->
1456
+ <xsl:template match="jcgm:indexsect/jcgm:title" priority="4">
1468
1457
  <fo:block font-weight="bold" span="all">
1469
1458
  <!-- Index -->
1470
1459
  <xsl:apply-templates/>
1471
1460
  </fo:block>
1472
1461
  </xsl:template>
1473
1462
 
1474
- <xsl:template match="jcgm:clause[@type = 'index']/jcgm:clause" priority="4">
1475
- <xsl:apply-templates/>
1476
- <fo:block>
1477
- <xsl:if test="following-sibling::jcgm:clause">
1478
- <fo:block> </fo:block>
1479
- </xsl:if>
1480
- </fo:block>
1481
- </xsl:template>
1482
-
1483
- <xsl:template match="jcgm:clause[@type = 'index']/jcgm:clause/jcgm:title" priority="4">
1463
+
1464
+ <!-- <xsl:template match="jcgm:clause[@type = 'index']/jcgm:clause/jcgm:title" priority="4"> -->
1465
+ <xsl:template match="jcgm:indexsect/jcgm:clause/jcgm:title" priority="4">
1484
1466
  <!-- Letter A, B, C, ... -->
1485
1467
  <fo:block font-weight="bold" margin-left="25mm" keep-with-next="always">
1486
1468
  <xsl:apply-templates/>
1487
1469
  </fo:block>
1488
1470
  </xsl:template>
1489
1471
 
1490
- <xsl:template match="jcgm:clause[@type = 'index']//jcgm:ul" priority="4">
1472
+ <!-- <xsl:template match="jcgm:clause[@type = 'index']//jcgm:ul" priority="4"> -->
1473
+ <xsl:template match="jcgm:indexsect//jcgm:ul" priority="4">
1491
1474
  <xsl:apply-templates/>
1492
1475
  </xsl:template>
1493
-
1494
- <xsl:template match="jcgm:clause[@type = 'index']//jcgm:li" priority="4">
1495
- <xsl:variable name="level" select="count(ancestor::jcgm:ul)"/>
1496
- <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
1497
- <xsl:apply-templates/>
1498
- </fo:block>
1499
- </xsl:template>
1500
-
1501
- <xsl:template match="jcgm:bookmark">
1502
- <fo:inline id="{@id}"/>
1503
- </xsl:template>
1476
+
1504
1477
 
1505
1478
  <!-- =================== -->
1506
1479
  <!-- End of Index processing -->
@@ -1577,36 +1550,36 @@
1577
1550
  <xsl:apply-templates/>
1578
1551
  </xsl:template>
1579
1552
 
1580
- <!-- no display table/figure from slave documents if common=true or span=true -->
1581
- <xsl:template match="*[@slave]//*[local-name()='table'][@common = 'true']" priority="2"/>
1582
- <xsl:template match="*[@slave]//*[local-name()='table'][@span = 'true']" priority="2"/>
1583
- <xsl:template match="*[@slave]//*[local-name()='figure'][@common = 'true']" priority="2"/>
1584
- <xsl:template match="*[@slave]//*[local-name()='figure'][@span = 'true']" priority="2"/>
1553
+ <!-- no display table/figure from slave documents if @multilingual-rendering="common" or @multilingual-rendering = 'all-columns' -->
1554
+ <xsl:template match="*[@slave]//*[local-name()='table'][@multilingual-rendering= 'common']" priority="2"/>
1555
+ <xsl:template match="*[@slave]//*[local-name()='table'][@multilingual-rendering = 'all-columns']" priority="2"/>
1556
+ <xsl:template match="*[@slave]//*[local-name()='figure'][@multilingual-rendering = 'common']" priority="2"/>
1557
+ <xsl:template match="*[@slave]//*[local-name()='figure'][@multilingual-rendering = 'all-columns']" priority="2"/>
1585
1558
 
1586
- <!-- for table and figure with @common='true' -->
1559
+ <!-- for table and figure with @multilingual-rendering="common" -->
1587
1560
  <!-- display only element from first document -->
1588
- <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@common = 'true']" mode="multi_columns">
1561
+ <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@multilingual-rendering = 'common']" mode="multi_columns">
1589
1562
  <fo:block>
1590
1563
  <xsl:apply-templates/>
1591
1564
  </fo:block>
1592
1565
  </xsl:template>
1593
1566
 
1594
- <!-- for table and figure with @span='true' -->
1567
+ <!-- for table and figure with @multilingual-rendering = 'all-columns' -->
1595
1568
  <!-- display element from first document, then (after) from 2nd one, then 3rd, etc. -->
1596
- <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@span = 'true']" mode="multi_columns">
1569
+ <xsl:template match="*[@first]//*[local-name() = 'cross-align'][@multilingual-rendering = 'all-columns']" mode="multi_columns">
1597
1570
  <xsl:variable name="element-number" select="@element-number"/>
1598
1571
  <fo:block>
1599
1572
  <xsl:apply-templates/>
1600
1573
  <fo:block> </fo:block>
1601
1574
  <xsl:choose>
1602
- <xsl:when test="local-name(*[@span = 'true']) = 'table'">
1575
+ <xsl:when test="local-name(*[@multilingual-rendering = 'all-columns']) = 'table'">
1603
1576
  <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1604
1577
  <xsl:for-each select=".//*[local-name() = 'table' and @element-number=$element-number]">
1605
1578
  <xsl:call-template name="table"/>
1606
1579
  </xsl:for-each>
1607
1580
  </xsl:for-each>
1608
1581
  </xsl:when>
1609
- <xsl:when test="local-name(*[@span = 'true']) = 'figure'">
1582
+ <xsl:when test="local-name(*[@multilingual-rendering = 'all-columns']) = 'figure'">
1610
1583
  <xsl:for-each select="xalan:nodeset($docs_slave)/*">
1611
1584
  <xsl:for-each select=".//*[local-name() = 'figure' and @element-number=$element-number]">
1612
1585
  <xsl:call-template name="figure"/>
@@ -1924,7 +1897,7 @@
1924
1897
  Elements that should be aligned:
1925
1898
  - name of element presents in field align-cross-elements="clause note"
1926
1899
  - marked with attribute name
1927
- - table/figure with attribute common="true" or span="true"
1900
+ - table/figure with attribute @multilingual-rendering = 'common' or @multilingual-rendering = 'all-columns'
1928
1901
  - marked with attribute cross-align
1929
1902
  -->
1930
1903
  <xsl:template name="isCrossAligned">
@@ -1933,10 +1906,10 @@
1933
1906
  <!-- if element`s name is presents in array align_cross_elements -->
1934
1907
  <xsl:when test="contains($align_cross_elements, concat('#',$element_name,'#'))">true</xsl:when>
1935
1908
  <!-- if element has attribute name/bookmark -->
1936
- <xsl:when test="normalize-space(@name) != ''">true</xsl:when>
1937
- <xsl:when test="($element_name = 'table' or $element_name = 'figure') and (@common = 'true' or @span = 'true')">true</xsl:when>
1909
+ <xsl:when test="normalize-space(@name) != '' and @multilingual-rendering = 'name'">true</xsl:when>
1910
+ <xsl:when test="($element_name = 'table' or $element_name = 'figure') and (@multilingual-rendering = 'common' or @multilingual-rendering = 'all-columns')">true</xsl:when>
1938
1911
  <!-- element marked as cross-align -->
1939
- <xsl:when test="@cross-align='true'">true</xsl:when>
1912
+ <xsl:when test="@multilingual-rendering='parallel'">true</xsl:when>
1940
1913
  <xsl:otherwise>false</xsl:otherwise>
1941
1914
  </xsl:choose>
1942
1915
  </xsl:template>
@@ -1946,7 +1919,7 @@
1946
1919
  <xsl:variable name="element-number">
1947
1920
  <xsl:choose>
1948
1921
  <!-- if name set, then use it -->
1949
- <xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
1922
+ <xsl:when test="@name and @multilingual-rendering = 'name'"><xsl:value-of select="@name"/></xsl:when>
1950
1923
  <xsl:otherwise>
1951
1924
  <xsl:for-each select="ancestor-or-self::*[ancestor-or-self::*[local-name() = 'sections' or local-name() = 'annex']]">
1952
1925
  <xsl:value-of select="local-name()"/>
@@ -1977,13 +1950,12 @@
1977
1950
  </xsl:copy>
1978
1951
  </xsl:template>
1979
1952
 
1980
- <!-- enclose elements after table/figure with common=true and span=true in a separate element cross-align -->
1981
- <xsl:template match="*[@common='true' or @span='true']" mode="flatxml_step2" priority="2">
1953
+ <!-- enclose elements after table/figure with @multilingual-rendering = 'common' and @multilingual-rendering = 'all-columns' in a separate element cross-align -->
1954
+ <xsl:template match="*[@multilingual-rendering = 'common' or @multilingual-rendering = 'all-columns']" mode="flatxml_step2" priority="2">
1982
1955
  <xsl:variable name="curr_id" select="generate-id()"/>
1983
1956
  <xsl:element name="cross-align" namespace="https://www.metanorma.org/ns/bipm">
1984
1957
  <xsl:copy-of select="@element-number"/>
1985
- <xsl:copy-of select="@common"/>
1986
- <xsl:copy-of select="@span"/>
1958
+ <xsl:copy-of select="@multilingual-rendering"/>
1987
1959
  <xsl:copy-of select="."/>
1988
1960
  </xsl:element>
1989
1961
  <xsl:if test="following-sibling::*[(not(@cross-align) or not(@cross-align='true')) and preceding-sibling::*[@cross-align='true'][1][generate-id() = $curr_id]]">
@@ -2009,8 +1981,7 @@
2009
1981
  <xsl:if test="local-name() = 'title'">
2010
1982
  <xsl:copy-of select="@keep-with-next"/>
2011
1983
  </xsl:if>
2012
- <xsl:copy-of select="@common"/>
2013
- <xsl:copy-of select="@span"/>
1984
+ <xsl:copy-of select="@multilingual-rendering"/>
2014
1985
  <xsl:copy-of select="."/>
2015
1986
 
2016
1987
  <!-- copy next elements until next element with cross-align=true -->
@@ -2318,6 +2289,7 @@
2318
2289
 
2319
2290
 
2320
2291
 
2292
+
2321
2293
  </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
2322
2294
 
2323
2295
 
@@ -2953,7 +2925,15 @@
2953
2925
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2954
2926
  <xsl:value-of select="@target"/>
2955
2927
  </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2956
- <xsl:variable name="math_text" select="normalize-space(.)"/>
2928
+ <xsl:variable name="mathml">
2929
+ <xsl:for-each select="*">
2930
+ <xsl:if test="local-name() != 'unit' and local-name() != 'prefix' and local-name() != 'dimension' and local-name() != 'quantity'">
2931
+ <xsl:copy-of select="."/>
2932
+ </xsl:if>
2933
+ </xsl:for-each>
2934
+ </xsl:variable>
2935
+
2936
+ <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
2957
2937
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2958
2938
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2959
2939
  <xsl:param name="cols-count"/>
@@ -3994,6 +3974,10 @@
3994
3974
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3995
3975
  <xsl:apply-templates/>
3996
3976
  </fo:inline>
3977
+ </xsl:template><xsl:template match="*[local-name()='hi']">
3978
+ <fo:inline background-color="yellow">
3979
+ <xsl:apply-templates/>
3980
+ </fo:inline>
3997
3981
  </xsl:template><xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
3998
3982
  <xsl:variable name="text" select="normalize-space(.)"/>
3999
3983
  <fo:inline font-size="75%">
@@ -4334,6 +4318,7 @@
4334
4318
  <xsl:apply-templates select="." mode="mathml"/>
4335
4319
  </xsl:variable>
4336
4320
  <fo:instream-foreign-object fox:alt-text="Math">
4321
+
4337
4322
  <!-- <xsl:copy-of select="."/> -->
4338
4323
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
4339
4324
  </fo:instream-foreign-object>
@@ -4352,7 +4337,7 @@
4352
4337
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
4353
4338
  </xsl:copy>
4354
4339
  <mathml:mspace width="0.5ex"/>
4355
- </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4340
+ </xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4356
4341
  <xsl:variable name="target">
4357
4342
  <xsl:choose>
4358
4343
  <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
@@ -4386,8 +4371,6 @@
4386
4371
  </xsl:otherwise>
4387
4372
  </xsl:choose>
4388
4373
  </fo:inline>
4389
- </xsl:template><xsl:template match="*[local-name()='bookmark']">
4390
- <fo:inline id="{@id}"/>
4391
4374
  </xsl:template><xsl:template match="*[local-name()='appendix']">
4392
4375
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
4393
4376
  <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
@@ -4596,6 +4579,7 @@
4596
4579
  <fo:block id="{@id}">
4597
4580
  <xsl:apply-templates/>
4598
4581
  </fo:block>
4582
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4599
4583
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
4600
4584
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
4601
4585
  <xsl:apply-templates/>
@@ -5179,10 +5163,11 @@
5179
5163
  </xsl:choose>
5180
5164
 
5181
5165
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
5182
-
5166
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
5183
5167
  <xsl:variable name="element">
5184
5168
  block
5185
5169
 
5170
+
5186
5171
  </xsl:variable>
5187
5172
  <xsl:choose>
5188
5173
  <xsl:when test="normalize-space($element) = 'block'">
@@ -5296,29 +5281,47 @@
5296
5281
  <xsl:text>— </xsl:text>
5297
5282
  <xsl:apply-templates/>
5298
5283
  </xsl:template><xsl:template match="*[local-name() = 'eref']">
5299
- <fo:inline xsl:use-attribute-sets="eref-style">
5300
- <xsl:if test="@type = 'footnote'">
5301
-
5302
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5303
- <xsl:attribute name="font-size">80%</xsl:attribute>
5304
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5305
- <xsl:attribute name="vertical-align">super</xsl:attribute>
5306
-
5307
-
5308
- </xsl:if>
5309
-
5310
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5311
-
5312
- <xsl:if test="@type = 'inline'">
5313
-
5314
-
5315
-
5316
- </xsl:if>
5317
-
5318
-
5319
- <xsl:apply-templates/>
5320
- </fo:basic-link>
5321
- </fo:inline>
5284
+
5285
+ <xsl:variable name="bibitemid">
5286
+ <xsl:choose>
5287
+ <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"/>
5288
+ <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
5289
+ <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
5290
+ </xsl:choose>
5291
+ </xsl:variable>
5292
+
5293
+ <xsl:choose>
5294
+ <xsl:when test="normalize-space($bibitemid) != ''">
5295
+ <fo:inline xsl:use-attribute-sets="eref-style">
5296
+ <xsl:if test="@type = 'footnote'">
5297
+
5298
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5299
+ <xsl:attribute name="font-size">80%</xsl:attribute>
5300
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5301
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
5302
+
5303
+
5304
+ </xsl:if>
5305
+
5306
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5307
+ <xsl:if test="normalize-space(@citeas) = ''">
5308
+ <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5309
+ </xsl:if>
5310
+ <xsl:if test="@type = 'inline'">
5311
+
5312
+
5313
+
5314
+ </xsl:if>
5315
+
5316
+ <xsl:apply-templates/>
5317
+ </fo:basic-link>
5318
+
5319
+ </fo:inline>
5320
+ </xsl:when>
5321
+ <xsl:otherwise>
5322
+ <fo:inline><xsl:apply-templates/></fo:inline>
5323
+ </xsl:otherwise>
5324
+ </xsl:choose>
5322
5325
  </xsl:template><xsl:template match="*[local-name() = 'tab']">
5323
5326
  <!-- zero-space char -->
5324
5327
  <xsl:variable name="depth">
@@ -5501,6 +5504,153 @@
5501
5504
  </fo:block>
5502
5505
  </xsl:otherwise>
5503
5506
  </xsl:choose>
5507
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
5508
+ <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
5509
+ <bookmark><xsl:value-of select="@id"/></bookmark>
5510
+ </xsl:for-each>
5511
+ </xsl:variable><xsl:template match="@*|node()" mode="index_add_id">
5512
+ <xsl:copy>
5513
+ <xsl:apply-templates select="@*|node()" mode="index_add_id"/>
5514
+ </xsl:copy>
5515
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="index_add_id">
5516
+ <xsl:variable name="id">
5517
+ <xsl:call-template name="generateIndexXrefId"/>
5518
+ </xsl:variable>
5519
+ <xsl:copy> <!-- add id to xref -->
5520
+ <xsl:apply-templates select="@*" mode="index_add_id"/>
5521
+ <xsl:attribute name="id">
5522
+ <xsl:value-of select="$id"/>
5523
+ </xsl:attribute>
5524
+ <xsl:apply-templates mode="index_add_id"/>
5525
+ </xsl:copy>
5526
+ <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
5527
+ <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
5528
+ <xsl:if test="@to">
5529
+ <xsl:value-of select="$dash"/>
5530
+ <xsl:copy>
5531
+ <xsl:copy-of select="@*"/>
5532
+ <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
5533
+ <xsl:attribute name="id">
5534
+ <xsl:value-of select="$id"/><xsl:text>_to</xsl:text>
5535
+ </xsl:attribute>
5536
+ <xsl:apply-templates mode="index_add_id"/>
5537
+ </xsl:copy>
5538
+ </xsl:if>
5539
+ </xsl:template><xsl:template match="@*|node()" mode="index_update">
5540
+ <xsl:copy>
5541
+ <xsl:apply-templates select="@*|node()" mode="index_update"/>
5542
+ </xsl:copy>
5543
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" mode="index_update">
5544
+ <xsl:copy>
5545
+ <xsl:apply-templates select="@*" mode="index_update"/>
5546
+ <xsl:apply-templates select="node()[1]" mode="process_li_element"/>
5547
+ </xsl:copy>
5548
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/node()" mode="process_li_element" priority="2">
5549
+ <xsl:param name="element"/>
5550
+ <xsl:param name="remove" select="'false'"/>
5551
+ <xsl:param name="target"/>
5552
+ <!-- <node></node> -->
5553
+ <xsl:choose>
5554
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
5555
+ <!-- skip text (i.e. remove it) and process next element -->
5556
+ <!-- [removed_<xsl:value-of select="."/>] -->
5557
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
5558
+ <xsl:with-param name="target"><xsl:value-of select="$target"/></xsl:with-param>
5559
+ </xsl:apply-templates>
5560
+ </xsl:when>
5561
+ <xsl:when test="self::text()">
5562
+ <xsl:value-of select="."/>
5563
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
5564
+ </xsl:when>
5565
+ <xsl:when test="self::* and local-name(.) = 'xref'">
5566
+ <xsl:variable name="id" select="@id"/>
5567
+ <xsl:variable name="page" select="$index//item[@id = $id]"/>
5568
+ <xsl:variable name="id_next" select="following-sibling::*[local-name() = 'xref'][1]/@id"/>
5569
+ <xsl:variable name="page_next" select="$index//item[@id = $id_next]"/>
5570
+
5571
+ <xsl:variable name="id_prev" select="preceding-sibling::*[local-name() = 'xref'][1]/@id"/>
5572
+ <xsl:variable name="page_prev" select="$index//item[@id = $id_prev]"/>
5573
+
5574
+ <xsl:choose>
5575
+ <!-- 2nd pass -->
5576
+ <!-- if page is equal to page for next and page is not the end of range -->
5577
+ <xsl:when test="$page != '' and $page_next != '' and $page = $page_next and not(contains($page, '_to'))"> <!-- case: 12, 12-14 -->
5578
+ <!-- skip element (i.e. remove it) and remove next text ',' -->
5579
+ <!-- [removed_xref] -->
5580
+
5581
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
5582
+ <xsl:with-param name="remove">true</xsl:with-param>
5583
+ <xsl:with-param name="target">
5584
+ <xsl:choose>
5585
+ <xsl:when test="$target != ''"><xsl:value-of select="$target"/></xsl:when>
5586
+ <xsl:otherwise><xsl:value-of select="@target"/></xsl:otherwise>
5587
+ </xsl:choose>
5588
+ </xsl:with-param>
5589
+ </xsl:apply-templates>
5590
+ </xsl:when>
5591
+
5592
+ <xsl:when test="$page != '' and $page_prev != '' and $page = $page_prev and contains($page_prev, '_to')"> <!-- case: 12-14, 14, ... -->
5593
+ <!-- remove xref -->
5594
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
5595
+ <xsl:with-param name="remove">true</xsl:with-param>
5596
+ </xsl:apply-templates>
5597
+ </xsl:when>
5598
+
5599
+ <xsl:otherwise>
5600
+ <xsl:apply-templates select="." mode="xref_copy">
5601
+ <xsl:with-param name="target" select="$target"/>
5602
+ </xsl:apply-templates>
5603
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
5604
+ </xsl:otherwise>
5605
+ </xsl:choose>
5606
+ </xsl:when>
5607
+ <xsl:when test="self::* and local-name(.) = 'ul'">
5608
+ <!-- ul -->
5609
+ <xsl:apply-templates select="." mode="index_update"/>
5610
+ </xsl:when>
5611
+ <xsl:otherwise>
5612
+ <xsl:apply-templates select="." mode="xref_copy">
5613
+ <xsl:with-param name="target" select="$target"/>
5614
+ </xsl:apply-templates>
5615
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element"/>
5616
+ </xsl:otherwise>
5617
+ </xsl:choose>
5618
+ </xsl:template><xsl:template match="@*|node()" mode="xref_copy">
5619
+ <xsl:param name="target"/>
5620
+ <xsl:copy>
5621
+ <xsl:apply-templates select="@*" mode="xref_copy"/>
5622
+ <xsl:if test="$target != '' and not(xalan:nodeset($bookmark_in_fn)//bookmark[. = $target])">
5623
+ <xsl:attribute name="target"><xsl:value-of select="$target"/></xsl:attribute>
5624
+ </xsl:if>
5625
+ <xsl:apply-templates select="node()" mode="xref_copy"/>
5626
+ </xsl:copy>
5627
+ </xsl:template><xsl:template name="generateIndexXrefId">
5628
+ <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5629
+
5630
+ <xsl:variable name="docid">
5631
+ <xsl:call-template name="getDocumentId"/>
5632
+ </xsl:variable>
5633
+ <xsl:variable name="item_number">
5634
+ <xsl:number count="*[local-name() = 'li'][ancestor::*[local-name() = 'indexsect']]" level="any"/>
5635
+ </xsl:variable>
5636
+ <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
5637
+ <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
5638
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
5639
+ <xsl:apply-templates/>
5640
+ <fo:block>
5641
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
5642
+ <fo:block> </fo:block>
5643
+ </xsl:if>
5644
+ </fo:block>
5645
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
5646
+ <xsl:apply-templates/>
5647
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
5648
+ <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5649
+ <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5650
+ <xsl:apply-templates/>
5651
+ </fo:block>
5652
+ </xsl:template><xsl:template match="*[local-name() = 'bookmark']">
5653
+ <fo:inline id="{@id}"/>
5504
5654
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
5505
5655
  <!-- <row>
5506
5656
  <date>05-07-2013</date>
@@ -5717,67 +5867,65 @@
5717
5867
  <xsl:variable name="lang">
5718
5868
  <xsl:call-template name="getLang"/>
5719
5869
  </xsl:variable>
5720
- <fo:declarations>
5721
- <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5722
- <pdf:dictionary type="normal" key="ViewerPreferences">
5723
- <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
5724
- </pdf:dictionary>
5725
- </pdf:catalog>
5726
- <x:xmpmeta xmlns:x="adobe:ns:meta/">
5727
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
5728
- <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
5729
- <!-- Dublin Core properties go here -->
5730
- <dc:title>
5731
- <xsl:variable name="title">
5732
- <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5733
-
5734
-
5735
-
5736
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'part']"/>
5737
-
5738
-
5739
-
5740
-
5741
- </xsl:for-each>
5742
- </xsl:variable>
5743
- <xsl:choose>
5744
- <xsl:when test="normalize-space($title) != ''">
5745
- <xsl:value-of select="$title"/>
5746
- </xsl:when>
5747
- <xsl:otherwise>
5748
- <xsl:text> </xsl:text>
5749
- </xsl:otherwise>
5750
- </xsl:choose>
5751
- </dc:title>
5752
- <dc:creator>
5870
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5871
+ <pdf:dictionary type="normal" key="ViewerPreferences">
5872
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
5873
+ </pdf:dictionary>
5874
+ </pdf:catalog>
5875
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
5876
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
5877
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
5878
+ <!-- Dublin Core properties go here -->
5879
+ <dc:title>
5880
+ <xsl:variable name="title">
5753
5881
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5754
5882
 
5755
5883
 
5756
- <xsl:value-of select="normalize-space(*[local-name() = 'ext']/*[local-name() = 'editorialgroup']/*[local-name() = 'committee'])"/>
5757
5884
 
5758
-
5759
- </xsl:for-each>
5760
- </dc:creator>
5761
- <dc:description>
5762
- <xsl:variable name="abstract">
5885
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'part']"/>
5763
5886
 
5764
5887
 
5765
- <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
5766
5888
 
5767
- </xsl:variable>
5768
- <xsl:value-of select="normalize-space($abstract)"/>
5769
- </dc:description>
5770
- <pdf:Keywords>
5771
- <xsl:call-template name="insertKeywords"/>
5772
- </pdf:Keywords>
5773
- </rdf:Description>
5774
- <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
5775
- <!-- XMP properties go here -->
5776
- <xmp:CreatorTool/>
5777
- </rdf:Description>
5778
- </rdf:RDF>
5779
- </x:xmpmeta>
5780
- </fo:declarations>
5889
+
5890
+ </xsl:for-each>
5891
+ </xsl:variable>
5892
+ <xsl:choose>
5893
+ <xsl:when test="normalize-space($title) != ''">
5894
+ <xsl:value-of select="$title"/>
5895
+ </xsl:when>
5896
+ <xsl:otherwise>
5897
+ <xsl:text> </xsl:text>
5898
+ </xsl:otherwise>
5899
+ </xsl:choose>
5900
+ </dc:title>
5901
+ <dc:creator>
5902
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5903
+
5904
+
5905
+ <xsl:value-of select="normalize-space(*[local-name() = 'ext']/*[local-name() = 'editorialgroup']/*[local-name() = 'committee'])"/>
5906
+
5907
+
5908
+ </xsl:for-each>
5909
+ </dc:creator>
5910
+ <dc:description>
5911
+ <xsl:variable name="abstract">
5912
+
5913
+
5914
+ <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
5915
+
5916
+ </xsl:variable>
5917
+ <xsl:value-of select="normalize-space($abstract)"/>
5918
+ </dc:description>
5919
+ <pdf:Keywords>
5920
+ <xsl:call-template name="insertKeywords"/>
5921
+ </pdf:Keywords>
5922
+ </rdf:Description>
5923
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
5924
+ <!-- XMP properties go here -->
5925
+ <xmp:CreatorTool/>
5926
+ </rdf:Description>
5927
+ </rdf:RDF>
5928
+ </x:xmpmeta>
5781
5929
  </xsl:template><xsl:template name="getId">
5782
5930
  <xsl:choose>
5783
5931
  <xsl:when test="../@id">