metanorma-ogc 2.3.14 → 2.4.1

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