metanorma-bipm 1.0.6 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -39,33 +39,47 @@ module IsoDoc
39
39
  ret
40
40
  end
41
41
 
42
- def nonstd_bibitem(list, b, ordinal, biblio)
43
- list.p **attr_code(iso_bibitem_entry_attrs(b, biblio)) do |ref|
44
- ids = bibitem_ref_code(b)
42
+ def nonstd_bibitem(list, bibitem, ordinal, biblio)
43
+ list.p **attr_code(iso_bibitem_entry_attrs(bibitem, biblio)) do |ref|
44
+ ids = bibitem_ref_code(bibitem)
45
45
  identifiers = render_identifier(ids)
46
46
  if biblio then ref_entry_code(ref, ordinal, identifiers, ids)
47
47
  else
48
- ref << "#{identifiers[0] || identifiers[1]}"
48
+ ref << identifiers[0] || identifiers[1]
49
49
  ref << " #{identifiers[1]}" if identifiers[0] && identifiers[1]
50
50
  end
51
51
  ref << " " unless biblio && !identifiers[1]
52
- reference_format(b, ref)
52
+ reference_format(bibitem, ref)
53
53
  end
54
54
  end
55
55
 
56
- def std_bibitem_entry(list, b, ordinal, biblio)
57
- list.p **attr_code(iso_bibitem_entry_attrs(b, biblio)) do |ref|
58
- identifiers = render_identifier(bibitem_ref_code(b))
56
+ def std_bibitem_entry(list, bibitem, ordinal, biblio)
57
+ list.p **attr_code(iso_bibitem_entry_attrs(bibitem, biblio)) do |ref|
58
+ identifiers = render_identifier(bibitem_ref_code(bibitem))
59
59
  if biblio then ref_entry_code(ref, ordinal, identifiers, nil)
60
60
  else
61
- ref << "#{identifiers[0] || identifiers[1]}"
61
+ ref << identifiers[0] || identifiers[1]
62
62
  ref << " #{identifiers[1]}" if identifiers[0] && identifiers[1]
63
63
  end
64
- date_note_process(b, ref)
64
+ date_note_process(bibitem, ref)
65
65
  ref << " " unless biblio && !identifiers[1]
66
- reference_format(b, ref)
66
+ reference_format(bibitem, ref)
67
67
  end
68
68
  end
69
+
70
+ def term_cleanup(docxml)
71
+ @jcgm ? docxml : super
72
+ end
73
+
74
+ def termref_cleanup(docxml)
75
+ docxml
76
+ .gsub(/\s*\[MODIFICATION\]\s*\[\/TERMREF\]/,
77
+ l10n(", #{@i18n.modified} [/TERMREF]"))
78
+ .gsub(%r{\s*\[/TERMREF\]\s*</p>\s*<p>\s*\[TERMREF\]}, "; ")
79
+ .gsub(/\[TERMREF\]\s*/, l10n("[#{@i18n.source} "))
80
+ .gsub(%r{\s*\[/TERMREF\]\s*}, l10n("]"))
81
+ .gsub(/\s*\[MODIFICATION\]/, l10n(", #{@i18n.modified} &mdash; "))
82
+ end
69
83
  end
70
84
  end
71
85
  end
@@ -4,6 +4,7 @@
4
4
 
5
5
  <xsl:param name="svg_images"/>
6
6
  <xsl:variable name="images" select="document($svg_images)"/>
7
+ <xsl:param name="basepath"/>
7
8
 
8
9
  <xsl:param name="initial_page_number"/>
9
10
  <xsl:param name="doc_split_by_language"/>
@@ -254,6 +255,28 @@
254
255
  </fo:repeatable-page-master-alternatives>
255
256
  </fo:page-sequence-master>
256
257
 
258
+ <!-- Document pages (landscape orientation) -->
259
+ <fo:simple-page-master master-name="document-landscape-odd" page-width="{$pageHeight}" page-height="{$pageWidth}">
260
+ <fo:region-body margin-top="25.4mm" margin-bottom="22mm" margin-left="31.7mm" margin-right="40mm"/>
261
+ <fo:region-before region-name="header-odd" extent="25.4mm"/>
262
+ <fo:region-after region-name="footer" extent="22mm"/> <!-- debug: background-color="green" -->
263
+ <fo:region-start region-name="left-region" extent="17mm"/>
264
+ <fo:region-end region-name="right-region" extent="26.5mm"/>
265
+ </fo:simple-page-master>
266
+ <fo:simple-page-master master-name="document-landscape-even" page-width="{$pageHeight}" page-height="{$pageWidth}">
267
+ <fo:region-body margin-top="25.4mm" margin-bottom="22mm" margin-left="31.7mm" margin-right="40mm"/>
268
+ <fo:region-before region-name="header-even" extent="25.4mm"/>
269
+ <fo:region-after region-name="footer" extent="22mm"/> <!-- debug: background-color="green" -->
270
+ <fo:region-start region-name="left-region" extent="17mm"/>
271
+ <fo:region-end region-name="right-region" extent="26.5mm"/>
272
+ </fo:simple-page-master>
273
+ <fo:page-sequence-master master-name="document-landscape">
274
+ <fo:repeatable-page-master-alternatives>
275
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="document-landscape-even"/>
276
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="document-landscape-odd"/>
277
+ </fo:repeatable-page-master-alternatives>
278
+ </fo:page-sequence-master>
279
+
257
280
  <!-- Index pages -->
258
281
  <fo:simple-page-master master-name="index-odd" page-width="{$pageWidth}" page-height="{$pageHeight}">
259
282
  <fo:region-body margin-top="25.4mm" margin-bottom="22mm" margin-left="31.7mm" margin-right="41.7mm" column-count="2" column-gap="10mm"/>
@@ -329,10 +352,14 @@
329
352
  <xsl:apply-templates select="xalan:nodeset($current_document)" mode="flatxml"/>
330
353
  </xsl:variable> -->
331
354
 
332
- <xsl:variable name="flatxml">
355
+ <xsl:variable name="flatxml_">
333
356
  <xsl:apply-templates select="." mode="flatxml"/>
334
357
  </xsl:variable>
335
358
 
359
+ <xsl:variable name="flatxml">
360
+ <xsl:apply-templates select="xalan:nodeset($flatxml_)" mode="pagebreak"/>
361
+ </xsl:variable>
362
+
336
363
  <!-- flatxml=<xsl:copy-of select="$flatxml"/> -->
337
364
 
338
365
  <xsl:apply-templates select="xalan:nodeset($flatxml)/bipm:bipm-standard" mode="bipm-standard">
@@ -356,10 +383,14 @@
356
383
  <xsl:apply-templates select="xalan:nodeset($current_document)" mode="flatxml"/>
357
384
  </xsl:variable> -->
358
385
 
359
- <xsl:variable name="flatxml">
386
+ <xsl:variable name="flatxml_">
360
387
  <xsl:apply-templates select="." mode="flatxml"/>
361
388
  </xsl:variable>
362
389
 
390
+ <xsl:variable name="flatxml">
391
+ <xsl:apply-templates select="xalan:nodeset($flatxml_)" mode="pagebreak"/>
392
+ </xsl:variable>
393
+
363
394
  <xsl:apply-templates select="xalan:nodeset($flatxml)/bipm:bipm-standard" mode="bipm-standard">
364
395
  <xsl:with-param name="curr_docnum" select="$num"/>
365
396
  </xsl:apply-templates>
@@ -372,10 +403,14 @@
372
403
  </xsl:when>
373
404
  <xsl:otherwise>
374
405
 
375
- <xsl:variable name="flatxml">
406
+ <xsl:variable name="flatxml_">
376
407
  <xsl:apply-templates mode="flatxml"/>
377
408
  </xsl:variable>
378
-
409
+
410
+ <xsl:variable name="flatxml">
411
+ <xsl:apply-templates select="xalan:nodeset($flatxml_)" mode="pagebreak"/>
412
+ </xsl:variable>
413
+
379
414
  <!-- flatxml=<xsl:copy-of select="$flatxml"/> -->
380
415
 
381
416
  <!-- indexes=<xsl:copy-of select="$indexes"/> -->
@@ -861,8 +896,82 @@
861
896
  <!-- END: Flattening xml for fit notes at page sides (margins) -->
862
897
  <!-- ================================= -->
863
898
 
899
+ <!-- ================================= -->
900
+ <!-- Page breaks processing (close previous elements (clause) and start new) -->
901
+ <!-- ================================= -->
902
+ <xsl:template match="@*|node()" mode="pagebreak">
903
+ <xsl:copy>
904
+ <xsl:apply-templates select="@*|node()" mode="pagebreak"/>
905
+ </xsl:copy>
906
+ </xsl:template>
864
907
 
908
+ <xsl:template match="node()[bipm:pagebreak[@orientation]]" mode="pagebreak">
909
+ <xsl:variable name="element_name" select="local-name()"/>
910
+ <xsl:for-each select="bipm:pagebreak[@orientation]">
911
+ <xsl:variable name="pagebreak_id" select="generate-id()"/>
912
+ <xsl:variable name="pagebreak_previous_orientation" select="preceding-sibling::bipm:pagebreak[@orientation][1]/@orientation"/>
913
+
914
+ <!-- copy elements before page break -->
915
+ <xsl:element name="{$element_name}" namespace="https://www.metanorma.org/ns/bipm">
916
+ <xsl:if test="not(preceding-sibling::bipm:pagebreak[@orientation])">
917
+ <xsl:apply-templates select="../@*" mode="pagebreak"/>
918
+ </xsl:if>
919
+ <xsl:if test="$pagebreak_previous_orientation != ''">
920
+ <xsl:attribute name="orientation"><xsl:value-of select="$pagebreak_previous_orientation"/></xsl:attribute>
921
+ </xsl:if>
922
+
923
+ <xsl:apply-templates select="preceding-sibling::node()[following-sibling::bipm:pagebreak[@orientation][1][generate-id(.) = $pagebreak_id]][not(local-name() = 'pagebreak' and @orientation)]" mode="pagebreak"/>
924
+ </xsl:element>
925
+
926
+ <!-- copy elements after last page break -->
927
+ <xsl:if test="position() = last() and following-sibling::node()">
928
+ <xsl:element name="{$element_name}" namespace="https://www.metanorma.org/ns/bipm">
929
+ <xsl:attribute name="orientation"><xsl:value-of select="@orientation"/></xsl:attribute>
930
+ <xsl:apply-templates select="following-sibling::node()" mode="pagebreak"/>
931
+ </xsl:element>
932
+ </xsl:if>
933
+
934
+ </xsl:for-each>
935
+
936
+ </xsl:template>
865
937
 
938
+ <xsl:template match="bipm:pagebreak2" mode="pagebreak">
939
+ <xsl:variable name="orientation" select="normalize-space(@orientation)"/>
940
+ <xsl:variable name="tree">
941
+ <xsl:for-each select="ancestor::*[ancestor::bipm:sections or ancestor::bipm:annex or ancestor::bipm:preface]">
942
+ <element pos="{position()}">
943
+ <xsl:value-of select="name()"/>
944
+ </element>
945
+ </xsl:for-each>
946
+ </xsl:variable>
947
+ <!-- close preceding elements -->
948
+ <xsl:for-each select="xalan:nodeset($tree)//element">
949
+ <xsl:sort data-type="number" order="descending" select="@pos"/>
950
+ <xsl:text disable-output-escaping="yes">&lt;/</xsl:text>
951
+ <xsl:value-of select="."/>
952
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
953
+ </xsl:for-each>
954
+ <!-- open elements -->
955
+ <xsl:for-each select="xalan:nodeset($tree)//element">
956
+ <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
957
+ <xsl:value-of select="."/>
958
+ <xsl:for-each select="@*[local-name() != 'pos']">
959
+ <xsl:text> </xsl:text>
960
+ <xsl:value-of select="local-name()"/>
961
+ <xsl:text>="</xsl:text>
962
+ <xsl:value-of select="."/>
963
+ <xsl:text>"</xsl:text>
964
+ </xsl:for-each>
965
+ <xsl:if test="position() = 1">
966
+ <xsl:text> orientation="</xsl:text><xsl:value-of select="$orientation"/><xsl:text>"</xsl:text>
967
+ </xsl:if>
968
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
969
+ </xsl:for-each>
970
+
971
+ </xsl:template>
972
+ <!-- ================================= -->
973
+ <!-- END: Page breaks processing -->
974
+ <!-- ================================= -->
866
975
 
867
976
  <xsl:template match="bipm:bipm-standard"/>
868
977
  <xsl:template match="bipm:bipm-standard" mode="bipm-standard">
@@ -1072,12 +1181,11 @@
1072
1181
 
1073
1182
 
1074
1183
  <!-- Document Pages -->
1075
-
1076
1184
  <xsl:apply-templates select="bipm:sections/*" mode="sections"/>
1077
1185
 
1078
1186
 
1079
-
1080
1187
  <!-- Normative references -->
1188
+
1081
1189
  <xsl:apply-templates select="bipm:bibliography/bipm:references[@normative='true']" mode="sections"/>
1082
1190
 
1083
1191
  <xsl:apply-templates select="bipm:annex" mode="sections"/>
@@ -1085,6 +1193,9 @@
1085
1193
  <!-- Bibliography -->
1086
1194
  <xsl:apply-templates select="bipm:bibliography/bipm:references[not(@normative='true')]" mode="sections"/>
1087
1195
 
1196
+ <!-- Document Control -->
1197
+ <xsl:apply-templates select="bipm:doccontrol" mode="sections"/>
1198
+
1088
1199
  <!-- Index -->
1089
1200
  <!-- <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:clause[@type = 'index']" mode="index" /> -->
1090
1201
  <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:indexsect" mode="index"/>
@@ -1238,7 +1349,6 @@
1238
1349
  <xsl:apply-templates select="bipm:preface/*" mode="sections"/> <!-- bipm:clause -->
1239
1350
 
1240
1351
  <!-- Document Pages -->
1241
-
1242
1352
  <xsl:apply-templates select="bipm:sections/*" mode="sections"/>
1243
1353
  <!-- <xsl:call-template name="sections_appendix"/> --> <!-- without pagebreaks -->
1244
1354
 
@@ -1250,6 +1360,9 @@
1250
1360
 
1251
1361
  <xsl:apply-templates select="bipm:bibliography/bipm:references[not(@normative='true')]" mode="sections"/>
1252
1362
 
1363
+ <!-- Document Control -->
1364
+ <xsl:apply-templates select="bipm:doccontrol" mode="sections"/>
1365
+
1253
1366
  <!-- Index -->
1254
1367
  <!-- <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:clause[@type = 'index']" mode="index" /> -->
1255
1368
  <xsl:apply-templates select="xalan:nodeset($indexes)/doc[@id = $docid]//bipm:indexsect" mode="index"/>
@@ -1963,11 +2076,14 @@
1963
2076
 
1964
2077
  <xsl:template match="node()" mode="sections">
1965
2078
  <fo:page-sequence master-reference="document" force-page-count="no-force">
2079
+ <xsl:if test="@orientation = 'landscape'">
2080
+ <xsl:attribute name="master-reference">document-landscape</xsl:attribute>
2081
+ </xsl:if>
2082
+
1966
2083
  <xsl:call-template name="insertFootnoteSeparator"/>
1967
2084
 
1968
2085
  <xsl:variable name="header-title">
1969
2086
  <xsl:choose>
1970
-
1971
2087
  <xsl:when test="local-name(..) = 'sections'">
1972
2088
  <xsl:choose>
1973
2089
  <xsl:when test="./bipm:title[1]/*[local-name() = 'tab']">
@@ -2008,6 +2124,7 @@
2008
2124
  </xsl:variable>
2009
2125
  <xsl:call-template name="insertHeaderFooter">
2010
2126
  <xsl:with-param name="header-title" select="$header-title"/>
2127
+ <xsl:with-param name="orientation" select="@orientation"/>
2011
2128
  </xsl:call-template>
2012
2129
 
2013
2130
  <fo:flow flow-name="xsl-region-body">
@@ -2479,13 +2596,25 @@
2479
2596
  <xsl:variable name="space-before-value" select="normalize-space($space-before)"/>
2480
2597
 
2481
2598
  <fo:table table-layout="fixed" width="174mm" line-height="135%">
2599
+ <xsl:if test="@orientation = 'landscape'">
2600
+ <xsl:attribute name="width">261mm</xsl:attribute> <!-- 87 = (297 - 210) -->
2601
+ </xsl:if>
2482
2602
  <xsl:call-template name="setId"/>
2483
2603
  <xsl:if test="$space-before-value != ''">
2484
2604
  <xsl:attribute name="space-before"><xsl:value-of select="$space-before-value"/></xsl:attribute>
2485
2605
  </xsl:if>
2486
- <fo:table-column column-width="137mm"/>
2606
+
2607
+ <xsl:choose>
2608
+ <xsl:when test="@orientation = 'landscape'">
2609
+ <fo:table-column column-width="224mm"/> <!-- +87 -->
2610
+ </xsl:when>
2611
+ <xsl:otherwise>
2612
+ <fo:table-column column-width="137mm"/>
2613
+ </xsl:otherwise>
2614
+ </xsl:choose>
2487
2615
  <fo:table-column column-width="5mm"/>
2488
2616
  <fo:table-column column-width="32mm"/>
2617
+
2489
2618
  <fo:table-body>
2490
2619
 
2491
2620
  <xsl:variable name="total_rows" select="count(*)"/>
@@ -3296,7 +3425,7 @@
3296
3425
 
3297
3426
  <!-- set height for sup -->
3298
3427
  <!-- <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"> -->
3299
- <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1]/*" mode="mathml" priority="2">
3428
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and not(mathml:mfenced)]/*" mode="mathml" priority="3">
3300
3429
  <xsl:copy>
3301
3430
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
3302
3431
  </xsl:copy>
@@ -3327,23 +3456,49 @@
3327
3456
  <mrow>
3328
3457
  <mtext>Cu</mtext>
3329
3458
  </mrow>
3330
- </mfenced>
3331
- to:
3459
+ </mfenced>
3460
+ to:
3461
+ <mfenced open="(" close=")" separators="">
3462
+ <mathml:mo rspace="-0.35em"></mathml:mo>
3463
+ <mathml:mspace width="-0.15em"/>
3464
+ <mrow>
3465
+ <mtext>Cu</mtext>
3466
+ </mrow>
3467
+ <mathml:mspace width="-0.1em"/>
3468
+ </mfenced>
3469
+ -->
3470
+ <xsl:template match="mathml:mfenced[count(*) = 1]" mode="mathml" priority="2">
3471
+ <xsl:if test="preceding-sibling::*">
3472
+ <mathml:mo rspace="-0.35em"/><!-- decrease space before opening bracket -->
3473
+ </xsl:if>
3474
+ <xsl:copy>
3475
+ <xsl:apply-templates select="@*" mode="mathml"/>
3476
+ <xsl:if test="not(@separators)">
3477
+ <xsl:attribute name="separators"/>
3478
+ </xsl:if>
3479
+ <mathml:mspace width="-0.15em"/> <!-- decrease space between opening brackets and inside text-->
3480
+ <xsl:apply-templates mode="mathml"/>
3481
+ <mathml:mspace width="-0.1em"/> <!-- decrease space between inside text and closing brackets -->
3482
+ </xsl:copy>
3483
+ </xsl:template>
3484
+
3485
+ <!-- to:
3332
3486
  <mrow>
3333
3487
  <mtext>(Cu)</mtext>
3334
3488
  </mrow> -->
3335
- <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">
3489
+ <!-- <xsl:template match="mathml:mfenced[count(*) = 1 and *[count(*) = 1] and */*[count(*) = 0]] |
3490
+ mathml:mfenced[count(*) = 1 and *[count(*) = 1] and */*[count(*) = 1] and */*/*[count(*) = 0]]" mode="mathml" priority="2">
3336
3491
  <xsl:apply-templates mode="mathml"/>
3337
3492
  </xsl:template>
3338
-
3339
- <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::*)] -->
3493
+ <xsl:template match="mathml:mfenced[count(*) = 1]/*[count(*) = 1]/*[count(*) = 0] |
3494
+ mathml:mfenced[count(*) = 1]/*[count(*) = 1]/*[count(*) = 1]/*[count(*) = 0]" mode="mathml" priority="2">
3340
3495
  <xsl:copy>
3341
3496
  <xsl:apply-templates select="@*" mode="mathml"/>
3342
3497
  <xsl:value-of select="ancestor::mathml:mfenced[1]/@open"/>
3343
3498
  <xsl:value-of select="."/>
3344
3499
  <xsl:value-of select="ancestor::mathml:mfenced[1]/@close"/>
3345
3500
  </xsl:copy>
3346
- </xsl:template>
3501
+ </xsl:template> -->
3347
3502
 
3348
3503
  <!-- Decrease height of / and | -->
3349
3504
  <xsl:template match="mathml:mo[normalize-space(text()) = '/' or normalize-space(text()) = '|']" mode="mathml">
@@ -3356,6 +3511,20 @@
3356
3511
  </xsl:copy>
3357
3512
  </xsl:template>
3358
3513
 
3514
+ <!-- Decrease a distance before and after of delta -->
3515
+ <xsl:template match="mathml:mo[normalize-space(text()) = 'Δ']" mode="mathml">
3516
+ <xsl:copy>
3517
+ <xsl:apply-templates select="@*" mode="mathml"/>
3518
+ <xsl:if test="not(@rspace)">
3519
+ <xsl:attribute name="rspace">0em</xsl:attribute>
3520
+ </xsl:if>
3521
+ <xsl:if test="not(@lspace) and (preceding-sibling::*[1][local-name() = 'mo'] or not(preceding-sibling::*))">
3522
+ <xsl:attribute name="lspace">0em</xsl:attribute>
3523
+ </xsl:if>
3524
+ <xsl:apply-templates mode="mathml"/>
3525
+ </xsl:copy>
3526
+ </xsl:template>
3527
+
3359
3528
  <xsl:template match="mathml:mi[string-length(normalize-space()) &gt; 1]" mode="mathml" priority="2">
3360
3529
  <xsl:if test="preceding-sibling::* and preceding-sibling::*[1][not(local-name() = 'mfenced' or local-name() = 'mo')]">
3361
3530
  <mathml:mspace width="0.3em"/>
@@ -3367,7 +3536,8 @@
3367
3536
  </xsl:template>
3368
3537
 
3369
3538
  <xsl:template name="insertHeaderFooter">
3370
- <xsl:param name="header-title"/>
3539
+ <xsl:param name="header-title"/>
3540
+ <xsl:param name="orientation"/>
3371
3541
  <fo:static-content flow-name="header-odd">
3372
3542
  <fo:block-container font-family="Arial" font-size="8pt" padding-top="12.5mm">
3373
3543
  <fo:block text-align="right">
@@ -3382,9 +3552,12 @@
3382
3552
  </fo:block>
3383
3553
  </fo:block-container>
3384
3554
  <fo:block-container font-size="1pt" border-top="0.5pt solid black" margin-left="81mm" width="86mm">
3385
- <fo:block> </fo:block>
3386
- </fo:block-container>
3387
- </fo:static-content>
3555
+ <xsl:if test="$orientation = 'landscape'">
3556
+ <xsl:attribute name="margin-left">168mm</xsl:attribute>
3557
+ </xsl:if>
3558
+ <fo:block> </fo:block>
3559
+ </fo:block-container>
3560
+ </fo:static-content>
3388
3561
  <fo:static-content flow-name="header-even">
3389
3562
  <fo:block-container font-family="Arial" font-size="8pt" padding-top="12.5mm">
3390
3563
  <fo:block>
@@ -4141,6 +4314,9 @@
4141
4314
  <title-continued lang="en">(continued)</title-continued>
4142
4315
  <title-continued lang="fr">(continué)</title-continued>
4143
4316
 
4317
+ </xsl:variable><xsl:variable name="bibdata">
4318
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
4319
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
4144
4320
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
4145
4321
  <xsl:param name="name"/>
4146
4322
  <xsl:param name="lang"/>
@@ -4169,13 +4345,16 @@
4169
4345
  <xsl:attribute name="font-family">Times New Roman, STIX Two Math, Source Han Sans</xsl:attribute>
4170
4346
  <xsl:attribute name="font-size">10.5pt</xsl:attribute>
4171
4347
 
4348
+
4172
4349
  </xsl:attribute-set><xsl:attribute-set name="link-style">
4173
4350
 
4351
+
4174
4352
  <xsl:attribute name="color">blue</xsl:attribute>
4175
4353
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
4176
4354
 
4177
4355
 
4178
4356
 
4357
+
4179
4358
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
4180
4359
  <xsl:attribute name="white-space">pre</xsl:attribute>
4181
4360
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
@@ -4233,6 +4412,7 @@
4233
4412
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
4234
4413
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4235
4414
 
4415
+
4236
4416
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
4237
4417
 
4238
4418
 
@@ -4249,9 +4429,7 @@
4249
4429
 
4250
4430
 
4251
4431
 
4252
-
4253
-
4254
-
4432
+
4255
4433
 
4256
4434
 
4257
4435
 
@@ -4280,6 +4458,7 @@
4280
4458
 
4281
4459
  </xsl:attribute-set><xsl:attribute-set name="table-name-style">
4282
4460
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
4461
+
4283
4462
 
4284
4463
 
4285
4464
 
@@ -4299,6 +4478,7 @@
4299
4478
  <xsl:attribute name="text-indent">-25mm</xsl:attribute>
4300
4479
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4301
4480
 
4481
+
4302
4482
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
4303
4483
 
4304
4484
 
@@ -4311,15 +4491,19 @@
4311
4491
 
4312
4492
 
4313
4493
 
4494
+
4495
+
4314
4496
  </xsl:attribute-set><xsl:attribute-set name="eref-style">
4315
4497
 
4316
4498
 
4317
4499
 
4318
4500
 
4501
+
4319
4502
  </xsl:attribute-set><xsl:attribute-set name="note-style">
4320
4503
 
4321
4504
 
4322
4505
 
4506
+
4323
4507
 
4324
4508
 
4325
4509
 
@@ -4346,6 +4530,7 @@
4346
4530
 
4347
4531
 
4348
4532
 
4533
+
4349
4534
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
4350
4535
 
4351
4536
 
@@ -4368,7 +4553,9 @@
4368
4553
 
4369
4554
 
4370
4555
 
4556
+
4371
4557
  </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
4558
+
4372
4559
 
4373
4560
 
4374
4561
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
@@ -4391,14 +4578,18 @@
4391
4578
 
4392
4579
 
4393
4580
 
4581
+
4582
+
4394
4583
  </xsl:attribute-set><xsl:attribute-set name="origin-style">
4395
4584
 
4396
4585
 
4397
4586
 
4587
+
4398
4588
  </xsl:attribute-set><xsl:attribute-set name="term-style">
4399
4589
 
4400
4590
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
4401
4591
 
4592
+
4402
4593
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
4403
4594
  <xsl:attribute name="font-weight">bold</xsl:attribute>
4404
4595
  <xsl:attribute name="text-align">left</xsl:attribute>
@@ -4431,10 +4622,12 @@
4431
4622
 
4432
4623
 
4433
4624
 
4625
+
4434
4626
  </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
4435
4627
 
4436
4628
  </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
4437
4629
 
4630
+
4438
4631
  <xsl:attribute name="width">100%</xsl:attribute>
4439
4632
  <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
4440
4633
  <xsl:attribute name="scaling">uniform</xsl:attribute>
@@ -4458,13 +4651,34 @@
4458
4651
 
4459
4652
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
4460
4653
 
4461
-
4654
+
4655
+
4462
4656
  </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
4463
4657
 
4658
+
4464
4659
  </xsl:attribute-set><xsl:attribute-set name="definition-style">
4465
4660
 
4466
4661
 
4467
- </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
4662
+
4663
+ </xsl:attribute-set><xsl:variable name="color-added-text">
4664
+ <xsl:text>rgb(0, 255, 0)</xsl:text>
4665
+ </xsl:variable><xsl:attribute-set name="add-style">
4666
+ <xsl:attribute name="color">red</xsl:attribute>
4667
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
4668
+ <!-- <xsl:attribute name="color">black</xsl:attribute>
4669
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
4670
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
4671
+ <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
4672
+ </xsl:attribute-set><xsl:variable name="color-deleted-text">
4673
+ <xsl:text>red</xsl:text>
4674
+ </xsl:variable><xsl:attribute-set name="del-style">
4675
+ <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
4676
+ <xsl:attribute name="text-decoration">line-through</xsl:attribute>
4677
+ </xsl:attribute-set><xsl:attribute-set name="mathml-style">
4678
+ <xsl:attribute name="font-family">STIX Two Math</xsl:attribute>
4679
+
4680
+
4681
+ </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
4468
4682
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
4469
4683
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
4470
4684
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
@@ -4509,16 +4723,17 @@
4509
4723
  <xsl:call-template name="add-zero-spaces-java"/>
4510
4724
  </xsl:template><xsl:template match="*[local-name()='table']" name="table">
4511
4725
 
4726
+ <xsl:variable name="table-preamble">
4727
+
4728
+
4729
+ </xsl:variable>
4730
+
4512
4731
  <xsl:variable name="table">
4513
4732
 
4514
4733
  <xsl:variable name="simple-table">
4515
4734
  <xsl:call-template name="getSimpleTable"/>
4516
4735
  </xsl:variable>
4517
4736
 
4518
-
4519
-
4520
-
4521
-
4522
4737
  <!-- <xsl:if test="$namespace = 'bipm'">
4523
4738
  <fo:block>&#xA0;</fo:block>
4524
4739
  </xsl:if> -->
@@ -4533,7 +4748,7 @@
4533
4748
 
4534
4749
 
4535
4750
 
4536
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4751
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
4537
4752
 
4538
4753
  <!-- <xsl:variable name="cols-count">
4539
4754
  <xsl:choose>
@@ -4552,8 +4767,6 @@
4552
4767
  <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
4553
4768
  <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
4554
4769
 
4555
-
4556
-
4557
4770
  <xsl:variable name="colwidths">
4558
4771
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
4559
4772
  <xsl:call-template name="calculate-column-widths">
@@ -4581,9 +4794,11 @@
4581
4794
  </xsl:choose>
4582
4795
  </xsl:variable>
4583
4796
 
4797
+
4584
4798
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
4585
4799
 
4586
4800
 
4801
+
4587
4802
 
4588
4803
 
4589
4804
 
@@ -4595,6 +4810,8 @@
4595
4810
 
4596
4811
 
4597
4812
 
4813
+
4814
+
4598
4815
  <xsl:attribute name="space-after">12pt</xsl:attribute>
4599
4816
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
4600
4817
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
@@ -4629,13 +4846,15 @@
4629
4846
 
4630
4847
 
4631
4848
 
4849
+
4850
+
4632
4851
 
4633
4852
 
4634
4853
 
4635
4854
 
4636
4855
 
4637
4856
 
4638
- <xsl:if test="not(ancestor::*[local-name()='preface']) and not(ancestor::*[local-name()='note_side']) and not(ancestor::*[local-name() = 'annex'] and .//*[local-name() = 'xref'][@pagenumber])">
4857
+ <xsl:if test="not(ancestor::*[local-name()='preface']) and not(ancestor::*[local-name()='note_side']) and not(ancestor::*[local-name() = 'annex'] and .//*[local-name() = 'xref'][@pagenumber]) and not(ancestor::*[local-name() = 'doccontrol'])">
4639
4858
  <attribute name="border-top">0.5pt solid black</attribute>
4640
4859
  <attribute name="border-bottom">0.5pt solid black</attribute>
4641
4860
  </xsl:if>
@@ -4725,7 +4944,8 @@
4725
4944
  </fo:block-container>
4726
4945
  </xsl:variable>
4727
4946
 
4728
-
4947
+ <xsl:variable name="isAdded" select="@added"/>
4948
+ <xsl:variable name="isDeleted" select="@deleted"/>
4729
4949
 
4730
4950
  <xsl:choose>
4731
4951
  <xsl:when test="@width">
@@ -4734,16 +4954,47 @@
4734
4954
 
4735
4955
 
4736
4956
 
4737
- <xsl:copy-of select="$table"/>
4957
+ <xsl:choose>
4958
+ <xsl:when test="$isAdded = 'true' or $isDeleted = 'true'">
4959
+ <xsl:copy-of select="$table-preamble"/>
4960
+ <fo:block>
4961
+ <xsl:call-template name="setTrackChangesStyles">
4962
+ <xsl:with-param name="isAdded" select="$isAdded"/>
4963
+ <xsl:with-param name="isDeleted" select="$isDeleted"/>
4964
+ </xsl:call-template>
4965
+ <xsl:copy-of select="$table"/>
4966
+ </fo:block>
4967
+ </xsl:when>
4968
+ <xsl:otherwise>
4969
+ <xsl:copy-of select="$table-preamble"/>
4970
+ <xsl:copy-of select="$table"/>
4971
+ </xsl:otherwise>
4972
+ </xsl:choose>
4738
4973
 
4739
4974
 
4740
4975
  </xsl:when>
4741
4976
  <xsl:otherwise>
4742
- <xsl:copy-of select="$table"/>
4977
+ <xsl:choose>
4978
+ <xsl:when test="$isAdded = 'true' or $isDeleted = 'true'">
4979
+ <xsl:copy-of select="$table-preamble"/>
4980
+ <fo:block>
4981
+ <xsl:call-template name="setTrackChangesStyles">
4982
+ <xsl:with-param name="isAdded" select="$isAdded"/>
4983
+ <xsl:with-param name="isDeleted" select="$isDeleted"/>
4984
+ </xsl:call-template>
4985
+ <xsl:copy-of select="$table"/>
4986
+ </fo:block>
4987
+ </xsl:when>
4988
+ <xsl:otherwise>
4989
+ <xsl:copy-of select="$table-preamble"/>
4990
+ <xsl:copy-of select="$table"/>
4991
+ </xsl:otherwise>
4992
+ </xsl:choose>
4743
4993
  </xsl:otherwise>
4744
4994
  </xsl:choose>
4745
4995
 
4746
4996
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
4997
+ <xsl:param name="continued"/>
4747
4998
  <xsl:if test="normalize-space() != ''">
4748
4999
  <fo:block xsl:use-attribute-sets="table-name-style">
4749
5000
 
@@ -4751,8 +5002,21 @@
4751
5002
  <xsl:if test="not(*[local-name()='tab'])"> <!-- table without number -->
4752
5003
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
4753
5004
  </xsl:if>
5005
+ <xsl:if test="not(../preceding-sibling::*) and ancestor::node()[@orientation]">
5006
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
5007
+ </xsl:if>
5008
+
5009
+ <xsl:choose>
5010
+ <xsl:when test="$continued = 'true'">
5011
+ <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
5012
+
5013
+ </xsl:when>
5014
+ <xsl:otherwise>
5015
+ <xsl:apply-templates/>
5016
+ </xsl:otherwise>
5017
+ </xsl:choose>
5018
+
4754
5019
 
4755
- <xsl:apply-templates/>
4756
5020
  </fo:block>
4757
5021
  </xsl:if>
4758
5022
  </xsl:template><xsl:template name="calculate-columns-numbers">
@@ -4804,7 +5068,7 @@
4804
5068
  </xsl:for-each>
4805
5069
  </xsl:when>
4806
5070
  <xsl:otherwise>
4807
- <xsl:for-each select="xalan:nodeset($table)//tr">
5071
+ <xsl:for-each select="xalan:nodeset($table)/*/tr">
4808
5072
  <xsl:variable name="td_text">
4809
5073
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
4810
5074
 
@@ -4892,18 +5156,18 @@
4892
5156
  <xsl:apply-templates/>
4893
5157
  </fo:table-header>
4894
5158
  </xsl:template><xsl:template name="table-header-title">
4895
- <xsl:param name="cols-count"/>
5159
+ <xsl:param name="cols-count"/>
4896
5160
  <!-- row for title -->
4897
5161
  <fo:table-row>
4898
5162
  <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
4899
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
5163
+
5164
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
5165
+ <xsl:with-param name="continued">true</xsl:with-param>
5166
+ </xsl:apply-templates>
4900
5167
  <xsl:for-each select="ancestor::*[local-name()='table'][1]">
4901
5168
  <xsl:call-template name="fn_name_display"/>
4902
- </xsl:for-each>
4903
- <fo:block text-align="right" font-style="italic">
4904
- <xsl:text> </xsl:text>
4905
- <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
4906
- </fo:block>
5169
+ </xsl:for-each>
5170
+
4907
5171
  </fo:table-cell>
4908
5172
  </fo:table-row>
4909
5173
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
@@ -5138,6 +5402,7 @@
5138
5402
 
5139
5403
 
5140
5404
 
5405
+
5141
5406
  </xsl:if>
5142
5407
  <xsl:if test="$parent-name = 'tfoot'">
5143
5408
 
@@ -5165,7 +5430,8 @@
5165
5430
  <xsl:attribute name="text-align">
5166
5431
  <xsl:choose>
5167
5432
  <xsl:when test="@align">
5168
- <xsl:value-of select="@align"/>
5433
+ <xsl:call-template name="setAlignment"/>
5434
+ <!-- <xsl:value-of select="@align"/> -->
5169
5435
  </xsl:when>
5170
5436
  <xsl:otherwise>center</xsl:otherwise>
5171
5437
  </xsl:choose>
@@ -5181,17 +5447,33 @@
5181
5447
 
5182
5448
 
5183
5449
 
5450
+
5184
5451
  <xsl:attribute name="font-weight">normal</xsl:attribute>
5185
5452
  <xsl:attribute name="border">solid black 0pt</xsl:attribute>
5186
5453
  <!-- <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute> -->
5187
5454
  <xsl:attribute name="border-bottom">solid black 0.5pt</xsl:attribute>
5188
5455
  <xsl:attribute name="height">8mm</xsl:attribute>
5189
5456
  <xsl:attribute name="padding-top">2mm</xsl:attribute>
5190
- <xsl:if test="ancestor::*[local-name() = 'annex'] and ancestor::*[local-name() = 'table']//*[local-name() = 'xref'][@pagenumber]"><!-- for Annex ToC -->
5457
+ <xsl:if test="(ancestor::*[local-name() = 'annex'] and ancestor::*[local-name() = 'table']//*[local-name() = 'xref'][@pagenumber]) or ancestor::*[local-name() = 'doccontrol']"><!-- for Annex ToC -->
5191
5458
  <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
5192
5459
  <xsl:attribute name="border-bottom">solid black 0pt</xsl:attribute>
5193
5460
  </xsl:if>
5461
+ <xsl:if test="ancestor::*[local-name() = 'doccontrol']">
5462
+ <xsl:attribute name="text-align">
5463
+ <xsl:choose>
5464
+ <xsl:when test="@align">
5465
+ <xsl:value-of select="@align"/>
5466
+ </xsl:when>
5467
+ <xsl:otherwise>left</xsl:otherwise>
5468
+ </xsl:choose>
5469
+ </xsl:attribute>
5470
+ <xsl:attribute name="display-align">before</xsl:attribute>
5471
+ </xsl:if>
5472
+
5194
5473
 
5474
+ <xsl:if test="$lang = 'ar'">
5475
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
5476
+ </xsl:if>
5195
5477
  <xsl:if test="@colspan">
5196
5478
  <xsl:attribute name="number-columns-spanned">
5197
5479
  <xsl:value-of select="@colspan"/>
@@ -5223,11 +5505,16 @@
5223
5505
  <xsl:attribute name="text-align">
5224
5506
  <xsl:choose>
5225
5507
  <xsl:when test="@align">
5226
- <xsl:value-of select="@align"/>
5508
+ <xsl:call-template name="setAlignment"/>
5509
+ <!-- <xsl:value-of select="@align"/> -->
5227
5510
  </xsl:when>
5228
5511
  <xsl:otherwise>left</xsl:otherwise>
5229
5512
  </xsl:choose>
5230
5513
  </xsl:attribute>
5514
+ <xsl:if test="$lang = 'ar'">
5515
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
5516
+ </xsl:if>
5517
+
5231
5518
 
5232
5519
 
5233
5520
 
@@ -5247,7 +5534,13 @@
5247
5534
  <xsl:if test="not(ancestor::*[local-name()='tr']/following-sibling::*[local-name()='tr'])"> <!-- last row -->
5248
5535
  <xsl:attribute name="padding-bottom">2mm</xsl:attribute>
5249
5536
  </xsl:if>
5537
+ <xsl:if test="ancestor::*[local-name() = 'doccontrol']">
5538
+ <xsl:attribute name="display-align">before</xsl:attribute>
5539
+ </xsl:if>
5250
5540
 
5541
+ <xsl:if test=".//*[local-name() = 'table']">
5542
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
5543
+ </xsl:if>
5251
5544
  <xsl:if test="@colspan">
5252
5545
  <xsl:attribute name="number-columns-spanned">
5253
5546
  <xsl:value-of select="@colspan"/>
@@ -5406,13 +5699,13 @@
5406
5699
  </xsl:choose>
5407
5700
  </xsl:variable>
5408
5701
  <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
5409
- <xsl:element name="{$ns}:table">
5702
+ <!-- <xsl:element name="{$ns}:table"> -->
5410
5703
  <xsl:for-each select="*[local-name() = 'dl'][1]">
5411
5704
  <tbody>
5412
5705
  <xsl:apply-templates mode="dl"/>
5413
5706
  </tbody>
5414
5707
  </xsl:for-each>
5415
- </xsl:element>
5708
+ <!-- </xsl:element> -->
5416
5709
  </xsl:variable>
5417
5710
 
5418
5711
  <xsl:call-template name="calculate-column-widths">
@@ -5511,6 +5804,8 @@
5511
5804
  <xsl:apply-templates/>
5512
5805
  </fo:inline>
5513
5806
  </xsl:template><xsl:template match="*[local-name()='dl']">
5807
+ <xsl:variable name="isAdded" select="@added"/>
5808
+ <xsl:variable name="isDeleted" select="@deleted"/>
5514
5809
  <fo:block-container>
5515
5810
 
5516
5811
 
@@ -5530,6 +5825,12 @@
5530
5825
  </xsl:attribute>
5531
5826
 
5532
5827
  </xsl:if>
5828
+
5829
+ <xsl:call-template name="setTrackChangesStyles">
5830
+ <xsl:with-param name="isAdded" select="$isAdded"/>
5831
+ <xsl:with-param name="isDeleted" select="$isDeleted"/>
5832
+ </xsl:call-template>
5833
+
5533
5834
  <fo:block-container>
5534
5835
 
5535
5836
 
@@ -5586,6 +5887,7 @@
5586
5887
 
5587
5888
 
5588
5889
 
5890
+
5589
5891
  <xsl:variable name="title-key">
5590
5892
 
5591
5893
 
@@ -5638,11 +5940,11 @@
5638
5940
  </xsl:choose>
5639
5941
  </xsl:variable>
5640
5942
  <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
5641
- <xsl:element name="{$ns}:table">
5943
+ <!-- <xsl:element name="{$ns}:table"> -->
5642
5944
  <tbody>
5643
5945
  <xsl:apply-templates mode="dl"/>
5644
5946
  </tbody>
5645
- </xsl:element>
5947
+ <!-- </xsl:element> -->
5646
5948
  </xsl:variable>
5647
5949
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
5648
5950
  <xsl:variable name="colwidths">
@@ -5870,6 +6172,8 @@
5870
6172
 
5871
6173
  <xsl:apply-templates/>
5872
6174
  </fo:inline>
6175
+ </xsl:template><xsl:template match="*[local-name()='padding']">
6176
+ <fo:inline padding-right="{@value}"> </fo:inline>
5873
6177
  </xsl:template><xsl:template match="*[local-name()='sup']">
5874
6178
  <fo:inline font-size="80%" vertical-align="super">
5875
6179
  <xsl:apply-templates/>
@@ -5895,6 +6199,7 @@
5895
6199
 
5896
6200
 
5897
6201
 
6202
+
5898
6203
 
5899
6204
  </xsl:variable>
5900
6205
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
@@ -5912,8 +6217,74 @@
5912
6217
  <fo:inline text-decoration="underline">
5913
6218
  <xsl:apply-templates/>
5914
6219
  </fo:inline>
6220
+ </xsl:template><xsl:template match="*[local-name()='add']">
6221
+ <xsl:choose>
6222
+ <xsl:when test="@amendment">
6223
+ <fo:inline>
6224
+ <xsl:call-template name="insertTag">
6225
+ <xsl:with-param name="kind">A</xsl:with-param>
6226
+ <xsl:with-param name="value"><xsl:value-of select="@amendment"/></xsl:with-param>
6227
+ </xsl:call-template>
6228
+ <xsl:apply-templates/>
6229
+ <xsl:call-template name="insertTag">
6230
+ <xsl:with-param name="type">closing</xsl:with-param>
6231
+ <xsl:with-param name="kind">A</xsl:with-param>
6232
+ <xsl:with-param name="value"><xsl:value-of select="@amendment"/></xsl:with-param>
6233
+ </xsl:call-template>
6234
+ </fo:inline>
6235
+ </xsl:when>
6236
+ <xsl:when test="@corrigenda">
6237
+ <fo:inline>
6238
+ <xsl:call-template name="insertTag">
6239
+ <xsl:with-param name="kind">C</xsl:with-param>
6240
+ <xsl:with-param name="value"><xsl:value-of select="@corrigenda"/></xsl:with-param>
6241
+ </xsl:call-template>
6242
+ <xsl:apply-templates/>
6243
+ <xsl:call-template name="insertTag">
6244
+ <xsl:with-param name="type">closing</xsl:with-param>
6245
+ <xsl:with-param name="kind">C</xsl:with-param>
6246
+ <xsl:with-param name="value"><xsl:value-of select="@corrigenda"/></xsl:with-param>
6247
+ </xsl:call-template>
6248
+ </fo:inline>
6249
+ </xsl:when>
6250
+ <xsl:otherwise>
6251
+ <fo:inline xsl:use-attribute-sets="add-style">
6252
+ <xsl:apply-templates/>
6253
+ </fo:inline>
6254
+ </xsl:otherwise>
6255
+ </xsl:choose>
6256
+
6257
+ </xsl:template><xsl:template name="insertTag">
6258
+ <xsl:param name="type"/>
6259
+ <xsl:param name="kind"/>
6260
+ <xsl:param name="value"/>
6261
+ <xsl:variable name="add_width" select="string-length($value) * 20"/>
6262
+ <xsl:variable name="maxwidth" select="60 + $add_width"/>
6263
+ <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
6264
+ <!-- <xsl:attribute name="width">7mm</xsl:attribute>
6265
+ <xsl:attribute name="content-height">100%</xsl:attribute> -->
6266
+ <xsl:attribute name="height">5mm</xsl:attribute>
6267
+ <xsl:attribute name="content-width">100%</xsl:attribute>
6268
+ <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
6269
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
6270
+ <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
6271
+ <g>
6272
+ <xsl:if test="$type = 'closing'">
6273
+ <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
6274
+ </xsl:if>
6275
+ <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
6276
+ <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
6277
+ </g>
6278
+ <text font-family="Arial" x="15" y="57" font-size="40pt">
6279
+ <xsl:if test="$type = 'closing'">
6280
+ <xsl:attribute name="x">25</xsl:attribute>
6281
+ </xsl:if>
6282
+ <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
6283
+ </text>
6284
+ </svg>
6285
+ </fo:instream-foreign-object>
5915
6286
  </xsl:template><xsl:template match="*[local-name()='del']">
5916
- <fo:inline font-size="10pt" color="red" text-decoration="line-through">
6287
+ <fo:inline xsl:use-attribute-sets="del-style">
5917
6288
  <xsl:apply-templates/>
5918
6289
  </fo:inline>
5919
6290
  </xsl:template><xsl:template match="*[local-name()='hi']">
@@ -6210,11 +6581,15 @@
6210
6581
  </xsl:apply-templates>
6211
6582
  </xsl:template><xsl:template name="getLang">
6212
6583
  <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
6584
+ <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
6213
6585
  <xsl:variable name="language">
6214
6586
  <xsl:choose>
6215
6587
  <xsl:when test="$language_current != ''">
6216
6588
  <xsl:value-of select="$language_current"/>
6217
6589
  </xsl:when>
6590
+ <xsl:when test="$language_current_2 != ''">
6591
+ <xsl:value-of select="$language_current_2"/>
6592
+ </xsl:when>
6218
6593
  <xsl:otherwise>
6219
6594
  <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
6220
6595
  </xsl:otherwise>
@@ -6254,24 +6629,34 @@
6254
6629
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
6255
6630
  <xsl:value-of select="substring($str, 2)"/>
6256
6631
  </xsl:template><xsl:template match="mathml:math">
6257
- <fo:inline font-family="STIX Two Math"> <!-- -->
6632
+ <xsl:variable name="isAdded" select="@added"/>
6633
+ <xsl:variable name="isDeleted" select="@deleted"/>
6634
+
6635
+ <fo:inline xsl:use-attribute-sets="mathml-style">
6258
6636
 
6259
6637
  <xsl:if test="ancestor::*[local-name()='table']">
6260
6638
  <xsl:attribute name="font-size">95%</xsl:attribute> <!-- base font in table is 10pt -->
6261
6639
  </xsl:if>
6262
6640
 
6641
+
6642
+ <xsl:call-template name="setTrackChangesStyles">
6643
+ <xsl:with-param name="isAdded" select="$isAdded"/>
6644
+ <xsl:with-param name="isDeleted" select="$isDeleted"/>
6645
+ </xsl:call-template>
6646
+
6263
6647
  <xsl:variable name="mathml">
6264
6648
  <xsl:apply-templates select="." mode="mathml"/>
6265
6649
  </xsl:variable>
6266
6650
  <fo:instream-foreign-object fox:alt-text="Math">
6267
6651
 
6268
- <xsl:if test="ancestor::*[local-name() = 'formula']">
6652
+ <xsl:if test="local-name(../..) = 'formula'">
6269
6653
  <xsl:attribute name="width">95%</xsl:attribute>
6270
6654
  <xsl:attribute name="content-height">100%</xsl:attribute>
6271
6655
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
6272
6656
  <xsl:attribute name="scaling">uniform</xsl:attribute>
6273
6657
  </xsl:if>
6274
6658
 
6659
+
6275
6660
  <!-- <xsl:copy-of select="."/> -->
6276
6661
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
6277
6662
  </fo:instream-foreign-object>
@@ -6292,6 +6677,16 @@
6292
6677
  <mathml:mspace width="0.5ex"/>
6293
6678
  </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">
6294
6679
  <xsl:variable name="target">
6680
+ <xsl:choose>
6681
+ <xsl:when test="@updatetype = 'true'">
6682
+ <xsl:value-of select="concat(normalize-space(@target), '.pdf')"/>
6683
+ </xsl:when>
6684
+ <xsl:otherwise>
6685
+ <xsl:value-of select="normalize-space(@target)"/>
6686
+ </xsl:otherwise>
6687
+ </xsl:choose>
6688
+ </xsl:variable>
6689
+ <xsl:variable name="target_text">
6295
6690
  <xsl:choose>
6296
6691
  <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
6297
6692
  <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
@@ -6304,19 +6699,19 @@
6304
6699
  <fo:inline xsl:use-attribute-sets="link-style">
6305
6700
 
6306
6701
  <xsl:choose>
6307
- <xsl:when test="$target = ''">
6702
+ <xsl:when test="$target_text = ''">
6308
6703
  <xsl:apply-templates/>
6309
6704
  </xsl:when>
6310
6705
  <xsl:otherwise>
6311
- <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
6706
+ <fo:basic-link external-destination="{$target}" fox:alt-text="{$target}">
6312
6707
  <xsl:choose>
6313
6708
  <xsl:when test="normalize-space(.) = ''">
6314
- <!-- <xsl:value-of select="$target"/> -->
6315
6709
  <xsl:call-template name="add-zero-spaces-link-java">
6316
- <xsl:with-param name="text" select="$target"/>
6710
+ <xsl:with-param name="text" select="$target_text"/>
6317
6711
  </xsl:call-template>
6318
6712
  </xsl:when>
6319
6713
  <xsl:otherwise>
6714
+ <!-- output text from <link>text</link> -->
6320
6715
  <xsl:apply-templates/>
6321
6716
  </xsl:otherwise>
6322
6717
  </xsl:choose>
@@ -6435,6 +6830,7 @@
6435
6830
 
6436
6831
 
6437
6832
  <fo:inline xsl:use-attribute-sets="note-name-style">
6833
+
6438
6834
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
6439
6835
  </fo:inline>
6440
6836
  <xsl:apply-templates/>
@@ -6461,6 +6857,7 @@
6461
6857
  </xsl:template><xsl:template match="*[local-name() = 'termnote']">
6462
6858
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
6463
6859
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
6860
+
6464
6861
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
6465
6862
  </fo:inline>
6466
6863
  <xsl:apply-templates/>
@@ -6526,12 +6923,19 @@
6526
6923
  </fo:inline>
6527
6924
  </xsl:if>
6528
6925
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
6926
+ <xsl:variable name="isAdded" select="@added"/>
6927
+ <xsl:variable name="isDeleted" select="@deleted"/>
6529
6928
  <fo:block-container id="{@id}">
6530
6929
 
6531
6930
  <xsl:if test="*[local-name() = 'name']">
6532
6931
  <xsl:attribute name="space-after">12pt</xsl:attribute>
6533
6932
  </xsl:if>
6534
6933
 
6934
+ <xsl:call-template name="setTrackChangesStyles">
6935
+ <xsl:with-param name="isAdded" select="$isAdded"/>
6936
+ <xsl:with-param name="isDeleted" select="$isDeleted"/>
6937
+ </xsl:call-template>
6938
+
6535
6939
  <fo:block>
6536
6940
  <xsl:apply-templates/>
6537
6941
  </fo:block>
@@ -6539,7 +6943,10 @@
6539
6943
  <xsl:for-each select="*[local-name() = 'note']">
6540
6944
  <xsl:call-template name="note"/>
6541
6945
  </xsl:for-each>
6542
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
6946
+
6947
+
6948
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
6949
+
6543
6950
  </fo:block-container>
6544
6951
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
6545
6952
  <fo:block id="{@id}">
@@ -6551,37 +6958,122 @@
6551
6958
  <xsl:apply-templates/>
6552
6959
  </fo:block>
6553
6960
  </xsl:template><xsl:template match="*[local-name() = 'image']">
6554
- <fo:block xsl:use-attribute-sets="image-style">
6555
-
6556
-
6557
- <xsl:variable name="src">
6558
- <xsl:choose>
6559
- <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
6560
- <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
6561
- </xsl:when>
6562
- <xsl:otherwise>
6563
- <xsl:value-of select="@src"/>
6564
- </xsl:otherwise>
6565
- </xsl:choose>
6566
- </xsl:variable>
6567
-
6568
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
6569
- </fo:block>
6961
+ <xsl:variable name="isAdded" select="../@added"/>
6962
+ <xsl:variable name="isDeleted" select="../@deleted"/>
6963
+ <xsl:choose>
6964
+ <xsl:when test="ancestor::*[local-name() = 'title']">
6965
+ <fo:inline padding-left="1mm" padding-right="1mm">
6966
+ <xsl:variable name="src">
6967
+ <xsl:call-template name="image_src"/>
6968
+ </xsl:variable>
6969
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
6970
+ </fo:inline>
6971
+ </xsl:when>
6972
+ <xsl:otherwise>
6973
+ <fo:block xsl:use-attribute-sets="image-style">
6974
+
6975
+ <xsl:variable name="src">
6976
+ <xsl:call-template name="image_src"/>
6977
+ </xsl:variable>
6978
+
6979
+ <xsl:choose>
6980
+ <xsl:when test="$isDeleted = 'true'">
6981
+ <!-- enclose in svg -->
6982
+ <fo:instream-foreign-object fox:alt-text="Image {@alt}">
6983
+ <xsl:attribute name="width">100%</xsl:attribute>
6984
+ <xsl:attribute name="content-height">100%</xsl:attribute>
6985
+ <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
6986
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
6987
+
6988
+
6989
+ <xsl:apply-templates select="." mode="cross_image"/>
6990
+
6991
+ </fo:instream-foreign-object>
6992
+ </xsl:when>
6993
+ <xsl:otherwise>
6994
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
6995
+ </xsl:otherwise>
6996
+ </xsl:choose>
6997
+
6998
+ </fo:block>
6999
+ </xsl:otherwise>
7000
+ </xsl:choose>
7001
+ </xsl:template><xsl:template name="image_src">
7002
+ <xsl:choose>
7003
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
7004
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
7005
+ </xsl:when>
7006
+ <xsl:when test="not(starts-with(@src, 'data:'))">
7007
+ <xsl:value-of select="concat('url(file:',$basepath, @src, ')')"/>
7008
+ </xsl:when>
7009
+ <xsl:otherwise>
7010
+ <xsl:value-of select="@src"/>
7011
+ </xsl:otherwise>
7012
+ </xsl:choose>
7013
+ </xsl:template><xsl:template match="*[local-name() = 'image']" mode="cross_image">
7014
+ <xsl:choose>
7015
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
7016
+ <xsl:variable name="src">
7017
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
7018
+ </xsl:variable>
7019
+ <xsl:variable name="width" select="document($src)/@width"/>
7020
+ <xsl:variable name="height" select="document($src)/@height"/>
7021
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
7022
+ <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{$src}" style="overflow:visible;"/>
7023
+ </svg>
7024
+ </xsl:when>
7025
+ <xsl:when test="not(starts-with(@src, 'data:'))">
7026
+ <xsl:variable name="src">
7027
+ <xsl:value-of select="concat('url(file:',$basepath, @src, ')')"/>
7028
+ </xsl:variable>
7029
+ <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
7030
+ <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
7031
+ <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
7032
+ <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
7033
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
7034
+ <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{$src}" style="overflow:visible;"/>
7035
+ </svg>
7036
+ </xsl:when>
7037
+ <xsl:otherwise>
7038
+ <xsl:variable name="base64String" select="substring-after(@src, 'base64,')"/>
7039
+ <xsl:variable name="decoder" select="java:java.util.Base64.getDecoder()"/>
7040
+ <xsl:variable name="fileContent" select="java:decode($decoder, $base64String)"/>
7041
+ <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
7042
+ <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
7043
+ <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
7044
+ <!-- width=<xsl:value-of select="$width"/> -->
7045
+ <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
7046
+ <!-- height=<xsl:value-of select="$height"/> -->
7047
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
7048
+ <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
7049
+ <xsl:call-template name="svg_cross">
7050
+ <xsl:with-param name="width" select="$width"/>
7051
+ <xsl:with-param name="height" select="$height"/>
7052
+ </xsl:call-template>
7053
+ </svg>
7054
+ </xsl:otherwise>
7055
+ </xsl:choose>
7056
+
7057
+ </xsl:template><xsl:template name="svg_cross">
7058
+ <xsl:param name="width"/>
7059
+ <xsl:param name="height"/>
7060
+ <line xmlns="http://www.w3.org/2000/svg" x1="0" y1="0" x2="{$width}" y2="{$height}" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
7061
+ <line xmlns="http://www.w3.org/2000/svg" x1="0" y1="{$height}" x2="{$width}" y2="0" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
6570
7062
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
6571
7063
  <xsl:apply-templates mode="contents"/>
6572
7064
  <xsl:text> </xsl:text>
6573
7065
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
6574
7066
  <xsl:apply-templates mode="bookmarks"/>
6575
7067
  <xsl:text> </xsl:text>
6576
- </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
7068
+ </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="contents" priority="2">
6577
7069
  <xsl:value-of select="."/>
6578
- </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
7070
+ </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
6579
7071
  <xsl:value-of select="."/>
6580
7072
  </xsl:template><xsl:template match="node()" mode="contents">
6581
7073
  <xsl:apply-templates mode="contents"/>
6582
7074
  </xsl:template><xsl:template match="node()" mode="bookmarks">
6583
7075
  <xsl:apply-templates mode="bookmarks"/>
6584
- </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
7076
+ </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
6585
7077
  <xsl:apply-templates select="."/>
6586
7078
  </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
6587
7079
  <xsl:apply-templates mode="bookmarks"/>
@@ -6794,6 +7286,8 @@
6794
7286
  </fo:list-item-body>
6795
7287
  </fo:list-item>
6796
7288
  </fo:list-block>
7289
+ </xsl:template><xsl:template name="extractSection">
7290
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
6797
7291
  </xsl:template><xsl:template name="extractTitle">
6798
7292
  <xsl:choose>
6799
7293
  <xsl:when test="*[local-name() = 'tab']">
@@ -6820,6 +7314,7 @@
6820
7314
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
6821
7315
 
6822
7316
  <fo:block-container margin-left="0mm">
7317
+ <xsl:copy-of select="@id"/>
6823
7318
  <xsl:if test="parent::*[local-name() = 'note']">
6824
7319
  <xsl:attribute name="margin-left">
6825
7320
  <xsl:choose>
@@ -6841,6 +7336,7 @@
6841
7336
 
6842
7337
 
6843
7338
 
7339
+
6844
7340
 
6845
7341
 
6846
7342
 
@@ -7096,6 +7592,7 @@
7096
7592
  </xsl:template><xsl:template match="*[local-name() = 'example']">
7097
7593
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
7098
7594
 
7595
+
7099
7596
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
7100
7597
 
7101
7598
  <xsl:variable name="element">
@@ -7123,6 +7620,7 @@
7123
7620
  <xsl:variable name="element">
7124
7621
  block
7125
7622
 
7623
+ <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
7126
7624
  </xsl:variable>
7127
7625
  <xsl:choose>
7128
7626
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
@@ -7130,7 +7628,7 @@
7130
7628
  <xsl:apply-templates/>
7131
7629
  </fo:inline>
7132
7630
  </xsl:when>
7133
- <xsl:when test="normalize-space($element) = 'block'">
7631
+ <xsl:when test="contains(normalize-space($element), 'block')">
7134
7632
  <fo:block xsl:use-attribute-sets="example-name-style">
7135
7633
  <xsl:apply-templates/>
7136
7634
  </fo:block>
@@ -7162,7 +7660,7 @@
7162
7660
  </fo:inline>
7163
7661
  </xsl:otherwise>
7164
7662
  </xsl:choose>
7165
- </xsl:template><xsl:template match="*[local-name() = 'termsource']">
7663
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
7166
7664
  <fo:block xsl:use-attribute-sets="termsource-style">
7167
7665
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
7168
7666
  <xsl:variable name="termsource_text">
@@ -7171,13 +7669,15 @@
7171
7669
 
7172
7670
  <xsl:choose>
7173
7671
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
7174
- <xsl:apply-templates/>
7672
+ <!-- <xsl:apply-templates /> -->
7673
+ <xsl:copy-of select="$termsource_text"/>
7175
7674
  </xsl:when>
7176
7675
  <xsl:otherwise>
7177
7676
 
7178
7677
  <xsl:text>[</xsl:text>
7179
7678
 
7180
- <xsl:apply-templates/>
7679
+ <!-- <xsl:apply-templates /> -->
7680
+ <xsl:copy-of select="$termsource_text"/>
7181
7681
 
7182
7682
  <xsl:text>]</xsl:text>
7183
7683
 
@@ -7188,20 +7688,25 @@
7188
7688
  <xsl:if test="normalize-space() != ''">
7189
7689
  <xsl:value-of select="."/>
7190
7690
  </xsl:if>
7191
- </xsl:template><xsl:template match="*[local-name() = 'origin']">
7691
+ </xsl:template><xsl:variable name="localized.source">
7692
+ <xsl:call-template name="getLocalizedString">
7693
+ <xsl:with-param name="key">source</xsl:with-param>
7694
+ </xsl:call-template>
7695
+ </xsl:variable><xsl:template match="*[local-name() = 'origin']">
7192
7696
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
7697
+ <xsl:if test="normalize-space(@citeas) = ''">
7698
+ <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
7699
+ </xsl:if>
7193
7700
 
7194
7701
  <fo:inline>
7195
7702
 
7196
7703
 
7197
7704
 
7705
+ <xsl:value-of select="$localized.source"/>
7706
+ <xsl:text> </xsl:text>
7198
7707
 
7199
- <xsl:call-template name="getTitle">
7200
- <xsl:with-param name="name" select="'title-source'"/>
7201
- </xsl:call-template>
7202
7708
 
7203
7709
 
7204
- <xsl:text>: </xsl:text>
7205
7710
  </fo:inline>
7206
7711
 
7207
7712
  <fo:inline xsl:use-attribute-sets="origin-style">
@@ -7322,6 +7827,7 @@
7322
7827
 
7323
7828
 
7324
7829
 
7830
+
7325
7831
  <xsl:choose>
7326
7832
  <xsl:when test="ancestor::bipm:annex">2</xsl:when>
7327
7833
  <xsl:otherwise>8</xsl:otherwise>
@@ -7352,7 +7858,8 @@
7352
7858
  </fo:inline>
7353
7859
  </xsl:when>
7354
7860
  <xsl:otherwise>
7355
- <fo:inline padding-right="{$padding-right}mm">​</fo:inline>
7861
+ <xsl:variable name="direction"><xsl:if test="$lang = 'ar'"><xsl:value-of select="$RLM"/></xsl:if></xsl:variable>
7862
+ <fo:inline padding-right="{$padding-right}mm"><xsl:value-of select="$direction"/>​</fo:inline>
7356
7863
  </xsl:otherwise>
7357
7864
  </xsl:choose>
7358
7865
 
@@ -7406,7 +7913,6 @@
7406
7913
 
7407
7914
 
7408
7915
 
7409
-
7410
7916
  <xsl:apply-templates/>
7411
7917
  </fo:block>
7412
7918
 
@@ -7451,7 +7957,7 @@
7451
7957
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
7452
7958
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
7453
7959
  <xsl:choose>
7454
- <xsl:when test="parent::*[local-name() = 'note']">
7960
+ <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
7455
7961
  <fo:block-container>
7456
7962
  <xsl:attribute name="margin-left">
7457
7963
  <xsl:choose>
@@ -7463,6 +7969,7 @@
7463
7969
 
7464
7970
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
7465
7971
 
7972
+
7466
7973
  <fo:block-container margin-left="0mm">
7467
7974
  <fo:block>
7468
7975
  <xsl:apply-templates select="." mode="ul_ol"/>
@@ -7621,8 +8128,8 @@
7621
8128
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
7622
8129
  <xsl:apply-templates/>
7623
8130
  </fo:block>
7624
- </xsl:template><xsl:template match="*[local-name() = 'bookmark']">
7625
- <fo:inline id="{@id}"/>
8131
+ </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
8132
+ <fo:inline id="{@id}" font-size="1pt"/>
7626
8133
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
7627
8134
  <!-- <row>
7628
8135
  <date>05-07-2013</date>
@@ -7692,6 +8199,10 @@
7692
8199
 
7693
8200
 
7694
8201
 
8202
+
8203
+
8204
+
8205
+
7695
8206
  </xsl:template><xsl:template name="processBibitemDocId">
7696
8207
  <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
7697
8208
  <xsl:choose>
@@ -7748,6 +8259,70 @@
7748
8259
  <xsl:value-of select="substring(.,1,1)"/>
7749
8260
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
7750
8261
  <fo:inline><xsl:apply-templates/></fo:inline>
8262
+ </xsl:template><xsl:template match="*[local-name() = 'form']">
8263
+ <fo:block>
8264
+ <xsl:apply-templates/>
8265
+ </fo:block>
8266
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'label']">
8267
+ <fo:inline><xsl:apply-templates/></fo:inline>
8268
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'text' or @type = 'date' or @type = 'file' or @type = 'password']">
8269
+ <fo:inline>
8270
+ <xsl:call-template name="text_input"/>
8271
+ </fo:inline>
8272
+ </xsl:template><xsl:template name="text_input">
8273
+ <xsl:variable name="count">
8274
+ <xsl:choose>
8275
+ <xsl:when test="normalize-space(@maxlength) != ''"><xsl:value-of select="@maxlength"/></xsl:when>
8276
+ <xsl:when test="normalize-space(@size) != ''"><xsl:value-of select="@size"/></xsl:when>
8277
+ <xsl:otherwise>10</xsl:otherwise>
8278
+ </xsl:choose>
8279
+ </xsl:variable>
8280
+ <xsl:call-template name="repeat">
8281
+ <xsl:with-param name="char" select="'_'"/>
8282
+ <xsl:with-param name="count" select="$count"/>
8283
+ </xsl:call-template>
8284
+ <xsl:text> </xsl:text>
8285
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'button']">
8286
+ <xsl:variable name="caption">
8287
+ <xsl:choose>
8288
+ <xsl:when test="normalize-space(@value) != ''"><xsl:value-of select="@value"/></xsl:when>
8289
+ <xsl:otherwise>BUTTON</xsl:otherwise>
8290
+ </xsl:choose>
8291
+ </xsl:variable>
8292
+ <fo:inline>[<xsl:value-of select="$caption"/>]</fo:inline>
8293
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'checkbox']">
8294
+ <fo:inline padding-right="1mm">
8295
+ <fo:instream-foreign-object fox:alt-text="Box" baseline-shift="-10%">
8296
+ <xsl:attribute name="height">3.5mm</xsl:attribute>
8297
+ <xsl:attribute name="content-width">100%</xsl:attribute>
8298
+ <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
8299
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
8300
+ <svg xmlns="http://www.w3.org/2000/svg" width="80" height="80">
8301
+ <polyline points="0,0 80,0 80,80 0,80 0,0" stroke="black" stroke-width="5" fill="white"/>
8302
+ </svg>
8303
+ </fo:instream-foreign-object>
8304
+ </fo:inline>
8305
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'input'][@type = 'radio']">
8306
+ <fo:inline padding-right="1mm">
8307
+ <fo:instream-foreign-object fox:alt-text="Box" baseline-shift="-10%">
8308
+ <xsl:attribute name="height">3.5mm</xsl:attribute>
8309
+ <xsl:attribute name="content-width">100%</xsl:attribute>
8310
+ <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
8311
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
8312
+ <svg xmlns="http://www.w3.org/2000/svg" width="80" height="80">
8313
+ <circle cx="40" cy="40" r="30" stroke="black" stroke-width="5" fill="white"/>
8314
+ <circle cx="40" cy="40" r="15" stroke="black" stroke-width="5" fill="white"/>
8315
+ </svg>
8316
+ </fo:instream-foreign-object>
8317
+ </fo:inline>
8318
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'select']">
8319
+ <fo:inline>
8320
+ <xsl:call-template name="text_input"/>
8321
+ </fo:inline>
8322
+ </xsl:template><xsl:template match="*[local-name() = 'form']//*[local-name() = 'textarea']">
8323
+ <fo:block-container border="1pt solid black" width="50%">
8324
+ <fo:block> </fo:block>
8325
+ </fo:block-container>
7751
8326
  </xsl:template><xsl:template name="convertDate">
7752
8327
  <xsl:param name="date"/>
7753
8328
  <xsl:param name="format" select="'short'"/>
@@ -7955,6 +8530,9 @@
7955
8530
  <xsl:when test="parent::*[local-name() = 'preface']">
7956
8531
  <xsl:value-of select="$level_total - 1"/>
7957
8532
  </xsl:when>
8533
+ <xsl:when test="ancestor::*[local-name() = 'preface'] and not(ancestor::*[local-name() = 'foreword']) and not(ancestor::*[local-name() = 'introduction'])"> <!-- for preface/clause -->
8534
+ <xsl:value-of select="$level_total - 1"/>
8535
+ </xsl:when>
7958
8536
  <xsl:when test="ancestor::*[local-name() = 'preface']">
7959
8537
  <xsl:value-of select="$level_total - 2"/>
7960
8538
  </xsl:when>
@@ -8019,6 +8597,7 @@
8019
8597
 
8020
8598
 
8021
8599
 
8600
+
8022
8601
 
8023
8602
 
8024
8603
 
@@ -8079,17 +8658,69 @@
8079
8658
  </xsl:call-template>
8080
8659
  </xsl:if>
8081
8660
  </xsl:template><xsl:template name="getLocalizedString">
8082
- <xsl:param name="key"/>
8661
+ <xsl:param name="key"/>
8083
8662
 
8084
8663
  <xsl:variable name="curr_lang">
8085
8664
  <xsl:call-template name="getLang"/>
8086
8665
  </xsl:variable>
8087
8666
 
8667
+ <xsl:variable name="data_value" select="normalize-space(xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang])"/>
8668
+
8088
8669
  <xsl:choose>
8670
+ <xsl:when test="$data_value != ''">
8671
+ <xsl:value-of select="$data_value"/>
8672
+ </xsl:when>
8089
8673
  <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
8090
8674
  <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
8091
8675
  </xsl:when>
8092
- <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
8676
+ <xsl:otherwise>
8677
+ <xsl:variable name="key_">
8678
+ <xsl:call-template name="capitalize">
8679
+ <xsl:with-param name="str" select="translate($key, '_', ' ')"/>
8680
+ </xsl:call-template>
8681
+ </xsl:variable>
8682
+ <xsl:value-of select="$key_"/>
8683
+ </xsl:otherwise>
8093
8684
  </xsl:choose>
8094
8685
 
8686
+ </xsl:template><xsl:template name="setTrackChangesStyles">
8687
+ <xsl:param name="isAdded"/>
8688
+ <xsl:param name="isDeleted"/>
8689
+ <xsl:choose>
8690
+ <xsl:when test="local-name() = 'math'">
8691
+ <xsl:if test="$isAdded = 'true'">
8692
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
8693
+ </xsl:if>
8694
+ <xsl:if test="$isDeleted = 'true'">
8695
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
8696
+ </xsl:if>
8697
+ </xsl:when>
8698
+ <xsl:otherwise>
8699
+ <xsl:if test="$isAdded = 'true'">
8700
+ <xsl:attribute name="border"><xsl:value-of select="$border-block-added"/></xsl:attribute>
8701
+ <xsl:attribute name="padding">2mm</xsl:attribute>
8702
+ </xsl:if>
8703
+ <xsl:if test="$isDeleted = 'true'">
8704
+ <xsl:attribute name="border"><xsl:value-of select="$border-block-deleted"/></xsl:attribute>
8705
+ <xsl:if test="local-name() = 'table'">
8706
+ <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
8707
+ </xsl:if>
8708
+ <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
8709
+ <xsl:attribute name="padding">2mm</xsl:attribute>
8710
+ </xsl:if>
8711
+ </xsl:otherwise>
8712
+ </xsl:choose>
8713
+ </xsl:template><xsl:variable name="LRM" select="'‎'"/><xsl:variable name="RLM" select="'‏'"/><xsl:template name="setWritingMode">
8714
+ <xsl:if test="$lang = 'ar'">
8715
+ <xsl:attribute name="writing-mode">rl-tb</xsl:attribute>
8716
+ </xsl:if>
8717
+ </xsl:template><xsl:template name="setAlignment">
8718
+ <xsl:param name="align" select="normalize-space(@align)"/>
8719
+ <xsl:choose>
8720
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
8721
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
8722
+ <xsl:when test="$align != ''">
8723
+ <xsl:value-of select="$align"/>
8724
+ </xsl:when>
8725
+ </xsl:choose>
8095
8726
  </xsl:template></xsl:stylesheet>