metanorma-ieee 1.0.6 → 1.0.8
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 +4 -4
- data/lib/isodoc/ieee/base_convert.rb +5 -12
- data/lib/isodoc/ieee/html/htmlstyle.css +4 -0
- data/lib/isodoc/ieee/ieee.amendment.xsl +549 -131
- data/lib/isodoc/ieee/ieee.standard.xsl +549 -131
- data/lib/isodoc/ieee/presentation_xml_convert.rb +18 -0
- data/lib/isodoc/ieee/word_convert.rb +21 -9
- data/lib/metanorma/ieee/isodoc.rng +46 -296
- data/lib/metanorma/ieee/version.rb +1 -1
- data/metanorma-ieee.gemspec +1 -1
- metadata +4 -4
@@ -2742,10 +2742,6 @@
|
|
2742
2742
|
</xsl:choose>
|
2743
2743
|
</xsl:template>
|
2744
2744
|
|
2745
|
-
<xsl:template match="*[local-name() = 'inlineChar']">
|
2746
|
-
<fo:inline><xsl:value-of select="."/></fo:inline>
|
2747
|
-
</xsl:template>
|
2748
|
-
|
2749
2745
|
<!--
|
2750
2746
|
<xsl:variable name="example_name_width">25</xsl:variable>
|
2751
2747
|
<xsl:template match="ieee:termexample" priority="2">
|
@@ -3710,29 +3706,6 @@
|
|
3710
3706
|
<!-- End Back Pages -->
|
3711
3707
|
<!-- =============================== -->
|
3712
3708
|
|
3713
|
-
<xsl:template name="replaceChar">
|
3714
|
-
<xsl:param name="text"/>
|
3715
|
-
<xsl:param name="replace"/>
|
3716
|
-
<xsl:param name="by"/>
|
3717
|
-
<xsl:choose>
|
3718
|
-
<xsl:when test="$text = '' or $replace = '' or not($replace)">
|
3719
|
-
<xsl:value-of select="$text"/>
|
3720
|
-
</xsl:when>
|
3721
|
-
<xsl:when test="contains($text, $replace)">
|
3722
|
-
<xsl:value-of select="substring-before($text,$replace)"/>
|
3723
|
-
<xsl:element name="inlineChar" namespace="https://www.metanorma.org/ns/ieee"><xsl:value-of select="$by"/></xsl:element>
|
3724
|
-
<xsl:call-template name="replaceChar">
|
3725
|
-
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
|
3726
|
-
<xsl:with-param name="replace" select="$replace"/>
|
3727
|
-
<xsl:with-param name="by" select="$by"/>
|
3728
|
-
</xsl:call-template>
|
3729
|
-
</xsl:when>
|
3730
|
-
<xsl:otherwise>
|
3731
|
-
<xsl:value-of select="$text"/>
|
3732
|
-
</xsl:otherwise>
|
3733
|
-
</xsl:choose>
|
3734
|
-
</xsl:template>
|
3735
|
-
|
3736
3709
|
<xsl:strip-space elements="ieee:xref"/>
|
3737
3710
|
|
3738
3711
|
<!-- external parameters -->
|
@@ -4327,7 +4300,6 @@
|
|
4327
4300
|
|
4328
4301
|
<xsl:attribute-set name="table-header-cell-style">
|
4329
4302
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
4330
|
-
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
4331
4303
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
4332
4304
|
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
4333
4305
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
@@ -4339,7 +4311,6 @@
|
|
4339
4311
|
|
4340
4312
|
<xsl:attribute-set name="table-cell-style">
|
4341
4313
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
4342
|
-
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
4343
4314
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
4344
4315
|
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
4345
4316
|
|
@@ -4546,6 +4517,7 @@
|
|
4546
4517
|
<xsl:attribute-set name="term-name-style">
|
4547
4518
|
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
4548
4519
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
4520
|
+
|
4549
4521
|
</xsl:attribute-set>
|
4550
4522
|
|
4551
4523
|
<xsl:attribute-set name="figure-block-style">
|
@@ -5084,7 +5056,7 @@
|
|
5084
5056
|
<xsl:apply-templates select="." mode="contents"/>
|
5085
5057
|
</xsl:for-each>
|
5086
5058
|
|
5087
|
-
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
|
5059
|
+
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) > 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) > 0]">
|
5088
5060
|
<xsl:sort select="@displayorder" data-type="number"/>
|
5089
5061
|
<xsl:apply-templates select="." mode="contents"/>
|
5090
5062
|
</xsl:for-each>
|
@@ -5511,7 +5483,7 @@
|
|
5511
5483
|
<xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
|
5512
5484
|
</xsl:when>
|
5513
5485
|
<xsl:otherwise>
|
5514
|
-
<xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer and
|
5486
|
+
<xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'dl') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note and dl which render separaterely -->
|
5515
5487
|
</xsl:otherwise>
|
5516
5488
|
</xsl:choose>
|
5517
5489
|
|
@@ -6002,7 +5974,7 @@
|
|
6002
5974
|
<xsl:param name="colwidths"/>
|
6003
5975
|
<xsl:param name="colgroup"/>
|
6004
5976
|
|
6005
|
-
<xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
|
5977
|
+
<xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
|
6006
5978
|
|
6007
5979
|
<xsl:variable name="isNoteOrFnExistShowAfterTable">
|
6008
5980
|
|
@@ -6021,6 +5993,10 @@
|
|
6021
5993
|
</xsl:choose>
|
6022
5994
|
</xsl:variable>
|
6023
5995
|
|
5996
|
+
<xsl:variable name="table_fn_block">
|
5997
|
+
<xsl:call-template name="table_fn_display"/>
|
5998
|
+
</xsl:variable>
|
5999
|
+
|
6024
6000
|
<xsl:variable name="tableWithNotesAndFootnotes">
|
6025
6001
|
|
6026
6002
|
<fo:table keep-with-previous="always">
|
@@ -6066,9 +6042,23 @@
|
|
6066
6042
|
|
6067
6043
|
<!-- except gb and bsi -->
|
6068
6044
|
|
6045
|
+
<xsl:apply-templates select="../*[local-name()='dl']"/>
|
6069
6046
|
<xsl:apply-templates select="../*[local-name()='note']"/>
|
6070
6047
|
|
6048
|
+
<xsl:variable name="isDisplayRowSeparator">
|
6049
|
+
|
6050
|
+
</xsl:variable>
|
6051
|
+
|
6071
6052
|
<!-- horizontal row separator -->
|
6053
|
+
<xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
|
6054
|
+
<xsl:if test="../*[local-name()='note'] and normalize-space($table_fn_block) != ''">
|
6055
|
+
<fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
|
6056
|
+
|
6057
|
+
<xsl:call-template name="setBordersTableArray"/>
|
6058
|
+
<fo:block font-size="1pt"> </fo:block>
|
6059
|
+
</fo:block-container>
|
6060
|
+
</xsl:if>
|
6061
|
+
</xsl:if>
|
6072
6062
|
|
6073
6063
|
<!-- fn processing -->
|
6074
6064
|
<fo:block/><!-- display fn after table -->
|
@@ -6086,7 +6076,8 @@
|
|
6086
6076
|
<xsl:copy-of select="$tableWithNotesAndFootnotes"/>
|
6087
6077
|
</xsl:if>
|
6088
6078
|
|
6089
|
-
<xsl:call-template name="table_fn_display"/>
|
6079
|
+
<!-- <xsl:call-template name="table_fn_display" /> -->
|
6080
|
+
<xsl:copy-of select="$table_fn_block"/>
|
6090
6081
|
|
6091
6082
|
</xsl:if>
|
6092
6083
|
</xsl:template> <!-- insertTableFooterInSeparateTable -->
|
@@ -6219,7 +6210,7 @@
|
|
6219
6210
|
<!-- ===================== -->
|
6220
6211
|
<!-- Table's row processing -->
|
6221
6212
|
<!-- ===================== -->
|
6222
|
-
<!-- row in table header (thead) -->
|
6213
|
+
<!-- row in table header (thead) thead/tr -->
|
6223
6214
|
<xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
|
6224
6215
|
<fo:table-row xsl:use-attribute-sets="table-header-row-style">
|
6225
6216
|
|
@@ -6238,7 +6229,29 @@
|
|
6238
6229
|
</fo:table-row>
|
6239
6230
|
</xsl:template>
|
6240
6231
|
|
6241
|
-
|
6232
|
+
<xsl:template name="setBorderUnderRow">
|
6233
|
+
<xsl:variable name="border_under_row_" select="normalize-space(ancestor::*[local-name() = 'table'][1]/@border-under-row)"/>
|
6234
|
+
<xsl:choose>
|
6235
|
+
<xsl:when test="$border_under_row_ != ''">
|
6236
|
+
<xsl:variable name="table_id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
|
6237
|
+
<xsl:variable name="row_num_"><xsl:number level="any" count="*[local-name() = 'table'][@id = $table_id]//*[local-name() = 'tr']"/></xsl:variable>
|
6238
|
+
<xsl:variable name="row_num" select="number($row_num_) - 1"/> <!-- because values in border-under-row start with 0 -->
|
6239
|
+
<xsl:variable name="border_under_row">
|
6240
|
+
<xsl:call-template name="split">
|
6241
|
+
<xsl:with-param name="pText" select="$border_under_row_"/>
|
6242
|
+
</xsl:call-template>
|
6243
|
+
</xsl:variable>
|
6244
|
+
<xsl:if test="xalan:nodeset($border_under_row)/item[. = normalize-space($row_num)]">
|
6245
|
+
<xsl:attribute name="border-bottom"><xsl:value-of select="$table-border"/></xsl:attribute>
|
6246
|
+
</xsl:if>
|
6247
|
+
</xsl:when>
|
6248
|
+
<xsl:otherwise>
|
6249
|
+
<xsl:attribute name="border-bottom"><xsl:value-of select="$table-border"/></xsl:attribute>
|
6250
|
+
</xsl:otherwise>
|
6251
|
+
</xsl:choose>
|
6252
|
+
</xsl:template>
|
6253
|
+
|
6254
|
+
<!-- row in table footer (tfoot), tfoot/tr -->
|
6242
6255
|
<xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
|
6243
6256
|
<fo:table-row xsl:use-attribute-sets="table-footer-row-style">
|
6244
6257
|
|
@@ -6586,8 +6599,16 @@
|
|
6586
6599
|
<!-- figure's footnotes rendering -->
|
6587
6600
|
<xsl:template name="fn_display_figure">
|
6588
6601
|
|
6602
|
+
<!-- current figure id -->
|
6603
|
+
<xsl:variable name="figure_id_">
|
6604
|
+
<xsl:value-of select="@id"/>
|
6605
|
+
<xsl:if test="not(@id)"><xsl:value-of select="generate-id()"/></xsl:if>
|
6606
|
+
</xsl:variable>
|
6607
|
+
<xsl:variable name="figure_id" select="normalize-space($figure_id_)"/>
|
6608
|
+
|
6609
|
+
<!-- all footnotes relates to the current figure -->
|
6589
6610
|
<xsl:variable name="references">
|
6590
|
-
<xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
|
6611
|
+
<xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])][ancestor::*[local-name() = 'figure'][1][@id = $figure_id]]">
|
6591
6612
|
<fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
|
6592
6613
|
<xsl:apply-templates/>
|
6593
6614
|
</fn>
|
@@ -6600,91 +6621,93 @@
|
|
6600
6621
|
|
6601
6622
|
</xsl:variable>
|
6602
6623
|
|
6603
|
-
|
6604
|
-
|
6605
|
-
|
6606
|
-
|
6607
|
-
|
6608
|
-
|
6624
|
+
<fo:block>
|
6625
|
+
|
6626
|
+
<!-- current hierarchy is 'figure' element -->
|
6627
|
+
<xsl:variable name="following_dl_colwidths">
|
6628
|
+
<xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
|
6629
|
+
<xsl:variable name="simple-table">
|
6630
|
+
<!-- <xsl:variable name="doc_ns">
|
6631
|
+
<xsl:if test="$namespace = 'bipm'">bipm</xsl:if>
|
6632
|
+
</xsl:variable>
|
6633
|
+
<xsl:variable name="ns">
|
6634
|
+
<xsl:choose>
|
6635
|
+
<xsl:when test="normalize-space($doc_ns) != ''">
|
6636
|
+
<xsl:value-of select="normalize-space($doc_ns)"/>
|
6637
|
+
</xsl:when>
|
6638
|
+
<xsl:otherwise>
|
6639
|
+
<xsl:value-of select="substring-before(name(/*), '-')"/>
|
6640
|
+
</xsl:otherwise>
|
6641
|
+
</xsl:choose>
|
6642
|
+
</xsl:variable> -->
|
6643
|
+
|
6644
|
+
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
6645
|
+
<tbody>
|
6646
|
+
<xsl:apply-templates mode="dl"/>
|
6647
|
+
</tbody>
|
6648
|
+
</xsl:for-each>
|
6649
|
+
</xsl:variable>
|
6650
|
+
|
6651
|
+
<xsl:call-template name="calculate-column-widths">
|
6652
|
+
<xsl:with-param name="cols-count" select="2"/>
|
6653
|
+
<xsl:with-param name="table" select="$simple-table"/>
|
6654
|
+
</xsl:call-template>
|
6655
|
+
|
6656
|
+
</xsl:if>
|
6657
|
+
</xsl:variable>
|
6658
|
+
|
6659
|
+
<xsl:variable name="maxlength_dt">
|
6660
|
+
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
6661
|
+
<xsl:call-template name="getMaxLength_dt"/>
|
6662
|
+
</xsl:for-each>
|
6609
6663
|
</xsl:variable>
|
6610
|
-
|
6664
|
+
|
6665
|
+
<fo:table width="95%" table-layout="fixed">
|
6666
|
+
<xsl:if test="normalize-space($key_iso) = 'true'">
|
6667
|
+
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
6668
|
+
|
6669
|
+
</xsl:if>
|
6611
6670
|
<xsl:choose>
|
6612
|
-
|
6613
|
-
|
6671
|
+
<!-- if there 'dl', then set same columns width -->
|
6672
|
+
<xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
|
6673
|
+
<xsl:call-template name="setColumnWidth_dl">
|
6674
|
+
<xsl:with-param name="colwidths" select="$following_dl_colwidths"/>
|
6675
|
+
<xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
|
6676
|
+
</xsl:call-template>
|
6614
6677
|
</xsl:when>
|
6615
6678
|
<xsl:otherwise>
|
6616
|
-
<
|
6679
|
+
<fo:table-column column-width="5%"/>
|
6680
|
+
<fo:table-column column-width="95%"/>
|
6617
6681
|
</xsl:otherwise>
|
6618
6682
|
</xsl:choose>
|
6619
|
-
|
6620
|
-
|
6621
|
-
|
6622
|
-
|
6623
|
-
|
6624
|
-
|
6625
|
-
|
6626
|
-
|
6627
|
-
|
6628
|
-
|
6629
|
-
|
6630
|
-
|
6631
|
-
|
6632
|
-
|
6633
|
-
|
6634
|
-
</xsl:variable>
|
6635
|
-
|
6636
|
-
<xsl:variable name="maxlength_dt">
|
6637
|
-
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
6638
|
-
<xsl:call-template name="getMaxLength_dt"/>
|
6639
|
-
</xsl:for-each>
|
6640
|
-
</xsl:variable>
|
6641
|
-
|
6642
|
-
<fo:block>
|
6643
|
-
<fo:table width="95%" table-layout="fixed">
|
6644
|
-
<xsl:if test="normalize-space($key_iso) = 'true'">
|
6645
|
-
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
6683
|
+
<fo:table-body>
|
6684
|
+
<xsl:for-each select="xalan:nodeset($references)//fn">
|
6685
|
+
<xsl:variable name="reference" select="@reference"/>
|
6686
|
+
<xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
|
6687
|
+
<fo:table-row>
|
6688
|
+
<fo:table-cell>
|
6689
|
+
<fo:block>
|
6690
|
+
<fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
|
6691
|
+
<xsl:value-of select="@reference"/>
|
6692
|
+
</fo:inline>
|
6693
|
+
</fo:block>
|
6694
|
+
</fo:table-cell>
|
6695
|
+
<fo:table-cell>
|
6696
|
+
<fo:block xsl:use-attribute-sets="figure-fn-body-style">
|
6697
|
+
<xsl:if test="normalize-space($key_iso) = 'true'">
|
6646
6698
|
|
6647
|
-
|
6648
|
-
<xsl:choose>
|
6649
|
-
<!-- if there 'dl', then set same columns width -->
|
6650
|
-
<xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
|
6651
|
-
<xsl:call-template name="setColumnWidth_dl">
|
6652
|
-
<xsl:with-param name="colwidths" select="$following_dl_colwidths"/>
|
6653
|
-
<xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
|
6654
|
-
</xsl:call-template>
|
6655
|
-
</xsl:when>
|
6656
|
-
<xsl:otherwise>
|
6657
|
-
<fo:table-column column-width="15%"/>
|
6658
|
-
<fo:table-column column-width="85%"/>
|
6659
|
-
</xsl:otherwise>
|
6660
|
-
</xsl:choose>
|
6661
|
-
<fo:table-body>
|
6662
|
-
<xsl:for-each select="xalan:nodeset($references)//fn">
|
6663
|
-
<xsl:variable name="reference" select="@reference"/>
|
6664
|
-
<xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
|
6665
|
-
<fo:table-row>
|
6666
|
-
<fo:table-cell>
|
6667
|
-
<fo:block>
|
6668
|
-
<fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
|
6669
|
-
<xsl:value-of select="@reference"/>
|
6670
|
-
</fo:inline>
|
6671
|
-
</fo:block>
|
6672
|
-
</fo:table-cell>
|
6673
|
-
<fo:table-cell>
|
6674
|
-
<fo:block xsl:use-attribute-sets="figure-fn-body-style">
|
6675
|
-
<xsl:if test="normalize-space($key_iso) = 'true'">
|
6699
|
+
<xsl:attribute name="margin-bottom">0</xsl:attribute>
|
6676
6700
|
|
6677
|
-
|
6701
|
+
</xsl:if>
|
6702
|
+
<xsl:copy-of select="./node()"/>
|
6703
|
+
</fo:block>
|
6704
|
+
</fo:table-cell>
|
6705
|
+
</fo:table-row>
|
6706
|
+
</xsl:if>
|
6707
|
+
</xsl:for-each>
|
6708
|
+
</fo:table-body>
|
6709
|
+
</fo:table>
|
6678
6710
|
|
6679
|
-
</xsl:if>
|
6680
|
-
<xsl:copy-of select="./node()"/>
|
6681
|
-
</fo:block>
|
6682
|
-
</fo:table-cell>
|
6683
|
-
</fo:table-row>
|
6684
|
-
</xsl:if>
|
6685
|
-
</xsl:for-each>
|
6686
|
-
</fo:table-body>
|
6687
|
-
</fo:table>
|
6688
6711
|
</fo:block>
|
6689
6712
|
</xsl:if>
|
6690
6713
|
|
@@ -6724,6 +6747,8 @@
|
|
6724
6747
|
<!-- <dl><xsl:copy-of select="."/></dl> -->
|
6725
6748
|
<fo:block-container>
|
6726
6749
|
|
6750
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
6751
|
+
|
6727
6752
|
<xsl:if test="not(ancestor::*[local-name() = 'quote'])">
|
6728
6753
|
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
6729
6754
|
</xsl:if>
|
@@ -6760,12 +6785,14 @@
|
|
6760
6785
|
|
6761
6786
|
<fo:block margin-bottom="12pt" text-align="left">
|
6762
6787
|
|
6763
|
-
<xsl:variable name="title-where">
|
6788
|
+
<!-- <xsl:variable name="title-where">
|
6764
6789
|
<xsl:call-template name="getLocalizedString">
|
6765
6790
|
<xsl:with-param name="key">where</xsl:with-param>
|
6766
6791
|
</xsl:call-template>
|
6767
6792
|
</xsl:variable>
|
6768
|
-
<xsl:value-of select="$title-where"
|
6793
|
+
<xsl:value-of select="$title-where"/> -->
|
6794
|
+
<xsl:apply-templates select="preceding-sibling::*[1][local-name() = 'p' and @keep-with-next = 'true']/node()"/>
|
6795
|
+
<xsl:text> </xsl:text>
|
6769
6796
|
<xsl:apply-templates select="*[local-name()='dt']/*"/>
|
6770
6797
|
<xsl:text/>
|
6771
6798
|
<xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
|
@@ -6775,12 +6802,14 @@
|
|
6775
6802
|
<xsl:when test="$parent = 'formula'"> <!-- a few components -->
|
6776
6803
|
<fo:block margin-bottom="12pt" text-align="left">
|
6777
6804
|
|
6778
|
-
<xsl:variable name="title-where">
|
6805
|
+
<!-- <xsl:variable name="title-where">
|
6779
6806
|
<xsl:call-template name="getLocalizedString">
|
6780
6807
|
<xsl:with-param name="key">where</xsl:with-param>
|
6781
6808
|
</xsl:call-template>
|
6782
6809
|
</xsl:variable>
|
6783
|
-
<xsl:value-of select="$title-where"
|
6810
|
+
<xsl:value-of select="$title-where"/><xsl:if test="$namespace = 'bsi' or $namespace = 'itu'">:</xsl:if> -->
|
6811
|
+
<!-- preceding 'p' with word 'where' -->
|
6812
|
+
<xsl:apply-templates select="preceding-sibling::*[1][local-name() = 'p' and @keep-with-next = 'true']/node()"/>
|
6784
6813
|
</fo:block>
|
6785
6814
|
</xsl:when> <!-- END: a few components -->
|
6786
6815
|
<xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
|
@@ -6963,6 +6992,9 @@
|
|
6963
6992
|
|
6964
6993
|
</xsl:template> <!-- END: dl -->
|
6965
6994
|
|
6995
|
+
<!-- ignore 'p' with 'where' in formula, before 'dl' -->
|
6996
|
+
<xsl:template match="*[local-name() = 'formula']/*[local-name() = 'p' and @keep-with-next = 'true' and following-sibling::*[1][local-name() = 'dl']]"/>
|
6997
|
+
|
6966
6998
|
<xsl:template match="*[local-name() = 'dl']/*[local-name() = 'name']">
|
6967
6999
|
<xsl:param name="process">false</xsl:param>
|
6968
7000
|
<xsl:if test="$process = 'true'">
|
@@ -7790,8 +7822,8 @@
|
|
7790
7822
|
|
7791
7823
|
<!-- add zero-width space (#x200B) after dot with next non-digit -->
|
7792
7824
|
<xsl:variable name="text1" select="java:replaceAll(java:java.lang.String.new($text),'(\.)([^\d\s])','$1$2')"/>
|
7793
|
-
<!-- add zero-width space (#x200B) after characters: dash, equal, underscore, em dash, thin space, arrow right -->
|
7794
|
-
<xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1),'(-|=|_|—|
|
7825
|
+
<!-- add zero-width space (#x200B) after characters: dash, equal, underscore, em dash, thin space, arrow right, ; -->
|
7826
|
+
<xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1),'(-|=|_|—| |→|;)','$1')"/>
|
7795
7827
|
<!-- add zero-width space (#x200B) after characters: colon, if there aren't digits after -->
|
7796
7828
|
<xsl:variable name="text3" select="java:replaceAll(java:java.lang.String.new($text2),'(:)(\D)','$1$2')"/>
|
7797
7829
|
<!-- add zero-width space (#x200B) after characters: 'great than' -->
|
@@ -7802,8 +7834,19 @@
|
|
7802
7834
|
<xsl:variable name="text6" select="java:replaceAll(java:java.lang.String.new($text5), '(?<!\W)(\{)', '$1')"/> <!-- negative lookbehind: '{' not preceeded by 'punctuation char' -->
|
7803
7835
|
<!-- add zero-width space (#x200B) after character: , -->
|
7804
7836
|
<xsl:variable name="text7" select="java:replaceAll(java:java.lang.String.new($text6), '(\,)(?!\d)', '$1')"/> <!-- negative lookahead: ',' not followed by digit -->
|
7837
|
+
<!-- add zero-width space (#x200B) after character: '/' -->
|
7838
|
+
<xsl:variable name="text8" select="java:replaceAll(java:java.lang.String.new($text7), '(\u002f)(?!\u002f)', '$1')"/><!-- negative lookahead: '/' not followed by '/' -->
|
7805
7839
|
|
7806
|
-
<xsl:
|
7840
|
+
<xsl:variable name="text9">
|
7841
|
+
<xsl:choose>
|
7842
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
7843
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text8), '([\u3000-\u9FFF])', '$1')"/> <!-- 3000 - CJK Symbols and Punctuation ... 9FFF CJK Unified Ideographs-->
|
7844
|
+
</xsl:when>
|
7845
|
+
<xsl:otherwise><xsl:value-of select="$text8"/></xsl:otherwise>
|
7846
|
+
</xsl:choose>
|
7847
|
+
</xsl:variable>
|
7848
|
+
|
7849
|
+
<xsl:value-of select="$text9"/>
|
7807
7850
|
</xsl:template>
|
7808
7851
|
|
7809
7852
|
<xsl:template name="add-zero-spaces-link-java">
|
@@ -7811,8 +7854,8 @@
|
|
7811
7854
|
|
7812
7855
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$1')"/> <!-- http://. https:// or www. -->
|
7813
7856
|
<xsl:variable name="url_continue" select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$2')"/>
|
7814
|
-
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
|
7815
|
-
<xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—|
|
7857
|
+
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, comma, slash, @ -->
|
7858
|
+
<xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/|@)','$1')"/>
|
7816
7859
|
<!-- remove zero-width space at the end -->
|
7817
7860
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($url), '$', '')"/>
|
7818
7861
|
</xsl:template>
|
@@ -8167,9 +8210,28 @@
|
|
8167
8210
|
</xsl:variable>
|
8168
8211
|
<xsl:copy-of select="$newRow"/>
|
8169
8212
|
|
8170
|
-
|
8171
|
-
|
8172
|
-
|
8213
|
+
<!-- optimize to prevent StackOverflowError, just copy next 'tr' -->
|
8214
|
+
<xsl:variable name="currrow_num" select="count(preceding-sibling::tr) + 1"/>
|
8215
|
+
<xsl:variable name="nextrow_without_rowspan_" select="count(following-sibling::tr[*[@rowspan and @rowspan != 1]][1]/preceding-sibling::tr) + 1"/>
|
8216
|
+
<xsl:variable name="nextrow_without_rowspan" select="$nextrow_without_rowspan_ - $currrow_num"/>
|
8217
|
+
<xsl:choose>
|
8218
|
+
<xsl:when test="not(xalan:nodeset($newRow)/*/*[@rowspan and @rowspan != 1]) and $nextrow_without_rowspan <= 0">
|
8219
|
+
<xsl:copy-of select="following-sibling::tr"/>
|
8220
|
+
</xsl:when>
|
8221
|
+
<!-- <xsl:when test="xalan:nodeset($newRow)/*[not(@rowspan) or (@rowspan = 1)] and $nextrow_without_rowspan > 0">
|
8222
|
+
<xsl:copy-of select="following-sibling::tr[position() <= $nextrow_without_rowspan]"/>
|
8223
|
+
|
8224
|
+
<xsl:copy-of select="following-sibling::tr[$nextrow_without_rowspan + 1]"/>
|
8225
|
+
<xsl:apply-templates select="following-sibling::tr[$nextrow_without_rowspan + 2]" mode="simple-table-rowspan">
|
8226
|
+
<xsl:with-param name="previousRow" select="following-sibling::tr[$nextrow_without_rowspan + 1]"/>
|
8227
|
+
</xsl:apply-templates>
|
8228
|
+
</xsl:when> -->
|
8229
|
+
<xsl:otherwise>
|
8230
|
+
<xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
|
8231
|
+
<xsl:with-param name="previousRow" select="$newRow"/>
|
8232
|
+
</xsl:apply-templates>
|
8233
|
+
</xsl:otherwise>
|
8234
|
+
</xsl:choose>
|
8173
8235
|
</xsl:template>
|
8174
8236
|
<!-- End mode simple-table-rowspan -->
|
8175
8237
|
|
@@ -8332,6 +8394,27 @@
|
|
8332
8394
|
</xsl:call-template>
|
8333
8395
|
</xsl:template>
|
8334
8396
|
|
8397
|
+
<xsl:template match="*[local-name() = 'link'][normalize-space() = '']" mode="td_text_with_formatting">
|
8398
|
+
<xsl:variable name="link">
|
8399
|
+
<link_updated>
|
8400
|
+
<xsl:variable name="target_text">
|
8401
|
+
<xsl:choose>
|
8402
|
+
<xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
|
8403
|
+
<xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
|
8404
|
+
</xsl:when>
|
8405
|
+
<xsl:otherwise>
|
8406
|
+
<xsl:value-of select="normalize-space(@target)"/>
|
8407
|
+
</xsl:otherwise>
|
8408
|
+
</xsl:choose>
|
8409
|
+
</xsl:variable>
|
8410
|
+
<xsl:value-of select="$target_text"/>
|
8411
|
+
</link_updated>
|
8412
|
+
</xsl:variable>
|
8413
|
+
<xsl:for-each select="xalan:nodeset($link)/*">
|
8414
|
+
<xsl:apply-templates mode="td_text_with_formatting"/>
|
8415
|
+
</xsl:for-each>
|
8416
|
+
</xsl:template>
|
8417
|
+
|
8335
8418
|
<xsl:template name="getFormattingTags">
|
8336
8419
|
<tags>
|
8337
8420
|
<xsl:if test="ancestor::*[local-name() = 'strong']"><tag>strong</tag></xsl:if>
|
@@ -8675,7 +8758,7 @@
|
|
8675
8758
|
</xsl:variable>
|
8676
8759
|
<fo:inline xsl:use-attribute-sets="link-style">
|
8677
8760
|
|
8678
|
-
<xsl:if test="starts-with(normalize-space(@target), 'mailto:')">
|
8761
|
+
<xsl:if test="starts-with(normalize-space(@target), 'mailto:') and not(ancestor::*[local-name() = 'td'])">
|
8679
8762
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
8680
8763
|
</xsl:if>
|
8681
8764
|
|
@@ -8742,13 +8825,17 @@
|
|
8742
8825
|
</xsl:template>
|
8743
8826
|
|
8744
8827
|
<xsl:template match="*[local-name() = 'callout']">
|
8745
|
-
<
|
8828
|
+
<xsl:choose>
|
8829
|
+
<xsl:when test="normalize-space(@target) = ''"><<xsl:apply-templates/>></xsl:when>
|
8830
|
+
<xsl:otherwise><fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}"><<xsl:apply-templates/>></fo:basic-link></xsl:otherwise>
|
8831
|
+
</xsl:choose>
|
8746
8832
|
</xsl:template>
|
8747
8833
|
|
8748
8834
|
<xsl:template match="*[local-name() = 'annotation']">
|
8749
8835
|
<xsl:variable name="annotation-id" select="@id"/>
|
8750
8836
|
<xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
|
8751
8837
|
<fo:block id="{$annotation-id}" white-space="nowrap">
|
8838
|
+
|
8752
8839
|
<fo:inline>
|
8753
8840
|
<xsl:apply-templates>
|
8754
8841
|
<xsl:with-param name="callout" select="concat('<', $callout, '> ')"/>
|
@@ -8853,6 +8940,10 @@
|
|
8853
8940
|
<!-- ====== -->
|
8854
8941
|
<!-- ====== -->
|
8855
8942
|
|
8943
|
+
<xsl:template name="setBlockSpanAll">
|
8944
|
+
<xsl:if test="@columns = 1 or (local-name() = 'p' and *[@columns = 1])"><xsl:attribute name="span">all</xsl:attribute></xsl:if>
|
8945
|
+
</xsl:template>
|
8946
|
+
|
8856
8947
|
<!-- ====== -->
|
8857
8948
|
<!-- note -->
|
8858
8949
|
<!-- termnote -->
|
@@ -8862,6 +8953,8 @@
|
|
8862
8953
|
|
8863
8954
|
<fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
|
8864
8955
|
|
8956
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
8957
|
+
|
8865
8958
|
<fo:block-container margin-left="0mm" margin-right="0mm">
|
8866
8959
|
|
8867
8960
|
<fo:block>
|
@@ -8912,6 +9005,8 @@
|
|
8912
9005
|
<xsl:template match="*[local-name() = 'termnote']">
|
8913
9006
|
<fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
|
8914
9007
|
|
9008
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
9009
|
+
|
8915
9010
|
<fo:inline xsl:use-attribute-sets="termnote-name-style">
|
8916
9011
|
|
8917
9012
|
<xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
|
@@ -9048,10 +9143,10 @@
|
|
9048
9143
|
<fo:block xsl:use-attribute-sets="figure-style">
|
9049
9144
|
<xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
|
9050
9145
|
</fo:block>
|
9051
|
-
<xsl:call-template name="fn_display_figure"/>
|
9052
9146
|
<xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
|
9053
9147
|
<xsl:call-template name="note"/>
|
9054
9148
|
</xsl:for-each>
|
9149
|
+
<xsl:call-template name="fn_display_figure"/>
|
9055
9150
|
|
9056
9151
|
<xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
|
9057
9152
|
|
@@ -9114,7 +9209,13 @@
|
|
9114
9209
|
</xsl:choose>
|
9115
9210
|
</xsl:variable>
|
9116
9211
|
|
9117
|
-
<xsl:variable name="
|
9212
|
+
<xsl:variable name="image_width_effective">
|
9213
|
+
|
9214
|
+
<xsl:value-of select="$width_effective"/>
|
9215
|
+
|
9216
|
+
</xsl:variable>
|
9217
|
+
|
9218
|
+
<xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
|
9118
9219
|
<xsl:if test="number($scale) < 100">
|
9119
9220
|
|
9120
9221
|
<xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
|
@@ -9701,6 +9802,13 @@
|
|
9701
9802
|
<xsl:when test="$contents_nodes/doc">
|
9702
9803
|
<xsl:choose>
|
9703
9804
|
<xsl:when test="count($contents_nodes/doc) > 1">
|
9805
|
+
|
9806
|
+
<xsl:if test="$contents_nodes/collection">
|
9807
|
+
<fo:bookmark internal-destination="{$contents/collection/@firstpage_id}">
|
9808
|
+
<fo:bookmark-title>collection.pdf</fo:bookmark-title>
|
9809
|
+
</fo:bookmark>
|
9810
|
+
</xsl:if>
|
9811
|
+
|
9704
9812
|
<xsl:for-each select="$contents_nodes/doc">
|
9705
9813
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
9706
9814
|
<xsl:if test="@bundle = 'true'">
|
@@ -10817,6 +10925,9 @@
|
|
10817
10925
|
<!-- ====== -->
|
10818
10926
|
<xsl:template match="*[local-name() = 'termexample']">
|
10819
10927
|
<fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
|
10928
|
+
|
10929
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
10930
|
+
|
10820
10931
|
<xsl:apply-templates select="*[local-name()='name']"/>
|
10821
10932
|
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
|
10822
10933
|
</fo:block>
|
@@ -10872,6 +10983,8 @@
|
|
10872
10983
|
|
10873
10984
|
<fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
|
10874
10985
|
|
10986
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
10987
|
+
|
10875
10988
|
<xsl:variable name="fo_element">
|
10876
10989
|
<xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
|
10877
10990
|
block
|
@@ -10899,6 +11012,35 @@
|
|
10899
11012
|
</fo:block-container>
|
10900
11013
|
</xsl:when> <!-- end block -->
|
10901
11014
|
|
11015
|
+
<xsl:when test="contains(normalize-space($fo_element), 'list')">
|
11016
|
+
|
11017
|
+
<xsl:variable name="provisional_distance_between_starts">
|
11018
|
+
7
|
11019
|
+
</xsl:variable>
|
11020
|
+
<xsl:variable name="indent">
|
11021
|
+
0
|
11022
|
+
</xsl:variable>
|
11023
|
+
|
11024
|
+
<fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
|
11025
|
+
<fo:list-item>
|
11026
|
+
<fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
|
11027
|
+
<fo:block>
|
11028
|
+
<xsl:apply-templates select="*[local-name()='name']">
|
11029
|
+
<xsl:with-param name="fo_element">block</xsl:with-param>
|
11030
|
+
</xsl:apply-templates>
|
11031
|
+
</fo:block>
|
11032
|
+
</fo:list-item-label>
|
11033
|
+
<fo:list-item-body start-indent="body-start()">
|
11034
|
+
<fo:block>
|
11035
|
+
<xsl:apply-templates select="node()[not(local-name() = 'name')]">
|
11036
|
+
<xsl:with-param name="fo_element" select="$fo_element"/>
|
11037
|
+
</xsl:apply-templates>
|
11038
|
+
</fo:block>
|
11039
|
+
</fo:list-item-body>
|
11040
|
+
</fo:list-item>
|
11041
|
+
</fo:list-block>
|
11042
|
+
</xsl:when> <!-- end list -->
|
11043
|
+
|
10902
11044
|
<xsl:otherwise> <!-- inline -->
|
10903
11045
|
|
10904
11046
|
<!-- display 'EXAMPLE' and first element in the same line -->
|
@@ -10978,6 +11120,11 @@
|
|
10978
11120
|
</fo:block>
|
10979
11121
|
</fo:block-container>
|
10980
11122
|
</xsl:when>
|
11123
|
+
<xsl:when test="starts-with(normalize-space($element), 'list')">
|
11124
|
+
<fo:block xsl:use-attribute-sets="example-p-style">
|
11125
|
+
<xsl:apply-templates/>
|
11126
|
+
</fo:block>
|
11127
|
+
</xsl:when>
|
10981
11128
|
<xsl:otherwise>
|
10982
11129
|
<fo:inline xsl:use-attribute-sets="example-p-style">
|
10983
11130
|
<xsl:apply-templates/>
|
@@ -11095,6 +11242,9 @@
|
|
11095
11242
|
<!-- ====== -->
|
11096
11243
|
<xsl:template match="*[local-name() = 'quote']">
|
11097
11244
|
<fo:block-container margin-left="0mm">
|
11245
|
+
|
11246
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
11247
|
+
|
11098
11248
|
<xsl:if test="parent::*[local-name() = 'note']">
|
11099
11249
|
<xsl:if test="not(ancestor::*[local-name() = 'table'])">
|
11100
11250
|
<xsl:attribute name="margin-left">5mm</xsl:attribute>
|
@@ -11380,6 +11530,8 @@
|
|
11380
11530
|
<fo:block>
|
11381
11531
|
<xsl:call-template name="setId"/>
|
11382
11532
|
|
11533
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
11534
|
+
|
11383
11535
|
<xsl:apply-templates/>
|
11384
11536
|
</fo:block>
|
11385
11537
|
</xsl:template>
|
@@ -11394,6 +11546,8 @@
|
|
11394
11546
|
<fo:block break-after="page"/>
|
11395
11547
|
<fo:block id="{@id}">
|
11396
11548
|
|
11549
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
11550
|
+
|
11397
11551
|
</fo:block>
|
11398
11552
|
<xsl:apply-templates/>
|
11399
11553
|
</xsl:template>
|
@@ -11592,6 +11746,44 @@
|
|
11592
11746
|
|
11593
11747
|
<fo:list-block xsl:use-attribute-sets="list-style">
|
11594
11748
|
|
11749
|
+
<xsl:variable name="provisional_distance_between_starts_">
|
11750
|
+
<attributes xsl:use-attribute-sets="list-style">
|
11751
|
+
|
11752
|
+
</attributes>
|
11753
|
+
</xsl:variable>
|
11754
|
+
<xsl:variable name="provisional_distance_between_starts" select="normalize-space(xalan:nodeset($provisional_distance_between_starts_)/attributes/@provisional-distance-between-starts)"/>
|
11755
|
+
<xsl:if test="$provisional_distance_between_starts != ''">
|
11756
|
+
<xsl:attribute name="provisional-distance-between-starts"><xsl:value-of select="$provisional_distance_between_starts"/></xsl:attribute>
|
11757
|
+
</xsl:if>
|
11758
|
+
<xsl:variable name="provisional_distance_between_starts_value" select="substring-before($provisional_distance_between_starts, 'mm')"/>
|
11759
|
+
|
11760
|
+
<!-- increase provisional-distance-between-starts for long lists -->
|
11761
|
+
<xsl:if test="local-name() = 'ol'">
|
11762
|
+
<!-- Examples: xiii), xviii), xxviii) -->
|
11763
|
+
<xsl:variable name="item_numbers">
|
11764
|
+
<xsl:for-each select="*[local-name() = 'li']">
|
11765
|
+
<item><xsl:call-template name="getListItemFormat"/></item>
|
11766
|
+
</xsl:for-each>
|
11767
|
+
</xsl:variable>
|
11768
|
+
|
11769
|
+
<xsl:variable name="max_length">
|
11770
|
+
<xsl:for-each select="xalan:nodeset($item_numbers)/item">
|
11771
|
+
<xsl:sort select="string-length(.)" data-type="number" order="descending"/>
|
11772
|
+
<xsl:if test="position() = 1"><xsl:value-of select="string-length(.)"/></xsl:if>
|
11773
|
+
</xsl:for-each>
|
11774
|
+
</xsl:variable>
|
11775
|
+
|
11776
|
+
<!-- base width (provisional-distance-between-starts) for 4 chars -->
|
11777
|
+
<xsl:variable name="addon" select="$max_length - 4"/>
|
11778
|
+
<xsl:if test="$addon > 0">
|
11779
|
+
<xsl:attribute name="provisional-distance-between-starts"><xsl:value-of select="$provisional_distance_between_starts_value + $addon * 2"/>mm</xsl:attribute>
|
11780
|
+
</xsl:if>
|
11781
|
+
<!-- DEBUG -->
|
11782
|
+
<!-- <xsl:copy-of select="$item_numbers"/>
|
11783
|
+
<max_length><xsl:value-of select="$max_length"/></max_length>
|
11784
|
+
<addon><xsl:value-of select="$addon"/></addon> -->
|
11785
|
+
</xsl:if>
|
11786
|
+
|
11595
11787
|
<xsl:if test="*[local-name() = 'name']">
|
11596
11788
|
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
11597
11789
|
</xsl:if>
|
@@ -12332,6 +12524,8 @@
|
|
12332
12524
|
<!-- text in the box -->
|
12333
12525
|
<fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
|
12334
12526
|
|
12527
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
12528
|
+
|
12335
12529
|
<xsl:if test="@type = 'editorial'">
|
12336
12530
|
<xsl:attribute name="border">none</xsl:attribute>
|
12337
12531
|
<!-- <xsl:attribute name="font-weight">bold</xsl:attribute>
|
@@ -12543,6 +12737,16 @@
|
|
12543
12737
|
<xsl:apply-templates mode="update_xml_step1"/>
|
12544
12738
|
</xsl:copy>
|
12545
12739
|
</xsl:template>
|
12740
|
+
|
12741
|
+
<!-- remove semantic xml -->
|
12742
|
+
<xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_step1"/>
|
12743
|
+
|
12744
|
+
<!-- remove image/emf -->
|
12745
|
+
<xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_step1"/>
|
12746
|
+
|
12747
|
+
<xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_step1">
|
12748
|
+
<xsl:copy-of select="."/>
|
12749
|
+
</xsl:template>
|
12546
12750
|
<!-- =========================================================================== -->
|
12547
12751
|
<!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12548
12752
|
<!-- =========================================================================== -->
|
@@ -12643,6 +12847,10 @@
|
|
12643
12847
|
</xsl:call-template>
|
12644
12848
|
</xsl:template>
|
12645
12849
|
|
12850
|
+
<xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_step2">
|
12851
|
+
<xsl:copy-of select="."/>
|
12852
|
+
</xsl:template>
|
12853
|
+
|
12646
12854
|
<!-- =========================================================================== -->
|
12647
12855
|
<!-- END STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
12648
12856
|
<!-- =========================================================================== -->
|
@@ -12664,7 +12872,7 @@
|
|
12664
12872
|
|
12665
12873
|
<xsl:variable name="element_name_keep-together_within-line">keep-together_within-line</xsl:variable>
|
12666
12874
|
|
12667
|
-
<xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
|
12875
|
+
<xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or ancestor::*[local-name() = 'svg'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
|
12668
12876
|
|
12669
12877
|
<!-- enclose standard's number into tag 'keep-together_within-line' -->
|
12670
12878
|
<xsl:variable name="tag_keep-together_within-line_open">###<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
|
@@ -12694,7 +12902,7 @@
|
|
12694
12902
|
<!-- \S matches any non-whitespace character (equivalent to [^\r\n\t\f\v ]) -->
|
12695
12903
|
<!-- <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable> -->
|
12696
12904
|
<!-- add < and > to \S -->
|
12697
|
-
<xsl:variable name="regex_S">[^\r\n\t\f\v \<>
|
12905
|
+
<xsl:variable name="regex_S">[^\r\n\t\f\v \<>\u3000-\u9FFF]</xsl:variable>
|
12698
12906
|
<xsl:variable name="regex_solidus_units">((\b((<xsl:value-of select="$regex_S"/>{1,3}\/<xsl:value-of select="$regex_S"/>+)|(<xsl:value-of select="$regex_S"/>+\/<xsl:value-of select="$regex_S"/>{1,3}))\b)|(\/<xsl:value-of select="$regex_S"/>{1,3})\b)</xsl:variable>
|
12699
12907
|
<xsl:variable name="text3">
|
12700
12908
|
<text><xsl:for-each select="xalan:nodeset($text2)/text/node()">
|
@@ -12716,7 +12924,8 @@
|
|
12716
12924
|
<xsl:choose>
|
12717
12925
|
<xsl:when test="ancestor::*[local-name() = 'td' or local-name() = 'th']">
|
12718
12926
|
<!-- keep-together_within-line for: a.b, aaa.b, a.bbb, .b in table's cell ONLY -->
|
12719
|
-
<xsl:variable name="
|
12927
|
+
<xsl:variable name="non_white_space">[^\s\u3000-\u9FFF]</xsl:variable>
|
12928
|
+
<xsl:variable name="regex_dots_units">((\b((<xsl:value-of select="$non_white_space"/>{1,3}\.<xsl:value-of select="$non_white_space"/>+)|(<xsl:value-of select="$non_white_space"/>+\.<xsl:value-of select="$non_white_space"/>{1,3}))\b)|(\.<xsl:value-of select="$non_white_space"/>{1,3})\b)</xsl:variable>
|
12720
12929
|
<xsl:for-each select="xalan:nodeset($text3)/text/node()">
|
12721
12930
|
<xsl:choose>
|
12722
12931
|
<xsl:when test="self::text()">
|
@@ -12737,6 +12946,10 @@
|
|
12737
12946
|
|
12738
12947
|
</xsl:template>
|
12739
12948
|
|
12949
|
+
<xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image']" mode="update_xml_enclose_keep-together_within-line">
|
12950
|
+
<xsl:copy-of select="."/>
|
12951
|
+
</xsl:template>
|
12952
|
+
|
12740
12953
|
<xsl:template name="replace_text_tags">
|
12741
12954
|
<xsl:param name="tag_open"/>
|
12742
12955
|
<xsl:param name="tag_close"/>
|
@@ -12763,6 +12976,194 @@
|
|
12763
12976
|
<!-- END XML UPDATE STEP: enclose standard's name into tag 'keep-together_within-line' -->
|
12764
12977
|
<!-- ===================================== -->
|
12765
12978
|
|
12979
|
+
<!-- ===================================== -->
|
12980
|
+
<!-- ===================================== -->
|
12981
|
+
<!-- Make linear XML (need for landscape orientation) -->
|
12982
|
+
<!-- ===================================== -->
|
12983
|
+
<!-- ===================================== -->
|
12984
|
+
<xsl:template match="@*|node()" mode="linear_xml">
|
12985
|
+
<xsl:copy>
|
12986
|
+
<xsl:apply-templates select="@*|node()" mode="linear_xml"/>
|
12987
|
+
</xsl:copy>
|
12988
|
+
</xsl:template>
|
12989
|
+
|
12990
|
+
<xsl:template match="processing-instruction()" mode="linear_xml">
|
12991
|
+
<xsl:copy-of select="."/>
|
12992
|
+
</xsl:template>
|
12993
|
+
|
12994
|
+
<!-- From:
|
12995
|
+
<clause>
|
12996
|
+
<title>...</title>
|
12997
|
+
<p>...</p>
|
12998
|
+
</clause>
|
12999
|
+
To:
|
13000
|
+
<clause/>
|
13001
|
+
<title>...</title>
|
13002
|
+
<p>...</p>
|
13003
|
+
-->
|
13004
|
+
<xsl:template match="*[local-name() = 'foreword'] | *[local-name() = 'foreword']//*[local-name() = 'clause'] | *[local-name() = 'preface']//*[local-name() = 'clause'][not(@type = 'corrigenda') and not(@type = 'policy') and not(@type = 'related-refs')] | *[local-name() = 'introduction'] | *[local-name() = 'introduction']//*[local-name() = 'clause'] | *[local-name() = 'sections']//*[local-name() = 'clause'] | *[local-name() = 'annex'] | *[local-name() = 'annex']//*[local-name() = 'clause'] | *[local-name() = 'references'][not(@hidden = 'true')] | *[local-name() = 'bibliography']/*[local-name() = 'clause'] | *[local-name() = 'colophon'] | *[local-name() = 'colophon']//*[local-name() = 'clause'] | *[local-name()='sections']//*[local-name()='terms'] | *[local-name()='sections']//*[local-name()='definitions'] | *[local-name()='annex']//*[local-name()='definitions']" mode="linear_xml" name="clause_linear">
|
13005
|
+
|
13006
|
+
<xsl:copy>
|
13007
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
13008
|
+
|
13009
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
13010
|
+
|
13011
|
+
<xsl:if test="local-name() = 'foreword' or local-name() = 'introduction' or local-name(..) = 'preface' or local-name(..) = 'sections' or (local-name() = 'references' and parent::*[local-name() = 'bibliography']) or (local-name() = 'clause' and parent::*[local-name() = 'bibliography']) or local-name() = 'annex' or local-name(..) = 'annex' or local-name(..) = 'colophon'">
|
13012
|
+
<xsl:attribute name="mainsection">true</xsl:attribute>
|
13013
|
+
</xsl:if>
|
13014
|
+
</xsl:copy>
|
13015
|
+
|
13016
|
+
<xsl:apply-templates mode="linear_xml"/>
|
13017
|
+
</xsl:template>
|
13018
|
+
|
13019
|
+
<xsl:template match="*[local-name() = 'term']" mode="linear_xml" priority="2">
|
13020
|
+
<xsl:copy>
|
13021
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
13022
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
13023
|
+
<xsl:variable name="level">
|
13024
|
+
<xsl:call-template name="getLevel"/>
|
13025
|
+
</xsl:variable>
|
13026
|
+
<xsl:attribute name="depth"><xsl:value-of select="$level"/></xsl:attribute>
|
13027
|
+
<xsl:attribute name="ancestor">sections</xsl:attribute>
|
13028
|
+
<xsl:apply-templates select="node()[not(local-name() = 'term')]" mode="linear_xml"/>
|
13029
|
+
</xsl:copy>
|
13030
|
+
<xsl:apply-templates select="*[local-name() = 'term']" mode="linear_xml"/>
|
13031
|
+
</xsl:template>
|
13032
|
+
|
13033
|
+
<xsl:template match="*[local-name() = 'introduction']//*[local-name() = 'title'] | *[local-name() = 'foreword']//*[local-name() = 'title'] | *[local-name() = 'sections']//*[local-name() = 'title'] | *[local-name() = 'annex']//*[local-name() = 'title'] | *[local-name() = 'bibliography']/*[local-name() = 'clause']/*[local-name() = 'title'] | *[local-name() = 'references']/*[local-name() = 'title'] | *[local-name() = 'colophon']//*[local-name() = 'title']" mode="linear_xml" priority="2">
|
13034
|
+
<xsl:copy>
|
13035
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
13036
|
+
|
13037
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
13038
|
+
|
13039
|
+
<xsl:variable name="level">
|
13040
|
+
<xsl:call-template name="getLevel"/>
|
13041
|
+
</xsl:variable>
|
13042
|
+
<xsl:attribute name="depth"><xsl:value-of select="$level"/></xsl:attribute>
|
13043
|
+
|
13044
|
+
<xsl:if test="parent::*[local-name() = 'annex']">
|
13045
|
+
<xsl:attribute name="depth">1</xsl:attribute>
|
13046
|
+
</xsl:if>
|
13047
|
+
|
13048
|
+
<xsl:if test="../@inline-header = 'true' and following-sibling::*[1][local-name() = 'p']">
|
13049
|
+
<xsl:copy-of select="../@inline-header"/>
|
13050
|
+
</xsl:if>
|
13051
|
+
|
13052
|
+
<xsl:attribute name="ancestor">
|
13053
|
+
<xsl:choose>
|
13054
|
+
<xsl:when test="ancestor::*[local-name() = 'foreword']">foreword</xsl:when>
|
13055
|
+
<xsl:when test="ancestor::*[local-name() = 'introduction']">introduction</xsl:when>
|
13056
|
+
<xsl:when test="ancestor::*[local-name() = 'sections']">sections</xsl:when>
|
13057
|
+
<xsl:when test="ancestor::*[local-name() = 'annex']">annex</xsl:when>
|
13058
|
+
<xsl:when test="ancestor::*[local-name() = 'bibliography']">bibliography</xsl:when>
|
13059
|
+
</xsl:choose>
|
13060
|
+
</xsl:attribute>
|
13061
|
+
|
13062
|
+
<xsl:apply-templates mode="linear_xml"/>
|
13063
|
+
</xsl:copy>
|
13064
|
+
</xsl:template>
|
13065
|
+
|
13066
|
+
<!-- add @to = figure, table, clause -->
|
13067
|
+
<!-- add @depth = from -->
|
13068
|
+
<xsl:template match="*[local-name() = 'xref']" mode="linear_xml">
|
13069
|
+
<xsl:copy>
|
13070
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
13071
|
+
<xsl:variable name="target" select="@target"/>
|
13072
|
+
<xsl:attribute name="to">
|
13073
|
+
<xsl:value-of select="local-name(//*[@id = current()/@target][1])"/>
|
13074
|
+
</xsl:attribute>
|
13075
|
+
<xsl:attribute name="depth">
|
13076
|
+
<xsl:value-of select="//*[@id = current()/@target][1]/*[local-name() = 'title']/@depth"/>
|
13077
|
+
</xsl:attribute>
|
13078
|
+
<xsl:apply-templates select="node()" mode="linear_xml"/>
|
13079
|
+
</xsl:copy>
|
13080
|
+
</xsl:template>
|
13081
|
+
|
13082
|
+
<xsl:template match="*[not(ancestor::*[local-name() = 'sourcecode'])]/*[local-name() = 'p' or local-name() = 'strong' or local-name() = 'em']/text()" mode="linear_xml">
|
13083
|
+
<xsl:choose>
|
13084
|
+
<xsl:when test="contains(., $non_breaking_hyphen)">
|
13085
|
+
<xsl:call-template name="replaceChar">
|
13086
|
+
<xsl:with-param name="text" select="."/>
|
13087
|
+
<xsl:with-param name="replace" select="$non_breaking_hyphen"/>
|
13088
|
+
<xsl:with-param name="by" select="'-'"/>
|
13089
|
+
</xsl:call-template>
|
13090
|
+
</xsl:when>
|
13091
|
+
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
|
13092
|
+
</xsl:choose>
|
13093
|
+
</xsl:template>
|
13094
|
+
|
13095
|
+
<xsl:template name="replaceChar">
|
13096
|
+
<xsl:param name="text"/>
|
13097
|
+
<xsl:param name="replace"/>
|
13098
|
+
<xsl:param name="by"/>
|
13099
|
+
<xsl:choose>
|
13100
|
+
<xsl:when test="$text = '' or $replace = '' or not($replace)">
|
13101
|
+
<xsl:value-of select="$text"/>
|
13102
|
+
</xsl:when>
|
13103
|
+
<xsl:when test="contains($text, $replace)">
|
13104
|
+
<xsl:value-of select="substring-before($text,$replace)"/>
|
13105
|
+
<xsl:element name="inlineChar" namespace="https://www.metanorma.org/ns/jis"><xsl:value-of select="$by"/></xsl:element>
|
13106
|
+
<xsl:call-template name="replaceChar">
|
13107
|
+
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
|
13108
|
+
<xsl:with-param name="replace" select="$replace"/>
|
13109
|
+
<xsl:with-param name="by" select="$by"/>
|
13110
|
+
</xsl:call-template>
|
13111
|
+
</xsl:when>
|
13112
|
+
<xsl:otherwise>
|
13113
|
+
<xsl:value-of select="$text"/>
|
13114
|
+
</xsl:otherwise>
|
13115
|
+
</xsl:choose>
|
13116
|
+
</xsl:template>
|
13117
|
+
|
13118
|
+
<xsl:template match="*[local-name() = 'inlineChar']">
|
13119
|
+
<fo:inline><xsl:value-of select="."/></fo:inline>
|
13120
|
+
</xsl:template>
|
13121
|
+
|
13122
|
+
<!-- change @reference to actual value, and add skip_footnote_body="true" for repeatable (2nd, 3rd, ...) -->
|
13123
|
+
<!--
|
13124
|
+
<fn reference="1">
|
13125
|
+
<p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
|
13126
|
+
</fn>
|
13127
|
+
-->
|
13128
|
+
<xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" mode="linear_xml" name="linear_xml_fn">
|
13129
|
+
<xsl:variable name="p_fn_">
|
13130
|
+
<xsl:call-template name="get_fn_list"/>
|
13131
|
+
</xsl:variable>
|
13132
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
13133
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
13134
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
13135
|
+
<xsl:variable name="reference" select="@reference"/>
|
13136
|
+
<!-- fn sequence number in document -->
|
13137
|
+
<xsl:variable name="current_fn_number" select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
|
13138
|
+
|
13139
|
+
<xsl:copy>
|
13140
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
13141
|
+
<!-- put actual reference number -->
|
13142
|
+
<xsl:attribute name="current_fn_number">
|
13143
|
+
<xsl:value-of select="$current_fn_number"/>
|
13144
|
+
</xsl:attribute>
|
13145
|
+
<xsl:attribute name="skip_footnote_body"> <!-- false for repeatable footnote -->
|
13146
|
+
<xsl:value-of select="not($p_fn//fn[@gen_id = $gen_id] and (1 = 1))"/>
|
13147
|
+
</xsl:attribute>
|
13148
|
+
<xsl:apply-templates select="node()" mode="linear_xml"/>
|
13149
|
+
</xsl:copy>
|
13150
|
+
</xsl:template>
|
13151
|
+
|
13152
|
+
<xsl:template match="*[local-name() = 'p'][@type = 'section-title']" priority="3" mode="linear_xml">
|
13153
|
+
<xsl:copy>
|
13154
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
13155
|
+
<xsl:if test="@depth = '1'">
|
13156
|
+
<xsl:attribute name="mainsection">true</xsl:attribute>
|
13157
|
+
</xsl:if>
|
13158
|
+
<xsl:apply-templates select="node()" mode="linear_xml"/>
|
13159
|
+
</xsl:copy>
|
13160
|
+
</xsl:template>
|
13161
|
+
<!-- ===================================== -->
|
13162
|
+
<!-- ===================================== -->
|
13163
|
+
<!-- END: Make linear XML (need for landscape orientation) -->
|
13164
|
+
<!-- ===================================== -->
|
13165
|
+
<!-- ===================================== -->
|
13166
|
+
|
12766
13167
|
<!-- for correct rendering combining chars -->
|
12767
13168
|
<xsl:template match="*[local-name() = 'lang_none']">
|
12768
13169
|
<fo:inline xml:lang="none"><xsl:value-of select="."/></fo:inline>
|
@@ -13317,6 +13718,23 @@
|
|
13317
13718
|
</xsl:if>
|
13318
13719
|
</xsl:template>
|
13319
13720
|
|
13721
|
+
<xsl:template name="setBlockAttributes">
|
13722
|
+
<xsl:param name="text_align_default">left</xsl:param>
|
13723
|
+
<xsl:call-template name="setTextAlignment">
|
13724
|
+
<xsl:with-param name="default" select="$text_align_default"/>
|
13725
|
+
</xsl:call-template>
|
13726
|
+
|
13727
|
+
<!-- https://www.metanorma.org/author/topics/document-format/text/#avoiding-page-breaks -->
|
13728
|
+
<!-- Example: keep-lines-together="true" -->
|
13729
|
+
<xsl:if test="@keep-lines-together = 'true'">
|
13730
|
+
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
|
13731
|
+
</xsl:if>
|
13732
|
+
<!-- Example: keep-with-next="true" -->
|
13733
|
+
<xsl:if test="@keep-with-next = 'true'">
|
13734
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
13735
|
+
</xsl:if>
|
13736
|
+
</xsl:template>
|
13737
|
+
|
13320
13738
|
<xsl:template name="number-to-words">
|
13321
13739
|
<xsl:param name="number"/>
|
13322
13740
|
<xsl:param name="first"/>
|