lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.5.0 vs lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.5.1

- old
+ new

@@ -15,10 +15,11 @@ <xsl:variable name="contents"> <contents> <xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/> <xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/> + <xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/> </contents> </xsl:variable> <xsl:variable name="lang"> <xsl:call-template name="getLang"/> @@ -172,12 +173,12 @@ </fo:block-container> </fo:static-content> <xsl:call-template name="insertHeaderPreface"/> <xsl:call-template name="insertFooter"/> <fo:flow flow-name="xsl-region-body" text-align="justify"> - <fo:block> - <xsl:apply-templates select="/un:un-standard/un:preface/*"/> + <fo:block> + <xsl:call-template name="processPrefaceSectionsDefault"/> </fo:block> </fo:flow> </fo:page-sequence> <fo:page-sequence master-reference="document-preface-master" force-page-count="even" line-height="115%"> @@ -292,10 +293,11 @@ </xsl:if> <fo:block> <xsl:apply-templates select="/un:un-standard/un:sections/*"/> <xsl:apply-templates select="/un:un-standard/un:annex"/> + <xsl:apply-templates select="/un:un-standard/un:bibliography/un:references"/> </fo:block> <fo:block-container margin-left="50mm" width="30mm" border-bottom="1pt solid black"> <fo:block> </fo:block> @@ -1190,10 +1192,11 @@ </xsl:attribute-set><xsl:attribute-set name="example-body-style"> + </xsl:attribute-set><xsl:attribute-set name="example-name-style"> @@ -1209,12 +1212,14 @@ <xsl:attribute name="font-size">10pt</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="margin-bottom">12pt</xsl:attribute> <xsl:attribute name="keep-with-next">always</xsl:attribute> + + </xsl:attribute-set><xsl:attribute-set name="example-p-style"> @@ -1228,10 +1233,12 @@ <xsl:attribute name="margin-top">12pt</xsl:attribute> <xsl:attribute name="margin-bottom">12pt</xsl:attribute> <xsl:attribute name="margin-left">15mm</xsl:attribute> + + </xsl:attribute-set><xsl:attribute-set name="termexample-name-style"> @@ -1252,10 +1259,11 @@ <xsl:attribute name="margin-top">12pt</xsl:attribute> <xsl:attribute name="margin-bottom">0pt</xsl:attribute> <xsl:attribute name="keep-with-next">always</xsl:attribute> <xsl:attribute name="text-indent">0mm</xsl:attribute> + </xsl:attribute-set><xsl:attribute-set name="appendix-style"> </xsl:attribute-set><xsl:attribute-set name="appendix-example-style"> @@ -1371,11 +1379,11 @@ <xsl:attribute name="font-size">9pt</xsl:attribute> <xsl:attribute name="margin-bottom">6pt</xsl:attribute> <xsl:attribute name="keep-with-next">always</xsl:attribute> <xsl:attribute name="keep-together.within-column">always</xsl:attribute> - + </xsl:attribute-set><xsl:attribute-set name="formula-style"> </xsl:attribute-set><xsl:attribute-set name="image-style"> <xsl:attribute name="text-align">center</xsl:attribute> @@ -1414,11 +1422,47 @@ </xsl:attribute-set><xsl:attribute-set name="deprecates-style"> </xsl:attribute-set><xsl:attribute-set name="definition-style"> - </xsl:attribute-set><xsl:template match="text()"> + </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents"> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/> + </xsl:template><xsl:template name="processMainSectionsDefault_Contents"> + <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/> + + <!-- Normative references --> + <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/> + <!-- Terms and definitions --> + <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/> + <!-- Another main sections --> + <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/> + <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/> + <!-- Bibliography --> + <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/> + </xsl:template><xsl:template name="processPrefaceSectionsDefault"> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/> + <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/> + </xsl:template><xsl:template name="processMainSectionsDefault"> + <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/> + + <!-- Normative references --> + <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/> + <!-- Terms and definitions --> + <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/> + <!-- Another main sections --> + <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/> + <xsl:apply-templates select="/*/*[local-name()='annex']"/> + <!-- Bibliography --> + <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/> + </xsl:template><xsl:template match="text()"> <xsl:value-of select="."/> </xsl:template><xsl:template match="*[local-name()='br']"> <xsl:value-of select="$linebreak"/> </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1"> <!-- <xsl:call-template name="add-zero-spaces"/> --> @@ -1495,10 +1539,11 @@ + <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true"> @@ -1515,10 +1560,11 @@ + <xsl:for-each select="xalan:nodeset($colwidths)//column"> <xsl:choose> <xsl:when test=". = 1 or . = 0"> <fo:table-column column-width="proportional-column-width(2)"/> </xsl:when> @@ -1765,10 +1811,18 @@ <xsl:apply-templates/> </fo:table-row> </xsl:template><xsl:template match="*[local-name()='th']"> <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center"> + <xsl:attribute name="text-align"> + <xsl:choose> + <xsl:when test="@align"> + <xsl:value-of select="@align"/> + </xsl:when> + <xsl:otherwise>center</xsl:otherwise> + </xsl:choose> + </xsl:attribute> @@ -1789,10 +1843,11 @@ </xsl:if> </xsl:if> <xsl:attribute name="text-indent">0mm</xsl:attribute> + <xsl:if test="@colspan"> <xsl:attribute name="number-columns-spanned"> <xsl:value-of select="@colspan"/> </xsl:attribute> </xsl:if> @@ -1805,10 +1860,18 @@ <xsl:apply-templates/> </fo:block> </fo:table-cell> </xsl:template><xsl:template match="*[local-name()='td']"> <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm"> + <xsl:attribute name="text-align"> + <xsl:choose> + <xsl:when test="@align"> + <xsl:value-of select="@align"/> + </xsl:when> + <xsl:otherwise>left</xsl:otherwise> + </xsl:choose> + </xsl:attribute> @@ -3033,10 +3096,121 @@ </xsl:if> </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']"> <fo:block xsl:use-attribute-sets="recommendation-label-style"> <xsl:apply-templates/> </fo:block> + </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']"> + <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt"> + <fo:block-container margin-left="0mm" margin-right="0mm"> + <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black"> + <xsl:variable name="simple-table"> + <xsl:call-template name="getSimpleTable"/> + </xsl:variable> + <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/> + <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])"> + <fo:table-column column-width="35mm"/> + <fo:table-column column-width="115mm"/> + </xsl:if> + <xsl:apply-templates mode="requirement"/> + </fo:table> + <!-- fn processing --> + <xsl:if test=".//*[local-name() = 'fn']"> + <xsl:for-each select="*[local-name() = 'tbody']"> + <fo:block font-size="90%" border-bottom="1.pt solid black"> + <xsl:call-template name="fn_display"/> + </fo:block> + </xsl:for-each> + </xsl:if> + </fo:block-container> + </fo:block-container> + </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement"> + <fo:table-header> + <xsl:apply-templates mode="requirement"/> + </fo:table-header> + </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement"> + <fo:table-body> + <xsl:apply-templates mode="requirement"/> + </fo:table-body> + </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement"> + <fo:table-row> + <xsl:apply-templates mode="requirement"/> + </fo:table-row> + </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement"> + <fo:table-cell text-align="{@align}"> + <xsl:attribute name="text-align"> + <xsl:choose> + <xsl:when test="@align"> + <xsl:value-of select="@align"/> + </xsl:when> + <xsl:otherwise>center</xsl:otherwise> + </xsl:choose> + </xsl:attribute> + <xsl:if test="@colspan"> + <xsl:attribute name="number-columns-spanned"> + <xsl:value-of select="@colspan"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@rowspan"> + <xsl:attribute name="number-rows-spanned"> + <xsl:value-of select="@rowspan"/> + </xsl:attribute> + </xsl:if> + + <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'"> + <xsl:attribute name="padding-top">0.5mm</xsl:attribute> + <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute> + </xsl:if> + <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'"> + <xsl:attribute name="padding-top">0.5mm</xsl:attribute> + <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute> + </xsl:if> + + <fo:block> + <xsl:apply-templates/> + </fo:block> + </fo:table-cell> + </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement"> + <fo:table-cell text-align="{@align}"> + <xsl:attribute name="text-align"> + <xsl:choose> + <xsl:when test="@align"> + <xsl:value-of select="@align"/> + </xsl:when> + <xsl:otherwise>left</xsl:otherwise> + </xsl:choose> + </xsl:attribute> + <xsl:if test="@colspan"> + <xsl:attribute name="number-columns-spanned"> + <xsl:value-of select="@colspan"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@rowspan"> + <xsl:attribute name="number-rows-spanned"> + <xsl:value-of select="@rowspan"/> + </xsl:attribute> + </xsl:if> + + <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'"> + <xsl:attribute name="padding-left">0.5mm</xsl:attribute> + <xsl:attribute name="padding-top">0.5mm</xsl:attribute> + <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below --> + <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute> + </xsl:if> + </xsl:if> + + <fo:block> + <xsl:apply-templates/> + </fo:block> + </fo:table-cell> + </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2"> + <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt"> + <xsl:apply-templates/> + </fo:block> + </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]"> + <fo:block margin-bottom="10pt"> + <xsl:apply-templates/> + </fo:block> </xsl:template><xsl:template match="*[local-name() = 'termexample']"> <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style"> <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/> <xsl:apply-templates/> </fo:block> @@ -3317,11 +3491,11 @@ </fo:block> </xsl:template><xsl:template match="*[local-name() = 'definitions']"> <fo:block id="{@id}"> <xsl:apply-templates/> </fo:block> - </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']"> + </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']"> <fo:block id="{@id}"> <xsl:apply-templates/> </fo:block> </xsl:template><xsl:template match="*[local-name() = 'annex']"> @@ -3574,10 +3748,11 @@ - + + </xsl:variable> <xsl:if test="$documentNS != $XSLNS"> <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message> </xsl:if> </xsl:template><xsl:template name="getLanguage"> \ No newline at end of file