lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.6.7 vs lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.6.8
- old
+ new
@@ -1333,11 +1333,13 @@
- </xsl:attribute-set><xsl:attribute-set name="table-name-style">
+ </xsl:attribute-set><xsl:variable name="table-border_">
+
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
<xsl:attribute name="keep-with-next">always</xsl:attribute>
@@ -1634,10 +1636,12 @@
<!-- <xsl:if test="$namespace = 'bipm'">
<fo:block> </fo:block>
</xsl:if> -->
+
+ <!-- Display table's name before table as standalone block -->
<!-- $namespace = 'iso' or -->
<xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -1714,10 +1718,16 @@
+
+
+
+ <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
+
+
<xsl:variable name="table_width">
<!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
@@ -1737,10 +1747,11 @@
+
<xsl:if test="ancestor::*[local-name()='sections']">
<attribute name="border-top">1.5pt solid black</attribute>
<attribute name="border-bottom">1.5pt solid black</attribute>
@@ -2162,10 +2173,12 @@
<xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
+
+
<xsl:choose>
<xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
<xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
<fo:table-column column-width="{@width}"/>
</xsl:for-each>
@@ -2198,10 +2211,11 @@
+
<!-- for BSI (not PAS) display Notes before footnotes -->
<!-- except gb -->
@@ -2283,10 +2297,12 @@
+
+
</xsl:if>
<xsl:if test="$parent-name = 'tfoot'">
@@ -2297,10 +2313,12 @@
+
+
<!-- <xsl:if test="$namespace = 'bipm'">
<xsl:attribute name="height">8mm</xsl:attribute>
</xsl:if> -->
<xsl:apply-templates/>
@@ -3853,11 +3871,28 @@
<xsl:apply-templates select="." mode="cross_image"/>
</fo:instream-foreign-object>
</xsl:when>
<xsl:otherwise>
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
+ <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
+
+ <xsl:variable name="img_src">
+ <xsl:choose>
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $width_effective, $height_effective)"/>
+ <xsl:if test="number($scale) < 100">
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
+ </xsl:if>
+
+ </xsl:if>
+
+ </fo:external-graphic>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</xsl:otherwise>
@@ -4024,15 +4059,17 @@
<fo:block xsl:use-attribute-sets="image-style">
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
<xsl:attribute name="width">100%</xsl:attribute>
<xsl:attribute name="content-height">100%</xsl:attribute>
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
+ <xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
+ <xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
<!-- effective height 297 - 27.4 - 13 = 256.6 -->
<!-- effective width 210 - 12.5 - 25 = 172.5 -->
<!-- effective height / width = 1.48, 1.4 - with title -->
- <xsl:if test="@height > (@width * 1.4)"> <!-- for images with big height -->
- <xsl:variable name="width" select="((@width * 1.4) div @height) * 100"/>
+ <xsl:if test="$svg_height > ($svg_width * 1.4)"> <!-- for images with big height -->
+ <xsl:variable name="width" select="(($svg_width * 1.4) div $svg_height) * 100"/>
<xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
</xsl:if>
<xsl:attribute name="scaling">uniform</xsl:attribute>
<xsl:copy-of select="$svg_content"/>
</fo:instream-foreign-object>
@@ -4045,10 +4082,27 @@
</xsl:copy>
</xsl:template><xsl:template match="*[local-name() = 'image']/@href" mode="svg_update">
<xsl:attribute name="href" namespace="http://www.w3.org/1999/xlink">
<xsl:value-of select="."/>
</xsl:attribute>
+ </xsl:template><xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
+ <xsl:copy>
+ <xsl:apply-templates select="@*" mode="svg_update"/>
+ <xsl:variable name="viewbox">
+ <xsl:call-template name="split">
+ <xsl:with-param name="pText" select="@viewBox"/>
+ <xsl:with-param name="sep" select="' '"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="width">
+ <xsl:value-of select="round(xalan:nodeset($viewbox)//item[3])"/>
+ </xsl:attribute>
+ <xsl:attribute name="height">
+ <xsl:value-of select="round(xalan:nodeset($viewbox)//item[4])"/>
+ </xsl:attribute>
+ <xsl:apply-templates mode="svg_update"/>
+ </xsl:copy>
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
<xsl:variable name="svg_content" select="document(@src)"/>
<xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
<xsl:call-template name="image_svg">
@@ -5735,34 +5789,54 @@
<xsl:with-param name="char" select="$char"/>
<xsl:with-param name="count" select="$count - 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template><xsl:template name="getLocalizedString">
- <xsl:param name="key"/>
+ <xsl:param name="key"/>
+ <xsl:param name="formatted">false</xsl:param>
<xsl:variable name="curr_lang">
<xsl:call-template name="getLang"/>
</xsl:variable>
- <xsl:variable name="data_value" select="normalize-space(xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang])"/>
+ <xsl:variable name="data_value">
+ <xsl:choose>
+ <xsl:when test="$formatted = 'true'">
+ <xsl:apply-templates select="xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space(xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang])"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
<xsl:choose>
- <xsl:when test="$data_value != ''">
- <xsl:value-of select="$data_value"/>
+ <xsl:when test="normalize-space($data_value) != ''">
+ <xsl:choose>
+ <xsl:when test="$formatted = 'true'"><xsl:copy-of select="$data_value"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$data_value"/></xsl:otherwise>
+ </xsl:choose>
</xsl:when>
<xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
- <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
+ <xsl:choose>
+ <xsl:when test="$formatted = 'true'">
+ <xsl:apply-templates select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="key_">
<xsl:call-template name="capitalize">
<xsl:with-param name="str" select="translate($key, '_', ' ')"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$key_"/>
</xsl:otherwise>
</xsl:choose>
-
+
</xsl:template><xsl:template name="setTrackChangesStyles">
<xsl:param name="isAdded"/>
<xsl:param name="isDeleted"/>
<xsl:choose>
<xsl:when test="local-name() = 'math'">
\ No newline at end of file