lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.5.9 vs lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.5.10
- old
+ new
@@ -1418,10 +1418,11 @@
<xsl:attribute name="margin-top">4pt</xsl:attribute>
</xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
+
</xsl:attribute-set><xsl:attribute-set name="quote-style">
@@ -2458,11 +2459,13 @@
<xsl:apply-templates/>
</fo:inline>
</xsl:template><xsl:template match="*[local-name()='dl']">
<fo:block-container>
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
+ </xsl:if>
<xsl:if test="parent::*[local-name() = 'note']">
<xsl:attribute name="margin-left">
<xsl:choose>
@@ -2473,10 +2476,11 @@
</xsl:if>
<fo:block-container>
<xsl:attribute name="margin-left">0mm</xsl:attribute>
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
<xsl:variable name="parent" select="local-name(..)"/>
<xsl:variable name="key_iso">
@@ -2656,16 +2660,36 @@
<!-- <fo:table-column column-width="15%"/>
<fo:table-column column-width="85%"/> -->
</xsl:otherwise>
</xsl:choose>
</xsl:template><xsl:template name="getMaxLength_dt">
- <xsl:for-each select="*[local-name()='dt']">
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
- <xsl:if test="position() = 1">
- <xsl:value-of select="string-length(normalize-space(.))"/>
- </xsl:if>
- </xsl:for-each>
+ <xsl:variable name="lengths">
+ <xsl:for-each select="*[local-name()='dt']">
+ <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
+ <xsl:variable name="attributes">
+ <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
+ <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
+ </xsl:variable>
+ <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="maxLength">
+ <!-- <xsl:for-each select="*[local-name()='dt']">
+ <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
+ <xsl:if test="position() = 1">
+ <xsl:value-of select="string-length(normalize-space(.))"/>
+ </xsl:if>
+ </xsl:for-each> -->
+ <xsl:for-each select="xalan:nodeset($lengths)/length">
+ <xsl:sort select="." data-type="number" order="descending"/>
+ <xsl:if test="position() = 1">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
+ <xsl:value-of select="$maxLength"/>
</xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
<xsl:param name="key_iso"/>
<!-- <tr>
<td>NOTE</td>
@@ -3480,10 +3504,12 @@
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
<fo:bookmark-title>
<xsl:variable name="bookmark-title_">
<xsl:call-template name="getLangVersion">
<xsl:with-param name="lang" select="@lang"/>
+ <xsl:with-param name="doctype" select="@doctype"/>
+ <xsl:with-param name="title" select="@title-part"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="normalize-space($bookmark-title_) != ''">
<xsl:value-of select="normalize-space($bookmark-title_)"/>
@@ -3497,17 +3523,38 @@
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</fo:bookmark-title>
<xsl:apply-templates select="contents/item" mode="bookmark"/>
+
+ <xsl:call-template name="insertFigureBookmarks">
+ <xsl:with-param name="contents" select="contents"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="insertTableBookmarks">
+ <xsl:with-param name="contents" select="contents"/>
+ <xsl:with-param name="lang" select="@lang"/>
+ </xsl:call-template>
+
</fo:bookmark>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="xalan:nodeset($contents)/doc">
+
<xsl:apply-templates select="contents/item" mode="bookmark"/>
+
+ <xsl:call-template name="insertFigureBookmarks">
+ <xsl:with-param name="contents" select="contents"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="insertTableBookmarks">
+ <xsl:with-param name="contents" select="contents"/>
+ <xsl:with-param name="lang" select="@lang"/>
+ </xsl:call-template>
+
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
@@ -3522,12 +3569,48 @@
</fo:bookmark-tree>
</xsl:if>
+ </xsl:template><xsl:template name="insertFigureBookmarks">
+ <xsl:param name="contents"/>
+ <xsl:if test="xalan:nodeset($contents)/figure">
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
+ <fo:bookmark-title>Figures</fo:bookmark-title>
+ <xsl:for-each select="xalan:nodeset($contents)/figure">
+ <fo:bookmark internal-destination="{@id}">
+ <fo:bookmark-title>
+ <xsl:value-of select="normalize-space(title)"/>
+ </fo:bookmark-title>
+ </fo:bookmark>
+ </xsl:for-each>
+ </fo:bookmark>
+ </xsl:if>
+ </xsl:template><xsl:template name="insertTableBookmarks">
+ <xsl:param name="contents"/>
+ <xsl:param name="lang"/>
+ <xsl:if test="xalan:nodeset($contents)/table">
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
+ <fo:bookmark-title>
+ <xsl:choose>
+ <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
+ <xsl:otherwise>Tables</xsl:otherwise>
+ </xsl:choose>
+ </fo:bookmark-title>
+ <xsl:for-each select="xalan:nodeset($contents)/table">
+ <fo:bookmark internal-destination="{@id}">
+ <fo:bookmark-title>
+ <xsl:value-of select="normalize-space(title)"/>
+ </fo:bookmark-title>
+ </fo:bookmark>
+ </xsl:for-each>
+ </fo:bookmark>
+ </xsl:if>
</xsl:template><xsl:template name="getLangVersion">
<xsl:param name="lang"/>
+ <xsl:param name="doctype" select="''"/>
+ <xsl:param name="title" select="''"/>
<xsl:choose>
<xsl:when test="$lang = 'en'">
</xsl:when>
@@ -4011,10 +4094,11 @@
</xsl:if>
<fo:block-container margin-left="0mm">
<fo:block xsl:use-attribute-sets="quote-style">
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
+ <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
+ <xsl:apply-templates select="./*[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
</fo:block>
<xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
<fo:block xsl:use-attribute-sets="quote-source-style">
<!-- — ISO, ISO 7301:2011, Clause 1 -->
<xsl:apply-templates select="*[local-name() = 'author']"/>
\ No newline at end of file