metanorma-iso 2.7.4 → 2.7.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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">