metanorma-m3aawg 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:m3d="https://www.metanorma.org/ns/m3d" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java" version="1.0">
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
-
5
- <xsl:param name="svg_images"/>
6
- <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
7
- <xsl:variable name="images" select="document($svg_images)"/>
8
- <xsl:param name="basepath"/>
9
-
4
+
10
5
 
11
6
 
12
7
  <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
@@ -14,12 +9,8 @@
14
9
 
15
10
 
16
11
  <xsl:variable name="debug">false</xsl:variable>
17
-
18
- <xsl:variable name="marginLeftRight1" select="17.3"/>
19
- <xsl:variable name="marginLeftRight2" select="17.3"/>
20
- <xsl:variable name="marginTop" select="35"/>
21
- <xsl:variable name="marginBottom" select="23"/>
22
-
12
+
13
+
23
14
  <xsl:variable name="title-en" select="/m3d:m3d-standard/m3d:bibdata/m3d:title[@language = 'en']"/>
24
15
  <!-- Example:
25
16
  <item level="1" id="Foreword" display="true">Foreword</item>
@@ -32,10 +23,6 @@
32
23
  </contents>
33
24
  </xsl:variable>
34
25
 
35
- <xsl:variable name="lang">
36
- <xsl:call-template name="getLang"/>
37
- </xsl:variable>
38
-
39
26
  <xsl:template match="/">
40
27
  <xsl:call-template name="namespaceCheck"/>
41
28
  <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}">
@@ -343,7 +330,7 @@
343
330
  </xsl:template>
344
331
 
345
332
  <!-- ============================= -->
346
- <!-- CONTENTS -->
333
+ <!-- CONTENTS -->
347
334
  <!-- ============================= -->
348
335
 
349
336
  <!-- element with title -->
@@ -393,52 +380,11 @@
393
380
  </item>
394
381
  </xsl:if>
395
382
  </xsl:template>
396
-
397
-
398
-
399
- <xsl:template name="getListItemFormat">
400
- <xsl:choose>
401
- <xsl:when test="local-name(..) = 'ul'">
402
- <xsl:call-template name="setULLabel"/>
403
- </xsl:when>
404
- <xsl:otherwise> <!-- for ordered lists -->
405
- <xsl:choose>
406
- <xsl:when test="../@type = 'arabic'">
407
- <xsl:number format="a)" lang="en"/>
408
- </xsl:when>
409
- <xsl:when test="../@type = 'alphabet'">
410
- <xsl:number format="1)"/>
411
- </xsl:when>
412
- <xsl:otherwise>
413
- <xsl:number format="1."/>
414
- </xsl:otherwise>
415
- </xsl:choose>
416
- </xsl:otherwise>
417
- </xsl:choose>
418
- </xsl:template>
419
-
420
383
  <!-- ============================= -->
421
384
  <!-- ============================= -->
422
385
 
423
386
 
424
387
 
425
- <!-- <xsl:template match="m3d:clause//m3d:clause[not(m3d:title)]">
426
- <xsl:param name="sectionNum"/>
427
- <xsl:variable name="section">
428
- <xsl:call-template name="getSection">
429
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
430
- </xsl:call-template>
431
- </xsl:variable>
432
- <fo:block margin-top="6pt" margin-bottom="6pt" keep-with-next="always">
433
- <fo:inline>
434
- <xsl:value-of select="$section"/>
435
- </fo:inline>
436
- </fo:block>
437
- <xsl:apply-templates>
438
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
439
- </xsl:apply-templates>
440
- </xsl:template> -->
441
-
442
388
  <!-- ====== -->
443
389
  <!-- title -->
444
390
  <!-- ====== -->
@@ -588,40 +534,16 @@
588
534
  </xsl:template>
589
535
 
590
536
 
591
- <xsl:template match="m3d:ul | m3d:ol" mode="ul_ol">
537
+ <xsl:template match="m3d:ul | m3d:ol" mode="list" priority="2">
592
538
  <fo:block-container margin-left="6mm">
593
539
  <fo:block-container margin-left="0mm">
594
- <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="6mm"> <!-- margin-bottom="8pt" -->
595
- <xsl:if test="local-name() = 'ol'">
596
- <xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
597
- </xsl:if>
598
- <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
599
- </fo:list-block>
600
- <xsl:for-each select="./m3d:note">
601
- <xsl:call-template name="note"/>
602
- </xsl:for-each>
540
+ <xsl:call-template name="list"/>
603
541
  </fo:block-container>
604
542
  </fo:block-container>
605
543
  </xsl:template>
606
544
 
607
- <xsl:template match="m3d:li">
608
- <fo:list-item id="{@id}">
609
- <fo:list-item-label end-indent="label-end()">
610
- <fo:block>
611
- <xsl:call-template name="getListItemFormat"/>
612
- </fo:block>
613
- </fo:list-item-label>
614
- <fo:list-item-body start-indent="body-start()">
615
- <fo:block>
616
- <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
617
- <xsl:apply-templates select="./m3d:note"/>
618
- </fo:block>
619
- </fo:list-item-body>
620
- </fo:list-item>
621
- </xsl:template>
622
545
 
623
-
624
- <xsl:template match="m3d:preferred">
546
+ <xsl:template match="m3d:preferred" priority="2">
625
547
 
626
548
  <fo:inline>
627
549
  <xsl:call-template name="setStyle_preferred"/>
@@ -666,42 +588,27 @@
666
588
  </fo:instream-foreign-object>
667
589
  </fo:inline>
668
590
  </xsl:template>
669
-
670
-
671
-
672
- <xsl:template match="m3d:formula/m3d:stem">
673
- <fo:block margin-top="14pt" margin-bottom="14pt">
674
- <fo:table table-layout="fixed" width="100%"> <!-- 170mm -->
675
- <fo:table-column column-width="95%"/> <!-- 165mm -->
676
- <fo:table-column column-width="5%"/> <!-- 5mm -->
677
- <fo:table-body>
678
- <fo:table-row>
679
- <fo:table-cell display-align="center">
680
- <fo:block text-align="center">
681
- <xsl:apply-templates/>
682
- </fo:block>
683
- </fo:table-cell>
684
- <fo:table-cell display-align="center">
685
- <fo:block text-align="left">
686
- <xsl:apply-templates select="../m3d:name" mode="formula_number"/>
687
- </fo:block>
688
- </fo:table-cell>
689
- </fo:table-row>
690
- </fo:table-body>
691
- </fo:table>
692
- </fo:block>
693
- </xsl:template>
694
591
 
695
592
 
696
593
  <xsl:variable name="Image-M3AAWG-Logo">
697
594
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAjUAAAA8CAYAAACehUt5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA99pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1QjFGQUNFRDVCODYxMUU0OUZCN0FCODI3QzkxM0M3RiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1QjFGQUNFQzVCODYxMUU0OUZCN0FCODI3QzkxM0M3RiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwOEQ1MzE4OTE1NUU0MTE4ODdFRjlCOTFBMkJDOUNFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg1QjAy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</xsl:text>
698
595
  </xsl:variable>
699
596
 
700
- <xsl:variable name="pageWidth_">
597
+ <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:variable name="lang">
598
+ <xsl:call-template name="getLang"/>
599
+ </xsl:variable><xsl:variable name="pageWidth_">
701
600
  215.9
702
601
  </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
703
602
  279.4
704
- </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="titles_">
603
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
604
+ 17.3
605
+ </xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
606
+ 17.3
607
+ </xsl:variable><xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/><xsl:variable name="marginTop_">
608
+ 35
609
+ </xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
610
+ 23
611
+ </xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
705
612
 
706
613
  <title-edition lang="en">
707
614
 
@@ -763,7 +670,7 @@
763
670
  </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
764
671
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
765
672
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
766
- </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
673
+ </xsl:variable><xsl:variable name="linebreak">&#8232;</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space">​</xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
767
674
  <xsl:param name="name"/>
768
675
  <xsl:param name="lang"/>
769
676
  <xsl:variable name="lang_">
@@ -786,7 +693,7 @@
786
693
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
787
694
  </xsl:otherwise>
788
695
  </xsl:choose>
789
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
696
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:attribute-set name="root-style">
790
697
 
791
698
 
792
699
 
@@ -950,7 +857,7 @@
950
857
 
951
858
 
952
859
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
953
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
860
+
954
861
 
955
862
 
956
863
 
@@ -1321,12 +1228,11 @@
1321
1228
 
1322
1229
 
1323
1230
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1324
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
1231
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
1232
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
1325
1233
 
1326
1234
 
1327
1235
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1328
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
1329
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
1330
1236
 
1331
1237
 
1332
1238
 
@@ -1334,10 +1240,8 @@
1334
1240
 
1335
1241
 
1336
1242
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1243
+ <xsl:attribute name="text-align">right</xsl:attribute>
1337
1244
 
1338
-
1339
- <xsl:attribute name="text-align">right</xsl:attribute>
1340
-
1341
1245
 
1342
1246
  </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1343
1247
 
@@ -1357,6 +1261,9 @@
1357
1261
 
1358
1262
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1359
1263
 
1264
+ </xsl:attribute-set><xsl:attribute-set name="term-name-style">
1265
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1266
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1360
1267
  </xsl:attribute-set><xsl:attribute-set name="figure-style">
1361
1268
 
1362
1269
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
@@ -1386,6 +1293,38 @@
1386
1293
 
1387
1294
 
1388
1295
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1296
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1297
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1298
+
1299
+
1300
+
1301
+
1302
+ <xsl:attribute name="margin-top">14pt</xsl:attribute>
1303
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
1304
+
1305
+
1306
+
1307
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-block-style">
1308
+ <xsl:attribute name="text-align">center</xsl:attribute>
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
1321
+ <xsl:attribute name="text-align">right</xsl:attribute>
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+ <xsl:attribute name="text-align">left</xsl:attribute>
1389
1328
 
1390
1329
  </xsl:attribute-set><xsl:attribute-set name="image-style">
1391
1330
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -1422,6 +1361,18 @@
1422
1361
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1423
1362
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1424
1363
 
1364
+ </xsl:attribute-set><xsl:attribute-set name="preferred-block-style">
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+ </xsl:attribute-set><xsl:attribute-set name="preferred-term-style">
1372
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1373
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1374
+
1375
+
1425
1376
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1426
1377
 
1427
1378
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1455,6 +1406,36 @@
1455
1406
 
1456
1407
  </xsl:attribute-set><xsl:attribute-set name="list-style">
1457
1408
 
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+ <xsl:attribute name="provisional-distance-between-starts">6mm</xsl:attribute>
1418
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+ </xsl:attribute-set><xsl:attribute-set name="list-item-style">
1429
+
1430
+
1431
+ </xsl:attribute-set><xsl:attribute-set name="list-item-label-style">
1432
+
1433
+
1434
+
1435
+ </xsl:attribute-set><xsl:attribute-set name="list-item-body-style">
1436
+
1437
+
1438
+
1458
1439
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
1459
1440
  <xsl:attribute name="line-height">135%</xsl:attribute>
1460
1441
  </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
@@ -1730,6 +1711,111 @@
1730
1711
 
1731
1712
 
1732
1713
 
1714
+ </xsl:attribute-set><xsl:attribute-set name="hljs-doctag">
1715
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1716
+ </xsl:attribute-set><xsl:attribute-set name="hljs-keyword">
1717
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1718
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-keyword">
1719
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1720
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-tag">
1721
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1722
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-variable">
1723
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1724
+ </xsl:attribute-set><xsl:attribute-set name="hljs-type">
1725
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1726
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable_and_language_">
1727
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1728
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title">
1729
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1730
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class_">
1731
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1732
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class__and_inherited__">
1733
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1734
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_function_">
1735
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1736
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attr">
1737
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1738
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attribute">
1739
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1740
+ </xsl:attribute-set><xsl:attribute-set name="hljs-literal">
1741
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1742
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta">
1743
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1744
+ </xsl:attribute-set><xsl:attribute-set name="hljs-number">
1745
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1746
+ </xsl:attribute-set><xsl:attribute-set name="hljs-operator">
1747
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1748
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable">
1749
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1750
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-attr">
1751
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1752
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-class">
1753
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1754
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-id">
1755
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1756
+ </xsl:attribute-set><xsl:attribute-set name="hljs-regexp">
1757
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1758
+ </xsl:attribute-set><xsl:attribute-set name="hljs-string">
1759
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1760
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-string">
1761
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1762
+ </xsl:attribute-set><xsl:attribute-set name="hljs-built_in">
1763
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1764
+ </xsl:attribute-set><xsl:attribute-set name="hljs-symbol">
1765
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1766
+ </xsl:attribute-set><xsl:attribute-set name="hljs-comment">
1767
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1768
+ </xsl:attribute-set><xsl:attribute-set name="hljs-code">
1769
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1770
+ </xsl:attribute-set><xsl:attribute-set name="hljs-formula">
1771
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1772
+ </xsl:attribute-set><xsl:attribute-set name="hljs-name">
1773
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1774
+ </xsl:attribute-set><xsl:attribute-set name="hljs-quote">
1775
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1776
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-tag">
1777
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1778
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-pseudo">
1779
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1780
+ </xsl:attribute-set><xsl:attribute-set name="hljs-subst">
1781
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1782
+ </xsl:attribute-set><xsl:attribute-set name="hljs-section">
1783
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1784
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1785
+ </xsl:attribute-set><xsl:attribute-set name="hljs-bullet">
1786
+ <xsl:attribute name="color">#735c0f</xsl:attribute>
1787
+ </xsl:attribute-set><xsl:attribute-set name="hljs-emphasis">
1788
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1789
+ <xsl:attribute name="font-style">italic</xsl:attribute>
1790
+ </xsl:attribute-set><xsl:attribute-set name="hljs-strong">
1791
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1792
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1793
+ </xsl:attribute-set><xsl:attribute-set name="hljs-addition">
1794
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1795
+ <xsl:attribute name="background-color">#f0fff4</xsl:attribute>
1796
+ </xsl:attribute-set><xsl:attribute-set name="hljs-deletion">
1797
+ <xsl:attribute name="color">#b31d28</xsl:attribute>
1798
+ <xsl:attribute name="background-color">#ffeef0</xsl:attribute>
1799
+ </xsl:attribute-set><xsl:attribute-set name="hljs-char_and_escape_">
1800
+ </xsl:attribute-set><xsl:attribute-set name="hljs-link">
1801
+ </xsl:attribute-set><xsl:attribute-set name="hljs-params">
1802
+ </xsl:attribute-set><xsl:attribute-set name="hljs-property">
1803
+ </xsl:attribute-set><xsl:attribute-set name="hljs-punctuation">
1804
+ </xsl:attribute-set><xsl:attribute-set name="hljs-tag">
1805
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-title-style">
1806
+ <xsl:attribute name="role">H1</xsl:attribute>
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-clause-title-style">
1813
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1814
+
1815
+
1816
+
1817
+
1818
+
1733
1819
  </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
1734
1820
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1735
1821
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -1822,9 +1908,12 @@
1822
1908
 
1823
1909
 
1824
1910
  </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
1911
+ <xsl:param name="margin"/>
1825
1912
 
1826
1913
  <!-- process in the template 'paragraph' -->
1827
- <xsl:call-template name="paragraph"/>
1914
+ <xsl:call-template name="paragraph">
1915
+ <xsl:with-param name="margin" select="$margin"/>
1916
+ </xsl:call-template>
1828
1917
 
1829
1918
  </xsl:template><xsl:template match="*[local-name()='feedback-statement']">
1830
1919
  <fo:block xsl:use-attribute-sets="feedback-statement-style">
@@ -1836,9 +1925,12 @@
1836
1925
  <xsl:call-template name="title"/>
1837
1926
 
1838
1927
  </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
1928
+ <xsl:param name="margin"/>
1839
1929
 
1840
1930
  <!-- process in the template 'paragraph' -->
1841
- <xsl:call-template name="paragraph"/>
1931
+ <xsl:call-template name="paragraph">
1932
+ <xsl:with-param name="margin" select="$margin"/>
1933
+ </xsl:call-template>
1842
1934
 
1843
1935
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1844
1936
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
@@ -2184,8 +2276,7 @@
2184
2276
  </xsl:call-template>
2185
2277
  </xsl:if>
2186
2278
  </xsl:template><xsl:template match="text()" mode="td_text">
2187
- <xsl:variable name="zero-space">​</xsl:variable>
2188
- <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
2279
+ <xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
2189
2280
  </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
2190
2281
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2191
2282
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
@@ -3160,20 +3251,44 @@
3160
3251
  <fo:inline text-decoration="underline">
3161
3252
  <xsl:apply-templates/>
3162
3253
  </fo:inline>
3163
- </xsl:template><xsl:template match="*[local-name()='add']">
3254
+ </xsl:template><xsl:template match="*[local-name()='add']" name="tag_add">
3164
3255
  <xsl:param name="skip">true</xsl:param>
3256
+ <xsl:param name="block">false</xsl:param>
3257
+ <xsl:param name="type"/>
3258
+ <xsl:param name="text-align"/>
3165
3259
  <xsl:choose>
3166
3260
  <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
3167
3261
  <xsl:choose>
3168
- <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
3262
+ <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab']) or local-name(..) = 'formattedref' and not(preceding-sibling::node())) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
3169
3263
  <xsl:otherwise>
3170
- <fo:inline>
3264
+ <xsl:variable name="tag">
3171
3265
  <xsl:call-template name="insertTag">
3172
- <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
3266
+ <xsl:with-param name="type">
3267
+ <xsl:choose>
3268
+ <xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
3269
+ <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
3270
+ </xsl:choose>
3271
+ </xsl:with-param>
3173
3272
  <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
3174
3273
  <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
3175
3274
  </xsl:call-template>
3176
- </fo:inline>
3275
+ </xsl:variable>
3276
+ <xsl:choose>
3277
+ <xsl:when test="$block = 'false'">
3278
+ <fo:inline>
3279
+ <xsl:copy-of select="$tag"/>
3280
+ </fo:inline>
3281
+ </xsl:when>
3282
+ <xsl:otherwise>
3283
+ <fo:block> <!-- for around figures -->
3284
+ <xsl:if test="$text-align != ''">
3285
+ <xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
3286
+ </xsl:if>
3287
+ <xsl:copy-of select="$tag"/>
3288
+ </fo:block>
3289
+ </xsl:otherwise>
3290
+ </xsl:choose>
3291
+
3177
3292
  </xsl:otherwise>
3178
3293
  </xsl:choose>
3179
3294
  </xsl:when>
@@ -3532,17 +3647,21 @@
3532
3647
  </xsl:apply-templates>
3533
3648
  </xsl:template><xsl:template name="getLang">
3534
3649
  <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3535
- <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3536
3650
  <xsl:variable name="language">
3537
3651
  <xsl:choose>
3538
3652
  <xsl:when test="$language_current != ''">
3539
3653
  <xsl:value-of select="$language_current"/>
3540
3654
  </xsl:when>
3541
- <xsl:when test="$language_current_2 != ''">
3542
- <xsl:value-of select="$language_current_2"/>
3543
- </xsl:when>
3544
3655
  <xsl:otherwise>
3545
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3656
+ <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3657
+ <xsl:choose>
3658
+ <xsl:when test="$language_current_2 != ''">
3659
+ <xsl:value-of select="$language_current_2"/>
3660
+ </xsl:when>
3661
+ <xsl:otherwise>
3662
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3663
+ </xsl:otherwise>
3664
+ </xsl:choose>
3546
3665
  </xsl:otherwise>
3547
3666
  </xsl:choose>
3548
3667
  </xsl:variable>
@@ -3759,8 +3878,8 @@
3759
3878
 
3760
3879
  </xsl:if>
3761
3880
  <fo:block-container margin-left="0mm">
3762
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
3763
- <xsl:apply-templates/>
3881
+ <fo:block id="{@id}">
3882
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
3764
3883
  </fo:block>
3765
3884
  </fo:block-container>
3766
3885
  </fo:block-container>
@@ -3772,10 +3891,43 @@
3772
3891
  <fo:inline>
3773
3892
  <xsl:apply-templates/>
3774
3893
  </fo:inline>
3775
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="formula_number"> <!-- show by demand -->
3894
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
3776
3895
  <xsl:if test="normalize-space() != ''">
3777
3896
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
3778
3897
  </xsl:if>
3898
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][*[local-name() = 'name']]/*[local-name() = 'stem']">
3899
+ <fo:block xsl:use-attribute-sets="formula-style">
3900
+
3901
+
3902
+
3903
+ <fo:table table-layout="fixed" width="100%">
3904
+ <fo:table-column column-width="95%"/>
3905
+ <fo:table-column column-width="5%"/>
3906
+ <fo:table-body>
3907
+ <fo:table-row>
3908
+ <fo:table-cell display-align="center">
3909
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
3910
+
3911
+
3912
+
3913
+ <xsl:apply-templates/>
3914
+ </fo:block>
3915
+ </fo:table-cell>
3916
+ <fo:table-cell display-align="center">
3917
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style">
3918
+ <xsl:apply-templates select="../*[local-name() = 'name']"/>
3919
+ </fo:block>
3920
+ </fo:table-cell>
3921
+ </fo:table-row>
3922
+ </fo:table-body>
3923
+ </fo:table>
3924
+ </fo:block>
3925
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][not(*[local-name() = 'name'])]/*[local-name() = 'stem']">
3926
+ <fo:block xsl:use-attribute-sets="formula-style">
3927
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
3928
+ <xsl:apply-templates/>
3929
+ </fo:block>
3930
+ </fo:block>
3779
3931
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
3780
3932
 
3781
3933
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
@@ -4727,12 +4879,140 @@
4727
4879
  </fo:block-container>
4728
4880
  </fo:block-container>
4729
4881
  </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
4730
- <xsl:variable name="text">
4882
+ <xsl:choose>
4883
+ <xsl:when test="normalize-space($syntax-highlight) = 'true' and normalize-space(../@lang) != ''"> <!-- condition for turn on of highlighting -->
4884
+ <xsl:variable name="syntax" select="java:org.metanorma.fop.Util.syntaxHighlight(., ../@lang)"/>
4885
+ <xsl:choose>
4886
+ <xsl:when test="normalize-space($syntax) != ''"><!-- if there is highlighted result -->
4887
+ <xsl:apply-templates select="xalan:nodeset($syntax)" mode="syntax_highlight"/> <!-- process span tags -->
4888
+ </xsl:when>
4889
+ <xsl:otherwise> <!-- if case of non-succesfull syntax highlight (for instance, unknown lang), process without highlighting -->
4890
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4891
+ </xsl:otherwise>
4892
+ </xsl:choose>
4893
+ </xsl:when>
4894
+ <xsl:otherwise>
4895
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4896
+ </xsl:otherwise>
4897
+ </xsl:choose>
4898
+
4899
+ </xsl:template><xsl:template name="add_spaces_to_sourcecode">
4900
+ <xsl:variable name="text_step1">
4731
4901
  <xsl:call-template name="add-zero-spaces-equal"/>
4732
4902
  </xsl:variable>
4733
- <xsl:call-template name="add-zero-spaces-java">
4734
- <xsl:with-param name="text" select="$text"/>
4735
- </xsl:call-template>
4903
+ <xsl:variable name="text_step2">
4904
+ <xsl:call-template name="add-zero-spaces-java">
4905
+ <xsl:with-param name="text" select="$text_step1"/>
4906
+ </xsl:call-template>
4907
+ </xsl:variable>
4908
+ <xsl:value-of select="$text_step2"/>
4909
+ </xsl:template><xsl:template match="*" mode="syntax_highlight">
4910
+ <xsl:apply-templates mode="syntax_highlight"/>
4911
+ </xsl:template><xsl:variable name="syntax_highlight_styles_">
4912
+ <style class="hljs-addition" xsl:use-attribute-sets="hljs-addition"/>
4913
+ <style class="hljs-attr" xsl:use-attribute-sets="hljs-attr"/>
4914
+ <style class="hljs-attribute" xsl:use-attribute-sets="hljs-attribute"/>
4915
+ <style class="hljs-built_in" xsl:use-attribute-sets="hljs-built_in"/>
4916
+ <style class="hljs-bullet" xsl:use-attribute-sets="hljs-bullet"/>
4917
+ <style class="hljs-char_and_escape_" xsl:use-attribute-sets="hljs-char_and_escape_"/>
4918
+ <style class="hljs-code" xsl:use-attribute-sets="hljs-code"/>
4919
+ <style class="hljs-comment" xsl:use-attribute-sets="hljs-comment"/>
4920
+ <style class="hljs-deletion" xsl:use-attribute-sets="hljs-deletion"/>
4921
+ <style class="hljs-doctag" xsl:use-attribute-sets="hljs-doctag"/>
4922
+ <style class="hljs-emphasis" xsl:use-attribute-sets="hljs-emphasis"/>
4923
+ <style class="hljs-formula" xsl:use-attribute-sets="hljs-formula"/>
4924
+ <style class="hljs-keyword" xsl:use-attribute-sets="hljs-keyword"/>
4925
+ <style class="hljs-link" xsl:use-attribute-sets="hljs-link"/>
4926
+ <style class="hljs-literal" xsl:use-attribute-sets="hljs-literal"/>
4927
+ <style class="hljs-meta" xsl:use-attribute-sets="hljs-meta"/>
4928
+ <style class="hljs-meta_hljs-string" xsl:use-attribute-sets="hljs-meta_hljs-string"/>
4929
+ <style class="hljs-meta_hljs-keyword" xsl:use-attribute-sets="hljs-meta_hljs-keyword"/>
4930
+ <style class="hljs-name" xsl:use-attribute-sets="hljs-name"/>
4931
+ <style class="hljs-number" xsl:use-attribute-sets="hljs-number"/>
4932
+ <style class="hljs-operator" xsl:use-attribute-sets="hljs-operator"/>
4933
+ <style class="hljs-params" xsl:use-attribute-sets="hljs-params"/>
4934
+ <style class="hljs-property" xsl:use-attribute-sets="hljs-property"/>
4935
+ <style class="hljs-punctuation" xsl:use-attribute-sets="hljs-punctuation"/>
4936
+ <style class="hljs-quote" xsl:use-attribute-sets="hljs-quote"/>
4937
+ <style class="hljs-regexp" xsl:use-attribute-sets="hljs-regexp"/>
4938
+ <style class="hljs-section" xsl:use-attribute-sets="hljs-section"/>
4939
+ <style class="hljs-selector-attr" xsl:use-attribute-sets="hljs-selector-attr"/>
4940
+ <style class="hljs-selector-class" xsl:use-attribute-sets="hljs-selector-class"/>
4941
+ <style class="hljs-selector-id" xsl:use-attribute-sets="hljs-selector-id"/>
4942
+ <style class="hljs-selector-pseudo" xsl:use-attribute-sets="hljs-selector-pseudo"/>
4943
+ <style class="hljs-selector-tag" xsl:use-attribute-sets="hljs-selector-tag"/>
4944
+ <style class="hljs-string" xsl:use-attribute-sets="hljs-string"/>
4945
+ <style class="hljs-strong" xsl:use-attribute-sets="hljs-strong"/>
4946
+ <style class="hljs-subst" xsl:use-attribute-sets="hljs-subst"/>
4947
+ <style class="hljs-symbol" xsl:use-attribute-sets="hljs-symbol"/>
4948
+ <style class="hljs-tag" xsl:use-attribute-sets="hljs-tag"/>
4949
+ <!-- <style class="hljs-tag_hljs-attr" xsl:use-attribute-sets="hljs-tag_hljs-attr"></style> -->
4950
+ <!-- <style class="hljs-tag_hljs-name" xsl:use-attribute-sets="hljs-tag_hljs-name"></style> -->
4951
+ <style class="hljs-template-tag" xsl:use-attribute-sets="hljs-template-tag"/>
4952
+ <style class="hljs-template-variable" xsl:use-attribute-sets="hljs-template-variable"/>
4953
+ <style class="hljs-title" xsl:use-attribute-sets="hljs-title"/>
4954
+ <style class="hljs-title_and_class_" xsl:use-attribute-sets="hljs-title_and_class_"/>
4955
+ <style class="hljs-title_and_class__and_inherited__" xsl:use-attribute-sets="hljs-title_and_class__and_inherited__"/>
4956
+ <style class="hljs-title_and_function_" xsl:use-attribute-sets="hljs-title_and_function_"/>
4957
+ <style class="hljs-type" xsl:use-attribute-sets="hljs-type"/>
4958
+ <style class="hljs-variable" xsl:use-attribute-sets="hljs-variable"/>
4959
+ <style class="hljs-variable_and_language_" xsl:use-attribute-sets="hljs-variable_and_language_"/>
4960
+ </xsl:variable><xsl:variable name="syntax_highlight_styles" select="xalan:nodeset($syntax_highlight_styles_)"/><xsl:template match="span" mode="syntax_highlight" priority="2">
4961
+ <!-- <fo:inline color="green" font-style="italic"><xsl:apply-templates mode="syntax_highlight"/></fo:inline> -->
4962
+ <fo:inline>
4963
+ <xsl:variable name="classes_">
4964
+ <xsl:call-template name="split">
4965
+ <xsl:with-param name="pText" select="@class"/>
4966
+ <xsl:with-param name="sep" select="' '"/>
4967
+ </xsl:call-template>
4968
+ <!-- a few classes together (_and_ suffix) -->
4969
+ <xsl:if test="contains(@class, 'hljs-char') and contains(@class, 'escape_')">
4970
+ <item>hljs-char_and_escape_</item>
4971
+ </xsl:if>
4972
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_')">
4973
+ <item>hljs-title_and_class_</item>
4974
+ </xsl:if>
4975
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_') and contains(@class, 'inherited__')">
4976
+ <item>hljs-title_and_class__and_inherited__</item>
4977
+ </xsl:if>
4978
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'function_')">
4979
+ <item>hljs-title_and_function_</item>
4980
+ </xsl:if>
4981
+ <xsl:if test="contains(@class, 'hljs-variable') and contains(@class, 'language_')">
4982
+ <item>hljs-variable_and_language_</item>
4983
+ </xsl:if>
4984
+ <!-- with parent classes (_ suffix) -->
4985
+ <xsl:if test="contains(@class, 'hljs-keyword') and contains(ancestor::*/@class, 'hljs-meta')">
4986
+ <item>hljs-meta_hljs-keyword</item>
4987
+ </xsl:if>
4988
+ <xsl:if test="contains(@class, 'hljs-string') and contains(ancestor::*/@class, 'hljs-meta')">
4989
+ <item>hljs-meta_hljs-string</item>
4990
+ </xsl:if>
4991
+ </xsl:variable>
4992
+ <xsl:variable name="classes" select="xalan:nodeset($classes_)"/>
4993
+
4994
+ <xsl:for-each select="$classes/item">
4995
+ <xsl:variable name="class_name" select="."/>
4996
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
4997
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
4998
+ </xsl:for-each>
4999
+ </xsl:for-each>
5000
+
5001
+ <!-- <xsl:variable name="class_name">
5002
+ <xsl:choose>
5003
+ <xsl:when test="@class = 'hljs-attr' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-attr</xsl:when>
5004
+ <xsl:when test="@class = 'hljs-name' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-name</xsl:when>
5005
+ <xsl:when test="@class = 'hljs-string' and ancestor::*/@class = 'hljs-meta'">hljs-meta_hljs-string</xsl:when>
5006
+ <xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
5007
+ </xsl:choose>
5008
+ </xsl:variable>
5009
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
5010
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
5011
+ </xsl:for-each> -->
5012
+
5013
+ <xsl:apply-templates mode="syntax_highlight"/></fo:inline>
5014
+ </xsl:template><xsl:template match="text()" mode="syntax_highlight" priority="2">
5015
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4736
5016
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
4737
5017
  <xsl:if test="normalize-space() != ''">
4738
5018
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
@@ -5103,11 +5383,14 @@
5103
5383
 
5104
5384
 
5105
5385
  <fo:block-container margin-left="0mm">
5106
-
5107
- <fo:block xsl:use-attribute-sets="quote-style">
5386
+ <fo:block-container xsl:use-attribute-sets="quote-style">
5108
5387
 
5109
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5110
- </fo:block>
5388
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5389
+ <fo:block role="BlockQuote">
5390
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5391
+ </fo:block>
5392
+ </fo:block-container>
5393
+ </fo:block-container>
5111
5394
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
5112
5395
  <fo:block xsl:use-attribute-sets="quote-source-style">
5113
5396
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
@@ -5257,6 +5540,31 @@
5257
5540
  <xsl:with-param name="count" select="$count - 1"/>
5258
5541
  </xsl:call-template>
5259
5542
  </xsl:if>
5543
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']">
5544
+ <xsl:variable name="level">
5545
+ <xsl:call-template name="getLevel"/>
5546
+ </xsl:variable>
5547
+ <xsl:variable name="font-size">
5548
+ inherit
5549
+ </xsl:variable>
5550
+ <xsl:variable name="levelTerm">
5551
+ <xsl:call-template name="getLevelTermName"/>
5552
+ </xsl:variable>
5553
+ <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
5554
+
5555
+
5556
+
5557
+ <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
5558
+ <fo:block xsl:use-attribute-sets="term-name-style">
5559
+ <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
5560
+ </fo:block>
5561
+ </xsl:if>
5562
+
5563
+ <fo:block xsl:use-attribute-sets="preferred-term-style">
5564
+ <xsl:call-template name="setStyle_preferred"/>
5565
+ <xsl:apply-templates/>
5566
+ </fo:block>
5567
+ </fo:block>
5260
5568
  </xsl:template><xsl:template match="*[local-name() = 'domain']">
5261
5569
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
5262
5570
  <xsl:text> </xsl:text>
@@ -5347,24 +5655,8 @@
5347
5655
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5348
5656
  </xsl:template><xsl:variable name="ul_labels_">
5349
5657
 
5350
-
5351
-
5352
-
5353
-
5354
-
5355
-
5356
-
5357
-
5358
- <label font-size="18pt" margin-top="-0.5mm">•</label> <!-- margin-top to vertical align big dot -->
5359
-
5360
-
5361
-
5362
-
5363
-
5364
-
5365
-
5366
-
5367
-
5658
+ <label font-size="18pt" margin-top="-0.5mm">•</label> <!-- margin-top to vertical align big dot -->
5659
+
5368
5660
  </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
5369
5661
  <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5370
5662
  <xsl:variable name="list_level">
@@ -5390,6 +5682,91 @@
5390
5682
  </xsl:template><xsl:template match="label" mode="ul_labels">
5391
5683
  <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
5392
5684
  <xsl:value-of select="."/>
5685
+ </xsl:template><xsl:template name="getListItemFormat">
5686
+ <!-- Example: for BSI <?list-type loweralpha?> -->
5687
+ <xsl:variable name="processing_instruction_type" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-type'))"/>
5688
+ <xsl:choose>
5689
+ <xsl:when test="local-name(..) = 'ul'">
5690
+ <xsl:choose>
5691
+ <xsl:when test="normalize-space($processing_instruction_type) = 'simple'"/>
5692
+ <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
5693
+ </xsl:choose>
5694
+ </xsl:when>
5695
+ <xsl:otherwise> <!-- for ordered lists 'ol' -->
5696
+
5697
+ <!-- Example: for BSI <?list-start 2?> -->
5698
+ <xsl:variable name="processing_instruction_start" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-start'))"/>
5699
+
5700
+ <xsl:variable name="start_value">
5701
+ <xsl:choose>
5702
+ <xsl:when test="normalize-space($processing_instruction_start) != ''">
5703
+ <xsl:value-of select="number($processing_instruction_start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
5704
+ </xsl:when>
5705
+ <xsl:when test="normalize-space(../@start) != ''">
5706
+ <xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
5707
+ </xsl:when>
5708
+ <xsl:otherwise>0</xsl:otherwise>
5709
+ </xsl:choose>
5710
+ </xsl:variable>
5711
+
5712
+ <xsl:variable name="curr_value"><xsl:number/></xsl:variable>
5713
+
5714
+ <xsl:variable name="type">
5715
+ <xsl:choose>
5716
+ <xsl:when test="normalize-space($processing_instruction_type) != ''"><xsl:value-of select="$processing_instruction_type"/></xsl:when>
5717
+ <xsl:when test="normalize-space(../@type) != ''"><xsl:value-of select="../@type"/></xsl:when>
5718
+
5719
+ <xsl:otherwise> <!-- if no @type or @class = 'steps' -->
5720
+
5721
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5722
+ <xsl:variable name="list_level">
5723
+ <xsl:choose>
5724
+ <xsl:when test="$list_level_ &lt;= 5"><xsl:value-of select="$list_level_"/></xsl:when>
5725
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 5"/></xsl:otherwise>
5726
+ </xsl:choose>
5727
+ </xsl:variable>
5728
+
5729
+ <xsl:choose>
5730
+ <xsl:when test="$list_level mod 5 = 0">roman_upper</xsl:when> <!-- level 5 -->
5731
+ <xsl:when test="$list_level mod 4 = 0">alphabet_upper</xsl:when> <!-- level 4 -->
5732
+ <xsl:when test="$list_level mod 3 = 0">roman</xsl:when> <!-- level 3 -->
5733
+ <xsl:when test="$list_level mod 2 = 0 and ancestor::*/@class = 'steps'">alphabet</xsl:when> <!-- level 2 and @class = 'steps'-->
5734
+ <xsl:when test="$list_level mod 2 = 0">arabic</xsl:when> <!-- level 2 -->
5735
+ <xsl:otherwise> <!-- level 1 -->
5736
+ <xsl:choose>
5737
+ <xsl:when test="ancestor::*/@class = 'steps'">arabic</xsl:when>
5738
+ <xsl:otherwise>alphabet</xsl:otherwise>
5739
+ </xsl:choose>
5740
+ </xsl:otherwise>
5741
+ </xsl:choose>
5742
+
5743
+ </xsl:otherwise>
5744
+ </xsl:choose>
5745
+ </xsl:variable>
5746
+
5747
+ <xsl:variable name="format">
5748
+ <xsl:choose>
5749
+ <xsl:when test="$type = 'arabic'">
5750
+ 1.
5751
+ </xsl:when>
5752
+ <xsl:when test="$type = 'alphabet'">
5753
+ a)
5754
+ </xsl:when>
5755
+ <xsl:when test="$type = 'alphabet_upper'">
5756
+ A.
5757
+ </xsl:when>
5758
+ <xsl:when test="$type = 'roman'">
5759
+ i)
5760
+ </xsl:when>
5761
+ <xsl:when test="$type = 'roman_upper'">I.</xsl:when>
5762
+ <xsl:otherwise>1.</xsl:otherwise> <!-- for any case, if $type has non-determined value, not using -->
5763
+ </xsl:choose>
5764
+ </xsl:variable>
5765
+
5766
+ <xsl:number value="$start_value + $curr_value" format="{normalize-space($format)}" lang="en"/>
5767
+
5768
+ </xsl:otherwise>
5769
+ </xsl:choose>
5393
5770
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
5394
5771
  <xsl:choose>
5395
5772
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -5405,18 +5782,70 @@
5405
5782
 
5406
5783
  <fo:block-container margin-left="0mm">
5407
5784
  <fo:block>
5408
- <xsl:apply-templates select="." mode="ul_ol"/>
5785
+ <xsl:apply-templates select="." mode="list"/>
5409
5786
  </fo:block>
5410
5787
  </fo:block-container>
5411
5788
  </fo:block-container>
5412
5789
  </xsl:when>
5413
5790
  <xsl:otherwise>
5414
5791
  <fo:block>
5415
- <xsl:apply-templates select="." mode="ul_ol"/>
5792
+ <xsl:apply-templates select="." mode="list"/>
5416
5793
  </fo:block>
5417
5794
  </xsl:otherwise>
5418
5795
  </xsl:choose>
5419
- </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
5796
+ </xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
5797
+ <fo:list-block xsl:use-attribute-sets="list-style">
5798
+
5799
+
5800
+
5801
+
5802
+
5803
+
5804
+ <xsl:if test="local-name() = 'ol'">
5805
+ <xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
5806
+ </xsl:if>
5807
+
5808
+
5809
+
5810
+
5811
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
5812
+ </fo:list-block>
5813
+ <!-- <xsl:for-each select="./iho:note">
5814
+ <xsl:call-template name="note"/>
5815
+ </xsl:for-each> -->
5816
+ <xsl:apply-templates select="./*[local-name() = 'note']"/>
5817
+ </xsl:template><xsl:template match="*[local-name()='li']">
5818
+ <fo:list-item xsl:use-attribute-sets="list-item-style">
5819
+ <xsl:copy-of select="@id"/>
5820
+
5821
+
5822
+
5823
+ <fo:list-item-label end-indent="label-end()">
5824
+ <fo:block xsl:use-attribute-sets="list-item-label-style">
5825
+
5826
+
5827
+
5828
+ <xsl:call-template name="getListItemFormat"/>
5829
+ </fo:block>
5830
+ </fo:list-item-label>
5831
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
5832
+ <fo:block>
5833
+
5834
+
5835
+
5836
+
5837
+
5838
+ <xsl:apply-templates/>
5839
+
5840
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
5841
+
5842
+ <xsl:for-each select="./bsi:note">
5843
+ <xsl:call-template name="note"/>
5844
+ </xsl:for-each> -->
5845
+ </fo:block>
5846
+ </fo:list-item-body>
5847
+ </fo:list-item>
5848
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="bookmark_in_fn">
5420
5849
  <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
5421
5850
  <bookmark><xsl:value-of select="@id"/></bookmark>
5422
5851
  </xsl:for-each>
@@ -5438,7 +5867,7 @@
5438
5867
  <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
5439
5868
  <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
5440
5869
  <xsl:if test="@to">
5441
- <xsl:value-of select="$dash"/>
5870
+ <xsl:value-of select="$en_dash"/>
5442
5871
  <xsl:copy>
5443
5872
  <xsl:copy-of select="@*"/>
5444
5873
  <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
@@ -5463,7 +5892,7 @@
5463
5892
  <xsl:param name="target"/>
5464
5893
  <!-- <node></node> -->
5465
5894
  <xsl:choose>
5466
- <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
5895
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $en_dash) and $remove = 'true'">
5467
5896
  <!-- skip text (i.e. remove it) and process next element -->
5468
5897
  <!-- [removed_<xsl:value-of select="."/>] -->
5469
5898
  <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
@@ -5547,12 +5976,22 @@
5547
5976
  </xsl:variable>
5548
5977
  <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
5549
5978
  <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
5979
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
5980
+ <fo:block xsl:use-attribute-sets="indexsect-title-style">
5981
+ <!-- Index -->
5982
+ <xsl:apply-templates/>
5983
+ </fo:block>
5984
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']/*[local-name() = 'title']" priority="4">
5985
+ <!-- Letter A, B, C, ... -->
5986
+ <fo:block xsl:use-attribute-sets="indexsect-clause-title-style">
5987
+ <xsl:apply-templates/>
5988
+ </fo:block>
5550
5989
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
5551
5990
  <xsl:apply-templates/>
5552
5991
  <fo:block>
5553
- <xsl:if test="following-sibling::*[local-name() = 'clause']">
5554
- <fo:block> </fo:block>
5555
- </xsl:if>
5992
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
5993
+ <fo:block> </fo:block>
5994
+ </xsl:if>
5556
5995
  </fo:block>
5557
5996
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
5558
5997
  <xsl:apply-templates/>
@@ -5562,6 +6001,9 @@
5562
6001
 
5563
6002
  <xsl:apply-templates/>
5564
6003
  </fo:block>
6004
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
6005
+ <!-- to split by '_' and other chars -->
6006
+ <xsl:call-template name="add-zero-spaces-java"/>
5565
6007
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
5566
6008
  <fo:inline id="{@id}" font-size="1pt"/>
5567
6009
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
@@ -5901,7 +6343,7 @@
5901
6343
  </fo:table-body>
5902
6344
  </fo:table>
5903
6345
  </fo:block>
5904
- </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
6346
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']" priority="2">
5905
6347
  <fo:table-row min-height="5mm">
5906
6348
  <xsl:apply-templates/>
5907
6349
  </fo:table-row>
@@ -6129,9 +6571,6 @@
6129
6571
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
6130
6572
  </xsl:choose>
6131
6573
  </xsl:template><xsl:template name="addPDFUAmeta">
6132
- <xsl:variable name="lang">
6133
- <xsl:call-template name="getLang"/>
6134
- </xsl:variable>
6135
6574
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
6136
6575
  <pdf:dictionary type="normal" key="ViewerPreferences">
6137
6576
  <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
@@ -6359,10 +6798,12 @@
6359
6798
  <xsl:param name="key"/>
6360
6799
  <xsl:param name="formatted">false</xsl:param>
6361
6800
  <xsl:param name="lang"/>
6801
+ <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
6362
6802
 
6363
6803
  <xsl:variable name="curr_lang">
6364
6804
  <xsl:choose>
6365
6805
  <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
6806
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6366
6807
  <xsl:otherwise>
6367
6808
  <xsl:call-template name="getLang"/>
6368
6809
  </xsl:otherwise>
@@ -6397,6 +6838,7 @@
6397
6838
  </xsl:otherwise>
6398
6839
  </xsl:choose>
6399
6840
  </xsl:when>
6841
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6400
6842
  <xsl:otherwise>
6401
6843
  <xsl:variable name="key_">
6402
6844
  <xsl:call-template name="capitalize">