metanorma-iso 2.7.4 → 2.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
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:iso="https://www.metanorma.org/ns/iso" 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:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="http://xml.apache.org/xalan/java" xmlns:barcode="http://barcode4j.krysalis.org/ns" exclude-result-prefixes="java" version="1.0">
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:iso="https://www.metanorma.org/ns/iso" 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:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="http://xml.apache.org/xalan/java" xmlns:barcode="http://barcode4j.krysalis.org/ns" xmlns:redirect="http://xml.apache.org/xalan/redirect" exclude-result-prefixes="java" extension-element-prefixes="redirect" version="1.0">
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
@@ -77,6 +77,16 @@
77
77
  </xsl:if>
78
78
  </xsl:variable>
79
79
 
80
+ <xsl:variable name="copyrightTextLastPage2024">
81
+ <xsl:value-of select="concat('© ', $copyrightAbbr, ' ', $copyrightYear)"/>
82
+ <xsl:if test="$copyrightAbbrIEEE != ''">
83
+ <xsl:value-of select="$linebreak"/>
84
+ <xsl:value-of select="concat('© ', $copyrightAbbrIEEE, ' ', $copyrightYear)"/>
85
+ </xsl:if>
86
+ <xsl:value-of select="$linebreak"/>
87
+ <xsl:value-of select="$i18n_all_rights_reserved"/>
88
+ </xsl:variable>
89
+
80
90
  <xsl:variable name="docidentifier_iso_with_lang" select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso-with-lang']"/>
81
91
 
82
92
  <xsl:variable name="lang-1st-letter_tmp" select="substring-before(substring-after($docidentifier_iso_with_lang, '('), ')')"/>
@@ -100,7 +110,9 @@
100
110
  <xsl:choose>
101
111
  <!-- year separator replace to '-' -->
102
112
  <xsl:when test="$layoutVersion = '1951'">
103
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp),':',' - ')"/>
113
+ <xsl:variable name="iso_reference_tmp_" select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp),':',' - ')"/>
114
+ <!-- insert space before ( -->
115
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp_),'\(',' \(')"/>
104
116
  </xsl:when>
105
117
  <xsl:when test="$layoutVersion = '1972'">
106
118
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp),':','-')"/>
@@ -254,6 +266,10 @@
254
266
 
255
267
  <xsl:variable name="proof-text">PROOF/ÉPREUVE</xsl:variable>
256
268
 
269
+ <xsl:variable name="docnumber_with_prefix">
270
+ <xsl:if test="$doctype = 'recommendation'">R </xsl:if><xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:docnumber"/>
271
+ </xsl:variable>
272
+
257
273
  <xsl:variable name="ISO_title_en">INTERNATIONAL ORGANIZATION FOR STANDARDIZATION</xsl:variable>
258
274
  <xsl:variable name="ISO_title_ru">МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ</xsl:variable>
259
275
  <xsl:variable name="ISO_title_fr">ORGANISATION INTERNATIONALE DE NORMALISATION</xsl:variable>
@@ -264,6 +280,8 @@
264
280
  <xsl:variable name="i18n_voting_begins_on"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">voting_begins_on</xsl:with-param></xsl:call-template></xsl:variable>
265
281
  <xsl:variable name="i18n_voting_terminates_on"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">voting_terminates_on</xsl:with-param></xsl:call-template></xsl:variable>
266
282
  <xsl:variable name="i18n_price_based_on"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">price_based_on</xsl:with-param></xsl:call-template></xsl:variable>
283
+ <xsl:variable name="i18n_price"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">price</xsl:with-param></xsl:call-template></xsl:variable>
284
+ <xsl:variable name="i18n_date_first_printing"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">date_first_printing</xsl:with-param></xsl:call-template></xsl:variable>
267
285
  <xsl:variable name="i18n_corrected_version"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">corrected_version</xsl:with-param></xsl:call-template></xsl:variable>
268
286
  <xsl:variable name="i18n_fast_track_procedure"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">fast-track-procedure</xsl:with-param></xsl:call-template></xsl:variable>
269
287
  <xsl:variable name="i18n_all_rights_reserved"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">all_rights_reserved</xsl:with-param></xsl:call-template></xsl:variable>
@@ -278,10 +296,12 @@
278
296
  -->
279
297
  <xsl:variable name="contents_">
280
298
  <contents>
281
- <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
282
- <xsl:call-template name="processMainSectionsDefault_Contents"/>
283
- <xsl:apply-templates select="//iso:indexsect" mode="contents"/>
284
- <xsl:call-template name="processTablesFigures_Contents"/>
299
+ <xsl:if test="$isGenerateTableIF = 'false'">
300
+ <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
301
+ <xsl:call-template name="processMainSectionsDefault_Contents"/>
302
+ <xsl:apply-templates select="//iso:indexsect" mode="contents"/>
303
+ <xsl:call-template name="processTablesFigures_Contents"/>
304
+ </xsl:if>
285
305
  </contents>
286
306
  </xsl:variable>
287
307
  <xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
@@ -393,6 +413,11 @@
393
413
 
394
414
  <xsl:variable name="root-style">
395
415
  <root-style xsl:use-attribute-sets="root-style">
416
+
417
+ <xsl:if test="$layoutVersion = '1951'">
418
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
419
+ </xsl:if>
420
+
396
421
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
397
422
  <xsl:attribute name="font-family">Arial, Times New Roman, Cambria Math, <xsl:value-of select="$font_noto_sans"/></xsl:attribute>
398
423
  <xsl:attribute name="font-family-generic">Sans</xsl:attribute>
@@ -403,12 +428,10 @@
403
428
  <xsl:attribute name="font-size">8.5pt</xsl:attribute>
404
429
  </xsl:if>
405
430
 
406
- <xsl:if test="$layoutVersion = '2024'">
407
- <xsl:attribute name="font-size">10.5pt</xsl:attribute>
431
+ <xsl:if test="$lang = 'zh'">
432
+ <!-- <xsl:attribute name="font-family">Source Han Sans, Times New Roman, Cambria Math</xsl:attribute> -->
433
+ <xsl:attribute name="font-selection-strategy">character-by-character</xsl:attribute>
408
434
  </xsl:if>
409
- <!-- <xsl:if test="$lang = 'zh'">
410
- <xsl:attribute name="font-family">Source Han Sans, Times New Roman, Cambria Math</xsl:attribute>
411
- </xsl:if> -->
412
435
  </root-style>
413
436
  </xsl:variable>
414
437
  <xsl:call-template name="insertRootStyle">
@@ -425,8 +448,8 @@
425
448
 
426
449
  <fo:layout-master-set>
427
450
 
428
- <xsl:variable name="marginLeftRight_cover_page_1951">12.5</xsl:variable>
429
- <xsl:variable name="marginTop_cover_page_1951">18</xsl:variable>
451
+ <xsl:variable name="marginLeftRight_cover_page_1951">16.5</xsl:variable> <!-- 12.5 -->
452
+ <xsl:variable name="marginTop_cover_page_1951">19.5</xsl:variable>
430
453
  <xsl:variable name="marginBottom_cover_page_1951">94.5</xsl:variable>
431
454
 
432
455
  <xsl:variable name="marginLeft_cover_page_1972">21</xsl:variable>
@@ -438,8 +461,8 @@
438
461
  <xsl:variable name="marginRight_cover_page_1987">37</xsl:variable>
439
462
  <xsl:variable name="marginTopBottom_cover_page_1987">20</xsl:variable>
440
463
 
441
- <xsl:variable name="marginLeftRight_cover_page_2024">14</xsl:variable>
442
- <xsl:variable name="marginTopBottom_cover_page_2024">15</xsl:variable>
464
+ <xsl:variable name="marginLeftRight_cover_page_2024">9.9</xsl:variable>
465
+ <xsl:variable name="marginTopBottom_cover_page_2024">9.9</xsl:variable>
443
466
 
444
467
  <!-- cover page -->
445
468
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
@@ -612,11 +635,16 @@
612
635
  <!-- odd pages -->
613
636
  <fo:simple-page-master master-name="odd-publishedISO" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
614
637
  <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm" column-count="{$layout_columns}" column-gap="{$column_gap}"/>
615
- <fo:region-before region-name="header-odd" extent="{$marginTop}mm"/> <!-- display-align="center" -->
638
+ <fo:region-before region-name="header-odd" extent="{$marginTop}mm">
639
+ <xsl:if test="$layoutVersion = '1951'">
640
+ <xsl:attribute name="precedence">true</xsl:attribute>
641
+ </xsl:if>
642
+ </fo:region-before>
616
643
  <fo:region-after region-name="footer-odd" extent="{$marginBottom - 2}mm"/>
617
644
  <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
618
645
  <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
619
646
  </fo:simple-page-master>
647
+
620
648
  <fo:simple-page-master master-name="odd-publishedISO-landscape" page-width="{$pageHeight}mm" page-height="{$pageWidth}mm">
621
649
  <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm" column-count="{$layout_columns}" column-gap="{$column_gap}"/>
622
650
  <fo:region-before region-name="header-odd" extent="{$marginTop}mm"/> <!-- display-align="center" -->
@@ -627,11 +655,25 @@
627
655
  <!-- even pages -->
628
656
  <fo:simple-page-master master-name="even-publishedISO" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
629
657
  <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight2}mm" margin-right="{$marginLeftRight1}mm" column-count="{$layout_columns}" column-gap="{$column_gap}"/>
630
- <fo:region-before region-name="header-even" extent="{$marginTop}mm"/>
658
+ <fo:region-before region-name="header-even" extent="{$marginTop}mm">
659
+ <xsl:if test="$layoutVersion = '1951'">
660
+ <xsl:attribute name="precedence">true</xsl:attribute>
661
+ </xsl:if>
662
+ </fo:region-before>
631
663
  <fo:region-after region-name="footer-even" extent="{$marginBottom - 2}mm"/>
632
664
  <fo:region-start region-name="left-region" extent="{$marginLeftRight2}mm"/>
633
665
  <fo:region-end region-name="right-region" extent="{$marginLeftRight1}mm"/>
634
666
  </fo:simple-page-master>
667
+
668
+ <!-- for 1951 layout only -->
669
+ <fo:simple-page-master master-name="even-last-publishedISO" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
670
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight2}mm" margin-right="{$marginLeftRight1}mm" column-count="{$layout_columns}" column-gap="{$column_gap}"/>
671
+ <fo:region-before region-name="header-even" extent="{$marginTop}mm" precedence="true"/>
672
+ <fo:region-after region-name="footer-even-last" extent="{$marginBottom - 2}mm"/>
673
+ <fo:region-start region-name="left-region" extent="{$marginLeftRight2}mm"/>
674
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight1}mm"/>
675
+ </fo:simple-page-master>
676
+
635
677
  <fo:simple-page-master master-name="even-publishedISO-landscape" page-width="{$pageHeight}mm" page-height="{$pageWidth}mm">
636
678
  <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight2}mm" margin-right="{$marginLeftRight1}mm" column-count="{$layout_columns}" column-gap="{$column_gap}"/>
637
679
  <fo:region-before region-name="header-even" extent="{$marginTop}mm"/>
@@ -672,21 +714,30 @@
672
714
 
673
715
  <fo:page-sequence-master master-name="document-publishedISO">
674
716
  <fo:repeatable-page-master-alternatives>
675
- <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
717
+ <xsl:if test="not($layoutVersion = '1951')">
718
+ <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
719
+ </xsl:if>
720
+ <xsl:if test="$layoutVersion = '1951'">
721
+ <fo:conditional-page-master-reference page-position="last" master-reference="even-last-publishedISO"/> <!-- odd-or-even="even" -->
722
+ </xsl:if>
676
723
  <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-publishedISO"/>
677
724
  <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-publishedISO"/>
678
725
  </fo:repeatable-page-master-alternatives>
679
726
  </fo:page-sequence-master>
680
727
  <fo:page-sequence-master master-name="document-publishedISO-portrait">
681
728
  <fo:repeatable-page-master-alternatives>
682
- <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
729
+ <xsl:if test="not($layoutVersion = '1951')">
730
+ <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
731
+ </xsl:if>
683
732
  <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-publishedISO"/>
684
733
  <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-publishedISO"/>
685
734
  </fo:repeatable-page-master-alternatives>
686
735
  </fo:page-sequence-master>
687
736
  <fo:page-sequence-master master-name="document-publishedISO-landscape">
688
737
  <fo:repeatable-page-master-alternatives>
689
- <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
738
+ <xsl:if test="not($layoutVersion = '1951')">
739
+ <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
740
+ </xsl:if>
690
741
  <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-publishedISO-landscape"/>
691
742
  <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-publishedISO-landscape"/>
692
743
  </fo:repeatable-page-master-alternatives>
@@ -753,18 +804,20 @@
753
804
  <xsl:with-param name="contents" select="$contents"/>
754
805
  </xsl:call-template>
755
806
 
807
+ <xsl:if test="$isGenerateTableIF = 'false'"> <!-- no need cover page for auto-layout algorithm -->
808
+
756
809
  <!-- cover page -->
757
810
  <xsl:choose>
758
811
  <xsl:when test="$layoutVersion = '1951'">
759
812
  <fo:page-sequence master-reference="cover-page_1951" force-page-count="no-force">
760
- <fo:static-content flow-name="cover-page-header" font-weight="bold" font-size="9pt">
813
+ <fo:static-content flow-name="cover-page-header" font-family="Times New Roman" font-size="8.5pt" font-weight="bold">
761
814
  <fo:block-container height="99%" display-align="after">
762
815
  <fo:block text-align-last="justify" role="SKIP">
763
816
  <!-- Example: UDC 669.7 : 620.178.1 -->
764
817
  <xsl:value-of select="$udc"/>
765
818
  <fo:inline keep-together.within-line="always" role="SKIP">
766
819
  <fo:leader leader-pattern="space"/>
767
- <fo:inline font-weight="normal"><xsl:value-of select="concat($i18n_reference_number, ':')"/></fo:inline><xsl:value-of select="$ISOnumber"/>
820
+ <fo:inline font-weight="normal"><xsl:value-of select="concat($i18n_reference_number_abbrev, ' : ')"/></fo:inline><xsl:value-of select="$ISOnumber"/> <!-- font-family="Arial" -->
768
821
  </fo:inline>
769
822
  </fo:block>
770
823
  </fo:block-container>
@@ -776,41 +829,43 @@
776
829
  </fo:block>
777
830
  </fo:static-content>
778
831
  <fo:flow flow-name="xsl-region-body">
779
- <fo:block text-align="center" font-family="Arial" margin-top="18mm">
832
+ <fo:block text-align="center" font-family="Arial" margin-top="14mm">
780
833
  <fo:block>
781
834
  <fo:instream-foreign-object content-width="23mm" fox:alt-text="Image ISO Logo">
782
835
  <xsl:copy-of select="$Image-ISO-Logo-1951-SVG"/>
783
836
  </fo:instream-foreign-object>
784
837
  </fo:block>
785
- <fo:block margin-top="3mm" font-size="8pt" font-weight="bold">
838
+ <fo:block margin-top="2mm" font-size="8pt" font-weight="bold">
786
839
  <xsl:call-template name="add-letter-spacing">
787
840
  <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization/iso:name))"/>
788
- <xsl:with-param name="letter-spacing" select="0.65"/>
841
+ <xsl:with-param name="letter-spacing" select="0.55"/>
789
842
  </xsl:call-template>
790
843
  </fo:block>
791
- <fo:block-container margin-top="12mm" height="78mm" display-align="center">
792
- <fo:block font-size="20pt">
793
- <!-- ISO RECOMMENDATION -->
794
- <xsl:call-template name="add-letter-spacing">
795
- <xsl:with-param name="text" select="$doctype_uppercased"/>
796
- <xsl:with-param name="letter-spacing" select="0.65"/>
797
- </xsl:call-template>
798
- </fo:block>
799
- <fo:block font-size="24pt" margin-top="5mm">
800
- <xsl:if test="$doctype = 'recommendation'">R </xsl:if>
801
- <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:docnumber"/>
802
- </fo:block>
803
844
 
804
- <fo:block font-size="11pt" margin-top="12mm">
845
+ <fo:block font-size="20pt" margin-top="31mm">
846
+ <!-- ISO RECOMMENDATION -->
847
+ <xsl:call-template name="add-letter-spacing">
848
+ <xsl:with-param name="text" select="$doctype_uppercased"/>
849
+ <xsl:with-param name="letter-spacing" select="0.35"/>
850
+ </xsl:call-template>
851
+ </fo:block>
852
+ <fo:block font-size="24pt" margin-top="5mm">
853
+ <xsl:value-of select="$docnumber_with_prefix"/>
854
+ </fo:block>
855
+
856
+ <fo:block-container height="39mm" display-align="center">
857
+ <fo:block font-size="11pt">
805
858
  <xsl:call-template name="insertTitlesLangMain"/>
806
859
  </fo:block>
807
-
808
860
  </fo:block-container>
809
- <fo:block-container height="40mm" display-align="center" font-size="9pt">
810
- <fo:block><xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:edition[@language != '']"/></fo:block>
811
- <fo:block> </fo:block>
861
+
862
+ <fo:block-container margin-top="8.5mm" font-size="10pt"> <!-- height="40mm" display-align="center" -->
863
+ <!-- Example: 1st EDITION -->
864
+ <!-- <fo:block><xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:edition[@language != '']" /></fo:block> -->
865
+ <fo:block font-weight="bold"><xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:edition[@language != '']"/></fo:block>
866
+ <!-- <fo:block>&#xa0;</fo:block> -->
812
867
  <!-- Example: October 1971 -->
813
- <fo:block>
868
+ <fo:block margin-top="2mm" font-size="9pt">
814
869
  <xsl:call-template name="convertDate">
815
870
  <xsl:with-param name="date" select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/>
816
871
  </xsl:call-template>
@@ -1025,10 +1080,10 @@
1025
1080
  <fo:flow flow-name="xsl-region-body">
1026
1081
  <fo:table table-layout="fixed" width="100%">
1027
1082
  <xsl:call-template name="insertInterFont"/>
1028
- <fo:table-column column-width="proportional-column-width(109)"/>
1029
- <fo:table-column column-width="proportional-column-width(1.9)"/>
1030
- <fo:table-column column-width="proportional-column-width(1.9)"/>
1031
- <fo:table-column column-width="proportional-column-width(70)"/>
1083
+ <fo:table-column column-width="proportional-column-width(113.8)"/>
1084
+ <fo:table-column column-width="proportional-column-width(2)"/>
1085
+ <fo:table-column column-width="proportional-column-width(2)"/>
1086
+ <fo:table-column column-width="proportional-column-width(72.2)"/>
1032
1087
  <fo:table-body>
1033
1088
 
1034
1089
  <fo:table-row>
@@ -1040,8 +1095,8 @@
1040
1095
  <!-- International
1041
1096
  Standard -->
1042
1097
  <fo:table-cell number-columns-spanned="2" padding-left="6mm">
1043
- <fo:block-container height="44mm">
1044
- <fo:block font-size="19.2pt" font-weight="bold" line-height="1.25">
1098
+ <fo:block-container height="46mm">
1099
+ <fo:block font-size="20pt" font-weight="bold" line-height="1.25" margin-top="3mm">
1045
1100
 
1046
1101
  <xsl:variable name="updates-document-type" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:updates-document-type"/>
1047
1102
  <xsl:variable name="updates-document-type_localized">
@@ -1102,13 +1157,13 @@
1102
1157
  </fo:table-cell>
1103
1158
  </fo:table-row>
1104
1159
 
1105
- <fo:table-row height="44mm">
1160
+ <fo:table-row height="46mm">
1106
1161
  <fo:table-cell number-columns-spanned="2" border-right="{$cover_page_border}">
1107
1162
  <fo:block>
1108
1163
  </fo:block>
1109
1164
  </fo:table-cell>
1110
1165
  <fo:table-cell number-columns-spanned="2" display-align="after" padding-left="6mm">
1111
- <fo:block font-size="18.2pt" font-weight="bold">
1166
+ <fo:block font-size="19pt" font-weight="bold" line-height="1">
1112
1167
  <xsl:if test="$stage &gt;=60">
1113
1168
  <xsl:attribute name="color"><xsl:value-of select="$color_red"/></xsl:attribute>
1114
1169
  </xsl:if>
@@ -1122,16 +1177,16 @@
1122
1177
  <fo:table-cell number-columns-spanned="2"><fo:block> </fo:block></fo:table-cell>
1123
1178
  <fo:table-cell border-bottom="{$cover_page_border}"><fo:block> </fo:block></fo:table-cell>
1124
1179
  </fo:table-row>
1125
- <fo:table-row height="2mm" font-size="0pt">
1180
+ <fo:table-row height="1.4mm" font-size="0pt">
1126
1181
  <fo:table-cell number-columns-spanned="4"><fo:block> </fo:block></fo:table-cell>
1127
1182
  </fo:table-row>
1128
1183
 
1129
1184
  <fo:table-row>
1130
1185
  <fo:table-cell number-columns-spanned="2" border-right="{$cover_page_border}" padding-right="4mm">
1131
1186
 
1132
- <fo:block-container font-family="Cambria" line-height="1.1" role="SKIP" height="103mm">
1187
+ <fo:block-container font-family="Cambria" line-height="1.1" role="SKIP" height="110mm">
1133
1188
  <fo:block margin-right="3.5mm" role="SKIP">
1134
- <fo:block font-size="18pt" font-weight="bold" margin-top="6pt" role="H1">
1189
+ <fo:block font-size="18pt" font-weight="bold" margin-top="2.5mm" role="H1">
1135
1190
  <xsl:call-template name="insertTitlesLangMain"/>
1136
1191
  </fo:block>
1137
1192
 
@@ -1158,21 +1213,21 @@
1158
1213
  </fo:block-container>
1159
1214
  </fo:table-cell>
1160
1215
  <fo:table-cell number-columns-spanned="2" padding-left="6mm">
1161
- <fo:block margin-top="6pt">
1216
+ <fo:block margin-top="2.5mm" line-height="1.1">
1162
1217
 
1163
1218
  <xsl:if test="not($stage-abbreviation = 'DIS' or $stage-abbreviation = 'DAmd' or $stage-abbreviation = 'DAM')">
1164
1219
  <xsl:variable name="edition_and_date">
1165
1220
  <xsl:call-template name="insertEditionAndDate"/>
1166
1221
  </xsl:variable>
1167
1222
  <xsl:if test="normalize-space($edition_and_date) != ''">
1168
- <fo:block font-size="17.2pt" font-weight="bold" margin-bottom="3mm">
1223
+ <fo:block font-size="18pt" font-weight="bold" margin-bottom="3mm">
1169
1224
  <xsl:value-of select="$edition_and_date"/>
1170
1225
  </fo:block>
1171
1226
  </xsl:if>
1172
1227
  </xsl:if>
1173
1228
 
1174
1229
  <xsl:if test="$doctype = 'amendment' and not($stage-abbreviation = 'FDAmd' or $stage-abbreviation = 'FDAM')">
1175
- <fo:block font-size="17.2pt" font-weight="bold" margin-bottom="3mm">
1230
+ <fo:block font-size="18pt" font-weight="bold" margin-bottom="3mm">
1176
1231
  <xsl:value-of select="$doctype_uppercased"/>
1177
1232
  <xsl:text> </xsl:text>
1178
1233
  <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
@@ -1184,7 +1239,7 @@
1184
1239
 
1185
1240
  <xsl:if test="$doctype = 'amendment' and not($stage-abbreviation = 'FDAmd' or $stage-abbreviation = 'FDAM')">
1186
1241
  <xsl:if test="/iso:iso-standard/iso:bibdata/iso:date[@type = 'updated']">
1187
- <fo:block font-size="17.2pt" font-weight="bold" margin-bottom="3mm">
1242
+ <fo:block font-size="18pt" font-weight="bold" margin-bottom="3mm">
1188
1243
  <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'updated']"/>
1189
1244
  </fo:block>
1190
1245
  </xsl:if>
@@ -1192,7 +1247,7 @@
1192
1247
 
1193
1248
  <xsl:variable name="date_corrected" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:date[@type = 'corrected'])"/>
1194
1249
  <xsl:if test="$date_corrected != ''">
1195
- <fo:block font-size="17.2pt" font-weight="bold" margin-bottom="3mm">
1250
+ <fo:block font-size="18pt" font-weight="bold" margin-bottom="3mm">
1196
1251
  <xsl:value-of select="$i18n_corrected_version"/>
1197
1252
  <xsl:value-of select="$linebreak"/>
1198
1253
  <xsl:value-of select="$date_corrected"/>
@@ -1280,7 +1335,7 @@
1280
1335
  </fo:block>
1281
1336
  </fo:table-cell>
1282
1337
  <fo:table-cell padding="4mm">
1283
- <fo:block color="black" font-size="7.2pt" line-height="1.35">
1338
+ <fo:block color="black" font-size="7.5pt" line-height="1.35">
1284
1339
  <xsl:text>Please share your feedback about the standard. Scan the QR code with your phone or click the link</xsl:text>
1285
1340
  <fo:block margin-top="2pt">
1286
1341
  <fo:basic-link external-destination="{$feedback_link}" fox:alt-text="{$feedback_link}">
@@ -1305,17 +1360,17 @@
1305
1360
  </fo:table-cell>
1306
1361
  </fo:table-row>
1307
1362
 
1308
- <fo:table-row height="12mm">
1309
- <fo:table-cell number-columns-spanned="2" border-right="{$cover_page_border}" display-align="after" padding-bottom="-1mm">
1310
- <fo:block font-size="9.6pt">
1363
+ <fo:table-row height="13mm">
1364
+ <fo:table-cell number-columns-spanned="2" border-right="{$cover_page_border}" display-align="after" padding-bottom="-1mm" line-height="1.1">&gt;
1365
+ <fo:block font-size="10pt">
1311
1366
  <xsl:value-of select="$i18n_reference_number"/>
1312
1367
  </fo:block>
1313
- <fo:block font-size="9.6pt">
1368
+ <fo:block font-size="10pt">
1314
1369
  <xsl:value-of select="$ISOnumber"/>
1315
1370
  </fo:block>
1316
1371
  </fo:table-cell>
1317
1372
  <fo:table-cell number-columns-spanned="2" padding-left="6mm" display-align="after" padding-bottom="-1mm">
1318
- <fo:block font-size="9.6pt">
1373
+ <fo:block font-size="10pt" line-height="1.1">
1319
1374
  <xsl:value-of select="concat('© ', $copyrightAbbr, ' ', $copyrightYear)"/>
1320
1375
  <xsl:if test="$copyrightAbbrIEEE != ''">
1321
1376
  <xsl:value-of select="$linebreak"/>
@@ -1998,27 +2053,99 @@
1998
2053
  </xsl:otherwise>
1999
2054
  </xsl:choose>
2000
2055
 
2056
+ </xsl:if> <!-- $isGenerateTableIF = ' false' -->
2057
+
2058
+ <xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step1</xsl:message></xsl:if>
2059
+ <xsl:variable name="startTime1" select="java:getTime(java:java.util.Date.new())"/>
2060
+
2001
2061
  <!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
2002
2062
  <xsl:variable name="updated_xml_step1">
2003
- <xsl:apply-templates mode="update_xml_step1"/>
2063
+ <xsl:if test="$table_if = 'false'">
2064
+ <xsl:apply-templates mode="update_xml_step1"/>
2065
+ </xsl:if>
2004
2066
  </xsl:variable>
2005
- <!-- DEBUG: updated_xml_step1=<xsl:copy-of select="$updated_xml_step1"/> -->
2067
+
2068
+ <!-- DEBUG -->
2069
+ <!-- <redirect:write file="updated_xml_step1_{java:getTime(java:java.util.Date.new())}.xml">
2070
+ <xsl:copy-of select="$updated_xml_step1"/>
2071
+ </redirect:write> -->
2072
+
2073
+ <xsl:variable name="endTime1" select="java:getTime(java:java.util.Date.new())"/>
2074
+ <xsl:if test="$debug = 'true'">
2075
+ <xsl:message>DEBUG: processing time <xsl:value-of select="$endTime1 - $startTime1"/> msec.</xsl:message>
2076
+ <xsl:message>END updated_xml_step1</xsl:message>
2077
+ </xsl:if>
2078
+
2079
+ <xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step2</xsl:message></xsl:if>
2080
+ <xsl:variable name="startTime2" select="java:getTime(java:java.util.Date.new())"/>
2006
2081
 
2007
2082
  <!-- STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
2008
2083
  <xsl:variable name="updated_xml_step2">
2009
- <xsl:apply-templates select="xalan:nodeset($updated_xml_step1)" mode="update_xml_step2"/>
2084
+ <xsl:if test="$table_if = 'false'">
2085
+ <xsl:apply-templates select="xalan:nodeset($updated_xml_step1)" mode="update_xml_step2"/>
2086
+ </xsl:if>
2010
2087
  </xsl:variable>
2088
+
2089
+ <xsl:variable name="endTime2" select="java:getTime(java:java.util.Date.new())"/>
2090
+ <xsl:if test="$debug = 'true'">
2091
+ <xsl:message>DEBUG: processing time <xsl:value-of select="$endTime2 - $startTime2"/> msec.</xsl:message>
2092
+ <xsl:message>END updated_xml_step2</xsl:message>
2093
+ </xsl:if>
2011
2094
  <!-- DEBUG: updated_xml_step2=<xsl:copy-of select="$updated_xml_step2"/> -->
2012
2095
 
2096
+ <xsl:if test="$debug = 'true'"><xsl:message>START updated_xml_step3</xsl:message></xsl:if>
2097
+ <xsl:variable name="startTime3" select="java:getTime(java:java.util.Date.new())"/>
2098
+
2013
2099
  <xsl:variable name="updated_xml_step3">
2014
- <xsl:apply-templates select="xalan:nodeset($updated_xml_step2)" mode="update_xml_enclose_keep-together_within-line"/>
2100
+ <xsl:choose>
2101
+ <xsl:when test="$table_if = 'false'">
2102
+ <xsl:apply-templates select="xalan:nodeset($updated_xml_step2)" mode="update_xml_enclose_keep-together_within-line"/>
2103
+ </xsl:when>
2104
+ <xsl:otherwise>
2105
+ <xsl:copy-of select="."/>
2106
+ </xsl:otherwise>
2107
+ </xsl:choose>
2015
2108
  </xsl:variable>
2109
+
2110
+ <xsl:variable name="endTime3" select="java:getTime(java:java.util.Date.new())"/>
2111
+ <xsl:if test="$debug = 'true'">
2112
+ <xsl:message>DEBUG: processing time <xsl:value-of select="$endTime3 - $startTime3"/> msec.</xsl:message>
2113
+ <xsl:message>END updated_xml_step3</xsl:message>
2114
+ </xsl:if>
2016
2115
  <!-- DEBUG: updated_xml_step3=<xsl:copy-of select="$updated_xml_step3"/> -->
2017
2116
 
2018
2117
  <xsl:for-each select="xalan:nodeset($updated_xml_step3)">
2019
2118
 
2020
2119
  <xsl:choose>
2021
- <xsl:when test="$layoutVersion = '1951'"><!-- To do --></xsl:when>
2120
+ <xsl:when test="$layoutVersion = '1951'">
2121
+ <fo:page-sequence master-reference="document{$document-master-reference}" initial-page-number="auto" force-page-count="no-force">
2122
+ <fo:static-content flow-name="xsl-footnote-separator">
2123
+ <fo:block>
2124
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
2125
+ </fo:block>
2126
+ </fo:static-content>
2127
+ <xsl:call-template name="insertHeaderFooter">
2128
+ <xsl:with-param name="is_header">false</xsl:with-param>
2129
+ <xsl:with-param name="insert_footer_last">false</xsl:with-param>
2130
+ </xsl:call-template>
2131
+ <fo:flow flow-name="xsl-region-body">
2132
+ <fo:block>
2133
+ <!-- <xsl:call-template name="processPrefaceSectionsDefault"/> -->
2134
+ <!-- Introduction will be showed in the main section -->
2135
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition' or local-name() = 'introduction')]">
2136
+ <xsl:sort select="@displayorder" data-type="number"/>
2137
+ <xsl:apply-templates select="."/>
2138
+ </xsl:for-each>
2139
+
2140
+ <fo:block span="all" text-align="center" margin-top="15mm" keep-with-next="always" role="SKIP">
2141
+ <fo:leader leader-pattern="rule" leader-length="22mm"/>
2142
+ </fo:block>
2143
+
2144
+ </fo:block>
2145
+ </fo:flow>
2146
+ </fo:page-sequence>
2147
+ </xsl:when><!-- END: preface sections (Foreword, Brief history for layout 1951 ($layoutVersion = '1951') -->
2148
+
2022
2149
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'">
2023
2150
  <fo:page-sequence master-reference="preface-1987_TR" format="i" force-page-count="no-force">
2024
2151
 
@@ -2136,6 +2263,13 @@
2136
2263
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or ($layoutVersion = '1989' and $revision_date_num &lt;= 19981231)">
2137
2264
  <xsl:attribute name="master-reference">preface-1972-1998</xsl:attribute>
2138
2265
  </xsl:if>
2266
+ <xsl:if test="$layoutVersion = '2024'">
2267
+ <fo:static-content flow-name="xsl-footnote-separator">
2268
+ <fo:block margin-bottom="6pt">
2269
+ <fo:leader leader-pattern="rule" leader-length="51mm" rule-thickness="0.5pt"/>
2270
+ </fo:block>
2271
+ </fo:static-content>
2272
+ </xsl:if>
2139
2273
  <xsl:call-template name="insertHeaderFooter">
2140
2274
  <xsl:with-param name="font-weight">normal</xsl:with-param>
2141
2275
  <xsl:with-param name="is_footer">true</xsl:with-param>
@@ -2197,9 +2331,12 @@
2197
2331
  <xsl:if test="/iso:iso-standard/iso:boilerplate/iso:copyright-statement">
2198
2332
 
2199
2333
  <fo:block-container height="252mm" display-align="after" role="SKIP">
2200
- <xsl:if test="$layoutVersion = '1989' or $layoutVersion = '2024'">
2334
+ <xsl:if test="$layoutVersion = '1989'">
2201
2335
  <xsl:attribute name="height">241.5mm</xsl:attribute>
2202
2336
  </xsl:if>
2337
+ <xsl:if test="$layoutVersion = '2024'">
2338
+ <xsl:attribute name="width">172mm</xsl:attribute>
2339
+ </xsl:if>
2203
2340
  <!-- <fo:block margin-bottom="3mm">
2204
2341
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
2205
2342
  <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold"></fo:inline>
@@ -2209,9 +2346,9 @@
2209
2346
  <xsl:if test="$layoutVersion = '1989'">
2210
2347
  <xsl:attribute name="font-size">8pt</xsl:attribute>
2211
2348
  </xsl:if>
2212
- <xsl:if test="$layoutVersion = '2024'">
2349
+ <!-- <xsl:if test="$layoutVersion = '2024'">
2213
2350
  <xsl:attribute name="font-size">8.6pt</xsl:attribute>
2214
- </xsl:if>
2351
+ </xsl:if> -->
2215
2352
  <xsl:apply-templates select="/iso:iso-standard/iso:boilerplate/iso:copyright-statement"/>
2216
2353
  </fo:block>
2217
2354
  </fo:block>
@@ -2234,12 +2371,28 @@
2234
2371
 
2235
2372
  <!-- BODY -->
2236
2373
  <fo:page-sequence master-reference="document{$document-master-reference}" initial-page-number="1" force-page-count="no-force">
2374
+ <xsl:if test="$layoutVersion = '1951'">
2375
+ <xsl:attribute name="initial-page-number">auto</xsl:attribute>
2376
+ <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
2377
+ </xsl:if>
2237
2378
  <fo:static-content flow-name="xsl-footnote-separator">
2238
2379
  <fo:block>
2239
- <fo:leader leader-pattern="rule" leader-length="30%"/>
2380
+ <xsl:if test="$layoutVersion = '2024'">
2381
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2382
+ </xsl:if>
2383
+ <fo:leader leader-pattern="rule" leader-length="30%">
2384
+ <xsl:if test="$layoutVersion = '2024'">
2385
+ <xsl:attribute name="leader-length">51mm</xsl:attribute>
2386
+ <xsl:attribute name="rule-thickness">0.5pt</xsl:attribute>
2387
+ </xsl:if>
2388
+ </fo:leader>
2240
2389
  </fo:block>
2241
2390
  </fo:static-content>
2242
- <xsl:call-template name="insertHeaderFooter"/>
2391
+
2392
+ <xsl:variable name="border_around_page"><xsl:if test="$layoutVersion = '1951'">true</xsl:if></xsl:variable>
2393
+ <xsl:call-template name="insertHeaderFooter">
2394
+ <xsl:with-param name="border_around_page" select="$border_around_page"/>
2395
+ </xsl:call-template>
2243
2396
  <fo:flow flow-name="xsl-region-body">
2244
2397
 
2245
2398
  <!-- Information and documentation — Codes for transcription systems -->
@@ -2274,8 +2427,53 @@
2274
2427
  <!-- Clause(s) -->
2275
2428
  <!-- <fo:block> -->
2276
2429
 
2430
+ <xsl:if test="$layoutVersion = '1951'">
2431
+ <!-- first page header -->
2432
+ <!-- Example: ISO Recommendation R 453 November 1965 -->
2433
+ <fo:block-container margin-top="-8mm" margin-left="-12mm" margin-right="-12mm">
2434
+ <xsl:if test="$revision_date_num &gt;= 19690101">
2435
+ <xsl:attribute name="margin-top">-9mm</xsl:attribute>
2436
+ <xsl:attribute name="margin-left">-12.5mm</xsl:attribute>
2437
+ <xsl:attribute name="margin-right">-12.5mm</xsl:attribute>
2438
+ </xsl:if>
2439
+ <fo:block-container margin-left="0" margin-right="0" border-bottom="1.25pt solid black">
2440
+ <fo:table table-layout="fixed" width="100%" font-family="Arial" font-size="13pt">
2441
+ <xsl:if test="$revision_date_num &gt;= 19690101">
2442
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2443
+ </xsl:if>
2444
+ <fo:table-column column-width="proportional-column-width(9.5)"/>
2445
+ <fo:table-column column-width="proportional-column-width(65)"/>
2446
+ <fo:table-column column-width="proportional-column-width(34)"/>
2447
+ <fo:table-column column-width="proportional-column-width(50)"/>
2448
+ <fo:table-column column-width="proportional-column-width(9.5)"/>
2449
+ <fo:table-body>
2450
+ <fo:table-row height="10mm">
2451
+ <xsl:if test="$revision_date_num &gt;= 19690101">
2452
+ <xsl:attribute name="height">7mm</xsl:attribute>
2453
+ </xsl:if>
2454
+ <fo:table-cell><fo:block> </fo:block></fo:table-cell>
2455
+ <fo:table-cell><fo:block><xsl:value-of select="$doctype_localized"/></fo:block></fo:table-cell>
2456
+ <fo:table-cell text-align="center"><fo:block><xsl:value-of select="$docnumber_with_prefix"/></fo:block></fo:table-cell>
2457
+ <fo:table-cell text-align="right">
2458
+ <fo:block>
2459
+ <xsl:call-template name="convertDate">
2460
+ <xsl:with-param name="date" select="/iso:iso-standard/iso:bibdata/iso:version/iso:revision-date"/>
2461
+ </xsl:call-template>
2462
+ </fo:block>
2463
+ </fo:table-cell>
2464
+ <fo:table-cell><fo:block> </fo:block></fo:table-cell>
2465
+ </fo:table-row>
2466
+ </fo:table-body>
2467
+ </fo:table>
2468
+ </fo:block-container>
2469
+ </fo:block-container>
2470
+
2471
+ <!-- Show Introduction in the main section -->
2472
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() = 'introduction']"/>
2473
+ </xsl:if> <!-- $layoutVersion = '1951' -->
2474
+
2277
2475
  <xsl:choose>
2278
- <xsl:when test="($layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989') and $layout_columns != 1">
2476
+ <xsl:when test="($layoutVersion = '1951' or $layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989') and $layout_columns != 1">
2279
2477
  <xsl:choose>
2280
2478
  <xsl:when test="$doctype = 'amendment'">
2281
2479
  <xsl:variable name="flatxml">
@@ -2301,17 +2499,23 @@
2301
2499
  </xsl:choose>
2302
2500
 
2303
2501
  <xsl:if test="($layoutVersion = '1951' or $layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989')">
2304
- <fo:block span="all" text-align="center" margin-top="15mm" keep-with-next="always" role="SKIP">
2502
+ <fo:block text-align="center" margin-top="12mm" keep-with-previous="always" role="SKIP">
2503
+ <xsl:if test="$layout_columns != 1">
2504
+ <xsl:attribute name="span">all</xsl:attribute>
2505
+ </xsl:if>
2305
2506
  <fo:leader leader-pattern="rule" leader-length="20%"/>
2306
2507
  </fo:block>
2307
2508
  </xsl:if>
2308
2509
 
2309
- <fo:block id="lastBlock" font-size="1pt" role="SKIP"> </fo:block>
2510
+ <fo:block id="lastBlock" font-size="1pt" keep-with-previous="always" role="SKIP"> </fo:block>
2310
2511
  <!-- </fo:block> -->
2311
2512
 
2312
2513
  </fo:flow>
2313
2514
  </fo:page-sequence>
2314
2515
 
2516
+ <!-- Index -->
2517
+ <!-- <xsl:message>START current_document_index_id</xsl:message> -->
2518
+
2315
2519
  <xsl:variable name="docid">
2316
2520
  <xsl:call-template name="getDocumentId"/>
2317
2521
  </xsl:variable>
@@ -2321,14 +2525,28 @@
2321
2525
  <xsl:with-param name="docid" select="$docid"/>
2322
2526
  </xsl:apply-templates>
2323
2527
  </xsl:variable>
2528
+ <!-- <xsl:message>END current_document_index_id</xsl:message> -->
2324
2529
 
2530
+ <!-- <xsl:message>START current_document_index</xsl:message> -->
2531
+ <xsl:variable name="startTime1" select="java:getTime(java:java.util.Date.new())"/>
2325
2532
  <xsl:variable name="current_document_index">
2326
2533
  <xsl:apply-templates select="xalan:nodeset($current_document_index_id)" mode="index_update"/>
2327
2534
  </xsl:variable>
2535
+ <!-- <xsl:variable name="endTime1" select="java:getTime(java:java.util.Date.new())"/>
2536
+ <xsl:message>DEBUG: processing time <xsl:value-of select="$endTime1 - $startTime1"/> msec.</xsl:message>
2537
+ <xsl:message>END current_document_index</xsl:message> -->
2328
2538
 
2539
+ <!-- <xsl:variable name="startTime2" select="java:getTime(java:java.util.Date.new())"/>
2540
+ <xsl:message>START xalan:nodeset</xsl:message> -->
2541
+ <!-- <xsl:apply-templates select="//iso:indexsect" mode="index"/> -->
2329
2542
  <xsl:apply-templates select="xalan:nodeset($current_document_index)" mode="index"/>
2543
+ <!-- <xsl:variable name="endTime2" select="java:getTime(java:java.util.Date.new())"/>
2544
+ <xsl:message>DEBUG: processing time <xsl:value-of select="$endTime2 - $startTime2"/> msec.</xsl:message>
2545
+ <xsl:message>END xalan:nodeset</xsl:message> -->
2330
2546
 
2331
2547
  <xsl:choose>
2548
+ <xsl:when test="$isGenerateTableIF = 'true'"><!-- skip last page --></xsl:when>
2549
+ <xsl:when test="$layoutVersion = '1951'"/>
2332
2550
  <xsl:when test="$layoutVersion = '1972'"/>
2333
2551
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"><!-- UDC, Keywords and Price renders on the first page for technical-report --></xsl:when>
2334
2552
  <xsl:when test="$layoutVersion = '2024'">
@@ -2349,8 +2567,41 @@
2349
2567
 
2350
2568
  </xsl:template>
2351
2569
 
2570
+ <xsl:template match="iso:preface/iso:introduction" mode="update_xml_step1" priority="3">
2571
+ <xsl:param name="process">false</xsl:param>
2572
+ <xsl:choose>
2573
+ <xsl:when test="$layoutVersion = '1951'">
2574
+ <xsl:if test="$process = 'true'">
2575
+ <xsl:copy>
2576
+ <xsl:apply-templates select="@*" mode="update_xml_step1"/>
2577
+ <xsl:attribute name="displayorder">
2578
+ <xsl:value-of select="concat(../../iso:sections/iso:p[@class = 'zzSTDTitle1']/@displayorder, '.1')"/>
2579
+ </xsl:attribute>
2580
+ <xsl:apply-templates select="node()" mode="update_xml_step1"/>
2581
+ </xsl:copy>
2582
+ </xsl:if>
2583
+ </xsl:when>
2584
+ <xsl:otherwise>
2585
+ <xsl:copy>
2586
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
2587
+ </xsl:copy>
2588
+ </xsl:otherwise>
2589
+ </xsl:choose>
2590
+ </xsl:template>
2591
+
2592
+ <xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle1']" mode="update_xml_step1" priority="3">
2593
+ <xsl:copy>
2594
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
2595
+ </xsl:copy>
2596
+ <xsl:if test="$layoutVersion = '1951'">
2597
+ <xsl:apply-templates select="../../iso:preface/iso:introduction" mode="update_xml_step1">
2598
+ <xsl:with-param name="process">true</xsl:with-param>
2599
+ </xsl:apply-templates>
2600
+ </xsl:if>
2601
+ </xsl:template>
2602
+
2352
2603
  <xsl:template name="insertLogoImages2024">
2353
- <xsl:variable name="content-height">19.4</xsl:variable>
2604
+ <xsl:variable name="content-height">20</xsl:variable>
2354
2605
  <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization">
2355
2606
  <xsl:choose>
2356
2607
  <xsl:when test="iso:abbreviation = 'ISO'">
@@ -2508,7 +2759,7 @@
2508
2759
  <fo:block-container margin-left="1mm" role="SKIP"> <!-- margin-bottom="7mm" margin-top="-15mm" -->
2509
2760
  <fo:block font-size="9pt" border="0.5pt solid black" fox:border-radius="5pt" padding-left="2mm" padding-top="2mm" padding-bottom="2mm">
2510
2761
  <xsl:if test="$layoutVersion = '2024'">
2511
- <xsl:attribute name="font-size">9pt</xsl:attribute>
2762
+ <!-- <xsl:attribute name="font-size">9pt</xsl:attribute> -->
2512
2763
  <xsl:attribute name="fox:border-radius">0pt</xsl:attribute>
2513
2764
  <xsl:attribute name="border">1pt solid black</xsl:attribute>
2514
2765
  </xsl:if>
@@ -2544,6 +2795,8 @@
2544
2795
 
2545
2796
  <xsl:template match="iso:preface/iso:clause[@type = 'toc']" priority="3">
2546
2797
  <xsl:choose>
2798
+ <xsl:when test="$isGenerateTableIF = 'true'"/>
2799
+ <xsl:when test="$toc_level = 0"/>
2547
2800
  <xsl:when test="$doctype = 'amendment'"/><!-- ToC shouldn't be generated in amendments. -->
2548
2801
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"/>
2549
2802
  <xsl:otherwise>
@@ -2674,12 +2927,12 @@
2674
2927
  <xsl:template match="iso:preface/iso:clause[@type = 'toc']/iso:title" priority="3">
2675
2928
  <fo:block text-align-last="justify" font-size="16pt" margin-top="10pt" margin-bottom="18pt">
2676
2929
  <xsl:if test="$layoutVersion = '2024'">
2677
- <xsl:attribute name="font-size">15.3pt</xsl:attribute>
2930
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2678
2931
  </xsl:if>
2679
2932
  <fo:inline font-size="16pt" font-weight="bold" role="SKIP">
2680
- <xsl:if test="$layoutVersion = '2024'">
2933
+ <!-- <xsl:if test="$layoutVersion = '2024'">
2681
2934
  <xsl:attribute name="font-size">15.3pt</xsl:attribute>
2682
- </xsl:if>
2935
+ </xsl:if> -->
2683
2936
  <!-- Contents -->
2684
2937
  <!-- <xsl:call-template name="getLocalizedString">
2685
2938
  <xsl:with-param name="key">table_of_contents</xsl:with-param>
@@ -2689,9 +2942,9 @@
2689
2942
  <fo:inline keep-together.within-line="always" role="SKIP">
2690
2943
  <fo:leader leader-pattern="space"/>
2691
2944
  <fo:inline font-weight="normal" font-size="10pt" role="SKIP">
2692
- <xsl:if test="$layoutVersion = '2024'">
2945
+ <!-- <xsl:if test="$layoutVersion = '2024'">
2693
2946
  <xsl:attribute name="font-size">9.6pt</xsl:attribute>
2694
- </xsl:if>
2947
+ </xsl:if> -->
2695
2948
  <!-- Page -->
2696
2949
  <xsl:value-of select="$i18n_locality_page"/>
2697
2950
  </fo:inline>
@@ -2860,13 +3113,23 @@
2860
3113
  <xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle1']" priority="4">
2861
3114
  <xsl:if test="not($layoutVersion = '1987' and $doctype = 'technical-report')">
2862
3115
  <fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1" role="H1">
3116
+ <xsl:if test="$layoutVersion = '1951'">
3117
+ <xsl:attribute name="font-size">13pt</xsl:attribute>
3118
+ <xsl:attribute name="text-align">center</xsl:attribute>
3119
+ <xsl:attribute name="margin-top">49mm</xsl:attribute>
3120
+ <xsl:attribute name="text-transform">uppercase</xsl:attribute>
3121
+ <xsl:if test="$revision_date_num &gt;= 19690101">
3122
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
3123
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
3124
+ </xsl:if>
3125
+ </xsl:if>
2863
3126
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
2864
3127
  <xsl:attribute name="font-size">16pt</xsl:attribute>
2865
3128
  <xsl:attribute name="span">all</xsl:attribute>
2866
3129
  <xsl:attribute name="margin-bottom">40pt</xsl:attribute>
2867
3130
  </xsl:if>
2868
3131
  <xsl:if test="$layoutVersion = '2024'">
2869
- <xsl:attribute name="font-size">17.2pt</xsl:attribute>
3132
+ <xsl:attribute name="margin-top">50pt</xsl:attribute>
2870
3133
  </xsl:if>
2871
3134
  <xsl:if test="following-sibling::*[1][self::iso:p][starts-with(@class, 'zzSTDTitle')]">
2872
3135
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
@@ -2899,9 +3162,9 @@
2899
3162
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
2900
3163
  <xsl:attribute name="font-size">16pt</xsl:attribute>
2901
3164
  </xsl:if>
2902
- <xsl:if test="$layoutVersion = '2024'">
3165
+ <!-- <xsl:if test="$layoutVersion = '2024'">
2903
3166
  <xsl:attribute name="font-size">17.2pt</xsl:attribute>
2904
- </xsl:if>
3167
+ </xsl:if> -->
2905
3168
  <xsl:apply-templates/>
2906
3169
  </fo:block>
2907
3170
  </xsl:if>
@@ -3006,12 +3269,15 @@
3006
3269
  </xsl:when>
3007
3270
  <xsl:otherwise>
3008
3271
  <fo:block margin-left="0.5mm" margin-bottom="3mm" role="H1">
3272
+ <xsl:if test="$layoutVersion = '2024'">
3273
+ <xsl:attribute name="margin-bottom">3.5mm</xsl:attribute>
3274
+ </xsl:if>
3009
3275
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}">
3010
- <xsl:if test="$layoutVersion = '2024'">
3276
+ <!-- <xsl:if test="$layoutVersion = '2024'">
3011
3277
  <xsl:attribute name="width">13mm</xsl:attribute>
3012
3278
  <xsl:attribute name="content-height">11.5mm</xsl:attribute>
3013
3279
  <xsl:attribute name="margin-bottom">-1mm</xsl:attribute>
3014
- </xsl:if>
3280
+ </xsl:if> -->
3015
3281
  </fo:external-graphic>
3016
3282
  <!-- <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold">COPYRIGHT PROTECTED DOCUMENT</fo:inline> -->
3017
3283
  <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold" role="SKIP">
@@ -3019,7 +3285,7 @@
3019
3285
  <xsl:attribute name="font-size">11pt</xsl:attribute>
3020
3286
  </xsl:if>
3021
3287
  <xsl:if test="$layoutVersion = '2024'">
3022
- <xsl:attribute name="font-size">11.5pt</xsl:attribute>
3288
+ <xsl:attribute name="baseline-shift">5%</xsl:attribute>
3023
3289
  </xsl:if>
3024
3290
  <xsl:apply-templates/></fo:inline>
3025
3291
  </fo:block>
@@ -3032,7 +3298,7 @@
3032
3298
  <xsl:when test="$layoutVersion = '1951'">
3033
3299
  <xsl:choose>
3034
3300
  <xsl:when test="@id = 'boilerplate-message'">
3035
- <fo:block-container width="85.5mm" margin-left="50mm" margin-right="50mm">
3301
+ <fo:block-container width="87mm" margin-left="45mm" margin-right="45mm">
3036
3302
  <fo:block-container margin-left="0" margin-right="0">
3037
3303
  <fo:block text-align="justify" text-align-last="center">
3038
3304
  <!-- The copyright of ISO Recommendations and 1SO Standards
@@ -3094,7 +3360,8 @@
3094
3360
  <xsl:otherwise>
3095
3361
  <fo:block font-size="16pt" text-align="center" margin-bottom="48pt" keep-with-next="always" role="H1">
3096
3362
  <xsl:if test="$layoutVersion = '2024'">
3097
- <xsl:attribute name="font-size">15.3pt</xsl:attribute>
3363
+ <xsl:attribute name="line-height">1.1</xsl:attribute>
3364
+ <!-- <xsl:attribute name="margin-bottom">52pt</xsl:attribute> -->
3098
3365
  </xsl:if>
3099
3366
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
3100
3367
  <xsl:attribute name="span">all</xsl:attribute>
@@ -3119,7 +3386,8 @@
3119
3386
  <xsl:attribute name="span">all</xsl:attribute>
3120
3387
  </xsl:if>
3121
3388
  <xsl:if test="$layoutVersion = '2024'">
3122
- <xsl:attribute name="font-size">15.3pt</xsl:attribute>
3389
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
3390
+ <xsl:attribute name="margin-bottom">30pt</xsl:attribute>
3123
3391
  </xsl:if>
3124
3392
  <xsl:apply-templates/>
3125
3393
  </fo:block>
@@ -3135,6 +3403,15 @@
3135
3403
 
3136
3404
  <xsl:variable name="font-size">
3137
3405
  <xsl:choose>
3406
+ <xsl:when test="$layoutVersion = '1951'">
3407
+ <xsl:choose>
3408
+ <xsl:when test="$level = 1 and ancestor::iso:preface">13pt</xsl:when>
3409
+ <xsl:when test="$level = 1">9pt</xsl:when>
3410
+ <xsl:otherwise>inherit</xsl:otherwise>
3411
+ <!-- <xsl:when test="$level = 2">10pt</xsl:when>
3412
+ <xsl:when test="$level &gt;= 3">9pt</xsl:when> -->
3413
+ </xsl:choose>
3414
+ </xsl:when>
3138
3415
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'">
3139
3416
  <xsl:choose>
3140
3417
  <xsl:when test="$level = 1">11pt</xsl:when>
@@ -3153,7 +3430,7 @@
3153
3430
  <xsl:otherwise>12pt</xsl:otherwise>
3154
3431
  </xsl:choose>
3155
3432
  </xsl:when>
3156
- <xsl:when test="$layoutVersion = '2024'">
3433
+ <!-- <xsl:when test="$layoutVersion = '2024'">
3157
3434
  <xsl:choose>
3158
3435
  <xsl:when test="ancestor::iso:annex and $level = 2">12.5pt</xsl:when>
3159
3436
  <xsl:when test="ancestor::iso:annex and $level = 3">11.5pt</xsl:when>
@@ -3163,7 +3440,7 @@
3163
3440
  <xsl:when test="$level &gt;= 3">10.5pt</xsl:when>
3164
3441
  <xsl:otherwise>12.5pt</xsl:otherwise>
3165
3442
  </xsl:choose>
3166
- </xsl:when>
3443
+ </xsl:when> -->
3167
3444
  <xsl:otherwise>
3168
3445
  <xsl:choose>
3169
3446
  <xsl:when test="ancestor::iso:annex and $level = 2">13pt</xsl:when>
@@ -3190,9 +3467,9 @@
3190
3467
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report' and parent::iso:foreword"><!-- skip Foreword title --></xsl:when>
3191
3468
  <xsl:when test="$doctype = 'amendment' and not(ancestor::iso:preface)">
3192
3469
  <fo:block font-size="11pt" font-style="italic" margin-bottom="12pt" keep-with-next="always" role="H{$level}">
3193
- <xsl:if test="$layoutVersion = '2024'">
3470
+ <!-- <xsl:if test="$layoutVersion = '2024'">
3194
3471
  <xsl:attribute name="font-size">10.5pt</xsl:attribute>
3195
- </xsl:if>
3472
+ </xsl:if> -->
3196
3473
  <xsl:apply-templates/>
3197
3474
  <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
3198
3475
  </fo:block>
@@ -3223,13 +3500,16 @@
3223
3500
  </xsl:variable>
3224
3501
  <xsl:attribute name="{$attribute-name-before}"> <!-- space-before or margin-top -->
3225
3502
  <xsl:choose>
3503
+ <xsl:when test="$layoutVersion = '1951' and ancestor::iso:preface and $level = 1">20mm</xsl:when>
3226
3504
  <xsl:when test="ancestor::iso:introduction and $level &gt;= 2 and ../preceding-sibling::iso:clause">30pt</xsl:when>
3227
3505
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report' and ancestor::iso:preface and $level = 1">10mm</xsl:when>
3228
3506
  <xsl:when test="($layoutVersion = '1972' or $layoutVersion = '1987' or ($layoutVersion = '1989' and $revision_date_num &lt;= 19981231)) and ancestor::iso:preface and $level = 1">62mm</xsl:when>
3229
3507
  <xsl:when test="$layoutVersion = '1989' and ancestor::iso:preface and $level = 1">56pt</xsl:when>
3508
+ <xsl:when test="$layoutVersion = '2024' and ancestor::iso:preface and $level = 1">0pt</xsl:when>
3230
3509
  <xsl:when test="ancestor::iso:preface">8pt</xsl:when>
3231
3510
  <xsl:when test="$level = 2 and ancestor::iso:annex">18pt</xsl:when>
3232
3511
  <xsl:when test="$level = 1">18pt</xsl:when>
3512
+ <xsl:when test="($level = 2 or $level = 3) and not(../preceding-sibling::iso:clause) and $layoutVersion = '2024'">12pt</xsl:when> <!-- first title in 3rd level clause -->
3233
3513
  <xsl:when test="($level = 2 or $level = 3) and not(../preceding-sibling::iso:clause)">14pt</xsl:when> <!-- first title in 3rd level clause -->
3234
3514
  <xsl:when test="$level = 3">14pt</xsl:when>
3235
3515
  <xsl:when test="$level &gt; 3">3pt</xsl:when>
@@ -3239,9 +3519,12 @@
3239
3519
  </xsl:attribute>
3240
3520
  <xsl:attribute name="space-after"> <!-- margin-bottom -->
3241
3521
  <xsl:choose>
3522
+ <xsl:when test="$layoutVersion = '1951' and $level = 1 and ancestor::iso:preface">14.7mm</xsl:when>
3523
+ <xsl:when test="$layoutVersion = '1951' and $level = 1">12pt</xsl:when>
3242
3524
  <xsl:when test="ancestor::iso:introduction and $level &gt;= 2">8pt</xsl:when>
3243
3525
  <xsl:when test="ancestor::iso:preface">18pt</xsl:when>
3244
3526
  <xsl:when test="$level = 3">9pt</xsl:when>
3527
+ <!-- <xsl:when test="$level = 2 and ancestor::iso:annex and $layoutVersion = '2024'">2pt</xsl:when> -->
3245
3528
  <!-- <xsl:otherwise>12pt</xsl:otherwise> -->
3246
3529
  <xsl:otherwise>8pt</xsl:otherwise>
3247
3530
  </xsl:choose>
@@ -3251,6 +3534,15 @@
3251
3534
  <xsl:if test="@type = 'floating-title' or @type = 'section-title'">
3252
3535
  <xsl:copy-of select="@id"/>
3253
3536
  </xsl:if>
3537
+ <xsl:if test="$layoutVersion = '1951'">
3538
+ <xsl:if test="$element-name = 'fo:block' and ($level = 1 or parent::iso:introduction)">
3539
+ <xsl:attribute name="text-align">center</xsl:attribute>
3540
+ <xsl:attribute name="text-transform">uppercase</xsl:attribute>
3541
+ <xsl:if test="ancestor::iso:preface or ancestor::iso:introduction">
3542
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
3543
+ </xsl:if>
3544
+ </xsl:if>
3545
+ </xsl:if>
3254
3546
  <xsl:if test="$element-name = 'fo:inline'">
3255
3547
  <xsl:choose>
3256
3548
  <xsl:when test="$lang = 'zh'">
@@ -3261,7 +3553,17 @@
3261
3553
  </xsl:otherwise>
3262
3554
  </xsl:choose>
3263
3555
  </xsl:if>
3264
- <xsl:apply-templates/>
3556
+ <xsl:choose>
3557
+ <xsl:when test="$layoutVersion = '1951' and ((ancestor::iso:preface and $level = 1) or parent::iso:introduction)">
3558
+ <xsl:call-template name="add-letter-spacing">
3559
+ <xsl:with-param name="text" select="."/>
3560
+ <xsl:with-param name="letter-spacing" select="0.65"/>
3561
+ </xsl:call-template>
3562
+ </xsl:when>
3563
+ <xsl:otherwise>
3564
+ <xsl:apply-templates/>
3565
+ </xsl:otherwise>
3566
+ </xsl:choose>
3265
3567
  <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
3266
3568
  </xsl:element>
3267
3569
 
@@ -3277,7 +3579,7 @@
3277
3579
 
3278
3580
  <xsl:template match="iso:title[@inline-header = 'true'][following-sibling::*[1][local-name() = 'p']]" priority="3">
3279
3581
  <xsl:choose>
3280
- <xsl:when test="($layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989') and $layout_columns != 1"/> <!-- don't show 'title' with inline-header='true' if next element is 'p' -->
3582
+ <xsl:when test="($layoutVersion = '1951' or $layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989') and $layout_columns != 1"/> <!-- don't show 'title' with inline-header='true' if next element is 'p' -->
3281
3583
  <xsl:otherwise>
3282
3584
  <xsl:call-template name="title"/>
3283
3585
  </xsl:otherwise>
@@ -3289,9 +3591,9 @@
3289
3591
  <xsl:call-template name="getId"/>
3290
3592
  </xsl:variable> id="{$id}" -->
3291
3593
  <fo:block font-size="11pt" font-style="italic" margin-bottom="12pt" keep-with-next="always">
3292
- <xsl:if test="$layoutVersion = '2024'">
3594
+ <!-- <xsl:if test="$layoutVersion = '2024'">
3293
3595
  <xsl:attribute name="font-size">10.5pt</xsl:attribute>
3294
- </xsl:if>
3596
+ </xsl:if> -->
3295
3597
  <xsl:apply-templates/>
3296
3598
  </fo:block>
3297
3599
  </xsl:template>
@@ -3387,8 +3689,25 @@
3387
3689
  </xsl:apply-templates> -->
3388
3690
  <!-- <xsl:apply-templates select="node()[not(self::iso:note[not(following-sibling::*) or count(following-sibling::*) = count(../iso:note) - 1])]"> -->
3389
3691
 
3692
+ <xsl:if test="$layoutVersion = '1951'">
3693
+ <xsl:if test="not(ancestor::*[local-name() = 'li' or local-name() = 'td' or local-name() = 'th' or local-name() = 'dd'])">
3694
+ <!-- for paragraphs in the main text -->
3695
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
3696
+ </xsl:if>
3697
+ <xsl:if test="ancestor::iso:preface and parent::iso:clause">
3698
+ <xsl:attribute name="text-indent">7.1mm</xsl:attribute>
3699
+ </xsl:if>
3700
+ </xsl:if>
3701
+
3702
+ <xsl:if test="$layoutVersion = '2024'">
3703
+ <xsl:attribute name="line-height">1.13</xsl:attribute>
3704
+ <xsl:if test="parent::iso:li/following-sibling::* or parent::iso:dd">
3705
+ <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
3706
+ </xsl:if>
3707
+ </xsl:if>
3708
+
3390
3709
  <!-- put inline title in the first paragraph -->
3391
- <xsl:if test="($layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989') and $layout_columns != 1">
3710
+ <xsl:if test="($layoutVersion = '1951' or $layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989') and $layout_columns != 1">
3392
3711
  <xsl:if test="preceding-sibling::*[1]/@inline-header = 'true' and preceding-sibling::*[1][self::iso:title]">
3393
3712
  <xsl:attribute name="space-before">0pt</xsl:attribute>
3394
3713
  <xsl:for-each select="preceding-sibling::*[1]">
@@ -3510,6 +3829,10 @@
3510
3829
  <xsl:call-template name="insert_basic_link">
3511
3830
  <xsl:with-param name="element">
3512
3831
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3832
+ <xsl:if test="$layoutVersion = '2024' and (ancestor::iso:termsource or $bibitems/*[local-name() ='bibitem'][@id = current()/@target and @type = 'standard'])">
3833
+ <xsl:attribute name="color">inherit</xsl:attribute>
3834
+ <xsl:attribute name="text-decoration">none</xsl:attribute>
3835
+ </xsl:if>
3513
3836
  <xsl:choose>
3514
3837
  <xsl:when test="@pagenumber='true'">
3515
3838
  <fo:inline>
@@ -3519,6 +3842,20 @@
3519
3842
  <fo:page-number-citation ref-id="{@target}"/>
3520
3843
  </fo:inline>
3521
3844
  </xsl:when>
3845
+ <xsl:when test="$layoutVersion = '2024' and $bibitems/*[local-name() ='bibitem'][@id = current()/@target and not(@type = 'standard')]"> <!-- if reference to bibitem -->
3846
+ <!-- <fo:inline baseline-shift="30%" font-size="80%"> -->
3847
+ <xsl:choose>
3848
+ <xsl:when test="contains(., '[') and contains(., ']')">
3849
+ <fo:inline color="black" text-decoration="none">[</fo:inline>
3850
+ <xsl:value-of select="translate(.,'[]','')"/>
3851
+ <fo:inline color="black" text-decoration="none">]</fo:inline>
3852
+ </xsl:when>
3853
+ <xsl:otherwise>
3854
+ <xsl:apply-templates/>
3855
+ </xsl:otherwise>
3856
+ </xsl:choose>
3857
+ <!-- </fo:inline> -->
3858
+ </xsl:when>
3522
3859
  <xsl:otherwise>
3523
3860
  <xsl:apply-templates/>
3524
3861
  </xsl:otherwise>
@@ -3528,6 +3865,20 @@
3528
3865
  </xsl:call-template>
3529
3866
  </xsl:template>
3530
3867
 
3868
+ <xsl:template match="*[local-name()='sup'][*[local-name()='xref'][@type = 'footnote']]" priority="2">
3869
+ <fo:inline font-size="80%">
3870
+ <xsl:choose>
3871
+ <xsl:when test="$layoutVersion = '2024'">
3872
+ <xsl:attribute name="baseline-shift">20%</xsl:attribute>
3873
+ </xsl:when>
3874
+ <xsl:otherwise>
3875
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3876
+ </xsl:otherwise>
3877
+ </xsl:choose>
3878
+ <xsl:apply-templates/>
3879
+ </fo:inline>
3880
+ </xsl:template>
3881
+
3531
3882
  <!-- =================== -->
3532
3883
  <!-- End of Index processing -->
3533
3884
  <!-- =================== -->
@@ -3650,19 +4001,32 @@
3650
4001
  <xsl:template name="insertHeaderFooter">
3651
4002
  <xsl:param name="font-weight" select="'bold'"/>
3652
4003
  <xsl:param name="is_footer">false</xsl:param>
4004
+ <xsl:param name="is_header">true</xsl:param>
4005
+ <xsl:param name="border_around_page">false</xsl:param>
4006
+ <xsl:param name="insert_footer_last">true</xsl:param>
3653
4007
  <xsl:if test="($layoutVersion = '1972' or $layoutVersion = '1987' or ($layoutVersion = '1989' and $revision_date_num &lt;= 19981231)) and $is_footer = 'true'">
3654
4008
  <xsl:call-template name="insertFooterFirst1972_1998">
3655
4009
  <xsl:with-param name="font-weight" select="$font-weight"/>
3656
4010
  </xsl:call-template>
3657
4011
  </xsl:if>
3658
- <xsl:call-template name="insertHeaderEven"/>
4012
+ <xsl:call-template name="insertHeaderEven">
4013
+ <xsl:with-param name="border_around_page" select="$border_around_page"/>
4014
+ <xsl:with-param name="is_header" select="$is_header"/>
4015
+ </xsl:call-template>
3659
4016
  <xsl:call-template name="insertFooterEven">
3660
4017
  <xsl:with-param name="font-weight" select="$font-weight"/>
4018
+ <xsl:with-param name="insert_footer_last" select="$insert_footer_last"/>
4019
+ </xsl:call-template>
4020
+ <xsl:choose>
4021
+ <xsl:when test="$layoutVersion = '1951'"/>
4022
+ <xsl:when test="not($layoutVersion = '1987' and $doctype = 'technical-report')">
4023
+ <xsl:call-template name="insertHeaderFirst"/>
4024
+ </xsl:when>
4025
+ </xsl:choose>
4026
+ <xsl:call-template name="insertHeaderOdd">
4027
+ <xsl:with-param name="border_around_page" select="$border_around_page"/>
4028
+ <xsl:with-param name="is_header" select="$is_header"/>
3661
4029
  </xsl:call-template>
3662
- <xsl:if test="not($layoutVersion = '1987' and $doctype = 'technical-report')">
3663
- <xsl:call-template name="insertHeaderFirst"/>
3664
- </xsl:if>
3665
- <xsl:call-template name="insertHeaderOdd"/>
3666
4030
  <xsl:call-template name="insertFooterOdd">
3667
4031
  <xsl:with-param name="font-weight" select="$font-weight"/>
3668
4032
  </xsl:call-template>
@@ -3674,12 +4038,37 @@
3674
4038
  </xsl:choose>
3675
4039
  </xsl:variable>
3676
4040
  <xsl:template name="insertHeaderEven">
4041
+ <xsl:param name="is_header">true</xsl:param>
4042
+ <xsl:param name="border_around_page">false</xsl:param>
3677
4043
  <fo:static-content flow-name="header-even" role="artifact">
4044
+ <xsl:if test="$layoutVersion = '1951' and $border_around_page = 'true'">
4045
+ <!-- box around page -->
4046
+ <fo:block-container position="absolute" left="16.5mm" top="15mm" height="270mm" width="170mm" border="1.25pt solid black" role="SKIP">
4047
+ <fo:block> </fo:block>
4048
+ </fo:block-container>
4049
+ </xsl:if>
3678
4050
  <fo:block-container height="24mm" display-align="before">
3679
- <fo:block font-size="{$font-size_header}" font-weight="bold" padding-top="12.5mm" line-height="1.1">
3680
- <xsl:call-template name="insertLayoutVersion2024AttributesTop"/>
3681
- <xsl:value-of select="$ISOnumber"/>
3682
- </fo:block>
4051
+ <xsl:if test="$layoutVersion = '2024'">
4052
+ <xsl:attribute name="height">23mm</xsl:attribute>
4053
+ </xsl:if>
4054
+ <xsl:choose>
4055
+ <xsl:when test="$layoutVersion = '1951'">
4056
+ <xsl:call-template name="insertHeader1951">
4057
+ <xsl:with-param name="is_header" select="$is_header"/>
4058
+ <xsl:with-param name="odd_or_even">even</xsl:with-param>
4059
+ </xsl:call-template>
4060
+ </xsl:when>
4061
+ <xsl:otherwise>
4062
+ <fo:block font-size="{$font-size_header}" font-weight="bold" padding-top="12.5mm" line-height="1.1">
4063
+ <xsl:call-template name="insertLayoutVersionAttributesTop">
4064
+ <xsl:with-param name="odd_or_even">even</xsl:with-param>
4065
+ </xsl:call-template>
4066
+ <xsl:if test="$is_header = 'true'">
4067
+ <xsl:value-of select="$ISOnumber"/>
4068
+ </xsl:if>
4069
+ </fo:block>
4070
+ </xsl:otherwise>
4071
+ </xsl:choose>
3683
4072
  </fo:block-container>
3684
4073
  </fo:static-content>
3685
4074
  </xsl:template>
@@ -3689,7 +4078,7 @@
3689
4078
  <xsl:when test="$stage-abbreviation = 'FDAmd' or $stage-abbreviation = 'FDAM' or $stage-abbreviation = 'DAmd' or $stage-abbreviation = 'DAM'">
3690
4079
  <fo:block-container height="24mm" display-align="before">
3691
4080
  <fo:block font-size="{$font-size_header}" font-weight="bold" text-align="right" padding-top="12.5mm" line-height="1.1">
3692
- <xsl:call-template name="insertLayoutVersion2024AttributesTop"/>
4081
+ <xsl:call-template name="insertLayoutVersionAttributesTop"/>
3693
4082
  <xsl:value-of select="$ISOnumber"/>
3694
4083
  </fo:block>
3695
4084
  </fo:block-container>
@@ -3701,6 +4090,7 @@
3701
4090
  <xsl:attribute name="border-bottom">0.5mm solid black</xsl:attribute>
3702
4091
  </xsl:if>
3703
4092
  <xsl:if test=" $layoutVersion = '2024'">
4093
+ <xsl:attribute name="width">180mm</xsl:attribute>
3704
4094
  <xsl:attribute name="border-top">0.8mm solid black</xsl:attribute>
3705
4095
  <xsl:attribute name="border-bottom">0.8mm solid black</xsl:attribute>
3706
4096
  </xsl:if>
@@ -3726,6 +4116,9 @@
3726
4116
  <fo:table-column column-width="50%"/>
3727
4117
  <fo:table-body>
3728
4118
  <fo:table-row display-align="center" height="9mm">
4119
+ <xsl:if test="$layoutVersion = '2024'">
4120
+ <xsl:attribute name="height">8.5mm</xsl:attribute>
4121
+ </xsl:if>
3729
4122
  <fo:table-cell>
3730
4123
  <fo:block>
3731
4124
  <xsl:choose>
@@ -3757,16 +4150,79 @@
3757
4150
  </fo:static-content>
3758
4151
  </xsl:template>
3759
4152
  <xsl:template name="insertHeaderOdd">
4153
+ <xsl:param name="is_header">true</xsl:param>
4154
+ <xsl:param name="border_around_page">false</xsl:param>
3760
4155
  <fo:static-content flow-name="header-odd" role="artifact">
4156
+ <xsl:if test="$layoutVersion = '1951' and $border_around_page = 'true'">
4157
+ <!-- box around page -->
4158
+ <fo:block-container position="absolute" left="23.5mm" top="15mm" height="270mm" width="170mm" border="1.25pt solid black" role="SKIP">
4159
+ <fo:block> </fo:block>
4160
+ </fo:block-container>
4161
+ </xsl:if>
3761
4162
  <fo:block-container height="24mm" display-align="before">
3762
- <fo:block font-size="{$font-size_header}" font-weight="bold" text-align="right" padding-top="12.5mm" line-height="1.1">
3763
- <xsl:call-template name="insertLayoutVersion2024AttributesTop"/>
3764
- <xsl:value-of select="$ISOnumber"/>
3765
- </fo:block>
4163
+ <xsl:if test="$layoutVersion = '2024'">
4164
+ <xsl:attribute name="height">23mm</xsl:attribute>
4165
+ </xsl:if>
4166
+ <xsl:choose>
4167
+ <xsl:when test="$layoutVersion = '1951'">
4168
+ <xsl:call-template name="insertHeader1951">
4169
+ <xsl:with-param name="is_header" select="$is_header"/>
4170
+ <xsl:with-param name="odd_or_even">odd</xsl:with-param>
4171
+ </xsl:call-template>
4172
+ </xsl:when>
4173
+ <xsl:otherwise>
4174
+ <fo:block font-size="{$font-size_header}" font-weight="bold" text-align="right" padding-top="12.5mm" line-height="1.1">
4175
+ <xsl:call-template name="insertLayoutVersionAttributesTop">
4176
+ <xsl:with-param name="odd_or_even">odd</xsl:with-param>
4177
+ </xsl:call-template>
4178
+ <xsl:if test="$is_header = 'true'">
4179
+ <xsl:value-of select="$ISOnumber"/>
4180
+ </xsl:if>
4181
+ </fo:block>
4182
+ </xsl:otherwise>
4183
+ </xsl:choose>
3766
4184
  </fo:block-container>
3767
4185
  </fo:static-content>
3768
4186
  </xsl:template>
3769
4187
 
4188
+ <xsl:template name="insertHeader1951">
4189
+ <xsl:param name="is_header"/>
4190
+ <xsl:param name="odd_or_even"/>
4191
+ <fo:block-container font-size="{$font-size_header}" font-weight="bold" text-align="right" padding-top="12.5mm" line-height="1.1">
4192
+ <xsl:call-template name="insertLayoutVersionAttributesTop">
4193
+ <xsl:with-param name="odd_or_even" select="$odd_or_even"/>
4194
+ </xsl:call-template>
4195
+ <fo:block-container margin-left="0mm" margin-right="0mm">
4196
+ <fo:table table-layout="fixed" width="100%">
4197
+ <fo:table-column column-width="proportional-column-width(1)"/>
4198
+ <fo:table-column column-width="proportional-column-width(1)"/>
4199
+ <fo:table-column column-width="proportional-column-width(1)"/>
4200
+ <fo:table-body>
4201
+ <fo:table-row>
4202
+ <fo:table-cell>
4203
+ <fo:block> </fo:block>
4204
+ </fo:table-cell>
4205
+ <fo:table-cell padding-top="-0.5mm">
4206
+ <fo:block font-size="9.5pt" text-align="center">
4207
+ <xsl:if test="$revision_date_num &gt;= 19690101">
4208
+ <xsl:value-of select="$em_dash"/>  <fo:page-number/>  <xsl:value-of select="$em_dash"/>
4209
+ </xsl:if>
4210
+ </fo:block>
4211
+ </fo:table-cell>
4212
+ <fo:table-cell>
4213
+ <fo:block>
4214
+ <xsl:if test="$is_header = 'true'">
4215
+ <xsl:value-of select="$ISOnumber"/>
4216
+ </xsl:if>
4217
+ </fo:block>
4218
+ </fo:table-cell>
4219
+ </fo:table-row>
4220
+ </fo:table-body>
4221
+ </fo:table>
4222
+ </fo:block-container>
4223
+ </fo:block-container>
4224
+ </xsl:template>
4225
+
3770
4226
  <xsl:variable name="font-size_footer_copyright">
3771
4227
  <xsl:choose>
3772
4228
  <xsl:when test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">8pt</xsl:when>
@@ -3817,9 +4273,13 @@
3817
4273
  </xsl:template>
3818
4274
  <xsl:template name="insertFooterEven">
3819
4275
  <xsl:param name="font-weight" select="'bold'"/>
4276
+ <xsl:param name="insert_footer_last">true</xsl:param>
3820
4277
  <fo:static-content flow-name="footer-even" role="artifact">
3821
4278
  <fo:block-container>
3822
4279
  <xsl:choose>
4280
+ <xsl:when test="$layoutVersion = '1951'">
4281
+ <xsl:call-template name="insertFooter1951"/>
4282
+ </xsl:when>
3823
4283
  <xsl:when test="$layoutVersion = '2024'">
3824
4284
  <xsl:call-template name="insertFooter2024">
3825
4285
  <xsl:with-param name="font-weight" select="$font-weight"/>
@@ -3860,12 +4320,25 @@
3860
4320
  </xsl:choose>
3861
4321
  </fo:block-container>
3862
4322
  </fo:static-content>
4323
+ <!-- for layout 1951 only -->
4324
+ <xsl:if test="$layoutVersion = '1951'">
4325
+ <fo:static-content flow-name="footer-even-last" role="artifact">
4326
+ <fo:block-container>
4327
+ <xsl:call-template name="insertFooter1951">
4328
+ <xsl:with-param name="insert_footer_last" select="$insert_footer_last"/>
4329
+ </xsl:call-template>
4330
+ </fo:block-container>
4331
+ </fo:static-content>
4332
+ </xsl:if>
3863
4333
  </xsl:template>
3864
4334
  <xsl:template name="insertFooterOdd">
3865
4335
  <xsl:param name="font-weight" select="'bold'"/>
3866
4336
  <fo:static-content flow-name="footer-odd" role="artifact">
3867
4337
  <fo:block-container>
3868
4338
  <xsl:choose>
4339
+ <xsl:when test="$layoutVersion = '1951'">
4340
+ <xsl:call-template name="insertFooter1951"/>
4341
+ </xsl:when>
3869
4342
  <xsl:when test="$layoutVersion = '2024'">
3870
4343
  <xsl:call-template name="insertFooter2024">
3871
4344
  <xsl:with-param name="font-weight" select="$font-weight"/>
@@ -3907,20 +4380,94 @@
3907
4380
  </fo:block-container>
3908
4381
  </fo:static-content>
3909
4382
  </xsl:template>
4383
+ <xsl:template name="insertFooter1951">
4384
+ <xsl:param name="insert_footer_last">false</xsl:param>
4385
+ <xsl:attribute name="height"><xsl:value-of select="$marginBottom - 2"/>mm</xsl:attribute>
4386
+ <xsl:attribute name="display-align">after</xsl:attribute>
4387
+ <xsl:attribute name="text-align">center</xsl:attribute>
4388
+ <fo:block-container margin-left="-13mm" margin-right="-13mm">
4389
+ <fo:block-container margin-left="0mm" margin-right="0mm">
4390
+ <fo:table table-layout="fixed" width="100%" margin-bottom="5mm">
4391
+ <fo:table-column column-width="proportional-column-width(35)"/>
4392
+ <fo:table-column column-width="proportional-column-width(100)"/>
4393
+ <fo:table-column column-width="proportional-column-width(35)"/>
4394
+ <fo:table-body>
4395
+ <fo:table-row>
4396
+ <fo:table-cell font-size="8pt">
4397
+ <fo:block line-height="1" margin-top="2mm">
4398
+ <xsl:variable name="date_first_printing" select="normalize-space(/iso:iso-standard/iso:metanorma-extension/iso:presentation-metadata/iso:first-printing-date)"/>
4399
+ <xsl:if test="$insert_footer_last = 'true' and $date_first_printing != ''">
4400
+ <fo:block><xsl:value-of select="$i18n_date_first_printing"/>:</fo:block>
4401
+ <fo:block>
4402
+ <!-- Example: December 1965 -->
4403
+ <xsl:call-template name="convertDate">
4404
+ <xsl:with-param name="date" select="$date_first_printing"/>
4405
+ </xsl:call-template>
4406
+ </fo:block>
4407
+ </xsl:if>
4408
+ </fo:block>
4409
+ </fo:table-cell>
4410
+ <fo:table-cell>
4411
+ <fo:block font-size="9.5pt" font-weight="bold">
4412
+ <xsl:if test="$revision_date_num &lt; 19690101">
4413
+ <xsl:value-of select="$em_dash"/>  <fo:page-number/>  <xsl:value-of select="$em_dash"/>
4414
+ </xsl:if>
4415
+ </fo:block>
4416
+ </fo:table-cell>
4417
+ <fo:table-cell>
4418
+ <fo:block font-size="8.5pt" text-align="right" font-weight="bold">
4419
+ <xsl:variable name="price_" select="normalize-space(/iso:iso-standard/iso:metanorma-extension/iso:presentation-metadata/iso:price)"/>
4420
+ <xsl:variable name="price" select="java:replaceAll(java:java.lang.String.new($price_), '-{2}', $em_dash)"/>
4421
+ <xsl:if test="$insert_footer_last = 'true' and $price != ''">
4422
+ <!-- Example: Price: Sw. fr. 3.- -->
4423
+ <xsl:value-of select="concat($i18n_price, ': ', $price)"/>
4424
+ </xsl:if>
4425
+ </fo:block>
4426
+ </fo:table-cell>
4427
+ </fo:table-row>
4428
+ </fo:table-body>
4429
+ </fo:table>
4430
+ </fo:block-container>
4431
+ </fo:block-container>
4432
+ </xsl:template>
3910
4433
  <xsl:template name="insertFooter2024">
3911
4434
  <xsl:param name="font-weight" select="'bold'"/>
3912
4435
  <xsl:attribute name="text-align">center</xsl:attribute>
3913
- <fo:block font-size="8.6pt">
3914
- <xsl:call-template name="insertInterFont"/>
4436
+ <xsl:attribute name="line-height">1.1</xsl:attribute>
4437
+ <fo:block font-size="9pt">
4438
+ <!-- <xsl:call-template name="insertInterFont"/> -->
3915
4439
  <xsl:value-of select="$copyrightText"/>
3916
4440
  </fo:block>
3917
4441
  <xsl:if test="$copyrightAbbrIEEE = ''"><fo:block> </fo:block></xsl:if>
3918
4442
  <fo:block font-size="11pt" font-weight="{$font-weight}"><fo:page-number/></fo:block>
3919
4443
  </xsl:template>
3920
- <xsl:template name="insertLayoutVersion2024AttributesTop">
4444
+ <xsl:template name="insertLayoutVersionAttributesTop">
4445
+ <xsl:param name="odd_or_even"/>
4446
+ <xsl:if test="$layoutVersion = '1951'">
4447
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
4448
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
4449
+ <xsl:attribute name="text-align">right</xsl:attribute>
4450
+ <xsl:attribute name="padding-top">8mm</xsl:attribute>
4451
+ <xsl:if test="$revision_date_num &gt;= 19690101">
4452
+ <xsl:attribute name="padding-top">11mm</xsl:attribute>
4453
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
4454
+ </xsl:if>
4455
+ <xsl:if test="$odd_or_even = 'odd'">
4456
+ <xsl:attribute name="margin-right">16.5mm</xsl:attribute>
4457
+ <xsl:if test="$revision_date_num &gt;= 19690101">
4458
+ <xsl:attribute name="margin-left">23.5mm</xsl:attribute>
4459
+ </xsl:if>
4460
+ </xsl:if>
4461
+ <xsl:if test="$odd_or_even = 'even'">
4462
+ <xsl:attribute name="margin-right">23.5mm</xsl:attribute>
4463
+ <xsl:if test="$revision_date_num &gt;= 19690101">
4464
+ <xsl:attribute name="margin-left">16.5mm</xsl:attribute>
4465
+ </xsl:if>
4466
+ </xsl:if>
4467
+ </xsl:if>
3921
4468
  <xsl:if test="$layoutVersion = '2024'">
3922
- <xsl:attribute name="font-size">11.5pt</xsl:attribute>
3923
- <xsl:attribute name="padding-top">17mm</xsl:attribute>
4469
+ <!-- <xsl:attribute name="font-size">11.5pt</xsl:attribute> -->
4470
+ <xsl:attribute name="padding-top">12.2mm</xsl:attribute>
3924
4471
  <xsl:attribute name="text-align">center</xsl:attribute>
3925
4472
  </xsl:if>
3926
4473
  </xsl:template>
@@ -4050,14 +4597,14 @@
4050
4597
  <xsl:template name="insertLastPage_2024">
4051
4598
  <fo:page-sequence master-reference="last-page_2024" force-page-count="no-force">
4052
4599
  <fo:flow flow-name="xsl-region-body">
4053
- <fo:table table-layout="fixed" width="100%">
4600
+ <fo:table table-layout="fixed" width="100%" margin-bottom="-1mm">
4054
4601
  <xsl:call-template name="insertInterFont"/>
4055
- <fo:table-column column-width="proportional-column-width(70)"/>
4056
- <fo:table-column column-width="proportional-column-width(1.4)"/>
4057
- <fo:table-column column-width="proportional-column-width(1.4)"/>
4058
- <fo:table-column column-width="proportional-column-width(109.5)"/>
4602
+ <fo:table-column column-width="proportional-column-width(73)"/>
4603
+ <fo:table-column column-width="proportional-column-width(1.45)"/>
4604
+ <fo:table-column column-width="proportional-column-width(1.45)"/>
4605
+ <fo:table-column column-width="proportional-column-width(114.3)"/>
4059
4606
  <fo:table-body>
4060
- <fo:table-row height="88mm">
4607
+ <fo:table-row height="91.8mm">
4061
4608
  <fo:table-cell number-columns-spanned="2" border-right="{$cover_page_border}">
4062
4609
  <fo:block>
4063
4610
  <xsl:call-template name="insertLogoImages2024"/>
@@ -4073,9 +4620,9 @@
4073
4620
  <fo:table-row height="2mm" font-size="0pt">
4074
4621
  <fo:table-cell number-columns-spanned="4"><fo:block> </fo:block></fo:table-cell>
4075
4622
  </fo:table-row>
4076
- <fo:table-row height="175mm"> <!-- 174 -->
4623
+ <fo:table-row height="182mm"> <!-- 174 -->
4077
4624
  <fo:table-cell number-columns-spanned="2" display-align="after" border-right="{$cover_page_border}">
4078
- <fo:block font-size="11.5pt" font-weight="bold">
4625
+ <fo:block font-size="12pt" font-weight="bold">
4079
4626
  <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:ext/iso:ics/iso:code">
4080
4627
  <xsl:if test="position() = 1"><fo:inline>ICS  </fo:inline></xsl:if>
4081
4628
  <xsl:value-of select="."/>
@@ -4084,7 +4631,7 @@
4084
4631
  </fo:block>
4085
4632
 
4086
4633
  <!-- Price based on ... pages -->
4087
- <fo:block font-size="8.6pt" space-before="2pt">
4634
+ <fo:block font-size="9pt" space-before="2pt">
4088
4635
  <fo:block>
4089
4636
  <xsl:for-each select="xalan:nodeset($price_based_on_items)/item">
4090
4637
  <xsl:value-of select="."/>
@@ -4093,11 +4640,11 @@
4093
4640
  </xsl:if>
4094
4641
  </xsl:for-each>
4095
4642
  </fo:block>
4096
- <fo:block margin-top="16pt" margin-bottom="2.5mm"><xsl:value-of select="$copyrightText"/></fo:block>
4643
+ <fo:block margin-top="18pt" margin-bottom="-1mm" line-height="1.1"><xsl:value-of select="$copyrightTextLastPage2024"/></fo:block>
4097
4644
  </fo:block>
4098
4645
  </fo:table-cell>
4099
4646
  <fo:table-cell number-columns-spanned="2" text-align="right" display-align="after">
4100
- <fo:block font-size="15.3pt" font-weight="bold" margin-bottom="1.5mm" margin-right="2mm">
4647
+ <fo:block font-size="16pt" font-weight="bold" margin-bottom="1mm" margin-right="1.5mm">
4101
4648
  <xsl:if test="$stage &gt;=60">
4102
4649
  <xsl:attribute name="color"><xsl:value-of select="$color_red"/></xsl:attribute>
4103
4650
  </xsl:if>
@@ -4290,17 +4837,30 @@
4290
4837
  <xsl:param name="add_math_as_text">true</xsl:param> <!-- add math in text behind svg formula, to copy-paste formula from PDF as text -->
4291
4838
 
4292
4839
  <xsl:param name="table_if">false</xsl:param> <!-- generate extended table in IF for autolayout-algorithm -->
4293
- <xsl:param name="table_widths"/> <!-- path to xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
4840
+ <xsl:param name="table_widths"/> <!-- (debug: path to) xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
4294
4841
  <!-- Example: <tables>
4295
- <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
4296
- <tbody>
4297
- <tr>
4298
- <td id="tab-symdu_1_1">
4299
- <p_len>6</p_len>
4300
- <p_len>100</p_len> for 2nd paragraph
4301
- <word_len>6</word_len>
4302
- <word_len>20</word_len>
4303
- ...
4842
+ <table page-width="509103" id="table1" width_max="223561" width_min="223560">
4843
+ <column width_max="39354" width_min="39354"/>
4844
+ <column width_max="75394" width_min="75394"/>
4845
+ <column width_max="108813" width_min="108813"/>
4846
+ <tbody>
4847
+ <tr>
4848
+ <td width_max="39354" width_min="39354">
4849
+ <p_len>39354</p_len>
4850
+ <word_len>39354</word_len>
4851
+ </td>
4852
+
4853
+ OLD:
4854
+ <tables>
4855
+ <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
4856
+ <tbody>
4857
+ <tr>
4858
+ <td id="tab-symdu_1_1">
4859
+ <p_len>6</p_len>
4860
+ <p_len>100</p_len> for 2nd paragraph
4861
+ <word_len>6</word_len>
4862
+ <word_len>20</word_len>
4863
+ ...
4304
4864
  -->
4305
4865
 
4306
4866
  <!-- for command line debug: <xsl:variable name="table_widths_from_if" select="document($table_widths)"/> -->
@@ -4407,7 +4967,8 @@
4407
4967
  <xsl:variable name="marginLeftRight1_">
4408
4968
 
4409
4969
  <xsl:choose>
4410
- <xsl:when test="$layoutVersion = '2024'">18.7</xsl:when>
4970
+ <xsl:when test="$layoutVersion = '1951'">36</xsl:when>
4971
+ <xsl:when test="$layoutVersion = '2024'">15.2</xsl:when>
4411
4972
  <xsl:otherwise>25</xsl:otherwise>
4412
4973
  </xsl:choose>
4413
4974
 
@@ -4417,7 +4978,8 @@
4417
4978
  <xsl:variable name="marginLeftRight2_">
4418
4979
 
4419
4980
  <xsl:choose>
4420
- <xsl:when test="$layoutVersion = '2024'">18.7</xsl:when>
4981
+ <xsl:when test="$layoutVersion = '1951'">29</xsl:when>
4982
+ <xsl:when test="$layoutVersion = '2024'">15.2</xsl:when>
4421
4983
  <xsl:otherwise>12.5</xsl:otherwise>
4422
4984
  </xsl:choose>
4423
4985
 
@@ -4425,14 +4987,20 @@
4425
4987
  <xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/>
4426
4988
 
4427
4989
  <xsl:variable name="marginTop_">
4428
- 27.4
4990
+
4991
+ <xsl:choose>
4992
+ <xsl:when test="$layoutVersion = '2024'">23.5</xsl:when>
4993
+ <xsl:otherwise>27.4</xsl:otherwise>
4994
+ </xsl:choose>
4995
+
4429
4996
  </xsl:variable>
4430
4997
  <xsl:variable name="marginTop" select="normalize-space($marginTop_)"/>
4431
4998
 
4432
4999
  <xsl:variable name="marginBottom_">
4433
5000
 
4434
5001
  <xsl:choose>
4435
- <xsl:when test="$layoutVersion = '2024'">25.5</xsl:when>
5002
+ <xsl:when test="$layoutVersion = '1951'">25.5</xsl:when>
5003
+ <xsl:when test="$layoutVersion = '2024'">19.5</xsl:when>
4436
5004
  <xsl:otherwise>15</xsl:otherwise>
4437
5005
  </xsl:choose>
4438
5006
 
@@ -4540,6 +5108,10 @@
4540
5108
  <xsl:variable name="zero_width_space">​</xsl:variable>
4541
5109
  <xsl:variable name="hair_space"> </xsl:variable>
4542
5110
  <xsl:variable name="en_dash">–</xsl:variable>
5111
+ <xsl:variable name="em_dash">—</xsl:variable>
5112
+ <xsl:variable name="cr">&#13;</xsl:variable>
5113
+ <xsl:variable name="lf">
5114
+ </xsl:variable>
4543
5115
 
4544
5116
  <xsl:template name="getTitle">
4545
5117
  <xsl:param name="name"/>
@@ -4736,6 +5308,11 @@
4736
5308
 
4737
5309
  <xsl:template name="refine_link-style">
4738
5310
 
5311
+ <xsl:if test="(ancestor::*[local-name() = 'copyright-statement'] and contains(@target, 'mailto:')) or ($layoutVersion = '2024' and ancestor::iso:termsource)">
5312
+ <xsl:attribute name="color">inherit</xsl:attribute>
5313
+ <xsl:attribute name="text-decoration">none</xsl:attribute>
5314
+ </xsl:if>
5315
+
4739
5316
  </xsl:template> <!-- refine_link-style -->
4740
5317
 
4741
5318
  <xsl:attribute-set name="sourcecode-container-style">
@@ -4880,6 +5457,14 @@
4880
5457
 
4881
5458
  </xsl:attribute-set> <!-- example-name-style -->
4882
5459
 
5460
+ <xsl:template name="refine_example-name-style">
5461
+
5462
+ <xsl:if test="$layoutVersion = '2024' and translate(.,'0123456789','') = ."> <!-- EXAMPLE without number -->
5463
+ <xsl:attribute name="padding-right">8mm</xsl:attribute>
5464
+ </xsl:if>
5465
+
5466
+ </xsl:template>
5467
+
4883
5468
  <xsl:attribute-set name="example-p-style">
4884
5469
 
4885
5470
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -4900,6 +5485,14 @@
4900
5485
 
4901
5486
  </xsl:attribute-set> <!-- termexample-name-style -->
4902
5487
 
5488
+ <xsl:template name="refine_termexample-name-style">
5489
+
5490
+ <xsl:if test="$layoutVersion = '2024' and translate(.,'0123456789','') = ."> <!-- EXAMPLE without number -->
5491
+ <xsl:attribute name="padding-right">8mm</xsl:attribute>
5492
+ </xsl:if>
5493
+
5494
+ </xsl:template>
5495
+
4903
5496
  <!-- ========================== -->
4904
5497
  <!-- Table styles -->
4905
5498
  <!-- ========================== -->
@@ -4938,8 +5531,6 @@
4938
5531
  <xsl:if test="normalize-space(@width) != 'text-width'">
4939
5532
  <xsl:attribute name="span">all</xsl:attribute>
4940
5533
  </xsl:if>
4941
- </xsl:if>
4942
- <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
4943
5534
  <xsl:attribute name="font-size">9pt</xsl:attribute>
4944
5535
  </xsl:if>
4945
5536
 
@@ -4964,6 +5555,11 @@
4964
5555
  <!-- for internal table in table cell -->
4965
5556
  <xsl:attribute name="border"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
4966
5557
  </xsl:if>
5558
+ <xsl:if test="$layoutVersion = '1951'">
5559
+ <xsl:if test="@unnumbered = 'true' and ancestor::*[local-name() = 'preface']">
5560
+ <xsl:attribute name="border">none</xsl:attribute>
5561
+ </xsl:if>
5562
+ </xsl:if>
4967
5563
 
4968
5564
  <xsl:call-template name="setBordersTableArray"/>
4969
5565
 
@@ -4991,9 +5587,6 @@
4991
5587
  <xsl:attribute name="span">all</xsl:attribute>
4992
5588
  </xsl:if>
4993
5589
  </xsl:if>
4994
- <xsl:if test="$layoutVersion = '2024'">
4995
- <xsl:attribute name="font-size">10.5pt</xsl:attribute>
4996
- </xsl:if>
4997
5590
 
4998
5591
  </xsl:template> <!-- refine_table-name-style -->
4999
5592
 
@@ -5072,6 +5665,10 @@
5072
5665
  <xsl:attribute name="border-top"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
5073
5666
  <xsl:attribute name="border-bottom"><xsl:value-of select="$table-cell-border"/></xsl:attribute>
5074
5667
  </xsl:if>
5668
+ <!-- vertical table header -->
5669
+ <xsl:if test="ancestor::*[local-name() = 'tbody'] and not(following-sibling::*[local-name() = 'th'])">
5670
+ <xsl:attribute name="border-right"><xsl:value-of select="$table-border"/></xsl:attribute>
5671
+ </xsl:if>
5075
5672
 
5076
5673
  <xsl:call-template name="setBordersTableArray"/>
5077
5674
 
@@ -5110,6 +5707,11 @@
5110
5707
  <xsl:if test="ancestor::*[local-name() = 'tbody'] and not(../preceding-sibling::*[local-name() = 'tr']) and ancestor::*[local-name() = 'table'][1]/*[local-name() = 'thead']"> <!-- cells in 1st row in the table body, and if thead exists -->
5111
5708
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
5112
5709
  </xsl:if>
5710
+ <xsl:if test="$layoutVersion = '1951'">
5711
+ <xsl:if test="ancestor::*[local-name() = 'table'][1]/@unnumbered = 'true' and ancestor::*[local-name() = 'preface']">
5712
+ <xsl:attribute name="border">none</xsl:attribute>
5713
+ </xsl:if>
5714
+ </xsl:if>
5113
5715
  <!-- <xsl:attribute name="page-break-inside">avoid</xsl:attribute> -->
5114
5716
 
5115
5717
  <xsl:call-template name="setBordersTableArray"/>
@@ -5129,6 +5731,10 @@
5129
5731
 
5130
5732
  <xsl:template name="refine_table-footer-cell-style">
5131
5733
 
5734
+ <xsl:if test="$layoutVersion = '2024'">
5735
+ <xsl:attribute name="border-top"><xsl:value-of select="$table-border"/></xsl:attribute>
5736
+ </xsl:if>
5737
+
5132
5738
  </xsl:template> <!-- refine_table-footer-cell-style -->
5133
5739
 
5134
5740
  <xsl:attribute-set name="table-note-style">
@@ -5152,6 +5758,17 @@
5152
5758
 
5153
5759
  </xsl:attribute-set> <!-- table-fn-style -->
5154
5760
 
5761
+ <xsl:template name="refine_table-fn-style">
5762
+
5763
+ <xsl:if test="$layoutVersion = '2024'">
5764
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
5765
+ <xsl:if test="position() = last()">
5766
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
5767
+ </xsl:if>
5768
+ </xsl:if>
5769
+
5770
+ </xsl:template>
5771
+
5155
5772
  <xsl:attribute-set name="table-fn-number-style">
5156
5773
  <xsl:attribute name="font-size">80%</xsl:attribute>
5157
5774
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
@@ -5160,6 +5777,15 @@
5160
5777
 
5161
5778
  </xsl:attribute-set> <!-- table-fn-number-style -->
5162
5779
 
5780
+ <xsl:template name="refine_table-fn-number-style">
5781
+
5782
+ <xsl:if test="$layoutVersion = '2024'">
5783
+ <xsl:attribute name="alignment-baseline">auto</xsl:attribute>
5784
+ <xsl:attribute name="baseline-shift">15%</xsl:attribute>
5785
+ </xsl:if>
5786
+
5787
+ </xsl:template>
5788
+
5163
5789
  <xsl:attribute-set name="fn-container-body-style">
5164
5790
  <xsl:attribute name="text-indent">0</xsl:attribute>
5165
5791
  <xsl:attribute name="start-indent">0</xsl:attribute>
@@ -5215,6 +5841,10 @@
5215
5841
 
5216
5842
  <xsl:template name="refine_dt-block-style">
5217
5843
 
5844
+ <xsl:if test="$layoutVersion = '2024'">
5845
+ <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
5846
+ </xsl:if>
5847
+
5218
5848
  </xsl:template> <!-- refine_dt-block-style -->
5219
5849
 
5220
5850
  <xsl:attribute-set name="dl-name-style">
@@ -5286,6 +5916,14 @@
5286
5916
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
5287
5917
  <xsl:attribute name="font-size">9pt</xsl:attribute>
5288
5918
  </xsl:if>
5919
+ <xsl:if test="$layoutVersion = '2024'">
5920
+ <xsl:if test="ancestor::*[local-name() = 'li'] and not(following-sibling::*)">
5921
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
5922
+ </xsl:if>
5923
+ <xsl:if test="preceding-sibling::*[1][local-name() = 'table']">
5924
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
5925
+ </xsl:if>
5926
+ </xsl:if>
5289
5927
  <xsl:if test="$doctype = 'amendment' and parent::*[local-name() = 'quote']">
5290
5928
  <xsl:attribute name="font-size">inherit</xsl:attribute>
5291
5929
  </xsl:if>
@@ -5303,6 +5941,11 @@
5303
5941
 
5304
5942
  <xsl:template name="refine_note-name-style">
5305
5943
 
5944
+ <xsl:variable name="note_name" select="*[local-name() = 'name']"/>
5945
+ <xsl:if test="$layoutVersion = '2024' and translate($note_name,'0123456789','') = $note_name"> <!-- NOTE without number -->
5946
+ <xsl:attribute name="padding-right">8mm</xsl:attribute>
5947
+ </xsl:if>
5948
+
5306
5949
  </xsl:template> <!-- refine_note-name-style -->
5307
5950
 
5308
5951
  <xsl:attribute-set name="table-note-name-style">
@@ -5421,6 +6064,9 @@
5421
6064
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
5422
6065
  </xsl:if>
5423
6066
  </xsl:if>
6067
+ <xsl:if test="$layoutVersion = '2024'">
6068
+ <xsl:attribute name="space-after">18pt</xsl:attribute>
6069
+ </xsl:if>
5424
6070
 
5425
6071
  </xsl:template>
5426
6072
 
@@ -5625,6 +6271,8 @@
5625
6271
 
5626
6272
  <xsl:attribute-set name="list-item-body-style">
5627
6273
 
6274
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
6275
+
5628
6276
  </xsl:attribute-set>
5629
6277
 
5630
6278
  <xsl:template name="refine_list-item-body-style">
@@ -5658,7 +6306,8 @@
5658
6306
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5659
6307
 
5660
6308
  <xsl:attribute name="font-size">80%</xsl:attribute>
5661
- <xsl:attribute name="vertical-align">super</xsl:attribute>
6309
+ <!--<xsl:attribute name="vertical-align">super</xsl:attribute> -->
6310
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
5662
6311
 
5663
6312
  </xsl:attribute-set>
5664
6313
 
@@ -5678,6 +6327,9 @@
5678
6327
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
5679
6328
  <xsl:attribute name="font-size">9pt</xsl:attribute>
5680
6329
  </xsl:if>
6330
+ <xsl:if test="$layoutVersion = '2024'">
6331
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
6332
+ </xsl:if>
5681
6333
 
5682
6334
  </xsl:template> <!-- refine_fn-body-style -->
5683
6335
 
@@ -6319,6 +6971,20 @@
6319
6971
  </xsl:for-each>
6320
6972
  </xsl:template>
6321
6973
 
6974
+ <xsl:param name="table_only_with_id"/><!-- Example: table1, for table auto-layout algorithm -->
6975
+
6976
+ <xsl:template match="*[local-name()='table']" priority="2">
6977
+ <xsl:choose>
6978
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
6979
+ <xsl:call-template name="table"/>
6980
+ </xsl:when>
6981
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
6982
+ <xsl:otherwise>
6983
+ <xsl:call-template name="table"/>
6984
+ </xsl:otherwise>
6985
+ </xsl:choose>
6986
+ </xsl:template>
6987
+
6322
6988
  <xsl:template match="*[local-name()='table']" name="table">
6323
6989
 
6324
6990
  <xsl:variable name="table-preamble">
@@ -6328,9 +6994,11 @@
6328
6994
  <xsl:variable name="table">
6329
6995
 
6330
6996
  <xsl:variable name="simple-table">
6331
- <xsl:call-template name="getSimpleTable">
6332
- <xsl:with-param name="id" select="@id"/>
6333
- </xsl:call-template>
6997
+ <xsl:if test="$isGenerateTableIF = 'true' and $isApplyAutolayoutAlgorithm = 'true'">
6998
+ <xsl:call-template name="getSimpleTable">
6999
+ <xsl:with-param name="id" select="@id"/>
7000
+ </xsl:call-template>
7001
+ </xsl:if>
6334
7002
  </xsl:variable>
6335
7003
  <!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
6336
7004
 
@@ -6424,9 +7092,9 @@
6424
7092
  </xsl:attribute>
6425
7093
  </xsl:for-each>
6426
7094
 
6427
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
7095
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'][not(@type = 'units')] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
6428
7096
  <xsl:if test="$isNoteOrFnExist = 'true'">
6429
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
7097
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
6430
7098
  </xsl:if>
6431
7099
 
6432
7100
  <xsl:choose>
@@ -6511,6 +7179,12 @@
6511
7179
  <!-- centered table when table name is centered (see table-name-style) -->
6512
7180
 
6513
7181
  <fo:table table-layout="fixed" width="100%" xsl:use-attribute-sets="table-container-style">
7182
+
7183
+ <xsl:if test="$layoutVersion = '2024'">
7184
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
7185
+ <xsl:attribute name="margin-bottom">2pt</xsl:attribute>
7186
+ </xsl:if>
7187
+
6514
7188
  <fo:table-column column-width="proportional-column-width(1)"/>
6515
7189
  <fo:table-column column-width="{@width}"/>
6516
7190
  <fo:table-column column-width="proportional-column-width(1)"/>
@@ -6593,9 +7267,28 @@
6593
7267
 
6594
7268
  </fo:block>
6595
7269
 
7270
+ <!-- <xsl:if test="$namespace = 'bsi' or $namespace = 'iec' or $namespace = 'iso'"> -->
7271
+ <xsl:if test="$continued = 'true'">
7272
+ <fo:block text-align="right">
7273
+ <xsl:apply-templates select="../*[local-name() = 'note'][@type = 'units']/node()"/>
7274
+ </fo:block>
7275
+ </xsl:if>
7276
+ <!-- </xsl:if> -->
7277
+
6596
7278
  </xsl:if>
6597
7279
  </xsl:template> <!-- table/name -->
6598
7280
 
7281
+ <!-- workaround solution for https://github.com/metanorma/metanorma-iso/issues/1151#issuecomment-2033087938 -->
7282
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'note'][@type = 'units']/*[local-name() = 'p']/text()" priority="4">
7283
+ <xsl:choose>
7284
+ <xsl:when test="preceding-sibling::*[local-name() = 'br']">
7285
+ <!-- remove CR or LF at start -->
7286
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'^(&#13;&#10;|&#13;|&#10;)', '')"/>
7287
+ </xsl:when>
7288
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7289
+ </xsl:choose>
7290
+ </xsl:template>
7291
+
6599
7292
  <!-- SOURCE: ... -->
6600
7293
  <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
6601
7294
  <xsl:call-template name="termsource"/>
@@ -7020,7 +7713,7 @@
7020
7713
  <xsl:param name="colwidths"/>
7021
7714
  <xsl:param name="colgroup"/>
7022
7715
 
7023
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
7716
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
7024
7717
 
7025
7718
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
7026
7719
 
@@ -7092,7 +7785,7 @@
7092
7785
 
7093
7786
  <xsl:apply-templates select="../*[local-name()='p']"/>
7094
7787
  <xsl:apply-templates select="../*[local-name()='dl']"/>
7095
- <xsl:apply-templates select="../*[local-name()='note']"/>
7788
+ <xsl:apply-templates select="../*[local-name()='note'][not(@type = 'units')]"/>
7096
7789
  <xsl:apply-templates select="../*[local-name()='example']"/>
7097
7790
  <xsl:apply-templates select="../*[local-name()='source']"/>
7098
7791
 
@@ -7102,7 +7795,7 @@
7102
7795
 
7103
7796
  <!-- horizontal row separator -->
7104
7797
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
7105
- <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
7798
+ <xsl:if test="(../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
7106
7799
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
7107
7800
 
7108
7801
  <xsl:call-template name="setBordersTableArray"/>
@@ -7509,6 +8202,10 @@
7509
8202
  <xsl:attribute name="padding-right">0.5mm</xsl:attribute>
7510
8203
  </xsl:if>
7511
8204
 
8205
+ <xsl:if test="$layoutVersion = '2024'">
8206
+ <xsl:attribute name="font-size">70%</xsl:attribute>
8207
+ </xsl:if>
8208
+
7512
8209
  <xsl:call-template name="insert_basic_link">
7513
8210
  <xsl:with-param name="element">
7514
8211
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}" role="Lbl">
@@ -7627,8 +8324,9 @@
7627
8324
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
7628
8325
 
7629
8326
  <fo:block xsl:use-attribute-sets="table-fn-style">
7630
-
8327
+ <xsl:call-template name="refine_table-fn-style"/>
7631
8328
  <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
8329
+ <xsl:call-template name="refine_table-fn-number-style"/>
7632
8330
 
7633
8331
  <xsl:value-of select="@reference"/>
7634
8332
 
@@ -7812,7 +8510,20 @@
7812
8510
  <!-- Definition List -->
7813
8511
  <!-- ===================== -->
7814
8512
 
7815
- <xsl:template match="*[local-name()='dl']">
8513
+ <!-- for table auto-layout algorithm -->
8514
+ <xsl:template match="*[local-name()='dl']" priority="2">
8515
+ <xsl:choose>
8516
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
8517
+ <xsl:call-template name="dl"/>
8518
+ </xsl:when>
8519
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
8520
+ <xsl:otherwise>
8521
+ <xsl:call-template name="dl"/>
8522
+ </xsl:otherwise>
8523
+ </xsl:choose>
8524
+ </xsl:template>
8525
+
8526
+ <xsl:template match="*[local-name()='dl']" name="dl">
7816
8527
  <xsl:variable name="isAdded" select="@added"/>
7817
8528
  <xsl:variable name="isDeleted" select="@deleted"/>
7818
8529
  <!-- <dl><xsl:copy-of select="."/></dl> -->
@@ -8792,11 +9503,21 @@
8792
9503
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
8793
9504
  <!-- <xsl:variable name="text" select="normalize-space(.)"/> --> <!-- https://github.com/metanorma/metanorma-iso/issues/1115 -->
8794
9505
  <xsl:variable name="text" select="."/>
8795
- <fo:inline font-size="75%" role="SKIP">
9506
+ <xsl:variable name="ratio_">
9507
+
9508
+ <xsl:choose>
9509
+ <xsl:when test="$layoutVersion = '2024'">0.8</xsl:when>
9510
+ <xsl:otherwise>0.75</xsl:otherwise>
9511
+ </xsl:choose>
9512
+
9513
+ </xsl:variable>
9514
+ <xsl:variable name="ratio" select="number(normalize-space($ratio_))"/>
9515
+ <fo:inline font-size="{$ratio * 100}%" role="SKIP">
8796
9516
  <xsl:if test="string-length($text) &gt; 0">
8797
9517
  <xsl:variable name="smallCapsText">
8798
9518
  <xsl:call-template name="recursiveSmallCaps">
8799
9519
  <xsl:with-param name="text" select="$text"/>
9520
+ <xsl:with-param name="ratio" select="$ratio"/>
8800
9521
  </xsl:call-template>
8801
9522
  </xsl:variable>
8802
9523
  <!-- merge neighboring fo:inline -->
@@ -8833,12 +9554,13 @@
8833
9554
 
8834
9555
  <xsl:template name="recursiveSmallCaps">
8835
9556
  <xsl:param name="text"/>
9557
+ <xsl:param name="ratio"/>
8836
9558
  <xsl:variable name="char" select="substring($text,1,1)"/>
8837
9559
  <!-- <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/> -->
8838
9560
  <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
8839
9561
  <xsl:choose>
8840
9562
  <xsl:when test="$char=$upperCase">
8841
- <fo:inline font-size="{100 div 0.75}%" role="SKIP">
9563
+ <fo:inline font-size="{100 div $ratio}%" role="SKIP">
8842
9564
  <xsl:value-of select="$upperCase"/>
8843
9565
  </fo:inline>
8844
9566
  </xsl:when>
@@ -8849,6 +9571,7 @@
8849
9571
  <xsl:if test="string-length($text) &gt; 1">
8850
9572
  <xsl:call-template name="recursiveSmallCaps">
8851
9573
  <xsl:with-param name="text" select="substring($text,2)"/>
9574
+ <xsl:with-param name="ratio" select="$ratio"/>
8852
9575
  </xsl:call-template>
8853
9576
  </xsl:if>
8854
9577
  </xsl:template>
@@ -8956,6 +9679,9 @@
8956
9679
  <xsl:if test="$key = 'font-family' or $key = 'font-size' or $key = 'color'">
8957
9680
  <style name="{$key}"><xsl:value-of select="$value"/></style>
8958
9681
  </xsl:if>
9682
+ <xsl:if test="$key = 'text-indent'">
9683
+ <style name="padding-left"><xsl:value-of select="$value"/></style>
9684
+ </xsl:if>
8959
9685
  </xsl:for-each>
8960
9686
  </xsl:variable>
8961
9687
  <xsl:variable name="styles" select="xalan:nodeset($styles_)"/>
@@ -9828,7 +10554,13 @@
9828
10554
  <xsl:value-of select="$language_current_2"/>
9829
10555
  </xsl:when>
9830
10556
  <xsl:otherwise>
9831
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
10557
+ <xsl:variable name="language_current_3" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'])"/>
10558
+ <xsl:choose>
10559
+ <xsl:when test="$language_current_3 != ''">
10560
+ <xsl:value-of select="$language_current_3"/>
10561
+ </xsl:when>
10562
+ <xsl:otherwise>en</xsl:otherwise>
10563
+ </xsl:choose>
9832
10564
  </xsl:otherwise>
9833
10565
  </xsl:choose>
9834
10566
  </xsl:otherwise>
@@ -10365,6 +11097,13 @@
10365
11097
  </xsl:call-template>
10366
11098
  </xsl:template>
10367
11099
 
11100
+ <!-- command between two xref points to non-standard bibitem -->
11101
+ <xsl:template match="text()[. = ','][preceding-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']] and following-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']]]">
11102
+
11103
+ <fo:inline baseline-shift="20%" font-size="80%"><xsl:value-of select="."/></fo:inline>
11104
+
11105
+ </xsl:template>
11106
+
10368
11107
  <!-- ====== -->
10369
11108
  <!-- formula -->
10370
11109
  <!-- ====== -->
@@ -10735,7 +11474,7 @@
10735
11474
  </xsl:when>
10736
11475
  <xsl:otherwise>
10737
11476
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
10738
- <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
11477
+ <xsl:if test="not(@mimetype = 'image/svg+xml') and (../*[local-name() = 'name'] or parent::*[local-name() = 'figure'][@unnumbered = 'true']) and not(ancestor::*[local-name() = 'table'])">
10739
11478
 
10740
11479
  <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
10741
11480
  <xsl:attribute name="width">
@@ -11070,6 +11809,8 @@
11070
11809
  </xsl:attribute>
11071
11810
  </xsl:template>
11072
11811
 
11812
+ <xsl:variable name="regex_starts_with_digit">^[0-9].*</xsl:variable>
11813
+
11073
11814
  <xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
11074
11815
  <xsl:copy>
11075
11816
  <xsl:apply-templates select="@*" mode="svg_update"/>
@@ -11088,7 +11829,8 @@
11088
11829
 
11089
11830
  <xsl:attribute name="width">
11090
11831
  <xsl:choose>
11091
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
11832
+ <!-- width is non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
11833
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
11092
11834
  <xsl:when test="$width != ''">
11093
11835
  <xsl:value-of select="round($width)"/>
11094
11836
  </xsl:when>
@@ -11097,7 +11839,8 @@
11097
11839
  </xsl:attribute>
11098
11840
  <xsl:attribute name="height">
11099
11841
  <xsl:choose>
11100
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
11842
+ <!-- height non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
11843
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
11101
11844
  <xsl:when test="$height != ''">
11102
11845
  <xsl:value-of select="round($height)"/>
11103
11846
  </xsl:when>
@@ -11114,7 +11857,7 @@
11114
11857
  <xsl:variable name="parent_image_width" select="normalize-space(ancestor::*[2][local-name() = 'image']/@width)"/>
11115
11858
  <xsl:attribute name="width">
11116
11859
  <xsl:choose>
11117
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
11860
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
11118
11861
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
11119
11862
  </xsl:choose>
11120
11863
  </xsl:attribute>
@@ -11125,7 +11868,7 @@
11125
11868
  <xsl:variable name="parent_image_height" select="normalize-space(ancestor::*[2][local-name() = 'image']/@height)"/>
11126
11869
  <xsl:attribute name="height">
11127
11870
  <xsl:choose>
11128
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
11871
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
11129
11872
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
11130
11873
  </xsl:choose>
11131
11874
  </xsl:attribute>
@@ -12588,6 +13331,7 @@
12588
13331
  <xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
12589
13332
  <xsl:if test="normalize-space() != ''">
12590
13333
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
13334
+ <xsl:call-template name="refine_termexample-name-style"/>
12591
13335
  <xsl:apply-templates/>
12592
13336
  </fo:inline>
12593
13337
  </xsl:if>
@@ -12738,6 +13482,7 @@
12738
13482
  </xsl:when>
12739
13483
  <xsl:otherwise>
12740
13484
  <fo:inline xsl:use-attribute-sets="example-name-style">
13485
+ <xsl:call-template name="refine_example-name-style"/>
12741
13486
  <xsl:apply-templates/>
12742
13487
  </fo:inline>
12743
13488
  </xsl:otherwise>
@@ -13076,6 +13821,8 @@
13076
13821
  </xsl:choose>
13077
13822
  </xsl:variable>
13078
13823
 
13824
+ <xsl:if test="$layoutVersion = '1951' and $depth = 1">.</xsl:if>
13825
+
13079
13826
  <xsl:choose>
13080
13827
  <xsl:when test="$lang = 'zh'">
13081
13828
  <fo:inline role="SKIP"><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -13206,6 +13953,7 @@
13206
13953
  <xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
13207
13954
 
13208
13955
  <xsl:choose>
13956
+ <xsl:when test="$layoutVersion = '1951' and (local-name() = 'clause' or local-name() = 'introduction')"/>
13209
13957
  <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"/>
13210
13958
  <xsl:otherwise>
13211
13959
  <fo:block break-after="page"/>
@@ -13956,6 +14704,11 @@
13956
14704
  <xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
13957
14705
 
13958
14706
  <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
14707
+
14708
+ <xsl:if test="$layoutVersion = '2024'">
14709
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
14710
+ </xsl:if>
14711
+
13959
14712
  <xsl:call-template name="processBibitem"/>
13960
14713
  </fo:block>
13961
14714
 
@@ -13991,6 +14744,11 @@
13991
14744
  <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
13992
14745
  <xsl:otherwise>
13993
14746
  <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
14747
+
14748
+ <xsl:if test="$layoutVersion = '2024'">
14749
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
14750
+ </xsl:if>
14751
+
13994
14752
  <fo:list-item-label end-indent="label-end()">
13995
14753
  <fo:block role="SKIP">
13996
14754
  <fo:inline role="SKIP">