metanorma-iso 2.7.3 → 2.7.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -45,11 +45,6 @@
45
45
  </xsl:if>
46
46
  </xsl:variable>
47
47
 
48
- <xsl:variable name="all_rights_reserved">
49
- <xsl:call-template name="getLocalizedString">
50
- <xsl:with-param name="key">all_rights_reserved</xsl:with-param>
51
- </xsl:call-template>
52
- </xsl:variable>
53
48
  <xsl:variable name="copyrightYear" select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:from"/>
54
49
  <xsl:variable name="copyrightAbbr__">
55
50
  <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization[normalize-space(iso:abbreviation) != 'IEEE']">
@@ -75,10 +70,10 @@
75
70
  <xsl:variable name="copyrightAbbr" select="normalize-space($copyrightAbbr_)"/>
76
71
  <xsl:variable name="copyrightAbbrIEEE" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:copyright/iso:owner/iso:organization/iso:abbreviation[. = 'IEEE'])"/>
77
72
  <xsl:variable name="copyrightText">
78
- <xsl:value-of select="concat('© ', $copyrightAbbr, ' ', $copyrightYear ,' – ', $all_rights_reserved)"/>
73
+ <xsl:value-of select="concat('© ', $copyrightAbbr, ' ', $copyrightYear ,' – ', $i18n_all_rights_reserved)"/>
79
74
  <xsl:if test="$copyrightAbbrIEEE != ''">
80
75
  <xsl:value-of select="$linebreak"/>
81
- <xsl:value-of select="concat('© ', $copyrightAbbrIEEE, ' ', $copyrightYear ,' – ', $all_rights_reserved)"/>
76
+ <xsl:value-of select="concat('© ', $copyrightAbbrIEEE, ' ', $copyrightYear ,' – ', $i18n_all_rights_reserved)"/>
82
77
  </xsl:if>
83
78
  </xsl:variable>
84
79
 
@@ -110,6 +105,12 @@
110
105
  <xsl:when test="$layoutVersion = '1972'">
111
106
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp),':','-')"/>
112
107
  </xsl:when>
108
+ <xsl:when test="$layoutVersion = '1987'">
109
+ <!-- insert space around : -->
110
+ <xsl:variable name="iso_reference_tmp_" select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp),':',' : ')"/>
111
+ <!-- insert space before ( -->
112
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($iso_reference_tmp_),'\(',' \(')"/>
113
+ </xsl:when>
113
114
  <xsl:otherwise>
114
115
  <xsl:value-of select="$iso_reference"/>
115
116
  </xsl:otherwise>
@@ -253,6 +254,24 @@
253
254
 
254
255
  <xsl:variable name="proof-text">PROOF/ÉPREUVE</xsl:variable>
255
256
 
257
+ <xsl:variable name="ISO_title_en">INTERNATIONAL ORGANIZATION FOR STANDARDIZATION</xsl:variable>
258
+ <xsl:variable name="ISO_title_ru">МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ</xsl:variable>
259
+ <xsl:variable name="ISO_title_fr">ORGANISATION INTERNATIONALE DE NORMALISATION</xsl:variable>
260
+
261
+ <xsl:variable name="i18n_reference_number_abbrev"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">reference_number_abbrev</xsl:with-param></xsl:call-template></xsl:variable>
262
+ <xsl:variable name="i18n_reference_number"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">reference_number</xsl:with-param></xsl:call-template></xsl:variable>
263
+ <xsl:variable name="i18n_descriptors"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">Descriptor.pl</xsl:with-param></xsl:call-template></xsl:variable>
264
+ <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
+ <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
+ <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>
267
+ <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
+ <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
+ <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>
270
+ <xsl:variable name="i18n_locality_page"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">locality.page</xsl:with-param></xsl:call-template></xsl:variable>
271
+ <xsl:variable name="i18n_locality_part"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">locality.part</xsl:with-param></xsl:call-template></xsl:variable>
272
+ <xsl:variable name="i18n_secretariat"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">secretariat</xsl:with-param></xsl:call-template></xsl:variable>
273
+ <xsl:variable name="i18n_classification_UDC"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">classification-UDC</xsl:with-param></xsl:call-template></xsl:variable>
274
+
256
275
  <!-- Example:
257
276
  <item level="1" id="Foreword" display="true">Foreword</item>
258
277
  <item id="term-script" display="false">3.2</item>
@@ -324,10 +343,7 @@
324
343
  <xsl:variable name="secretariat_">
325
344
  <xsl:variable name="value" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:ext/iso:editorialgroup/iso:secretariat)"/>
326
345
  <xsl:if test="$value != ''">
327
- <xsl:call-template name="getLocalizedString">
328
- <xsl:with-param name="key">secretariat</xsl:with-param>
329
- </xsl:call-template>
330
- <xsl:text>: </xsl:text>
346
+ <xsl:value-of select="concat($i18n_secretariat, ': ')"/>
331
347
  <fo:inline font-weight="bold"><xsl:value-of select="$value"/></fo:inline>
332
348
  </xsl:if>
333
349
  </xsl:variable>
@@ -345,10 +361,7 @@
345
361
  <xsl:variable name="classification_udc" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:classification[@type = 'UDC'])"/>
346
362
  <xsl:choose>
347
363
  <xsl:when test="$classification_udc != ''">
348
- <xsl:call-template name="getLocalizedString">
349
- <xsl:with-param name="key">classification-UDC</xsl:with-param>
350
- </xsl:call-template>
351
- <xsl:text> </xsl:text>
364
+ <xsl:value-of select="concat($i18n_classification_UDC, ' ')"/>
352
365
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($classification_udc),'(:)',' $1 ')"/>
353
366
  </xsl:when>
354
367
  <xsl:otherwise> </xsl:otherwise>
@@ -385,6 +398,11 @@
385
398
  <xsl:attribute name="font-family-generic">Sans</xsl:attribute>
386
399
  <xsl:attribute name="font-size">10pt</xsl:attribute>
387
400
  </xsl:if>
401
+
402
+ <xsl:if test="$layoutVersion = '1987' and $doctype = 'technical-report'">
403
+ <xsl:attribute name="font-size">8.5pt</xsl:attribute>
404
+ </xsl:if>
405
+
388
406
  <xsl:if test="$layoutVersion = '2024'">
389
407
  <xsl:attribute name="font-size">10.5pt</xsl:attribute>
390
408
  </xsl:if>
@@ -582,7 +600,11 @@
582
600
  <!-- first page -->
583
601
  <fo:simple-page-master master-name="first-publishedISO" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
584
602
  <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}"/>
585
- <fo:region-before region-name="header-first" extent="{$marginTop}mm"/> <!-- display-align="center" -->
603
+ <fo:region-before region-name="header-first" extent="{$marginTop}mm">
604
+ <xsl:if test="$layoutVersion = '1987' and $doctype = 'technical-report'">
605
+ <xsl:attribute name="region-name">header-odd</xsl:attribute>
606
+ </xsl:if>
607
+ </fo:region-before>
586
608
  <fo:region-after region-name="footer-odd" extent="{$marginBottom - 2}mm"/>
587
609
  <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
588
610
  <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
@@ -632,6 +654,22 @@
632
654
  </fo:repeatable-page-master-alternatives>
633
655
  </fo:page-sequence-master>
634
656
 
657
+ <!-- First pages for Technical Report (layout 1987) -->
658
+ <fo:simple-page-master master-name="first-preface_1987_TR" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
659
+ <fo:region-body margin-top="13mm" margin-bottom="30mm" margin-left="19mm" margin-right="{$marginLeftRight2}mm"/>
660
+ <fo:region-before region-name="header-empty" extent="13mm"/>
661
+ <fo:region-after region-name="footer-preface-first_1987_TR" extent="30mm" display-align="after"/>
662
+ <fo:region-start region-name="left-region-first_1987_TR" extent="19mm"/>
663
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
664
+ </fo:simple-page-master>
665
+ <fo:page-sequence-master master-name="preface-1987_TR">
666
+ <fo:repeatable-page-master-alternatives>
667
+ <fo:conditional-page-master-reference master-reference="first-preface_1987_TR" page-position="first"/>
668
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-publishedISO"/>
669
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-publishedISO"/>
670
+ </fo:repeatable-page-master-alternatives>
671
+ </fo:page-sequence-master>
672
+
635
673
  <fo:page-sequence-master master-name="document-publishedISO">
636
674
  <fo:repeatable-page-master-alternatives>
637
675
  <fo:conditional-page-master-reference master-reference="first-publishedISO" page-position="first"/>
@@ -726,10 +764,7 @@
726
764
  <xsl:value-of select="$udc"/>
727
765
  <fo:inline keep-together.within-line="always" role="SKIP">
728
766
  <fo:leader leader-pattern="space"/>
729
- <fo:inline font-weight="normal">
730
- <xsl:call-template name="getLocalizedString">
731
- <xsl:with-param name="key">reference_number</xsl:with-param>
732
- </xsl:call-template><xsl:text>:</xsl:text></fo:inline><xsl:value-of select="$ISOnumber"/>
767
+ <fo:inline font-weight="normal"><xsl:value-of select="concat($i18n_reference_number, ':')"/></fo:inline><xsl:value-of select="$ISOnumber"/>
733
768
  </fo:inline>
734
769
  </fo:block>
735
770
  </fo:block-container>
@@ -798,23 +833,14 @@
798
833
  <xsl:value-of select="$udc"/>
799
834
  <fo:leader leader-pattern="space"/>
800
835
  <fo:inline role="SKIP">
801
- <xsl:call-template name="getLocalizedString">
802
- <xsl:with-param name="key">reference_number</xsl:with-param>
803
- </xsl:call-template>
804
- <xsl:text>  </xsl:text>
805
- <xsl:value-of select="$ISOnumber"/>
836
+ <xsl:value-of select="concat($i18n_reference_number, '  ', $ISOnumber)"/>
806
837
  </fo:inline>
807
838
  </fo:inline>
808
839
  </fo:block>
809
840
 
810
841
  <xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
811
842
  <fo:block margin-top="10pt">
812
- <xsl:variable name="title-descriptors">
813
- <xsl:call-template name="getLocalizedString">
814
- <xsl:with-param name="key">Descriptor.pl</xsl:with-param>
815
- </xsl:call-template>
816
- </xsl:variable>
817
- <fo:inline font-weight="bold"><xsl:value-of select="$title-descriptors"/> : </fo:inline>
843
+ <fo:inline font-weight="bold"><xsl:value-of select="$i18n_descriptors"/> : </fo:inline>
818
844
  <xsl:call-template name="insertKeywords">
819
845
  <xsl:with-param name="sorting">no</xsl:with-param>
820
846
  <xsl:with-param name="charDelim" select="', '"/>
@@ -883,7 +909,7 @@
883
909
  </fo:table-row>
884
910
  <fo:table-row border-top="2pt solid black" height="4.5mm" display-align="center">
885
911
  <fo:table-cell number-columns-spanned="3" font-size="5.6pt" text-align-last="justify">
886
- <fo:block>INTERNATIONAL ORGANIZATION FOR STANDARDIZATION●МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ●ORGANISATION INTERNATIONALE DE NORMALISATION</fo:block>
912
+ <fo:block><xsl:value-of select="$ISO_title_en"/>●<xsl:value-of select="$ISO_title_ru"/>●<xsl:value-of select="$ISO_title_fr"/></fo:block>
887
913
  </fo:table-cell>
888
914
  </fo:table-row>
889
915
  </fo:table-body>
@@ -912,7 +938,7 @@
912
938
  </fo:flow>
913
939
  </fo:page-sequence>
914
940
  </xsl:when> <!-- END: $layoutVersion = '1972' -->
915
-
941
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"><!-- see preface pages below --></xsl:when>
916
942
  <xsl:when test="$layoutVersion = '1987'">
917
943
  <fo:page-sequence master-reference="cover-page_1987" force-page-count="no-force">
918
944
  <fo:static-content flow-name="right-region">
@@ -934,9 +960,7 @@
934
960
  <fo:block-container margin-left="3mm">
935
961
  <fo:block-container margin-left="0" font-family="Times New Roman">
936
962
  <fo:block font-size="8pt" font-family="Times New Roman" margin-bottom="-0.5mm">
937
- <xsl:call-template name="getLocalizedString">
938
- <xsl:with-param name="key">reference_number</xsl:with-param>
939
- </xsl:call-template>
963
+ <xsl:value-of select="$i18n_reference_number"/>
940
964
  <xsl:value-of select="$linebreak"/>
941
965
  <xsl:value-of select="$ISOnumber"/>
942
966
  </fo:block>
@@ -967,9 +991,9 @@
967
991
  </fo:block>
968
992
  </fo:table-cell>
969
993
  <fo:table-cell font-size="7.5pt" border-top="0.5pt solid black" border-bottom="0.5pt solid black" text-align-last="justify" display-align="center" line-height="1.6" padding-left="32mm">
970
- <fo:block>INTERNATIONAL ORGANIZATION FOR STANDARDIZATION</fo:block>
971
- <fo:block>ORGANISATION INTERNATIONALE DE NORMALISATION</fo:block>
972
- <fo:block>МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ</fo:block>
994
+ <fo:block><xsl:value-of select="$ISO_title_en"/></fo:block>
995
+ <fo:block><xsl:value-of select="$ISO_title_fr"/></fo:block>
996
+ <fo:block><xsl:value-of select="$ISO_title_ru"/></fo:block>
973
997
  </fo:table-cell>
974
998
  </fo:table-row>
975
999
  </fo:table-body>
@@ -1169,9 +1193,7 @@
1169
1193
  <xsl:variable name="date_corrected" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:date[@type = 'corrected'])"/>
1170
1194
  <xsl:if test="$date_corrected != ''">
1171
1195
  <fo:block font-size="17.2pt" font-weight="bold" margin-bottom="3mm">
1172
- <xsl:call-template name="getLocalizedString">
1173
- <xsl:with-param name="key">corrected_version</xsl:with-param>
1174
- </xsl:call-template>
1196
+ <xsl:value-of select="$i18n_corrected_version"/>
1175
1197
  <xsl:value-of select="$linebreak"/>
1176
1198
  <xsl:value-of select="$date_corrected"/>
1177
1199
  </fo:block>
@@ -1194,9 +1216,7 @@
1194
1216
 
1195
1217
  <fo:block margin-bottom="3mm">
1196
1218
  <!-- Voting begins on: -->
1197
- <xsl:call-template name="getLocalizedString">
1198
- <xsl:with-param name="key">voting_begins_on</xsl:with-param>
1199
- </xsl:call-template><xsl:text>:</xsl:text>
1219
+ <xsl:value-of select="concat($i18n_voting_begins_on, ':')"/>
1200
1220
  <fo:block font-weight="bold">
1201
1221
  <xsl:call-template name="insertVoteStarted"/>
1202
1222
  </fo:block>
@@ -1204,10 +1224,7 @@
1204
1224
 
1205
1225
  <fo:block margin-bottom="3mm">
1206
1226
  <!-- Voting terminates on: -->
1207
- <xsl:call-template name="getLocalizedString">
1208
- <xsl:with-param name="key">voting_terminates_on</xsl:with-param>
1209
- </xsl:call-template><xsl:text>:</xsl:text>
1210
-
1227
+ <xsl:value-of select="concat($i18n_voting_terminates_on, ':')"/>
1211
1228
  <fo:block font-weight="bold">
1212
1229
  <xsl:call-template name="insertVoteEnded"/>
1213
1230
  </fo:block>
@@ -1291,9 +1308,7 @@
1291
1308
  <fo:table-row height="12mm">
1292
1309
  <fo:table-cell number-columns-spanned="2" border-right="{$cover_page_border}" display-align="after" padding-bottom="-1mm">
1293
1310
  <fo:block font-size="9.6pt">
1294
- <xsl:call-template name="getLocalizedString">
1295
- <xsl:with-param name="key">reference_number</xsl:with-param>
1296
- </xsl:call-template>
1311
+ <xsl:value-of select="$i18n_reference_number"/>
1297
1312
  </fo:block>
1298
1313
  <fo:block font-size="9.6pt">
1299
1314
  <xsl:value-of select="$ISOnumber"/>
@@ -1423,9 +1438,7 @@
1423
1438
  <fo:block text-align="right" role="SKIP">
1424
1439
  <!-- Reference number -->
1425
1440
  <fo:block>
1426
- <xsl:call-template name="getLocalizedString">
1427
- <xsl:with-param name="key">reference_number</xsl:with-param>
1428
- </xsl:call-template>
1441
+ <xsl:value-of select="$i18n_reference_number"/>
1429
1442
  </fo:block>
1430
1443
  <fo:block>
1431
1444
  <xsl:value-of select="$ISOnumber"/>
@@ -1492,17 +1505,13 @@
1492
1505
  <fo:table-cell>
1493
1506
  <fo:block>
1494
1507
  <!-- Voting begins on: -->
1495
- <xsl:call-template name="getLocalizedString">
1496
- <xsl:with-param name="key">voting_begins_on</xsl:with-param>
1497
- </xsl:call-template><xsl:text>:</xsl:text>
1508
+ <xsl:value-of select="concat($i18n_voting_begins_on, ':')"/>
1498
1509
  </fo:block>
1499
1510
  </fo:table-cell>
1500
1511
  <fo:table-cell>
1501
1512
  <fo:block>
1502
1513
  <!-- Voting terminates on: -->
1503
- <xsl:call-template name="getLocalizedString">
1504
- <xsl:with-param name="key">voting_terminates_on</xsl:with-param>
1505
- </xsl:call-template><xsl:text>:</xsl:text>
1514
+ <xsl:value-of select="concat($i18n_voting_terminates_on, ':')"/>
1506
1515
  </fo:block>
1507
1516
  </fo:table-cell>
1508
1517
  </fo:table-row>
@@ -1659,9 +1668,7 @@
1659
1668
  <fo:block text-align="right" font-size="9.5pt">
1660
1669
  <xsl:value-of select="$linebreak"/>
1661
1670
  <xsl:value-of select="$linebreak"/>
1662
- <xsl:call-template name="getLocalizedString">
1663
- <xsl:with-param name="key">corrected_version</xsl:with-param>
1664
- </xsl:call-template>
1671
+ <xsl:value-of select="$i18n_corrected_version"/>
1665
1672
  <xsl:value-of select="$linebreak"/>
1666
1673
  <xsl:value-of select="$date_corrected"/>
1667
1674
  </fo:block>
@@ -1714,9 +1721,7 @@
1714
1721
  <fo:block margin-bottom="6pt"><xsl:copy-of select="$secretariat"/></fo:block>
1715
1722
  <fo:block margin-bottom="6pt">
1716
1723
  <!-- Voting begins on: -->
1717
- <xsl:call-template name="getLocalizedString">
1718
- <xsl:with-param name="key">voting_begins_on</xsl:with-param>
1719
- </xsl:call-template><xsl:text>:</xsl:text>
1724
+ <xsl:value-of select="concat($i18n_voting_begins_on, ':')"/>
1720
1725
  <xsl:value-of select="$linebreak"/>
1721
1726
  <fo:inline font-weight="bold">
1722
1727
  <xsl:call-template name="insertVoteStarted"/>
@@ -1724,9 +1729,7 @@
1724
1729
  </fo:block>
1725
1730
  <fo:block>
1726
1731
  <!-- Voting terminates on: -->
1727
- <xsl:call-template name="getLocalizedString">
1728
- <xsl:with-param name="key">voting_terminates_on</xsl:with-param>
1729
- </xsl:call-template><xsl:text>:</xsl:text>
1732
+ <xsl:value-of select="concat($i18n_voting_terminates_on, ':')"/>
1730
1733
  <xsl:value-of select="$linebreak"/>
1731
1734
  <fo:inline font-weight="bold">
1732
1735
  <xsl:call-template name="insertVoteEnded"/>
@@ -1817,9 +1820,7 @@
1817
1820
  <fo:table-cell display-align="center" role="SKIP">
1818
1821
  <fo:block text-align="right" role="SKIP">
1819
1822
  <fo:block>
1820
- <xsl:call-template name="getLocalizedString">
1821
- <xsl:with-param name="key">reference_number</xsl:with-param>
1822
- </xsl:call-template>
1823
+ <xsl:value-of select="$i18n_reference_number"/>
1823
1824
  </fo:block>
1824
1825
  <fo:block><xsl:value-of select="$ISOnumber"/></fo:block>
1825
1826
  <fo:block role="SKIP"> </fo:block>
@@ -2018,6 +2019,117 @@
2018
2019
 
2019
2020
  <xsl:choose>
2020
2021
  <xsl:when test="$layoutVersion = '1951'"><!-- To do --></xsl:when>
2022
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'">
2023
+ <fo:page-sequence master-reference="preface-1987_TR" format="i" force-page-count="no-force">
2024
+
2025
+ <xsl:call-template name="insertHeaderFooter">
2026
+ <xsl:with-param name="font-weight">normal</xsl:with-param>
2027
+ <xsl:with-param name="is_footer">false</xsl:with-param>
2028
+ </xsl:call-template>
2029
+
2030
+ <fo:static-content flow-name="left-region-first_1987_TR" role="artifact">
2031
+ <fo:block-container reference-orientation="90">
2032
+ <fo:block font-size="8pt" margin-left="5mm" margin-top="8mm">
2033
+ <xsl:value-of select="$ISOnumber"/>
2034
+ </fo:block>
2035
+ </fo:block-container>
2036
+ </fo:static-content>
2037
+
2038
+ <fo:static-content flow-name="footer-preface-first_1987_TR" role="artifact">
2039
+ <fo:block-container font-size="8pt" margin-bottom="3mm">
2040
+ <xsl:call-template name="insertSingleLine"/>
2041
+ <fo:block font-size="11pt" font-weight="bold" text-align-last="justify" margin-top="0.5mm" margin-right="1mm">
2042
+ <fo:inline keep-together.within-line="always" role="SKIP">
2043
+ <xsl:value-of select="$udc"/>
2044
+ <fo:leader leader-pattern="space"/>
2045
+ <fo:inline role="SKIP">
2046
+ <xsl:value-of select="concat($i18n_reference_number_abbrev, ' ', $ISOnumber)"/>
2047
+ </fo:inline>
2048
+ </fo:inline>
2049
+ </fo:block>
2050
+
2051
+ <xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
2052
+ <fo:block margin-top="6pt">
2053
+ <fo:inline font-weight="bold"><xsl:value-of select="$i18n_descriptors"/> : </fo:inline>
2054
+ <xsl:call-template name="insertKeywords">
2055
+ <xsl:with-param name="sorting">no</xsl:with-param>
2056
+ <xsl:with-param name="charDelim" select="', '"/>
2057
+ </xsl:call-template>
2058
+ </fo:block>
2059
+ </xsl:if>
2060
+
2061
+ <fo:table table-layout="fixed" width="100%" margin-top="14pt" font-size="7.5pt">
2062
+ <fo:table-body>
2063
+ <fo:table-row>
2064
+ <fo:table-cell>
2065
+ <fo:block>
2066
+ <xsl:apply-templates select="/iso:iso-standard/iso:boilerplate/iso:copyright-statement"/>
2067
+ </fo:block>
2068
+ </fo:table-cell>
2069
+ <fo:table-cell display-align="after" text-align="right">
2070
+ <fo:block>
2071
+ <xsl:for-each select="xalan:nodeset($price_based_on_items)/item">
2072
+ <xsl:value-of select="."/>
2073
+ <xsl:if test="position() != last()">
2074
+ <fo:page-number-citation ref-id="lastBlock"/>
2075
+ </xsl:if>
2076
+ </xsl:for-each>
2077
+ </fo:block>
2078
+ </fo:table-cell>
2079
+ </fo:table-row>
2080
+ </fo:table-body>
2081
+ </fo:table>
2082
+ </fo:block-container>
2083
+ </fo:static-content> <!-- footer-preface-first_1987_TR -->
2084
+
2085
+ <fo:flow flow-name="xsl-region-body">
2086
+ <fo:table table-layout="fixed" width="100%">
2087
+ <fo:table-column column-width="proportional-column-width(68)"/>
2088
+ <fo:table-column column-width="proportional-column-width(112)"/>
2089
+ <fo:table-body>
2090
+ <fo:table-row>
2091
+ <fo:table-cell number-rows-spanned="2">
2092
+ <fo:block font-size="0">
2093
+ <xsl:variable name="content-height">25</xsl:variable>
2094
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-ISO-Logo-1987))}" content-height="{$content-height}mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image ISO Logo"/>
2095
+ </fo:block>
2096
+ </fo:table-cell>
2097
+ <fo:table-cell font-size="11pt" font-weight="bold">
2098
+ <fo:block><xsl:value-of select="$doctype_uppercased"/> <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:docnumber"/></fo:block>
2099
+ </fo:table-cell>
2100
+ </fo:table-row>
2101
+ <fo:table-row display-align="after">
2102
+ <fo:table-cell>
2103
+ <fo:block margin-bottom="-1mm">Published <xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:date[@type = 'published']"/></fo:block>
2104
+ </fo:table-cell>
2105
+ </fo:table-row>
2106
+ </fo:table-body>
2107
+ </fo:table>
2108
+
2109
+ <fo:block font-size="6pt" margin-top="8mm" margin-bottom="18mm" text-align-last="justify"><xsl:value-of select="$ISO_title_en"/>●<xsl:value-of select="$ISO_title_ru"/>●<xsl:value-of select="$ISO_title_fr"/></fo:block>
2110
+
2111
+ <fo:block-container margin-bottom="22mm" role="SKIP">
2112
+ <fo:block font-size="18pt" font-weight="bold" role="H1" line-height="1.05">
2113
+ <xsl:call-template name="insertTitlesLangMain"/>
2114
+ </fo:block>
2115
+ <xsl:for-each select="xalan:nodeset($lang_other)/lang">
2116
+ <xsl:variable name="lang_other" select="."/>
2117
+ <fo:block font-size="12pt" role="SKIP"><xsl:value-of select="$linebreak"/></fo:block>
2118
+ <fo:block role="H1" font-style="italic" line-height="1.2">
2119
+ <!-- Example: title-intro fr -->
2120
+ <xsl:call-template name="insertTitlesLangOther">
2121
+ <xsl:with-param name="lang_other" select="$lang_other"/>
2122
+ </xsl:call-template>
2123
+ </fo:block>
2124
+ </xsl:for-each>
2125
+ </fo:block-container>
2126
+
2127
+ <!-- ToC, Foreword, Introduction -->
2128
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
2129
+
2130
+ </fo:flow>
2131
+ </fo:page-sequence>
2132
+ </xsl:when>
2021
2133
  <xsl:otherwise>
2022
2134
 
2023
2135
  <fo:page-sequence master-reference="preface{$document-master-reference}" format="i" force-page-count="{$force-page-count-preface}">
@@ -2218,6 +2330,7 @@
2218
2330
 
2219
2331
  <xsl:choose>
2220
2332
  <xsl:when test="$layoutVersion = '1972'"/>
2333
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"><!-- UDC, Keywords and Price renders on the first page for technical-report --></xsl:when>
2221
2334
  <xsl:when test="$layoutVersion = '2024'">
2222
2335
  <xsl:call-template name="insertLastPage_2024"/>
2223
2336
  </xsl:when>
@@ -2420,12 +2533,7 @@
2420
2533
  </xsl:if>
2421
2534
  <fo:block>
2422
2535
  <!-- <xsl:text>FAST TRACK PROCEDURE</xsl:text> -->
2423
- <xsl:variable name="fast_track_procedure_text">
2424
- <xsl:call-template name="getLocalizedString">
2425
- <xsl:with-param name="key">fast-track-procedure</xsl:with-param>
2426
- </xsl:call-template>
2427
- </xsl:variable>
2428
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($fast_track_procedure_text))"/>
2536
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($i18n_fast_track_procedure))"/>
2429
2537
  </fo:block>
2430
2538
  </fo:block-container>
2431
2539
  </fo:block>
@@ -2437,6 +2545,7 @@
2437
2545
  <xsl:template match="iso:preface/iso:clause[@type = 'toc']" priority="3">
2438
2546
  <xsl:choose>
2439
2547
  <xsl:when test="$doctype = 'amendment'"/><!-- ToC shouldn't be generated in amendments. -->
2548
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"/>
2440
2549
  <xsl:otherwise>
2441
2550
 
2442
2551
  <fo:block-container font-weight="bold">
@@ -2479,14 +2588,29 @@
2479
2588
  <xsl:if test="@level &gt;= 2 or @type = 'annex'">
2480
2589
  <xsl:attribute name="font-weight">normal</xsl:attribute>
2481
2590
  </xsl:if>
2482
- <xsl:attribute name="provisional-distance-between-starts">
2591
+ <xsl:variable name="provisional_distance_between_starts">
2483
2592
  <xsl:choose>
2484
2593
  <!-- skip 0 section without subsections -->
2485
- <xsl:when test="@level &gt;= 3"><xsl:value-of select="$margin-left * 1.2"/>mm</xsl:when>
2486
- <xsl:when test="@section != ''"><xsl:value-of select="$margin-left"/>mm</xsl:when>
2487
- <xsl:otherwise>0mm</xsl:otherwise>
2594
+ <xsl:when test="@level &gt;= 3"><xsl:value-of select="$margin-left * 1.2"/></xsl:when>
2595
+ <xsl:when test="@section != ''"><xsl:value-of select="$margin-left"/></xsl:when>
2596
+ <xsl:otherwise>0</xsl:otherwise>
2597
+ </xsl:choose>
2598
+ </xsl:variable>
2599
+ <xsl:variable name="section_length_str" select="string-length(normalize-space(@section))"/>
2600
+ <xsl:variable name="section_length_mm" select="$section_length_str * 2"/>
2601
+
2602
+ <!-- refine the distance depends on the section string length -->
2603
+ <xsl:attribute name="provisional-distance-between-starts">
2604
+ <xsl:choose>
2605
+ <xsl:when test="$section_length_mm &gt; $provisional_distance_between_starts">
2606
+ <xsl:value-of select="concat($section_length_mm, 'mm')"/>
2607
+ </xsl:when>
2608
+ <xsl:otherwise>
2609
+ <xsl:value-of select="concat($provisional_distance_between_starts, 'mm')"/>
2610
+ </xsl:otherwise>
2488
2611
  </xsl:choose>
2489
2612
  </xsl:attribute>
2613
+
2490
2614
  <fo:list-item role="SKIP">
2491
2615
  <fo:list-item-label end-indent="label-end()" role="SKIP">
2492
2616
  <fo:block role="SKIP">
@@ -2569,9 +2693,7 @@
2569
2693
  <xsl:attribute name="font-size">9.6pt</xsl:attribute>
2570
2694
  </xsl:if>
2571
2695
  <!-- Page -->
2572
- <xsl:call-template name="getLocalizedString">
2573
- <xsl:with-param name="key">locality.page</xsl:with-param>
2574
- </xsl:call-template>
2696
+ <xsl:value-of select="$i18n_locality_page"/>
2575
2697
  </fo:inline>
2576
2698
  </fo:inline>
2577
2699
  </fo:block>
@@ -2641,12 +2763,7 @@
2641
2763
  <xsl:variable name="part-word">
2642
2764
  <xsl:choose>
2643
2765
  <xsl:when test="$isMainLang = 'true'">
2644
- <xsl:call-template name="getLocalizedString">
2645
- <xsl:with-param name="key">locality.part</xsl:with-param>
2646
- </xsl:call-template>
2647
- <xsl:text> </xsl:text>
2648
- <xsl:value-of select="$part"/>
2649
- <xsl:text>:</xsl:text>
2766
+ <xsl:value-of select="concat($i18n_locality_part, ' ', $part, ':')"/>
2650
2767
  </xsl:when>
2651
2768
  <xsl:otherwise>
2652
2769
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$curr_lang]),'#',$part)"/>
@@ -2741,6 +2858,7 @@
2741
2858
  </xsl:template>
2742
2859
 
2743
2860
  <xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle1']" priority="4">
2861
+ <xsl:if test="not($layoutVersion = '1987' and $doctype = 'technical-report')">
2744
2862
  <fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1" role="H1">
2745
2863
  <xsl:if test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
2746
2864
  <xsl:attribute name="font-size">16pt</xsl:attribute>
@@ -2755,6 +2873,7 @@
2755
2873
  </xsl:if>
2756
2874
  <xsl:apply-templates/>
2757
2875
  </fo:block>
2876
+ </xsl:if>
2758
2877
  </xsl:template>
2759
2878
 
2760
2879
  <xsl:template match="iso:sections/iso:p[@class = 'zzSTDTitle1']/iso:span[@class = 'nonboldtitle']" priority="3">
@@ -2943,7 +3062,7 @@
2943
3062
  </xsl:when>
2944
3063
  <xsl:when test="$layoutVersion = '1972' or $layoutVersion = '1987'">
2945
3064
  <xsl:if test="@id = 'boilerplate-place'">
2946
- <fo:block margin-top="6pt"> </fo:block>
3065
+ <fo:block margin-top="6pt"><xsl:if test="$layoutVersion = '1987' and $doctype = 'technical-report'"><xsl:attribute name="margin-top">0</xsl:attribute></xsl:if> </fo:block>
2947
3066
  </xsl:if>
2948
3067
  <fo:block><xsl:apply-templates/></fo:block>
2949
3068
  </xsl:when>
@@ -3016,6 +3135,13 @@
3016
3135
 
3017
3136
  <xsl:variable name="font-size">
3018
3137
  <xsl:choose>
3138
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'">
3139
+ <xsl:choose>
3140
+ <xsl:when test="$level = 1">11pt</xsl:when>
3141
+ <xsl:when test="$level = 2">10pt</xsl:when>
3142
+ <xsl:when test="$level &gt;= 3">9pt</xsl:when>
3143
+ </xsl:choose>
3144
+ </xsl:when>
3019
3145
  <xsl:when test="$layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
3020
3146
  <xsl:choose>
3021
3147
  <xsl:when test="ancestor::iso:annex and $level = 2">12pt</xsl:when>
@@ -3061,6 +3187,7 @@
3061
3187
  </xsl:variable>
3062
3188
 
3063
3189
  <xsl:choose>
3190
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report' and parent::iso:foreword"><!-- skip Foreword title --></xsl:when>
3064
3191
  <xsl:when test="$doctype = 'amendment' and not(ancestor::iso:preface)">
3065
3192
  <fo:block font-size="11pt" font-style="italic" margin-bottom="12pt" keep-with-next="always" role="H{$level}">
3066
3193
  <xsl:if test="$layoutVersion = '2024'">
@@ -3072,6 +3199,13 @@
3072
3199
  </xsl:when>
3073
3200
 
3074
3201
  <xsl:otherwise>
3202
+
3203
+ <xsl:if test="$layoutVersion = '1987' and $doctype = 'technical-report' and parent::iso:introduction">
3204
+ <fo:block span="all" text-align="center" margin-top="15mm" keep-with-previous="always" role="SKIP">
3205
+ <fo:leader leader-pattern="rule" leader-length="12%"/>
3206
+ </fo:block>
3207
+ </xsl:if>
3208
+
3075
3209
  <xsl:element name="{$element-name}">
3076
3210
 
3077
3211
  <xsl:if test="$layoutVersion = '1951' or $layoutVersion = '1972' or $layoutVersion = '1987' or $layoutVersion = '1989'">
@@ -3090,6 +3224,7 @@
3090
3224
  <xsl:attribute name="{$attribute-name-before}"> <!-- space-before or margin-top -->
3091
3225
  <xsl:choose>
3092
3226
  <xsl:when test="ancestor::iso:introduction and $level &gt;= 2 and ../preceding-sibling::iso:clause">30pt</xsl:when>
3227
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report' and ancestor::iso:preface and $level = 1">10mm</xsl:when>
3093
3228
  <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>
3094
3229
  <xsl:when test="$layoutVersion = '1989' and ancestor::iso:preface and $level = 1">56pt</xsl:when>
3095
3230
  <xsl:when test="ancestor::iso:preface">8pt</xsl:when>
@@ -3113,6 +3248,9 @@
3113
3248
  </xsl:attribute>
3114
3249
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
3115
3250
  <xsl:attribute name="role">H<xsl:value-of select="$level"/></xsl:attribute>
3251
+ <xsl:if test="@type = 'floating-title' or @type = 'section-title'">
3252
+ <xsl:copy-of select="@id"/>
3253
+ </xsl:if>
3116
3254
  <xsl:if test="$element-name = 'fo:inline'">
3117
3255
  <xsl:choose>
3118
3256
  <xsl:when test="$lang = 'zh'">
@@ -3521,7 +3659,9 @@
3521
3659
  <xsl:call-template name="insertFooterEven">
3522
3660
  <xsl:with-param name="font-weight" select="$font-weight"/>
3523
3661
  </xsl:call-template>
3524
- <xsl:call-template name="insertHeaderFirst"/>
3662
+ <xsl:if test="not($layoutVersion = '1987' and $doctype = 'technical-report')">
3663
+ <xsl:call-template name="insertHeaderFirst"/>
3664
+ </xsl:if>
3525
3665
  <xsl:call-template name="insertHeaderOdd"/>
3526
3666
  <xsl:call-template name="insertFooterOdd">
3527
3667
  <xsl:with-param name="font-weight" select="$font-weight"/>
@@ -3785,14 +3925,9 @@
3785
3925
  </xsl:if>
3786
3926
  </xsl:template>
3787
3927
 
3788
- <xsl:variable name="price_based_on">
3789
- <xsl:call-template name="getLocalizedString">
3790
- <xsl:with-param name="key">price_based_on</xsl:with-param>
3791
- </xsl:call-template>
3792
- </xsl:variable>
3793
3928
  <xsl:variable name="price_based_on_items">
3794
3929
  <xsl:call-template name="split">
3795
- <xsl:with-param name="pText" select="$price_based_on"/>
3930
+ <xsl:with-param name="pText" select="$i18n_price_based_on"/>
3796
3931
  <xsl:with-param name="sep" select="'%'"/>
3797
3932
  <xsl:with-param name="normalize-space">false</xsl:with-param>
3798
3933
  </xsl:call-template>
@@ -3880,12 +4015,7 @@
3880
4015
  </fo:block>
3881
4016
  <xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
3882
4017
  <fo:block font-size="{$font-size_footer_copyright}" margin-bottom="6pt">
3883
- <xsl:variable name="title-descriptors">
3884
- <xsl:call-template name="getLocalizedString">
3885
- <xsl:with-param name="key">Descriptor.pl</xsl:with-param>
3886
- </xsl:call-template>
3887
- </xsl:variable>
3888
- <fo:inline font-weight="bold"><xsl:value-of select="$title-descriptors"/>: </fo:inline>
4018
+ <fo:inline font-weight="bold"><xsl:value-of select="$i18n_descriptors"/>: </fo:inline>
3889
4019
  <xsl:call-template name="insertKeywords">
3890
4020
  <xsl:with-param name="sorting">no</xsl:with-param>
3891
4021
  </xsl:call-template>
@@ -8660,7 +8790,8 @@
8660
8790
  </xsl:template>
8661
8791
 
8662
8792
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
8663
- <xsl:variable name="text" select="normalize-space(.)"/>
8793
+ <!-- <xsl:variable name="text" select="normalize-space(.)"/> --> <!-- https://github.com/metanorma/metanorma-iso/issues/1115 -->
8794
+ <xsl:variable name="text" select="."/>
8664
8795
  <fo:inline font-size="75%" role="SKIP">
8665
8796
  <xsl:if test="string-length($text) &gt; 0">
8666
8797
  <xsl:variable name="smallCapsText">
@@ -10877,16 +11008,44 @@
10877
11008
  </xsl:choose>
10878
11009
 
10879
11010
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
10880
- <xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
10881
- <xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
11011
+ <xsl:variable name="svg_width_" select="xalan:nodeset($svg_content)/*/@width"/>
11012
+ <xsl:variable name="svg_width" select="number(translate($svg_width_, 'px', ''))"/>
11013
+ <xsl:variable name="svg_height_" select="xalan:nodeset($svg_content)/*/@height"/>
11014
+ <xsl:variable name="svg_height" select="number(translate($svg_height_, 'px', ''))"/>
11015
+
11016
+ <!-- Example: -->
10882
11017
  <!-- effective height 297 - 27.4 - 13 = 256.6 -->
10883
11018
  <!-- effective width 210 - 12.5 - 25 = 172.5 -->
10884
11019
  <!-- effective height / width = 1.48, 1.4 - with title -->
10885
- <xsl:if test="$svg_height &gt; ($svg_width * 1.4)"> <!-- for images with big height -->
11020
+
11021
+ <xsl:variable name="scale_x">
11022
+ <xsl:choose>
11023
+ <xsl:when test="$svg_width &gt; $width_effective_px">
11024
+ <xsl:value-of select="$width_effective_px div $svg_width"/>
11025
+ </xsl:when>
11026
+ <xsl:otherwise>1</xsl:otherwise>
11027
+ </xsl:choose>
11028
+ </xsl:variable>
11029
+ <xsl:variable name="scale_y">
11030
+ <xsl:choose>
11031
+ <xsl:when test="$svg_height * $scale_x &gt; $height_effective_px">
11032
+ <xsl:value-of select="$height_effective_px div ($svg_height * $scale_x)"/>
11033
+ </xsl:when>
11034
+ <xsl:otherwise>1</xsl:otherwise>
11035
+ </xsl:choose>
11036
+ </xsl:variable>
11037
+
11038
+ <!-- for images with big height -->
11039
+ <!-- <xsl:if test="$svg_height &gt; ($svg_width * 1.4)">
10886
11040
  <xsl:variable name="width" select="(($svg_width * 1.4) div $svg_height) * 100"/>
10887
11041
  <xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
10888
- </xsl:if>
11042
+ </xsl:if> -->
10889
11043
  <xsl:attribute name="scaling">uniform</xsl:attribute>
11044
+
11045
+ <xsl:if test="$scale_y != 1">
11046
+ <xsl:attribute name="content-height"><xsl:value-of select="round($scale_x * $scale_y * 100)"/>%</xsl:attribute>
11047
+ </xsl:if>
11048
+
10890
11049
  <xsl:copy-of select="$svg_content"/>
10891
11050
  </fo:instream-foreign-object>
10892
11051
  <!-- </fo:block> -->
@@ -10924,8 +11083,12 @@
10924
11083
  <xsl:variable name="width" select="normalize-space($viewbox//item[3])"/>
10925
11084
  <xsl:variable name="height" select="normalize-space($viewbox//item[4])"/>
10926
11085
 
11086
+ <xsl:variable name="parent_image_width" select="normalize-space(ancestor::*[1][local-name() = 'image']/@width)"/>
11087
+ <xsl:variable name="parent_image_height" select="normalize-space(ancestor::*[1][local-name() = 'image']/@height)"/>
11088
+
10927
11089
  <xsl:attribute name="width">
10928
11090
  <xsl:choose>
11091
+ <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
10929
11092
  <xsl:when test="$width != ''">
10930
11093
  <xsl:value-of select="round($width)"/>
10931
11094
  </xsl:when>
@@ -10934,6 +11097,7 @@
10934
11097
  </xsl:attribute>
10935
11098
  <xsl:attribute name="height">
10936
11099
  <xsl:choose>
11100
+ <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
10937
11101
  <xsl:when test="$height != ''">
10938
11102
  <xsl:value-of select="round($height)"/>
10939
11103
  </xsl:when>
@@ -10945,6 +11109,28 @@
10945
11109
  </xsl:copy>
10946
11110
  </xsl:template>
10947
11111
 
11112
+ <xsl:template match="*[local-name() = 'svg']/@width" mode="svg_update">
11113
+ <!-- image[@width]/svg -->
11114
+ <xsl:variable name="parent_image_width" select="normalize-space(ancestor::*[2][local-name() = 'image']/@width)"/>
11115
+ <xsl:attribute name="width">
11116
+ <xsl:choose>
11117
+ <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
11118
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
11119
+ </xsl:choose>
11120
+ </xsl:attribute>
11121
+ </xsl:template>
11122
+
11123
+ <xsl:template match="*[local-name() = 'svg']/@height" mode="svg_update">
11124
+ <!-- image[@height]/svg -->
11125
+ <xsl:variable name="parent_image_height" select="normalize-space(ancestor::*[2][local-name() = 'image']/@height)"/>
11126
+ <xsl:attribute name="height">
11127
+ <xsl:choose>
11128
+ <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
11129
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
11130
+ </xsl:choose>
11131
+ </xsl:attribute>
11132
+ </xsl:template>
11133
+
10948
11134
  <!-- regex for 'display: inline-block;' -->
10949
11135
  <xsl:variable name="regex_svg_style_notsupported">display(\s|\h)*:(\s|\h)*inline-block(\s|\h)*;</xsl:variable>
10950
11136
  <xsl:template match="*[local-name() = 'svg']//*[local-name() = 'style']/text()" mode="svg_update">
@@ -13018,7 +13204,14 @@
13018
13204
  </xsl:template> <!-- sections_element_style -->
13019
13205
 
13020
13206
  <xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
13021
- <fo:block break-after="page"/>
13207
+
13208
+ <xsl:choose>
13209
+ <xsl:when test="$layoutVersion = '1987' and $doctype = 'technical-report'"/>
13210
+ <xsl:otherwise>
13211
+ <fo:block break-after="page"/>
13212
+ </xsl:otherwise>
13213
+ </xsl:choose>
13214
+
13022
13215
  <fo:block>
13023
13216
  <xsl:call-template name="setId"/>
13024
13217
  <xsl:apply-templates/>
@@ -13085,7 +13278,7 @@
13085
13278
  <xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
13086
13279
  <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
13087
13280
  </xsl:when>
13088
- <xsl:when test="not(//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
13281
+ <xsl:when test="not(/*[@id = $id_from]) and not(/*//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
13089
13282
  <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
13090
13283
  </xsl:when>
13091
13284
  </xsl:choose>