metanorma-ogc 2.3.14 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49d48dcb669ad25c0c130f4ef75fc39afed2c9982eb93474d7765bda627ea7f0
4
- data.tar.gz: 5fef51b685daa9d1ccbead3b3699d51dae50c0bee4ac2d620f9efebf6ad9f084
3
+ metadata.gz: df6f6cbb5bc0bc2323c2ca580974c1b8088c17cd1b8e54ce952ad349990518d1
4
+ data.tar.gz: c33fb7fe87342becdb7d44ecd64422d5b911230622f0f571b1318d802b89ead2
5
5
  SHA512:
6
- metadata.gz: f39f3a19fe8f189591774f29b76ca050810ef9826a19a42e636bda5eebf729d1c070f7a040f8ae09d0384c58d059161567a7e38d1fc10edc9eee3043f09837bb
7
- data.tar.gz: 5f22ab9c29f36ec4748f08ed5ef8cb83275078072dbc1d03144526337b4300302b4729c3bde5d11844fdb36b0cb6809102c22c6f042dbe32ebd3b97f6116450c
6
+ metadata.gz: 2c8ce9e3fd6cdf2a2f8f349c5991bde3d6809d73cba6b515a20f99dde628d041012602697bad104f21b9578622e18b5acfe6d7b172ae80b08546396f5fdfb527
7
+ data.tar.gz: 70e85764d9f88e93075742ca70b5d2c4bfed91b12c5ccf201421f1760235f684732f70f73073e7795dca982f9ec39ef7e14bc8648afb8e9ed6bd7e411e06aa6a
@@ -65,7 +65,8 @@ module IsoDoc
65
65
 
66
66
  def middle_clause(_docxml)
67
67
  "//clause[parent::sections][not(@type = 'scope' or " \
68
- "@type = 'conformance')][not(descendant::terms)]"
68
+ "@type = 'conformance')][not(descendant::terms)]" \
69
+ "[not(descendant::references)]"
69
70
  end
70
71
 
71
72
  def is_clause?(name)
@@ -74,19 +75,6 @@ module IsoDoc
74
75
  super
75
76
  end
76
77
 
77
- def middle(isoxml, out)
78
- middle_title(isoxml, out)
79
- middle_admonitions(isoxml, out)
80
- i = scope isoxml, out, 0
81
- i = conformance isoxml, out, i
82
- i = norm_ref isoxml, out, i
83
- i = terms_defs isoxml, out, i
84
- i = symbols_abbrevs isoxml, out, i
85
- clause isoxml, out
86
- annex isoxml, out
87
- bibliography isoxml, out
88
- end
89
-
90
78
  def table_attrs(node)
91
79
  ret = super
92
80
  %w(recommendation requirement permission).include?(node["class"]) and
@@ -108,10 +96,13 @@ module IsoDoc
108
96
  end
109
97
 
110
98
  def para_class(node)
111
- return node["class"] if node["class"] &&
112
- node["class"] != "RecommendationLabel"
113
-
114
- super
99
+ if node["class"] == "RecommendationLabel"
100
+ node["class"] = nil
101
+ ret = super
102
+ node["class"] = "RecommendationLabel"
103
+ ret
104
+ else super
105
+ end
115
106
  end
116
107
 
117
108
  def ol_depth(node)
@@ -6,9 +6,6 @@ require_relative "metadata"
6
6
 
7
7
  module IsoDoc
8
8
  module Ogc
9
- # A {Converter} implementation that generates HTML output, and a document
10
- # schema encapsulation of the document for validation
11
- #
12
9
  class HtmlConvert < IsoDoc::HtmlConvert
13
10
  def initialize(options)
14
11
  @libdir = File.dirname(__FILE__)
@@ -61,14 +58,8 @@ module IsoDoc
61
58
  end
62
59
 
63
60
  def make_body3(body, docxml)
64
- body.div class: "main-section" do |div3|
65
- @prefacenum = 0
66
- boilerplate docxml, div3
67
- front docxml, div3
68
- middle docxml, div3
69
- footnotes div3
70
- comments div3
71
- end
61
+ @prefacenum = 0
62
+ super
72
63
  end
73
64
 
74
65
  def authority_cleanup(docxml)
@@ -1184,7 +1184,7 @@
1184
1184
  </xsl:if>
1185
1185
  </xsl:template>
1186
1186
 
1187
- <xsl:template match="*[local-name()='th']//text()" priority="2">
1187
+ <xsl:template match="*[local-name()='th']//text()[not(ancestor::ogc:fn)]" priority="2">
1188
1188
  <xsl:variable name="text">
1189
1189
  <xsl:call-template name="add-zero-spaces-java"/>
1190
1190
  </xsl:variable>
@@ -1822,11 +1822,26 @@
1822
1822
  <xsl:value-of select="$font_extended"/><xsl:text>, </xsl:text>
1823
1823
  </xsl:if>
1824
1824
 
1825
- <xsl:value-of select="."/>
1825
+ <xsl:variable name="font_family" select="."/>
1826
1826
 
1827
- <xsl:if test="$additional_fonts != ''">
1828
- <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1829
- </xsl:if>
1827
+ <xsl:choose>
1828
+ <xsl:when test="$additional_fonts = ''">
1829
+ <xsl:value-of select="$font_family"/>
1830
+ </xsl:when>
1831
+ <xsl:otherwise> <!-- $additional_fonts != '' -->
1832
+ <xsl:choose>
1833
+ <xsl:when test="contains($font_family, ',')">
1834
+ <xsl:value-of select="substring-before($font_family, ',')"/>
1835
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1836
+ <xsl:text>, </xsl:text><xsl:value-of select="substring-after($font_family, ',')"/>
1837
+ </xsl:when>
1838
+ <xsl:otherwise>
1839
+ <xsl:value-of select="$font_family"/>
1840
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1841
+ </xsl:otherwise>
1842
+ </xsl:choose>
1843
+ </xsl:otherwise>
1844
+ </xsl:choose>
1830
1845
  </xsl:attribute>
1831
1846
  </xsl:when>
1832
1847
  <xsl:otherwise>
@@ -4480,21 +4495,21 @@
4480
4495
 
4481
4496
  <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name() = 'example']" priority="2">
4482
4497
 
4483
- <fo:block xsl:use-attribute-sets="table-note-style">
4498
+ <fo:block xsl:use-attribute-sets="table-note-style">
4484
4499
 
4485
- <xsl:call-template name="refine_table-note-style"/>
4500
+ <xsl:call-template name="refine_table-note-style"/>
4486
4501
 
4487
- <!-- Table's note/example name (NOTE, for example) -->
4488
- <fo:inline xsl:use-attribute-sets="table-note-name-style">
4502
+ <!-- Table's note/example name (NOTE, for example) -->
4503
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
4489
4504
 
4490
- <xsl:call-template name="refine_table-note-name-style"/>
4505
+ <xsl:call-template name="refine_table-note-name-style"/>
4491
4506
 
4492
- <xsl:apply-templates select="*[local-name() = 'name']"/>
4507
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4493
4508
 
4494
- </fo:inline>
4509
+ </fo:inline>
4495
4510
 
4496
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4497
- </fo:block>
4511
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4512
+ </fo:block>
4498
4513
 
4499
4514
  </xsl:template> <!-- table/note -->
4500
4515
 
@@ -5577,6 +5592,9 @@
5577
5592
  <!-- END Definition List -->
5578
5593
  <!-- ===================== -->
5579
5594
 
5595
+ <!-- default: ignore title in sections/p -->
5596
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]" priority="3"/>
5597
+
5580
5598
  <!-- ========================= -->
5581
5599
  <!-- Rich text formatting -->
5582
5600
  <!-- ========================= -->
@@ -7634,8 +7652,12 @@
7634
7652
  <xsl:variable name="isAdded" select="../@added"/>
7635
7653
  <xsl:variable name="isDeleted" select="../@deleted"/>
7636
7654
  <xsl:choose>
7637
- <xsl:when test="ancestor::*[local-name() = 'title']">
7655
+ <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7638
7656
  <fo:inline padding-left="1mm" padding-right="1mm">
7657
+ <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7658
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
7659
+ <xsl:attribute name="padding-right">0mm</xsl:attribute>
7660
+ </xsl:if>
7639
7661
  <xsl:variable name="src">
7640
7662
  <xsl:call-template name="image_src"/>
7641
7663
  </xsl:variable>
@@ -7668,25 +7690,45 @@
7668
7690
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7669
7691
  <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7670
7692
 
7671
- <xsl:variable name="img_src">
7672
- <xsl:choose>
7673
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7674
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7675
- </xsl:choose>
7676
- </xsl:variable>
7693
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7694
+ <xsl:attribute name="width">
7695
+ <xsl:value-of select="@width"/>
7696
+ </xsl:attribute>
7697
+ </xsl:if>
7677
7698
 
7678
- <xsl:variable name="image_width_effective">
7699
+ <xsl:if test="@height != '' and @height != 'auto'">
7700
+ <xsl:attribute name="height">
7701
+ <xsl:value-of select="@height"/>
7702
+ </xsl:attribute>
7703
+ </xsl:if>
7679
7704
 
7680
- <xsl:value-of select="$width_effective"/>
7705
+ <xsl:choose>
7706
+ <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
7707
+ <xsl:attribute name="scaling">non-uniform</xsl:attribute>
7708
+ </xsl:when>
7709
+ <xsl:otherwise>
7681
7710
 
7682
- </xsl:variable>
7711
+ <xsl:variable name="img_src">
7712
+ <xsl:choose>
7713
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7714
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7715
+ </xsl:choose>
7716
+ </xsl:variable>
7683
7717
 
7684
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7685
- <xsl:if test="number($scale) &lt; 100">
7718
+ <xsl:variable name="image_width_effective">
7686
7719
 
7687
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7720
+ <xsl:value-of select="$width_effective"/>
7688
7721
 
7689
- </xsl:if>
7722
+ </xsl:variable>
7723
+
7724
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7725
+ <xsl:if test="number($scale) &lt; 100">
7726
+
7727
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7728
+
7729
+ </xsl:if>
7730
+ </xsl:otherwise>
7731
+ </xsl:choose>
7690
7732
 
7691
7733
  </xsl:if>
7692
7734
 
@@ -11387,7 +11429,7 @@
11387
11429
  <xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
11388
11430
  <xsl:apply-templates mode="update_xml_step1"/>
11389
11431
  </xsl:template>
11390
- <xsl:template match="*[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11432
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]/*[local-name() = 'span'][@class] | *[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11391
11433
  <xsl:copy>
11392
11434
  <xsl:copy-of select="@*"/>
11393
11435
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -1184,7 +1184,7 @@
1184
1184
  </xsl:if>
1185
1185
  </xsl:template>
1186
1186
 
1187
- <xsl:template match="*[local-name()='th']//text()" priority="2">
1187
+ <xsl:template match="*[local-name()='th']//text()[not(ancestor::ogc:fn)]" priority="2">
1188
1188
  <xsl:variable name="text">
1189
1189
  <xsl:call-template name="add-zero-spaces-java"/>
1190
1190
  </xsl:variable>
@@ -1822,11 +1822,26 @@
1822
1822
  <xsl:value-of select="$font_extended"/><xsl:text>, </xsl:text>
1823
1823
  </xsl:if>
1824
1824
 
1825
- <xsl:value-of select="."/>
1825
+ <xsl:variable name="font_family" select="."/>
1826
1826
 
1827
- <xsl:if test="$additional_fonts != ''">
1828
- <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1829
- </xsl:if>
1827
+ <xsl:choose>
1828
+ <xsl:when test="$additional_fonts = ''">
1829
+ <xsl:value-of select="$font_family"/>
1830
+ </xsl:when>
1831
+ <xsl:otherwise> <!-- $additional_fonts != '' -->
1832
+ <xsl:choose>
1833
+ <xsl:when test="contains($font_family, ',')">
1834
+ <xsl:value-of select="substring-before($font_family, ',')"/>
1835
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1836
+ <xsl:text>, </xsl:text><xsl:value-of select="substring-after($font_family, ',')"/>
1837
+ </xsl:when>
1838
+ <xsl:otherwise>
1839
+ <xsl:value-of select="$font_family"/>
1840
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1841
+ </xsl:otherwise>
1842
+ </xsl:choose>
1843
+ </xsl:otherwise>
1844
+ </xsl:choose>
1830
1845
  </xsl:attribute>
1831
1846
  </xsl:when>
1832
1847
  <xsl:otherwise>
@@ -4480,21 +4495,21 @@
4480
4495
 
4481
4496
  <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name() = 'example']" priority="2">
4482
4497
 
4483
- <fo:block xsl:use-attribute-sets="table-note-style">
4498
+ <fo:block xsl:use-attribute-sets="table-note-style">
4484
4499
 
4485
- <xsl:call-template name="refine_table-note-style"/>
4500
+ <xsl:call-template name="refine_table-note-style"/>
4486
4501
 
4487
- <!-- Table's note/example name (NOTE, for example) -->
4488
- <fo:inline xsl:use-attribute-sets="table-note-name-style">
4502
+ <!-- Table's note/example name (NOTE, for example) -->
4503
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
4489
4504
 
4490
- <xsl:call-template name="refine_table-note-name-style"/>
4505
+ <xsl:call-template name="refine_table-note-name-style"/>
4491
4506
 
4492
- <xsl:apply-templates select="*[local-name() = 'name']"/>
4507
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4493
4508
 
4494
- </fo:inline>
4509
+ </fo:inline>
4495
4510
 
4496
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4497
- </fo:block>
4511
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4512
+ </fo:block>
4498
4513
 
4499
4514
  </xsl:template> <!-- table/note -->
4500
4515
 
@@ -5577,6 +5592,9 @@
5577
5592
  <!-- END Definition List -->
5578
5593
  <!-- ===================== -->
5579
5594
 
5595
+ <!-- default: ignore title in sections/p -->
5596
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]" priority="3"/>
5597
+
5580
5598
  <!-- ========================= -->
5581
5599
  <!-- Rich text formatting -->
5582
5600
  <!-- ========================= -->
@@ -7634,8 +7652,12 @@
7634
7652
  <xsl:variable name="isAdded" select="../@added"/>
7635
7653
  <xsl:variable name="isDeleted" select="../@deleted"/>
7636
7654
  <xsl:choose>
7637
- <xsl:when test="ancestor::*[local-name() = 'title']">
7655
+ <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7638
7656
  <fo:inline padding-left="1mm" padding-right="1mm">
7657
+ <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7658
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
7659
+ <xsl:attribute name="padding-right">0mm</xsl:attribute>
7660
+ </xsl:if>
7639
7661
  <xsl:variable name="src">
7640
7662
  <xsl:call-template name="image_src"/>
7641
7663
  </xsl:variable>
@@ -7668,25 +7690,45 @@
7668
7690
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7669
7691
  <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7670
7692
 
7671
- <xsl:variable name="img_src">
7672
- <xsl:choose>
7673
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7674
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7675
- </xsl:choose>
7676
- </xsl:variable>
7693
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7694
+ <xsl:attribute name="width">
7695
+ <xsl:value-of select="@width"/>
7696
+ </xsl:attribute>
7697
+ </xsl:if>
7677
7698
 
7678
- <xsl:variable name="image_width_effective">
7699
+ <xsl:if test="@height != '' and @height != 'auto'">
7700
+ <xsl:attribute name="height">
7701
+ <xsl:value-of select="@height"/>
7702
+ </xsl:attribute>
7703
+ </xsl:if>
7679
7704
 
7680
- <xsl:value-of select="$width_effective"/>
7705
+ <xsl:choose>
7706
+ <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
7707
+ <xsl:attribute name="scaling">non-uniform</xsl:attribute>
7708
+ </xsl:when>
7709
+ <xsl:otherwise>
7681
7710
 
7682
- </xsl:variable>
7711
+ <xsl:variable name="img_src">
7712
+ <xsl:choose>
7713
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7714
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7715
+ </xsl:choose>
7716
+ </xsl:variable>
7683
7717
 
7684
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7685
- <xsl:if test="number($scale) &lt; 100">
7718
+ <xsl:variable name="image_width_effective">
7686
7719
 
7687
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7720
+ <xsl:value-of select="$width_effective"/>
7688
7721
 
7689
- </xsl:if>
7722
+ </xsl:variable>
7723
+
7724
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7725
+ <xsl:if test="number($scale) &lt; 100">
7726
+
7727
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7728
+
7729
+ </xsl:if>
7730
+ </xsl:otherwise>
7731
+ </xsl:choose>
7690
7732
 
7691
7733
  </xsl:if>
7692
7734
 
@@ -11387,7 +11429,7 @@
11387
11429
  <xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
11388
11430
  <xsl:apply-templates mode="update_xml_step1"/>
11389
11431
  </xsl:template>
11390
- <xsl:template match="*[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11432
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]/*[local-name() = 'span'][@class] | *[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11391
11433
  <xsl:copy>
11392
11434
  <xsl:copy-of select="@*"/>
11393
11435
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -1184,7 +1184,7 @@
1184
1184
  </xsl:if>
1185
1185
  </xsl:template>
1186
1186
 
1187
- <xsl:template match="*[local-name()='th']//text()" priority="2">
1187
+ <xsl:template match="*[local-name()='th']//text()[not(ancestor::ogc:fn)]" priority="2">
1188
1188
  <xsl:variable name="text">
1189
1189
  <xsl:call-template name="add-zero-spaces-java"/>
1190
1190
  </xsl:variable>
@@ -1822,11 +1822,26 @@
1822
1822
  <xsl:value-of select="$font_extended"/><xsl:text>, </xsl:text>
1823
1823
  </xsl:if>
1824
1824
 
1825
- <xsl:value-of select="."/>
1825
+ <xsl:variable name="font_family" select="."/>
1826
1826
 
1827
- <xsl:if test="$additional_fonts != ''">
1828
- <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1829
- </xsl:if>
1827
+ <xsl:choose>
1828
+ <xsl:when test="$additional_fonts = ''">
1829
+ <xsl:value-of select="$font_family"/>
1830
+ </xsl:when>
1831
+ <xsl:otherwise> <!-- $additional_fonts != '' -->
1832
+ <xsl:choose>
1833
+ <xsl:when test="contains($font_family, ',')">
1834
+ <xsl:value-of select="substring-before($font_family, ',')"/>
1835
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1836
+ <xsl:text>, </xsl:text><xsl:value-of select="substring-after($font_family, ',')"/>
1837
+ </xsl:when>
1838
+ <xsl:otherwise>
1839
+ <xsl:value-of select="$font_family"/>
1840
+ <xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
1841
+ </xsl:otherwise>
1842
+ </xsl:choose>
1843
+ </xsl:otherwise>
1844
+ </xsl:choose>
1830
1845
  </xsl:attribute>
1831
1846
  </xsl:when>
1832
1847
  <xsl:otherwise>
@@ -4480,21 +4495,21 @@
4480
4495
 
4481
4496
  <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name() = 'example']" priority="2">
4482
4497
 
4483
- <fo:block xsl:use-attribute-sets="table-note-style">
4498
+ <fo:block xsl:use-attribute-sets="table-note-style">
4484
4499
 
4485
- <xsl:call-template name="refine_table-note-style"/>
4500
+ <xsl:call-template name="refine_table-note-style"/>
4486
4501
 
4487
- <!-- Table's note/example name (NOTE, for example) -->
4488
- <fo:inline xsl:use-attribute-sets="table-note-name-style">
4502
+ <!-- Table's note/example name (NOTE, for example) -->
4503
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
4489
4504
 
4490
- <xsl:call-template name="refine_table-note-name-style"/>
4505
+ <xsl:call-template name="refine_table-note-name-style"/>
4491
4506
 
4492
- <xsl:apply-templates select="*[local-name() = 'name']"/>
4507
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4493
4508
 
4494
- </fo:inline>
4509
+ </fo:inline>
4495
4510
 
4496
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4497
- </fo:block>
4511
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4512
+ </fo:block>
4498
4513
 
4499
4514
  </xsl:template> <!-- table/note -->
4500
4515
 
@@ -5577,6 +5592,9 @@
5577
5592
  <!-- END Definition List -->
5578
5593
  <!-- ===================== -->
5579
5594
 
5595
+ <!-- default: ignore title in sections/p -->
5596
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]" priority="3"/>
5597
+
5580
5598
  <!-- ========================= -->
5581
5599
  <!-- Rich text formatting -->
5582
5600
  <!-- ========================= -->
@@ -7634,8 +7652,12 @@
7634
7652
  <xsl:variable name="isAdded" select="../@added"/>
7635
7653
  <xsl:variable name="isDeleted" select="../@deleted"/>
7636
7654
  <xsl:choose>
7637
- <xsl:when test="ancestor::*[local-name() = 'title']">
7655
+ <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7638
7656
  <fo:inline padding-left="1mm" padding-right="1mm">
7657
+ <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7658
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
7659
+ <xsl:attribute name="padding-right">0mm</xsl:attribute>
7660
+ </xsl:if>
7639
7661
  <xsl:variable name="src">
7640
7662
  <xsl:call-template name="image_src"/>
7641
7663
  </xsl:variable>
@@ -7668,25 +7690,45 @@
7668
7690
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7669
7691
  <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7670
7692
 
7671
- <xsl:variable name="img_src">
7672
- <xsl:choose>
7673
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7674
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7675
- </xsl:choose>
7676
- </xsl:variable>
7693
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7694
+ <xsl:attribute name="width">
7695
+ <xsl:value-of select="@width"/>
7696
+ </xsl:attribute>
7697
+ </xsl:if>
7677
7698
 
7678
- <xsl:variable name="image_width_effective">
7699
+ <xsl:if test="@height != '' and @height != 'auto'">
7700
+ <xsl:attribute name="height">
7701
+ <xsl:value-of select="@height"/>
7702
+ </xsl:attribute>
7703
+ </xsl:if>
7679
7704
 
7680
- <xsl:value-of select="$width_effective"/>
7705
+ <xsl:choose>
7706
+ <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
7707
+ <xsl:attribute name="scaling">non-uniform</xsl:attribute>
7708
+ </xsl:when>
7709
+ <xsl:otherwise>
7681
7710
 
7682
- </xsl:variable>
7711
+ <xsl:variable name="img_src">
7712
+ <xsl:choose>
7713
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7714
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7715
+ </xsl:choose>
7716
+ </xsl:variable>
7683
7717
 
7684
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7685
- <xsl:if test="number($scale) &lt; 100">
7718
+ <xsl:variable name="image_width_effective">
7686
7719
 
7687
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7720
+ <xsl:value-of select="$width_effective"/>
7688
7721
 
7689
- </xsl:if>
7722
+ </xsl:variable>
7723
+
7724
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7725
+ <xsl:if test="number($scale) &lt; 100">
7726
+
7727
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7728
+
7729
+ </xsl:if>
7730
+ </xsl:otherwise>
7731
+ </xsl:choose>
7690
7732
 
7691
7733
  </xsl:if>
7692
7734
 
@@ -11387,7 +11429,7 @@
11387
11429
  <xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
11388
11430
  <xsl:apply-templates mode="update_xml_step1"/>
11389
11431
  </xsl:template>
11390
- <xsl:template match="*[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11432
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]/*[local-name() = 'span'][@class] | *[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11391
11433
  <xsl:copy>
11392
11434
  <xsl:copy-of select="@*"/>
11393
11435
  <xsl:apply-templates mode="update_xml_step1"/>